{"version":3,"file":"vendor.d17c3a97c4ce69d7.js","mappings":"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;AACnH,gDAAgD,OAAO,kEAAuB,qCAAqC;AACnH,gDAAgD,OAAO,kEAAuB,wCAAwC;AACtH,2CAA2C,OAAO,kEAAuB,mCAAmC;AAC5G,8CAA8C,OAAO,kEAAuB,sCAAsC;AAClH,gDAAgD,OAAO,kEAAuB,wCAAwC;AACtH,2CAA2C,OAAO,kEAAuB,mCAAmC;AAC5G,8CAA8C,OAAO,kEAAuB,sCAAsC;AAClH;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAuB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,UAAU,MAAM,qDAAU,GAAG;AAC7B,UAAU,MAAM,iDAAM,GAAG;AACzB;AACA;AACA,+BAA+B,MAAM,gDAAK,sCAAsC;AAChF,yBAAyB,MAAM,gDAAK,gCAAgC;AACpE,0BAA0B,MAAM,gDAAK,iCAAiC;AACtE,6BAA6B,MAAM,gDAAK,oCAAoC;AAC5E,sBAAsB,MAAM,gDAAK,6BAA6B;AAC9D,uBAAuB,MAAM,iDAAM,8BAA8B;AACjE,mBAAmB,MAAM,gDAAK,0BAA0B;AACxD,yBAAyB,MAAM,iDAAM,gCAAgC;AACrE,qBAAqB,MAAM,gDAAK,4BAA4B;AAC5D,2BAA2B,MAAM,iDAAM,kCAAkC;AACzE,wBAAwB,MAAM,gDAAK,+BAA+B;AAClE,wBAAwB,MAAM,gDAAK,+BAA+B;AAClE,sBAAsB,MAAM,gDAAK,6BAA6B;AAC9D,sBAAsB,MAAM,gDAAK,6BAA6B;AAC9D,sBAAsB,MAAM,iDAAM,2BAA2B;AAC7D,4BAA4B,MAAM,iDAAM,iCAAiC;AACzE,0BAA0B,MAAM,iDAAM,+BAA+B;AACrE,wBAAwB,MAAM,iDAAM,6BAA6B;AACjE,0BAA0B,MAAM,iDAAM,+BAA+B;AACrE,0BAA0B,MAAM,iDAAM,+BAA+B;AACrE,wBAAwB,MAAM,iDAAM,6BAA6B;AACjE,6BAA6B,MAAM,iDAAM,kCAAkC;AAC3E,2BAA2B,MAAM,iDAAM,gCAAgC;AACvE,wBAAwB,MAAM,iDAAM,6BAA6B;AACjE,6BAA6B,MAAM,iDAAM,kCAAkC;AAC3E,2BAA2B,MAAM,iDAAM,gCAAgC;AACvE,uBAAuB,MAAM,uDAAY,gCAAgC;AACzE;AACA,+DAA+D,mCAAmC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa;AACrL,sCAAsC,+DAAwB,GAAG,0HAA0H;AAC3L,QAAQ,wDAAiB,mEAAmE,wBAAwB,SAAS,6DAAsB;AACnJ,OAAO,YAAY,6fAA6f,aAAa,+eAA+e,aAAa,kEAA2B,GAAG;AACvjC,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAC1F,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS,GAAG,IAAI;AAChB;AACA,CAAC;AAC2B;;;;;;;;;;;;;;;;;ACra5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkC;;;;;;;;;;;;;;;;ACZnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;;;;;;;;;;;ACtByE;AAC9D;AACoB;AACU;AACe;AACS;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACe;AACvD;AACA;AACA;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD,oCAAoC,oFAAuB;AAC3D,iCAAiC,gGAA2B;AAC5D,oDAAoD;AACpD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAsB;AAC3C;AACA;AACA;AACA,qDAAqD,oBAAoB;AACzE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,UAAU,MAAM,qEAAgB,GAAG;AACnC,UAAU,MAAM,0DAAe,GAAG;AAClC,UAAU,MAAM,iDAAM,GAAG;AACzB;AACA;AACA,yBAAyB,MAAM,gDAAK,gCAAgC;AACpE,mCAAmC,MAAM,gDAAK,0CAA0C;AACxF,iCAAiC,MAAM,iDAAM,wCAAwC;AACrF;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,qEAAuB,GAAG,+DAAwB,CAAC,0DAAsB,GAAG,+DAAwB,CAAC,iDAAa;AAC3Q,gDAAgD,+DAAwB,GAAG,wFAAwF,gIAAgI,aAAa,mDAAmD;AACnW,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qEAAuB,EAAE,IAAI,MAAM,0DAAsB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClI,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS,GAAG,IAAI;AAChB;AACA,CAAC;AACqC;;;;;;;;;;;;;;;;;AC1ItC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsC;;;;;;;;;;;;;;;;ACXvC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqC;;;;;;;;;;;;;;;;;;;;;ACP0D;AAChC;AACe;AACA;AACI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACe;AACvD;AACA;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD,oCAAoC,oFAAuB;AAC3D,iCAAiC,wFAA2B;AAC5D;AACA,oDAAoD;AACpD,kDAAkD;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,4FAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,SAAS;AACT;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,UAAU,MAAM,qEAAgB,GAAG;AACnC,UAAU,MAAM,0DAAe,GAAG;AAClC,UAAU,MAAM,iDAAM,GAAG;AACzB;AACA;AACA,kCAAkC,MAAM,gDAAK,mCAAmC;AAChF,mCAAmC,MAAM,gDAAK,0CAA0C;AACxF,iCAAiC,MAAM,iDAAM,wCAAwC;AACrF;AACA,yFAAyF,gDAAgD,+DAAwB,CAAC,qEAAuB,GAAG,+DAAwB,CAAC,0DAAsB,GAAG,+DAAwB,CAAC,iDAAa;AACpR,mDAAmD,+DAAwB,GAAG,8FAA8F,qJAAqJ,aAAa,mDAAmD;AACjY,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qEAAuB,EAAE,IAAI,MAAM,0DAAsB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClI,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS,GAAG,IAAI;AAChB;AACA,CAAC;AACwC;;;;;;;;;;;;;;;;;;;;ACtHP;AACmD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAc;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B,8FAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8FAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8FAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;AACsC;;;;;;;;;;;;;;;;;;;;;;AC5DwC;AAC/C;AAC6B;AACe;AACzB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACY;AACpD;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,4BAA4B,uDAAY;AACxC,oCAAoC,oFAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,OAAO,uEAAuB,+BAA+B;AAChG,sCAAsC,OAAO,uEAAuB,kCAAkC;AACtG;AACA;AACA,yDAAyD;AACzD,UAAU,MAAM,qEAAgB,GAAG;AACnC,UAAU,MAAM,iDAAM,GAAG;AACzB;AACA;AACA,oBAAoB,MAAM,gDAAK,2BAA2B;AAC1D,oBAAoB,MAAM,iDAAM,8BAA8B;AAC9D,uBAAuB,MAAM,iDAAM,iCAAiC;AACpE;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,qEAAuB,GAAG,+DAAwB,CAAC,iDAAa;AAC1M,2CAA2C,+DAAwB,GAAG,8EAA8E,kCAAkC,aAAa,0DAA0D,aAAa,kEAA2B,GAAG;AACxS,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qEAAuB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAChG,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS,GAAG,IAAI;AAChB;AACA,CAAC;AACgC;;;;;;;;;;;;;;;;;;;;AChFyC;AACb;AACe;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACY;AACpD;AACA;AACA;AACA;AACA,oCAAoC,oFAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,UAAU,MAAM,qEAAgB,GAAG;AACnC,UAAU,MAAM,0DAAe,GAAG;AAClC,UAAU,MAAM,iDAAM,GAAG;AACzB;AACA;AACA,qBAAqB,MAAM,gDAAK,4BAA4B;AAC5D;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,qEAAuB,GAAG,+DAAwB,CAAC,0DAAsB,GAAG,+DAAwB,CAAC,iDAAa;AAC/P,4CAA4C,+DAAwB,GAAG,gFAAgF,uCAAuC;AAC9L,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qEAAuB,EAAE,IAAI,MAAM,0DAAsB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClI,kBAAkB,gDAAK;AACvB;AACA,SAAS,GAAG,IAAI;AAChB;AACA,CAAC;AACiC;;;;;;;;;;;;;;;;;;;AC9GE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAS;AACjC;AACA;AACA;AACA,wBAAwB,kDAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA,CAAC;AACqC;;;;;;;;;;;;;;;;;;;;;;AC3FG;AACmB;AACa;AACE;AACuB;AACV;AAChD;AACxC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,yDAAyD;AACzD,mCAAmC,8DAAuB,GAAG,qBAAqB;AAClF,mCAAmC,8DAAuB,GAAG;AAC7D,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA,oBAAoB,qEAAgB;AACpC,oBAAoB,kFAAqB;AACzC,oBAAoB,oFAAsB;AAC1C,oBAAoB,2GAA6B;AACjD,oBAAoB,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,iBAAiB,mBAAO,CAAC,uBAAY;AACrC,sBAAsB,mBAAO,CAAC,4BAAiB;AAC/C,4BAA4B,mBAAO,CAAC,2CAAiC;AACrE,uBAAuB,mBAAO,CAAC,uCAA4B;AAC3D,2BAA2B,mBAAO,CAAC,wCAA6B;AAChE,aAAa,mBAAO,CAAC,6BAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;;;;;;;;;;;;AChCC;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,oBAAoB,mBAAO,CAAC,0BAAe;AAC3C,kBAAkB,mBAAO,CAAC,wBAAa;AACvC,0BAA0B,mBAAO,CAAC,uCAA4B;AAC9D,2BAA2B,mBAAO,CAAC,wCAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,gBAAgB;AACxC,cAAc,mBAAO,CAAC,kBAAO;AAC7B,qBAAqB,mBAAO,CAAC,gCAAqB;AAClD,iBAAiB,mBAAO,CAAC,u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E,qCAAqC,qCAAqC,EAAC;AAC3H,mBAAmB,mBAAO,CAAC,yBAAc;AACzC,8CAA6C,EAAE,qCAAqC,mCAAmC,EAAC;AACxH,wBAAwB,mBAAO,CAAC,8BAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;;;;;;;;;;;;ACZ1H;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;ACXN;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;;;;;;;;;;;;ACbL;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;;;;;;;;;;;AClBV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,wBAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;;;;;;;;;;;;ACzHJ;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;;;;;;;;;;;AC/Fd;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,mBAAO,CAAC,kBAAO;AAC7B,qBAAqB,mBAAO,CAAC,uBAAY;;;;;;;;;;;;ACH5B;;AACbA,8CAA6C;AAAEG,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AACA,IAAIC,OAAO,GAAGC,mBAAO,CAAC,kBAAD,CAArB;;AACA,IAAIC,WAAW,GAAGD,mBAAO,CAAC,wBAAD,CAAzB;;AACA,IAAIE,WAAW,GAAGF,mBAAO,CAAC,wBAAD,CAAzB;;AACA,IAAIG,mBAAmB,GAAGH,mBAAO,CAAC,uCAAD,CAAjC;;AACA,IAAII,MAAM;AAAG;AAAe,YAAY;AACpC,WAASA,MAAT,CAAgBC,MAAhB,EAAwB;AACpB,SAAKC,IAAL,GAAY,IAAIJ,WAAW,CAACK,SAAhB,EAAZ;;AACA,QAAIF,MAAJ,EAAY;AACR,WAAKG,KAAL,GAAa,IAAIN,WAAW,CAACK,SAAhB,EAAb;AACA,UAAIE,KAAK,GAAGC,gBAAgB,CAACL,MAAD,CA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E,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;ACXN;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;;;;;;;;;;;;ACbL;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;;;;;;;;;;;;;;;;;;ACjB+C;AAC6B;AAC5F,gEAAgE,4DAAmB,UAAU,iDAAU;AACvG,8DAA8D,0DAAiB,UAAU,+CAAQ;;;;;;;;;;;;;;;;;ACHjG;AACP;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzCO;AACP;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;ACL4C;AAC5C;AACA;AACA,0BAA0B,qDAAW;AACrC;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;;;;;;;;;;;;;;ACV3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;;;;;;;AC/BW;AACJ;;;;;;;;;;;;;;;;ACDvB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACP2B;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACD+B;AACmB;AACtE;AACP;AACA;AACO;AACP;AACA;AACO,2BAA2B,mEAAe;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO,yCAAyC,mEAAe;AAC/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO,kCAAkC,mEAAe;AACxD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO,sCAAsC,mEAAe;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AACpC;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AAC5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AAChC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AAChD;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO,iCAAiC,mEAAe;AACvD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wBAAwB,mEAAe;AAC9C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACO,uBAAuB,mEAAe;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2BAA2B,mEAAe;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,CAAC;AACM;AACP;AACA,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,yCAAyC,yBAAyB,oEAAgB,EAAE;AACpF,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,yCAAyC,yBAAyB,oEAAgB,EAAE;AACpF,0CAA0C,0BAA0B,oEAAgB,EAAE;AACtF,CAAC;AACM;AACP;AACA,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,yCAAyC,yBAAyB,oEAAgB,EAAE;AACpF,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,yCAAyC,yBAAyB,oEAAgB,EAAE;AACpF,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,CAAC;AACM;AACP;AACA;AACA;AACA,KAAK;AACL,CAAC;AACM;AACP;AACA,uBAAuB,kFAAkF;AACzG,CAAC;AACM;AACP;AACA;AACA;AACA,KAAK;AACL,CAAC;AACM;AACP;AACA,uBAAuB,OAAO,oEAAgB,EAAE;AAChD,CAAC;AACM;AACP;AACA,wBAAwB,8CAA8C;AACtE,CAAC;AACM;AACP;AACA,4BAA4B,mEAAmE;AAC/F,CAAC;AACM;AACP;AACA;AACA;AACA,KAAK;AACL,CAAC;AACM;AACP;AACA,6BAA6B,sEAAsE;AACnG,CAAC;AACM;AACP;AACA;AACA;AACA,KAAK;AACL,CAAC;AACM;AACP;AACA,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,CAAC;AACM;AACP;AACA,CAAC;AACM;AACP;AACA,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,CAAC;AACM;AACP;AACA;AACA;AACA,KAAK;AACL,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,CAAC;AACM;AACP;AACA;AACA;AACA,KAAK;AACL,CAAC;AACM;AACP;AACA;AACA;AACA,KAAK;AACL,CAAC;AACM;AACP;AACA,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,yCAAyC,yBAAyB,oEAAgB,EAAE;AACpF,CAAC;AACM;AACP;AACA,gCAAgC,gBAAgB,oEAAgB,EAAE;AAClE,6BAA6B,aAAa,oEAAgB,EAAE;AAC5D,yCAAyC,yBAAyB,oEAAgB,EAAE;AACpF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzkByD;AACmB;AACtE,6CAA6C,mEAAe;AACnE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wEAAwE;AAClE;AACP;AACA,0BAA0B,UAAU,oEAAgB,EAAE;AACtD,CAAC;AACM;AACP;AACA,4BAA4B,0DAA0D;AACtF,CAAC;AACM;AACP;AACA,oBAAoB,0CAA0C;AAC9D,CAAC;AACM;AACP;AACA,gCAAgC,sEAAsE;AACtG,CAAC;AACM;AACP;AACA,gCAAgC,sEAAsE;AACtG,CAAC;AACM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,CAAC,uCAA4B;AAC9D,2BAA2B,mBAAO,CAAC,wCAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kBAAkB;AAC5C,cAAc,mBAAO,CAAC,kBAAO;AAC7B,qBAAqB,mBAAO,CAAC,kCAAuB;AACpD,mBAAmB,mBAAO,CAAC,yBAAc;AACzC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,wBAAwB,mBAAO,CAAC,8BAAmB;AACnD,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;;;;;;;;;;;;ACRjH;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;ACTN;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,aAAa,mBAAO,CAAC,6BAAkB;AACvC,kBAAkB,mBAAO,CAAC,wBAAa;AACvC,2BAA2B,mBAAO,CAAC,wCAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8BAA8B;AAC1E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,+CAA+C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0CAA0C;AAC1C;AACA;AACA;AACA,CAAC;AACD,cAAc;;;;;;;;;;;;ACtDD;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,kBAAkB,mBAAO,CAAC,wBAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;;;;;;;;;;;;AC1HJ;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,YAAY,GAAG,WAAW,GAAG,qBAAqB,GAAG,kBAAkB;AACrG;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;;;;ACDrF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU;AACtD,SAAS;AACT;AACA,sDAAsD,UAAU;AAChE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB,2BAA2B,2BAA2B,aAAa,gBAAgB,EAAE,mBAAmB;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sCAAsC;AACtC,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA,4CAA4C,KAAK,oBAAoB,qBAAqB,cAAc,iBAAiB;AACzH,uEAAuE,gBAAgB,cAAc,YAAY;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA,4CAA4C,KAAK,eAAe,qBAAqB,GAAG,wBAAwB;AAChH,uDAAuD,gBAAgB,GAAG,mBAAmB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA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AID,UAAJ,EAAgB;AACZ,eAAOH,QAAP;AACH;;AACD,UAAID,eAAe,IAAI,CAACA,eAAe,CAACC,QAAD,CAAvC,EAAmD;AAC/CG,QAAAA,UAAU,GAAG,IAAb;AACA,eAAOH,QAAP;AACH;;AACD,UAAIF,SAAS,CAACE,QAAD,CAAb,EAAyB;AACrB,cAAMI,gBAAgB,EAAtB;AACA,eAAOJ,QAAP;AACH;;AACD,aAAOA,QAAP;AACH,KAhBD;;AAAA;AAAA;AAAA;AAAA;AAiBH,CA5CM;;;;;;;;;;;;;;;;ACAyC;AACzC;AACP,kBAAkB,aAAa,gEAAoB,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,EAAE;AAClF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtBO;AACP;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;;;;;;;;;ACJhC;AACP,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBU;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;;;;;;;;;;;;;;;AC/CO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbwB;AACQ;AACP;AACK;AACA;AACC;AACG;;;;;;;;;;;;;;;;ACN3B;AACP;AACA;AACA;;;;;;;;;;;;;;;;;ACHqD;AAC9C;AACP;AACA;AACA;AACA,cAAc,mEAAS;AACvB;AACA,iDAAiD,UAAU;AAC3D,8BAA8B,IAAI,GAAG,mEAAS,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA,+BAA+B,mEAAS,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACtBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1BwJ;AACxJ;AACA,oCAAoC,uEAA+B;AACnE;AACP,IAAI,uEAA+B;AACnC;AACO,oCAAoC,sEAA8B;AACzE,IAAI,2EAAmC;AACvC,IAAI,6EAAqC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMhE,WAAN,CAAkB;AACrB3P,EAAAA,WAAW,CAAC;AAAE4V,IAAAA,aAAF;AAAiB7F,IAAAA,WAAjB;AAA8B9S,IAAAA,MAA9B;AAAsCqK,IAAAA,OAAtC;AAA+CjK,IAAAA,MAA/C;AAAuDiT,IAAAA,aAAa,GAAG;AAAvE,GAAD,EAAiF;AACxF,SAAKuF,gBAAL,GAAwB,IAAI5B,wEAAJ,CAAqBG,sDAArB,EAA6Bp/C,wDAA7B,CAAxB;AACA,SAAKsyC,OAAL,GAAeA,OAAf;AACA,SAAKjK,MAAL,GAAcA,MAAd;AACA,SAAKiT,aAAL,GAAqBA,aAArB;AACA,SAAKsF,aAAL,GAAqB,OAAOA,aAAP,KAAyB,SAAzB,GAAqCA,aAArC,GAAqD,IAA1E;AACA,SAAKE,cAAL,GAAsB9P,2EAAiB,CAAC/I,MAAD,CAAvC;AACA,SAAK8Y,kBAAL,GAA0B/P,2EAAiB,CAAC+J,WAAD,CAA3C;AACH;;AACKiG,EAAAA,OAAO,CAACC,eAAD,EAAkBhW,OAAO,GAAG,EAA5B,EAAgC;AAAA;;AAAA;AACzC,YAAM;AAAEiR,QAAAA,WAAW,GAAG,IAAI/kB,IAAJ,EAAhB;AAA4B+pB,QAAAA,SAAS,GAAG,IAAxC;AAA8CC,QAAAA,iBAA9C;AAAiEC,QAAAA,kBAAjE;AAAqFC,QAAAA,eAArF;AAAsGvQ,QAAAA,aAAtG;AAAqHuK,QAAAA;AAArH,UAAyIpQ,OAA/I;AACA,YAAM8P,WAAW,SAAS,KAAI,CAACgG,kBAAL,EAA1B;;AACA,WAAI,CAACO,2BAAL,CAAiCvG,WAAjC;;AACA,YAAM9S,MAAM,GAAG6I,aAAa,WAAW,KAAI,CAACgQ,cAAL,EAAX,CAA5B;AACA,YAAM;AAAES,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,UAA0BC,UAAU,CAACvF,WAAD,CAA1C;;AACA,UAAIgF,SAAS,GAAGrB,yDAAhB,EAAmC;AAC/B,eAAOpY,OAAO,CAACC,MAAR,CAAe,uCAAuC,qDAAvC,GAA+F,aAA9G,CAAP;AACH;;AACD,YAAMga,KAAK,GAAGvB,kEAAW,CAACqB,SAAD,EAAYvZ,MAAZ,EAAoBoT,cAAc,IAAI,KAAI,CAAC/I,OAA3C,CAAzB;AACA,YAAMhH,OAAO,GAAGmV,wEAAkB,CAACC,gEAAc,CAACO,eAAD,CAAf,EAAkC;AAAEG,QAAAA;AAAF,OAAlC,CAAlC;;AACA,UAAIrG,WAAW,CAAC4G,YAAhB,EAA8B;AAC1BrW,QAAAA,OAAO,CAACllC,KAAR,CAAc85C,yDAAd,IAAmCnF,WAAW,CAAC4G,YAA/C;AACH;;AACDrW,MAAAA,OAAO,CAACllC,KAAR,CAAck5C,6DAAd,IAAuCD,4DAAvC;AACA/T,MAAAA,OAAO,CAACllC,KAAR,CAAcs5C,8DAAd,IAAyC,GAAE3E,WAAW,CAAC6G,WAAY,IAAGF,KAAM,EAA5E;AACApW,MAAAA,OAAO,CAACllC,KAAR,CAAco5C,4DAAd,IAAsC+B,QAAtC;AACAjW,MAAAA,OAAO,CAACllC,KAAR,CAAcw5C,2DAAd,IAAqCsB,SAAS,CAAC55C,QAAV,CAAmB,EAAnB,CAArC;AACA,YAAMu6C,gBAAgB,GAAGxB,yEAAmB,CAAC/U,OAAD,EAAU6V,iBAAV,EAA6BE,eAA7B,CAA5C;AACA/V,MAAAA,OAAO,CAACllC,KAAR,CAAc45C,kEAAd,IAA4C8B,sBAAsB,CAACD,gBAAD,CAAlE;AACAvW,MAAAA,OAAO,CAACllC,KAAR,CAAc25C,6DAAd,UAA6C,KAAI,CAACgC,YAAL,CAAkBR,QAAlB,EAA4BG,KAA5B,EAAmC,KAAI,CAACtB,aAAL,CAAmBrF,WAAnB,EAAgC9S,MAAhC,EAAwCuZ,SAAxC,EAAmDnG,cAAnD,CAAnC,EAAuG,KAAI,CAAC2G,sBAAL,CAA4B1W,OAA5B,EAAqCuW,gBAArC,QAA6DtB,+DAAc,CAACU,eAAD,EAAkB,KAAI,CAAC5Y,MAAvB,CAA3E,CAAvG,CAA7C;AACA,aAAOiD,OAAP;AArByC;AAsB5C;;AACK2Q,EAAAA,IAAI,CAACgG,MAAD,EAAShX,OAAT,EAAkB;AAAA;;AAAA;AACxB,UAAI,OAAOgX,MAAP,KAAkB,QAAtB,EAAgC;AAC5B,eAAO,MAAI,CAACC,UAAL,CAAgBD,MAAhB,EAAwBhX,OAAxB,CAAP;AACH,OAFD,MAGK,IAAIgX,MAAM,CAACr8C,OAAP,IAAkBq8C,MAAM,CAACE,OAA7B,EAAsC;AACvC,eAAO,MAAI,CAACC,SAAL,CAAeH,MAAf,EAAuBhX,OAAvB,CAAP;AACH,OAFI,MAGA,IAAIgX,MAAM,CAACnc,OAAX,EAAoB;AACrB,eAAO,MAAI,CAACuc,WAAL,CAAiBJ,MAAjB,EAAyBhX,OAAzB,CAAP;AACH,OAFI,MAGA;AACD,eAAO,MAAI,CAACqX,WAAL,CAAiBL,MAAjB,EAAyBhX,OAAzB,CAAP;AACH;AAZuB;AAa3B;;AACKmX,EAAAA,SAAS,CAAC;AAAEx8C,IAAAA,OAAF;AAAWu8C,IAAAA;AAAX,GAAD,EAAuB;AAAEjG,IAAAA,WAAW,GAAG,IAAI/kB,IAAJ,EAAhB;AAA4BorB,IAAAA,cAA5B;AAA4CzR,IAAAA,aAA5C;AAA2DuK,IAAAA;AAA3D,GAAvB,EAAoG;AAAA;;AAAA;AAC/G,YAAMpT,MAAM,GAAG6I,aAAa,WAAW,MAAI,CAACgQ,cAAL,EAAX,CAA5B;AACA,YAAM;AAAEU,QAAAA,SAAF;AAAaD,QAAAA;AAAb,UAA0BE,UAAU,CAACvF,WAAD,CAA1C;AACA,YAAMwF,KAAK,GAAGvB,kEAAW,CAACqB,SAAD,EAAYvZ,MAAZ,EAAoBoT,cAAc,IAAI,MAAI,CAAC/I,OAA3C,CAAzB;AACA,YAAMkQ,aAAa,SAASjC,+DAAc,CAAC;AAAE36C,QAAAA,OAAO,EAAE,EAAX;AAAeW,QAAAA,IAAI,EAAE47C;AAArB,OAAD,EAAiC,MAAI,CAAC9Z,MAAtC,CAA1C;AACA,YAAMjqC,IAAI,GAAG,IAAI,MAAI,CAACiqC,MAAT,EAAb;AACAjqC,MAAAA,IAAI,CAACS,MAAL,CAAY+G,OAAZ;AACA,YAAM68C,aAAa,GAAGvD,iEAAK,OAAO9gD,IAAI,CAACmB,MAAL,EAAP,CAA3B;AACA,YAAMmjD,YAAY,GAAG,CACjB/C,kEADiB,EAEjB4B,QAFiB,EAGjBG,KAHiB,EAIjBa,cAJiB,EAKjBE,aALiB,EAMjBD,aANiB,EAOnBvyC,IAPmB,CAOd,IAPc,CAArB;AAQA,aAAO,MAAI,CAACiyC,UAAL,CAAgBQ,YAAhB,EAA8B;AAAExG,QAAAA,WAAF;AAAepL,QAAAA,aAAa,EAAE7I,MAA9B;AAAsCoT,QAAAA;AAAtC,OAA9B,CAAP;AAhB+G;AAiBlH;;AACKgH,EAAAA,WAAW,CAACM,eAAD,EAAkB;AAAEzG,IAAAA,WAAW,GAAG,IAAI/kB,IAAJ,EAAhB;AAA4B2Z,IAAAA,aAA5B;AAA2CuK,IAAAA;AAA3C,GAAlB,EAA+E;AAAA;;AAAA;AAC5F,YAAMuH,OAAO,GAAG,MAAI,CAACR,SAAL,CAAe;AAC3Bx8C,QAAAA,OAAO,EAAE,MAAI,CAACi7C,gBAAL,CAAsBgC,MAAtB,CAA6BF,eAAe,CAAC7c,OAAhB,CAAwBlgC,OAArD,CADkB;AAE3Bu8C,QAAAA,OAAO,EAAEQ,eAAe,CAAC7c,OAAhB,CAAwBv/B;AAFN,OAAf,EAGb;AACC21C,QAAAA,WADD;AAECpL,QAAAA,aAFD;AAGCuK,QAAAA,cAHD;AAICkH,QAAAA,cAAc,EAAEI,eAAe,CAACJ;AAJjC,OAHa,CAAhB;;AASA,aAAOK,OAAO,CAACre,IAAR,CAAcue,SAAD,IAAe;AAC/B,eAAO;AAAEhd,UAAAA,OAAO,EAAE6c,eAAe,CAAC7c,OAA3B;AAAoCgd,UAAAA;AAApC,SAAP;AACH,OAFM,CAAP;AAV4F;AAa/F;;AACKZ,EAAAA,UAAU,CAACQ,YAAD,EAAe;AAAExG,IAAAA,WAAW,GAAG,IAAI/kB,IAAJ,EAAhB;AAA4B2Z,IAAAA,aAA5B;AAA2CuK,IAAAA;AAA3C,MAA8D,EAA7E,EAAiF;AAAA;;AAAA;AAC7F,YAAMN,WAAW,SAAS,MAAI,CAACgG,kBAAL,EAA1B;;AACA,YAAI,CAACO,2BAAL,CAAiCvG,WAAjC;;AACA,YAAM9S,MAAM,GAAG6I,aAAa,WAAW,MAAI,CAACgQ,cAAL,EAAX,CAA5B;AACA,YAAM;AAAEU,QAAAA;AAAF,UAAgBC,UAAU,CAACvF,WAAD,CAAhC;AACA,YAAM99C,IAAI,GAAG,IAAI,MAAI,CAACiqC,MAAT,OAAsB,MAAI,CAAC+X,aAAL,CAAmBrF,WAAnB,EAAgC9S,MAAhC,EAAwCuZ,SAAxC,EAAmDnG,cAAnD,CAAtB,CAAb;AACAj9C,MAAAA,IAAI,CAACS,MAAL,CAAYsgD,gEAAY,CAACuD,YAAD,CAAxB;AACA,aAAOxD,iEAAK,OAAO9gD,IAAI,CAACmB,MAAL,EAAP,CAAZ;AAP6F;AAQhG;;AACK+iD,EAAAA,WAAW,CAACS,aAAD,EAAgB;AAAE7G,IAAAA,WAAW,GAAG,IAAI/kB,IAAJ,EAAhB;AAA4BkqB,IAAAA,eAA5B;AAA6CF,IAAAA,iBAA7C;AAAgErQ,IAAAA,aAAhE;AAA+EuK,IAAAA;AAA/E,MAAmG,EAAnH,EAAuH;AAAA;;AAAA;AACpI,YAAMN,WAAW,SAAS,MAAI,CAACgG,kBAAL,EAA1B;;AACA,YAAI,CAACO,2BAAL,CAAiCvG,WAAjC;;AACA,YAAM9S,MAAM,GAAG6I,aAAa,WAAW,MAAI,CAACgQ,cAAL,EAAX,CAA5B;AACA,YAAMxV,OAAO,GAAGoV,gEAAc,CAACqC,aAAD,CAA9B;AACA,YAAM;AAAExB,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,UAA0BC,UAAU,CAACvF,WAAD,CAA1C;AACA,YAAMwF,KAAK,GAAGvB,kEAAW,CAACqB,SAAD,EAAYvZ,MAAZ,EAAoBoT,cAAc,IAAI,MAAI,CAAC/I,OAA3C,CAAzB;AACAhH,MAAAA,OAAO,CAAC1lC,OAAR,CAAgB25C,uDAAhB,IAAmCgC,QAAnC;;AACA,UAAIxG,WAAW,CAAC4G,YAAhB,EAA8B;AAC1BrW,QAAAA,OAAO,CAAC1lC,OAAR,CAAgBq6C,oDAAhB,IAAgClF,WAAW,CAAC4G,YAA5C;AACH;;AACD,YAAMqB,WAAW,SAASzC,+DAAc,CAACjV,OAAD,EAAU,MAAI,CAACjD,MAAf,CAAxC;;AACA,UAAI,CAACmY,uDAAS,CAACV,qDAAD,EAAgBxU,OAAO,CAAC1lC,OAAxB,CAAV,IAA8C,MAAI,CAACg7C,aAAvD,EAAsE;AAClEtV,QAAAA,OAAO,CAAC1lC,OAAR,CAAgBk6C,qDAAhB,IAAiCkD,WAAjC;AACH;;AACD,YAAMnB,gBAAgB,GAAGxB,yEAAmB,CAAC/U,OAAD,EAAU6V,iBAAV,EAA6BE,eAA7B,CAA5C;AACA,YAAMyB,SAAS,SAAS,MAAI,CAACf,YAAL,CAAkBR,QAAlB,EAA4BG,KAA5B,EAAmC,MAAI,CAACtB,aAAL,CAAmBrF,WAAnB,EAAgC9S,MAAhC,EAAwCuZ,SAAxC,EAAmDnG,cAAnD,CAAnC,EAAuG,MAAI,CAAC2G,sBAAL,CAA4B1W,OAA5B,EAAqCuW,gBAArC,EAAuDmB,WAAvD,CAAvG,CAAxB;AACA1X,MAAAA,OAAO,CAAC1lC,OAAR,CAAgB65C,mDAAhB,IACK,GAAEJ,4DAAqB,GAAxB,GACK,cAAatE,WAAW,CAAC6G,WAAY,IAAGF,KAAM,IADnD,GAEK,iBAAgBI,sBAAsB,CAACD,gBAAD,CAAmB,IAF9D,GAGK,aAAYiB,SAAU,EAJ/B;AAKA,aAAOxX,OAAP;AAtBoI;AAuBvI;;AACD0W,EAAAA,sBAAsB,CAAC1W,OAAD,EAAUuW,gBAAV,EAA4BmB,WAA5B,EAAyC;AAC3D,UAAMC,aAAa,GAAGxlD,MAAM,CAACoM,IAAP,CAAYg4C,gBAAZ,EAA8BqB,IAA9B,EAAtB;AACA,WAAQ,GAAE5X,OAAO,CAAC9kC,MAAO;AACjC,EAAE,KAAK28C,gBAAL,CAAsB7X,OAAtB,CAA+B;AACjC,EAAEgV,qEAAiB,CAAChV,OAAD,CAAU;AAC7B,EAAE2X,aAAa,CAACngD,GAAd,CAAmB4tB,IAAD,IAAW,GAAEA,IAAK,IAAGmxB,gBAAgB,CAACnxB,IAAD,CAAO,EAA9D,EAAiEzgB,IAAjE,CAAsE,IAAtE,CAA4E;AAC9E;AACA,EAAEgzC,aAAa,CAAChzC,IAAd,CAAmB,GAAnB,CAAwB;AAC1B,EAAE+yC,WAAY,EANN;AAOH;;AACKI,EAAAA,kBAAkB,CAAC7B,QAAD,EAAW8B,eAAX,EAA4BC,gBAA5B,EAA8C;AAAA;;AAAA;AAClE,YAAMllD,IAAI,GAAG,IAAI,MAAI,CAACiqC,MAAT,EAAb;AACAjqC,MAAAA,IAAI,CAACS,MAAL,CAAYsgD,gEAAY,CAACmE,gBAAD,CAAxB;AACA,YAAMC,aAAa,SAASnlD,IAAI,CAACmB,MAAL,EAA5B;AACA,aAAQ,GAAE8/C,4DAAqB;AACvC,EAAEkC,QAAS;AACX,EAAE8B,eAAgB;AAClB,EAAEnE,iEAAK,CAACqE,aAAD,CAAgB,EAHf;AAJkE;AAQrE;;AACDJ,EAAAA,gBAAgB,CAAC;AAAE19C,IAAAA;AAAF,GAAD,EAAW;AACvB,QAAI,KAAK61C,aAAT,EAAwB;AACpB,YAAMkI,sBAAsB,GAAG,EAA/B;;AACA,WAAK,MAAMC,WAAX,IAA0Bh+C,IAAI,CAACgE,KAAL,CAAW,GAAX,CAA1B,EAA2C;AACvC,YAAIg6C,WAAW,EAAE1jD,MAAb,KAAwB,CAA5B,EACI;AACJ,YAAI0jD,WAAW,KAAK,GAApB,EACI;;AACJ,YAAIA,WAAW,KAAK,IAApB,EAA0B;AACtBD,UAAAA,sBAAsB,CAACE,GAAvB;AACH,SAFD,MAGK;AACDF,UAAAA,sBAAsB,CAACxW,IAAvB,CAA4ByW,WAA5B;AACH;AACJ;;AACD,YAAME,cAAc,GAAI,GAAEl+C,IAAI,EAAEme,UAAN,CAAiB,GAAjB,IAAwB,GAAxB,GAA8B,EAAG,GAAE4/B,sBAAsB,CAACvzC,IAAvB,CAA4B,GAA5B,CAAiC,GAAEuzC,sBAAsB,CAACzjD,MAAvB,GAAgC,CAAhC,IAAqC0F,IAAI,EAAEO,QAAN,CAAe,GAAf,CAArC,GAA2D,GAA3D,GAAiE,EAAG,EAApK;AACA,YAAM49C,aAAa,GAAGtS,kBAAkB,CAACqS,cAAD,CAAxC;AACA,aAAOC,aAAa,CAAClqC,OAAd,CAAsB,MAAtB,EAA8B,GAA9B,CAAP;AACH;;AACD,WAAOjU,IAAP;AACH;;AACKs8C,EAAAA,YAAY,CAACR,QAAD,EAAW8B,eAAX,EAA4BQ,UAA5B,EAAwCP,gBAAxC,EAA0D;AAAA;;AAAA;AACxE,YAAMZ,YAAY,SAAS,MAAI,CAACU,kBAAL,CAAwB7B,QAAxB,EAAkC8B,eAAlC,EAAmDC,gBAAnD,CAA3B;AACA,YAAMllD,IAAI,GAAG,IAAI,MAAI,CAACiqC,MAAT,OAAsBwb,UAAtB,CAAb;AACAzlD,MAAAA,IAAI,CAACS,MAAL,CAAYsgD,gEAAY,CAACuD,YAAD,CAAxB;AACA,aAAOxD,iEAAK,OAAO9gD,IAAI,CAACmB,MAAL,EAAP,CAAZ;AAJwE;AAK3E;;AACD6gD,EAAAA,aAAa,CAACrF,WAAD,EAAc9S,MAAd,EAAsBuZ,SAAtB,EAAiClP,OAAjC,EAA0C;AACnD,WAAO8N,oEAAa,CAAC,KAAK/X,MAAN,EAAc0S,WAAd,EAA2ByG,SAA3B,EAAsCvZ,MAAtC,EAA8CqK,OAAO,IAAI,KAAKA,OAA9D,CAApB;AACH;;AACDgP,EAAAA,2BAA2B,CAACvG,WAAD,EAAc;AACrC,QAAI,OAAOA,WAAP,KAAuB,QAAvB,IACA,OAAOA,WAAW,CAAC6G,WAAnB,KAAmC,QADnC,IAEA,OAAO7G,WAAW,CAAC+I,eAAnB,KAAuC,QAF3C,EAEqD;AACjD,YAAM,IAAIziD,KAAJ,CAAU,yCAAV,CAAN;AACH;AACJ;;AAvKoB;;AAyKzB,MAAMogD,UAAU,GAAIjK,GAAD,IAAS;AACxB,QAAM+J,QAAQ,GAAGZ,mDAAO,CAACnJ,GAAD,CAAP,CAAa99B,OAAb,CAAqB,QAArB,EAA+B,EAA/B,CAAjB;AACA,SAAO;AACH6nC,IAAAA,QADG;AAEHC,IAAAA,SAAS,EAAED,QAAQ,CAACt7C,KAAT,CAAe,CAAf,EAAkB,CAAlB;AAFR,GAAP;AAIH,CAND;;AAOA,MAAM67C,sBAAsB,GAAIl8C,OAAD,IAAanI,MAAM,CAACoM,IAAP,CAAYjE,OAAZ,EAAqBs9C,IAArB,GAA4BjzC,IAA5B,CAAiC,GAAjC,CAA5C;;;;;;;;;;;;;;;;AC7LO,wBAAwB,yBAAyB;AACxD;AACA,eAAe,YAAY;AAC3B;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC1CP;AACA;AACA;AACA,MAAMg0C,eAAe,GAAG,EAAxB;AACA,MAAMC,UAAU,GAAG,EAAnB;AACO,MAAM/D,WAAW,GAAG,CAACqB,SAAD,EAAYvZ,MAAZ,EAAoBqK,OAApB,KAAiC,GAAEkP,SAAU,IAAGvZ,MAAO,IAAGqK,OAAQ,IAAGyR,2DAAoB,EAA7G;AACA,MAAM3D,aAAa;AAAA,qKAAG,WAAO+D,iBAAP,EAA0BpJ,WAA1B,EAAuCyG,SAAvC,EAAkDvZ,MAAlD,EAA0DqK,OAA1D,EAAsE;AAC/F,UAAM8R,SAAS,SAASC,IAAI,CAACF,iBAAD,EAAoBpJ,WAAW,CAAC+I,eAAhC,EAAiD/I,WAAW,CAAC6G,WAA7D,CAA5B;AACA,UAAM0C,QAAQ,GAAI,GAAE9C,SAAU,IAAGvZ,MAAO,IAAGqK,OAAQ,IAAG4M,iEAAK,CAACkF,SAAD,CAAY,IAAGrJ,WAAW,CAAC4G,YAAa,EAAnG;;AACA,QAAI2C,QAAQ,IAAIL,eAAhB,EAAiC;AAC7B,aAAOA,eAAe,CAACK,QAAD,CAAtB;AACH;;AACDJ,IAAAA,UAAU,CAAClX,IAAX,CAAgBsX,QAAhB;;AACA,WAAOJ,UAAU,CAACnkD,MAAX,GAAoBikD,sDAA3B,EAA2C;AACvC,aAAOC,eAAe,CAACC,UAAU,CAACK,KAAX,EAAD,CAAtB;AACH;;AACD,QAAI5e,GAAG,GAAI,OAAMoV,WAAW,CAAC+I,eAAgB,EAA7C;;AACA,SAAK,MAAMU,QAAX,IAAuB,CAAChD,SAAD,EAAYvZ,MAAZ,EAAoBqK,OAApB,EAA6ByR,2DAA7B,CAAvB,EAA0E;AACtEpe,MAAAA,GAAG,SAAS0e,IAAI,CAACF,iBAAD,EAAoBxe,GAApB,EAAyB6e,QAAzB,CAAhB;AACH;;AACD,WAAQP,eAAe,CAACK,QAAD,CAAf,GAA4B3e,GAApC;AACH,GAfyB;;AAAA,kBAAbya,aAAa;AAAA;AAAA;AAAA,GAAnB;AAgBA,MAAMqE,oBAAoB,GAAG,MAAM;AACtCP,EAAAA,UAAU,CAACnkD,MAAX,GAAoB,CAApB;AACAtC,EAAAA,MAAM,CAACoM,IAAP,CAAYo6C,eAAZ,EAA6BS,OAA7B,CAAsCJ,QAAD,IAAc;AAC/C,WAAOL,eAAe,CAACK,QAAD,CAAtB;AACH,GAFD;AAGH,CALM;;AAMP,MAAMD,IAAI,GAAG,CAACM,IAAD,EAAOxmD,MAAP,EAAe2B,IAAf,KAAwB;AACjC,QAAM1B,IAAI,GAAG,IAAIumD,IAAJ,CAASxmD,MAAT,CAAb;AACAC,EAAAA,IAAI,CAACS,MAAL,CAAYsgD,gEAAY,CAACr/C,IAAD,CAAxB;AACA,SAAO1B,IAAI,CAACmB,MAAL,EAAP;AACH,CAJD;;;;;;;;;;;;;;;;AC5BkG;AAC3F,+BAA+B,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iEAAyB;AAC5D;AACA,YAAY,iEAAyB;AACrC,YAAY,+DAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnBqD;AACN;AACxC,6BAA6B,YAAY;AAChD;AACA;AACA;AACA,kCAAkC,wDAAgB;AAClD;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAS,MAAM,GAAG,mEAAS,QAAQ;AACpE;AACA;AACA;AACA;AACA;AACA,+DAA+D,mEAAS,MAAM,GAAG,mEAAS,QAAQ;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACO,MAAMghD,cAAc;AAAA,qKAAG,WAAO;AAAE36C,IAAAA,OAAF;AAAWW,IAAAA;AAAX,GAAP,EAA0Bu+C,eAA1B,EAA8C;AACxE,SAAK,MAAMC,UAAX,IAAyBtnD,MAAM,CAACoM,IAAP,CAAYjE,OAAZ,CAAzB,EAA+C;AAC3C,UAAIm/C,UAAU,CAAC96C,WAAX,OAA6B61C,qDAAjC,EAAgD;AAC5C,eAAOl6C,OAAO,CAACm/C,UAAD,CAAd;AACH;AACJ;;AACD,QAAIx+C,IAAI,IAAIvF,SAAZ,EAAuB;AACnB,aAAO,kEAAP;AACH,KAFD,MAGK,IAAI,OAAOuF,IAAP,KAAgB,QAAhB,IAA4BtG,WAAW,CAACC,MAAZ,CAAmBqG,IAAnB,CAA5B,IAAwDq+C,uEAAa,CAACr+C,IAAD,CAAzE,EAAiF;AAClF,YAAMy+C,QAAQ,GAAG,IAAIF,eAAJ,EAAjB;AACAE,MAAAA,QAAQ,CAACnmD,MAAT,CAAgBsgD,gEAAY,CAAC54C,IAAD,CAA5B;AACA,aAAO24C,iEAAK,OAAO8F,QAAQ,CAACzlD,MAAT,EAAP,CAAZ;AACH;;AACD,WAAOslD,wDAAP;AACH,GAf0B;;AAAA,kBAAdtE,cAAc;AAAA;AAAA;AAAA,GAApB;;;;;;;;;;;;;;;;;ACJA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB8B;AAC8B;AACJ;AACN;AACQ;AACR;AACX;;;;;;;;;;;;;;;;;ACNO;AACvC,iDAAiD;AACxD,YAAY,sBAAsB,0DAA0D,2DAAY;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACf8C;AACE;AACzC;AACP,sEAAsE,2DAAY;AAClF;AACA,YAAY,iEAAyB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVO;AACP;AACA,mBAAmB,EAAE;AACd;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACdO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACN2D;AACpD;AACP;AACA,+BAA+B,yEAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACvBA;AACO,MAAM1+C,WAAW;AAAA,qKAAG,WAAOyiC,UAAU,GAAG,IAAI7lC,UAAJ,EAApB,EAAsC4G,OAAtC,EAAkD;AACzE,QAAIi/B,UAAU,YAAY7lC,UAA1B,EAAsC;AAClC,aAAOwmD,8EAAA,CAA6B3gB,UAA7B,CAAP;AACH;;AACD,QAAI,CAACA,UAAL,EAAiB;AACb,aAAO2gB,8EAAA,CAA6B,IAAIxmD,UAAJ,EAA7B,CAAP;AACH;;AACD,UAAM0mD,WAAW,GAAG9/C,OAAO,CAACihC,eAAR,CAAwBhC,UAAxB,CAApB;AACA,WAAO2gB,8EAAA,OAAmCE,WAAnC,CAAP;AACH,GATuB;;AAAA,kBAAXtjD,WAAW;AAAA;AAAA;AAAA,GAAjB;;;;;;;;;;;;;;;;ACDoD;AACpD;AACP;AACA,+BAA+B,yEAAc;AAC7C;AACA;;;;;;;;;;;;;;;;ACLO;;;;;;;;;;;;;;;;;;ACAA,MAAMujD,sBAAsB,GAAG,CAACC,QAAD,EAAWC,MAAX,KAAsB;AACxD,OAAK,MAAMC,OAAX,IAAsB9nD,MAAM,CAACoM,IAAP,CAAYw7C,QAAZ,CAAtB,EAA6C;AACzC,UAAMG,WAAW,GAAGH,QAAQ,CAACE,OAAD,CAA5B;;AACA,UAAME,UAAU;AAAA,yKAAG,WAAgBhlD,IAAhB,EAAsBilD,WAAtB,EAAmCC,EAAnC,EAAuC;AACtD,cAAMJ,OAAO,GAAG,IAAIC,WAAJ,CAAgB/kD,IAAhB,CAAhB;;AACA,YAAI,OAAOilD,WAAP,KAAuB,UAA3B,EAAuC;AACnC,eAAKhlD,IAAL,CAAU6kD,OAAV,EAAmBG,WAAnB;AACH,SAFD,MAGK,IAAI,OAAOC,EAAP,KAAc,UAAlB,EAA8B;AAC/B,cAAI,OAAOD,WAAP,KAAuB,QAA3B,EACI,MAAM,IAAIrkD,KAAJ,CAAW,iCAAgC,OAAOqkD,WAAY,EAA9D,CAAN;AACJ,eAAKhlD,IAAL,CAAU6kD,OAAV,EAAmBG,WAAW,IAAI,EAAlC,EAAsCC,EAAtC;AACH,SAJI,MAKA;AACD,iBAAO,KAAKjlD,IAAL,CAAU6kD,OAAV,EAAmBG,WAAnB,CAAP;AACH;AACJ,OAbe;;AAAA,sBAAVD,UAAU;AAAA;AAAA;AAAA,OAAhB;;AAcA,UAAMG,UAAU,GAAG,CAACL,OAAO,CAAC,CAAD,CAAP,CAAWt7C,WAAX,KAA2Bs7C,OAAO,CAACt/C,KAAR,CAAc,CAAd,CAA5B,EAA8CyT,OAA9C,CAAsD,UAAtD,EAAkE,EAAlE,CAAnB;AACA4rC,IAAAA,MAAM,CAACvmD,SAAP,CAAiB6mD,UAAjB,IAA+BH,UAA/B;AACH;AACJ,CApBM;;;;;;;;;;;;;;;;;;;;ACAkG;AACzG;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc,OAAO,cAAc;AACzF,4CAA4C,SAAS,OAAO,SAAS;AACrE,gDAAgD,WAAW,OAAO,WAAW;AAC7E,gDAAgD,WAAW,OAAO,WAAW;AAC7E,cAAc,gBAAgB,IAAI,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,eAAe;AAC9H;AACA,iCAAiC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AACvE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAgB;AACjC;AACA;AACA,yCAAyC,iDAAiD;AAC1F;AACA,6CAA6C,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE;AAClH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAgB;AACjC;AACA;AACA,+CAA+C,iDAAiD;AAChG;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE,wDAAwD,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE;AAC5J,oGAAoG,EAAE,wDAAwD,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE;AAC1L,2HAA2H,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE;AACpK;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAgB,wGAAwG,iDAAiD;AAClM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,8DAAgB,mHAAmH,iDAAiD;AAC7M;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,8DAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,eAAe,KAAK,KAAK,IAAI,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6DAAe;AACnC;AACA,+BAA+B,MAAM,kBAAkB,OAAO,MAAM,MAAM;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gEAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC1LwD;AACjD,6BAA6B,8CAA8C;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,qEAAwB;AAClC;AACO;AACP,cAAc,+BAA+B;AAC7C,4BAA4B,6DAA6D;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;ACrBM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzBA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2DAA2D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrBO;AACP;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;ACJO;;;;;;;;;;;;;;;;ACAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX6B;AACJ;AACa;AACZ;AACE;AACe;AACd;AACW;AACR;AACkB;AACrB;AACmB;AACL;AACA;AACf;AACK;AACH;AACC;AACH;AACC;AACC;;;;;;;;;;;;;;;;;ACpBvB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AChCO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3FO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,MAAM;AACpE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa,IAAI,MAAM;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa,IAAI,MAAM;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,IAAI,MAAM;AACxE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,MAAM;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa,IAAI,MAAM;AACvE;AACA;AACO;AACP;AACA;AACA;AACA,8DAA8D,MAAM;AACpE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,IAAI,MAAM;AACxE;AACO;AACA;AACA;AACA;AACP;AACA;AACA;AACA,wCAAwC,KAAK,oBAAoB,MAAM;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa,IAAI,MAAM;AACvE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,aAAa,IAAI,MAAM;AACrF;AACA;AACA,gDAAgD,aAAa,IAAI,MAAM;AACvE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,SAAS;AAC3F;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,MAAM;AAClE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;ACrO6E;AACtE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0FAA0B;AAC5D;AACA,cAAc,0FAA0B;AACxC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACZO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;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A;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa,2BAA2B;AACxC;AACA;AACA;AACA;AACA,6BAA6B,oDAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB,EAAE,2DAAY;AAC9C,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7D4D;AAC5B;AACzB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAgB;AAC5C;AACA;AACA;AACA,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA,8BAA8B,mEAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yCAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yCAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAK,2BAA2B,GAAG,iEAAK,2BAA2B,GAAG,iEAAK,2BAA2B,GAAG,iEAAK,4BAA4B,GAAG,iEAAK,yBAAyB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AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,wBAAa;AACvC,4CAA2C,EAAE,qCAAqC,gCAAgC,EAAC;;;;;;;;;;;;AC1GtG;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,0BAA0B,mBAAO,CAAC,uCAA4B;AAC9D;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;;;;;;;;;;;ACtBV;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,uBAAuB;AAC5F,wBAAwB,mBAAO,CAAC,8BAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI,oBAAoB,mBAAO,CAAC,0BAAe;AAC3C,+CAA8C,EAAE,qCAAqC,qCAAqC,EAAC;AAC3H,mBAAmB,mBAAO,CAAC,yBAAc;AACzC,8CAA6C,EAAE,qCAAqC,mCAAmC,EAAC;AACxH,wBAAwB,mBAAO,CAAC,8BAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;;;;;;;;;;;;ACZ1H;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;ACXN;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU;AACtD,SAAS;AACT;AACA,sDAAsD,UAAU;AAChE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB,2BAA2B,2BAA2B,aAAa,gBAAgB,EAAE,mBAAmB;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sCAAsC;AACtC,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA,4CAA4C,KAAK,oBAAoB,qBAAqB,cAAc,iBAAiB;AACzH,uEAAuE,gBAAgB,cAAc,YAAY;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA,4CAA4C,KAAK,eAAe,qBAAqB,GAAG,wBAAwB;AAChH,uDAAuD,gBAAgB,GAAG,mBAAmB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5NkC;;;;;;;;;;;;;;;;;ACAyB;AACpD;AACP;AACA,+BAA+B,yEAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvB2D;AACpD;AACP;AACA,+BAA+B,yEAAc;AAC7C;AACA;;;;;;;;;;;;;;;;ACLO;;;;;;;;;;;;;;;;;;;;ACAkG;AACzG;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc,OAAO,cAAc;AACzF,4CAA4C,SAAS,OAAO,SAAS;AACrE,gDAAgD,WAAW,OAAO,WAAW;AAC7E,gDAAgD,WAAW,OAAO,WAAW;AAC7E,cAAc,gBAAgB,IAAI,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,eAAe;AAC9H;AACA,iCAAiC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AACvE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAgB;AACjC;AACA;AACA,yCAAyC,iDAAiD;AAC1F;AACA,sEAAsE,EAAE,wDAAwD,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE;AAC5J,oGAAoG,EAAE,wDAAwD,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE;AAC1L,2HAA2H,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE;AACpK;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAgB,wGAAwG,iDAAiD;AAClM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,8DAAgB,mHAAmH,iDAAiD;AAC7M;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,8DAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,eAAe,KAAK,KAAK,IAAI,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6DAAe;AACnC;AACA,+BAA+B,MAAM,kBAAkB,OAAO,MAAM,MAAM;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gEAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpJwD;AACjD,6BAA6B,8CAA8C;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,qEAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;AChBM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzBA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2DAA2D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrBO;AACP;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;ACJO;;;;;;;;;;;;;;;;ACAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXyB;AACC;AACE;AACC;AACW;AACR;AACkB;AACrB;AACmB;AACL;AACA;AACf;AACK;AACH;AACC;AACH;AACE;;;;;;;;;;;;;;;;;AChBvB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChCO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,MAAM;AACpE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa,IAAI,MAAM;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa,IAAI,MAAM;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,IAAI,MAAM;AACxE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,MAAM;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa,IAAI,MAAM;AACvE;AACA;AACO;AACP;AACA;AACA;AACA,8DAA8D,MAAM;AACpE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,IAAI,MAAM;AACxE;AACO;AACA;AACA;AACA;AACP;AACA;AACA;AACA,wCAAwC,KAAK,oBAAoB,MAAM;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa,IAAI,MAAM;AACvE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,aAAa,IAAI,MAAM;AACrF;AACA;AACA,gDAAgD,aAAa,IAAI,MAAM;AACvE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,SAAS;AAC3F;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,MAAM;AAClE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;ACrO6E;AACtE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0FAA0B;AAC5D;AACA,cAAc,0FAA0B;AACxC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACZO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,sBAAW;AAChC,cAAc,mBAAO,CAAC,oBAAS;AAC/B;AACA;AACA;AACA;;AAEA,cAAc;AACd,kBAAkB;AAClB,yBAAyB;;AAEzB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,yBAAyB,QAAQ;AACjC;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA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kBAAkB,aAAa,gEAAoB,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,EAAE;AAClF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtBO;AACP;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;;;;;;;;;ACJhC;AACP,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBU;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;;;;;;;;;;;;;;;AC/CO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbwB;AACQ;AACP;AACK;AACA;AACC;AACG;;;;;;;;;;;;;;;;ACN3B;AACP;AACA;AACA;;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AACxC;AACP;AACA;AACA;AACA,CAAC,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;ACZ7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMQ,2BAA2B,GAAG,CAAC3vD,MAAD,EAAS4vD,gBAAT,KAA+B5hB,IAAD;AAAA,qKAAU,WAAOnuC,IAAP,EAAgB;AAC/F,QAAI,CAACuD,0EAAA,CAAuBvD,IAAI,CAAC6qC,OAA5B,CAAL,EAA2C;AACvC,aAAOsD,IAAI,CAACnuC,IAAD,CAAX;AAC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AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;;;;;;;;;;;;;;;AClBhB;AACP;;;;;;;;;;;;;;;;;ACDgD;AACzC;AACP,kBAAkB,aAAa,gEAAoB,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,EAAE;AAClF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtBO;AACP;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;;;;;;;;;ACJhC;AACP,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBU;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;;;;;;;;;;;;;;;AC/CO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbwB;AACQ;AACP;AACK;AACA;AACC;AACG;;;;;;;;;;;;;;;;ACN3B;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACHO,SAASyB,4BAAT,CAAsC9mB,OAAtC,EAA+C;AAClD,SAAQ2D,IAAD;AAAA,uKAAU,WAAOnuC,IAAP,EAAgB;AAC7B,YAAM;AAAE6J,QAAAA;AAAF,UAAgC7J,IAAI,CAACd,KAA3C;AACA,YAAMsoC,MAAM,SAASgD,OAAO,CAAChD,MAAR,EAArB;;AACA,UAAI,CAAC39B,yBAAD,IAA8B,CAACA,yBAAyB,CAAC4V,kBAA7D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uC;AAAL,OAAD,CAAX;AACH,KARM;;AAAA;AAAA;AAAA;AAAA,KAAP;AASH;AACM,MAAMmzD,mCAAmC,GAAG;AAC/C5kB,EAAAA,IAAI,EAAE,YADyC;AAE/CC,EAAAA,IAAI,EAAE,CAAC,sBAAD,CAFyC;AAG/Cve,EAAAA,IAAI,EAAE,8BAHyC;AAI/Cwe,EAAAA,QAAQ,EAAE;AAJqC,CAA5C;AAMA,MAAM2kB,2BAA2B,GAAIX,MAAD,KAAa;AACpD9jB,EAAAA,YAAY,EAAGC,WAAD,IAAiB;AAC3BA,IAAAA,WAAW,CAACC,GAAZ,CAAgBqkB,4BAA4B,EAA5C,EAAgDC,mCAAhD;AACH;AAHmD,CAAb,CAApC;;;;;;;;;;;;;;;;AClByC;AACzC;AACP,kBAAkB,aAAa,gEAAoB,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,EAAE;AAClF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtBO;AACP;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;;;;;;;;;ACJhC;AACP,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBU;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;;;;;;;;;;;;;;;AC/CO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbwB;AACQ;AACP;AACK;AAC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xG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACf8C;AACE;AACzC;AACP,sEAAsE,2DAAY;AAClF;AACA,YAAY,iEAAyB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVO;AACP;AACA,mBAAmB,EAAE;AACd;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACdA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChCoC;;;;;;;;;;;;;;;;ACA7B;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLyC;AAClC,kDAAkD,kDAAS;;;;;;;;;;;;;;;;ACD3D;AACP,6BAA6B,2CAA2C;;;;;;;;;;;;;;;;;;;ACD3C;AACK;;;;;;;;;;;;;;;;;;ACD3B;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,YAAY,0DAA0D;AACtE;AACA;AACA;AACA,kBAAkB,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS;AAC1E;;;;;;;;;;;;;;;;;;;;ACpBA;AACA;AACA,sEAAsE,oBAAoB;AAC1F;AACA;AACA;AACA;AACA,sEAAsE,oBAAoB;AAC1F;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2F;;;;;;;;;;;;;;;;;AC3BN;AAC9E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA,uCA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;;;;;ACXoC;AACF;AACV;;;;;;;;;;;;;;;;;;;;;;;;ACFoB;AACjB;AACC;;;;;;;;;;;;;;;;;;ACFiB;AACU;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mEAAgB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAW;AACnB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACd+C;AAC/C,6BAA6B,6CAAc;AAC3C;AACO;AACP,YAAY,aAAa;AACzB;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,qBAAqB,6CAAc;AACnC;AACO;;;;;;;;;;;;;;;;ACxCA;;;;;;;;;;;;;;;;;;ACAkC;AACW;AAC7C,iCAAiC,iEAAe;AACvD;AACA,kBAAkB,iDAAa,WAAW,MAAM,QAAQ,KAAK,kBAAkB,sBAAsB;AACrG;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACVwC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAa,WAAW,KAAK;AACvD;AACA;AACA;AACA,0BAA0B,iDAAa,0BAA0B,WAAW,cAAc,KAAK;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxB6B;AACG;AACN;AACF;AACW;AACb;AACK;AACI;AACH;AACA;;;;;;;;;;;;;;;;ACT5B,6HAA6H,EAAE;AACxH;;;;;;;;;;;;;;;;ACDA;;;;;;;;;;;;;;;;ACAP,sEAAsE,KAAK;AACpE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;A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O;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbwB;AACQ;AACP;AACK;AACA;AACC;AACG;;;;;;;;;;;;;;;;ACN3B;AACP;AACA;AACA;;;;;;;;;;;;;;;;;ACHqD;AAC9C;AACP;AACA;AACA;AACA,cAAc,mEAAS;AACvB;AACA,iDAAiD,UAAU;AAC3D,8BAA8B,IAAI,GAAG,mEAAS,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA,+BAA+B,mEAAS,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpBA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChCyC;AAClC,kDAAkD,kDAAS;;;;;;;;;;;;;;;;ACD3D;AACP,6BAA6B,2CAA2C;;;;;;;;;;;;;;;;;;;ACD3C;AACK;;;;;;;;;;;;;;;;;;;ACDoC;AAC6B;AAC5F;AACP,+CAA+C,4DAAmB,UAAU,iDAAU;AACtF;AACO;AACP,+CAA+C,0DAAiB,UAAU,+CAAQ;AAClF;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gCAAgC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxDO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gD,IAAI,UAAU;AACnH;AACA;;;;;;;;;;;;;;;;;AC9CiD;AAC1C;AACP;AACA;AACA;AACA;AACA,eAAe,8DAAa;AAC5B;AACA;;;;;;;;;;;;;;;;ACRO;AACP,qCAAqC,sBAAsB,sBAAsB,wBAAwB;AACzG;;;;;;;;;;;;;;;;ACFO;AACP;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,4BAA4B;AAC5B,+BAA+B;AAC/B,+BAA+B;AAC/B,mCAAmC;AACnC,oCAAoC;AACpC;;;;;;;;;;;;;;;;;;;ACX0B;AACA;;;;;;;;;;;;;;;;ACD1B;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACsC;AACc;AACV;AACP;AACa;AAChD,+BAA+B,oCAAoC;AAC5D,gCAAgC,mDAAU;AACjD,uCAAuC,2CAA2C,sBAAsB,kCAAkC;AAC1I;AACA;AACA,4CAA4C,mDAAe;AAC3D,mCAAmC,6DAAe;AAClD;AACA;AACA,mCAAmC,yDAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACO;AACP,sCAAsC,mCAAmC;AACzE;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,iBAAiB,aAAa,iBAAiB,WAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,sCAAsC,sCAAsC;AAC5E;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,sCAAsC,iBAA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CA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAwC;AAChE;AACA,eAAe,cAAc,cAAc,uCAAuC;AAClF;AACA;AACA,QAAQ,kDAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,2EAAsB;AAC7D;AACA;AACA,uCAAuC,2EAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D;AACA,iBAAiB,eAAe,gBAAgB,uCAAuC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2DAAc;AAC7C,eAAe,gEAAoB,4BAA4B,yDAAmB,uBAAuB,6DAAe;AACxH;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChHA;AACA;AACA;AACO;AACP;AACA,2EAA2E,4CAA4C;AACvH;AACA,0EAA0E,4CAA4C;AACtH;AACA,0EAA0E,4CAA4C;AACtH;AACA,iFAAiF,kDAAkD;AACnI;AACA,iFAAiF,kDAAkD;AACnI;AACA,oEAAoE,sCAAsC;AAC1G;AACA,qEAAqE,uCAAuC;AAC5G;AACA,CAAC,kCAAkC;;;;;;;;;;;;;;;;ACnBnC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;;;;;;;;;;;;;;;;;ACvB7B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;;;;;;;;;;;;;;;;;;;;;ACtBzC;AACA;AAC6C;AACR;AACS;AACP;AACiB;AACxD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAmB;AACjD;AACA,6BAA6B,qCAAqC;AAClE;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yDAAmB;AACxC;AACA;AACA,yBAAyB,uEAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iEAAsB;AAC3C;AACA;AACA,qBAAqB,iEAAsB;AAC3C;AACA;AACA,qBAAqB,iEAAsB;AAC3C;AACA;AACA,qBAAqB,2DAAgB;AACrC;AACA;AACA,qBAAqB,4DAAiB;AACtC;AACA;AACA;AACA;AACA,+BAA+B,0DAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qCAAqC;AACnE;AACA,eAAe,YAAY;AAC3B,iBAAiB,QAAQ;AACzB;AACA;AACA,eAAe,uEAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrGA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;CAEA;;AACA;;AACO,MAAMtK,oBAAN,CAA2B;AAC9BzyB,EAAAA,WAAW,CAAC6zB,UAAD,EAAasB,kBAAb,EAAiC5sB,MAAjC,EAAyCtI,OAAzC,EAAkD;AACzD,SAAK2zB,WAAL,GAAmBC,UAAnB;AACA,SAAKqB,mBAAL,GAA2BC,kBAA3B;AACA,SAAK9E,OAAL,GAAe9nB,MAAf;AACA,SAAKm4B,UAAL,GAAkB,IAAIv/B,6DAAJ,EAAlB;AACA,SAAK6yB,QAAL,GAAgB/zB,OAAhB;AACA,SAAK0gC,QAAL,GAAgB,KAAhB;AACA,SAAK1M,SAAL,GAAiB,IAAjB;AACA,SAAKC,OAAL,GAAe,IAAf;AACH,GAV6B,CAW9B;;;AACe,MAAX0M,WAAW,GAAG;AACd,WAAO,KAAKF,UAAL,CAAgBjgC,OAAvB;AACH;;AACK22B,EAAAA,OAAO,CAACp2B,GAAD,EAAMozB,cAAN,EAAsB;AAAA;;AAAA;AAC/BzB,MAAAA,kDAAA,CAAe3xB,GAAf,EAAoB,KAApB;AACA2xB,MAAAA,kDAAA,CAAeyB,cAAf,EAA+B,gBAA/B;AACAzB,MAAAA,4CAAA,CAASyB,cAAT,EAAyB5B,uDAAzB,EAAyC,gBAAzC;AACA,WAAI,CAACqO,IAAL,GAAY7/B,GAAZ;;AACA,WAAI,CAACqvB,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,qCAAjC,EAL+B,CAM/B;;;AACA,UAAImE,cAAc,KAAK5B,8DAAnB,IACC,OAAOuO,cAAP,KAA0B,WAA1B,IAAyC,OAAO,IAAIA,cAAJ,GAAqBrP,YAA5B,KAA6C,QAD3F,EACsG;AAClG,cAAM,IAAIr7D,KAAJ,CAAU,4FAAV,CAAN;AACH;;AACD,YAAM,CAACqvB,IAAD,EAAO9yB,KAAP,IAAgBigE,0DAAkB,EAAxC;AACA,YAAMj4D,OAAO,GAAG;AAAE,SAAC8qB,IAAD,GAAQ9yB,KAAV;AAAiB,WAAG,KAAI,CAACohE,QAAL,CAAcp5D;AAAlC,OAAhB;AACA,YAAMomE,WAAW,GAAG;AAChBzgC,QAAAA,WAAW,EAAE,KAAI,CAACmgC,UAAL,CAAgBtgB,MADb;AAEhBxlD,QAAAA,OAFgB;AAGhBm2D,QAAAA,OAAO,EAAE,MAHO;AAIhBK,QAAAA,eAAe,EAAE,KAAI,CAAC4C,QAAL,CAAc5C;AAJf,OAApB;;AAMA,UAAIgD,cAAc,KAAK5B,8DAAvB,EAA8C;AAC1CwO,QAAAA,WAAW,CAACtP,YAAZ,GAA2B,aAA3B;AACH;;AACD,YAAM57D,KAAK,SAAS,KAAI,CAACmrE,eAAL,EAApB;;AACA,WAAI,CAACC,kBAAL,CAAwBF,WAAxB,EAAqClrE,KAArC,EAvB+B,CAwB/B;AACA;;;AACA,YAAMqrE,OAAO,GAAI,GAAEngC,GAAI,MAAK7U,IAAI,CAACqgB,GAAL,EAAW,EAAvC;;AACA,WAAI,CAAC6jB,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,oCAAmCkR,OAAQ,GAA7E;;AACA,YAAM3/B,QAAQ,SAAS,KAAI,CAACoyB,WAAL,CAAiBwN,GAAjB,CAAqBD,OAArB,EAA8BH,WAA9B,CAAvB;;AACA,UAAIx/B,QAAQ,CAAC3yB,UAAT,KAAwB,GAA5B,EAAiC;AAC7B,aAAI,CAACwhD,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,qDAAoDzuB,QAAQ,CAAC3yB,UAAW,GAA1G,EAD6B,CAE7B;;;AACA,aAAI,CAACwyD,WAAL,GAAmB,IAAIvR,8CAAJ,CAActuB,QAAQ,CAACM,UAAT,IAAuB,EAArC,EAAyCN,QAAQ,CAAC3yB,UAAlD,CAAnB;AACA,aAAI,CAAC8xD,QAAL,GAAgB,KAAhB;AACH,OALD,MAMK;AACD,aAAI,CAACA,QAAL,GAAgB,IAAhB;AACH;;AACD,WAAI,CAACW,UAAL,GAAkB,KAAI,CAACC,KAAL,CAAW,KAAI,CAACV,IAAhB,EAAsBG,WAAtB,CAAlB;AAtC+B;AAuClC;;AACKC,EAAAA,eAAe,GAAG;AAAA;;AAAA;AACpB,UAAI,MAAI,CAAC/L,mBAAT,EAA8B;AAC1B,qBAAa,MAAI,CAACA,mBAAL,EAAb;AACH;;AACD,aAAO,IAAP;AAJoB;AAKvB;;AACDgM,EAAAA,kBAAkB,CAAC5gC,OAAD,EAAUxqC,KAAV,EAAiB;AAC/B,QAAI,CAACwqC,OAAO,CAAC1lC,OAAb,EAAsB;AAClB0lC,MAAAA,OAAO,CAAC1lC,OAAR,GAAkB,EAAlB;AACH;;AACD,QAAI9E,KAAJ,EAAW;AACPwqC,MAAAA,OAAO,CAAC1lC,OAAR,CAAgB03D,mEAAhB,IAA8C,UAASx8D,KAAM,EAA7D;AACA;AACH;;AACD,QAAIwqC,OAAO,CAAC1lC,OAAR,CAAgB03D,mEAAhB,CAAJ,EAAgD;AAC5C,aAAOhyB,OAAO,CAAC1lC,OAAR,CAAgB03D,mEAAhB,CAAP;AACH;AACJ;;AACKiP,EAAAA,KAAK,CAACvgC,GAAD,EAAMggC,WAAN,EAAmB;AAAA;;AAAA;AAC1B,UAAI;AACA,eAAO,MAAI,CAACL,QAAZ,EAAsB;AAClB;AACA,gBAAM7qE,KAAK,SAAS,MAAI,CAACmrE,eAAL,EAApB;;AACA,gBAAI,CAACC,kBAAL,CAAwBF,WAAxB,EAAqClrE,KAArC;;AACA,cAAI;AACA,kBAAMqrE,OAAO,GAAI,GAAEngC,GAAI,MAAK7U,IAAI,CAACqgB,GAAL,EAAW,EAAvC;;AACA,kBAAI,CAAC6jB,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,oCAAmCkR,OAAQ,GAA7E;;AACA,kBAAM3/B,QAAQ,SAAS,MAAI,CAACoyB,WAAL,CAAiBwN,GAAjB,CAAqBD,OAArB,EAA8BH,WAA9B,CAAvB;;AACA,gBAAIx/B,QAAQ,CAAC3yB,UAAT,KAAwB,GAA5B,EAAiC;AAC7B,oBAAI,CAACwhD,OAAL,CAAaV,GAAb,CAAiBM,0DAAjB,EAAuC,oDAAvC;;AACA,oBAAI,CAAC0Q,QAAL,GAAgB,KAAhB;AACH,aAHD,MAIK,IAAIn/B,QAAQ,CAAC3yB,UAAT,KAAwB,GAA5B,EAAiC;AAClC,oBAAI,CAACwhD,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,qDAAoDzuB,QAAQ,CAAC3yB,UAAW,GAA1G,EADkC,CAElC;;;AACA,oBAAI,CAACwyD,WAAL,GAAmB,IAAIvR,8CAAJ,CAActuB,QAAQ,CAACM,UAAT,IAAuB,EAArC,EAAyCN,QAAQ,CAAC3yB,UAAlD,CAAnB;AACA,oBAAI,CAAC8xD,QAAL,GAAgB,KAAhB;AACH,aALI,MAMA;AACD;AACA,kBAAIn/B,QAAQ,CAAC0vB,OAAb,EAAsB;AAClB,sBAAI,CAACb,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,0CAAyCuQ,qDAAa,CAACh/B,QAAQ,CAAC0vB,OAAV,EAAmB,MAAI,CAAC8C,QAAL,CAAcT,iBAAjC,CAAoD,GAA5I;;AACA,oBAAI,MAAI,CAACU,SAAT,EAAoB;AAChB,wBAAI,CAACA,SAAL,CAAezyB,QAAQ,CAAC0vB,OAAxB;AACH;AACJ,eALD,MAMK;AACD;AACA,sBAAI,CAACb,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,oDAAjC;AACH;AACJ;AACJ,WA3BD,CA4BA,OAAO77D,CAAP,EAAU;AACN,gBAAI,CAAC,MAAI,CAACusE,QAAV,EAAoB;AAChB;AACA,oBAAI,CAACtQ,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,wDAAuD77D,CAAC,CAAC0mC,OAAQ,EAAnG;AACH,aAHD,MAIK;AACD,kBAAI1mC,CAAC,YAAY27D,iDAAjB,EAA+B;AAC3B;AACA,sBAAI,CAACM,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,oDAAjC;AACH,eAHD,MAIK;AACD;AACA,sBAAI,CAACoR,WAAL,GAAmBjtE,CAAnB;AACA,sBAAI,CAACusE,QAAL,GAAgB,KAAhB;AACH;AACJ;AACJ;AACJ;AACJ,OAnDD,SAoDQ;AACJ,cAAI,CAACtQ,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,2CAAjC,EADI,CAEJ;AACA;;;AACA,YAAI,CAAC,MAAI,CAAC2Q,WAAV,EAAuB;AACnB,gBAAI,CAACY,aAAL;AACH;AACJ;AA5DyB;AA6D7B;;AACK9rE,EAAAA,IAAI,CAACZ,IAAD,EAAO;AAAA;;AAAA;AACb,UAAI,CAAC,MAAI,CAAC6rE,QAAV,EAAoB;AAChB,eAAOlkC,OAAO,CAACC,MAAR,CAAe,IAAIrmC,KAAJ,CAAU,8CAAV,CAAf,CAAP;AACH;;AACD,aAAOoqE,mDAAW,CAAC,MAAI,CAACpQ,OAAN,EAAe,aAAf,EAA8B,MAAI,CAACuD,WAAnC,EAAgD,MAAI,CAACiN,IAArD,EAA2D,MAAI,CAAC3L,mBAAhE,EAAqFpgE,IAArF,EAA2F,MAAI,CAACk/D,QAAhG,CAAlB;AAJa;AAKhB;;AACKc,EAAAA,IAAI,GAAG;AAAA;;AAAA;AACT,YAAI,CAACzE,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,2CAAjC,EADS,CAET;;;AACA,YAAI,CAAC0Q,QAAL,GAAgB,KAAhB;;AACA,YAAI,CAACD,UAAL,CAAgBzgB,KAAhB;;AACA,UAAI;AACA,cAAM,MAAI,CAACqhB,UAAX,CADA,CAEA;;AACA,cAAI,CAACjR,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,qDAAoD,MAAI,CAAC4Q,IAAK,GAAhG;;AACA,cAAMjmE,OAAO,GAAG,EAAhB;AACA,cAAM,CAAC8qB,IAAD,EAAO9yB,KAAP,IAAgBigE,0DAAkB,EAAxC;AACAj4D,QAAAA,OAAO,CAAC8qB,IAAD,CAAP,GAAgB9yB,KAAhB;AACA,cAAM6uE,aAAa,GAAG;AAClB7mE,UAAAA,OAAO,EAAE,EAAE,GAAGA,OAAL;AAAc,eAAG,MAAI,CAACo5D,QAAL,CAAcp5D;AAA/B,WADS;AAElBm2D,UAAAA,OAAO,EAAE,MAAI,CAACiD,QAAL,CAAcjD,OAFL;AAGlBK,UAAAA,eAAe,EAAE,MAAI,CAAC4C,QAAL,CAAc5C;AAHb,SAAtB;AAKA,cAAMt7D,KAAK,SAAS,MAAI,CAACmrE,eAAL,EAApB;;AACA,cAAI,CAACC,kBAAL,CAAwBO,aAAxB,EAAuC3rE,KAAvC;;AACA,cAAM,MAAI,CAAC89D,WAAL,CAAiBlyD,MAAjB,CAAwB,MAAI,CAACm/D,IAA7B,EAAmCY,aAAnC,CAAN;;AACA,cAAI,CAACpR,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,8CAAjC;AACH,OAhBD,SAiBQ;AACJ,cAAI,CAACI,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,wCAAjC,EADI,CAEJ;AACA;;;AACA,cAAI,CAACuR,aAAL;AACH;AA3BQ;AA4BZ;;AACDA,EAAAA,aAAa,GAAG;AACZ,QAAI,KAAKtN,OAAT,EAAkB;AACd,UAAIwN,UAAU,GAAG,+CAAjB;;AACA,UAAI,KAAKL,WAAT,EAAsB;AAClBK,QAAAA,UAAU,IAAI,aAAa,KAAKL,WAAhC;AACH;;AACD,WAAKhR,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiCyR,UAAjC;;AACA,WAAKxN,OAAL,CAAa,KAAKmN,WAAlB;AACH;AACJ;;AAnL6B;;;;;;;;;;;;;;;;;;;;ACVlC;AACA;AACA;AACA;AACA;AACA;;AACO,MAAM3O,yBAAN,CAAgC;AACnC1yB,EAAAA,WAAW,CAAC6zB,UAAD,EAAasB,kBAAb,EAAiC5sB,MAAjC,EAAyCtI,OAAzC,EAAkD;AACzD,SAAK2zB,WAAL,GAAmBC,UAAnB;AACA,SAAKqB,mBAAL,GAA2BC,kBAA3B;AACA,SAAK9E,OAAL,GAAe9nB,MAAf;AACA,SAAKyrB,QAAL,GAAgB/zB,OAAhB;AACA,SAAKg0B,SAAL,GAAiB,IAAjB;AACA,SAAKC,OAAL,GAAe,IAAf;AACH;;AACKkD,EAAAA,OAAO,CAACp2B,GAAD,EAAMozB,cAAN,EAAsB;AAAA;;AAAA;AAC/BzB,MAAAA,kDAAA,CAAe3xB,GAAf,EAAoB,KAApB;AACA2xB,MAAAA,kDAAA,CAAeyB,cAAf,EAA+B,gBAA/B;AACAzB,MAAAA,4CAAA,CAASyB,cAAT,EAAyB5B,uDAAzB,EAAyC,gBAAzC;;AACA,WAAI,CAACnC,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,6BAAjC,EAJ+B,CAK/B;;;AACA,WAAI,CAAC4Q,IAAL,GAAY7/B,GAAZ;;AACA,UAAI,KAAI,CAACk0B,mBAAT,EAA8B;AAC1B,cAAMp/D,KAAK,SAAS,KAAI,CAACo/D,mBAAL,EAApB;;AACA,YAAIp/D,KAAJ,EAAW;AACPkrC,UAAAA,GAAG,IAAI,CAACA,GAAG,CAACsC,OAAJ,CAAY,GAAZ,IAAmB,CAAnB,GAAuB,GAAvB,GAA6B,GAA9B,IAAsC,gBAAegD,kBAAkB,CAACxwC,KAAD,CAAQ,EAAtF;AACH;AACJ;;AACD,aAAO,IAAI2mC,OAAJ,CAAY,CAACc,OAAD,EAAUb,MAAV,KAAqB;AACpC,YAAIilC,MAAM,GAAG,KAAb;;AACA,YAAIvN,cAAc,KAAK5B,4DAAvB,EAA4C;AACxC91B,UAAAA,MAAM,CAAC,IAAIrmC,KAAJ,CAAU,2EAAV,CAAD,CAAN;AACA;AACH;;AACD,YAAIwrE,WAAJ;;AACA,YAAI3R,sDAAA,IAAsBA,wDAA1B,EAAgD;AAC5C2R,UAAAA,WAAW,GAAG,IAAI,KAAI,CAAC7N,QAAL,CAAcL,WAAlB,CAA8B3yB,GAA9B,EAAmC;AAAEowB,YAAAA,eAAe,EAAE,KAAI,CAAC4C,QAAL,CAAc5C;AAAjC,WAAnC,CAAd;AACH,SAFD,MAGK;AACD;AACA,gBAAMQ,OAAO,GAAG,KAAI,CAACgC,WAAL,CAAiBjC,eAAjB,CAAiC3wB,GAAjC,CAAhB;;AACA,gBAAMpmC,OAAO,GAAG,EAAhB;AACAA,UAAAA,OAAO,CAACmnE,MAAR,GAAiBnQ,OAAjB;AACA,gBAAM,CAAClsC,IAAD,EAAO9yB,KAAP,IAAgBigE,0DAAkB,EAAxC;AACAj4D,UAAAA,OAAO,CAAC8qB,IAAD,CAAP,GAAgB9yB,KAAhB;AACAivE,UAAAA,WAAW,GAAG,IAAI,KAAI,CAAC7N,QAAL,CAAcL,WAAlB,CAA8B3yB,GAA9B,EAAmC;AAAEowB,YAAAA,eAAe,EAAE,KAAI,CAAC4C,QAAL,CAAc5C,eAAjC;AAAkDx2D,YAAAA,OAAO,EAAE,EAAE,GAAGA,OAAL;AAAc,iBAAG,KAAI,CAACo5D,QAAL,CAAcp5D;AAA/B;AAA3D,WAAnC,CAAd;AACH;;AACD,YAAI;AACAinE,UAAAA,WAAW,CAACG,SAAZ,GAAyB5tE,CAAD,IAAO;AAC3B,gBAAI,KAAI,CAAC6/D,SAAT,EAAoB;AAChB,kBAAI;AACA,qBAAI,CAAC5D,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,kCAAiCuQ,qDAAa,CAACpsE,CAAC,CAACU,IAAH,EAAS,KAAI,CAACk/D,QAAL,CAAcT,iBAAvB,CAA0C,GAA1H;;AACA,qBAAI,CAACU,SAAL,CAAe7/D,CAAC,CAACU,IAAjB;AACH,eAHD,CAIA,OAAOZ,KAAP,EAAc;AACV,qBAAI,CAAC+tE,MAAL,CAAY/tE,KAAZ;;AACA;AACH;AACJ;AACJ,WAXD,CADA,CAaA;;;AACA2tE,UAAAA,WAAW,CAACr+B,OAAZ,GAAuBpvC,CAAD,IAAO;AACzB;AACA,gBAAIutE,MAAJ,EAAY;AACR,mBAAI,CAACM,MAAL;AACH,aAFD,MAGK;AACDvlC,cAAAA,MAAM,CAAC,IAAIrmC,KAAJ,CAAU,oFACX,0GADW,GAEX,uEAFC,CAAD,CAAN;AAGH;AACJ,WAVD;;AAWAwrE,UAAAA,WAAW,CAACK,MAAZ,GAAqB,MAAM;AACvB,iBAAI,CAAC7R,OAAL,CAAaV,GAAb,CAAiBM,0DAAjB,EAAwC,oBAAmB,KAAI,CAAC4Q,IAAK,EAArE;;AACA,iBAAI,CAACsB,YAAL,GAAoBN,WAApB;AACAF,YAAAA,MAAM,GAAG,IAAT;AACApkC,YAAAA,OAAO;AACV,WALD;AAMH,SA/BD,CAgCA,OAAOnpC,CAAP,EAAU;AACNsoC,UAAAA,MAAM,CAACtoC,CAAD,CAAN;AACA;AACH;AACJ,OAvDM,CAAP;AAb+B;AAqElC;;AACKsB,EAAAA,IAAI,CAACZ,IAAD,EAAO;AAAA;;AAAA;AACb,UAAI,CAAC,MAAI,CAACqtE,YAAV,EAAwB;AACpB,eAAO1lC,OAAO,CAACC,MAAR,CAAe,IAAIrmC,KAAJ,CAAU,8CAAV,CAAf,CAAP;AACH;;AACD,aAAOoqE,mDAAW,CAAC,MAAI,CAACpQ,OAAN,EAAe,KAAf,EAAsB,MAAI,CAACuD,WAA3B,EAAwC,MAAI,CAACiN,IAA7C,EAAmD,MAAI,CAAC3L,mBAAxD,EAA6EpgE,IAA7E,EAAmF,MAAI,CAACk/D,QAAxF,CAAlB;AAJa;AAKhB;;AACDc,EAAAA,IAAI,GAAG;AACH,SAAKmN,MAAL;;AACA,WAAOxlC,OAAO,CAACc,OAAR,EAAP;AACH;;AACD0kC,EAAAA,MAAM,CAAC7tE,CAAD,EAAI;AACN,QAAI,KAAK+tE,YAAT,EAAuB;AACnB,WAAKA,YAAL,CAAkBnlB,KAAlB;;AACA,WAAKmlB,YAAL,GAAoBnsE,SAApB;;AACA,UAAI,KAAKk+D,OAAT,EAAkB;AACd,aAAKA,OAAL,CAAa9/D,CAAb;AACH;AACJ;AACJ;;AAjGkC;;;;;;;;;;;;;;;;ACNvC;AACA;AAC8C;AAC9C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uDAAmB;AACtC;AACA;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACO;AACP;AACA,kBAAkB,OAAO,EAAE,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;CAEA;;AACA;;AACO,MAAMiuE,OAAO,GAAG,OAAhB;AACP;;AACO,MAAM1P,GAAN,CAAU;AACI,SAAVS,UAAU,CAAC/4B,GAAD,EAAM3U,IAAN,EAAY;AACzB,QAAI2U,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKrkC,SAA5B,EAAuC;AACnC,YAAM,IAAIK,KAAJ,CAAW,QAAOqvB,IAAK,yBAAvB,CAAN;AACH;AACJ;;AACgB,SAAV48C,UAAU,CAACjoC,GAAD,EAAM3U,IAAN,EAAY;AACzB,QAAI,CAAC2U,GAAD,IAAQA,GAAG,CAACiuB,KAAJ,CAAU,OAAV,CAAZ,EAAgC;AAC5B,YAAM,IAAIjyD,KAAJ,CAAW,QAAOqvB,IAAK,iCAAvB,CAAN;AACH;AACJ;;AACU,SAAJ4uC,IAAI,CAACj6B,GAAD,EAAMkoC,MAAN,EAAc78C,IAAd,EAAoB;AAC3B;AACA,QAAI,EAAE2U,GAAG,IAAIkoC,MAAT,CAAJ,EAAsB;AAClB,YAAM,IAAIlsE,KAAJ,CAAW,WAAUqvB,IAAK,WAAU2U,GAAI,GAAxC,CAAN;AACH;AACJ;;AAhBY;AAkBjB;;AACO,MAAM61B,QAAN,CAAe;AAClB;AACoB,aAATuH,SAAS,GAAG;AACnB,WAAO,OAAO1c,MAAP,KAAkB,QAAlB,IAA8B,OAAOA,MAAM,CAAC4c,QAAd,KAA2B,QAAhE;AACH,GAJiB,CAKlB;;;AACsB,aAAXmK,WAAW,GAAG;AACrB,WAAO,OAAOU,IAAP,KAAgB,QAAhB,IAA4B,mBAAmBA,IAAtD;AACH,GARiB,CASlB;;;AACwB,aAAbC,aAAa,GAAG;AACvB,WAAO,OAAO1nB,MAAP,KAAkB,QAAlB,IAA8B,OAAOA,MAAM,CAAC4c,QAAd,KAA2B,WAAhE;AACH,GAZiB,CAalB;AACA;;;AACiB,aAAN9F,MAAM,GAAG;AAChB,WAAO,CAAC,KAAK4F,SAAN,IAAmB,CAAC,KAAKqK,WAAzB,IAAwC,CAAC,KAAKW,aAArD;AACH;;AAjBiB;AAmBtB;;AACO,SAASjC,aAAT,CAAuB1rE,IAAvB,EAA6B4tE,cAA7B,EAA6C;AAChD,MAAIC,MAAM,GAAG,EAAb;;AACA,MAAI/oB,aAAa,CAAC9kD,IAAD,CAAjB,EAAyB;AACrB6tE,IAAAA,MAAM,GAAI,yBAAwB7tE,IAAI,CAAChB,UAAW,EAAlD;;AACA,QAAI4uE,cAAJ,EAAoB;AAChBC,MAAAA,MAAM,IAAK,eAAcC,iBAAiB,CAAC9tE,IAAD,CAAO,GAAjD;AACH;AACJ,GALD,MAMK,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC/B6tE,IAAAA,MAAM,GAAI,yBAAwB7tE,IAAI,CAACC,MAAO,EAA9C;;AACA,QAAI2tE,cAAJ,EAAoB;AAChBC,MAAAA,MAAM,IAAK,eAAc7tE,IAAK,GAA9B;AACH;AACJ;;AACD,SAAO6tE,MAAP;AACH;AACD;;AACO,SAASC,iBAAT,CAA2B9tE,IAA3B,EAAiC;AACpC,QAAM+tE,IAAI,GAAG,IAAIpvE,UAAJ,CAAeqB,IAAf,CAAb,CADoC,CAEpC;;AACA,MAAIgvC,GAAG,GAAG,EAAV;AACA++B,EAAAA,IAAI,CAACnpB,OAAL,CAAc+S,GAAD,IAAS;AAClB,UAAMqW,GAAG,GAAGrW,GAAG,GAAG,EAAN,GAAW,GAAX,GAAiB,EAA7B;AACA3oB,IAAAA,GAAG,IAAK,KAAIg/B,GAAI,GAAErW,GAAG,CAACnwD,QAAJ,CAAa,EAAb,CAAiB,GAAnC;AACH,GAHD,EAJoC,CAQpC;;AACA,SAAOwnC,GAAG,CAACi/B,MAAJ,CAAW,CAAX,EAAcj/B,GAAG,CAAC/uC,MAAJ,GAAa,CAA3B,CAAP;AACH,EACD;;AACA;;AACO,SAAS6kD,aAAT,CAAuBvf,GAAvB,EAA4B;AAC/B,SAAOA,GAAG,IAAI,OAAOplC,WAAP,KAAuB,WAA9B,KACFolC,GAAG,YAAYplC,WAAf,IACG;AACColC,EAAAA,GAAG,CAAC2F,WAAJ,IAAmB3F,GAAG,CAAC2F,WAAJ,CAAgBta,IAAhB,KAAyB,aAH9C,CAAP;AAIH;AACD;;AACO,SAAe+6C,WAAtB;AAAA;AAAA;AAuBA;;;yKAvBO,WAA2Bl4B,MAA3B,EAAmCy6B,aAAnC,EAAkDnP,UAAlD,EAA8D7yB,GAA9D,EAAmEm0B,kBAAnE,EAAuFjE,OAAvF,EAAgGjxB,OAAhG,EAAyG;AAC5G,QAAIrlC,OAAO,GAAG,EAAd;;AACA,QAAIu6D,kBAAJ,EAAwB;AACpB,YAAMr/D,KAAK,SAASq/D,kBAAkB,EAAtC;;AACA,UAAIr/D,KAAJ,EAAW;AACP8E,QAAAA,OAAO,GAAG;AACN,WAAC,eAAD,GAAoB,UAAS9E,KAAM;AAD7B,SAAV;AAGH;AACJ;;AACD,UAAM,CAAC4vB,IAAD,EAAO9yB,KAAP,IAAgBigE,kBAAkB,EAAxC;AACAj4D,IAAAA,OAAO,CAAC8qB,IAAD,CAAP,GAAgB9yB,KAAhB;AACA21C,IAAAA,MAAM,CAAConB,GAAP,CAAWM,oDAAX,EAA4B,IAAG+S,aAAc,6BAA4BxC,aAAa,CAACtP,OAAD,EAAUjxB,OAAO,CAACszB,iBAAlB,CAAqC,GAA3H;AACA,UAAM7B,YAAY,GAAG9X,aAAa,CAACsX,OAAD,CAAb,GAAyB,aAAzB,GAAyC,MAA9D;AACA,UAAM1vB,QAAQ,SAASqyB,UAAU,CAACqC,IAAX,CAAgBl1B,GAAhB,EAAqB;AACxCkwB,MAAAA,OADwC;AAExCt2D,MAAAA,OAAO,EAAE,EAAE,GAAGA,OAAL;AAAc,WAAGqlC,OAAO,CAACrlC;AAAzB,OAF+B;AAGxC82D,MAAAA,YAHwC;AAIxCX,MAAAA,OAAO,EAAE9wB,OAAO,CAAC8wB,OAJuB;AAKxCK,MAAAA,eAAe,EAAEnxB,OAAO,CAACmxB;AALe,KAArB,CAAvB;AAOA7oB,IAAAA,MAAM,CAAConB,GAAP,CAAWM,oDAAX,EAA4B,IAAG+S,aAAc,kDAAiDxhC,QAAQ,CAAC3yB,UAAW,GAAlH;AACH;;;;AAEM,SAAS+jD,YAAT,CAAsBrqB,MAAtB,EAA8B;AACjC,MAAIA,MAAM,KAAKvyC,SAAf,EAA0B;AACtB,WAAO,IAAIitE,aAAJ,CAAkBhT,0DAAlB,CAAP;AACH;;AACD,MAAI1nB,MAAM,KAAK,IAAf,EAAqB;AACjB,WAAO65B,yDAAP;AACH;;AACD,MAAI75B,MAAM,CAAConB,GAAP,KAAe35D,SAAnB,EAA8B;AAC1B,WAAOuyC,MAAP;AACH;;AACD,SAAO,IAAI06B,aAAJ,CAAkB16B,MAAlB,CAAP;AACH;AACD;;AACO,MAAM46B,mBAAN,CAA0B;AAC7BnjC,EAAAA,WAAW,CAACw8B,OAAD,EAAU4G,QAAV,EAAoB;AAC3B,SAAKC,QAAL,GAAgB7G,OAAhB;AACA,SAAK8G,SAAL,GAAiBF,QAAjB;AACH;;AACDG,EAAAA,OAAO,GAAG;AACN,UAAMvwB,KAAK,GAAG,KAAKqwB,QAAL,CAAcG,SAAd,CAAwBlgC,OAAxB,CAAgC,KAAKggC,SAArC,CAAd;;AACA,QAAItwB,KAAK,GAAG,CAAC,CAAb,EAAgB;AACZ,WAAKqwB,QAAL,CAAcG,SAAd,CAAwB/F,MAAxB,CAA+BzqB,KAA/B,EAAsC,CAAtC;AACH;;AACD,QAAI,KAAKqwB,QAAL,CAAcG,SAAd,CAAwBzuE,MAAxB,KAAmC,CAAnC,IAAwC,KAAKsuE,QAAL,CAAc5G,cAA1D,EAA0E;AACtE,WAAK4G,QAAL,CAAc5G,cAAd,GAA+BtrB,KAA/B,CAAsC1rB,CAAD,IAAO,CAAG,CAA/C;AACH;AACJ;;AAb4B;AAejC;;AACO,MAAMw9C,aAAN,CAAoB;AACvBjjC,EAAAA,WAAW,CAACyjC,eAAD,EAAkB;AACzB,SAAKC,SAAL,GAAiBD,eAAjB;AACA,SAAKzf,GAAL,GAAW+D,OAAX;AACH;;AACD4H,EAAAA,GAAG,CAACgU,QAAD,EAAW7oC,OAAX,EAAoB;AACnB,QAAI6oC,QAAQ,IAAI,KAAKD,SAArB,EAAgC;AAC5B,YAAM5nB,GAAG,GAAI,IAAG,IAAI3vB,IAAJ,GAAW3tB,WAAX,EAAyB,KAAIyxD,8CAAQ,CAAC0T,QAAD,CAAW,KAAI7oC,OAAQ,EAA5E;;AACA,cAAQ6oC,QAAR;AACI,aAAK1T,uDAAL;AACA,aAAKA,oDAAL;AACI,eAAKjM,GAAL,CAAS9vD,KAAT,CAAe4nD,GAAf;AACA;;AACJ,aAAKmU,sDAAL;AACI,eAAKjM,GAAL,CAAS8D,IAAT,CAAchM,GAAd;AACA;;AACJ,aAAKmU,0DAAL;AACI,eAAKjM,GAAL,CAASlb,IAAT,CAAcgT,GAAd;AACA;;AACJ;AACI;AACA,eAAKkI,GAAL,CAAS2L,GAAT,CAAa7T,GAAb;AACA;AAdR;AAgBH;AACJ;;AAzBsB;AA2B3B;;AACO,SAAS+W,kBAAT,GAA8B;AACjC,MAAIgR,mBAAmB,GAAG,sBAA1B;;AACA,MAAI3T,QAAQ,CAAC2B,MAAb,EAAqB;AACjBgS,IAAAA,mBAAmB,GAAG,YAAtB;AACH;;AACD,SAAO,CAACA,mBAAD,EAAsBC,kBAAkB,CAACzB,OAAD,EAAU0B,SAAS,EAAnB,EAAuBC,UAAU,EAAjC,EAAqCC,iBAAiB,EAAtD,CAAxC,CAAP;AACH;AACD;;AACO,SAASH,kBAAT,CAA4BhnC,OAA5B,EAAqCoe,EAArC,EAAyC5e,OAAzC,EAAkD4nC,cAAlD,EAAkE;AACrE;AACA,MAAIt1B,SAAS,GAAG,oBAAhB;AACA,QAAMu1B,aAAa,GAAGrnC,OAAO,CAACr+B,KAAR,CAAc,GAAd,CAAtB;AACAmwC,EAAAA,SAAS,IAAK,GAAEu1B,aAAa,CAAC,CAAD,CAAI,IAAGA,aAAa,CAAC,CAAD,CAAI,EAArD;AACAv1B,EAAAA,SAAS,IAAK,KAAI9R,OAAQ,IAA1B;;AACA,MAAIoe,EAAE,IAAIA,EAAE,KAAK,EAAjB,EAAqB;AACjBtM,IAAAA,SAAS,IAAK,GAAEsM,EAAG,IAAnB;AACH,GAFD,MAGK;AACDtM,IAAAA,SAAS,IAAI,cAAb;AACH;;AACDA,EAAAA,SAAS,IAAK,GAAEtS,OAAQ,EAAxB;;AACA,MAAI4nC,cAAJ,EAAoB;AAChBt1B,IAAAA,SAAS,IAAK,KAAIs1B,cAAe,EAAjC;AACH,GAFD,MAGK;AACDt1B,IAAAA,SAAS,IAAI,2BAAb;AACH;;AACDA,EAAAA,SAAS,IAAI,GAAb;AACA,SAAOA,SAAP;AACH,EACD;;AACA;;AAAc,SAASm1B,SAAT,GAAqB;AAC/B,MAAI7T,QAAQ,CAAC2B,MAAb,EAAqB;AACjB,YAAQrK,OAAO,CAACuC,QAAhB;AACI,WAAK,OAAL;AACI,eAAO,YAAP;;AACJ,WAAK,QAAL;AACI,eAAO,OAAP;;AACJ,WAAK,OAAL;AACI,eAAO,OAAP;;AACJ;AACI,eAAOvC,OAAO,CAACuC,QAAf;AARR;AAUH,GAXD,MAYK;AACD,WAAO,EAAP;AACH;AACJ,EACD;;AACA;;;AAAc,SAASka,iBAAT,GAA6B;AACvC,MAAI/T,QAAQ,CAAC2B,MAAb,EAAqB;AACjB,WAAOrK,OAAO,CAACrgD,QAAR,CAAiBoF,IAAxB;AACH;;AACD,SAAOvW,SAAP;AACH;;AACD,SAASguE,UAAT,GAAsB;AAClB,MAAI9T,QAAQ,CAAC2B,MAAb,EAAqB;AACjB,WAAO,QAAP;AACH,GAFD,MAGK;AACD,WAAO,SAAP;AACH;AACJ;AACD;;;AACO,SAASoH,cAAT,CAAwB7kE,CAAxB,EAA2B;AAC9B,MAAIA,CAAC,CAACgwE,KAAN,EAAa;AACT,WAAOhwE,CAAC,CAACgwE,KAAT;AACH,GAFD,MAGK,IAAIhwE,CAAC,CAAC0mC,OAAN,EAAe;AAChB,WAAO1mC,CAAC,CAAC0mC,OAAT;AACH;;AACD,SAAQ,GAAE1mC,CAAE,EAAZ;AACH;AACD;;AACO,SAAS+7D,aAAT,GAAyB;AAC5B;AACA,MAAI,OAAOkU,UAAP,KAAsB,WAA1B,EAAuC;AACnC,WAAOA,UAAP;AACH;;AACD,MAAI,OAAO7B,IAAP,KAAgB,WAApB,EAAiC;AAC7B,WAAOA,IAAP;AACH;;AACD,MAAI,OAAOznB,MAAP,KAAkB,WAAtB,EAAmC;AAC/B,WAAOA,MAAP;AACH;;AACD,MAAI,OAAOupB,MAAP,KAAkB,WAAtB,EAAmC;AAC/B,WAAOA,MAAP;AACH;;AACD,QAAM,IAAIjuE,KAAJ,CAAU,uBAAV,CAAN;AACH;;;;;;;;;;;;;;;;;;;;;AC9PD;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMy8D,kBAAN,CAAyB;AAC5B9yB,EAAAA,WAAW,CAAC6zB,UAAD,EAAasB,kBAAb,EAAiC5sB,MAAjC,EAAyCgrB,iBAAzC,EAA4DgR,oBAA5D,EAAkF3pE,OAAlF,EAA2F;AAClG,SAAKy1D,OAAL,GAAe9nB,MAAf;AACA,SAAK2sB,mBAAL,GAA2BC,kBAA3B;AACA,SAAKqP,kBAAL,GAA0BjR,iBAA1B;AACA,SAAKkR,qBAAL,GAA6BF,oBAA7B;AACA,SAAK3Q,WAAL,GAAmBC,UAAnB;AACA,SAAKI,SAAL,GAAiB,IAAjB;AACA,SAAKC,OAAL,GAAe,IAAf;AACA,SAAKwQ,QAAL,GAAgB9pE,OAAhB;AACH;;AACKw8D,EAAAA,OAAO,CAACp2B,GAAD,EAAMozB,cAAN,EAAsB;AAAA;;AAAA;AAC/BzB,MAAAA,kDAAA,CAAe3xB,GAAf,EAAoB,KAApB;AACA2xB,MAAAA,kDAAA,CAAeyB,cAAf,EAA+B,gBAA/B;AACAzB,MAAAA,4CAAA,CAASyB,cAAT,EAAyB5B,uDAAzB,EAAyC,gBAAzC;;AACA,WAAI,CAACnC,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,oCAAjC;;AACA,UAAI,KAAI,CAACiF,mBAAT,EAA8B;AAC1B,cAAMp/D,KAAK,SAAS,KAAI,CAACo/D,mBAAL,EAApB;;AACA,YAAIp/D,KAAJ,EAAW;AACPkrC,UAAAA,GAAG,IAAI,CAACA,GAAG,CAACsC,OAAJ,CAAY,GAAZ,IAAmB,CAAnB,GAAuB,GAAvB,GAA6B,GAA9B,IAAsC,gBAAegD,kBAAkB,CAACxwC,KAAD,CAAQ,EAAtF;AACH;AACJ;;AACD,aAAO,IAAI2mC,OAAJ,CAAY,CAACc,OAAD,EAAUb,MAAV,KAAqB;AACpCsE,QAAAA,GAAG,GAAGA,GAAG,CAACtyB,OAAJ,CAAY,OAAZ,EAAqB,IAArB,CAAN;AACA,YAAIi2D,SAAJ;;AACA,cAAM/S,OAAO,GAAG,KAAI,CAACgC,WAAL,CAAiBjC,eAAjB,CAAiC3wB,GAAjC,CAAhB;;AACA,YAAI2gC,MAAM,GAAG,KAAb;;AACA,YAAIzR,mDAAJ,EAAqB;AACjB,gBAAMt1D,OAAO,GAAG,EAAhB;AACA,gBAAM,CAAC8qB,IAAD,EAAO9yB,KAAP,IAAgBigE,0DAAkB,EAAxC;AACAj4D,UAAAA,OAAO,CAAC8qB,IAAD,CAAP,GAAgB9yB,KAAhB;;AACA,cAAIg/D,OAAJ,EAAa;AACTh3D,YAAAA,OAAO,CAAC03D,4DAAD,CAAP,GAA+B,GAAEV,OAAQ,EAAzC;AACH,WANgB,CAOjB;;;AACA+S,UAAAA,SAAS,GAAG,IAAI,KAAI,CAACF,qBAAT,CAA+BzjC,GAA/B,EAAoChrC,SAApC,EAA+C;AACvD4E,YAAAA,OAAO,EAAE,EAAE,GAAGA,OAAL;AAAc,iBAAG,KAAI,CAAC8pE;AAAtB;AAD8C,WAA/C,CAAZ;AAGH;;AACD,YAAI,CAACC,SAAL,EAAgB;AACZ;AACAA,UAAAA,SAAS,GAAG,IAAI,KAAI,CAACF,qBAAT,CAA+BzjC,GAA/B,CAAZ;AACH;;AACD,YAAIozB,cAAc,KAAK5B,8DAAvB,EAA8C;AAC1CmS,UAAAA,SAAS,CAACC,UAAV,GAAuB,aAAvB;AACH;;AACDD,QAAAA,SAAS,CAACzC,MAAV,GAAoB2C,MAAD,IAAY;AAC3B,eAAI,CAACxU,OAAL,CAAaV,GAAb,CAAiBM,0DAAjB,EAAwC,0BAAyBjvB,GAAI,GAArE;;AACA,eAAI,CAAC8jC,UAAL,GAAkBH,SAAlB;AACAhD,UAAAA,MAAM,GAAG,IAAT;AACApkC,UAAAA,OAAO;AACV,SALD;;AAMAonC,QAAAA,SAAS,CAACnhC,OAAV,GAAqB3gB,KAAD,IAAW;AAC3B,cAAI3uB,KAAK,GAAG,IAAZ,CAD2B,CAE3B;;AACA,cAAI,OAAO6wE,UAAP,KAAsB,WAAtB,IAAqCliD,KAAK,YAAYkiD,UAA1D,EAAsE;AAClE7wE,YAAAA,KAAK,GAAG2uB,KAAK,CAAC3uB,KAAd;AACH,WAFD,MAGK;AACDA,YAAAA,KAAK,GAAG,uCAAR;AACH;;AACD,eAAI,CAACm8D,OAAL,CAAaV,GAAb,CAAiBM,0DAAjB,EAAwC,0BAAyB/7D,KAAM,GAAvE;AACH,SAVD;;AAWAywE,QAAAA,SAAS,CAAC3C,SAAV,GAAuBlnC,OAAD,IAAa;AAC/B,eAAI,CAACu1B,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,yCAAwCuQ,qDAAa,CAAC1lC,OAAO,CAAChmC,IAAT,EAAe,KAAI,CAAC0vE,kBAApB,CAAwC,GAA/H;;AACA,cAAI,KAAI,CAACvQ,SAAT,EAAoB;AAChB,gBAAI;AACA,mBAAI,CAACA,SAAL,CAAen5B,OAAO,CAAChmC,IAAvB;AACH,aAFD,CAGA,OAAOZ,KAAP,EAAc;AACV,mBAAI,CAAC+tE,MAAL,CAAY/tE,KAAZ;;AACA;AACH;AACJ;AACJ,SAXD;;AAYAywE,QAAAA,SAAS,CAACzQ,OAAV,GAAqBrxC,KAAD,IAAW;AAC3B;AACA;AACA,cAAI8+C,MAAJ,EAAY;AACR,iBAAI,CAACM,MAAL,CAAYp/C,KAAZ;AACH,WAFD,MAGK;AACD,gBAAI3uB,KAAK,GAAG,IAAZ,CADC,CAED;;AACA,gBAAI,OAAO6wE,UAAP,KAAsB,WAAtB,IAAqCliD,KAAK,YAAYkiD,UAA1D,EAAsE;AAClE7wE,cAAAA,KAAK,GAAG2uB,KAAK,CAAC3uB,KAAd;AACH,aAFD,MAGK;AACDA,cAAAA,KAAK,GAAG,kFACF,qDADE,GAEF,2FAFE,GAGF,uEAHN;AAIH;;AACDwoC,YAAAA,MAAM,CAAC,IAAIrmC,KAAJ,CAAUnC,KAAV,CAAD,CAAN;AACH;AACJ,SApBD;AAqBH,OA1EM,CAAP;AAX+B;AAsFlC;;AACDwB,EAAAA,IAAI,CAACZ,IAAD,EAAO;AACP,QAAI,KAAKgwE,UAAL,IAAmB,KAAKA,UAAL,CAAgB1hC,UAAhB,KAA+B,KAAKqhC,qBAAL,CAA2BO,IAAjF,EAAuF;AACnF,WAAK3U,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAkC,wCAAuCuQ,qDAAa,CAAC1rE,IAAD,EAAO,KAAK0vE,kBAAZ,CAAgC,GAAtH;;AACA,WAAKM,UAAL,CAAgBpvE,IAAhB,CAAqBZ,IAArB;;AACA,aAAO2nC,OAAO,CAACc,OAAR,EAAP;AACH;;AACD,WAAOd,OAAO,CAACC,MAAR,CAAe,oCAAf,CAAP;AACH;;AACDo4B,EAAAA,IAAI,GAAG;AACH,QAAI,KAAKgQ,UAAT,EAAqB;AACjB;AACA;AACA,WAAK7C,MAAL,CAAYjsE,SAAZ;AACH;;AACD,WAAOymC,OAAO,CAACc,OAAR,EAAP;AACH;;AACD0kC,EAAAA,MAAM,CAACp/C,KAAD,EAAQ;AACV;AACA,QAAI,KAAKiiD,UAAT,EAAqB;AACjB;AACA,WAAKA,UAAL,CAAgB5Q,OAAhB,GAA0B,MAAM,CAAG,CAAnC;;AACA,WAAK4Q,UAAL,CAAgB9C,SAAhB,GAA4B,MAAM,CAAG,CAArC;;AACA,WAAK8C,UAAL,CAAgBthC,OAAhB,GAA0B,MAAM,CAAG,CAAnC;;AACA,WAAKshC,UAAL,CAAgB9nB,KAAhB;;AACA,WAAK8nB,UAAL,GAAkB9uE,SAAlB;AACH;;AACD,SAAKq6D,OAAL,CAAaV,GAAb,CAAiBM,oDAAjB,EAAiC,uCAAjC;;AACA,QAAI,KAAKiE,OAAT,EAAkB;AACd,UAAI,KAAK+Q,aAAL,CAAmBpiD,KAAnB,MAA8BA,KAAK,CAACqiD,QAAN,KAAmB,KAAnB,IAA4BriD,KAAK,CAAC67B,IAAN,KAAe,IAAzE,CAAJ,EAAoF;AAChF,aAAKwV,OAAL,CAAa,IAAI79D,KAAJ,CAAW,sCAAqCwsB,KAAK,CAAC67B,IAAK,KAAI77B,KAAK,CAACib,MAAN,IAAgB,iBAAkB,IAAjG,CAAb;AACH,OAFD,MAGK,IAAIjb,KAAK,YAAYxsB,KAArB,EAA4B;AAC7B,aAAK69D,OAAL,CAAarxC,KAAb;AACH,OAFI,MAGA;AACD,aAAKqxC,OAAL;AACH;AACJ;AACJ;;AACD+Q,EAAAA,aAAa,CAACpiD,KAAD,EAAQ;AACjB,WAAOA,KAAK,IAAI,OAAOA,KAAK,CAACqiD,QAAb,KAA0B,SAAnC,IAAgD,OAAOriD,KAAK,CAAC67B,IAAb,KAAsB,QAA7E;AACH;;AA3I2B;;;;;;;;;;;;;;;;;;ACPhC;AACA;AAC+D;AACP;AACnB;AAC9B,4BAA4B,mDAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+CAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qDAAY;AAC5C;AACA;AACA,+BAA+B,8CAAS;AACxC;AACA;AACA;AACA,iCAAiC,sDAAgB,8BAA8B,WAAW,IAAI,eAAe;AAC7G,2BAA2B,8CAAS;AACpC;AACA;AACA,iCAAiC,sDAAgB;AACjD,2BAA2B,iDAAY;AACvC;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEkJ;AAC7F;AACiB;;AAEtE;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,wCAAE,GAAG;AACpB;AACA;AACA,uDAAuD,sCAAsC,iDAAiD,gFAAgF,mEAA4B,uDAAuD;AACjT,0CAA0C,gEAAyB,GAAG,+DAA+D;AACrI;AACA;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;;AAEtB;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF,oDAAoD,gEAAyB,GAAG,mFAAmF;AACnK;AACA;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;;AAEtB;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,yDAAyD,wCAAwC,mDAAmD,oFAAoF,mEAA4B,2DAA2D;AAC/T,4CAA4C,gEAAyB,GAAG,mEAAmE;AAC3I;AACA;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;;AAEtB;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB,GAAG,8BAA8B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,mBAAmB,GAAG;AACvI;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,mBAAmB,GAAG,4BAA4B;AAClD;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ,UAAU;AACpD;AACA;AACA,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,GAAG;AACnC;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG;AAC9B;AACA,SAAS;AACT;AACA;AACA,0DAA0D,yCAAyC,oDAAoD,sFAAsF,mEAA4B,6DAA6D;AACtU,6CAA6C,gEAAyB,GAAG,qEAAqE;AAC9I;AACA;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;;AAEtB;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,uDAAY;AACnD;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,uDAAY;AACnD;AACA;;AAEA;AACA;AACA,cAAc,YAAY;AAC1B;AACA,sBAAsB,yDAAc;AACpC,6BAA6B,yDAAc;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAY;AACpD,iCAAiC,uDAAY;AAC7C,wCAAwC,uDAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA,yBAAyB,oDAAI;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,wCAAE;AACrB;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA,yBAAyB,oDAAI;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,gFAAgF,qDAAK;AACrF,sCAAsC,oDAAI;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAmD;AAC3F;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA,2BAA2B,GAAG,cAAc,aAAa,GAAG;AAC5D;AACA,gCAAgC,GAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,GAAG;AAClC,oCAAoC,GAAG;AACvC,mCAAmC,GAAG,iEAAiE,wCAAE,YAAY,GAAG;AACxH;AACA;AACA;AACA;AACA,oCAAoC,2CAAK;AACzC;AACA;AACA,sCAAsC,uDAAO,IAAI,mDAAG;AACpD,mCAAmC,GAAG;AACtC;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mDAAiB;AACpC,+BAA+B,GAAG;AAClC;AACA;AACA;AACA,+BAA+B,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,2BAA2B,GAAG;AAC9B;AACA;AACA;AACA;AACA,uBAAuB,wCAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA,eAAe,4CAAM,0DAA0D,yDAAS;AACxF,6BAA6B,GAAG;AAChC;AACA;AACA;AACA;AACA,uBAAuB,wCAAE;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA,+BAA+B,GAAG;AAClC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wCAAwC,mDAAmD;AAC3F;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,iCAAiC,mDAAmD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,wCAAwC,mDAAmD;AAC3F;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,sDAAe,kBAAkB,sDAAe,mBAAmB,sDAAe,qBAAqB,sDAAe,mBAAmB,sDAAe,6BAA6B,sDAAe,oBAAoB,sDAAe;AACzU,uCAAuC,gEAAyB,GAAG,yDAAyD;AAC5H;AACA;AACA,MAAM,uBAAuB;AAC7B,MAAM,wBAAwB;AAC9B,MAAM,0BAA0B;AAChC,MAAM,wBAAwB;AAC9B,MAAM,kCAAkC;AACxC,MAAM,gCAAgC,MAAM,iDAAM,6BAA6B,IAAI;AACnF,MAAM,gCAAgC,MAAM,iDAAM,sBAAsB,IAAI;AAC5E;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,sBAAsB,IAAI,uBAAuB,IAAI,yBAAyB,IAAI,uBAAuB,IAAI,iCAAiC,IAAI;AAClL,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI;AACpB,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,UAAU;;AAE9B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,GAAG,UAAU,kBAAkB;AAC3D,2BAA2B,GAAG;AAC9B;AACA;AACA,+BAA+B,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,GAAG;AACtC,mCAAmC,GAAG;AACtC;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,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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uDAAuD;;AAEvD;AACA,oCAAoC;AACpC;;AAEA,0EAA0E;;AAE1E,6GAA6G;;AAE7G,2LAA2L;;AAE3L;AACA,iEAAiE;;AAEjE;AACA;AACA,SAAS;;;AAGT;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;;AAEf;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wIAAwI;;AAExI;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,qBAAqB;;;;;;;;;;;AChIR;;AAEb,6BAA6B,mBAAO,CAAC,yDAA8C;;AAEnF,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,+BAA+B;;AAE/B,iBAAiB,mBAAO,CAAC,wBAAa;;AAEtC,eAAe,mBAAO,CAAC,sBAAW;;AAElC,mCAAmC,mBAAO,CAAC,mBAAQ;;AAEnD;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,gFAAgF;;AAEhF;AACA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B;;;;;;;;;;;AChElB;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;;;;;;;;;;;ACjDF;;AAEb,IAAIymB,sBAAsB,GAAG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A;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;;;;;;;;;;;;;;;;ACtIwB;AACvC;AACP,kBAAkB,aAAa,+DAAoB,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,EAAE;AAClF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtBO;AACP,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBU;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;;;;;;;;;;;;;;;AC/CO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbwB;AACC;AACK;AACA;AACC;AACG;AACV;;;;;;;;;;;;;;;;ACNjB;AACP;AACA;AACA;;;;;;;;;;;;;ACHU;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA,CAAC,4CAA4C;;;;;;;;;;;;;ACJnC;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAe;AACC;AACH;;;;;;;;;;;;;ACFb;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA,CAAC,8CAA8C;;;;;;;;;;;;;ACJrC;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;ACA2B;AACH;AACF;AACP;AACQ;;;;;;;;;;;;;ACJvB;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;;;;;;ACJ7B;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;ACA8B;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDH;AACD;AACI;AACF;AACC;AACG;AACJ;AACA;AACE;AACC;AACE;AACP;AACI;AACF;AACI;AACA;AACH;AACC;AACH;AACA;AACC;AACG;AACH;AACE;AACL;AACC;AACE;;;;;;;;;;;;;AC1Bf;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAH;AACP;AACA;AACA;AACA;AACA,CAAC,wDAAwD;;;;;;;;;;;;;ACL/C;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;ACAV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK,EAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;;AC/HsC;AACmL;AACtH;;AAE5E;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,cAAc,eAAe,iBAAiB,6CAAM;AACpD;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,+DAAwB,GAAG,+HAA+H;AAC5L,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,0+IAA0+I,0EAA0E,oBAAoB;AAC3lJ,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA,wEAAwE,wEAAyB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB,wDAAS;AAC5B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iEAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,sDAAe,CAAC,iDAAa;AAC1J,gDAAgD,gEAAyB,GAAG,0DAA0D,6CAA6C;AACnL;AACA,MAAM,MAAM,iDAAM;AAClB;AACA,4BAA4B,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAChF;;AAEA,sFAAsF,mEAAoB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mDAAmD,8DAA8D,0GAA0G,mEAA4B,iFAAiF;AAC5Y,uDAAuD,gEAAyB,GAAG,iEAAiE,oDAAoD;AACxM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gEAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uDAAY;AACvD;AACA,8BAA8B,uDAAY;AAC1C;AACA,4BAA4B,uDAAY;AACxC;AACA,iCAAiC,uDAAY;AAC7C;AACA,gCAAgC,uDAAY;AAC5C;AACA,iCAAiC,uDAAY;AAC7C;AACA,+BAA+B,uDAAY;AAC3C;AACA,sCAAsC,uDAAY;AAClD;AACA,0CAA0C,uDAAY;AACtD;AACA,sCAAsC,uDAAY;AAClD;AACA,qCAAqC,uDAAY;AACjD;AACA,oCAAoC,uDAAY;AAChD;AACA,sCAAsC,uDAAY;AAClD;AACA,2CAA2C,uDAAY;AACvD;AACA,yCAAyC,uDAAY;AACrD;AACA,2CAA2C,uDAAY;AACvD;AACA;AACA,yCAAyC,uDAAY;AACrD;AACA,oCAAoC,uDAAY;AAChD;AACA,mCAAmC,uDAAY;AAC/C;AACA,mCAAmC,uDAAY;AAC/C;AACA,sCAAsC,uDAAY;AAClD;AACA,sCAAsC,uDAAY;AAClD;AACA,qCAAqC,uDAAY;AACjD;AACA,qCAAqC,uDAAY;AACjD;AACA,gCAAgC,uDAAY;AAC5C;AACA,iCAAiC,uDAAY;AAC7C;AACA,kCAAkC,uDAAY;AAC9C;AACA,gCAAgC,uDAAY;AAC5C;AACA,8CAA8C,uDAAY;AAC1D;AACA,uCAAuC,uDAAY;AACnD;AACA,kCAAkC,uDAAY;AAC9C;AACA,+BAA+B,uDAAY;AAC3C;AACA,gCAAgC,uDAAY;AAC5C;AACA,6BAA6B,uDAAY;AACzC;AACA,qCAAqC,uDAAY;AACjD;AACA,mCAAmC,uDAAY;AAC/C;AACA,gCAAgC,uDAAY;AAC5C;AACA,qCAAqC,uDAAY;AACjD;AACA,mCAAmC,uDAAY;AAC/C;AACA,8BAA8B,uDAAY;AAC1C;AACA,iCAAiC,uDAAY;AAC7C;AACA,+BAA+B,uDAAY;AAC3C;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA,gCAAgC,uDAAY;AAC5C;AACA,+BAA+B,uDAAY;AAC3C;AACA,gCAAgC,uDAAY;AAC5C;AACA,8BAA8B,uDAAY;AAC1C;AACA,yCAAyC,uDAAY;AACrD;AACA,kCAAkC,uDAAY;AAC9C;AACA,uCAAuC,uDAAY;AACnD;AACA,wCAAwC,uDAAY;AACpD;AACA,kCAAkC,uDAAY;AAC9C;AACA,kCAAkC,uDAAY;AAC9C;AACA,4CAA4C,uDAAY;AACxD;AACA,+BAA+B,uDAAY;AAC3C;AACA,qCAAqC,uDAAY;AACjD;AACA,+BAA+B,uDAAY;AAC3C;AACA,iCAAiC,uDAAY;AAC7C;AACA,gCAAgC,uDAAY;AAC5C;AACA,iCAAiC,uDAAY;AAC7C;AACA,8BAA8B,uDAAY;AAC1C;AACA,oCAAoC,uDAAY;AAChD;AACA,+BAA+B,uDAAY;AAC3C;AACA,oCAAoC,uDAAY;AAChD;AACA,mCAAmC,uDAAY;AAC/C;AACA,yCAAyC,uDAAY;AACrD;AACA,+BAA+B,uDAAY;AAC3C,+CAA+C,uDAAY;AAC3D,4CAA4C,uDAAY;AACxD,4CAA4C,uDAAY;AACxD,8CAA8C,uDAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wFAAyC;AACpE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY,mDAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kCAAkC,EAAE,uBAAuB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,2DAAuB,GAAG,+DAAwB,6BAA6B,+DAAwB,oCAAoC,+DAAwB,CAAC,mEAA+B;AAClW,mCAAmC,+DAAwB,GAAG,kIAAkI;AAChM,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,g6ZAAg6Z,aAAa,woFAAwoF,aAAa,gEAAyB;AAC9mf;AACA;AACA,YAAY,kEAA2B,4EAA4E,oBAAoB;AACvI;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,MAAM,2DAAgB,EAAE;AAC9B,MAAM,iCAAiC;AACvC,MAAM,wCAAwC;AAC9C,MAAM,MAAM,mEAAwB;AACpC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,gBAAgB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACxE,QAAQ,2DAAgB;AACxB;AACA;AACA,QAAQ,mEAAwB;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS,uEAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS,uEAA4B;AACvD;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,eAAe;AAC3E,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,WAAW;AAChB,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK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SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,S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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,iCAAiC;AACjC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,qDAAiB;AACxJ,0CAA0C,+DAAwB,GAAG,qHAAqH;AAC1L,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,oDAAoD,aAAa,wBAAwB,8UAA8U;AAC1b,QAAQ,wDAAiB,+EAA+E,oEAA6B;AACrI,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,oDAAc,EAAE,6DAAuB,8CAA8C,kBAAkB,SAAS,OAAO,aAAa,aAAa,WAAW,eAAe,eAAe,kBAAkB,cAAc,cAAc,gBAAgB,gBAAgB,sBAAsB,4BAA4B,iCAAiC,oBAAoB,iCAAiC,cAAc,mBAAmB,kBAAkB,WAAW,gBAAgB,cAAc,mBAAmB,mBAAmB,6BAA6B,SAAS,0DAA0D,WAAW,qBAAqB,yBAAyB,UAAU,oCAAoC,cAAc,YAAY,iBAAiB,cAAc,4BAA4B,aAAa,qCAAqC,YAAY,SAAS,kBAAkB,IAAI;AACj6B;AACA,MAAM,MAAM,qDAAU;AACtB;AACA;AACA,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,qBAAqB,MAAM,gDAAK,EAAE;AAClC,kBAAkB,MAAM,iDAAM,EAAE;AAChC,aAAa,MAAM,oDAAS,mBAAmB,cAAc,IAAI;AACjE,4BAA4B,MAAM,oDAAS,kCAAkC,cAAc,IAAI;AAC/F;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC,iBAAiB;AACtD,qFAAqF,YAAY;AACjG;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB,SAAS,OAAO,aAAa,aAAa,WAAW,eAAe,eAAe,kBAAkB,cAAc,cAAc,gBAAgB,gBAAgB,sBAAsB,4BAA4B,iCAAiC,oBAAoB,cAAc,cAAc,mBAAmB,kBAAkB,WAAW,gBAAgB,cAAc,mBAAmB,mBAAmB,6BAA6B,SAAS,kBAAkB,WAAW,qBAAqB,yBAAyB,UAAU,iBAAiB,cAAc,YAAY,iBAAiB,cAAc,SAAS,aAAa,kBAAkB,YAAY,SAAS,kBAAkB;AACtuB,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,IAAI;AACjE,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,6BAA6B,cAAc;AAC3C,SAAS;AACT,kBAAkB,oDAAS;AAC3B,4CAA4C,cAAc;AAC1D,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA,gCAAgC,uDAAY;AAC5C;AACA,0BAA0B,uDAAY;AACtC,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,mEAA+B,GAAG,+DAAwB,CAAC,2DAAuB;AAC1P,sCAAsC,+DAAwB,GAAG,yLAAyL;AAC1P,QAAQ,wDAAiB,2EAA2E,gCAAgC,wEAAwE,kCAAkC,sEAAsE,iCAAiC;AACrV,OAAO,YAAY,gGAAgG,aAAa,4FAA4F,aAAa,kEAA2B,GAAG;AACvQ;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,MAAM,mEAAwB,EAAE;AACtC,MAAM,MAAM,2DAAgB;AAC5B;AACA;AACA,gBAAgB,MAAM,gDAAK,sBAAsB;AACjD,sBAAsB,MAAM,gDAAK,EAAE;AACnC,4BAA4B,MAAM,gDAAK,EAAE;AACzC,mBAAmB,MAAM,iDAAM,EAAE;AACjC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,eAAe,MAAM,iDAAM,EAAE;AAC7B,eAAe,MAAM,iDAAM,EAAE;AAC7B;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,mEAA+B,EAAE,IAAI,MAAM,2DAAuB,EAAE,IAAI,IAAI;AAC/I,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA,yDAAyD;AACzD,mCAAmC,8DAAuB,GAAG,qBAAqB;AAClF,mCAAmC,8DAAuB,GAAG;AAC7D,YAAY,yDAAY;AACxB,YAAY;AACZ,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yDAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,kBAAkB,4BAA4B,kDAAkD,yBAAyB,QAAQ,yDAAY,IAAI,yBAAyB,8BAA8B,IAAI;;AAEvS;AACA;AACA;;AAEA;AACA;AACA;;AAEuE;;;;;;;;;;;;;;;;;;;ACn5BrC;AAClC;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,sBAAsB,+CAAI,qBAAqB,4BAA4B;AAC3E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AAC2B;AACrB;AACP;AACA;;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7CiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAqB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,+BAA+B;AACzH;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFxC,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwB;AACmB;AACyC;AACvB;AACf;AACD;AACS;AACN;AACJ;AACF;AAC1C;AACA,yBAAyB,sEAAwB;AACjD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC,mDAAY;AAC7C;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+DAAgB;AAClC,kBAAkB,qDAAW;AAC7B,gCAAgC,uDAAW;AAC3C,gCAAgC,sDAAW;AAC3C;AACA;AACA,oCAAoC,+CAAI;AACxC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+DAAgB;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,+DAA+D,kBAAkB;AACjF,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,qDAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,wBAAwB;AACzF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAM;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uEAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qCAAqC;AACrC;AACA,0CAA0C,0EAAwB;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0CAA0C,0EAAwB;AAClE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC,CAAC,qDAAW;AACY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5QiD;AAC1C;AACD;AACG;AACJ;AACG;;;;;;;;;;;;;;;;;ACLjC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AAChB;AACP;AACA;;;;;;;;;;;;;;;;;AC5BA,WAAW,iDAAwB;AACnB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;;;;;AC/BxB,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;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,SAAS;AACT,4CAA4C,oBAAoB,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sCAAsC;AACrF;AACA;AACA;AACA,CAAC;AACD;AACA,YAAY,uEAAiB;AAC7B;AACA,IAAI,uEAAiB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC/HA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmU;AACnR;AACM;AACN;AAChD;AACA;AACA,uCAAuC,mBAAmB,mDAAY;AACtE;AACA;AACA;AACA;AACA,8BAA8B,yDAAa;AAC3C,iCAAiC,+CAAI;AACrC;AACA,SAAS;AACT;AACA;AACA,kDAAkD,+DAAgB;AAClE;AACA;AACA;AACA;AACA,SAAS;AACT,mCAAmC,+CAAI;AACvC;AACA,SAAS;AACT;AACA;AACA,8DAA8D,+DAAgB;AAC9E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B;AAC1B,qDAAqD;AACrD;AACA;AACA;AACA,8BAA8B,oEAAkB;AAChD,oBAAoB,wDAAM,GAAG,EAAE,kEAAgB;AAC/C;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,gBAAgB,uDAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAiB;AAC9C,wBAAwB,wEAAsB;AAC9C,0BAA0B,mEAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAa;AAC9B;AACA;AACA,gBAAgB,yDAAO;AACvB;AACA;AACA,gDAAgD;AAChD,2BAA2B,wEAAsB;AACjD;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,wDAAwD,wBAAwB;AAChF,kDAAkD,UAAU,iBAAiB;AAC7E,6BAA6B,GAAG;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0EAAwB;AAC3C;AACA,uBAAuB,wEAAsB;AAC7C,wBAAwB,2EAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;AACA;AACA,CAAC;AACsB;AACvB;AACA,+BAA+B,2DAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACO;AACP,SAAS,2DAAS;AAClB,mOAAmO;AACnO;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iEAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2DAAS;AAC5C;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,6DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxVA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,8BAA8B;AACzF;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,CAAC;AACyB;AACnB;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACvDA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiD;AACqN;AAC1N;AACuB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACf;AACP,uFAAuF,+DAAK;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,gFAA6B;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mHAAmH,gFAA6B;AAChJ,kCAAkC,wEAAsB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,+BAA+B,wDAAM,GAAG,EAAE,kEAAgB;AAC1D;AACA,iCAAiC,mEAAiB,CAAC,wEAAsB;AACzE;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAa;AAC9B;AACA;AACA,gBAAgB,yDAAO;AACvB,qCAAqC,wEAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yEAAyE,4DAA4D;AACrI;AACA,6BAA6B,8DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAgB;AACpC;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2DAAS,GAAG,iCAAiC;AAC/E;AACA,mCAAmC,qDAAW,GAAG,cAAc;AAC/D,0CAA0C;AAC1C;AACA;AACA,yBAAyB,8DAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAqB;AAClD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB,2DAAS,GAAG,qCAAqC;AAC1E;AACA;AACA,4CAA4C,2DAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+DAAK;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,+DAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAO;AACpC,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,mBAAmB,2DAAS,GAAG,2CAA2C;AAC1E,SAAS;AACT;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAS;AACrB;AACA,YAAY,2DAAS;AACrB,aAAa,uDAAO;AACpB;AACA;AACA;AACA,KAAK;AACL;AACA,kCAAkC;AAClC,QAAQ,uDAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjT4D;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qCAAqC;AACrC;AACA,mBAAmB,0EAAwB;AAC3C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0EAAwB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8BAA8B,wCAAwC;AACtE;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC,sBAAsB;;AAEO;;;;;;;;;;;;;;;;;;;;;;AC7K9B,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACqC;AACrC;AACV;AACL;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mDAAU;AAChD;AACA;AACA,yBAAyB,uFAAqC;AAC9D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,kDAAS;AAClC;AACA;AACA;AACA;AACA;AACA,qCAAqC,+CAA+C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8DAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAO;AAC9B;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC,aAAa,4BAA4B;AAC1E;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa,4BAA4B;AAC1E;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAO;AACtB;AACA;AACA;AACA;AACA,oCAAoC,4DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,wCAAwC;AACxC,6BAA6B;AAC7B;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,iEAAiE,cAAc,KAAK;AACpH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oDAAoD,4EAA4E;AAChI;AACA;AACA;AACA;AACA;AACA,wFAAwF,kBAAkB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;;ACrN5B,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6E;AACH;AAC1B;AACI;AAChB;AAC7B;AACP,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,0BAA0B;AACxF;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0CAA0C,6CAA6C;AACvF;AACA;AACA,+BAA+B,+DAAmB;AAClD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,2BAA2B,4DAAW;AACtC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,8CAA8C,iEAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iEAAqB,GAAG,+DAAmB;AACjF;AACA;AACA;AACA,qBAAqB,wEAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,YAAY,cAAc;AACnE,sCAAsC,2DAAS;AAC/C;AACA,0BAA0B,YAAY,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAO;AACpB,6CAA6C;AAC7C;AACA,aAAa,yDAAO;AACpB,qDAAqD;AACrD;AACA;AACA,yCAAyC,kBAAkB,kEAAkE;AAC7H;AACA,uDAAuD,qDAAiB;AACxE,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qCAAqC,2BAA2B,gDAAgD;AAC7J;AACA;AACA,uEAAuE,oDAAgB;AACvF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,uCAAuC;AACvC;AACA;AACA,YAAY,yDAAO;AACnB;AACA,wDAAwD,mBAAmB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mBAAmB;AAC3E;AACA;AACA,qDAAqD,kBAAkB,2BAA2B;AAClG,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA,wBAAwB,uEAAqB;AAC7C,2CAA2C,sBAAsB;AACjE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0BAA0B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2DAAS;AACpD,yDAAyD,sCAAsC;AAC/F,aAAa;AACb;AACA;AACA,yDAAyD,uCAAuC;AAChG,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,wDAAU;AACe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvW3B,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACkD;AACD;AACa;AACiH;AACvH;AACW;AACnB;AACE;AACL;AACO;AACsB;AACrC;AACoB;AACzD;AACA;AACA,4LAA4L,oBAAoB;AAChN,iCAAiC,0DAAa;AAC9C,8BAA8B,qDAAU;AACxC;AACA;AACA;AACA;AACA;AACA,4BAA4B,wDAAe,MAAM,wDAAY;AAC7D;AACA;AACA;AACA,6BAA6B,gEAAc,GAAG,sCAAsC;AACpF;AACA;AACA;AACA,8cAA8c;AAC9c;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAAM,GAAG,EAAE,kEAAgB,CAAC,uEAAqB;AAC1E,6BAA6B,+DAAK;AAClC,gDAAgD,UAAU,oBAAoB,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wFAAwF,aAAa,wCAAwC;AAC7I,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,8BAA8B;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,UAAU,qBAAqB,IAAI;AACvG;AACA;AACA,gCAAgC,uEAAqB;AACrD;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,YAAY,oDAAO;AACnB;AACA,wBAAwB,uEAAqB;AAC7C,oCAAoC,4DAAW;AAC/C;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,6DAA6D,UAAU,qBAAqB,IAAI;AAChG,+BAA+B,4DAAW;AAC1C;AACA,qBAAqB;AACrB,iBAAiB;AACjB,wCAAwC,kDAAkD;AAC1F,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA,0BAA0B,sDAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,gEAAa;AACzB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAc;AAChD,qCAAqC,sDAAiB;AACtD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oBAAoB,kEAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAW,GAAG,qBAAqB;AACjE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yEAAwB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4DAAW;AACvD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,6BAA6B,+DAAY;AACzC;AACA;AACA,gCAAgC,+DAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,UAAU,eAAe,IAAI;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yEAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yEAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4DAAW,GAAG,qBAAqB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,8BAA8B,oEAAkB;AAChD;AACA;AACA,gCAAgC,kEAAgB;AAChD,gCAAgC,wDAAM,GAAG;AACzC;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,mBAAmB,8DAAe;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,UAAU,qCAAqC,IAAI;AACzG,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAU,kCAAkC,IAAI;AAC7F,uBAAuB,oEAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oEAAkB;AAC3C;AACA,6CAA6C,UAAU,uBAAuB,IAAI;AAClF;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wDAAM,GAAG,EAAE,kEAAgB,CAAC,wEAAsB;AAC1E;AACA;AACA,mBAAmB,yDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uEAAqB;AACrD,8CAA8C,4DAAW;AACzD;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,sBAAsB,oDAAO;AAC7B;AACA;AACA,8DAA8D,0BAA0B;AACxF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,yBAAyB;AACzB;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,UAAU,eAAe,IAAI;AAC/E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,aAAa,sCAAsC;AACtI;AACA;AACA;AACA;AACA,+BAA+B,oDAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,2CAA2C,qCAAqC;AAChF,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4DAAW;AAC9C;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+EAA+E,4BAA4B;AAC3G,yBAAyB;AACzB,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+EAA+E,4BAA4B;AAC3G,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uCAAuC,gEAAmB;AAC1D;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4CAA4C;AAC7E,mCAAmC,aAAa;AAChD,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iDAAiD,UAAU,0BAA0B,IAAI;AACzF;AACA,6DAA6D,UAAU,0BAA0B,IAAI;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kEAAgB;AAC3C,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;;;;;ACl2BjB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AAChC;AACP;AACA;;;;;;;;;;;;;;;;ACZO;AACP;AACA;AACA;AACA;AACA,CAAC,8BAA8B;;;;;;;;;;;;;;;;ACL/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;;;;;;;;;;;;;;;;;;;ACvCzB,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiD;AACN;AACW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAK,6BAA6B,+DAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sEAAqB;AACjE,iBAAiB,yDAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAA0B;AACtD;AACA;AACA,4BAA4B,mEAAkB;AAC9C;AACA;AACA,4BAA4B,sEAAqB;AACjD;AACA;AACA,4BAA4B,sEAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oEAAmB;AAC/D;AACA;AACA,4DAA4D,oEAAmB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oEAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oEAAmB;AACjC,cAAc,sEAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kCAAkC,sBAAsB,eAAe,sEAAqB,EAAE;AAC9F;AACA,SAAS,IAAI;AACb;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;;;;;;ACxH6E;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,+BAA+B,uEAAqB;AACpD,4BAA4B,uEAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa,uEAAqB;AAClC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,uEAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,4CAA4C,oCAAoC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,0CAA0C,uEAAqB;AAC/D;AACA;AACA,uCAAuC,kEAAgB;AACvD;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD,wBAAwB;AACjF,aAAa;AACb;AACA;AACA;AACA,oBAAoB,uEAAqB,eAAe,sCAAsC;AAC9F,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;;;;;ACxIrB,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDsC;AACH;AACL;AACxB;AACsB;AACT;AAClB;AACxB,iEAAe,qDAAY,EAAC;;;;;;;;;;;;;;;;;;;;;ACP4B;AACjD;AACP;AACA;AACA;AACA,mDAAmD,qEAAwB;AAC3E,SAAS;AACT;AACA;AACA;AACA;AACO;AACP,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kDAAkD,qCAAqC;AACvF;AACO;AACP;AACA;AACA;AACA,KAAK;AACL,4BAA4B,8BAA8B;AAC1D,kDAAkD,qCAAqC;AACvF;AACA;AACA,KAAK;AACL,oCAAoC,8BAA8B;AAClE,mDAAmD,sCAAsC;AACzF,oCAAoC,8BAA8B;AAClE;AACA;AACO;AACP,yDAAyD,kCAAkC;AAC3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFuC;AACoB;AACpD;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,+BAA+B,yCAAyC;AACxE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA,0DAA0D,mDAAmD;AAC7G;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,KAAK;AACL,4BAA4B,sBAAsB;AAClD;AACO;AACP,0DAA0D,kDAAkD;AAC5G;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,wEAA2B;AACvC;AACA,SAAS;AACT,eAAe,sDAAY,YAAY;AACvC;AACA;AACA;AACO;AACP;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChIA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AAC5C;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP,gCAAgC;AAChC,sBAAsB,kCAAkC;AACxD,YAAY;AACZ;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sCAAsC;AACxF;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzN6C;AACyE;AACtH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,mBAAmB,0DAAS;AAC5B;AACA;AACA,KAAK;AACL,oBAAoB,wEAA2B;AAC/C,oBAAoB,8DAAiB,CAAC,mEAAsB;AAC5D;AACA;AACO;AACP,IAAI,0DAAa;AACjB,mBAAmB,0DAAS;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kCAAkC;AAC7F;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP,IAAI,0DAAa;AACjB;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,0CAA0C;AAC1C,IAAI,0DAAa;AACjB,mBAAmB,0DAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,wEAA2B;AAC/C,oBAAoB,8DAAiB,CAAC,mEAAsB;AAC5D;AACA;;;;;;;;;;;;;;;;AC9KO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACdA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC7BO;AACP,0CAA0C,aAAoB;AAC9D,eAAe,aAAoB;AACnC;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;ACjBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;ACZO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC9BA;AACqC;;AAErC;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE,SAAS,IAA6B;AACxC;AACA,EAAE,KAAK,EAEN;;AAED,aAAa,wDAAQ;AACrB,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;AClBP;AACf;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AChBA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0C;AACgB;AACJ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oEAAmB;AACvD,oCAAoC,oEAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,sDAAsD,uDAAc,uBAAuB;AAC3F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kEAAe;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACyB;;;;;;;;;;;;;;;;;;AC7G1B,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC0D;AACd;AAC7C;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,mDAAc;AACM;;;;;;;;;;;AC5BtB,eAAe;;;;;;;;;;;;;;;;ACAf,cAAc,SAAI,IAAI,SAAI;AAC1B;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACsD;AAC/C;AACP,eAAe,mDAAU;AACzB;AACA,mBAAmB,mDAAU;AAC7B;AACA;AACA,uCAAuC,6CAA6C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;AChCkC;AACmB;;AAErD;AACA,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,0BAA0B;AAC/F,qEAAqE,wBAAwB;AAC7F;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,qEAAqE,0BAA0B;AAC/F;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,mDAAU;;AAES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DsB;AACe;AACD;AACb;AACQ;AACA;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,kBAAkB,MAAqC,GAAG,CAAqB,OAAO,wDAAc;AACpG;AACA;AACA;AACA;AACA;AACA,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAqC,IAAI,wDAAc;AAC3E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,eAAe,yDAAU;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,eAAe,yDAAU;AACzB;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kEAAgB;AAClC;AACA;AACA;AACA;AACA;AACA,kBAAkB,+CAAQ,GAAG;AAC7B;AACA;AACA,sBAAsB,+CAAQ,GAAG;AACjC;AACA;AACA,sBAAsB,+CAAQ,GAAG;AACjC;AACA;AACA,mCAAmC,QAAQ,+CAAQ,GAAG;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6BAA6B,2BAA2B;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,4DAAa;AAChD;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO,4DAAa,KAAK;AACjE;AACA;AACA;AACA;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4DAAa;AAC9D,kDAAkD,4DAAa;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA,0DAA0D,4DAAa;AACvE,2DAA2D,4DAAa;AACxE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAqC,IAAI,wDAAc;AAC/D;AACA;AACA;AACA;AACA;AACA,gEAAgE,+BAA+B,4DAAa,KAAK,KAAK,4DAAa;AACnI,SAAS;AACT;AACA;AACA;AACA;AACA,wDAAwD,4DAAa;AACrE,aAAa,KAAK,4DAAa;AAC/B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAqC,GAAG,CAAqB,OAAO,wDAAc;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kHAAkH,4DAAa;AAC/H;;AAE4H;;;;;;;;;;;;;;;;;;;AC7LjF;;AAE3C,iBAAiB,uDAAa;;AAE9B,iEAAe,UAAU,EAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;ACLW;AACgB;AACH;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B;AAC3E;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAqC,GAAG,CAAqB,OAAO,wDAAc,0MAA0M,WAAW,iBAAiB,wBAAwB,kCAAkC,+BAA+B,EAAE;AACja;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,kBAAkB,+CAAQ,GAAG,4BAA4B,0EAA0E;AACnI;AACA;AACA,kBAAkB,+CAAQ,GAAG,6BAA6B,SAAS,+CAAQ,GAAG,oCAAoC;AAClH;AACA;AACA,eAAe,+CAAQ,GAAG;AAC1B,KAAK;AACL;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB,+DAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAqC,GAAG,CAAqB,OAAO,wDAAc;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgL;;;;;;;;;;;;;;;;;;;AC3HhL;AACA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAI,IAAI,SAAI;AAC1B;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACgE;AAC8H;AACvL;AACP,kCAAkC;AAClC;AACA;AACA;AACA;AACA,IAAI,qEAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA;AACA;AACA,eAAe,mDAAU;AACzB,wBAAwB,kEAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAwB,YAAY,uEAAkB;AACvE;AACA;AACA,qBAAqB,gFAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAS;AAChC;AACA;AACA;AACA;AACA;AACA,+BAA+B,gFAAuB;AACtD;AACA;AACA,uBAAuB,sDAAS;AAChC;AACA;AACA,mBAAmB,mDAAU;AAC7B;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA,aAAa;AACb,sBAAsB,kFAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa,aAAa,GAAG;AAC9D;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gFAAuB;AACzD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gFAAuB;AAC1D;AACA;AACA,qBAAqB;AACrB;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,CAAC,CAAC,mDAAU;AACQ;;;;;;;;;;;;;;;;;;AC1OO;;;;;;;;;;;;;;;;ACApB;AACP,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtB4B;;;;;;;;;;;;;;;;ACArB;AACP,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACPA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACsD;AACA;AACA;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kDAAkD,kEAAkB;AACpE;AACA,wDAAwD,kEAAkB;AAC1E;AACA;AACA;AACA;AACA;AACA,mBAAmB,mDAAU;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC,CAAC,mDAAU;AACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtNE;AACwE;AACpD;AACrB;;;;;;;;;;;;;;;;;;;;;;;ACHqB;AACqE;AAChH,2CAA2C,gCAAgC,4DAAa;AACxF;AACA;AACA;AACO;AACP,mDAAmD,OAAO,4DAAa,KAAK;AAC5E;AACO;AACP;AACA;AACA,sDAAsD,qBAAqB;AAC3E;AACO;AACP,4BAA4B;AAC5B;AACA;AACA,QAAQ,yDAAa,cAAc,yDAAa;AAChD;AACA;AACA,iDAAiD,4DAAa;AAC9D,kDAAkD,4DAAa;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA,0DAA0D,4DAAa;AACvE,2DAA2D,4DAAa;AACxE,SAAS;AACT;AACA;AACA;AACO;AACP;AACA,QAAQ,yDAAa;AACrB,yBAAyB,iDAAS;AAClC;AACA;AACA;AACA,QAAQ,yDAAa;AACrB;AACA,gEAAgE,+BAA+B,4DAAa,KAAK,KAAK,4DAAa;AACnI,SAAS;AACT;AACA;AACA;AACA;AACA,wDAAwD,4DAAa;AACrE,aAAa,KAAK,4DAAa;AAC/B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACf;AACP,yBAAyB,2DAAe,oBAAoB,8DAAkB,CAAC,6DAAiB,kBAAkB,4DAAa;AAC/H;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9EA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoD;AACT;AACM;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACd;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACA;AACP,eAAe,yDAAU;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACO;AACP,eAAe,yDAAU;AACzB;AACA,KAAK;AACL;AACO;AACP;AACA,4CAA4C;AAC5C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kEAAgB;AAClC;AACA;AACA;AACA;AACO;AACP,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6BAA6B,2BAA2B;AACxD,KAAK;AACL;AACA;AACO;AACP;AACA;AACA,WAAW,+DAAK;AAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvIiD;AACQ;AACR;AACE;AACF;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAqC,GAAG,CAAsB,OAAO,wDAAc;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,WAAW,+CAAQ,GAAG,kCAAkC;AACxD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAqC,GAAG,CAAsB,OAAO,wDAAc;AAC7F;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sCAAsC;AACxF;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,YAAY,MAAqC,GAAG,CAAqC,GAAG,uDAAS;AACrG;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI,+DAAK;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,yDAAyD,kCAAkC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAqC,GAAG,CAAoE,GAAG,uDAAS;AAChI;AACA,QAAQ,MAAqC,GAAG,CAAgE,GAAG,uDAAS;AAC5H;AACA,QAAQ,MAAqC,GAAG,CACiC,GAAG,uDAAS;AAC7F;AACA,iBAAiB;AACjB,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAqC,GAAG,CAAsB,OAAO,wDAAc;AACrG;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,QAAQ,MAAqC,GAAG,CAAqC,GAAG,uDAAS;AACjG;AACA;AACA,gBAAgB,+CAAQ,CAAC,+CAAQ,GAAG,eAAe,aAAa,qDAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,MAAqC,GAAG,CAAyB,GAAG,uDAAS;AACjF;AACA;AACA;AACA,IAAI,MAAqC,GAAG,CAA4C,GAAG,uDAAS;AACpG;AACA,+BAA+B,yCAAyC;AACxE;AACA;AACA,kBAAkB,MAAqC,GAAG,CAAqB,OAAO,wDAAc;AACpG;AACA;AACA,KAAK;AACL,IAAI,MAAqC,GAAG,CAAoC,GAAG,uDAAS;AAC5F;AACA;AACA;AACA;AACA,0DAA0D,mDAAmD;AAC7G;AACA;AACA;AACA,IAAI,MAAqC,GAAG,CAAiB,GAAG,uDAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B,sBAAsB;AAClD;AACA;AACA,0DAA0D,kDAAkD;AAC5G;AACA;AACA;AACA,IAAI,MAAqC,GAAG,CAAwD,GAAG,uDAAS;AAChH;AACA;AACA;AACA,IAAI,MAAqC,GAAG,CAAqC,GAAG,uDAAS;AAC7F,IAAI,MAAqC,GAAG,CAAyC,GAAG,uDAAS;AACjG;AACA,IAAI,MAAqC,GAAG,CAAuD,GAAG,uDAAS;AAC/G;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAqC,GAAG,CAAsB,OAAO,wDAAc;AAC7F;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,qDAAc,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+DAAK;AAC5C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,mFAAmF,0BAA0B;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,wDAAwD,iCAAiC;AACzF;AACA;AACA;AACA,+DAA+D,wCAAwC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+DAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,mCAAmC;AAC5F;AACA;AACA,uBAAuB,+CAAQ,CAAC,+CAAQ,GAAG,WAAW,YAAY,qDAAc,gCAAgC;AAChH,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kCAAkC;AAC7F,gBAAgB,MAAqC,IAAI,wDAAc;AACvE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,yDAAyD;AAC9J;AACA;AACA;AACA,+BAA+B,+CAAQ,CAAC,+CAAQ,GAAG,WAAW,sCAAsC;AACpG;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4BAA4B,+DAAK;AACjC;AACA;AACA,uBAAuB,+CAAQ,CAAC,+CAAQ,GAAG,WAAW;AACtD,6DAA6D,iDAAiD;AAC9G,qBAAqB,GAAG;AACxB,aAAa;AACb,SAAS;AACT;AACA;AACA,2EAA2E,0BAA0B;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,yCAAyC,sCAAsC;AAC/E;AACA;AACA;AACA,4BAA4B,+DAAK;AACjC,0BAA0B,cAAc;AACxC,8BAA8B,cAAc;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,iCAAiC;AACrI;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+DAAK;AAC3B;AACA;AACA,uBAAuB,+CAAQ,CAAC,+CAAQ,GAAG,WAAW,oBAAoB;AAC1E,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2CAA2C;AACpF;AACA,SAAS;AACT;AACA;AACA,sBAAsB,+DAAK;AAC3B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAoB;AAC9D,eAAe,aAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+CAAQ,GAAG,yCAAyC;AACxE;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE+jC;;;;;;;;;;;;ACj5BljC;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,gBAAgB,mBAAO,CAAC,qCAA0B;AAClD,eAAe,mBAAO,CAAC,qBAAU;AACjC,UAAU,mBAAO,CAAC,eAAK;AACvB,iBAAiB,mBAAO,CAAC,uBAAY;AACrC,kBAAkB,mBAAO,CAAC,4BAAiB;AAC3C;AACA,yBAAyB;AACzB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC,iBAAiB,KAAK;AAC3D;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gBAAgB;AAChB;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,6DAA6D,kBAAkB,kBAAkB;AACjG;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,+BAA+B,MAAM,oEAAoE;AAC7J,gEAAgE,mFAAmF;AACnJ,6DAA6D,kBAAkB,sCAAsC,0CAA0C,4DAA4D;AAC3N;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,gBAAgB;AAChB,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gDAAgD,oCAAoC;AACpF;AACA;AACA;AACA;AACA,gDAAgD,0CAA0C;AAC1F;AACA;AACA;AACA,gDAAgD,uCAAuC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C,cAAc,oBAAoB,kDAAkD,gBAAgB,oBAAoB;AACnM;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+BAA+B;AAChE;AACA;AACA;AACA,KAAK,IAAI;AACT;;;;;;;;;;;;ACrOa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,wBAAa;AACvC,gBAAgB;AAChB,iBAAiB;AACjB,yBAAyB;AACzB,kBAAkB;AAClB,sBAAsB;AACtB;AACA,sCAAsC,sCAAsC;AAC5E;AACA,eAAe,mBAAO,CAAC,qBAAU;AACjC,cAAc;;;;;;;;;;;;ACZD;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,iBAAiB;;;;;;;;;;;;ACHJ;AACb;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,SAAS,mBAAO,CAAC,qBAAU;;;;;;;;;;;;ACTd;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iDAAwB,EAAE;AAC3D,UAAU,mBAAO,CAAC,eAAK;AACvB,aAAa,gEAAuC;AACpD,YAAY,oEAA2C;AACvD;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,mCAAmC;AACnC;AACA;AACA,sEAAsE,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc;AACd,kBAAe;;;;;;;;;;;;AClPF;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,kBAAkB,mBAAO,CAAC,wBAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;;;;;;;;;;;;AC1HJ;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,YAAY,GAAG,WAAW,GAAG,qBAAqB,GAAG,kBAAkB;AACrG;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,wEAAwE,0BAA0B;AAClG;AACA;AACA;AACA;AACA;AACA,0FAA0F,UAAU;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uCAAuC;;;;;;;;;;;;ACvD1B;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,4BAA4B,mBAAO,CAAC,gCAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA,kEAAkE,wBAAwB;AAC1F;AACA,aAAa;AACb,SAAS,IAAI;AACb;AACA;AACA,CAAC;AACD,0BAA0B;;;;;;;;;;;;ACpGb;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,cAAc,mBAAO,CAAC,oBAAS;AAC/B,8BAA8B,mBAAO,CAAC,iCAAuB;AAC7D,gBAAgB,mBAAO,CAAC,kBAAS;AACjC,UAAU,mBAAO,CAAC,eAAK;AACvB,aAAa,mBAAO,CAAC,iBAAM;AAC3B,cAAc,mBAAO,CAAC,oBAAS;AAC/B,cAAc,mBAAO,CAAC,0BAAe;AACrC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,GAAG,mBAAmB,EAAE,WAAW,GAAG;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4IAA4I;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT,+DAA+D;AAC/D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wTAAwT,UAAU,KAAK;AACvU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,sHAAsH;AACtH;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,yBAAyB;AACzB;AACA,8GAA8G;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA,iDAAiD,oBAAoB;AACrE;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,gCAAgC;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,EAAE;AACvE,gCAAgC,sDAAsD;AACtF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAgC;AAClE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,yEAAyE;AACrK,kDAAkD,4CAA4C;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,2DAA2D,4JAA4J;AACvN,iBAAiB,gEAAgE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,oCAAoC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+BAA+B;AAC/B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+BAA+B,wEAAwE,oCAAoC;AAC3I;AACA,aAAa;AACb;AACA;AACA;AACA,4DAA4D,oCAAoC;AAChG;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gDAAgD;;;;;;;;;;;;ACtxBnC;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,cAAc,mBAAO,CAAC,oBAAS;AAC/B,WAAW,mBAAO,CAAC,+BAAoB;AACvC,sBAAsB,mBAAO,CAAC,0BAAe;AAC7C,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,8CAA8C,0BAA0B;AAC5I,yCAAyC,gDAAgD;AACzF;AACA;AACA,sDAAsD,oBAAoB,YAAY;AACtF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6LAA6L;AAC7L,8DAA8D,gBAAgB,oBAAoB,0BAA0B;AAC5H;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,0FAA0F,wCAAwC;AAClI,6FAA6F,qCAAqC;AAClI,4EAA4E,4CAA4C;AACxH;AACA;AACA;AACA,4FAA4F,cAAc;AAC1G;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,uCAAuC,oCAAoC,0BAA0B,IAAI;AACzG;AACA;AACA,4CAA4C,WAAW,qCAAqC,0BAA0B,GAAG;AACzH,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,oEAAoE,oCAAoC;AACxG;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,+DAA+D;AAC/D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uEAAuE,6DAA6D;AACpI,oEAAoE,8CAA8C,IAAI;AACtH;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,0CAA0C,WAAW,iBAAiB,KAAK;AAC7K;AACA,iCAAiC;AACjC;AACA,0DAA0D,wCAAwC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yBAAyB;AACtF;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,yDAAyD,yDAAyD;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC;AAC3G;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AACD,iCAAiC;;;;;;;;;;;;AChRpB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD,2BAA2B,KAAK;AACzF;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C,qBAAqB,KAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,CAAC,4CAA4C,qBAAqB,KAAK;AACvE;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC,mBAAmB,KAAK;AACjE;;;;;;;;;;;;AC1Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,qBAAU;AACjC,kBAAkB;;;;;;;;;;;;ACPL;AACb;AACA,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,mBAAO,CAAC,kBAAO;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;;;;;;;;;;;;ACnBF;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,mBAAO,CAAC,oBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,oCAAoC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,iCAAiC;AACjC;AACA;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,SAASu8gB,aAAT,CAAuBpyH,IAAvB,EAA6Bhf,OAA7B,EAAsC;AACtC,MAAG,IAAH,EAA6D;AAC5D3lT,IAAAA,MAAM,CAAC1nF,OAAP,GAAiBqtY,OAAO,EAAxB;AACA,GAFD,MAEO,EASN;AACD,CAbD,EAaG,IAbH,EAaS,SAASwxI,cAAT,GAAyB;AAGjC,MAAIC,QAAQ,GAAI,UAAUntc,MAAV,EAAkB;AAElC;AACA;AACA,QAAIxnC,OAAO,GAAG,wBAAd;AAEA;AACD;AACA;;AACC,QAAI40e,YAAY,GAAGptc,MAAM,CAACotc,YAAP,IAAwB,YAAY;AACtD,UAAI58gB,IAAI,GAAG,EAAX;AAEA,aAAO;AACN68gB,QAAAA,OAAO,EAAE,UAAUh3e,GAAV,EAAeoY,IAAf,EAAqB;AAAEj+C,UAAAA,IAAI,CAAC6lC,GAA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AACA;AACA;AACA;AACA;AACA,4HAA4H;AAC5H,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,CAAC;AACD,kBAAe;AACf;AACA;AACA;AACA;AACA,4CAA4C,wCAAwC;AACpF;AACA;AACA,CAAC;AACD,eAAe;AACf;AACA,mBAAmB;AACnB;AACA,oCAAoC;AACpC;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;ACvHa;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA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B,CAACqB,YAAD,EAAel4d,KAAf,EAAsBk3d,YAAtB,EAAoCT,YAApC,CAAjB;AACH,CA7BD,EA8BA;;;AACAj1hB,2BAAA,GAA8B;AAC1B6zhB,EAAAA,aAAa,EAAEzF,OAAO,CAACC,OADG;AAE1B55c,EAAAA,MAAM,EAAEA,MAFkB;AAG1Be,EAAAA,OAAO,EAAEA,OAHiB;AAI1B8+c,EAAAA,OAAO,EAAEA;AAJiB,CAA9B;;;;;;;;;;;ACxiBa;AACb;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,iBAAM;AAC3B,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,eAAe,mBAAO,CAAC,sBAAW;AAClC,aAAa,mBAAO,CAAC,oBAAS;AAC9B,cAAc,mBAAO,CAAC,qBAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD,2BAA2B,KAAK;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,6BAA6B;AAC7B;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,kBAAkB;AAClB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0HAA0H,4CAA4C;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,6DAA6D;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,4CAA4C;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kCAAkC;AAClC;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,kEAAkE,4BAA4B;AAC9F,KAAK;AACL;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B,4BAA4B;AACvE,yBAAyB,4CAA4C;AACrE;AACA;AACA,aAAa;AACb,0DAA0D,sBAAsB,4IAA4I,sBAAsB;AAClP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gDAAgD;AACvF,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB;;;;;;;;;;;;ACtWR;AACb;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,qBAAU;AACjC,SAAS,mBAAO,CAAC,qBAAU;AAC3B,8BAA8B,mBAAO,CAAC,iCAAuB;AAC7D,cAAc;AACd,SAAS,mBAAO,CAAC,8BAAmB;AACpC,kBAAe;;;;;;;;;;;;ACdF;AACb;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,mBAAO,CAAC,iCAAsB;AAClD,kBAAkB,mBAAO,CAAC,+BAAoB;AAC9C,kBAAe;AACf;AACA;AACA,mBAAmB;AACnB;AACA,qCAAqC,0CAA0C,gCAAgC,0CAA0C;AACzJ;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;;;;;AClBY;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,sBAAsB,mBAAO,CAAC,0BAAe;AAC7C,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,gBAAgB,mBAAO,CAAC,kBAAS;AACjC,qCAAqC,mBAAO,CAAC,2CAAgC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,0BAA0B;AAC7G,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,MAAM,gCAAgC;AACtC,MAAM,6BAA6B;AACnC,MAAM,gCAAgC;AACtC,MAAM,kCAAkC;AACxC,MAAM,8CAA8C;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iEAAiE;AACnH;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpJa;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,0BAA0B,mBAAO,CAAC,8BAAmB;AACrD,cAAc,mBAAO,CAAC,qBAAU;AAChC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,WAAW,6BAA6B,mBAAmB;AACzH;AACA,uCAAuC,GAAG;AAC1C;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB,qCAAqC;AACrC,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAe;;;;;;;;;;;;AC9GF;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,2BAAgB;AAC7C,mBAAmB;AACnB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,kCAAuB;AAC3D,yBAAyB;;;;;;;;;;;;ACVZ;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,8BAA8B,mBAAO,CAAC,kCAAuB;AAC7D,oBAAoB,mBAAO,CAAC,wBAAa;AACzC,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,kBAAkB,mBAAO,CAAC,uDAA4C;AACtE,cAAc,mBAAO,CAAC,qBAAU;AAChC,cAAc,mBAAO,CAAC,qBAAU;AAChC,sBAAsB,mBAAO,CAAC,0BAAe;AAC7C,mBAAmB,mBAAO,CAAC,yBAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA,qCAAqC;AACrC;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,mBAAmB;AACnB,yBAAyB,6BAA6B;AACtD,sCAAsC;AACtC;AACA,eAAe,cAAc;AAC7B,CAAC;AACD;AACA,uHAAuH;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD,gCAAgC,wBAAwB;AACxD;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qCAAqC,+BAA+B;AACpH,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA,+BAA+B,cAAc,wCAAwC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,gGAAgG,wDAAwD;AACxJ;AACA,oFAAoF,0CAA0C;AAC9H;AACA;AACA,gGAAgG;AAChG,mDAAmD;AACnD;AACA,yFAAyF,0CAA0C;AACnI;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA,yCAAyC;AACzC;AACA,iCAAiC;AACjC;AACA,0CAA0C,YAAY;AACtD;AACA,sEAAsE,iBAAiB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,0DAA0D;AACzH,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,0CAA0C;AAC1C,4FAA4F,gDAAgD,WAAW,2BAA2B;AAClL;AACA,qCAAqC;AACrC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,KAAK;AACL,CAAC;AACD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kDAAkD,0DAA0D;AAC5I;AACA,uEAAuE,aAAa,gDAAgD;AACpI,uCAAuC,gBAAgB;AACvD,gCAAgC;AAChC;AACA;AACA;AACA;AACA,+EAA+E,aAAa,sCAAsC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yDAAyD;AACzD;AACA,eAAe,oDAAoD;AACnE,CAAC;AACD;AACA,4BAA4B;AAC5B,8EAA8E;AAC9E;AACA;AACA;AACA;AACA,yEAAyE,+BAA+B,IAAI;AAC5G,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,oBAAoB;AACjF,uEAAuE,wEAAwE;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yCAAyC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd,2BAA2B;AAC3B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oFAAoF;AAClI;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA,uCAAuC,iCAAiC;AACxE;AACA,qCAAqC,+DAA+D,uCAAuC,IAAI;AAC/I;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnfa;AACb;AACA;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AA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;AAEA;AACA,oCAAoC,YAAY;AAChD,+HAA+H,0DAAgB;AAC/I;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACe;AACf;AACA;AACA,kBAAkB,wBAAwB;AAC1C;;AAEA,QAAQ,IAAqC;AAC7C;AACA,QAAQ,0DAAO;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA,QAAQ,0DAAO;AACf;AACA;;AAEA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,UAAU;AACvB;AACA;AACA;;AAEe;AACf,mEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;AC/BA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AACO,IAAIK,WAAW,GAAG;AACvBzne,EAAAA,IAAI,EAAE;AAEN;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA3ByB,CAAlB;AA4BU,SAAS6qc,WAAT,CAAqB84B,OAArB,EAA8BuD,cAA9B,EAA8CC,QAA9C,EAAwD;AACvE,MAAIO,KAAJ;;AAEA,MAAI,OAAOR,cAAP,KAA0B,UAA1B,IAAwC,OAAOC,QAAP,KAAoB,WAAhE,EAA6E;AAC3EA,IAAAA,QAAQ,GAAGD,cAAX;AACAA,IAAAA,cAAc,GAAGx0hB,SAAjB;AACD;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;AACR;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;ACpCA,aAAa,kDAAyB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEA,gBAAgB,mBAAO,CAAC,+BAAoB;;AAE5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEA,gBAAgB,mBAAO,CAAC,+BAAoB;AAC5C,aAAa,kDAAyB;;AAEtC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACrLA,aAAa,kDAAyB;AACtC,gBAAgB,mBAAO,CAAC,+BAAoB;;AAE5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;;;;;;;;;;;ACrKA,aAAa,kDAAyB;AACtC,gBAAgB,mBAAO,CAAC,+BAAoB;;AAE5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9OA,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;AACA,kBAAkB,mBAAO,CAAC,8BAAoB;AAC9C,cAAc,kDAAyB;AACvC,WAAW,mBAAO,CAAC,iBAAM;AACzB,mBAAmB,mBAAO,CAAC,wBAAc;AACzC,iBAAiB,mBAAO,CAAC,qCAA0B;AACnD;AACA,yBAAyB,iGAAwE;AACjG,8BAA8B;AAC9B,2BAA2B;;AAE3B,UAAU,mBAAO,CAAC,mBAAQ;;AAE1B;AACA;AACA;AACA;;AAEA,mBAAO,CAAC,0BAAe;AACvB,mBAAO,CAAC,oDAAyC;AACjD,mBAAO,CAAC,gDAAqC;AAC7C,mBAAO,CAAC,0DAA+C;AACvD,mBAAO,CAAC,mDAAwC;AAChD,mBAAO,CAAC,uDAA4C;AACpD,mBAAO,CAAC,2CAAgC;;AAExC;AACA,iBAAiB,mBAAO,CAAC,iCAAsB;;AAE/C;AACA,mBAAO,CAAC,uBAAY;;AAEpB;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtCA,UAAU,mBAAO,CAAC,oBAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;ACjNA,IAAIa,GAAG,GAAG/4hB,mBAAO,CAAC,mBAAD,CAAjB;;AACAA,mBAAO,CAAC,0BAAD,CAAP;;AACAA,mBAAO,CAAC,oDAAD,CAAP;;AACA,IAAIg5hB,kBAAJ;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAD,GAAG,CAACE,MAAJ,GAAaF,GAAG,CAACG,IAAJ,CAASC,OAAT,CAAiB;AAC5B;AACF;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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A;AACA;AACA,aAAa,mBAAO,CAAC,yBAAc;;AAEnC;AACA;AACA;AACA,iBAAiB,0EAAiD;AAClE,CAAC;AACD,mBAAO,CAAC,kCAAuB;AAC/B,mBAAO,CAAC,sBAAW;AACnB,mBAAO,CAAC,qBAAU;AAClB,mBAAO,CAAC,mBAAQ;AAChB,mBAAO,CAAC,8BAAmB;AAC3B,mBAAO,CAAC,sBAAW;AACnB,mBAAO,CAAC,uBAAY;AACpB,mBAAO,CAAC,8BAAmB;AAC3B,mBAAO,CAAC,qCAA0B;AAClC,mBAAO,CAAC,8BAAmB;AAC3B,mBAAO,CAAC,uCAA4B;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC7GD,UAAU,mBAAO,CAAC,mBAAQ;;AAE1B;AACA;AACA,IAAI,YAAY,GAAG,gBAAgB,gBAAgB,aAAa;AAChE;AACA;AACA;AACA;AACA,WAAW,YAAY,KAAK,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,qDAAqD,YAAY;AACjE;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oEAAoE,QAAQ;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,kBAAkB,KAAK;AAC/D;;AAEA;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,kBAAkB,KAAK;AAC/D;;AAEA;AACA,mDAAmD,KAAK;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,GAAG,iBAAiB,cAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrPA,UAAU,mBAAO,CAAC,oBAAS;AAC3B,UAAU,mBAAO,CAAC,4BAAmB;;AAErC;AACA,oDAAoD,QAAQ;AAC5D;AACA,IAAI,yBAAyB;AAC7B,IAAI,oBAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,gBAAgB,iBAAiB;AACjC;AACA,MAAM;AACN,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,QAAQ,oBAAoB,IAAI,yBAAyB;AACzD;AACA,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA,kEAAkE,OAAO;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,kCAAkC,oBAAoB;AACtD,MAAM,wBAAwB;AAC9B,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACvMD,UAAU,mBAAO,CAAC,oBAAS;AAC3B,sBAAsB,mBAAO,CAAC,0CAA+B;AAC7D,UAAU,mBAAO,CAAC,4BAAmB;;AAErC;AACA;AACA;AACA;AACA;AACA,IAAI,+CAA+C;AACnD;AACA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA,IAAI,mCAAmC;AACvC,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAA0B;AAClC,QAAQ,mCAAmC;AAC3C,QAAQ,kCAAkC;AAC1C;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD,QAAQ,kCAAkC;AAC1C;AACA;AACA;AACA,QAAQ,mCAAmC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,kCAAkC,8CAA8C;AAChF,SAAS,kCAAkC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;AChYD,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA,uDAAuD,WAAW;AAClE;AACA,uCAAuC,kBAAkB;AACzD;AACA,IAAI,4BAA4B;AAChC;AACA;AACA;AACA,yBAAyB,WAAW;AACpC,MAAM,iBAAiB;AACvB;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,KAAK,kBAAkB,KAAK;AAC1E;;AAEA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+CAA+C;AAClE,mBAAmB,kDAAkD;AACrE,mBAAmB,kCAAkC;AACrD,mBAAmB,4CAA4C;AAC/D,mBAAmB,kCAAkC;AACrD,mBAAmB,sCAAsC;AACzD,mBAAmB,mDAAmD;AACtE,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnLA,UAAU,mBAAO,CAAC,oBAAS;AAC3B,UAAU,mBAAO,CAAC,4BAAmB;;AAErC;AACA;AACA;AACA;AACA,IAAI,4BAA4B;AAChC;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAA2B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;;AAEA,CAAC;;;;;;;;;;;AC7FD,UAAU,mBAAO,CAAC,oBAAS;AAC3B,UAAU,mBAAO,CAAC,4BAAmB;;AAErC;AACA,oDAAoD,QAAQ;AAC5D;AACA,IAAI,yBAAyB;AAC7B,IAAI,oBAAoB;AACxB;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,QAAQ,oBAAoB,IAAI,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,kCAAkC,oBAAoB;AACtD,MAAM,wBAAwB;AAC9B,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;;AAEA,CAAC;;;;;;;;;;;AChID,UAAU,mBAAO,CAAC,oBAAS;AAC3B,UAAU,mBAAO,CAAC,4BAAmB;;AAErC;AACA;AACA;AACA;AACA,IAAI,mCAAmC;AACvC;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAkC;AAC1C;AACA;AACA;AACA,QAAQ,kCAAkC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,GAAG;;AAEH;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;AClHD,IAAIF,GAAG,GAAG/4hB,mBAAO,CAAC,mBAAD,CAAjB;;AACA,IAAIk5hB,IAAI,GAAGl5hB,mBAAO,CAAC,mBAAD,CAAlB;;AACA,IAAIs8hB,4BAA4B,GAAG,CAAC,+BAAD,EAAkC,gCAAlC,CAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT,CAAqB/uf,OAArB,EAA8B;AAC5B,MAAIgH,OAAO,GAAGhH,OAAO,CAACgH,OAAtB;AACA,MAAI44C,GAAG,GAAG54C,OAAO,CAAC44C,GAAR,IAAe,EAAzB;AACA,MAAIovc,UAAU,GAAGpvc,GAAG,CAACovc,UAArB;AACA,MAAIC,WAAW,GAAG,EAAlB;;AACA,MAAIjof,OAAO,CAAC1xC,MAAR,CAAeqnC,MAAnB,EAA2B;AACzBsyf,IAAAA,WAAW,CAACtyf,MAAZ,GAAqBqK,OAAO,CAAC1xC,MAAR,CAAeqnC,MAApC;AACD;;AACD,MAAIijD,GA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wBAAwB,EAAEA,wBAHX;AAIfD,EAAAA,yBAAyB,EAAEA,yBAJZ;AAKfX,EAAAA,WAAW,EAAEA,WALE;AAMfiE,EAAAA,wBAAwB,EAAEzB;AANX,CAAjB;;;;;;;;;;ACjXA,UAAU,mBAAO,CAAC,oBAAS;AAC3B;AACA,aAAa,kDAAyB;AACtC,kBAAkB,mBAAO,CAAC,kBAAO;AACjC,kBAAkB,mBAAO,CAAC,0BAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN,eAAe;AACf,MAAM;AACN;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN,eAAe;AACf,MAAM;AACN,eAAe;AACf,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,KAAK,UAAU,GAAG,UAAU,GAAG,SAAS,EAAE;AACzD;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,SAAS;AACT,iBAAiB,SAAS;AAC1B,oBAAoB,WAAW;AAC/B,oBAAoB;AACpB,OAAO;AACP;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC,uCAAuC;AACvC;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACrSA,UAAU,mBAAO,CAAC,oBAAS;AAC3B,iBAAiB,mBAAO,CAAC,yBAAc;AACvC,kBAAkB,mBAAO,CAAC,kBAAO;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,uDAAuD;AACvD;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;ACtkBA,WAAW,gDAAuB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;AC1CA,WAAW,gDAAuB;AAClC,aAAa,kDAAyB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;ACtEA,WAAW,gDAAuB;AAClC,cAAc,mBAAO,CAAC,wBAAa;;AAEnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACtFA,WAAW,gDAAuB;;AAElC;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChDA,0BAA0B,4FAAoE;AAC9F,iBAAiB,2DAAmC;;AAEpD;AACA;;AAEA;;AAEA,oBAAoB,0BAA0B;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpBA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7BA,WAAW,gDAAuB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5FA,mBAAmB,gEAAuC;;AAE1D;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxEA,YAAY,iDAAwB;;AAEpC,mBAAmB,gEAAuC;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/HA,WAAW,gDAAuB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrEA,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,yBAAyB,mBAAO,CAAC,kCAAuB;AACxD,wBAAwB,wEAA+C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,oBAAoB,8CAA8C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sGAAsG;;AAEtG;AACA;AACA;AACA;AACA,wDAAwD,mBAAmB;AAC3E;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA,6EAA6E,KAAK;AAClF;AACA;AACA,aAAa,yDAAyD;AACtE,UAAU;AACV;AACA,aAAa,yDAAyD;AACtE;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,UAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,qEAAqE;;AAErE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,SAAS;;AAET;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,WAAW,4DAA4D;AACvE;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,mDAAmD;AACnD;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc,OAAO;AACrB;AACA;AACA,eAAe;AACf;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gDAAuB;AAC5C;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,cAAc,mBAAO,CAAC,4BAAiB;AACvC;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc,mBAAO,CAAC,4BAAiB;AACvC;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc,mBAAO,CAAC,iCAAsB;AAC5C;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc,mBAAO,CAAC,gCAAqB;AAC3C;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc,mBAAO,CAAC,2BAAkB;AACxC;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AC3tBA,UAAU,mBAAO,CAAC,mBAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAwB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA,QAAQ,qBAAqB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7OA,UAAU,mBAAO,CAAC,oBAAS;AAC3B,mBAAmB,uDAA8B;AACjD,mBAAO,CAAC,oBAAS;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC,QAAQ,YAAY;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,wDAAwD,qBAAqB;AAC7E,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,oCAAoC;;AAE9C;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA,2CAA2C;AAC3C,QAAQ;AACR;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACvIA,WAAW,mBAAO,CAAC,oBAAS;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC7DA,WAAW,mBAAO,CAAC,oBAAS;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC9CD,iBAAiB,mBAAO,CAAC,yBAAc;AACvC,gBAAgB,mBAAO,CAAC,wBAAa;AACrC,YAAY,mBAAO,CAAC,oBAAS;AAC7B,gBAAgB,mBAAO,CAAC,wBAAa;AACrC,qBAAqB,mBAAO,CAAC,8BAAmB;AAChD,eAAe,mBAAO,CAAC,qCAA0B;;AAEjD,WAAW,mBAAO,CAAC,oBAAS;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACxFA,uBAAuB,4DAAmC;;AAE1D;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,oBAAS;;AAE7B,WAAW,mBAAO,CAAC,oBAAS;AAC5B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,GAAG;;AAEH;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACtHA,eAAe,oDAA2B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACbA,WAAW,mBAAO,CAAC,oBAAS;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AChCA,iBAAiB,mBAAO,CAAC,yBAAc;;AAEvC,WAAW,mBAAO,CAAC,oBAAS;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,gDAAgD,YAAY;AAC5D,gCAAgC;AAChC;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,YAAY;AAC5D;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,YAAY;AAC5D,wCAAwC,eAAe;AACvD,0CAA0C,eAAe;AACzD;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACtZA,UAAU,mBAAO,CAAC,mBAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;;AAEH;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA,SAAS,sDAAsD;AAC/D,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA,yDAAyD,WAAW;AACpE,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,oBAAoB,6CAA6C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+DAA+D;AAC/D,6BAA6B;AAC7B;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;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ACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC,eAAe;AAChD;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS,yEAAyE;AAClF;AACA,GAAG;AACH;;AAEA;AACA;AACA;;;;;;;;;;;ACxFA,WAAW,mBAAO,CAAC,oBAAS;AAC5B,kBAAkB,mBAAO,CAAC,4BAAiB;AAC3C,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC,yBAAyB,gEAAuC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qDAAqD;AACrD;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrGA,UAAU,mBAAO,CAAC,oBAAS;AAC3B,WAAW,mBAAO,CAAC,oBAAS;AAC5B,2BAA2B,mBAAO,CAAC,2CAAiC;AACpE,YAAY,mBAAO,CAAC,2BAAgB;AACpC,yBAAyB,gEAAuC;;AAEhE;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB,QAAQ,OAAO,qBAAqB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7GA,WAAW,mBAAO,CAAC,oBAAS;AAC5B,yBAAyB,gEAAuC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;;AAEA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAA6B;AACnD;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnJA,WAAW,mBAAO,CAAC,oBAAS;AAC5B,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,kBAAkB,mBAAO,CAAC,4BAAiB;AAC3C,iBAAiB,mBAAO,CAAC,2BAAgB;;AAEzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzGA,UAAU,mBAAO,CAAC,oBAAS;AAC3B,WAAW,mBAAO,CAAC,oBAAS;AAC5B,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3GA,WAAW,mBAAO,CAAC,oBAAS;;AAE5B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACnFA,IAAImud,GAAG,GAAG/4hB,mBAAO,CAAC,oBAAD,CAAjB;AAEA;AACA;AACA;;;AACA,IAAIw0C,OAAO,GAAG,IAAd;AAEA;AACA;AACA;;AACA,IAAI44C,GAAG,GAAG;AACNmuc,EAAAA,gBAAgB,EAAE,IADZ;AAENtof,EAAAA,WAAW,EAAE,QAFP;AAGNupf,EAAAA,UAAU,EAAE;AAHN,CAAV;AAMA;AACA;AACA;;AACA,IAAIiF,wBAAwB,GAAG;AAC3Bt3f,EAAAA,MAAM,EAAE,QADmB;AAE3B3iC,EAAAA,QAAQ,EAAE,QAFiB;AAG3BE,EAAAA,IAAI,EAAE,QAHqB;AAI3BsmC,EAAAA,QAAQ,EAAE;AAJiB,CAA/B;AAOA;AACA;AACA;;AACA+qf,GAAG,CAAC2I,GAAJ,CAAQb,MAAR,GAAiB9H,GAAG,CAACG,IAAJ,CAASC,OAAT,CAAiB;AAC9B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIjsf,EAAAA,WAAW,EAAE,SAAS2zf,MAAT,CAAgB1zf,OAAhB,EAAyB;AAClC,SAAKA,OAAL,GAAeA,OAAO,IAAI,EAA1B;AACH,GAtB6B;;AAwB9B;AACJ;AACA;AACA;AACIw0f,EAAAA,qBAAqB,EAAE,SAASA,qBAAT,CAA+Bzzf,GAA/B,EAAoC;AACvD;AACA,QAAIzmC,QAAQ,GAAG,UAAf;;AACA,QAAIymC,GAAG,CAACsC,OAAJ,CAAY/oC,QAAZ,MAA0B,CAA9B,EAAiC;AAC7B,aAAOymC,GAAG,CAACnoB,SAAJ,CAActe,QAAQ,CAACxF,MAAvB,CAAP;AACH;AACJ,GAlC6B;;AAoC9B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI2/hB,EAAAA,YAAY,EAAE,SAASA,YAAT,CAAsBz0f,OAAtB,EAA+By9B,QAA/B,EAAyC;AACnD,QAAI,OAAOz9B,OAAP,KAAmB,UAAnB,IAAiCy9B,QAAQ,KAAK1nE,SAAlD,EAA6D;AACzD0nE,MAAAA,QAAQ,GAAGz9B,OAAX;AACAA,MAAAA,OAAO,GAAG,EAAV;AACH;;AACD,QAAIuiC,IAAI,GAAG,IAAX;AACA,QAAImyd,WAAW,GAAG,OAAOj3d,QAAP,KAAoB,UAAtC,CANmD,CAOnD;;AACAz9B,IAAAA,OAAO,GAAG4rf,GAAG,CAACG,IAAJ,CAASnjL,KAAT,CAAe,KAAK5oU,OAApB,EAA6BA,OAA7B,CAAV,CARmD,CASnD;;AACA,QAAI20f,iBAAiB,GAAG,KAAKC,wBAAL,CAA8B50f,OAA9B,CAAxB;;AACA,QAAI20f,iBAAiB,KAAK,IAA1B,EAAgC;AAC5B,UAAID,WAAJ,EAAiB;AACb,eAAOj3d,QAAQ,CAACk3d,iBAAD,EAAoB,IAApB,CAAf;AACH;;AACD,YAAMA,iBAAN;AACH,KAhBkD,CAkBnD;;;AACA,QAAIx3hB,OAAO,GAAG,GAAd,CAnBmD,CAoBnD;;AACA,QAAI03hB,cAAc,GAAG;AACjB73f,MAAAA,MAAM,EAAEgD,OAAO,CAAChD,MADC;AAEjBtiC,MAAAA,QAAQ,EAAE,IAAIkxhB,GAAG,CAACnlf,QAAR,CAAiBzG,OAAO,CAAC3lC,QAAR,GAAmB,GAAnB,GAAyB2lC,OAAO,CAACzlC,IAAlD,CAFO;AAGjBkzhB,MAAAA,eAAe,EAAE,KAHA;AAIjBW,MAAAA,gBAAgB,EAAE;AAJD,KAArB;;AAMA,QAAIpuf,OAAO,CAAC8P,WAAZ,EAAyB;AACrB+kf,MAAAA,cAAc,CAAC/kf,WAAf,GAA6B9P,OAAO,CAAC8P,WAArC;AACH;;AACDzI,IAAAA,OAAO,GAAG,IAAIukf,GAAG,CAACiB,OAAR,CAAgBgI,cAAhB,CAAV,CA9BmD,CA+BnD;;AACAxtf,IAAAA,OAAO,CAAC44C,GAAR,GAAcA,GAAd;AAEA,QAAI5/C,OAAO,GAAGgH,OAAO,CAACmpf,WAAR,EAAd,CAlCmD,CAmCnD;;AACA,SAAKsE,yBAAL,CAA+Bz0f,OAA/B,EAAwCL,OAAxC;;AAEA,QAAI00f,WAAJ,EAAiB;AACbr0f,MAAAA,OAAO,CAAC0V,OAAR,CAAgB54C,OAAhB,EAAyB,UAASkuC,GAAT,EAActK,GAAd,EAAmB;AACxC,YAAIA,GAAJ,EAAS;AACLA,UAAAA,GAAG,GAAGwhC,IAAI,CAACiyd,qBAAL,CAA2Bzzf,GAA3B,CAAN;AACH;;AACD08B,QAAAA,QAAQ,CAACpyB,GAAD,EAAMtK,GAAN,CAAR;AACH,OALD;AAMH,KAPD,MAOO;AACH,UAAIA,GAAG,GAAGV,OAAO,CAAC0V,OAAR,CAAgB54C,OAAhB,CAAV;AACA,aAAO,KAAKq3hB,qBAAL,CAA2Bzzf,GAA3B,CAAP;AACH;AACJ,GApJ6B;;AAsJ9B;AACJ;AACA;AACA;AACI+zf,EAAAA,yBAAyB,EAAE,SAASA,yBAAT,CAAmCz0f,OAAnC,EAA4CL,OAA5C,EAAqD;AAC5EK,IAAAA,OAAO,CAAC+f,EAAR,CAAW,OAAX,EAAoB/f,OAAO,CAAC00f,UAA5B;AACA,QAAIvqQ,WAAW,GAAGnqP,OAAO,CAACmqP,WAA1B;AACAA,IAAAA,WAAW,CAAClvR,IAAZ,GAAmBswhB,GAAG,CAACG,IAAJ,CAASiJ,mBAAT,CAA6B;AAC5CC,MAAAA,MAAM,EAAE,SADoC;AAE5CC,MAAAA,MAAM,EAAEl1f,OAAO,CAACa;AAF4B,KAA7B,CAAnB;AAIH,GAjK6B;;AAmK9B;AACJ;AACA;AACA;AACA;AACI+zf,EAAAA,wBAAwB,EAAE,SAASA,wBAAT,CAAkC50f,OAAlC,EAA2C;AACjE;AACA,QAAInF,OAAO,GAAG,EAAd;AACAmF,IAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;;AACA,SAAK,IAAItF,GAAT,IAAgB45f,wBAAhB,EAA0C;AACtC,UAAI,CAAC9hiB,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqCqld,wBAArC,EAA+D55f,GAA/D,CAAL,EAA0E;AACtE;AACH;;AACD,UAAI,OAAOsF,OAAO,CAACtF,GAAD,CAAd,KAAwB45f,wBAAwB,CAAC55f,GAAD,CAApD,EAA2D;AACvDG,QAAAA,OAAO,IAAI,cAAcH,GAAd,GAAoB,6BAApB,GAAoD45f,wBAAwB,CAAC55f,GAAD,CAA5E,GAAoF,YAApF,GAAmG,OAAOsF,OAAO,CAACtF,GAAD,CAAjH,GAAyH,OAApI;AACH;AACJ;;AACD,QAAIG,OAAO,CAAC/lC,MAAZ,EAAoB;AAChB,aAAO82hB,GAAG,CAACG,IAAJ,CAAS93hB,KAAT,CAAe,IAAImC,KAAJ,EAAf,EAA4B;AAC/BqoD,QAAAA,IAAI,EAAE,kBADyB;AAE/B5jB,QAAAA,OAAO,EAAEA;AAFsB,OAA5B,CAAP;AAIH;;AACD,WAAO,IAAP;AACH;AA3L6B,CAAjB,CAAjB;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACRA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpBA,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,mBAAmB,mBAAO,CAAC,sCAA2B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9GA,IAAI+wf,GAAG,GAAG/4hB,mBAAO,CAAC,mBAAD,CAAjB;;AACA,IAAIsiiB,oBAAoB,GAAGtiiB,mBAAO,CAAC,2BAAD,CAAlC;;AACA,IAAIm5hB,OAAO,GAAGJ,GAAG,CAACG,IAAJ,CAASC,OAAvB;AACA,IAAIpzI,MAAM,GAAGgzI,GAAG,CAACG,IAAJ,CAASnzI,MAAtB;;AACA,IAAIw8I,QAAQ,GAAGviiB,mBAAO,CAAC,qBAAD,CAAtB;AAEA;AACA;AACA;;;AACA,IAAIwiiB,eAAe,GAAG;AAAC5ud,EAAAA,OAAO,EAAE,CAAV;AAAaxyE,EAAAA,KAAK,EAAE,CAApB;AAAuB8oE,EAAAA,QAAQ,EAAE;AAAjC,CAAtB;;AAEA,SAASu4d,eAAT,CAAyBC,OAAzB,EAAkC;AAChC,SAAO/iiB,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqComd,eAArC,EAAsDE,OAAO,CAACC,IAAR,CAAavK,YAAnE,CAAP;AACD;;AAED,IAAIwK,GAAG,GAAG,IAAIN,oBAAJ,EAAV;;AACAM,GAAG,CAACC,WAAJ,GAAkB,YAAW;AAC3B,MAAIlrT,UAAU,GAAG,UAAShlN,CAAT,EAAYsd,IAAZ,EAAkB;AACjC,QAAIy/B,IAAI,GAAG,IAAX;AACAA,IAAAA,IAAI,CAACozd,oBAAL,GAA4B,KAA5B;AAEApzd,IAAAA,IAAI,CAACjgB,IAAL,CAAUigB,IAAI,CAACizd,IAAL,CAAUvK,YAApB,EAAkC,UAAS5/e,GAAT,EAAc;AAC9C,UAAIA,GAAJ,EAAS;AACP,YAAIiqf,eAAe,CAAC/yd,IAAD,CAAnB,EAA2B;AACzB,cAAIq2U,MAAM,IAAIr2U,IAAI,CAACq2U,MAAL,YAAuBA,MAAM,CAACg9I,MAA5C,EAAoD;AAClDvqf,YAAAA,GAAG,CAACwqf,aAAJ,GAAoBtzd,IAApB;AACAl3B,YAAAA,GAAG,CAACutW,MAAJ,GAAar2U,IAAI,CAACq2U,MAAlB;AACAvtW,YAAAA,GAAG,CAACyqf,YAAJ,GAAmB,KAAnB;AACAvzd,YAAAA,IAAI,CAACq2U,MAAL,CAAYt2V,IAAZ,CAAiB,OAAjB,EAA0BjX,GAA1B;AACD,WALD,MAKO;AACL,kBAAMA,GAAN;AACD;AACF,SATD,MASO;AACLk3B,UAAAA,IAAI,CAAChhC,QAAL,CAActtC,KAAd,GAAsBo3C,GAAtB;AACAvI,UAAAA,IAAI,CAACuI,GAAD,CAAJ;AACD;AACF,OAdD,MAcO;AACLvI,QAAAA,IAAI,CAACy/B,IAAI,CAAChhC,QAAL,CAActtC,KAAf,CAAJ;AACD;AACF,KAlBD;AAoBD,GAxBD;;AA0BA,OAAK8hiB,QAAL,CAAc,UAAd,EAA0B,OAA1B,EAAmC,OAAnC,EAA4CvrT,UAA5C;AACA,OAAKurT,QAAL,CAAc,OAAd,EAAuB,YAAvB,EAAqC,SAArC,EAAgDvrT,UAAhD;AACA,OAAKurT,QAAL,CAAc,YAAd,EAA4B,MAA5B,EAAoC,SAApC,EAA+CvrT,UAA/C;AACA,OAAKurT,QAAL,CAAc,MAAd,EAAsB,MAAtB,EAA8B,OAA9B,EAAuCvrT,UAAvC;AACA,OAAKurT,QAAL,CAAc,OAAd,EAAuB,YAAvB,EAAqC,YAArC,EAAmDvrT,UAAnD;AACA,OAAKurT,QAAL,CAAc,YAAd,EAA4B,MAA5B,EAAoC,OAApC,EAA6CvrT,UAA7C;AACA,OAAKurT,QAAL,CAAc,MAAd,EAAsB,kBAAtB,EAA0C,OAA1C,EAAmDvrT,UAAnD;AACA,OAAKurT,QAAL,CAAc,kBAAd,EAAkC,aAAlC,EAAiD,cAAjD,EAAiEvrT,UAAjE;AACA,OAAKurT,QAAL,CAAc,cAAd,EAA8B,aAA9B,EAA6C,OAA7C,EAAsDvrT,UAAtD;AACA,OAAKurT,QAAL,CAAc,aAAd,EAA6B,SAA7B,EAAwC,OAAxC,EAAiDvrT,UAAjD;AACA,OAAKurT,QAAL,CAAc,SAAd,EAAyB,OAAzB,EAAkC,OAAlC,EAA2CvrT,UAA3C;AACA,OAAKurT,QAAL,CAAc,SAAd,EAAyB,UAAzB,EAAqC,UAArC,EAAiDvrT,UAAjD;AACA,OAAKurT,QAAL,CAAc,OAAd,EAAuB,UAAvB,EAAmC,UAAnC,EAA+CvrT,UAA/C;AACA,OAAKurT,QAAL,CAAc,UAAd,EAA0B,IAA1B,EAAgC,IAAhC,EAAsCvrT,UAAtC;AACD,CAzCD;;AA0CAirT,GAAG,CAACC,WAAJ;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA9J,GAAG,CAACxqf,OAAJ,GAAc4qf,OAAO,CAAC;AAEpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEjsf,EAAAA,WAAW,EAAE,SAASqB,OAAT,CAAiBiG,OAAjB,EAA0Bm/e,SAA1B,EAAqCrof,MAArC,EAA6C;AACxD,QAAIzjC,QAAQ,GAAG2sC,OAAO,CAAC3sC,QAAvB;AACA,QAAIsiC,MAAM,GAAGqK,OAAO,CAAC1xC,MAAR,CAAeqnC,MAA5B;AACA,QAAIqV,eAAe,GAAGhL,OAAO,CAAC1xC,MAAR,CAAe08C,eAArC;;AAEA,QAAIhL,OAAO,CAACxB,aAAZ,EAA2B;AACzB7I,MAAAA,MAAM,GAAGqK,OAAO,CAACxB,aAAjB;AACD,KAFD,MAEO,IAAIwB,OAAO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AASkD,WAAT,CAAqBrD,GAAG,CAACxqf,OAAzB;AAEAwqf,GAAG,CAACG,IAAJ,CAASyN,KAAT,CAAe5N,GAAG,CAACxqf,OAAnB,EAA4Bwqf,GAAG,CAACuK,kBAAhC;;;;;;;;;;ACxyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,mBAAO,CAAC,mBAAQ;AAC1B;AACA,eAAe,mBAAO,CAAC,qBAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;AC3MD,UAAU,mBAAO,CAAC,mBAAQ;AAC1B;AACA,eAAe,mBAAO,CAAC,qBAAU;;AAEjC;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;;AAElB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,CAAC;;;;;;;;;;;ACxMD,UAAU,mBAAO,CAAC,oBAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA,OAAO,gCAAgC;AACvC,6BAA6B,yCAAyC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc,OAAO,aAAa;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,QAAQ;AACR;AACA;AACA;AACA,kBAAkB;AAClB,QAAQ;AACR;AACA;AACA,kBAAkB,2CAA2C;AAC7D,iBAAiB,6BAA6B,GAAG,6BAA6B;AAC9E,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,8CAA8C,eAAe;AAC7D;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAA2C;AAC5E;AACA,uCAAuC,KAAK,kBAAkB,KAAK;AACnE;;AAEA;AACA;AACA;AACA;AACA,kEAAkE,YAAY;AAC9E,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,MAAM;AACN;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;;AAEA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;AACR;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,WAAW,UAAU,mBAAmB;AACxC;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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+BAA+B;AACpE,OAAO;AACP;AACA,qCAAqC,+BAA+B;AACpE,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B;AAC9B,wBAAwB;AACxB,2BAA2B;AAC3B,0BAA0B;AAC1B,gBAAgB;AAChB,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B,qBAAqB,QAAQ;AAC7B,qBAAqB,QAAQ;AAC7B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD;;AAEjD;AACA;;AAEA;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACr1BA,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC3BD,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA,mBAAO,CAAC,+BAAsB;;AAE9B;;AAEA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;ACXD,UAAU,mBAAO,CAAC,oBAAS;AAC3B,mBAAO,CAAC,wCAA6B;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACzDD,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC7DD,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D;AACA,2CAA2C;AAC3C,2CAA2C;AAC3C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA,qCAAqC,aAAa;AAClD;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA,iBAAiB,sCAAsC;AACvD;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,oDAAoD;AACpD;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;ACnGD,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACXD,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;ACvBD,mBAAO,CAAC,+BAAoB;;;;;;;;;;;ACA5B,UAAU,mBAAO,CAAC,oBAAS;AAC3B,cAAc,mBAAO,CAAC,sBAAW;AACjC,mBAAO,CAAC,0BAAe;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;;;;;;;;;;ACfF,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC5DA,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC/BD,IAAIvK,GAAG,GAAG/4hB,mBAAO,CAAC,oBAAD,CAAjB;;AACA,IAAIuniB,aAAa,GAAGvniB,mBAAO,CAAC,qCAAD,CAA3B;;AACA,IAAIw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+D,CASxC;;AACvB,QAAIijC,OAAO,GAAG,KAAKmwf,WAAL,CAAiBhK,SAAjB,EAA4Brof,MAA5B,CAAd;;AAEA,QAAIs/B,QAAJ,EAAc;AACZmud,MAAAA,GAAG,CAACG,IAAJ,CAASqV,KAAT,CAAe,YAAW;AACxB/ggB,QAAAA,OAAO,CAAC0V,OAAR,CAAgB54C,OAAhB,EAAyBsgE,QAAzB;AACD,OAFD;AAGD,KAJD,MAIO;AACL,aAAOp9B,OAAO,CAAC0V,OAAR,CAAgB54C,OAAhB,EAAyBsgE,QAAzB,CAAP;AACD;AACF,GAn4B+B;;AAq4BhC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE4je,EAAAA,mBAAmB,EAAE,SAASA,mBAAT,CAA6BljgB,MAA7B,EAAqCs/B,QAArC,EAA+C;AAClE,QAAI,OAAOt/B,MAAP,KAAkB,UAAlB,IAAgCs/B,QAAQ,KAAK1nE,SAAjD,EAA4D;AAC1D0nE,MAAAA,QAAQ,GAAGt/B,MAAX;AACAA,MAAAA,MAAM,GAAG,IAAT;AACD;;AAEDA,IAAAA,MAAM,GAAGytf,G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AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,GAAG;AACnB;AACA;AACA,4DAA4D,GAAG;AAC/D,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,yEAAyE,KAAK;AAC9E;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE,UAAU,cAAc,gBAAgB;AAC1G,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD,wCAAwC,EAAE;AAC1C;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC1RA,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AClID,UAAU,mBAAO,CAAC,oBAAS;AAC3B,mCAAmC,mBAAO,CAAC,wCAA6B;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD,wDAAwD,kBAAkB;AAC1E,UAAU,gBAAgB,GAAG,WAAW,MAAM,0BAA0B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,WAAW,yDAAyD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;ACrFD,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACbD,UAAU,mBAAO,CAAC,oBAAS;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI,2CAA2C;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;ACtHA,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAO,CAAC,iBAAM;AACd,mBAAO,CAAC,iBAAM;AACd,mBAAO,CAAC,sBAAW;AACnB,mBAAO,CAAC,iBAAM;AACd,mBAAO,CAAC,iBAAM;AACd,mBAAO,CAAC,sBAAW;AACnB,mBAAO,CAAC,oBAAU;;;;;;;;;;;ACxClB,UAAU,mBAAO,CAAC,oBAAS;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP,uCAAuC,kCAAkC;;AAEzE;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;AC9KA,UAAU,mBAAO,CAAC,oBAAS;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B;AAC/B;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;AC/CA,UAAU,mBAAO,CAAC,oBAAS;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL,iCAAiC;AACjC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;AC5EA,UAAU,mBAAO,CAAC,oBAAS;AAC3B;;AAEA,mBAAO,CAAC,iBAAM;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;ACxBA,UAAU,mBAAO,CAAC,oBAAS;AAC3B,oBAAoB,mBAAO,CAAC,4BAAkB;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA,mEAAmE,EAAE;;AAErE;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B;AAC9B,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;ACtNA,UAAU,mBAAO,CAAC,oBAAS;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnGA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA,sBAAsB,oBAAoB;AAC1C,IAAI;AACJ,oBAAoB;AACpB;;AAEA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC5CA;AACA,IAAIs9f,GAAJ;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIG,IAAI,GAAG;AACT7qW,EAAAA,WAAW,EAAE,QADJ;AAETuhX,EAAAA,MAAM,EAAE,SAASA,MAAT,GAAkB;AACxB,QAAI1W,IAAI,CAACv0d,SAAL,MAAoB,OAAOzc,SAAP,KAAqB,WAA7C,EAA0D;AACxD,aAAOA,SAAS,CAACpM,SAAjB;AACD,KAFD,MAEO;AACL,UAAI8zf,MAAM,GAAGl7e,OAAO,CAACuC,QAAR,GAAmB,GAAnB,GAAyBvC,OAAO,CAAC1qB,OAA9C;;AACA,UAAI0qB,OAAO,CAAC3a,GAAR,CAAY81f,iBAAhB,EAAmC;AACjCD,QAAAA,MAAM,IAAI,eAAel7e,OAAO,CAAC3a,GAAR,CAAY81f,iBAArC;AACD;;AACD,aAAOD,MAAP;AACD;AACF,GAZQ;AAcT9zf,EAAAA,SAAS,EAAE,SAASA,SAAT,GAAqB;AAC9B,QAAIlpB,IAAI,GAAGsmgB,IAAI,CAAC7qW,WAAhB;;AACA,QAAIyhX,KAAK,GAAG,aAAal9gB,IAAb,GAAoB,GAApB,GAA0B5yB,kDAAtC;;AACA,QAAI4yB,IAAI,KAAK,QAAb,EAAuBk9gB,KAAK,IAAI,MAAM5W,IAAI,CAAC0W,MAAL,EAAf;AACvB,WAAOE,KAAP;AACD,GAnBQ;AAqBTvD,EAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBvhc,MAAnB,EAA2B;AACpC,QAAIlvF,MAAM,GAAG03B,kBAAkB,CAACw3D,MAAD,CAA/B;AACAlvF,IAAAA,MAAM,GAAGA,MAAM,CAACF,OAAP,CAAe,sBAAf,EAAuCm0hB,MAAvC,CAAT,CAFoC,CAIpC;;AACAj0hB,IAAAA,MAAM,GAAGA,MAAM,CAACF,OAAP,CAAe,MAAf,EAAuB,UAASo0hB,EAAT,EAAa;AAC3C,aAAO,MAAMA,EAAE,CAAC5kc,UAAH,CAAc,CAAd,EAAiB5hG,QAAjB,CAA0B,EAA1B,EAA8B+hG,WAA9B,EAAb;AACD,KAFQ,CAAT;AAIA,WAAOzvF,MAAP;AACD,GA/BQ;AAiCT0hC,EAAAA,aAAa,EAAE,SAASA,aAAT,CAAuBwtD,MAAvB,EAA+B;AAC5C,QAAIu0B,KAAK,GAAG,EAAZ;AACA25Z,IAAAA,IAAI,CAAC0D,SAAL,CAAe5xb,MAAM,CAACr/F,KAAP,CAAa,GAAb,CAAf,EAAkC,UAAUm0C,IAAV,EAAgB;AAChDy/E,MAAAA,KAAK,CAACrwF,IAAN,CAAWgqf,IAAI,CAACqT,SAAL,CAAezsf,IAAf,CAAX;AACD,KAFD;AAGA,WAAOy/E,KAAK,CAACptH,IAAN,CAAW,GAAX,CAAP;AACD,GAvCQ;AAyCT89hB,EAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkB/hgB,GAAlB,EAAuB;AAC/B,WAAOgrf,IAAI,CAAChrf,GAAL,CAASvG,KAAT,CAAeuG,GAAf,CAAP;AACD,GA3CQ;AA6CTyggB,EAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBzggB,GAAnB,EAAwB;AACjC,WAAOgrf,IAAI,CAAChrf,GAAL,CAAS6W,MAAT,CAAgB7W,GAAhB,CAAP;AACD,GA/CQ;AAiDTgigB,EAAAA,gBAAgB,EAAE,SAASA,gBAAT,CAA0BC,EAA1B,EAA8B;AAC9C,WAAOjX,IAAI,CAACkX,WAAL,CAAiBzogB,KAAjB,CAAuBwogB,EAAvB,CAAP;AACD,GAnDQ;AAqDThO,EAAAA,mBAAmB,EAAE,SAASA,mBAAT,CAA6B72f,MAA7B,EAAqC;AACxD,QAAIswD,KAAK,GAAG,EAAZ;AACA,QAAIm0c,MAAM,GAAG7W,IAAI,CAACqT,SAAlB;AACA,QAAI8D,UAAU,GAAG1wiB,MAAM,CAACoM,IAAP,CAAYu/B,MAAZ,EAAoB8Z,IAApB,EAAjB;AAEA8ze,IAAAA,IAAI,CAAC0D,SAAL,CAAeyT,UAAf,EAA2B,UAASz9gB,IAAT,EAAe;AACxC,UAAI9yB,KAAK,GAAGwrC,MAAM,CAAC1Y,IAAD,CAAlB;AACA,UAAI09gB,KAAK,GAAGP,MAAM,CAACn9gB,IAAD,CAAlB;AACA,UAAIqY,MAAM,GAAGqlgB,KAAK,GAAG,GAArB;;AACA,UAAIh4d,KAAK,CAACC,OAAN,CAAcz4E,KAAd,CAAJ,EAA0B;AACxB,YAAIywiB,IAAI,GAAG,EAAX;AACArX,QAAAA,IAAI,CAAC0D,SAAL,CAAe98hB,KAAf,EAAsB,UAASmgD,IAAT,EAAe;AAAEswf,UAAAA,IAAI,CAACrhgB,IAAL,CAAU6ggB,MAAM,CAAC9vf,IAAD,CAAhB;AAA0B,SAAjE;AACAhV,QAAAA,MAAM,GAAGqlgB,KAAK,GAAG,GAAR,GAAcC,IAAI,CAACnrf,IAAL,GAAYjzC,IAAZ,CAAiB,MAAMm+hB,KAAN,GAAc,GAA/B,CAAvB;AACD,OAJD,MAIO,IAAIxwiB,KAAK,KAAKoD,SAAV,IAAuBpD,KAAK,KAAK,IAArC,EAA2C;AAChDmrC,QAAAA,MAAM,GAAGqlgB,KAAK,GAAG,GAAR,GAAcP,MAAM,CAACjwiB,KAAD,CAA7B;AACD;;AACD87F,MAAAA,KAAK,CAAC1sD,IAAN,CAAWjE,MAAX;AACD,KAZD;AAcA,WAAO2wD,KAAK,CAACzpF,IAAN,CAAW,GAAX,CAAP;AACD,GAzEQ;AA2ETgohB,EAAAA,YAAY,EAAE,SAASA,YAAT,CAAsBxyhB,IAAtB,EAA4B;AACxC,QAAIuxhB,IAAI,CAACv0d,SAAL,EAAJ,EAAsB,OAAO,IAAP;AACtB,WAAO3kE,mDAAA,CAA2B2H,IAA3B,EAAiC,OAAjC,CAAP;AACD,GA9EQ;AAgFT+nC,EAAAA,MAAM,EAAE;AACNwZ,IAAAA,MAAM,EAAE,SAASsnf,QAAT,CAAkBxlc,MAAlB,EAA0B;AAChC,UAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,cAAMkub,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU,iCAAiCynG,MAA3C,CAAX,CAAN;AACD;;AACD,UAAIA,MAAM,KAAK,IAAX,IAAmB,OAAOA,MAAP,KAAkB,WAAzC,EAAsD;AACpD,eAAOA,MAAP;AACD;;AACD,UAAItvC,GAAG,GAAGw9d,IAAI,CAACn3hB,MAAL,CAAY0uiB,QAAZ,CAAqBzlc,MAArB,CAAV;AACA,aAAOtvC,GAAG,CAAClyD,QAAJ,CAAa,QAAb,CAAP;AACD,KAVK;AAYNq/C,IAAAA,MAAM,EAAE,SAAS6nf,QAAT,CAAkB1lc,MAAlB,EAA0B;AAChC,UAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,cAAMkub,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU,iCAAiCynG,MAA3C,CAAX,CAAN;AACD;;AACD,UAAIA,MAAM,KAAK,IAAX,IAAmB,OAAOA,MAAP,KAAkB,WAAzC,EAAsD;AACpD,eAAOA,MAAP;AACD;;AACD,aAAOkub,IAAI,CAACn3hB,MAAL,CAAY0uiB,QAAZ,CAAqBzlc,MAArB,EAA6B,QAA7B,CAAP;AACD;AApBK,GAhFC;AAwGTjpG,EAAAA,MAAM,EAAE;AACN;AACJ;AACA;AACI0uiB,IAAAA,QAAQ,EAAE,UAASzuiB,IAAT,EAAey5D,QAAf,EAAyB;AACjC,aAAQ,OAAOy9d,IAAI,CAACrpe,MAAL,CAAYQ,IAAnB,KAA4B,UAA5B,IAA0C6oe,IAAI,CAACrpe,MAAL,CAAYQ,IAAZ,KAAqB1vD,UAAU,CAAC0vD,IAA3E,GACL6oe,IAAI,CAACrpe,MAAL,CAAYQ,IAAZ,CAAiBruD,IAAjB,EAAuBy5D,QAAvB,CADK,GAC8B,IAAIy9d,IAAI,CAACrpe,MAAT,CAAgB7tD,IAAhB,EAAsBy5D,QAAtB,CADrC;AAED,KAPK;AASNk1e,IAAAA,KAAK,EAAE,UAAS9pgB,IAAT,EAAewuV,IAAf,EAAqB55T,QAArB,EAA+B;AACpC,UAAI,OAAO50B,IAAP,KAAgB,QAApB,EAA8B;AAC5B,cAAM,IAAItjC,KAAJ,CAAU,wCAAV,CAAN;AACD;;AACD,UAAI,OAAO21hB,IAAI,CAACrpe,MAAL,CAAY8gf,KAAnB,KAA6B,UAAjC,EAA6C;AAC3C,eAAOzX,IAAI,CAACrpe,MAAL,CAAY8gf,KAAZ,CAAkB9pgB,IAAlB,EAAwBwuV,IAAxB,EAA8B55T,QAA9B,CAAP;AACD,OAFD,MAEO;AACL,YAAIC,GAAG,GAAG,IAAIw9d,IAAI,CAACrpe,MAAT,CAAgBhpB,IAAhB,CAAV;;AACA,YAAIwuV,IAAI,KAAKnyX,SAAT,IAAsB,OAAOw4D,GAAG,CAAC25T,IAAX,KAAoB,UAA9C,EAA0D;AACxD35T,UAAAA,GAAG,CAAC25T,IAAJ,CAASA,IAAT,EAAenyX,SAAf,EAA0BA,SAA1B,EAAqCu4D,QAArC;AACD;;AACD,eAAOC,GAAP;AACD;AACF,KAtBK;AAwBNk1e,IAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkB7uiB,MAAlB,EAA0B;AAClC,UAAI,CAACm3hB,IAAI,CAACrpe,MAAL,CAAYg9e,QAAZ,CAAqB9qiB,MAArB,CAAL,EAAmCA,MAAM,GAAIm3hB,IAAI,CAACn3hB,MAAL,CAAY0uiB,QAAZ,CAAqB1uiB,MAArB,CAAV;AAEnC,UAAI+iiB,QAAQ,GAAG,IAAK5L,IAAI,CAAC5pf,MAAL,CAAYuhgB,QAAjB,EAAf;AACA,UAAIvyY,GAAG,GAAG,CAAV;;AACAwmY,MAAAA,QAAQ,CAACgM,KAAT,GAAiB,UAASjqgB,IAAT,EAAe;AAC9B,YAAIy3H,GAAG,IAAIv8J,MAAM,CAACE,MAAlB,EAA0B,OAAO6iiB,QAAQ,CAAC51f,IAAT,CAAc,IAAd,CAAP;AAE1B,YAAIiqL,GAAG,GAAG76D,GAAG,GAAGz3H,IAAhB;AACA,YAAIsyL,GAAG,GAAGp3N,MAAM,CAACE,MAAjB,EAAyBk3N,GAAG,GAAGp3N,MAAM,CAACE,MAAb;AACzB6iiB,QAAAA,QAAQ,CAAC51f,IAAT,CAAcntC,MAAM,CAACoG,KAAP,CAAam2J,GAAb,EAAkB66D,GAAlB,CAAd;AACA76D,QAAAA,GAAG,GAAG66D,GAAN;AACD,OAPD;;AASA,aAAO2rU,QAAP;AACD,KAvCK;;AAyCN;AACJ;AACA;AACIplf,IAAAA,MAAM,EAAE,UAASqxf,OAAT,EAAkB;AACxB,UAAI9uiB,MAAM,GAAG,CAAb;AAAA,UACI4jE,MAAM,GAAG,CADb;AAAA,UAEI9jE,MAAM,GAAG,IAFb;AAAA,UAEmBjB,CAFnB;;AAIA,WAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGiwiB,OAAO,CAAC9uiB,MAAxB,EAAgCnB,CAAC,EAAjC,EAAqC;AACnCmB,QAAAA,MAAM,IAAI8uiB,OAAO,CAACjwiB,CAAD,CAAP,CAAWmB,MAArB;AACD;;AAEDF,MAAAA,MAAM,GAAGm3hB,IAAI,CAACn3hB,MAAL,CAAY4uiB,KAAZ,CAAkB1uiB,MAAlB,CAAT;;AAEA,WAAKnB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGiwiB,OAAO,CAAC9uiB,MAAxB,EAAgCnB,CAAC,EAAjC,EAAqC;AACnCiwiB,QAAAA,OAAO,CAACjwiB,CAAD,CAAP,CAAW23E,IAAX,CAAgB12E,MAAhB,EAAwB8jE,MAAxB;AACAA,QAAAA,MAAM,IAAIkre,OAAO,CAACjwiB,CAAD,CAAP,CAAWmB,MAArB;AACD;;AAED,aAAOF,MAAP;AACD;AA7DK,GAxGC;AAwKTipG,EAAAA,MAAM,EAAE;AACNhqG,IAAAA,UAAU,EAAE,SAASA,UAAT,CAAoBgqG,MAApB,EAA4B;AACtC,UAAIA,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK9nG,SAAlC,EAA6C,OAAO,CAAP;AAC7C,UAAI,OAAO8nG,MAAP,KAAkB,QAAtB,EAAgCA,MAAM,GAAGkub,IAAI,CAACn3hB,MAAL,CAAY0uiB,QAAZ,CAAqBzlc,MAArB,CAAT;;AAEhC,UAAI,OAAOA,MAAM,CAAChqG,UAAd,KAA6B,QAAjC,EAA2C;AACzC,eAAOgqG,MAAM,CAAChqG,UAAd;AACD,OAFD,MAEO,IAAI,OAAOgqG,MAAM,CAAC/oG,MAAd,KAAyB,QAA7B,EAAuC;AAC5C,eAAO+oG,MAAM,CAAC/oG,MAAd;AACD,OAFM,MAEA,IAAI,OAAO+oG,MAAM,CAACnkE,IAAd,KAAuB,QAA3B,EAAqC;AAC1C,eAAOmkE,MAAM,CAACnkE,IAAd;AACD,OAFM,MAEA,IAAI,OAAOmkE,MAAM,CAACrjG,IAAd,KAAuB,QAA3B,EAAqC;AAC1C,eAAO3H,gDAAA,CAAwBgrG,MAAM,CAACrjG,IAA/B,EAAqCk/B,IAA5C;AACD,OAFM,MAEA;AACL,cAAMqyf,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU,gCAAgCynG,MAA1C,CAAX,EACJ;AAAEp4B,UAAAA,MAAM,EAAEo4B;AAAV,SADI,CAAN;AAED;AACF,KAjBK;AAmBNimc,IAAAA,UAAU,EAAE,SAASA,UAAT,CAAoBjmc,MAApB,EAA4B;AACtC,aAAOA,MAAM,CAAC,CAAD,CAAN,CAAUO,WAAV,KAA0BP,MAAM,CAAC/6B,MAAP,CAAc,CAAd,CAAjC;AACD,KArBK;AAuBNihe,IAAAA,UAAU,EAAE,SAASA,UAAT,CAAoBlmc,MAApB,EAA4B;AACtC,aAAOA,MAAM,CAAC,CAAD,CAAN,CAAU7+F,WAAV,KAA0B6+F,MAAM,CAAC/6B,MAAP,CAAc,CAAd,CAAjC;AACD;AAzBK,GAxKC;AAoMTkhe,EAAAA,GAAG,EAAE;AACHxpgB,IAAAA,KAAK,EAAE,SAASqjE,MAAT,CAAgBmmc,GAAhB,EAAqB;AAC1B,UAAIC,cAAJ;AAAA,UAAoBpsiB,GAAG,GAAG,EAA1B;AACAk0hB,MAAAA,IAAI,CAAC0D,SAAL,CAAeuU,GAAG,CAACxliB,KAAJ,CAAU,OAAV,CAAf,EAAmC,UAASo/Z,IAAT,EAAe;AAChDA,QAAAA,IAAI,GAAGA,IAAI,CAACp/Z,KAAL,CAAW,YAAX,EAAyB,CAAzB,EAA4B67B,IAA5B,EAAP,CADgD,CACL;;AAC3C,YAAI6pgB,SAAS,GAAGtmI,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAZ,IAAmBA,IAAI,CAACA,IAAI,CAAC9oa,MAAL,GAAc,CAAf,CAAJ,KAA0B,GAA7D;;AACA,YAAIoviB,SAAJ,EAAe;AACbD,UAAAA,cAAc,GAAGrmI,IAAI,CAAChlZ,SAAL,CAAe,CAAf,EAAkBglZ,IAAI,CAAC9oa,MAAL,GAAc,CAAhC,CAAjB;;AACA,cAAImviB,cAAc,KAAK,WAAnB,IAAkCA,cAAc,CAACzliB,KAAf,CAAqB,IAArB,EAA2B,CAA3B,MAAkC,WAAxE,EAAqF;AACnF,kBAAMuthB,IAAI,CAAC93hB,KAAL,CACJ,IAAImC,KAAJ,CAAU,gCAAgC6tiB,cAAhC,GAAiD,0BAA3D,CADI,CAAN;AAGD;AACF,SAPD,MAOO,IAAIA,cAAJ,EAAoB;AACzB,cAAIE,iBAAiB,GAAGvmI,IAAI,CAACv6X,OAAL,CAAa,GAAb,CAAxB;AACA,cAAI6wB,KAAK,GAAG,CAAZ;AACA,cAAI83J,GAAG,GAAG4xM,IAAI,CAAC9oa,MAAL,GAAc,CAAxB;AACA,cAAIsviB,YAAY,GACdD,iBAAiB,KAAK,CAAC,CAAvB,IAA4BA,iBAAiB,KAAKjwe,KAAlD,IAA2Diwe,iBAAiB,KAAKn4U,GADnF;;AAGA,cAAIo4U,YAAJ,EAAkB;AAChB,gBAAI3+gB,IAAI,GAAGm4Y,IAAI,CAAChlZ,SAAL,CAAe,CAAf,EAAkBurhB,iBAAlB,EAAqC9pgB,IAArC,EAAX;AACA,gBAAI1nC,KAAK,GAAGira,IAAI,CAAChlZ,SAAL,CAAeurhB,iBAAiB,GAAG,CAAnC,EAAsC9pgB,IAAtC,EAAZ;AAEAxiC,YAAAA,GAAG,CAACosiB,cAAD,CAAH,GAAsBpsiB,GAAG,CAACosiB,cAAD,CAAH,IAAuB,EAA7C;AACApsiB,YAAAA,GAAG,CAACosiB,cAAD,CAAH,CAAoBx+gB,IAApB,IAA4B9yB,KAA5B;AACD;AACF;AACF,OAzBD;AA2BA,aAAOkF,GAAP;AACD;AA/BE,GApMI;AAsOT85F,EAAAA,EAAE,EAAE;AACFqlc,IAAAA,IAAI,EAAE,YAAW,CAAE,CADjB;AAEFv5d,IAAAA,QAAQ,EAAE,UAAUpyB,GAAV,EAAe;AAAE,UAAIA,GAAJ,EAAS,MAAMA,GAAN;AAAY,KAF9C;;AAIF;AACJ;AACA;AACA;AACA;AACA;AACIurf,IAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBjlc,EAAnB,EAAuB0yc,YAAvB,EAAqC;AAC9C,UAAIA,YAAY,IAAIA,YAAY,IAAI1yc,EAAE,CAAC78F,MAAvC,EAA+C;AAC7C,eAAO68F,EAAP;AACD;;AAED,aAAO,YAAW;AAChB,YAAIn8F,IAAI,GAAG21E,KAAK,CAACr3E,SAAN,CAAgBkH,KAAhB,CAAsBi0E,IAAtB,CAA2BlQ,SAA3B,EAAsC,CAAtC,CAAX;AACA,YAAItB,QAAQ,GAAGjoE,IAAI,CAACijD,GAAL,EAAf;AACA,YAAI3a,MAAM,GAAG6zD,EAAE,CAAC7yB,KAAH,CAAS,IAAT,EAAetpE,IAAf,CAAb;AACAioE,QAAAA,QAAQ,CAAC3/B,MAAD,CAAR;AACD,OALD;AAMD;AArBC,GAtOK;;AA8PT;AACF;AACA;AACEyT,EAAAA,IAAI,EAAE;AAEJ;AACJ;AACA;AACA;AACA;AACA;AACIy9F,IAAAA,OAAO,EAAE,SAASA,OAAT,GAAmB;AAC1B,UAAI,CAAC48Y,GAAL,EAAUA,GAAG,GAAG/4hB,mBAAO,CAAC,mBAAD,CAAb;;AACV,UAAI+4hB,GAAG,CAACj2hB,MAAJ,CAAWs6C,iBAAf,EAAkC;AAAE;AAClC,eAAO,IAAI/jB,IAAJ,CAAS,IAAIA,IAAJ,GAAWogB,OAAX,KAAuBs/e,GAAG,CAACj2hB,MAAJ,CAAWs6C,iBAA3C,CAAP;AACD,OAFD,MAEO;AACL,eAAO,IAAI/jB,IAAJ,EAAP;AACD;AACF,KAfG;;AAiBJ;AACJ;AACA;AACIwpB,IAAAA,OAAO,EAAE,SAASA,OAAT,CAAiBnE,IAAjB,EAAuB;AAC9B,UAAIA,IAAI,KAAKx7C,SAAb,EAAwB;AAAEw7C,QAAAA,IAAI,GAAGw6e,IAAI,CAACx6e,IAAL,CAAUy9F,OAAV,EAAP;AAA6B;;AACvD,aAAOz9F,IAAI,CAAChzC,WAAL,GAAmBkQ,OAAnB,CAA2B,WAA3B,EAAwC,GAAxC,CAAP;AACD,KAvBG;;AAyBJ;AACJ;AACA;AACI61hB,IAAAA,MAAM,EAAE,SAASA,MAAT,CAAgB/yf,IAAhB,EAAsB;AAC5B,UAAIA,IAAI,KAAKx7C,SAAb,EAAwB;AAAEw7C,QAAAA,IAAI,GAAGw6e,IAAI,CAACx6e,IAAL,CAAUy9F,OAAV,EAAP;AAA6B;;AACvD,aAAOz9F,IAAI,CAACgzf,WAAL,EAAP;AACD,KA/BG;;AAiCJ;AACJ;AACA;AACIC,IAAAA,aAAa,EAAE,SAASA,aAAT,CAAuBjzf,IAAvB,EAA6B;AAC1C,UAAIA,IAAI,KAAKx7C,SAAb,EAAwB;AAAEw7C,QAAAA,IAAI,GAAGw6e,IAAI,CAACx6e,IAAL,CAAUy9F,OAAV,EAAP;AAA6B;;AACvD,aAAOz9F,IAAI,CAACjF,OAAL,KAAiB,IAAxB;AACD,KAvCG;;AAyCJ;AACJ;AACA;AACA;AACI4W,IAAAA,IAAI,EAAE,SAAStL,MAAT,CAAgBrG,IAAhB,EAAsB;AAC1B,UAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,eAAO,IAAIrlB,IAAJ,CAASqlB,IAAI,GAAG,IAAhB,CAAP,CAD4B,CACE;AAC/B,OAFD,MAEO;AACL,eAAO,IAAIrlB,IAAJ,CAASqlB,IAAT,CAAP;AACD;AACF,KAnDG;;AAqDJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIqG,IAAAA,MAAM,EAAE,SAASA,MAAT,CAAgBrG,IAAhB,EAAsBkwH,SAAtB,EAAiC;AACvC,UAAI,CAACA,SAAL,EAAgBA,SAAS,GAAG,SAAZ;AAChB,aAAOsqX,IAAI,CAACx6e,IAAL,CAAUkwH,SAAV,EAAqBsqX,IAAI,CAACx6e,IAAL,CAAU2R,IAAV,CAAe3R,IAAf,CAArB,CAAP;AACD,KAlEG;AAoEJkzf,IAAAA,cAAc,EAAE,SAASA,cAAT,CAAwB9xiB,KAAxB,EAA+B;AAC7C,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAAE;AAC/B,eAAO,IAAIu5B,IAAJ,CAASv5B,KAAK,GAAG,IAAjB,CAAP;AACD,OAFD,MAEO,IAAIA,KAAK,CAAC01D,KAAN,CAAY,OAAZ,CAAJ,EAA0B;AAAE;AACjC,eAAO,IAAIn8B,IAAJ,CAASv5B,KAAK,GAAG,IAAjB,CAAP;AACD,OAFM,MAEA,IAAIA,KAAK,CAAC01D,KAAN,CAAY,QAAZ,CAAJ,EAA2B;AAAE;AAClC,eAAO,IAAIn8B,IAAJ,CAASv5B,KAAT,CAAP;AACD,OAFM,MAEA,IAAIA,KAAK,CAAC01D,KAAN,CAAY,SAAZ,CAAJ,EAA4B;AAAE;AACnC,eAAO,IAAIn8B,IAAJ,CAASv5B,KAAT,CAAP;AACD,OAFM,MAEA;AACL,cAAMo5hB,IAAI,CAAC93hB,KAAL,CACJ,IAAImC,KAAJ,CAAU,iCAAiCzD,KAA3C,CADI,EAEJ;AAAC8rD,UAAAA,IAAI,EAAE;AAAP,SAFI,CAAN;AAGD;AACF;AAlFG,GAjQG;AAuVTkhf,EAAAA,MAAM,EAAE;AACN+E,IAAAA,UAAU,EAAE,CACX,UADW,EACC,UADD,EACa,UADb,EACyB,UADzB,EACqC,UADrC,EAEX,UAFW,EAEC,UAFD,EAEa,UAFb,EAEyB,UAFzB,EAEqC,UAFrC,EAGX,UAHW,EAGC,UAHD,EAGa,UAHb,EAGyB,UAHzB,EAGqC,UAHrC,EAIX,UAJW,EAIC,UAJD,EAIa,UAJb,EAIyB,UAJzB,EAIqC,UAJrC,EAKX,UALW,EAKC,UALD,EAKa,UALb,EAKyB,UALzB,EAKqC,UALrC,EAMX,UANW,EAMC,UAND,EAMa,UANb,EAMyB,UANzB,EAMqC,UANrC,EAOX,UAPW,EAOC,UAPD,EAOa,UAPb,EAOyB,UAPzB,EAOqC,UAPrC,EAQX,UARW,EAQC,UARD,EAQa,UARb,EAQyB,UARzB,EAQqC,UARrC,EASX,UATW,EASC,UATD,EASa,UATb,EASyB,UATzB,EASqC,UATrC,EAUX,UAVW,EAUC,UAVD,EAUa,UAVb,EAUyB,UAVzB,EAUqC,UAVrC,EAWX,UAXW,EAWC,UAXD,EAWa,UAXb,EAWyB,UAXzB,EAWqC,UAXrC,EAYX,UAZW,EAYC,UAZD,EAYa,UAZb,EAYyB,UAZzB,EAYqC,UAZrC,EAaX,UAbW,EAaC,UAbD,EAaa,UAbb,EAayB,UAbzB,EAaqC,UAbrC,EAcX,UAdW,EAcC,UAdD,EAca,UAdb,EAcyB,UAdzB,EAcqC,UAdrC,EAeX,UAfW,EAeC,UAfD,EAea,UAfb,EAeyB,UAfzB,EAeqC,UAfrC,EAgBX,UAhBW,EAgBC,UAhBD,EAgBa,UAhBb,EAgByB,UAhBzB,EAgBqC,UAhBrC,EAiBX,UAjBW,EAiBC,UAjBD,EAiBa,UAjBb,EAiByB,UAjBzB,EAiBqC,UAjBrC,EAkBX,UAlBW,EAkBC,UAlBD,EAkBa,UAlBb,EAkByB,UAlBzB,EAkBqC,UAlBrC,EAmBX,UAnBW,EAmBC,UAnBD,EAmBa,UAnBb,EAmByB,UAnBzB,EAmBqC,UAnBrC,EAoBX,UApBW,EAoBC,UApBD,EAoBa,UApBb,EAoByB,UApBzB,EAoBqC,UApBrC,EAqBX,UArBW,EAqBC,UArBD,EAqBa,UArBb,EAqByB,UArBzB,EAqBqC,UArBrC,EAsBX,UAtBW,EAsBC,UAtBD,EAsBa,UAtBb,EAsByB,UAtBzB,EAsBqC,UAtBrC,EAuBX,UAvBW,EAuBC,UAvBD,EAuBa,UAvBb,EAuByB,UAvBzB,EAuBqC,UAvBrC,EAwBX,UAxBW,EAwBC,UAxBD,EAwBa,UAxBb,EAwByB,UAxBzB,EAwBqC,UAxBrC,EAyBX,UAzBW,EAyBC,UAzBD,EAyBa,UAzBb,EAyByB,UAzBzB,EAyBqC,UAzBrC,EA0BX,UA1BW,EA0BC,UA1BD,EA0Ba,UA1Bb,EA0ByB,UA1BzB,EA0BqC,UA1BrC,EA2BX,UA3BW,EA2BC,UA3BD,EA2Ba,UA3Bb,EA2ByB,UA3BzB,EA2BqC,UA3BrC,EA4BX,UA5BW,EA4BC,UA5BD,EA4Ba,UA5Bb,EA4ByB,UA5BzB,EA4BqC,UA5BrC,EA6BX,UA7BW,EA6BC,UA7BD,EA6Ba,UA7Bb,EA6ByB,UA7BzB,EA6BqC,UA7BrC,EA8BX,UA9BW,EA8BC,UA9BD,EA8Ba,UA9Bb,EA8ByB,UA9BzB,EA8BqC,UA9BrC,EA+BX,UA/BW,EA+BC,UA/BD,EA+Ba,UA/Bb,EA+ByB,UA/BzB,EA+BqC,UA/BrC,EAgCX,UAhCW,EAgCC,UAhCD,EAgCa,UAhCb,EAgCyB,UAhCzB,EAgCqC,UAhCrC,EAiCX,UAjCW,EAiCC,UAjCD,EAiCa,UAjCb,EAiCyB,UAjCzB,EAiCqC,UAjCrC,EAkCX,UAlCW,EAkCC,UAlCD,EAkCa,UAlCb,EAkCyB,UAlCzB,EAkCqC,UAlCrC,EAmCX,UAnCW,EAmCC,UAnCD,EAmCa,UAnCb,EAmCyB,UAnCzB,EAmCqC,UAnCrC,EAoCX,UApCW,EAoCC,UApCD,EAoCa,UApCb,EAoCyB,UApCzB,EAoCqC,UApCrC,EAqCX,UArCW,EAqCC,UArCD,EAqCa,UArCb,EAqCyB,UArCzB,EAqCqC,UArCrC,EAsCX,UAtCW,EAsCC,UAtCD,EAsCa,UAtCb,EAsCyB,UAtCzB,EAsCqC,UAtCrC,EAuCX,UAvCW,EAuCC,UAvCD,EAuCa,UAvCb,EAuCyB,UAvCzB,EAuCqC,UAvCrC,EAwCX,UAxCW,EAwCC,UAxCD,EAwCa,UAxCb,EAwCyB,UAxCzB,EAwCqC,UAxCrC,EAyCX,UAzCW,EAyCC,UAzCD,EAyCa,UAzCb,EAyCyB,UAzCzB,EAyCqC,UAzCrC,EA0CX,UA1CW,EA0CC,UA1CD,EA0Ca,UA1Cb,EA0CyB,UA1CzB,EA0CqC,UA1CrC,EA2CX,UA3CW,EA2CC,UA3CD,EA2Ca,UA3Cb,EA2CyB,UA3CzB,EA2CqC,UA3CrC,EA4CX,UA5CW,EA4CC,UA5CD,EA4Ca,UA5Cb,EA4CyB,UA5CzB,EA4CqC,UA5CrC,EA6CX,UA7CW,EA6CC,UA7CD,EA6Ca,UA7Cb,EA6CyB,UA7CzB,EA6CqC,UA7CrC,EA8CX,UA9CW,EA8CC,UA9CD,EA8Ca,UA9Cb,EA8CyB,UA9CzB,EA8CqC,UA9CrC,EA+CX,UA/CW,EA+CC,UA/CD,EA+Ca,UA/Cb,EA+CyB,UA/CzB,EA+CqC,UA/CrC,EAgDX,UAhDW,EAgDC,UAhDD,EAgDa,UAhDb,EAgDyB,UAhDzB,EAgDqC,UAhDrC,EAiDX,UAjDW,EAiDC,UAjDD,EAiDa,UAjDb,EAiDyB,UAjDzB,EAiDqC,UAjDrC,EAkDX,UAlDW,EAkDC,UAlDD,EAkDa,UAlDb,EAkDyB,UAlDzB,EAkDqC,UAlDrC,EAmDX,UAnDW,EAmDC,UAnDD,EAmDa,UAnDb,EAmDyB,UAnDzB,EAmDqC,UAnDrC,EAoDX,UApDW,CADN;AAuDNC,IAAAA,KAAK,EAAE,SAASA,KAAT,CAAe9viB,IAAf,EAAqB;AAC1B,UAAI+viB,GAAG,GAAG7Y,IAAI,CAAC4T,MAAL,CAAY+E,UAAtB;AACA,UAAI12M,GAAG,GAAG,IAAI,CAAC,CAAf;;AAEA,UAAI,OAAOn5V,IAAP,KAAgB,QAApB,EAA8B;AAC5BA,QAAAA,IAAI,GAAGk3hB,IAAI,CAACn3hB,MAAL,CAAY0uiB,QAAZ,CAAqBzuiB,IAArB,CAAP;AACD;;AAED,WAAK,IAAIlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkB,IAAI,CAACC,MAAzB,EAAiCnB,CAAC,EAAlC,EAAsC;AACpC,YAAI8qD,IAAI,GAAG5pD,IAAI,CAACgwiB,SAAL,CAAelxiB,CAAf,CAAX;AACAq6V,QAAAA,GAAG,GAAIA,GAAG,KAAK,CAAT,GAAc42M,GAAG,CAAC,CAAC52M,GAAG,GAAGvvS,IAAP,IAAe,IAAhB,CAAvB;AACD;;AACD,aAAO,CAACuvS,GAAG,GAAG,CAAC,CAAR,MAAe,CAAtB;AACD,KApEK;AAsEN50S,IAAAA,IAAI,EAAE,SAASA,IAAT,CAAc1e,GAAd,EAAmBmjE,MAAnB,EAA2BvpG,MAA3B,EAAmCq9F,EAAnC,EAAuC;AAC3C,UAAI,CAACr9F,MAAL,EAAaA,MAAM,GAAG,QAAT;;AACb,UAAIA,MAAM,KAAK,QAAf,EAAyB;AAAEA,QAAAA,MAAM,GAAGyB,SAAT;AAAqB;;AAChD,UAAI,CAAC47F,EAAL,EAASA,EAAE,GAAG,QAAL;AACT,UAAI,OAAOkM,MAAP,KAAkB,QAAtB,EAAgCA,MAAM,GAAGkub,IAAI,CAACn3hB,MAAL,CAAY0uiB,QAAZ,CAAqBzlc,MAArB,CAAT;AAChC,aAAOkub,IAAI,CAAC4T,MAAL,CAAYmF,GAAZ,CAAgBC,UAAhB,CAA2Bpzc,EAA3B,EAA+Bj3D,GAA/B,EAAoC9mC,MAApC,CAA2CiqG,MAA3C,EAAmDvpG,MAAnD,CAA0DA,MAA1D,CAAP;AACD,KA5EK;AA8ENyoC,IAAAA,GAAG,EAAE,SAASA,GAAT,CAAaloC,IAAb,EAAmBP,MAAnB,EAA2BmpE,QAA3B,EAAqC;AACxC,aAAOsud,IAAI,CAAC4T,MAAL,CAAYxsiB,IAAZ,CAAiB,KAAjB,EAAwB0B,IAAxB,EAA8BP,MAA9B,EAAsCmpE,QAAtC,CAAP;AACD,KAhFK;AAkFNrgC,IAAAA,MAAM,EAAE,SAASA,MAAT,CAAgBvoC,IAAhB,EAAsBP,MAAtB,EAA8BmpE,QAA9B,EAAwC;AAC9C,aAAOsud,IAAI,CAAC4T,MAAL,CAAYxsiB,IAAZ,CAAiB,QAAjB,EAA2B0B,IAA3B,EAAiCP,MAAjC,EAAyCmpE,QAAzC,CAAP;AACD,KApFK;AAsFNtqE,IAAAA,IAAI,EAAE,UAASuzD,SAAT,EAAoB7xD,IAApB,EAA0BP,MAA1B,EAAkCmpE,QAAlC,EAA4C;AAChD,UAAItqE,IAAI,GAAG44hB,IAAI,CAAC4T,MAAL,CAAYqF,UAAZ,CAAuBt+e,SAAvB,CAAX;;AACA,UAAI,CAACpyD,MAAL,EAAa;AAAEA,QAAAA,MAAM,GAAG,QAAT;AAAoB;;AACnC,UAAIA,MAAM,KAAK,QAAf,EAAyB;AAAEA,QAAAA,MAAM,GAAGyB,SAAT;AAAqB;;AAChD,UAAI,OAAOlB,IAAP,KAAgB,QAApB,EAA8BA,IAAI,GAAGk3hB,IAAI,CAACn3hB,MAAL,CAAY0uiB,QAAZ,CAAqBzuiB,IAArB,CAAP;AAC9B,UAAIowiB,OAAO,GAAGlZ,IAAI,CAACmZ,YAAL,CAAkBrwiB,IAAlB,CAAd;AACA,UAAI6qiB,QAAQ,GAAG3T,IAAI,CAACrpe,MAAL,CAAYg9e,QAAZ,CAAqB7qiB,IAArB,CAAf,CANgD,CAOhD;;AACA,UAAIk3hB,IAAI,CAACv0d,SAAL,MAAoB,OAAOxiE,WAAP,KAAuB,WAA3C,IAA0DH,IAA1D,IAAkEA,IAAI,CAACD,MAAL,YAAuBI,WAA7F,EAA0G0qiB,QAAQ,GAAG,IAAX;;AAE1G,UAAIjie,QAAQ,IAAI,OAAO5oE,IAAP,KAAgB,QAA5B,IACA,OAAOA,IAAI,CAACurD,EAAZ,KAAmB,UADnB,IACiC,CAACs/e,QADtC,EACgD;AAC9C7qiB,QAAAA,IAAI,CAACurD,EAAL,CAAQ,MAAR,EAAgB,UAAShE,KAAT,EAAgB;AAAEjpD,UAAAA,IAAI,CAACS,MAAL,CAAYwoD,KAAZ;AAAqB,SAAvD;AACAvnD,QAAAA,IAAI,CAACurD,EAAL,CAAQ,OAAR,EAAiB,UAAS/U,GAAT,EAAc;AAAEoyB,UAAAA,QAAQ,CAACpyB,GAAD,CAAR;AAAgB,SAAjD;AACAx2C,QAAAA,IAAI,CAACurD,EAAL,CAAQ,KAAR,EAAe,YAAW;AAAEqd,UAAAA,QAAQ,CAAC,IAAD,EAAOtqE,IAAI,CAACmB,MAAL,CAAYA,MAAZ,CAAP,CAAR;AAAsC,SAAlE;AACD,OALD,MAKO,IAAImpE,QAAQ,IAAIwne,OAAZ,IAAuB,CAACvF,QAAxB,IACA,OAAOz8f,UAAP,KAAsB,WAD1B,EACuC;AAC5C;AACA,YAAI8P,KAAK,GAAG,CAAZ;AAAA,YAAerZ,IAAI,GAAG,OAAO,GAA7B;AACA,YAAIiJ,MAAM,GAAG,IAAIM,UAAJ,EAAb;;AACAN,QAAAA,MAAM,CAACY,OAAP,GAAiB,YAAW;AAC1Bk6B,UAAAA,QAAQ,CAAC,IAAIrnE,KAAJ,CAAU,sBAAV,CAAD,CAAR;AACD,SAFD;;AAGAusC,QAAAA,MAAM,CAACytR,MAAP,GAAgB,YAAW;AACzB,cAAI7hQ,GAAG,GAAG,IAAIw9d,IAAI,CAACrpe,MAAT,CAAgB,IAAIlvD,UAAJ,CAAemvC,MAAM,CAAC7E,MAAtB,CAAhB,CAAV;AACA3qC,UAAAA,IAAI,CAACS,MAAL,CAAY26D,GAAZ;AACAxb,UAAAA,KAAK,IAAIwb,GAAG,CAACz5D,MAAb;;AACA6tC,UAAAA,MAAM,CAACwigB,gBAAP;AACD,SALD;;AAMAxigB,QAAAA,MAAM,CAACwigB,gBAAP,GAA0B,YAAW;AACnC,cAAIpyf,KAAK,IAAIl+C,IAAI,CAAC6kC,IAAlB,EAAwB;AACtB+jC,YAAAA,QAAQ,CAAC,IAAD,EAAOtqE,IAAI,CAACmB,MAAL,CAAYA,MAAZ,CAAP,CAAR;AACA;AACD;;AAED,cAAI8wiB,IAAI,GAAGryf,KAAK,GAAGrZ,IAAnB;AACA,cAAI0rgB,IAAI,GAAGvwiB,IAAI,CAAC6kC,IAAhB,EAAsB0rgB,IAAI,GAAGvwiB,IAAI,CAAC6kC,IAAZ;AACtBiJ,UAAAA,MAAM,CAAC0igB,iBAAP,CAAyBJ,OAAO,CAACh2d,IAAR,CAAap6E,IAAb,EAAmBk+C,KAAnB,EAA0Bqyf,IAA1B,CAAzB;AACD,SATD;;AAWAzigB,QAAAA,MAAM,CAACwigB,gBAAP;AACD,OA1BM,MA0BA;AACL,YAAIpZ,IAAI,CAACv0d,SAAL,MAAoB,OAAO3iE,IAAP,KAAgB,QAApC,IAAgD,CAAC6qiB,QAArD,EAA+D;AAC7D7qiB,UAAAA,IAAI,GAAG,IAAIk3hB,IAAI,CAACrpe,MAAT,CAAgB,IAAIlvD,UAAJ,CAAeqB,IAAf,CAAhB,CAAP;AACD;;AACD,YAAIkvD,GAAG,GAAG5wD,IAAI,CAACS,MAAL,CAAYiB,IAAZ,EAAkBP,MAAlB,CAAyBA,MAAzB,CAAV;AACA,YAAImpE,QAAJ,EAAcA,QAAQ,CAAC,IAAD,EAAO1Z,GAAP,CAAR;AACd,eAAOA,GAAP;AACD;AACF,KAvIK;AAyIN9P,IAAAA,KAAK,EAAE,SAASA,KAAT,CAAep/C,IAAf,EAAqB;AAC1B,UAAIkvD,GAAG,GAAG,EAAV;;AACA,WAAK,IAAIpwD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkB,IAAI,CAACC,MAAzB,EAAiCnB,CAAC,EAAlC,EAAsC;AACpCowD,QAAAA,GAAG,CAAChiB,IAAJ,CAAS,CAAC,MAAMltC,IAAI,CAACopG,UAAL,CAAgBtqG,CAAhB,EAAmB0I,QAAnB,CAA4B,EAA5B,CAAP,EAAwCymE,MAAxC,CAA+C,CAAC,CAAhD,EAAmD,CAAnD,CAAT;AACD;;AACD,aAAO/e,GAAG,CAAC/+C,IAAJ,CAAS,EAAT,CAAP;AACD,KA/IK;AAiJNggiB,IAAAA,UAAU,EAAE,SAASA,UAAT,CAAoBt+e,SAApB,EAA+B;AACzC,aAAOqle,IAAI,CAAC4T,MAAL,CAAYmF,GAAZ,CAAgBE,UAAhB,CAA2Bt+e,SAA3B,CAAP;AACD;AAnJK,GAvVC;;AA8eT;;AAEA;AACA1G,EAAAA,KAAK,EAAE,EAjfE;AAmfTo6V,EAAAA,IAAI,EAAE,SAASA,IAAT,CAAc30U,MAAd,EAAsB6/d,YAAtB,EAAoC;AACxC,SAAK,IAAI5qgB,GAAT,IAAgB+qC,MAAhB,EAAwB;AACtB,UAAIjzE,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqCxJ,MAArC,EAA6C/qC,GAA7C,CAAJ,EAAuD;AACrD,YAAI+xC,GAAG,GAAG64d,YAAY,CAACr2d,IAAb,CAAkB,IAAlB,EAAwBv0C,GAAxB,EAA6B+qC,MAAM,CAAC/qC,GAAD,CAAnC,CAAV;AACA,YAAI+xC,GAAG,KAAKs/c,IAAI,CAAC/re,KAAjB,EAAwB;AACzB;AACF;AACF,GA1fQ;AA4fTyve,EAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBzmc,KAAnB,EAA0Bs8c,YAA1B,EAAwC;AACjD,SAAK,IAAIzzZ,GAAT,IAAgB7oD,KAAhB,EAAuB;AACrB,UAAIx2F,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqC+Z,KAArC,EAA4C6oD,GAA5C,CAAJ,EAAsD;AACpD,YAAIplE,GAAG,GAAG64d,YAAY,CAACr2d,IAAb,CAAkB,IAAlB,EAAwB+Z,KAAK,CAAC6oD,GAAD,CAA7B,EAAoC/kG,QAAQ,CAAC+kG,GAAD,EAAM,EAAN,CAA5C,CAAV;AACA,YAAIplE,GAAG,KAAKs/c,IAAI,CAAC/re,KAAjB,EAAwB;AACzB;AACF;AACF,GAngBQ;AAqgBTpsD,EAAAA,MAAM,EAAE,SAASA,MAAT,CAAgB2xiB,IAAhB,EAAsBC,IAAtB,EAA4B;AAClCzZ,IAAAA,IAAI,CAAC3xI,IAAL,CAAUorJ,IAAV,EAAgB,SAAS7of,QAAT,CAAkBjiB,GAAlB,EAAuBoY,IAAvB,EAA6B;AAC3Cyyf,MAAAA,IAAI,CAAC7qgB,GAAD,CAAJ,GAAYoY,IAAZ;AACD,KAFD;AAGA,WAAOyyf,IAAP;AACD,GA1gBQ;AA4gBT38L,EAAAA,KAAK,EAAE,SAASA,KAAT,CAAe28L,IAAf,EAAqBC,IAArB,EAA2B;AAChC,WAAOzZ,IAAI,CAACn4hB,MAAL,CAAYm4hB,IAAI,CAACzgd,IAAL,CAAUi6d,IAAV,CAAZ,EAA6BC,IAA7B,CAAP;AACD,GA9gBQ;AAghBTl6d,EAAAA,IAAI,EAAE,SAASA,IAAT,CAAc7F,MAAd,EAAsB;AAC1B,QAAIA,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK1vE,SAAlC,EAA6C,OAAO0vE,MAAP;AAC7C,QAAIgge,IAAI,GAAG,EAAX,CAF0B,CAG1B;;AACA,SAAK,IAAI/qgB,GAAT,IAAgB+qC,MAAhB,EAAwB;AACtBgge,MAAAA,IAAI,CAAC/qgB,GAAD,CAAJ,GAAY+qC,MAAM,CAAC/qC,GAAD,CAAlB;AACD;;AACD,WAAO+qgB,IAAP;AACD,GAxhBQ;AA0hBThxb,EAAAA,OAAO,EAAE,SAASA,OAAT,CAAiB/oC,GAAjB,EAAsB;AAC7B,SAAK,IAAI3iB,IAAT,IAAiB2iB,GAAjB,EAAsB;AACpB,UAAIl5E,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqCvD,GAArC,EAA0C3iB,IAA1C,CAAJ,EAAqD;AACnD,eAAO,KAAP;AACD;AACF;;AACD,WAAO,IAAP;AACD,GAjiBQ;AAmiBTm8e,EAAAA,YAAY,EAAE,SAASA,YAAT,CAAsBx5d,GAAtB,EAA2B;AACvC,QAAIimB,EAAE,GAAGjmB,GAAG,CAAC1wE,KAAJ,IAAa0wE,GAAG,CAACg6d,WAAjB,IAAgCh6d,GAAG,CAACi6d,QAA7C;AACA,WAAO,OAAOh0c,EAAP,KAAc,UAAd,GAA2BA,EAA3B,GAAgC,IAAvC;AACD,GAtiBQ;AAwiBTi0c,EAAAA,MAAM,EAAE,SAASA,MAAT,CAAgBl6d,GAAhB,EAAqBpmC,IAArB,EAA2B;AACjC;AACA,QAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgCA,IAAI,GAAGymf,IAAI,CAAC8Z,QAAL,CAAcvggB,IAAd,CAAP;AAChC,WAAO9yC,MAAM,CAACsB,SAAP,CAAiBuI,QAAjB,CAA0B4yE,IAA1B,CAA+BvD,GAA/B,MAAwC,aAAapmC,IAAb,GAAoB,GAAnE;AACD,GA5iBQ;AA8iBTuggB,EAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkBvggB,IAAlB,EAAwB;AAChC,QAAI9yC,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqC3pC,IAArC,EAA2C,MAA3C,CAAJ,EAAwD,OAAOA,IAAI,CAAC7f,IAAZ;AACxD,QAAIoe,GAAG,GAAGyB,IAAI,CAACjpC,QAAL,EAAV;AACA,QAAIgsD,KAAK,GAAGxkB,GAAG,CAACwkB,KAAJ,CAAU,qBAAV,CAAZ;AACA,WAAOA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcxkB,GAA1B;AACD,GAnjBQ;AAqjBT5vC,EAAAA,KAAK,EAAE,SAASA,KAAT,CAAeo3C,GAAf,EAAoBrL,OAApB,EAA6B;AAClC,QAAI8lgB,aAAa,GAAG,IAApB;;AACA,QAAI,OAAOz6f,GAAG,CAACxQ,OAAX,KAAuB,QAAvB,IAAmCwQ,GAAG,CAACxQ,OAAJ,KAAgB,EAAvD,EAA2D;AACzD,UAAI,OAAOmF,OAAP,KAAmB,QAAnB,IAAgCA,OAAO,IAAIA,OAAO,CAACnF,OAAvD,EAAiE;AAC/DirgB,QAAAA,aAAa,GAAG/Z,IAAI,CAACzgd,IAAL,CAAUjgC,GAAV,CAAhB;AACAy6f,QAAAA,aAAa,CAACjrgB,OAAd,GAAwBwQ,GAAG,CAACxQ,OAA5B;AACD;AACF;;AACDwQ,IAAAA,GAAG,CAACxQ,OAAJ,GAAcwQ,GAAG,CAACxQ,OAAJ,IAAe,IAA7B;;AAEA,QAAI,OAAOmF,OAAP,KAAmB,QAAvB,EAAiC;AAC/BqL,MAAAA,GAAG,CAACxQ,OAAJ,GAAcmF,OAAd;AACD,KAFD,MAEO,IAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,KAAK,IAA/C,EAAqD;AAC1D+rf,MAAAA,IAAI,CAACn4hB,MAAL,CAAYy3C,GAAZ,EAAiBrL,OAAjB;AACA,UAAIA,OAAO,CAACnF,OAAZ,EACEwQ,GAAG,CAACxQ,OAAJ,GAAcmF,OAAO,CAACnF,OAAtB;AACF,UAAImF,OAAO,CAACye,IAAR,IAAgBze,OAAO,CAACva,IAA5B,EACE4lB,GAAG,CAACoT,IAAJ,GAAWze,OAAO,CAACye,IAAR,IAAgBze,OAAO,CAACva,IAAnC;AACF,UAAIua,OAAO,CAACmkC,KAAZ,EACE94B,GAAG,CAAC84B,KAAJ,GAAYnkC,OAAO,CAACmkC,KAApB;AACH;;AAED,QAAI,OAAO3xE,MAAM,CAACC,cAAd,KAAiC,UAArC,EAAiD;AAC/CD,MAAAA,MAAM,CAACC,cAAP,CAAsB44C,GAAtB,EAA2B,MAA3B,EAAmC;AAAC+iC,QAAAA,QAAQ,EAAE,IAAX;AAAiBrI,QAAAA,UAAU,EAAE;AAA7B,OAAnC;AACAvzE,MAAAA,MAAM,CAACC,cAAP,CAAsB44C,GAAtB,EAA2B,SAA3B,EAAsC;AAAC06B,QAAAA,UAAU,EAAE;AAAb,OAAtC;AACD;;AAED16B,IAAAA,GAAG,CAAC5lB,IAAJ,GAAWzB,MAAM,CAACgc,OAAO,IAAIA,OAAO,CAACva,IAAnB,IAA2B4lB,GAAG,CAAC5lB,IAA/B,IAAuC4lB,GAAG,CAACoT,IAA3C,IAAmD,OAApD,CAAjB;AACApT,IAAAA,GAAG,CAAC4hT,IAAJ,GAAW,IAAI/gU,IAAJ,EAAX;;AAEA,QAAI45gB,aAAJ,EAAmB;AACjBz6f,MAAAA,GAAG,CAACy6f,aAAJ,GAAoBA,aAApB;AACD;;AAGD,SAAK,IAAIprgB,GAAT,IAAgBsF,OAAO,IAAI,EAA3B,EAA+B;AAC7B,UAAItF,GAAG,CAAC,CAAD,CAAH,KAAW,GAAX,IAAkBA,GAAG,CAACA,GAAG,CAAC5lC,MAAJ,GAAa,CAAd,CAAH,KAAwB,GAA9C,EAAmD;AACjD4lC,QAAAA,GAAG,GAAGA,GAAG,CAAC1/B,KAAJ,CAAU,CAAV,EAAa,CAAC,CAAd,CAAN;;AACA,YAAI0/B,GAAG,KAAK,MAAR,IAAkBA,GAAG,KAAK,SAA9B,EAAyC;AACvC;AACD;;AACD2Q,QAAAA,GAAG,CAAC,MAAM3Q,GAAN,GAAY,GAAb,CAAH,GAAuB,eAAeA,GAAf,GAAqB,eAA5C;AACAloC,QAAAA,MAAM,CAACC,cAAP,CAAsB44C,GAAtB,EAA2B3Q,GAA3B,EAAgC;AAC9B/nC,UAAAA,KAAK,EAAE04C,GAAG,CAAC3Q,GAAD,CAAH,IAAasF,OAAO,IAAIA,OAAO,CAACtF,GAAD,CAA/B,IAA0CorgB,aAAa,IAAIA,aAAa,CAACprgB,GAAD,CADjD;AAE9BqrC,UAAAA,UAAU,EAAE,KAFkB;AAG9BqI,UAAAA,QAAQ,EAAE;AAHoB,SAAhC;AAKD;AACF;;AAED,WAAO/iC,GAAP;AACD,GAxmBQ;;AA0mBT;AACF;AACA;AACE2gf,EAAAA,OAAO,EAAE,SAASA,OAAT,CAAiB+Z,KAAjB,EAAwB9ye,QAAxB,EAAkC;AACzC,QAAI+ye,SAAS,GAAG,IAAhB;;AACA,QAAI/ye,QAAQ,KAAKl9D,SAAjB,EAA4B;AAC1Bk9D,MAAAA,QAAQ,GAAG8ye,KAAX;AACAA,MAAAA,KAAK,GAAGvziB,MAAR;AACAwziB,MAAAA,SAAS,GAAG,EAAZ;AACD,KAJD,MAIO;AACL,UAAItsf,IAAI,GAAG,SAASusf,kBAAT,GAA8B,CAAE,CAA3C;;AACAvsf,MAAAA,IAAI,CAAC5lD,SAAL,GAAiBiyiB,KAAK,CAACjyiB,SAAvB;AACAkyiB,MAAAA,SAAS,GAAG,IAAItsf,IAAJ,EAAZ;AACD,KAVwC,CAYzC;;;AACA,QAAIuZ,QAAQ,CAAClzB,WAAT,KAAyBvtC,MAA7B,EAAqC;AACnCygE,MAAAA,QAAQ,CAAClzB,WAAT,GAAuB,YAAW;AAChC,YAAIgmgB,KAAK,KAAKvziB,MAAd,EAAsB;AACpB,iBAAOuziB,KAAK,CAACjne,KAAN,CAAY,IAAZ,EAAkBC,SAAlB,CAAP;AACD;AACF,OAJD;AAKD;;AAED9L,IAAAA,QAAQ,CAAClzB,WAAT,CAAqBjsC,SAArB,GAAiCkyiB,SAAjC;AACAja,IAAAA,IAAI,CAACn4hB,MAAL,CAAYq/D,QAAQ,CAAClzB,WAAT,CAAqBjsC,SAAjC,EAA4Cm/D,QAA5C;AACAA,IAAAA,QAAQ,CAAClzB,WAAT,CAAqB8zf,SAArB,GAAiCkS,KAAjC;AACA,WAAO9ye,QAAQ,CAAClzB,WAAhB;AACD,GAtoBQ;;AAwoBT;AACF;AACA;AACEy5f,EAAAA,KAAK,EAAE,SAASA,KAAT,GAAiB;AACtB,QAAIuM,KAAK,GAAGhne,SAAS,CAAC,CAAD,CAArB;;AACA,SAAK,IAAIprE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGorE,SAAS,CAACjqE,MAA9B,EAAsCnB,CAAC,EAAvC,EAA2C;AACzC;AACA,WAAK,IAAIo1D,IAAT,IAAiBgW,SAAS,CAACprE,CAAD,CAAT,CAAaG,SAA9B,EAAyC;AACvC,YAAI69F,EAAE,GAAG5yB,SAAS,CAACprE,CAAD,CAAT,CAAaG,SAAb,CAAuBi1D,IAAvB,CAAT;;AACA,YAAIA,IAAI,KAAK,aAAb,EAA4B;AAC1Bg9e,UAAAA,KAAK,CAACjyiB,SAAN,CAAgBi1D,IAAhB,IAAwB4oC,EAAxB;AACD;AACF;AACF;;AACD,WAAOo0c,KAAP;AACD,GAvpBQ;;AAypBT;AACF;AACA;AACEG,EAAAA,cAAc,EAAE,SAASA,cAAT,CAAwBx6d,GAAxB,EAA6BoJ,KAA7B,EAAoC;AAClD,QAAI,OAAOtiF,MAAM,CAACC,cAAd,KAAiC,UAArC,EAAiD;AAEjDs5hB,IAAAA,IAAI,CAAC0D,SAAL,CAAe36c,KAAf,EAAsB,UAAUp6C,GAAV,EAAe;AACnCloC,MAAAA,MAAM,CAACC,cAAP,CAAsBi5E,GAAtB,EAA2BhxC,GAA3B,EAAgC;AAC9BqrC,QAAAA,UAAU,EAAE,KADkB;AACXqI,QAAAA,QAAQ,EAAE,IADC;AACK64T,QAAAA,YAAY,EAAE;AADnB,OAAhC;AAED,KAHD;AAID,GAnqBQ;;AAqqBT;AACF;AACA;AACE/6T,EAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkBR,GAAlB,EAAuBjmD,IAAvB,EAA6B9yB,KAA7B,EAAoCozE,UAApC,EAAgDoge,OAAhD,EAAyD;AACjE,QAAIjmgB,IAAI,GAAG;AACT+mW,MAAAA,YAAY,EAAE,IADL;AAETlhU,MAAAA,UAAU,EAAEA,UAAU,KAAKhwE,SAAf,GAA2BgwE,UAA3B,GAAwC;AAF3C,KAAX;;AAIA,QAAI,OAAOpzE,KAAP,KAAiB,UAAjB,IAA+B,CAACwziB,OAApC,EAA6C;AAC3CjmgB,MAAAA,IAAI,CAACihC,GAAL,GAAWxuE,KAAX;AACD,KAFD,MAGK;AACHutC,MAAAA,IAAI,CAACvtC,KAAL,GAAaA,KAAb;AAAoButC,MAAAA,IAAI,CAACkuC,QAAL,GAAgB,IAAhB;AACrB;;AAED57E,IAAAA,MAAM,CAACC,cAAP,CAAsBi5E,GAAtB,EAA2BjmD,IAA3B,EAAiCya,IAAjC;AACD,GArrBQ;;AAurBT;AACF;AACA;AACEkmgB,EAAAA,gBAAgB,EAAE,SAASA,gBAAT,CAA0B16d,GAA1B,EAA+BjmD,IAA/B,EAAqC07C,GAArC,EAA0C4E,UAA1C,EAAsD;AACtE,QAAIsge,WAAW,GAAG,IAAlB,CADsE,CAGtE;;AACAta,IAAAA,IAAI,CAAC7/c,QAAL,CAAcR,GAAd,EAAmBjmD,IAAnB,EAAyB,YAAW;AAClC,UAAI4ghB,WAAW,KAAK,IAApB,EAA0B;AACxBA,QAAAA,WAAW,GAAGlle,GAAG,EAAjB;AACD;;AACD,aAAOkle,WAAP;AACD,KALD,EAKGtge,UALH;AAMD,GApsBQ;;AAssBT;AACF;AACA;AACA;AACA;AACA;AACA;AACEo2d,EAAAA,kBAAkB,EAAE,SAASA,kBAAT,CAA4B9F,IAA5B,EAAkC;AACpD,QAAInC,GAAG,GAAGmC,IAAI,CAACh2f,OAAf;AACA,QAAI2pf,aAAa,GAAGkK,GAAG,CAAC1N,SAAxB;AACA,QAAIA,SAAS,GAAG0N,GAAG,CAAC7sf,OAAJ,CAAY44C,GAAZ,CAAgBovc,UAAhB,CAA2BrF,aAA3B,CAAhB;AACA,QAAIr7gB,MAAM,GAAG63gB,SAAS,CAAC73gB,MAAvB;;AACA,QAAIA,MAAM,CAACuoC,OAAP,IAAkB,CAACsve,SAAS,CAAC8f,cAAjC,EAAiD;AAC/C,UAAIC,aAAa,GAAG53hB,MAAM,CAACghhB,OAAP,CAAehhhB,MAAM,CAACuoC,OAAtB,CAApB;AACA,UAAIsvf,eAAe,GAAGnQ,IAAI,CAACxhiB,IAAL,CAAU8Z,MAAM,CAACuoC,OAAjB,CAAtB;;AACA,UAAIqvf,aAAa,CAACjhgB,IAAd,KAAuB,WAA3B,EAAwC;AACtCymf,QAAAA,IAAI,CAAC3xI,IAAL,CAAUosJ,eAAV,EAA2B,UAAS9rgB,GAAT,EAAc/nC,KAAd,EAAqB;AAC9Co5hB,UAAAA,IAAI,CAAC7/c,QAAL,CAAcmqd,IAAI,CAACxhiB,IAAnB,EAAyB6lC,GAAzB,EAA8B/nC,KAA9B,EAAqC,KAArC;AACD,SAFD;AAGD;AACF;AACF,GA3tBQ;;AA6tBT;AACF;AACA;AACA;AACA;AACE8ziB,EAAAA,aAAa,EAAE,SAASA,aAAT,CAAuBnriB,IAAvB,EAA6BwnC,IAA7B,EAAmC;AAChD,QAAIipf,IAAI,CAACn6d,MAAL,EAAJ,EAAmB;AACjB,UAAI8le,MAAM,GAAG3L,IAAI,CAAC5pf,MAAL,CAAYu1f,MAAzB;;AACA,UAAIgP,EAAE,GAAG7ziB,mBAAO,CAAC,eAAD,CAAhB;;AACA,UAAI,OAAO6kiB,MAAP,KAAkB,UAAlB,IAAgCp8hB,IAAI,YAAYo8hB,MAApD,EAA4D;AAC1D,YAAI,OAAOp8hB,IAAI,CAACd,IAAZ,KAAqB,QAAzB,EAAmC;AAAE;AACnC,cAAIo3e,QAAQ,GAAG,EAAf;;AACA,cAAI,OAAOt2e,IAAI,CAAC44D,KAAZ,KAAsB,QAA1B,EAAoC;AAClC09a,YAAAA,QAAQ,CAAC19a,KAAT,GAAiB54D,IAAI,CAAC44D,KAAtB;AACD;;AACD,cAAI,OAAO54D,IAAI,CAAC0wN,GAAZ,KAAoB,QAAxB,EAAkC;AAChC4lR,YAAAA,QAAQ,CAAC5lR,GAAT,GAAe1wN,IAAI,CAAC0wN,GAApB;AACD;;AACD1wN,UAAAA,IAAI,GAAGoriB,EAAE,CAACpP,gBAAH,CAAoBh8hB,IAAI,CAACd,IAAzB,EAA+Bo3e,QAA/B,CAAP;AACD,SATD,MASO;AAAE;AACP,iBAAO9uc,IAAI,CAAC,IAAI1sC,KAAJ,CAAU,iCACA,0BADV,CAAD,CAAX;AAED;AACF;AACF;;AAED21hB,IAAAA,IAAI,CAAC4T,MAAL,CAAYvigB,MAAZ,CAAmB9hC,IAAnB,EAAyB,KAAzB,EAAgC,UAAS+vC,GAAT,EAAcs7f,GAAd,EAAmB;AACjD,UAAIt7f,GAAJ,EAASvI,IAAI,CAACuI,GAAD,CAAJ,CAAT,KACKvI,IAAI,CAAC,IAAD,EAAO6jgB,GAAP,CAAJ;AACN,KAHD;AAID,GA3vBQ;;AA6vBT;AACF;AACA;AACEC,EAAAA,aAAa,EAAE,SAASA,aAAT,CAAuBz1f,UAAvB,EAAmC;AAChD,QAAIA,UAAJ,EAAgB;AACd46e,MAAAA,IAAI,CAAC7/c,QAAL,CAAc0/c,GAAG,CAACj2hB,MAAlB,EAA0B,eAA1B,EACEi2C,IAAI,CAAC65F,GAAL,CAAS,IAAIv5G,IAAJ,GAAWogB,OAAX,KAAuB6E,UAAhC,KAA+C,MADjD,EACyD,KADzD;AAEA,aAAOy6e,GAAG,CAACj2hB,MAAJ,CAAWixiB,aAAlB;AACD;AACF,GAtwBQ;AAwwBTC,EAAAA,gBAAgB,EAAE,SAASA,gBAAT,CAA0B11f,UAA1B,EAAsC;AACtD,QAAIA,UAAJ,EACEy6e,GAAG,CAACj2hB,MAAJ,CAAWs6C,iBAAX,GAA+BkB,UAAU,GAAG,IAAIjlB,IAAJ,GAAWogB,OAAX,EAA5C;AACH,GA3wBQ;;AA6wBT;AACF;AACA;AACEw6f,EAAAA,gBAAgB,EAAE,SAASA,gBAAT,CAA0BzQ,IAA1B,EAAgC;AAChD,QAAIn9f,SAAS,GAAGm9f,IAAI,CAACxE,YAAL,CAAkBl3hB,OAAlB,CAA0B,kBAA1B,KACC07hB,IAAI,CAACxE,YAAL,CAAkBl3hB,OAAlB,CAA0B,kBAA1B,CADjB;;AAGA,QAAI,CAACu+B,SAAD,IAAcm9f,IAAI,CAACxhiB,IAAnB,IAA2BwhiB,IAAI,CAACxhiB,IAAL,CAAUkyiB,gBAAzC,EAA2D;AACzD7tgB,MAAAA,SAAS,GAAGm9f,IAAI,CAACxhiB,IAAL,CAAUkyiB,gBAAV,CAA2BC,SAAvC;AACD;;AAED,QAAI9tgB,SAAJ,EAAe;AACbm9f,MAAAA,IAAI,CAACn9f,SAAL,GAAiBA,SAAjB;AACD;;AAED,QAAIm9f,IAAI,CAACpiiB,KAAT,EAAgB;AACdoiiB,MAAAA,IAAI,CAACpiiB,KAAL,CAAWilC,SAAX,GAAuBA,SAAvB;AACD;AACF,GA/xBQ;;AAiyBT;AACF;AACA;AACE+1f,EAAAA,WAAW,EAAE,SAASA,WAAT,CAAqB/vE,YAArB,EAAmCo6E,iBAAnC,EAAsD;AACjE,QAAI2N,cAAc,GAAG,KAArB;;AACA,QAAI3N,iBAAiB,KAAKvjiB,SAAtB,IAAmC61hB,GAAnC,IAA0CA,GAAG,CAACj2hB,MAAlD,EAA0D;AACxD2jiB,MAAAA,iBAAiB,GAAG1N,GAAG,CAACj2hB,MAAJ,CAAWu5hB,qBAAX,EAApB;AACD;;AACD,QAAIoK,iBAAiB,KAAKvjiB,SAAtB,IAAmC,OAAOymC,OAAP,KAAmB,WAA1D,EAAuE;AACrE88f,MAAAA,iBAAiB,GAAG98f,OAApB;AACD;;AACD,QAAI,OAAO88f,iBAAP,KAA6B,UAAjC,EAA6C2N,cAAc,GAAG,IAAjB;AAC7C,QAAI,CAAC97d,KAAK,CAACC,OAAN,CAAc8zY,YAAd,CAAL,EAAkCA,YAAY,GAAG,CAACA,YAAD,CAAf;;AAElC,SAAK,IAAIgoF,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGhoF,YAAY,CAACpqd,MAArC,EAA6CoyiB,GAAG,EAAhD,EAAoD;AAClD,UAAInngB,WAAW,GAAGm/a,YAAY,CAACgoF,GAAD,CAA9B;;AACA,UAAID,cAAJ,EAAoB;AAClB,YAAIlngB,WAAW,CAACw5f,uBAAhB,EAAyC;AACvCx5f,UAAAA,WAAW,CAACw5f,uBAAZ;AACD;AACF,OAJD,MAIO,IAAIx5f,WAAW,CAACs5f,kBAAhB,EAAoC;AACzCt5f,QAAAA,WAAW,CAACs5f,kBAAZ,CAA+BC,iBAA/B;AACD;AACF;AACF,GAzzBQ;;AA2zBT;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEkJ,EAAAA,eAAe,EAAE,SAASA,eAAT,CAAyB7nf,UAAzB,EAAqC2+e,iBAArC,EAAwD;AACvE,WAAO,SAAS3hf,OAAT,GAAmB;AACxB,UAAI4qB,IAAI,GAAG,IAAX;AACA,UAAI/sE,IAAI,GAAG21E,KAAK,CAACr3E,SAAN,CAAgBkH,KAAhB,CAAsBi0E,IAAtB,CAA2BlQ,SAA3B,CAAX;AACA,aAAO,IAAIu6d,iBAAJ,CAAsB,UAASh8f,OAAT,EAAkBb,MAAlB,EAA0B;AACrDjnC,QAAAA,IAAI,CAACusC,IAAL,CAAU,UAASsJ,GAAT,EAAcx2C,IAAd,EAAoB;AAC5B,cAAIw2C,GAAJ,EAAS;AACP5O,YAAAA,MAAM,CAAC4O,GAAD,CAAN;AACD,WAFD,MAEO;AACL/N,YAAAA,OAAO,CAACzoC,IAAD,CAAP;AACD;AACF,SAND;AAOA0tE,QAAAA,IAAI,CAAC5nB,UAAD,CAAJ,CAAiBmkB,KAAjB,CAAuByD,IAAvB,EAA6B/sE,IAA7B;AACD,OATM,CAAP;AAUD,KAbD;AAcD,GAl1BQ;;AAo1BT;AACF;AACA;AACE2xiB,EAAAA,oBAAoB,EAAE,SAASA,oBAAT,CAA8B9/f,OAA9B,EAAuC;AAC3D,QAAI,CAACA,OAAL,EAAc,OAAO,KAAP;;AACd,QAAIS,QAAQ,GAAGj1C,mBAAO,CAAC,kCAAD,CAAtB;;AACA,QAAI,OAAOw0C,OAAP,KAAmB,QAAvB,EAAiCA,OAAO,GAAGA,OAAO,CAAC4qf,iBAAlB;AACjC,QAAI,OAAO5qf,OAAP,KAAmB,QAAnB,IAA+B,CAACS,QAAQ,CAACuf,cAAT,CAAwBhgB,OAAxB,CAApC,EAAsE,OAAO,KAAP;AACtE,WAAO,CAAC,CAACS,QAAQ,CAACT,OAAD,CAAR,CAAkB+/f,kBAA3B;AACD,GA71BQ;;AA+1BT;AACF;AACA;AACEC,EAAAA,mBAAmB,EAAE,SAASA,mBAAT,CAA6Bl6e,UAA7B,EAAyCmhe,iBAAzC,EAA4Djjf,GAA5D,EAAiE;AACpF,QAAI,CAACijf,iBAAL,EAAwBA,iBAAiB,GAAG,EAApB;AACxB,QAAIgZ,aAAa,GAAGhZ,iBAAiB,CAACgZ,aAAlB,IAAmC,IAAvD;;AACA,QAAI,OAAOA,aAAP,KAAyB,UAA7B,EAAyC;AACvC,aAAOA,aAAa,CAACn6e,UAAD,EAAa9hB,GAAb,CAApB;AACD;;AACD,QAAIqqV,IAAI,GAAG,OAAO44J,iBAAiB,CAAC54J,IAAzB,KAAkC,QAAlC,GAA6C44J,iBAAiB,CAAC54J,IAA/D,GAAsE,GAAjF;AACA,QAAI/pV,KAAK,GAAGC,IAAI,CAAC0jB,MAAL,MAAiB1jB,IAAI,CAACygB,GAAL,CAAS,CAAT,EAAYc,UAAZ,IAA0BuoU,IAA3C,CAAZ;AACA,WAAO/pV,KAAP;AACD,GA32BQ;;AA62BT;AACF;AACA;AACE47f,EAAAA,wBAAwB,EAAE,SAASA,wBAAT,CAAkC/8Q,WAAlC,EAA+CxqP,OAA/C,EAAwD0a,EAAxD,EAA4D;AACpF,QAAI,CAAC1a,OAAL,EAAcA,OAAO,GAAG,EAAV;AACd,QAAIwngB,IAAI,GAAG5b,GAAG,CAAC77d,UAAJ,CAAe44Q,WAAf,EAAX;AACA,QAAI2kN,WAAW,GAAGttf,OAAO,CAACstf,WAAR,IAAuB,EAAzC;AACA,QAAInge,UAAU,GAAG,CAAjB;;AAEA,QAAIs6e,WAAW,GAAG,UAASp8f,GAAT,EAAc;AAC9B,UAAIkif,UAAU,GAAGvtf,OAAO,CAACutf,UAAR,IAAsB,CAAvC;AACA,UAAIlif,GAAG,IAAIA,GAAG,CAACoT,IAAJ,KAAa,cAAxB,EAAwCpT,GAAG,CAAComf,SAAJ,GAAgB,IAAhB,CAFV,CAI9B;;AACA,UAAIpmf,GAAG,IAAIA,GAAG,CAAComf,SAAX,IAAwBtke,UAAU,GAAGoge,UAAzC,EAAqD;AACnD,YAAI5hf,KAAK,GAAGogf,IAAI,CAACsb,mBAAL,CAAyBl6e,UAAzB,EAAqCntB,OAAO,CAACsuf,iBAA7C,EAAgEjjf,GAAhE,CAAZ;;AACA,YAAIM,KAAK,IAAI,CAAb,EAAgB;AACdwhB,UAAAA,UAAU;AACVrhB,UAAAA,UAAU,CAAC47f,WAAD,EAAc/7f,KAAK,IAAIN,GAAG,CAACY,UAAJ,IAAkB,CAAtB,CAAnB,CAAV;AACA;AACD;AACF;;AACDyO,MAAAA,EAAE,CAACrP,GAAD,CAAF;AACD,KAdD;;AAgBA,QAAIq8f,WAAW,GAAG,YAAW;AAC3B,UAAI7yiB,IAAI,GAAG,EAAX;AACA2yiB,MAAAA,IAAI,CAACG,aAAL,CAAmBn9Q,WAAnB,EAAgC8iQ,WAAhC,EAA6C,UAASuE,YAAT,EAAuB;AAClEA,QAAAA,YAAY,CAACzxe,EAAb,CAAgB,MAAhB,EAAwB,UAAShE,KAAT,EAAgB;AAAEvnD,UAAAA,IAAI,IAAIunD,KAAK,CAAC//C,QAAN,EAAR;AAA2B,SAArE;AACAw1hB,QAAAA,YAAY,CAACzxe,EAAb,CAAgB,KAAhB,EAAuB,YAAW;AAChC,cAAIxxC,UAAU,GAAGijhB,YAAY,CAACjjhB,UAA9B;;AACA,cAAIA,UAAU,GAAG,GAAjB,EAAsB;AACpB8rC,YAAAA,EAAE,CAAC,IAAD,EAAO7lD,IAAP,CAAF;AACD,WAFD,MAEO;AACL,gBAAIo3C,UAAU,GAAGa,QAAQ,CAAC+kf,YAAY,CAACl3hB,OAAb,CAAqB,aAArB,CAAD,EAAsC,EAAtC,CAAR,GAAoD,IAApD,IAA4D,CAA7E;AACA,gBAAI0wC,GAAG,GAAG0gf,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,EAAX,EACR;AACEwY,cAAAA,UAAU,EAAEA,UADd;AAEE6ihB,cAAAA,SAAS,EAAE7ihB,UAAU,IAAI,GAAd,IAAqBA,UAAU,KAAK;AAFjD,aADQ,CAAV;AAMA,gBAAIq9B,UAAU,IAAIZ,GAAG,CAAComf,SAAtB,EAAiCpmf,GAAG,CAACY,UAAJ,GAAiBA,UAAjB;AACjCw7f,YAAAA,WAAW,CAACp8f,GAAD,CAAX;AACD;AACF,SAfD;AAgBD,OAlBD,EAkBGo8f,WAlBH;AAmBD,KArBD;;AAuBA7b,IAAAA,GAAG,CAACG,IAAJ,CAASqV,KAAT,CAAesG,WAAf;AACD,GA95BQ;;AAg6BT;AACF;AACA;AACEE,EAAAA,IAAI,EAAE;AACJx9f,IAAAA,EAAE,EAAE,SAASy9f,MAAT,GAAkB;AACpB,aAAOh1iB,2CAAA,EAAP;AACD;AAHG,GAn6BG;;AAy6BT;AACF;AACA;AACEi1iB,EAAAA,sBAAsB,EAAE,SAASA,sBAAT,CAAgCzR,IAAhC,EAAsC;AAC5D,QAAInC,GAAG,GAAGmC,IAAI,CAACh2f,OAAf;AACA,QAAImmf,SAAS,GAAG0N,GAAG,CAAC1N,SAApB;AACA,QAAIvqJ,KAAK,GAAGi4J,GAAG,CAAC7sf,OAAJ,CAAY44C,GAAZ,CAAgBovc,UAAhB,CAA2B7I,SAA3B,EAAsC73gB,MAAtC,IAAgD,EAA5D;;AACA,QAAIstX,KAAK,CAAC/kV,OAAN,IAAiBm/e,IAAI,CAACxhiB,IAAL,CAAUonY,KAAK,CAAC/kV,OAAhB,CAArB,EAA+C;AAC7Cm/e,MAAAA,IAAI,CAACxhiB,IAAL,CAAUonY,KAAK,CAAC/kV,OAAhB,IAA2Bm/e,IAAI,CAACxhiB,IAAL,CAAUonY,KAAK,CAAC/kV,OAAhB,EAAyB76C,QAAzB,EAA3B;AACD;AACF,GAn7BQ;;AAq7BT;AACF;AACA;AACE+kiB,EAAAA,KAAK,EAAE,SAASA,KAAT,CAAe3je,QAAf,EAAyB;AAC9B,QAAI,OAAOlW,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAO,CAACkwe,QAAf,KAA4B,UAA/D,EAA2E;AACzElwe,MAAAA,OAAO,CAACkwe,QAAR,CAAiBh6d,QAAjB;AACD,KAFD,MAEO,IAAI,OAAOsqe,YAAP,KAAwB,UAA5B,EAAwC;AAC7CA,MAAAA,YAAY,CAACtqe,QAAD,CAAZ;AACD,KAFM,MAEA;AACL3xB,MAAAA,UAAU,CAAC2xB,QAAD,EAAW,CAAX,CAAV;AACD;AACF,GAh8BQ;;AAk8BT;AACF;AACA;AACEuqe,EAAAA,sBAAsB,EAAE,SAASA,sBAAT,CAAgC9T,GAAhC,EAAqC;AAC3D,QAAI7E,UAAU,GAAG6E,GAAG,CAAC7sf,OAAJ,CAAY44C,GAAZ,CAAgBovc,UAAjC;AACA,QAAI,CAACA,UAAL,EAAiB,OAAOt5hB,SAAP;AACjB,QAAIywhB,SAAS,GAAG,CAAC6I,UAAU,IAAI,EAAf,EAAmB6E,GAAG,CAAC1N,SAAvB,CAAhB;AACA,QAAI,CAACA,SAAD,IAAc,CAACA,SAAS,CAAC9xhB,KAAzB,IAAkC,CAAC8xhB,SAAS,CAAC9xhB,KAAV,CAAgBwiD,OAAvD,EAAgE,OAAOnhD,SAAP;AAChE,WAAOywhB,SAAS,CAAC9xhB,KAAV,CAAgBi7hB,OAAhB,CAAwBnJ,SAAS,CAAC9xhB,KAAV,CAAgBwiD,OAAxC,CAAP;AACD,GA38BQ;AA68BT+wf,EAAAA,2BAA2B,EAAE,SAASA,2BAAT,CAAqC5V,SAArC,EAAgDG,QAAhD,EAA0D;AACrF,QAAI0V,QAAQ,GAAG,EAAf;AACA,QAAIC,kBAAkB,GAAG,EAAzB;;AACA,QAAI5gf,OAAO,CAAC3a,GAAR,CAAYm/e,IAAI,CAACqc,cAAjB,CAAJ,EAAsC;AACpC,UAAID,kBAAkB,GAAG9V,SAAS,CAACC,QAAV,CAAmB;AAC1CC,QAAAA,QAAQ,EAAE,IADgC;AAE1CC,QAAAA,QAAQ,EAAEjre,OAAO,CAAC3a,GAAR,CAAYm/e,IAAI,CAAC0G,mBAAjB;AAFgC,OAAnB,CAAzB;AAID;;AACD,QAAI4V,iBAAiB,GAAE,EAAvB;;AACA,QAAI;AACF,UAAIA,iBAAiB,GAAGhW,SAAS,CAACC,QAAV,CAAmB;AACzCE,QAAAA,QAAQ,EAAEA,QAAQ,IACfjre,OAAO,CAAC3a,GAAR,CAAYm/e,IAAI,CAACqc,cAAjB,KAAoC7gf,OAAO,CAAC3a,GAAR,CAAYm/e,IAAI,CAACuc,wBAAjB;AAFE,OAAnB,CAAxB;AAID,KALD,CAKE,OAAOr0iB,KAAP,EAAc;AACd;AACA,UAAI,CAACszD,OAAO,CAAC3a,GAAR,CAAYm/e,IAAI,CAACqc,cAAjB,CAAL,EAAuC,MAAMn0iB,KAAN;AACxC;;AACD,SAAK,IAAIN,CAAC,GAAG,CAAR,EAAW40iB,YAAY,GAAG/1iB,MAAM,CAACoM,IAAP,CAAYupiB,kBAAZ,CAA/B,EAAgEx0iB,CAAC,GAAG40iB,YAAY,CAACzziB,MAAjF,EAAyFnB,CAAC,EAA1F,EAA8F;AAC5Fu0iB,MAAAA,QAAQ,CAACK,YAAY,CAAC50iB,CAAD,CAAb,CAAR,GAA4B60iB,YAAY,CAACN,QAAQ,CAACK,YAAY,CAAC50iB,CAAD,CAAb,CAAR,IAA6B,EAA9B,EAAkCw0iB,kBAAkB,CAACI,YAAY,CAAC50iB,CAAD,CAAb,CAApD,CAAxC;AACD;;AACD,SAAK,IAAIA,CAAC,GAAG,CAAR,EAAW40iB,YAAY,GAAG/1iB,MAAM,CAACoM,IAAP,CAAYypiB,iBAAZ,CAA/B,EAA+D10iB,CAAC,GAAG40iB,YAAY,CAACzziB,MAAhF,EAAwFnB,CAAC,EAAzF,EAA6F;AAC3Fu0iB,MAAAA,QAAQ,CAACK,YAAY,CAAC50iB,CAAD,CAAb,CAAR,GAA4B60iB,YAAY,CAACN,QAAQ,CAACK,YAAY,CAAC50iB,CAAD,CAAb,CAAR,IAA6B,EAA9B,EAAkC00iB,iBAAiB,CAACE,YAAY,CAAC50iB,CAAD,CAAb,CAAnD,CAAxC;AACD;;AACD,WAAOu0iB,QAAP;AAEA;AACJ;AACA;;AACI,aAASM,YAAT,CAAsB1/e,MAAtB,EAA8B5L,MAA9B,EAAsC;AACpC,WAAK,IAAIvpD,CAAC,GAAG,CAAR,EAAWiL,IAAI,GAAGpM,MAAM,CAACoM,IAAP,CAAYs+C,MAAZ,CAAvB,EAA4CvpD,CAAC,GAAGiL,IAAI,CAAC9J,MAArD,EAA6DnB,CAAC,EAA9D,EAAkE;AAChEm1D,QAAAA,MAAM,CAAClqD,IAAI,CAACjL,CAAD,CAAL,CAAN,GAAkBupD,MAAM,CAACt+C,IAAI,CAACjL,CAAD,CAAL,CAAxB;AACD;;AACD,aAAOm1D,MAAP;AACD;AACF,GAj/BQ;;AAm/BT;AACF;AACA;AACE4ze,EAAAA,GAAG,EAAE;AACHl0e,IAAAA,QAAQ,EAAE,SAASigf,WAAT,CAAqB5kgB,GAArB,EAA0B;AAClC,aAAOA,GAAG,IAAIA,GAAG,CAACR,OAAJ,CAAY,MAAZ,MAAwB,CAA/B,IAAoCQ,GAAG,CAACrlC,KAAJ,CAAU,GAAV,EAAe1J,MAAf,IAAyB,CAApE;AACD,KAHE;AAIH0lC,IAAAA,KAAK,EAAE,SAASkugB,QAAT,CAAkBvhgB,GAAlB,EAAuB;AAC5B,UAAI24E,OAAO,GAAG34E,GAAG,CAAC3oC,KAAJ,CAAU,GAAV,CAAd;AACA,aAAO;AACL4oC,QAAAA,SAAS,EAAE04E,OAAO,CAAC,CAAD,CADb;AAELz4E,QAAAA,OAAO,EAAEy4E,OAAO,CAAC,CAAD,CAFX;AAGL9iF,QAAAA,MAAM,EAAE8iF,OAAO,CAAC,CAAD,CAHV;AAILm/a,QAAAA,SAAS,EAAEn/a,OAAO,CAAC,CAAD,CAJb;AAKL49a,QAAAA,QAAQ,EAAE59a,OAAO,CAAC9kH,KAAR,CAAc,CAAd,EAAiBgK,IAAjB,CAAsB,GAAtB;AALL,OAAP;AAOD,KAbE;AAcHuxhB,IAAAA,KAAK,EAAE,SAASoS,QAAT,CAAkBC,SAAlB,EAA6B;AAClC,UACEA,SAAS,CAACvhgB,OAAV,KAAsBtxC,SAAtB,IACA6yiB,SAAS,CAAC5rgB,MAAV,KAAqBjnC,SADrB,IAEA6yiB,SAAS,CAAC3J,SAAV,KAAwBlpiB,SAFxB,IAGA6yiB,SAAS,CAAClL,QAAV,KAAuB3niB,SAJzB,EAKE,MAAMg2hB,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU,6BAAV,CAAX,CAAN;AACF,aAAO,UAASwyiB,SAAS,CAACxhgB,SAAV,IAAuB,KAAhC,IAAyC,GAAzC,GAA+CwhgB,SAAS,CAACvhgB,OAAzD,GACL,GADK,GACCuhgB,SAAS,CAAC5rgB,MADX,GACoB,GADpB,GAC0B4rgB,SAAS,CAAC3J,SADpC,GACgD,GADhD,GACsD2J,SAAS,CAAClL,QADvE;AAED;AAvBE,GAt/BI;;AAghCT;AACF;AACA;AACE9K,EAAAA,cAAc,EAAE,SAnhCP;;AAqhCT;AACF;AACA;AACEwV,EAAAA,cAAc,EAAE,qBAxhCP;;AA0hCT;AACF;AACA;AACEE,EAAAA,wBAAwB,EAAE,6BA7hCjB;;AA+hCT;AACF;AACA;AACE7V,EAAAA,mBAAmB,EAAE,iBAliCZ;;AAoiCT;AACF;AACA;AACEoW,EAAAA,eAAe,EAAE;AAviCR,CAAX;AA0iCA;AACA;AACA;;AACAzud,MAAM,CAAC1nF,OAAP,GAAiBq5hB,IAAjB;;;;;;;;;;AC9jCA,IAAIA,IAAI,GAAGl5hB,mBAAO,CAAC,oBAAD,CAAlB;;AACA,IAAIi6Y,KAAK,GAAGj6Y,mBAAO,CAAC,2BAAD,CAAnB;;AAEA,SAASi2iB,YAAT,GAAwB,CAAG;;AAE3BA,YAAY,CAACh1iB,SAAb,CAAuB0mC,KAAvB,GAA+B,UAASuugB,GAAT,EAAcz6J,KAAd,EAAqB;AAClD,MAAIy6J,GAAG,CAACt6hB,OAAJ,CAAY,MAAZ,EAAoB,EAApB,MAA4B,EAAhC,EAAoC,OAAO,EAAP;AAEpC,MAAIqvB,MAAJ,EAAY7pC,KAAZ;;AACA,MAAI;AACF,QAAI6mD,MAAM,CAACorF,SAAX,EAAsB;AACpB,UAAI;AACF,YAAItsG,MAAM,GAAG,IAAIssG,SAAJ,EAAb;AACApoG,QAAAA,MAAM,GAAGlE,MAAM,CAACwsG,eAAP,CAAuB2ia,GAAvB,EAA4B,UAA5B,CAAT;AACD,OAHD,CAGE,OAAOC,WAAP,EAAoB;AACpB,cAAMjd,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU,yBAAV,CAAX,EACJ;AACE0viB,UAAAA,aAAa,EAAEkD,WADjB;AAEEvqf,UAAAA,IAAI,EAAE,gBAFR;AAGEgze,UAAAA,SAAS,EAAE;AAHb,SADI,CAAN;AAMD;;AAED,UAAI3zf,MAAM,CAACmkG,eAAP,KAA2B,IAA/B,EAAqC;AACnC,cAAM8pZ,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU,8BAAV,CAAX,EACJ;AACEqoD,UAAAA,IAAI,EAAE,gBADR;AAEEgze,UAAAA,SAAS,EAAE;AAFb,SADI,CAAN;AAKD;;AAED,UAAIwX,OAAO,GAAGnrgB,MAAM,CAACyjG,oBAAP,CAA4B,aAA5B,EAA2C,CAA3C,CAAd;;AACA,UAAI0na,OAAO,KAAKA,OAAO,CAAC9na,UAAR,KAAuBrjG,MAAvB,IACZmrgB,OAAO,CAAC9na,UAAR,CAAmBqH,QAAnB,KAAgC,MADpB,IAEZyga,OAAO,CAAC9na,UAAR,CAAmBA,UAAnB,KAAkCrjG,MAFtB,IAGZmrgB,OAAO,CAAC9na,UAAR,CAAmBA,UAAnB,CAA8BqH,QAA9B,KAA2C,MAHpC,CAAX,EAGwD;AACtD,YAAI0ga,YAAY,GAAGD,OAAO,CAAC1na,oBAAR,CAA6B,KAA7B,EAAoC,CAApC,KAA0C0na,OAA7D;AACA,cAAMld,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU8yiB,YAAY,CAAChrJ,WAAb,IAA4B,0BAAtC,CAAX,EACJ;AACEz/V,UAAAA,IAAI,EAAE,gBADR;AAEEgze,UAAAA,SAAS,EAAE;AAFb,SADI,CAAN;AAKD;AACF,KAjCD,MAiCO,IAAI32e,MAAM,CAACquf,aAAX,EAA0B;AAC/BrrgB,MAAAA,MAAM,GAAG,IAAIgd,MAAM,CAACquf,aAAX,CAAyB,kBAAzB,CAAT;AACArrgB,MAAAA,MAAM,CAACq5C,KAAP,GAAe,KAAf;;AAEA,UAAI,CAACr5C,MAAM,CAACsrgB,OAAP,CAAeL,GAAf,CAAL,EAA0B;AACxB,cAAMhd,IAAI,CAAC93hB,KAAL,CAAW,IAAImC,KAAJ,CAAU,yBAAV,CAAX,EACJ;AACEqoD,UAAAA,IAAI,EAAE,gBADR;AAEEgze,UAAAA,SAAS,EAAE;AAFb,SADI,CAAN;AAKD;AACF,KAXM,MAWA;AACL,YAAM,IAAIr7hB,KAAJ,CAAU,wBAAV,CAAN;AACD;AACF,GAhDD,CAgDE,OAAOjC,CAAP,EAAU;AACVF,IAAAA,KAAK,GAAGE,CAAR;AACD;;AAED,MAAI2pC,MAAM,IAAIA,MAAM,CAACmkG,eAAjB,IAAoC,CAAChuI,KAAzC,EAAgD;AAC9C,QAAIY,IAAI,GAAGw0iB,QAAQ,CAACvrgB,MAAM,CAACmkG,eAAR,EAAyBqsQ,KAAzB,CAAnB;AACA,QAAIxmW,QAAQ,GAAGwhgB,mBAAmB,CAACxrgB,MAAM,CAACmkG,eAAR,EAAyB,kBAAzB,CAAlC;;AACA,QAAIn6F,QAAJ,EAAc;AACZjzC,MAAAA,IAAI,CAACkyiB,gBAAL,GAAwBsC,QAAQ,CAACvhgB,QAAD,EAAW,EAAX,CAAhC;AACD;;AACD,WAAOjzC,IAAP;AACD,GAPD,MAOO,IAAIZ,KAAJ,EAAW;AAChB,UAAM83hB,IAAI,CAAC93hB,KAAL,CAAWA,KAAK,IAAI,IAAImC,KAAJ,EAApB,EAAiC;AAACqoD,MAAAA,IAAI,EAAE,gBAAP;AAAyBgze,MAAAA,SAAS,EAAE;AAApC,KAAjC,CAAN;AACD,GAFM,MAEA;AAAE;AACP,WAAO,EAAP;AACD;AACF,CApED;;AAsEA,SAAS6X,mBAAT,CAA6BP,GAA7B,EAAkCv/J,GAAlC,EAAuC;AACrC,MAAIj2K,QAAQ,GAAGw1U,GAAG,CAACxna,oBAAJ,CAAyBioQ,GAAzB,CAAf;;AACA,OAAK,IAAI71Y,CAAC,GAAG,CAAR,EAAW41iB,IAAI,GAAGh2U,QAAQ,CAACz+N,MAAhC,EAAwCnB,CAAC,GAAG41iB,IAA5C,EAAkD51iB,CAAC,EAAnD,EAAuD;AACrD,QAAI4/N,QAAQ,CAAC5/N,CAAD,CAAR,CAAYwtI,UAAZ,KAA2B4na,GAA/B,EAAoC;AAClC,aAAOx1U,QAAQ,CAAC5/N,CAAD,CAAf;AACD;AACF;AACF;;AAED,SAAS01iB,QAAT,CAAkBN,GAAlB,EAAuBz6J,KAAvB,EAA8B;AAC5B,MAAI,CAACA,KAAL,EAAYA,KAAK,GAAG,EAAR;;AACZ,UAAQA,KAAK,CAAChpW,IAAd;AACE,SAAK,WAAL;AAAkB,aAAOkkgB,cAAc,CAACT,GAAD,EAAMz6J,KAAN,CAArB;;AAClB,SAAK,KAAL;AAAY,aAAOm7J,QAAQ,CAACV,GAAD,EAAMz6J,KAAN,CAAf;;AACZ,SAAK,MAAL;AAAa,aAAOo7J,SAAS,CAACX,GAAD,EAAMz6J,KAAN,CAAhB;;AACb,SAAKv4Y,SAAL;AAAgB,SAAK,IAAL;AAAW,aAAO4ziB,YAAY,CAACZ,GAAD,CAAnB;;AAC3B;AAAS,aAAOa,WAAW,CAACb,GAAD,EAAMz6J,KAAN,CAAlB;AALX;AAOD;;AAED,SAASk7J,cAAT,CAAwBT,GAAxB,EAA6Bz6J,KAA7B,EAAoC;AAClC,MAAIz5Y,IAAI,GAAG,EAAX;AACA,MAAIk0iB,GAAG,KAAK,IAAZ,EAAkB,OAAOl0iB,IAAP;AAElBk3hB,EAAAA,IAAI,CAAC3xI,IAAL,CAAU9L,KAAK,CAACqhJ,OAAhB,EAAyB,UAASka,UAAT,EAAqBna,WAArB,EAAkC;AACzD,QAAIA,WAAW,CAACoa,cAAhB,EAAgC;AAC9B,UAAIt3iB,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqC85d,GAAG,CAAC9jiB,UAAzC,EAAqDyqhB,WAAW,CAACjqgB,IAAjE,CAAJ,EAA4E;AAC1E,YAAI9yB,KAAK,GAAGo2iB,GAAG,CAAC9jiB,UAAJ,CAAeyqhB,WAAW,CAACjqgB,IAA3B,EAAiC9yB,KAA7C;AACAkC,QAAAA,IAAI,CAACg1iB,UAAD,CAAJ,GAAmBR,QAAQ,CAAC;AAACnrJ,UAAAA,WAAW,EAAEvrZ;AAAd,SAAD,EAAuB+8hB,WAAvB,CAA3B;AACD;AACF,KALD,MAKO;AACL,UAAIqa,QAAQ,GAAGra,WAAW,CAACsa,SAAZ,GAAwBjB,GAAxB,GACbO,mBAAmB,CAACP,GAAD,EAAMrZ,WAAW,CAACjqgB,IAAlB,CADrB;;AAEA,UAAIskhB,QAAJ,EAAc;AACZl1iB,QAAAA,IAAI,CAACg1iB,UAAD,CAAJ,GAAmBR,QAAQ,CAACU,QAAD,EAAWra,WAAX,CAA3B;AACD,OAFD,MAEO,IACL,CAACA,WAAW,CAACsa,SAAb,IACAta,WAAW,CAACpqf,IAAZ,KAAqB,MADrB,IAEA,CAACgpW,KAAK,CAACruT,GAAN,CAAUgqd,iBAHN,EAGyB;AAC9Bp1iB,QAAAA,IAAI,CAACg1iB,UAAD,CAAJ,GAAmBna,WAAW,CAACrid,YAA/B;AACD;AACF;AACF,GAlBD;AAoBA,SAAOx4E,IAAP;AACD;;AAED,SAAS40iB,QAAT,CAAkBV,GAAlB,EAAuBz6J,KAAvB,EAA8B;AAC5B,MAAIz5Y,IAAI,GAAG,EAAX;AACA,MAAIq1iB,MAAM,GAAG57J,KAAK,CAAC5zW,GAAN,CAAUjV,IAAV,IAAkB,KAA/B;AACA,MAAIslU,QAAQ,GAAGujD,KAAK,CAAC37Y,KAAN,CAAY8yB,IAAZ,IAAoB,OAAnC;AACA,MAAI4zK,OAAO,GAAGi1M,KAAK,CAAC07J,SAAN,GAAkB17J,KAAK,CAAC7oX,IAAxB,GAA+B,OAA7C;AAEA,MAAIylE,KAAK,GAAG69c,GAAG,CAACoB,iBAAhB;;AACA,SAAOj/c,KAAP,EAAc;AACZ,QAAIA,KAAK,CAACs9C,QAAN,KAAmB6wD,OAAvB,EAAgC;AAC9B,UAAI3+J,GAAG,GAAG4ugB,mBAAmB,CAACp+c,KAAD,EAAQg/c,MAAR,CAAnB,CAAmChsJ,WAA7C;AACA,UAAIvrZ,KAAK,GAAG22iB,mBAAmB,CAACp+c,KAAD,EAAQ6/P,QAAR,CAA/B;AACAl2V,MAAAA,IAAI,CAAC6lC,GAAD,CAAJ,GAAY2ugB,QAAQ,CAAC12iB,KAAD,EAAQ27Y,KAAK,CAAC37Y,KAAd,CAApB;AACD;;AACDu4F,IAAAA,KAAK,GAAGA,KAAK,CAACk/c,kBAAd;AACD;;AACD,SAAOv1iB,IAAP;AACD;;AAED,SAAS60iB,SAAT,CAAmBX,GAAnB,EAAwBz6J,KAAxB,EAA+B;AAC7B,MAAIz5Y,IAAI,GAAG,EAAX;AACA,MAAIwkM,OAAO,GAAGi1M,KAAK,CAAC07J,SAAN,GAAkB17J,KAAK,CAAC7oX,IAAxB,GAAgC6oX,KAAK,CAAC0lJ,MAAN,CAAavugB,IAAb,IAAqB,QAAnE;AAEA,MAAIylE,KAAK,GAAG69c,GAAG,CAACoB,iBAAhB;;AACA,SAAOj/c,KAAP,EAAc;AACZ,QAAIA,KAAK,CAACs9C,QAAN,KAAmB6wD,OAAvB,EAAgC;AAC9BxkM,MAAAA,IAAI,CAACktC,IAAL,CAAUsngB,QAAQ,CAACn+c,KAAD,EAAQojT,KAAK,CAAC0lJ,MAAd,CAAlB;AACD;;AACD9oc,IAAAA,KAAK,GAAGA,KAAK,CAACk/c,kBAAd;AACD;;AACD,SAAOv1iB,IAAP;AACD;;AAED,SAAS+0iB,WAAT,CAAqBb,GAArB,EAA0Bz6J,KAA1B,EAAiC;AAC/B,MAAIy6J,GAAG,CAAC5oa,YAAR,EAAsB;AACpB,QAAI7xE,QAAQ,GAAGy6e,GAAG,CAAC5oa,YAAJ,CAAiB,UAAjB,CAAf;;AACA,QAAI7xE,QAAQ,KAAK,QAAjB,EAA2B;AACzBggV,MAAAA,KAAK,GAAG,IAAIxB,KAAK,CAACnyU,MAAV,CAAiB;AAACr1B,QAAAA,IAAI,EAAEgpB;AAAP,OAAjB,CAAR;AACD;AACF;;AAED,MAAIwD,IAAI,GAAGi3e,GAAG,CAAC7qJ,WAAf;AACA,MAAIpsV,IAAI,KAAK,EAAb,EAAiBA,IAAI,GAAG,IAAP;;AACjB,MAAI,OAAOw8U,KAAK,CAAC+7J,MAAb,KAAwB,UAA5B,EAAwC;AACtC,WAAO/7J,KAAK,CAAC+7J,MAAN,CAAav4e,IAAb,CAAP;AACD,GAFD,MAEO;AACL,WAAOA,IAAP;AACD;AACF;;AAED,SAAS63e,YAAT,CAAsBZ,GAAtB,EAA2B;AACzB,MAAIA,GAAG,KAAKhziB,SAAR,IAAqBgziB,GAAG,KAAK,IAAjC,EAAuC,OAAO,EAAP,CADd,CAGzB;;AACA,MAAI,CAACA,GAAG,CAACoB,iBAAT,EAA4B;AAC1B,QAAIpB,GAAG,CAAC5na,UAAJ,CAAeA,UAAf,KAA8B,IAAlC,EAAwC,OAAO,EAAP;AACxC,QAAI4na,GAAG,CAAC5oZ,UAAJ,CAAerrJ,MAAf,KAA0B,CAA9B,EAAiC,OAAO,EAAP,CAAjC,KACK,OAAOi0iB,GAAG,CAAC7qJ,WAAX;AACN,GARwB,CAUzB;;;AACA,MAAI5P,KAAK,GAAG;AAAChpW,IAAAA,IAAI,EAAE,WAAP;AAAoBqqf,IAAAA,OAAO,EAAE;AAA7B,GAAZ;AACA,MAAIzkc,KAAK,GAAG69c,GAAG,CAACoB,iBAAhB;;AACA,SAAOj/c,KAAP,EAAc;AACZ,QAAIs+S,GAAG,GAAGt+S,KAAK,CAACs9C,QAAhB;;AACA,QAAIh2I,MAAM,CAACsB,SAAP,CAAiBuzD,cAAjB,CAAgC4nB,IAAhC,CAAqCq/T,KAAK,CAACqhJ,OAA3C,EAAoDnmJ,GAApD,CAAJ,EAA8D;AAC5D;AACA8E,MAAAA,KAAK,CAACqhJ,OAAN,CAAcnmJ,GAAd,EAAmBlkW,IAAnB,GAA0B,MAA1B;AACD,KAHD,MAGO;AACLgpW,MAAAA,KAAK,CAACqhJ,OAAN,CAAcnmJ,GAAd,IAAqB;AAAC/jX,QAAAA,IAAI,EAAE+jX;AAAP,OAArB;AACD;;AACDt+S,IAAAA,KAAK,GAAGA,KAAK,CAACk/c,kBAAd;AACD;;AACD,SAAOZ,cAAc,CAACT,GAAD,EAAMz6J,KAAN,CAArB;AACD;AAED;AACA;AACA;;;AACAl0T,MAAM,CAAC1nF,OAAP,GAAiBo2iB,YAAjB;;;;;;;;;;ACxMA,WAAW,mBAAO,CAAC,oBAAS;AAC5B,cAAc,sDAA6B;AAC3C,cAAc,sDAA6B;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA,qCAAqC,wBAAwB,sBAAsB,sBAAsB,wBAAwB;AACjI;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,oCAAoC;AACpC,oCAAoC;AACpC,uCAAuC;AACvC,uCAAuC;AACvC,2CAA2C;AAC3C,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClBA,sBAAsB,sEAA6C;;AAEnE;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,2BAA2B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,sBAAsB;AACzG;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5CA,oBAAoB,kEAAyC;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,sBAAW;AAChC,cAAc,mBAAO,CAAC,oBAAS;AAC/B,cAAc,mBAAO,CAAC,oBAAS;;AAE/B,cAAc;AACd,kBAAkB;AAClB,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,qBAAqB,oDAAoD;AACzE;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,yBAAyB,QAAQ;AACjC;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA,IAAI;AACJ;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC5vDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC7SA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,SAAS,WAAW;;AAEpB;AACA;AACA,SAAS,UAAU;;AAEnB;AACA;;;;;;;;;;;;ACnFA;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;AAC7C;AACA,kBAAkB,KAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,MAAM;AACN,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB,0CAA0C,qBAAqB;;AAE/D;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;;AAEvD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,iBAAiB;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAmB;AACrB;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,EAUN;;AAEF,CAAC;;;;;;;;;;;ACjhBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,qBAAU;;AAEjC,aAAa;AACb,eAAe;AACf,qBAAqB;AACrB,cAAc;;AAEd,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAK;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,0CAA0C,KAAK;AAC/C,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,mBAAO,CAAC,uBAAa;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;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;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClsBa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAe;;AAEf;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA,uBAAuB;;AAEvB;AACA;;AAEA;AACA,kBAAe;;;;;;;;;;;ACzBF;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,sCAAqC;AACrC;AACA;AACA;AACA;AACA,CAAC,EAAC;AACF,sCAAqC;AACrC;AACA;AACA;AACA;AACA,CAAC,EAAC;AACF,sCAAqC;AACrC;AACA;AACA;AACA;AACA,CAAC,EAAC;AACF,sCAAqC;AACrC;AACA;AACA;AACA;AACA,CAAC,EAAC;;AAEF,gCAAgC,mBAAO,CAAC,oBAAS;;AAEjD,iCAAiC,mBAAO,CAAC,oBAAS;;AAElD,iCAAiC,mBAAO,CAAC,oBAAS;;AAElD,iCAAiC,mBAAO,CAAC,oBAAS;;AAElD,uCAAuC,uCAAuC;;;;;;;;;;;ACtCjE;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,cAAc,mBAAmB;AACjC;AACA;;AAEA;;AAEA,cAAc,aAAa;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AA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e;;;;;;;;;;;ACfF;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,mBAAO,CAAC,uBAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB;;;;;;;;;;;ACvER;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gBAAgB;;;;;;;;;;;AC1GJ;;AAEZ,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA,mCAAmC,SAAS;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AiC,EAAE;;;;;;;;;;;ACAz4yB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,sBAAW;AAChC,cAAc,mBAAO,CAAC,oBAAS;AAC/B;AACA;AACA;AACA;;AAEA,cAAc;AACd,kBAAkB;AAClB,yBAAyB;;AAEzB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,yBAAyB,QAAQ;AACjC;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACxxDY;;AAEb,mBAAmB,mBAAO,CAAC,0BAAe;;AAE1C,eAAe,mBAAO,CAAC,cAAI;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,WAAW,mBAAO,CAAC,0BAAe;AAClC,mBAAmB,mBAAO,CAAC,0BAAe;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS,UAAU;AACvC,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,kBAAkB;AAC9D,EAAE;AACF,CAAC,oBAAoB;AACrB;;;;;;;;;;;AC9CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACpBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,sBAAsB,mBAAO,CAAC,yCAA8B;;AAE5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,qCAA0B;AACnD,iBAAiB,mBAAO,CAAC,oCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,sBAAsB,mBAAO,CAAC,yCAA8B;;AAE5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA,gBAAgB,mBAAO,CAAC,mCAAwB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,sBAAsB,mBAAO,CAAC,yCAA8B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,cAAc,mBAAO,CAAC,iCAAsB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,mCAAwB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC3CA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,0BAA0B;AACrC,aAAa,QAAQ;AACrB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;;;;;;;;;;AChDA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,0BAA0B;AACrC,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;;;;;;;;;;AC9CA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;AClDA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;AClDA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxCA,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzCA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC/BA,iBAAiB,mBAAO,CAAC,oCAAyB;AAClD,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AChCA,kBAAkB,mBAAO,CAAC,sCAA2B;;AAErD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnDA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5BA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,+BAA+B,mBAAO,CAAC,mDAAyC;AAChF,iBAAiB,mBAAO,CAAC,oCAAyB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtCA,+BAA+B,mBAAO,CAAC,mDAAwC;;AAE/E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,mCAAmC,mBAAO,CAAC,yDAA8C;AACzF,iBAAiB,mBAAO,CAAC,oCAAyB;AAClD,kBAAkB,mBAAO,CAAC,sCAA2B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,+BAA+B,mBAAO,CAAC,mDAAwC;;AAE/E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,iCAAiC,mBAAO,CAAC,sDAA2C;AACpF,iBAAiB,mBAAO,CAAC,oCAAyB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,yBAAyB,mBAAO,CAAC,6CAAkC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,+BAA+B,mBAAO,CAAC,mDAAwC;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,uBAAuB,mBAAO,CAAC,2CAAgC;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,gCAAgC,mBAAO,CAAC,qDAA0C;AAClF,iBAAiB,mBAAO,CAAC,oCAAyB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,kBAAkB,mBAAO,CAAC,qCAA0B;AACpD,YAAY,mBAAO,CAAC,8BAAmB;AACvC,0BAA0B,mBAAO,CAAC,6CAAmC;AACrE,yBAAyB,mBAAO,CAAC,6CAAkC;AACnE,eAAe,mBAAO,CAAC,iCAAuB;;AAE9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1MA,kBAAkB,mBAAO,CAAC,qCAA0B;AACpD,YAAY,mBAAO,CAAC,8BAAmB;AACvC,0BAA0B,mBAAO,CAAC,6CAAmC;AACrE,eAAe,mBAAO,CAAC,iCAAuB;;AAE9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,yBAAyB;AACpC,WAAW,wBAAwB;AACnC,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC/KA,sBAAsB,mBAAO,CAAC,0CAA+B;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpFA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACrDA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,oCAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;;AAEA;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,qCAA0B;AACnD,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,eAAe,mBAAO,CAAC,mCAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,mBAAmB,mBAAO,CAAC,wCAA6B;AACxD,iBAAiB,mBAAO,CAAC,qCAA0B;AACnD,iBAAiB,mBAAO,CAAC,qCAA0B;AACnD,YAAY,mBAAO,CAAC,8BAAmB;AACvC,cAAc,mBAAO,CAAC,iCAAsB;AAC5C,eAAe,mBAAO,CAAC,iCAAuB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvUA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,kBAAkB,mBAAO,CAAC,sCAA2B;AACrD,+BAA+B,mBAAO,CAAC,mDAAyC;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC/BA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,qBAAqB,mBAAO,CAAC,0CAA+B;AAC5D,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA,qBAAqB,mBAAO,CAAC,0CAA+B;AAC5D,eAAe,mBAAO,CAAC,kCAAuB;;AAE9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;AC5CA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC7DA,YAAY,mBAAO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,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,eAAe,mBAAO,CAAC,mCAAwB;AAC/C,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5BA,kBAAkB,mBAAO,CAAC,sCAA2B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;;AAEA;;;;;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC9BA,oBAAoB,mBAAO,CAAC,wCAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC7BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,qBAAqB,mBAAO,CAAC,yCAA8B;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5BA,oBAAoB,mBAAO,CAAC,wCAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC7BA,kBAAkB,mBAAO,CAAC,sCAA2B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACxCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,oCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,oBAAoB,mBAAO,CAAC,yCAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,oBAAoB,mBAAO,CAAC,yCAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,uCAA4B;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,kBAAkB,mBAAO,CAAC,sCAA2B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,oBAAoB,mBAAO,CAAC,wCAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,mBAAmB,mBAAO,CAAC,uCAA4B;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,aAAa,mBAAO,CAAC,gCAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACzCA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,oBAAoB,mBAAO,CAAC,yCAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;;AAEA;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,qCAA0B;AACnD,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,KAAK;;AAEL;;AAEA;AACA;AACA,0BAA0B,QAAQ;AAClC,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,KAAK;;AAEL;AACA;AACA,sBAAsB,QAAQ;AAC9B,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,KAAK;;AAEL;AACA;AACA,sBAAsB,QAAQ;AAC9B,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,KAAK;;AAEL;AACA;AACA,sBAAsB,QAAQ;AAC9B,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,KAAK;;AAEL;AACA;AACA,qBAAqB,QAAQ;AAC7B,KAAK;;AAEL;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN,6DAA6D,OAAO;AACpE;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClGA,kCAAkC,mBAAO,CAAC,gEAAqD;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvFA,iCAAiC,mBAAO,CAAC,sDAA2C;AACpF,wBAAwB,mBAAO,CAAC,2CAAgC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,sCAAsC,mBAAO,CAAC,4DAAkD;AAChG,aAAa,mBAAO,CAAC,gCAAqB;;AAE1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,EAAE;AAC3B;AACA,YAAY,EAAE;AACd,YAAY,EAAE;AACd,YAAY,EAAE;AACd;;AAEA,2BAA2B,EAAE;AAC7B;AACA,YAAY,EAAE;AACd,YAAY,EAAE;AACd,YAAY,EAAE;AACd;;AAEA;AACA,0BAA0B,EAAE;AAC5B,4BAA4B,EAAE;AAC9B,6BAA6B,EAAE,OAAO,EAAE;AACxC,6BAA6B,EAAE;AAC/B,8BAA8B,EAAE,OAAO,EAAE;;AAEzC;AACA,yBAAyB,EAAE;AAC3B,2BAA2B,EAAE,OAAO,EAAE;AACtC,6BAA6B,EAAE,OAAO,EAAE,OAAO,EAAE;;AAEjD;AACA;AACA;AACA,uCAAuC,EAAE;AACzC,yCAAyC,EAAE,OAAO,EAAE;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3UA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,cAAc,mBAAO,CAAC,iCAAsB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACvCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,cAAc,mBAAO,CAAC,iCAAsB;AAC5C,gBAAgB,mBAAO,CAAC,oCAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,qBAAqB,mBAAO,CAAC,0CAA+B;AAC5D,+BAA+B,mBAAO,CAAC,mDAAyC;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA,YAAY,mBAAO,CAAC,8BAAmB;AACvC,eAAe,mBAAO,CAAC,kCAAuB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,sCAA2B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;;AAEA;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,qCAA0B;AACnD,qBAAqB,mBAAO,CAAC,0CAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,qCAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,YAAY,mBAAO,CAAC,8BAAmB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,cAAc,mBAAO,CAAC,iCAAsB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,eAAe,mBAAO,CAAC,kCAAuB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,kBAAkB,mBAAO,CAAC,sCAA2B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,sBAAsB,mBAAO,CAAC,yCAA8B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,iBAAiB,mBAAO,CAAC,oCAAyB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,mCAAwB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,kBAAkB,mBAAO,CAAC,qCAA0B;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,iBAAiB,mBAAO,CAAC,oCAAyB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,eAAe,mBAAO,CAAC,kCAAuB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,eAAe,mBAAO,CAAC,kCAAuB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;;AAEA,UAAU,0DAAmC;AAC7C,WAAW;AACX,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM,qBAAqB;AAC3B;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;;;;ACvLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,eAAe;AACf,cAAc;AACd,eAAe;AACf,uDAAgC;;AAEhC;AACA;AACA;;AAEA,aAAa;AACb,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;;AAEA,EAAE,aAAa;AACf,EAAE,aAAa;;AAEf;AACA;;AAEA,kBAAkB,SAAS;AAC3B,6BAA6B;AAC7B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACzMA;AACA,aAAa,aAAa,mBAAmB,QAAQ,OAAO,mBAAmB,4BAA4B,wBAAwB,uBAAuB,gCAAgC,0BAA0B,2CAA2C,YAAY,EAAE,mBAAmB,+BAA+B,oEAAoE,YAAY,IAAI,yBAAyB,gBAAgB,iBAAiB,GAAG,EAAE,IAAI,0BAA0B,4HAA4H,sDAAsD,0BAA0B,uCAAuC,iBAAiB,EAAE,OAAO,mBAAmB,0BAA0B,gIAAgI,wDAAwD,gCAAgC,yEAAyE,EAAE,sBAAsB,KAAK,uBAAuB,uBAAuB,YAAY,8BAA8B,wBAAwB,uBAAuB,EAAE,yCAAyC,qHAAqH,MAAM,MAAM,cAAc,uBAAuB,gGAAgG,GAAG,iBAAiB,gBAAgB,gFAAgF,mBAAmB,mBAAmB,+BAA+B,sBAAsB,KAAK,IAAI,GAAG,qBAAqB,oBAAoB,YAAY,IAAI,iBAAiB,SAAS,yBAAyB,sEAAsE,uBAAuB,6CAA6C,kBAAkB,qFAAqF,KAAK,qBAAqB,oBAAoB,mBAAmB,2DAA2D,yBAAyB,oBAAoB,2DAA2D,0BAA0B,mCAAmC,iCAAiC,2BAA2B,qCAAqC,iCAAiC,2CAA2C,gCAAgC,0CAA0C,gCAAgC,0CAA0C,mCAAmC,6CAA6C,0BAA0B,oCAAoC,8BAA8B,0CAA0C,cAAc,2BAA2B,0CAA0C,gBAAgB,2BAA2B,uCAAuC,gBAAgB,sCAAsC,OAAO,0BAA0B,mCAAmC,mDAAmD,yBAAyB,6BAA6B,qBAAqB,kBAAkB,EAAE,IAAI,EAAE,uBAAuB,sBAAsB,cAAc,uBAAuB,cAAc,eAAe,qBAAqB,cAAc,4BAA4B,sBAAsB,EAAE,oBAAoB,2CAA2C,6BAA6B,2CAA2C,kDAAkD,YAAY,wBAAwB,EAAE,KAAK,MAAM,GAAG,MAAM,sBAAsB,4BAA4B,qCAAqC,mBAAmB,GAAG,mBAAmB,oBAAoB,EAAE,OAAO,YAAY,aAAa,yEAAyE,WAAW,6BAA6B,2DAA2D,kDAAkD,SAAS,wEAAwE,IAAI,mBAAmB,4BAA4B,uCAAuC,qBAAqB,wDAAwD,EAAE,mBAAmB,gBAAgB,EAAE,cAAc,OAAO,mBAAmB,6BAA6B,OAAO,gCAAgC,gBAAgB,0CAA0C,SAAS,wBAAwB,6CAA6C,4BAA4B,iGAAiG,YAAY,GAAG,EAAE,cAAc,8DAA8D,qEAAqE,yCAAyC,2BAA2B,oBAAoB,EAAE,sCAAsC,SAAS,GAAG,OAAO,aAAa,cAAc,OAAO,mBAAmB,+CAA+C,uEAAuE,+BAA+B,+BAA+B,EAAE,IAAI,SAAS,uEAAuE,IAAI,4BAA4B,+BAA+B,qBAAqB,EAAE,sBAAsB,+BAA+B,yDAAyD,EAAE,sBAAsB,mCAAmC,2BAA2B,+BAA+B,wEAAwE,EAAE,kBAAkB,8DAA8D,IAAI,KAAiD,kBAAkB,CAAc,oEAAoE,gBAAgB,iCAAiC,cAAc,6eAA6e,6BAA6B,yCAAyC,mDAAmD,cAAc,mBAAmB,cAAc,EAAE,cAAc,2EAA2E,gBAAgB,qBAAqB,yEAAyE,SAAS,EAAE,gBAAgB,aAAa,wBAAwB,6BAA6B,oBAAoB,qBAAqB,mBAAmB,oBAAoB,EAAE,KAAK,gBAAgB,wFAAwF,SAAS,IAAI,aAAa,gBAAgB,0cAA0c,gBAAgB,aAAa,yMAAyM,0DAA0D,IAAI,OAAO,aAAa,gBAAgB,cAAc,+CAA+C,uBAAuB,wGAAwG,aAAa,YAAY,EAAE,yBAAyB,mCAAmC,EAAE,GAAG,GAAG,aAAa,SAAS,WAAW,WAAW,GAAG,EAAE,aAAa,oCAAoC,GAAG,WAAW,EAAE,cAAc,0EAA0E,oBAAoB,qCAAqC,yCAAyC,KAAK,EAAE,aAAa,2GAA2G,aAAa,wIAAwI,0BAA0B,4BAA4B,IAAI,uBAAuB,mCAAmC,+CAA+C,sCAAsC,yCAAyC,kDAAkD,sBAAsB,EAAE,WAAW,+CAA+C,0CAA0C,SAAS,EAAE,mBAAmB,6FAA6F,uGAAuG,uCAAuC,+DAA+D,EAAE,kBAAkB,mBAAmB,wDAAwD,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,mBAAmB,0BAA0B,kBAAkB,EAAE,QAAQ,mBAAmB,qCAAqC,yCAAyC,mBAAmB,kBAAkB,YAAY,MAAM,KAAK,EAAE,gBAAgB,kBAAkB,sDAAsD,yDAAyD,uCAAuC,4JAA4J,SAAS,2BAA2B,oIAAoI,EAAE,cAAc,uCAAuC,MAAM,+GAA+G,EAAE,cAAc,sCAAsC,SAAS,EAAE,kBAAkB,oBAAoB,oBAAoB,iBAAiB,4BAA4B,0EAA0E,WAAW,EAAE,eAAe,+BAA+B,gLAAgL,IAAI,sEAAsE,EAAE,WAAW,EAAE,sDAAsD,UAAU,qCAAqC,4BAA4B,IAAI,4GAA4G,kDAAkD,UAAU,uFAAuF,6BAA6B,cAAc,MAAM,yEAAyE,gCAAgC,qBAAqB,iDAAiD,sBAAsB,UAAU,yBAAyB,wCAAwC,4DAA4D,IAAI,MAAM,qBAAqB,sBAAsB,aAAa,sBAAsB,iCAAiC,kCAAkC,2OAA2O,EAAE,uBAAuB;;;;;;;;;;;;ACD/xY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;AAEA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,YAAY;AAC1E;AACA,8DAA8D,YAAY;AAC1E;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;AChfa;;AAEb;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,KAAK;AACL;;;;;;;;;;;;AC1Da;;AAEb,kBAAkB,mBAAO,CAAC,wBAAa;AACvC,kBAAkB,mBAAO,CAAC,kCAAuB;AACjD,mBAAmB,mBAAO,CAAC,kCAAuB;;AAElD;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA,iCAAiC;AACjC,6BAA6B;AAC7B,oBAAoB,SAAS;AAC7B;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,gBAAgB;AAChB;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,iCAAiC;AACjC;;AAEA,cAAc;AACd,qBAAqB;AACrB,kBAAkB;;;;;;;;;;;;ACvEL;;AAEb,aAAa,mBAAO,CAAC,mBAAQ;;AAE7B;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB,4BAA4B;;AAE5B,mDAAmD;AACnD,wDAAwD;AACxD,+EAA+E;AAC/E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;;AAEtC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ,uBAAuB,qBAAqB;AAC5C;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,uBAAuB,gBAAgB;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iDAAiD;;AAEjD;AACA;;AAEA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,4CAA4C;AAC5C,6BAA6B,OAAO;AACpC,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACtaa;AACb;AACA,2BAA2B,mBAAO,CAAC,4BAAiB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,MAAM,wCAAwC,GAAG;AACjD,MAAM,uCAAuC,GAAG;AAChD,MAAM,uCAAuC,GAAG;AAChD,MAAM,0CAA0C,GAAG;AACnD,MAAM,0CAA0C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,4CAA4C,IAAI;AAChD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA,GAAG,yCAAyC;AAC5C;AACA,GAAG;AACH,qBAAqB,IAAI;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,IAAI;AACnD,GAAG;AACH,0CAA0C,IAAI;AAC9C,GAAG,yBAAyB;AAC5B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gCAAgC;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;AClQA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA,2BAA2B,MAAM,GAAG,QAAQ;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA,UAAU;AACV,2CAA2C,yCAAyC;AACpF;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,sFAAsF;AACtF,oCAAoC,QAAQ,EAAE,eAAe,EAAE,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,EAAE,OAAO;AAC5D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV,qCAAqC,SAAS,EAAE,YAAY,IAAI,QAAQ;AACxE,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAgD;AAC/E,cAAc;AACd,+BAA+B,gDAAgD,IAAI,QAAQ;AAC3F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA;AACA;AACA,mEAAmE;AACnE,mEAAmE;AACnE,mEAAmE;AACnE;AACA;;AAEA;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAmE;AAC9E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iDAAiD;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB,iCAAiC;;AAEjC;AACA,oBAAoB,wBAAwB;AAC5C;AACA,yEAAyE,IAAI;AAC7E;AACA;AACA;;AAEA;;;;;;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;;AAEA,oBAAoB;AACpB,sBAAsB;;;;;;;;;;;AC/CT;AACb;;AAEA,aAAa,mBAAO,CAAC,oBAAS;AAC9B,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,oBAAoB,mBAAO,CAAC,4BAAiB;AAC7C,iBAAiB,mBAAO,CAAC,mBAAQ;;AAEjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB,cAAc;AACxD,eAAe,uBAAuB,cAAc;AACpD,eAAe,uBAAuB,cAAc;AACpD,iBAAiB,yBAAyB,eAAe;AACzD;AACA,uBAAuB,wBAAwB;AAC/C;AACA,iBAAiB,qBAAqB,cAAc;AACpD,kBAAkB,kBAAkB,cAAc;AAClD,kBAAkB,kBAAkB,cAAc;AAClD,mBAAmB,mBAAmB,cAAc;AACpD,oBAAoB,oBAAoB,eAAe;AACvD,oBAAoB,oBAAoB,cAAc;AACtD,iBAAiB,qBAAqB,cAAc;AACpD,kBAAkB,sBAAsB,cAAc;AACtD,gBAAgB,oBAAoB,cAAc;AAClD,iBAAiB,sBAAsB,cAAc;AACrD,sBAAsB,qBAAqB,cAAc;AACzD,gBAAgB,oBAAoB,cAAc;AAClD,gBAAgB,qBAAqB,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,eAAe,mBAAmB,KAAK;AACvC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA,QAAQ;;AAER;AACA;;AAEA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA,4DAA4D,wCAAwC;AACpG;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,0DAA0D,uCAAuC;AACjG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,QAAQ;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qDAAqD;AACrD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA,mDAAmD;AACnD,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA,SAAS,oBAAoB;AAC7B;AACA,iCAAiC;AACjC,kEAAkE,SAAS;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;;;;;;;;;;;AC3kBA,QAAQ,cAAc,EAAE,mBAAO,CAAC,4BAAkB;AAClD,yBAAyB,mBAAO,CAAC,8BAAoB;AACrD,QAAQ,UAAU,EAAE,mBAAO,CAAC,wBAAa;AACzC,kBAAkB,mBAAO,CAAC,yBAAc;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,8BAA8B,eAAe,GAAG,gBAAgB,GAAG,eAAe;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,SAAS,iDAAiD;AAC1D,qEAAqE,2BAA2B;AAChG,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzDa;;AAEb;AACA;AACA,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,eAAe;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;;;;;;;;;;;;AChHH;;AAEb;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,yBAAyB,gDAAgD;AACzE,KAAK;AACL,yBAAyB,4BAA4B;AACrD;AACA;AACA;;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,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8CAAK;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;AACnB;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;ACvHN;;AAEb;AACA,oBAAoB,mBAAO,CAAC,oBAAS;;AAErC;AACA,yCAAyC;AACzC,qCAAqC;AACrC,8CAA8C;AAC9C,0CAA0C;;AAE1C;AACA;;;;;;;;;;;;ACZa;;AAEb;AACA;AACA,2FAA2F;AAC3F,4CAA4C;;AAE5C;AACA;AACA;AACA,gCAAgC;;AAEhC,kEAAkE;AAClE,qEAAqE;;AAErE;AACA,iCAAiC;AACjC;AACA,uCAAuC;;AAEvC,2DAA2D;AAC3D,+DAA+D;;AAE/D;AACA;AACA,oBAAoB,gBAAgB;AACpC,2EAA2E;;AAE3E,yGAAyG;;AAEzG;AACA,6CAA6C;;AAE7C,8DAA8D;;AAE9D;AACA;AACA,uEAAuE;AACvE;;AAEA;AACA;;;;;;;;;;;;ACzCa;;AAEb,iBAAiB,mBAAO,CAAC,8BAAmB;;AAE5C;AACA;AACA;;;;;;;;;;;;ACNa;;AAEb,WAAW,mBAAO,CAAC,0BAAe;;AAElC;;;;;;;;;;;;;;;;;;;;ACJqG;AACjF;;AAEpB;AACA;AACA,cAAc,YAAY;AAC1B;AACwC;AACxC;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C,iCAAiC,uDAAY;A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d,8DAA8D,GAAG,EAAE,GAAG,EAAE,yDAAyD,EAAE;;;;;;;;;;;ACvBnI;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAA4D;AAChE,IAAI,CAC0G;AAC9G,CAAC,sBAAsB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+DAA+D,iBAAiB;AAChH;AACA,wCAAwC,MAAM,+BAA+B,YAAY;AACzF,uCAAuC,MAAM,mCAAmC,YAAY;AAC5F,oCAAoC;AACpC;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,6BAA6B,0BAA0B,cAAc,qBAAqB;AAC5G,qBAAqB,oDAAoD,qEAAqE,cAAc;AAC5J,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,uCAAuC,SAAS;AAChD,uCAAuC,WAAW,UAAU;AAC5D,8CAA8C,cAAc;AAC5D;AACA,kHAAkH,OAAO;AACzH,qFAAqF,iBAAiB;AACtG,6DAA6D,gBAAgB,QAAQ;AACrF,mDAAmD,gBAAgB,gBAAgB;AACnF;AACA,sCAAsC;AACtC;AACA;AACA,cAAc,YAAY,aAAa,SAAS,UAAU;AAC1D,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA,iFAAiF,OAAO;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,0BAA0B;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB;AAChB,kBAAkB;AAClB,kBAAkB;AAClB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,iBAAiB;AACjB,oBAAoB;AACpB;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB,4BAA4B;AAC7C;AACA,iBAAiB,2CAA2C,WAAW;AACvE,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB,4CAA4C;AAC7D,iBAAiB,2BAA2B;AAC5C,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,mBAAmB,oCAAoC;AACvD,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0DAA0D,yDAAyD;AACnH;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,sDAAsD;AACtD;AACA;AACA;AACA,mDAAmD;AACnD,mDAAmD;AACnD,0CAA0C;AAC1C,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,+BAA+B;AAC/B,+BAA+B;AAC/B,yBAAyB;AACzB,6BAA6B;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,0BAA0B;AAC1B,6BAA6B;AAC7B,sBAAsB;AACtB,sBAAsB;AACtB,wBAAwB;AACxB,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,kDAAkD;AACrJ,+FAA+F,+CAA+C;AAC9I,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8CAA8C;AAC9C,2CAA2C;AAC3C,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,2BAA2B,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA,iCAAiC,qCAAqC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mFAAmF;AAC3H;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mEAAmE;AAC9G,wCAAwC,qCAAqC;AAC7E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2CAA2C;AACpF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qBAAqB;AACjE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,0CAA0C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,kDAAkD;AACvH;AACA;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,gCAAgC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C,uBAAuB,oBAAoB;AACzI;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C,uBAAuB,oBAAoB;AACzI,4CAA4C,WAAW,WAAW,oCAAoC,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,sCAAsC,YAAY;AAC5N;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,gCAAgC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0CAA0C,+BAA+B;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mDAAmD,oEAAoE;AACvH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,qBAAqB;AAC3F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,oCAAoC;AAC9G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,sBAAsB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA,oEAAoE,4BAA4B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC;AACjC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,0CAA0C;AAC1C,SAAS;AACT;AACA;AACA;AACA;AACA,sEAAsE,cAAc;AACpF;AACA,SAAS;AACT;AACA;AACA,uEAAuE,cAAc;AACrF;AACA,SAAS;AACT;AACA;AACA,qEAAqE,cAAc;AACnF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+EAA+E,cAAc;AAC7F;AACA,SAAS;AACT;AACA;AACA,qEAAqE,cAAc;AACnF;AACA,SAAS;AACT;AACA;AACA,uEAAuE,cAAc;AACrF;AACA,SAAS;AACT;AACA;AACA,kEAAkE,cAAc;AAChF;AACA,SAAS;AACT;AACA;AACA;AACA,kFAAkF,cAAc;AAChG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yBAAyB;AAClF;AACA,iFAAiF,yBAAyB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iFAAiF,yBAAyB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iEAAiE,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,yDAAyD;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uCAAuC;AACvC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,wCAAwC;AACxC,2CAA2C;AAC3C,0CAA0C;AAC1C,yCAAyC;AACzC,0CAA0C;AAC1C,4CAA4C;AAC5C,2CAA2C;AAC3C,2CAA2C;AAC3C,4CAA4C;AAC5C,2CAA2C;AAC3C,4CAA4C;AAC5C,8CAA8C;AAC9C,4CAA4C;AAC5C,0CAA0C;AAC1C;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0HAA0H,+DAA+D;AACzL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,kDAAkD;AAC9G,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,OAAO;AACpG;AACA;AACA;AACA,wEAAwE,gEAAgE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wDAAwD;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK,8CAA8C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+BAA+B,+BAA+B,GAAG;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA,iEAAiE,mFAAmF;AACpJ;AACA,iCAAiC;AACjC;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,kCAAkC;AAC9G,8EAA8E,mBAAmB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA,yCAAyC;AACzC;AACA,wCAAwC;AACxC,yCAAyC;AACzC,+CAA+C;AAC/C,uCAAuC;AACvC,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,wBAAwB;AAC7B;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,yBAAyB;AACzB,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2CAA2C;AAC3C,8CAA8C;;AAE9C;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,+BAA+B;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC;AAC/F;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;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,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mCAAmC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,6CAA6C,0DAA0D;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0FAA0F;AAC5H,kCAAkC,gGAAgG;AAClI,kCAAkC,mGAAmG;AACrI,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mDAAmD;AAC7G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,uCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uFAAuF;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;ACppPD;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASgrjB,MAAT,CAAgBl4hB,IAAhB,EAAsBoX,OAAtB,EAA+B;AAAE+ghB,EAAAA,OAAF;AAAWC,EAAAA,OAAX;AAAoBC,EAAAA,QAApB;AAA8BC,EAAAA;AAA9B,IAA6C,EAA5E,EAAgF;AAC5E,QAAM19gB,OAAO,GAAG29gB,SAAS,CAACx8b,IAAV,CAAe/7F,IAAf,EAAqBoX,OAAr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,KAAZ;;AAgBAkjjB,EAAAA,aAAa,CAAC/qjB,GAAd,CAAkBq1D,IAAlB,EAAwBxtD,MAAxB;AACA,SAAOA,MAAP;AACH;;AACDmijB,qDAAY,CAAEuB,QAAD,KAAe,EACxB,GAAGA,QADqB;AAExB99e,EAAAA,GAAG,EAAE,CAACrY,MAAD,EAASC,IAAT,EAAe67d,QAAf,KAA4B85B,SAAS,CAAC51f,MAAD,EAASC,IAAT,CAAT,IAA2Bk2f,QAAQ,CAAC99e,GAAT,CAAarY,MAAb,EAAqBC,IAArB,EAA2B67d,QAA3B,CAFpC;AAGxBxta,EAAAA,GAAG,EAAE,CAACtuD,MAAD,EAASC,IAAT,KAAkB,CAAC,CAAC21f,SAAS,CAAC51f,MAAD,EAASC,IAAT,CAAX,IAA6Bk2f,QAAQ,CAAC7nc,GAAT,CAAatuD,MAAb,EAAqBC,IAArB;AAH5B,CAAf,CAAD,CAAZ;;;;;;;;;;;;;;;;;;;;ACjFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqG;;;;;;;;;;;ACxLrG;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,SAAS,WAAW;;AAEpB;AACA;AACA,SAAS,UAAU;;AAEnB;AACA;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Ba;;AAEb,qBAAqB,mBAAO,CAAC,kCAAuB;AACpD,gBAAgB,mBAAO,CAAC,+BAAqB;;AAE7C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,2DAA2D;;AAE3D;;;;;;;;;;;;AChCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6BAA6B,WAAW;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC,gBAAgB;AAChB,kEAAkE;AAClE,yDAAyD;AACzD;AACA;AACA,IAAI;AACJ,iCAAiC;AACjC;AACA;AACA;AACA;AACA,kCAAkC;AAClC,gBAAgB;AAChB,kEAAkE;AAClE,yDAAyD;AACzD,wBAAwB;AACxB,6BAA6B;AAC7B;AACA;AACA;;;;;;;;;;;;ACzEa;;AAEb;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,kCAAuB;AACpD;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrCa;;AAEb,cAAc,mBAAO,CAAC,qBAAU;AAChC,2BAA2B,mBAAO,CAAC,mCAAwB;AAC3D,gBAAgB,mBAAO,CAAC,+BAAqB;;AAE7C;AACA,qBAAqB,mBAAO,CAAC,kCAAuB;;AAEpD;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAO,CAAC,yDAA8C;AACjE,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY;AACjB;AACA,EAAE;AACF;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;;;;;;;;;;AC3DA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;ACJA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB,+BAA+B;AAC/B;AACA,mDAAmD;AACnD;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E,oBAAoB;AACpB,mCAAmC,2CAA2C;AAC9E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,wCAAwC;AAC3E,oBAAoB;AACpB,mCAAmC,yCAAyC;AAC5E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,YAAY;AACZ;AACA,sBAAsB;AACtB,YAAY;AACZ,sBAAsB;AACtB;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,wBAAwB;AACxB;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,0BAA0B;AAC1B;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,0BAA0B;AAC1B;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB,mDAAmD;AAC1E;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;AACpB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,yBAAyB;AACzB,cAAc;AACd;AACA;AACA,oBAAoB;AACpB;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA,oBAAoB,+BAA+B,iBAAiB;AACpE;AACA,oBAAoB;AACpB;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D,cAAc;AACd;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,cAAc;AACd;AACA;AACA,oBAAoB;AACpB;AACA,4BAA4B;AAC5B;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,gBAAgB;AAChB,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB;AACvB,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,gBAAgB;AAChB,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wCAAwC,qBAAqB,EAAE;AAC7E,cAAc,wCAAwC,2BAA2B,EAAE;AACnF,eAAe,yCAAyC,qBAAqB,EAAE;AAC/E;AACA;AACA,0BAA0B,iCAAiC;AAC3D,yBAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA,0BAA0B,qBAAqB,GAAG,qBAAqB,EAAE;AACzE,gBAAgB,0CAA0C,qBAAqB,EAAE;AACjF;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,0BAA0B,qBAAqB,GAAG,oBAAoB,EAAE;AACxE;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,0BAA0B,qCAAqC;AAC/D,SAAS;AACT;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT,cAAc,wCAAwC,2BAA2B,EAAE;AACnF;AACA;AACA,0BAA0B,qBAAqB,GAAG,qBAAqB,EAAE;AACzE;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT,eAAe,yCAAyC,kBAAkB,EAAE;AAC5E,eAAe,yCAAyC,qBAAqB,EAAE;AAC/E,iBAAiB,2CAA2C,qBAAqB,EAAE;AACnF,eAAe,yCAAyC,8CAA8C,EAAE;AACxG;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,0BAA0B,iCAAiC,EAAE;AAC7D,qBAAqB,4CAA4C,kBAAkB,EAAE;AACrF,sBAAsB,6CAA6C,kBAAkB,EAAE;AACvF,sBAAsB,6CAA6C,kBAAkB,EAAE;AACvF;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA8B,GAAG,CAAkB,CAAC;;;;;;;;;;;ACvoDvD;AACA,oBAAoB;;AAEpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D,2EAA2E,MAAM,OAAO,mBAAO,CAAC,kBAAO,KAAK,aAAa;AACzH,MAAM,aAKJ;AACF,CAAC;AACD,8BAA8B;AAC9B;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;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,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,+BAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D,mBAAmB,+BAAmB;AACtC,sBAAsB,+BAAmB;AACzC,wBAAwB,+BAAmB;AAC3C,oBAAoB,+BAAmB;AACvC,oBAAoB,+BAAmB;AACvC,wBAAwB,+BAAmB;AAC3C;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mBAAmB;AACpE,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G,sBAAsB;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;;;AAGA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;;;AAGA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4CAA4C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA,OAAO;;AAEP;AACA;;;AAGA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;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,qBAAqB,oDAAoD;AACzE,oBAAoB,8DAA8D;AAClF,oBAAoB;AACpB,oBAAoB,8DAA8D;AAClF,4BAA4B,gBAAgB;AAC5C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,4BAA4B;AAC5B,SAAS;AACT;AACA,oBAAoB,mBAAmB;AACvC,oBAAoB,mBAAmB;AACvC,SAAS;AACT;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA,eAAe,gCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;;;AAGA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D;AACA,kBAAkB,gCAAmB;AACrC,eAAe,gCAAmB;AAClC;AACA;AACA,wCAAwC;AACxC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;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,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D;AACA,mBAAmB,gCAAmB;AACtC,kBAAkB,gCAAmB;AACrC,eAAe,gCAAmB;AAClC,wBAAwB,gCAAmB;AAC3C,uBAAuB,gCAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,8BAA8B;AAC9B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA,0DAA0D,0BAA0B;AACpF,2DAA2D;AAC3D;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,KAAK;AACL;AACA;;;AAGA,OAAO;;AAEP;AACA;;;AAGA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,gDAAgD;AAChD;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA,+CAA+C;AAC/C;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D;AACA,eAAe,gCAAmB;AAClC,iBAAiB,gCAAmB;AACpC,eAAe,gCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,6CAA6C;AACnG;AACA;AACA,sDAAsD,6CAA6C;AACnG;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kCAAkC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ,+GAA+G;AAC9K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;;;AAGA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D;AACA,wBAAwB,gCAAmB;AAC3C,eAAe,gCAAmB;AAClC,wBAAwB,gCAAmB;AAC3C,eAAe,gCAAmB;AAClC,kBAAkB,gCAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,gDAAgD;AAChD;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D;AACA,eAAe,gCAAmB;AAClC,eAAe,gCAAmB;AAClC,eAAe,gCAAmB;AAClC,wBAAwB,gCAAmB;AAC3C,kBAAkB,gCAAmB;AACrC,sBAAsB,gCAAmB;AACzC,qBAAqB,gCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D,eAAe,gCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;;AAGrE,gDAAgD,aAAa;AAC7D;AACA,eAAe,gCAAmB;AAClC,qBAAqB,gCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uFAAuF,yBAAyB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mCAAmC;AACrG,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA,kCAAkC,oCAAoC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,2CAA2C,gBAAgB;AAC3D;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,gCAAgC;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yDAAyD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;;AAEA,6DAA6D,qDAAqD,6BAA6B;;AAE/I;;AAEA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,gCAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,aAAa;AAC7D;AACA,oBAAoB,gCAAmB;AACvC,oBAAoB,gCAAmB;AACvC,oBAAoB,gCAAmB;AACvC,wBAAwB,gCAAmB;AAC3C,eAAe,gCAAmB;AAClC,2CAA2C,qCAAqC,0BAA0B;AAC1G,iBAAiB,gCAAmB;AACpC,kDAAkD,qCAAqC,mCAAmC;AAC1H,eAAe,gCAAmB;AAClC,0CAA0C,qCAAqC,yBAAyB;AACxG,4CAA4C,qCAAqC,2BAA2B;AAC5G,yCAAyC,qCAAqC,wBAAwB;AACtG,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA,UAAU;AACV;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC50ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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,SAAS,4CAAU;AACnB,EAAE;;AAEF;AACA,EAAE,yCAAO;AACT,gBAAgB,6CAAW;AAC3B,gBAAgB,iDAAe;;AAE/B;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI;;AAER;AACA,GAAG;AACH,EAAE;;AAEF;AACA,YAAY,yCAAO;AACnB,gBAAgB,6CAAW;AAC3B;AACA;AACA,sBAAsB,6CAA6C;AACnE,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA,qBAAqB,eAAe;AACpC,OAAO,sDAAoB;AAC3B;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;;;;;;;;;;;;;;;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEO;;;;;;;;;;;;;;;;;;;;;;;;AC7CoB;AACC;AACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFlC;AACA;AAEO,SAASumhB,QAAT,CAAkBtgiB,GAAlB,EAAuB;AAC7B,SAAO,IAAIvE,OAAJ,CAAY,CAACc,OAAD,EAAUb,MAAV,KAAqB;AACvC,QAAI6vkB,GA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CNA,sBAAsB;;AAEtB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;;;;;;;;;;AClFD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc;AACd;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAuC;AAC7C;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;;AAIH;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,uEAAuE;AACvE,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,CAAC;;;AAGD;AACA,YAAY,QAAQ;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;;;;;;;;;;;ACvWD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;;;;;;;;;;AC5CD,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;ACxDD;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;ACnBD,iBAAiB,aAAa,wCAAwC,SAAS,4BAA4B,UAAU,+BAA+B,SAAS,YAAY,wBAAwB,2EAA2E,mBAAmB,sEAAsE,mBAAmB,sCAAsC,uFAAuF,sBAAsB,mEAAmE,+BAA+B,+FAA+F,qLAAqL,IAAI,+EAA+E,sCAAsC,IAAI,0GAA0G,mCAAmC,6BAA6B,iBAAiB,sBAAsB,qCAAqC,oBAAoB,+EAA+E,EAAE,kBAAkB,8BAA8B,kBAAkB,+BAA+B,4BAA4B,iCAAiC,EAAE,wBAAwB,UAAU,6DAA6D,QAAQ,8BAA8B,iBAAiB,YAAY,oBAAoB,EAAE,wBAAwB,UAAU,8BAA8B,8BAA8B,kBAAkB,sCAAsC,SAAS,iCAAiC,UAAU,aAAa,gCAAgC,2BAA2B,wBAAwB,sDAAsD,yDAAyD,6BAA6B,oBAAoB,iGAAiG,oBAAoB,uEAAuE,6BAA6B,+BAA+B,yZAAyZ,gCAAgC,iEAAiE,mJAAmJ,+CAA+C,8BAA8B,+CAA+C,GAAG,8BAA8B,gCAAgC,6CAA6C,oBAAoB,UAAU,EAAE,uCAAuC,SAAS,0DAA0D,wBAAwB,+FAA+F,mBAAmB,oHAAoH,sBAAsB,oHAAoH,sCAAsC,iBAAiB,mCAAmC,gCAAgC,iCAAiC,qCAAqC,SAAS,wDAAwD,UAAU,aAAa,0BAA0B,0EAA0E,oBAAoB,kDAAkD,EAAE,EAAE,mBAAmB,uIAAuI,sBAAsB,wFAAwF,uBAAuB,sCAAsC,uBAAuB,gJAAgJ,IAAI,gOAAgO,udAAud,8BAA8B,gCAAgC;;;;;;;;;;ACAv6K;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,uCAAuC;AACvC;AACA,4BAA4B;AAC5B,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,IAAI;AACJ,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,IAAI;AACJ,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,IAAI;AACJ,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,6BAA6B;AAC7B,gCAAgC;;AAEhC;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA;;AAEA;AACA;AACA,0BAA0B,gBAAgB;;AAE1C;AACA;AACA,GAAG;;AAEH;AACA,0BAA0B;;AAE1B;AACA,kCAAkC,gCAAgC;;AAElE;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,oCAAoC,sBAAsB;AAC1D,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA,mBAAmB,sBAAsB;AACzC;AACA,oBAAoB,gCAAgC;AACpD;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D,2BAA2B;AACvF;AACA;AACA;AACA,GAAG;;AAEH;A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AiB,GAAGJ,QAAQ,CAAChmH,OAAD,CAJhC;AAMA;;AACA,QAAIqmH,WAAW,GAAGlnnB,MAAM,GAAGA,MAAM,CAACtnD,SAAV,GAAsBiC,SAA9C;AAAA,QACIwsqB,aAAa,GAAGD,WAAW,GAAGA,WAAW,CAACp7S,OAAf,GAAyBnxX,SADxD;AAAA,QAEIysqB,cAAc,GAAGF,WAAW,GAAGA,WAAW,CAACjmqB,QAAf,GAA0BtG,SAF1D;AAIA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS0sqB,MAAT,CAAgB9vqB,KAAhB,EAAuB;AACrB,UAAI+vqB,YAAY,CAAC/vqB,KAAD,CAAZ,IAAuB,CAACy4E,OAAO,CAACz4E,KAAD,CAA/B,IAA0C,EAAEA,KAAK,YAAYgwqB,WAAnB,CAA9C,EAA+E;AAC7E,YAAIhwqB,KAAK,YAAYiwqB,aAArB,EAAoC;AAClC,iBAAOjwqB,KAAP;AACD;;AACD,YAAI00D,cAAc,CAAC4nB,IAAf,CAAoBt8E,KAApB,EAA2B,aAA3B,CAAJ,EAA+C;AAC7C,iBAAOkwqB,YAAY,CAAClwqB,KAAD,CAAnB;AACD;AACF;;AACD,aAAO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AAR,EAAWqX,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAAvB,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS28kB,SAAT,CAAmBh0lB,KAAnB,EAA0BqX,CAA1B,EAA6Bi2M,KAA7B,EAAoC;AAClC,UAAIxhT,MAAM,GAAGk0F,KAAK,IAAI,IAAT,GAAgB,CAAhB,GAAoBA,KAAK,CAACl0F,MAAvC;;AACA,UAAI,CAACA,MAAL,EAAa;AACX,eAAO,EAAP;AACD;;AACDurG,MAAAA,CAAC,GAAIi2M,KAAK,IAAIj2M,CAAC,KAAKtqG,SAAhB,GAA6B,CAA7B,GAAiCm0qB,SAAS,CAAC7pkB,CAAD,CAA9C;AACAA,MAAAA,CAAC,GAAGvrG,MAAM,GAAGurG,CAAb;AACA,aAAO2wkB,SAAS,CAACholB,KAAD,EAAQqX,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAApB,EAAuBvrG,MAAvB,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmorB,cAAT,CAAwBj0lB,KAAxB,EAA+B+8D,SAA/B,EAA0C;AACxC,aAAQ/8D,KAAK,IAAIA,KAAK,CAACl0F,MAAhB,GACHy9qB,SAAS,CAACvplB,KAAD,EAAQ2mlB,WAAW,CAAC5phB,SAAD,EAAY,CAAZ,CAAnB,EAAmC,KAAnC,EAA0C,IAA1C,CADN,GAEH,EAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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A;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASqkI,SAAT,CAAmB/omB,KAAnB,EAA0BxS,MAA1B,EAAkC;AAChC,aAAOowmB,aAAa,CAAC59lB,KAAK,IAAI,EAAV,EAAcxS,MAAM,IAAI,EAAxB,EAA4BklmB,WAA5B,CAApB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsW,aAAT,CAAuBhpmB,KAAvB,EAA8BxS,MAA9B,EAAsC;AACpC,aAAOowmB,aAAa,CAAC59lB,KAAK,IAAI,EAAV,EAAcxS,MAAM,IAAI,EAAxB,EAA4B0tmB,OAA5B,CAApB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI+N,OAAO,GAAGxN,QAAQ,CAAC,UAAS9E,MAAT,EAAiB;AACtC,UAAI32qB,MAAM,GAAG22qB,MAAM,CAAC32qB,MAApB;AAAA,UACI0mqB,QAAQ,GAAG1mqB,MAAM,GAAG,CAAT,GAAa22qB,MAAM,CAAC32qB,MAAM,GAAG,CAAV,CAAnB,GAAkCiB,SADjD;AAGAylqB,MAAAA,QAAQ,GAAG,OAAOA,QAAP,IAAmB,UAAnB,IAAiCiQ,MAAM,CAAChznB,GAAP,IAAc+inB,QAA/C,IAA2DzlqB,SAAtE;AACA,aAAOynrB,SAAS,CAAC/R,MAAD,EAASjQ,QAAT,CAAhB;AACD,KANqB,CAAtB;AAQA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASronB,KAAT,CAAexgD,KAAf,EAAsB;AACpB,UAAImrC,MAAM,GAAG2koB,MAAM,CAAC9vqB,KAAD,CAAnB;AACAmrC,MAAAA,MAAM,CAACqloB,SAA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,UAAInoO,IAAI,GAAG/C,OAAO,CAACwxlB,UAAD,CAAP,GAAsBjB,UAAtB,GAAmCmO,SAA9C;;AACA,UAAIxzX,KAAK,IAAI6+X,cAAc,CAACvY,UAAD,EAAa72gB,SAAb,EAAwBuwJ,KAAxB,CAA3B,EAA2D;AACzDvwJ,QAAAA,SAAS,GAAGhwJ,SAAZ;AACD;;AACD,aAAOo4E,IAAI,CAACyulB,UAAD,EAAa+S,WAAW,CAAC5phB,SAAD,EAAY,CAAZ,CAAxB,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASttI,MAAT,CAAgBmkpB,UAAhB,EAA4B72gB,SAA5B,EAAuC;AACrC,UAAI53E,IAAI,GAAG/C,OAAO,CAACwxlB,UAAD,CAAP,GAAsBhB,WAAtB,GAAoCwO,UAA/C;AACA,aAAOj8lB,IAAI,CAACyulB,UAAD,EAAa+S,WAAW,CAAC5phB,SAAD,EAAY,CAAZ,CAAxB,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI/5G,IAAI,GAAGkqoB,UAAU,CAAC7jhB,SAAD,CAArB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIsshB,QAAQ,GAAGzI,UAAU,CAACwF,aAAD,CAAzB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASkD,OAAT,CAAiBhiB,UAAjB,EAA6BpB,QAA7B,EAAuC;AACrC,aAAO6O,WAAW,CAACxyqB,GAAG,CAAC+kqB,UAAD,EAAapB,QAAb,CAAJ,EAA4B,CAA5B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqjB,WAAT,CAAqBjiB,UAArB,EAAiCpB,QAAjC,EAA2C;AACzC,aAAO6O,WAAW,CAACxyqB,GAAG,CAAC+kqB,UAAD,EAAapB,QAAb,CAAJ,EAA4BnJ,QAA5B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASysB,YAAT,CAAsBliB,UAAtB,EAAkCpB,QAAlC,EAA4ClhT,KAA5C,EAAmD;AACjDA,MAAAA,KAAK,GAAGA,KAAK,KAAKvkX,SAAV,GAAsB,CAAtB,GAA0Bm0qB,SAAS,CAAC5vT,KAAD,CAA3C;AACA,aAAO+vT,WAAW,CAACxyqB,GAAG,CAAC+kqB,UAAD,EAAapB,QAAb,CAAJ,EAA4BlhT,KAA5B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS7gU,OAAT,CAAiBmjnB,UAAjB,EAA6BpB,QAA7B,EAAuC;AACrC,UAAIrtlB,IAAI,GAAG/C,OAAO,CAACwxlB,UAAD,CAAP,GAAsBntI,SAAtB,GAAkCk4I,QAA7C;AACA,aAAOx5lB,IAAI,CAACyulB,UAAD,EAAa+S,WAAW,CAACnU,QAAD,EAAW,CAAX,CAAxB,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAC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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAItooB,SAAS,GAAG2toB,gBAAgB,CAAC,UAASj3oB,MAAT,EAAiBnrC,KAAjB,EAAwB+nC,GAAxB,EAA6B;AAC5DoD,MAAAA,MAAM,CAACpD,GAAG,GAAG,CAAH,GAAO,CAAX,CAAN,CAAoBqH,IAApB,CAAyBpvC,KAAzB;AACD,KAF+B,EAE7B,YAAW;AAAE,aAAO,CAAC,EAAD,EAAK,EAAL,CAAP;AAAkB,KAFF,CAAhC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASkM,MAAT,CAAgB+9pB,UAAhB,EAA4BpB,QAA5B,EAAsCC,WAAtC,EAAmD;AACjD,UAAIttlB,IAAI,GAAG/C,OAAO,CAACwxlB,UAAD,CAAP,GAAsBT,WAAtB,GAAoCmB,UAA/C;AAAA,UACIlB,SAAS,GAAGr9lB,SAAS,CAACjqE,MAAV,GAAmB,CADnC;AAGA,aAAOq5E,IAAI,CAACyulB,UAAD,EAAa+S,WAAW,CAACnU,QAAD,EAAW,CAAX,CAAxB,EAAuCC,WAAvC,EAAoDW,SAApD,EAA+DuL,QAA/D,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASlgM,WAAT,CAAqBm1L,UAArB,EAAiCpB,QAAjC,EAA2CC,WAA3C,EAAwD;AACtD,UAAIttlB,IAAI,GAAG/C,OAAO,CAACwxlB,UAAD,CAAP,GAAsBP,gBAAtB,GAAyCiB,UAApD;AAAA,UACIlB,SAAS,GAAGr9lB,SAAS,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Ab;AACA,aAAO,YAAW;AAChB,YAAI,EAAEA,CAAF,GAAM,CAAV,EAAa;AACXviE,UAAAA,MAAM,GAAGqwC,IAAI,CAACrP,KAAL,CAAW,IAAX,EAAiBC,SAAjB,CAAT;AACD;;AACD,YAAIshC,CAAC,IAAI,CAAT,EAAY;AACVlyB,UAAAA,IAAI,GAAGp4E,SAAP;AACD;;AACD,eAAO+nC,MAAP;AACD,OARD;AASD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI6yB,IAAI,GAAG4/mB,QAAQ,CAAC,UAASpimB,IAAT,EAAeizR,OAAf,EAAwB2yU,QAAxB,EAAkC;AACpD,UAAI3L,OAAO,GAAGhX,cAAd;;AACA,UAAI2iB,QAAQ,CAACj/qB,MAAb,EAAqB;AACnB,YAAIk/qB,OAAO,GAAGnV,cAAc,CAACkV,QAAD,EAAWgC,SAAS,CAACplnB,IAAD,CAApB,CAA5B;AACAy3mB,QAAAA,OAAO,IAAI3W,iBAAX;AACD;;AACD,aAAOgnB,UAAU,CAACtqmB,IAAD,EAAOi6lB,OAAP,EAAgBhnU,OAAhB,EAAyB2yU,QAAzB,EAAmCC,OAAnC,CAAjB;AACD,KAPkB,CAAnB;AASA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI34R,OAAO,GAAGk1R,QAAQ,CAAC,UAAS9qmB,MAAT,EAAiB/qC,GAAjB,EAAsBq5oB,QAAtB,EAAgC;AACrD,UAAI3L,OAAO,GAAGhX,cAAc,GAAGC,kBAA/B;;AACA,UAAI0iB,QAAQ,CAACj/qB,MAAb,EAAqB;AACn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B;AACD;AACF;;AACD,YAAID,OAAO,KAAK/prB,SAAhB,EAA2B;AACzB+prB,UAAAA,OAAO,GAAGh0oB,UAAU,CAACu0oB,YAAD,EAAe1wmB,IAAf,CAApB;AACD;;AACD,eAAO7xC,MAAP;AACD;;AACD8ipB,MAAAA,SAAS,CAAC3tiB,MAAV,GAAmBA,MAAnB;AACA2tiB,MAAAA,SAAS,CAACtrX,KAAV,GAAkBA,KAAlB;AACA,aAAOsrX,SAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIx/I,KAAK,GAAGmvI,QAAQ,CAAC,UAASpimB,IAAT,EAAe34E,IAAf,EAAqB;AACxC,aAAO6zqB,SAAS,CAACl7lB,IAAD,EAAO,CAAP,EAAU34E,IAAV,CAAhB;AACD,KAFmB,CAApB;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIm2C,KAAK,GAAG4koB,QAAQ,CAAC,UAASpimB,IAAT,EAAewB,IAAf,EAAqBn6E,IAArB,EAA2B;AAC9C,aAAO6zqB,SAAS,CAACl7lB,IAAD,EAAOjE,QAAQ,CAACyF,IAAD,CAAR,IAAkB,CAAzB,EAA4Bn6E,IAA5B,CAAhB;AACD,KAFmB,CAApB;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASsrrB,IAAT,CAAc3ymB,IAAd,EAAoB;AAClB,aAAOsqmB,UAAU,CAACtqmB,IAAD,EAAO0jlB,cAAP,CAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;AAG1B,oBAAY8lmB;AAHc,OAAb,CAAf;AAKD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6L,KAAT,CAAenzmB,IAAf,EAAqB;AACnB,aAAO2omB,GAAG,CAAC3omB,IAAD,EAAO,CAAP,CAAV;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASvG,IAAT,CAAcj1E,KAAd,EAAqBgsM,OAArB,EAA8B;AAC5B,aAAOwif,OAAO,CAACrO,YAAY,CAACn0e,OAAD,CAAb,EAAwBhsM,KAAxB,CAAd;AACD;AAED;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4urB,SAAT,GAAqB;AACnB,UAAI,CAACxinB,SAAS,CAACjqE,MAAf,EAAuB;AACrB,eAAO,EAAP;AACD;;AACD,UAAInC,KAAK,GAAGosE,SAAS,CAAC,CAAD,CAArB;AACA,aAAOqM,OAAO,CAACz4E,KAAD,CAAP,GAAiBA,KAAjB,GAAyB,CAACA,KAAD,CAAhC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS41Y,KAAT,CAAe51Y,KAAf,EAAsB;AACpB,aAAOw1qB,SAAS,CAACx1qB,KAAD,EAAQs+pB,kBAAR,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASuwB,SAAT,CAAmB7urB,KAAnB,EAA0B01qB,UAA1B,EAAsC;AACpCA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CtyqB,SAA5D;AACA,aAAOoyqB,SAAS,CAACx1qB,KAAD,EAAQs+pB,kBAAR,EAA4BoX,UAA5B,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASoZ,SAAT,CAAmB9urB,KAAnB,EAA0B;AACxB,aAAOw1qB,SAAS,CAACx1qB,KAAD,EAAQo+pB,eAAe,GAAGE,kBAA1B,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASywB,aAAT,CAAuB/urB,KAAvB,EAA8B01qB,UAA9B,EAA0C;AACxCA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CtyqB,SAA5D;AACA,aAAOoyqB,SAAS,CAACx1qB,KAAD,EAAQo+pB,eAAe,GAAGE,kBAA1B,EAA8CoX,UAA9C,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsZ,UAAT,CAAoBl8mB,MAApB,EAA4BvoB,MAA5B,EAAoC;AAClC,aAAOA,MAAM,IAAI,IAAV,IAAkBksnB,cAAc,CAAC3jmB,MAAD,EAASvoB,MAAT,EAAiBt+C,IAAI,CAACs+C,MAAD,CAArB,CAAvC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASoqnB,EAAT,CAAY30qB,KAAZ,EAAmBq1Y,KAAnB,EAA0B;AACxB,aAAOr1Y,KAAK,KAAKq1Y,KAAV,IAAoBr1Y,KAAK,KAAKA,KAAV,IAAmBq1Y,KAAK,KAAKA,KAAxD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIi/K,EAAE,GAAG+wH,yBAAyB,CAAC5M,MAAD,CAAlC;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIwW,GAAG,GAAG5J,yBAAyB,CAAC,UAASrlrB,KAAT,EAAgBq1Y,KAAhB,EAAuB;AACzD,aAAOr1Y,KAAK,IAAIq1Y,KAAhB;AACD,KAFkC,CAAnC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI2+R,WAAW,GAAGqF,eAAe,CAAC,YAAW;AAAE,aAAOjtmB,SAAP;AAAmB,KAAhC,EAAD,CAAf,GAAsDitmB,eAAtD,GAAwE,UAASr5qB,KAAT,EAAgB;AACxG,aAAO+vqB,YAAY,CAAC/vqB,KAAD,CAAZ,IAAuB00D,cAAc,CAAC4nB,IAAf,CAAoBt8E,KAApB,EAA2B,QAA3B,CAAvB,IACL,CAAC+5E,oBAAoB,CAACuC,IAArB,CAA0Bt8E,KAA1B,EAAiC,QAAjC,CADH;AAED,KAHD;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIy4E,OAAO,GAAGD,KAAK,CAACC,OAApB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIzxB,aAAa,GAAGihnB,iBAAiB,GAAGiD,SAAS,CAACjD,iBAAD,CAAZ,GAAkCqR,iBAAvE;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASwC,WAAT,CAAqB97qB,KAArB,EAA4B;AAC1B,aAAOA,KAAK,IAAI,IAAT,IAAiBm7qB,QAAQ,CAACn7qB,KAAK,CAACmC,MAAP,CAAzB,IAA2C,CAACk6E,UAAU,CAACr8E,KAAD,CAA7D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS08qB,iBAAT,CAA2B18qB,KAA3B,EAAkC;AAChC,aAAO+vqB,YAAY,CAAC/vqB,KAAD,CAAZ,IAAuB87qB,WAAW,CAAC97qB,KAAD,CAAzC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkvrB,SAAT,CAAmBlvrB,KAAnB,EAA0B;AACxB,aAAOA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAA5B,IACJ+vqB,YAAY,CAAC/vqB,KAAD,CAAZ,IAAuBs4qB,UAAU,CAACt4qB,KAAD,CAAV,IAAqBogqB,OAD/C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIrzH,QAAQ,GAAGyhI,cAAc,IAAIkZ,SAAjC;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIx5R,MAAM,GAAGg6Q,UAAU,GAAGgD,SAAS,CAAChD,UAAD,CAAZ,GAA2BqR,UAAlD;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASzjiB,SAAT,CAAmB91I,KAAnB,EAA0B;AACxB,aAAO+vqB,YAAY,CAAC/vqB,KAAD,CAAZ,IAAuBA,KAAK,CAAC41I,QAAN,KAAmB,CAA1C,IAA+C,CAACqiZ,aAAa,CAACj4hB,KAAD,CAApE;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8hH,OAAT,CAAiB9hH,KAAjB,EAAwB;AACtB,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,eAAO,IAAP;AACD;;AACD,UAAI87qB,WAAW,CAAC97qB,KAAD,CAAX,KACCy4E,OAAO,CAACz4E,KAAD,CAAP,IAAkB,OAAOA,KAAP,IAAgB,QAAlC,IAA8C,OAAOA,KAAK,CAAC6qE,MAAb,IAAuB,UAArE,IACCkie,QAAQ,CAAC/siB,KAAD,CADT,IACoB0oqB,YAAY,CAAC1oqB,KAAD,CADhC,IAC2Cg0qB,WAAW,CAACh0qB,KAAD,CAFvD,CAAJ,EAEqE;AACnE,eAAO,CAACA,KAAK,CAACmC,MAAd;AACD;;AACD,UAAI00Y,GAAG,GAAGi/R,MAAM,CAAC91qB,KAAD,CAAhB;;AACA,UAAI62Y,GAAG,IAAI6pR,MAAP,IAAiB7pR,GAAG,IAAIoqR,MAA5B,EAAoC;AAClC,eAAO,CAACjhqB,KAAK,CAAC+mC,IAAd;AACD;;AACD,UAAIy0oB,WAAW,CAACx7qB,KAAD,CAAf,EAAwB;AACtB,eAAO,CAACu7qB,QAAQ,CAACv7qB,KAAD,CAAR,CAAgBmC,MAAxB;AACD;;AACD,WAAK,IAAI4lC,GAAT,IAAgB/nC,KAAhB,EAAuB;AACrB,YAAI00D,cAAc,CAAC4nB,IAAf,CAAoBt8E,KAApB,EAA2B+nC,GAA3B,CAAJ,EAAqC;AACnC,iBAAO,KAAP;AACD;AACF;;AACD,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASw9Y,OAAT,CAAiBvlb,KAAjB,EAAwBq1Y,KAAxB,EAA+B;AAC7B,aAAOmkS,WAAW,CAACx5qB,KAAD,EAAQq1Y,KAAR,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS85S,WAAT,CAAqBnvrB,KAArB,EAA4Bq1Y,KAA5B,EAAmCqgS,UAAnC,EAA+C;AAC7CA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CtyqB,SAA5D;AACA,UAAI+nC,MAAM,GAAGuqoB,UAAU,GAAGA,UAAU,CAAC11qB,KAAD,EAAQq1Y,KAAR,CAAb,GAA8BjyY,SAArD;AACA,aAAO+nC,MAAM,KAAK/nC,SAAX,GAAuBo2qB,WAAW,CAACx5qB,KAAD,EAAQq1Y,KAAR,EAAejyY,SAAf,EAA0BsyqB,UAA1B,CAAlC,GAA0E,CAAC,CAACvqoB,MAAnF;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmrgB,OAAT,CAAiBt2iB,KAAjB,EAAwB;AACtB,UAAI,CAAC+vqB,YAAY,CAAC/vqB,KAAD,CAAjB,EAA0B;AACxB,eAAO,KAAP;AACD;;AACD,UAAI62Y,GAAG,GAAGyhS,UAAU,CAACt4qB,KAAD,CAApB;AACA,aAAO62Y,GAAG,IAAI0pR,QAAP,IAAmB1pR,GAAG,IAAIypR,SAA1B,IACJ,OAAOtgqB,KAAK,CAACkoC,OAAb,IAAwB,QAAxB,IAAoC,OAAOloC,KAAK,CAAC8yB,IAAb,IAAqB,QAAzD,IAAqE,CAACmlgB,aAAa,CAACj4hB,KAAD,CADtF;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo7I,QAAT,CAAkBp7I,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IAA4ByuqB,cAAc,CAACzuqB,KAAD,CAAjD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASq8E,UAAT,CAAoBr8E,KAApB,EAA2B;AACzB,UAAI,CAAC++a,QAAQ,CAAC/+a,KAAD,CAAb,EAAsB;AACpB,eAAO,KAAP;AACD,OAHwB,CAIzB;AACA;;;AACA,UAAI62Y,GAAG,GAAGyhS,UAAU,CAACt4qB,KAAD,CAApB;AACA,aAAO62Y,GAAG,IAAI2pR,OAAP,IAAkB3pR,GAAG,IAAI4pR,MAAzB,IAAmC5pR,GAAG,IAAIspR,QAA1C,IAAsDtpR,GAAG,IAAIkqR,QAApE;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASv1F,SAAT,CAAmBxrkB,KAAnB,EAA0B;AACxB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IAA4BA,KAAK,IAAIu3qB,SAAS,CAACv3qB,KAAD,CAArD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASm7qB,QAAT,CAAkBn7qB,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACLA,KAAK,GAAG,CAAC,CADJ,IACSA,KAAK,GAAG,CAAR,IAAa,CADtB,IAC2BA,KAAK,IAAIq4H,gBAD3C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0mT,QAAT,CAAkB/+a,KAAlB,EAAyB;AACvB,UAAI2yC,IAAI,GAAG,OAAO3yC,KAAlB;AACA,aAAOA,KAAK,IAAI,IAAT,KAAkB2yC,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,UAA9C,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo9nB,YAAT,CAAsB/vqB,KAAtB,EAA6B;AAC3B,aAAOA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAP,IAAgB,QAAxC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIooqB,KAAK,GAAGD,SAAS,GAAG+C,SAAS,CAAC/C,SAAD,CAAZ,GAA0BsS,SAA/C;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS2U,OAAT,CAAiBt8mB,MAAjB,EAAyBvoB,MAAzB,EAAiC;AAC/B,aAAOuoB,MAAM,KAAKvoB,MAAX,IAAqBmwnB,WAAW,CAAC5nmB,MAAD,EAASvoB,MAAT,EAAiBwxnB,YAAY,CAACxxnB,MAAD,CAA7B,CAAvC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8koB,WAAT,CAAqBv8mB,MAArB,EAA6BvoB,MAA7B,EAAqCmrnB,UAArC,EAAiD;AAC/CA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CtyqB,SAA5D;AACA,aAAOs3qB,WAAW,CAAC5nmB,MAAD,EAASvoB,MAAT,EAAiBwxnB,YAAY,CAACxxnB,MAAD,CAA7B,EAAuCmrnB,UAAvC,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASj8nB,KAAT,CAAez5C,KAAf,EAAsB;AACpB;AACA;AACA;AACA,aAAOguZ,QAAQ,CAAChuZ,KAAD,CAAR,IAAmBA,KAAK,IAAI,CAACA,KAApC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsvrB,QAAT,CAAkBtvrB,KAAlB,EAAyB;AACvB,UAAIynrB,UAAU,CAACznrB,KAAD,CAAd,EAAuB;AACrB,cAAM,IAAIyD,KAAJ,CAAUq6pB,eAAV,CAAN;AACD;;AACD,aAAOgd,YAAY,CAAC96qB,KAAD,CAAnB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASuvrB,MAAT,CAAgBvvrB,KAAhB,EAAuB;AACrB,aAAOA,KAAK,KAAK,IAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwvrB,KAAT,CAAexvrB,KAAf,EAAsB;AACpB,aAAOA,KAAK,IAAI,IAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASguZ,QAAT,CAAkBhuZ,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACJ+vqB,YAAY,CAAC/vqB,KAAD,CAAZ,IAAuBs4qB,UAAU,CAACt4qB,KAAD,CAAV,IAAqB2gqB,SAD/C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS1oI,aAAT,CAAuBj4hB,KAAvB,EAA8B;AAC5B,UAAI,CAAC+vqB,YAAY,CAAC/vqB,KAAD,CAAb,IAAwBs4qB,UAAU,CAACt4qB,KAAD,CAAV,IAAqB6gqB,SAAjD,EAA4D;AAC1D,eAAO,KAAP;AACD;;AACD,UAAIvllB,KAAK,GAAGoylB,YAAY,CAAC1tqB,KAAD,CAAxB;;AACA,UAAIs7E,KAAK,KAAK,IAAd,EAAoB;AAClB,eAAO,IAAP;AACD;;AACD,UAAIqnmB,IAAI,GAAGjunB,cAAc,CAAC4nB,IAAf,CAAoBhB,KAApB,EAA2B,aAA3B,KAA6CA,KAAK,CAACluC,WAA9D;AACA,aAAO,OAAOu1oB,IAAP,IAAe,UAAf,IAA6BA,IAAI,YAAYA,IAA7C,IACL3V,YAAY,CAAC1wlB,IAAb,CAAkBqmmB,IAAlB,KAA2BrV,gBAD7B;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIhF,QAAQ,GAAGD,YAAY,GAAG6C,SAAS,CAAC7C,YAAD,CAAZ,GAA6B2S,YAAxD;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASyU,aAAT,CAAuBzvrB,KAAvB,EAA8B;AAC5B,aAAOwrkB,SAAS,CAACxrkB,KAAD,CAAT,IAAoBA,KAAK,IAAI,CAACq4H,gBAA9B,IAAkDr4H,KAAK,IAAIq4H,gBAAlE;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAImwiB,KAAK,GAAGD,SAAS,GAAG2C,SAAS,CAAC3C,SAAD,CAAZ,GAA0B0S,SAA/C;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS9sR,QAAT,CAAkBnuZ,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACJ,CAACy4E,OAAO,CAACz4E,KAAD,CAAR,IAAmB+vqB,YAAY,CAAC/vqB,KAAD,CAA/B,IAA0Cs4qB,UAAU,CAACt4qB,KAAD,CAAV,IAAqBkhqB,SADlE;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmW,QAAT,CAAkBr3qB,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACJ+vqB,YAAY,CAAC/vqB,KAAD,CAAZ,IAAuBs4qB,UAAU,CAACt4qB,KAAD,CAAV,IAAqBmhqB,SAD/C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIuH,YAAY,GAAGD,gBAAgB,GAAGyC,SAAS,CAACzC,gBAAD,CAAZ,GAAiCyS,gBAApE;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASwU,WAAT,CAAqB1vrB,KAArB,EAA4B;AAC1B,aAAOA,KAAK,KAAKoD,SAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAhB,IAAyB4/pB,GAAzB,GAA+B,CAAC5/pB,KAFrC;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS48qB,aAAT,CAAuB58qB,KAAvB,EAA8B;AAC5B,aAAOk1qB,UAAU,CAACl1qB,KAAD,EAAQo1qB,MAAM,CAACp1qB,KAAD,CAAd,CAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgwrB,aAAT,CAAuBhwrB,KAAvB,EAA8B;AAC5B,aAAOA,KAAK,GACRw0qB,SAAS,CAAC+C,SAAS,CAACv3qB,KAAD,CAAV,EAAmB,CAACq4H,gBAApB,EAAsCA,gBAAtC,CADD,GAEPr4H,KAAK,KAAK,CAAV,GAAcA,KAAd,GAAsB,CAF3B;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0J,QAAT,CAAkB1J,KAAlB,EAAyB;AACvB,aAAOA,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqBu/qB,YAAY,CAACv/qB,KAAD,CAAxC;AACD;AAED;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI6wB,MAAM,GAAGyxpB,cAAc,CAAC,UAASxvmB,MAAT,EAAiBvoB,MAAjB,EAAyB;AACnD,UAAIixnB,WAAW,CAACjxnB,MAAD,CAAX,IAAuBuxnB,WAAW,CAACvxnB,MAAD,CAAtC,EAAgD;AAC9C2qnB,QAAAA,UAAU,CAAC3qnB,MAAD,EAASt+C,IAAI,CAA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3lB,MAAD,EAASkqmB,WAAW,CAAC5phB,SAAD,EAAY,CAAZ,CAApB,EAAoC4jhB,UAApC,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASyZ,WAAT,CAAqB39mB,MAArB,EAA6BsgF,SAA7B,EAAwC;AACtC,aAAO42gB,WAAW,CAACl3lB,MAAD,EAASkqmB,WAAW,CAAC5phB,SAAD,EAAY,CAAZ,CAApB,EAAoC8jhB,eAApC,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwZ,KAAT,CAAe59mB,MAAf,EAAuB+1lB,QAAvB,EAAiC;AAC/B,aAAO/1lB,MAAM,IAAI,IAAV,GACHA,MADG,GAEH+kmB,OAAO,CAAC/kmB,MAAD,EAASkqmB,WAAW,CAACnU,QAAD,EAAW,CAAX,CAApB,EAAmCuM,MAAnC,CAFX;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASub,UAAT,CAAoB79mB,MAApB,EAA4B+1lB,QAA5B,EAAsC;AACpC,aAAO/1lB,MAAM,IAAI,IAAV,GACHA,MADG,GAEHilmB,YAAY,CAACjlmB,MAAD,EAASkqmB,WAAW,CAACnU,QAAD,EAAW,CAAX,CAApB,EAAmCuM,MAAnC,CAFhB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwb,MAAT,CAAgB99mB,MAAhB,EAAwB+1lB,QAAxB,EAAkC;AAChC,aAAO/1lB,MAAM,IAAIkkmB,UAAU,CAAClkmB,MAAD,EAASkqmB,WAAW,CAACnU,QAAD,EAAW,CAAX,CAApB,CAA3B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgoB,WAAT,CAAqB/9mB,MAArB,EAA6B+1lB,QAA7B,EAAuC;AACrC,aAAO/1lB,MAAM,IAAIokmB,eAAe,CAACpkmB,MAAD,EAASkqmB,WAAW,CAACnU,QAAD,EAAW,CAAX,CAApB,CAAhC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASioB,SAAT,CAAmBh+mB,MAAnB,EAA2B;AACzB,aAAOA,MAAM,IAAI,IAAV,GAAiB,EAAjB,GAAsBklmB,aAAa,CAACllmB,MAAD,EAAS7mE,IAAI,CAAC6mE,MAAD,CAAb,CAA1C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASi+mB,WAAT,CAAqBj+mB,MAArB,EAA6B;AAC3B,aAAOA,MAAM,IAAI,IAAV,GAAiB,EAAjB,GAAsBklmB,aAAa,CAACllmB,MAAD,EAASsimB,MAAM,CAACtimB,MAAD,CAAf,CAA1C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAStE,GAAT,CAAasE,MAAb,EAAqBjrE,IAArB,EAA2B6yE,YAA3B,EAAyC;AACvC,UAAIvvC,MAAM,GAAG2nC,MAAM,IAAI,IAAV,GAAiB1vE,SAAjB,GAA6B60qB,OAAO,CAACnlmB,MAAD,EAASjrE,IAAT,CAAjD;AACA,aAAOsjC,MAAM,KAAK/nC,SAAX,GAAuBs3E,YAAvB,GAAsCvvC,MAA7C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs5E,GAAT,CAAa3xC,MAAb,EAAqBjrE,IAArB,EAA2B;AACzB,aAAOirE,MAAM,IAAI,IAAV,IAAkBw0mB,OAAO,CAACx0mB,MAAD,EAASjrE,IAAT,EAAe6wqB,OAAf,CAAhC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASyD,KAAT,CAAerpmB,MAAf,EAAuBjrE,IAAvB,EAA6B;AAC3B,aAAOirE,MAAM,IAAI,IAAV,IAAkBw0mB,OAAO,CAACx0mB,MAAD,EAASjrE,IAAT,EAAe8wqB,SAAf,CAAhC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI7oR,MAAM,GAAG40R,cAAc,CAAC,UAASv5oB,MAAT,EAAiBnrC,KAAjB,EAAwB+nC,GAAxB,EAA6B;AACvD,UAAI/nC,KAAK,IAAI,IAAT,IACA,OAAOA,KAAK,CAAC0J,QAAb,IAAyB,UAD7B,EACyC;AACvC1J,QAAAA,KAAK,GAAGqtqB,oBAAoB,CAAC/wlB,IAArB,CAA0Bt8E,KAA1B,CAAR;AACD;;AAEDmrC,MAAAA,MAAM,CAACnrC,KAAD,CAAN,GAAgB+nC,GAAhB;AACD,KAP0B,EAOxBumX,QAAQ,CAAC7X,QAAD,CAPgB,CAA3B;AASA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIu6S,QAAQ,GAAGtM,cAAc,CAAC,UAASv5oB,MAAT,EAAiBnrC,KAAjB,EAAwB+nC,GAAxB,EAA6B;AACzD,UAAI/nC,KAAK,IAAI,IAAT,IACA,OAAOA,KAAK,CAAC0J,QAAb,IAAyB,UAD7B,EACyC;AACvC1J,QAAAA,KAAK,GAAGqtqB,oBAAoB,CAAC/wlB,IAArB,CAA0Bt8E,KAA1B,CAAR;AACD;;AAED,UAAI00D,cAAc,CAAC4nB,IAAf,CAAoBnxC,MAApB,EAA4BnrC,KAA5B,CAAJ,EAAwC;AACtCmrC,QAAAA,MAAM,CAACnrC,KAAD,CAAN,CAAcovC,IAAd,CAAmBrH,GAAnB;AACD,OAFD,MAEO;AACLoD,QAAAA,MAAM,CAACnrC,KAAD,CAAN,GAAgB,CAAC+nC,GAAD,CAAhB;AACD;AACF,KAX4B,EAW1Bi1oB,WAX0B,CAA7B;AAaA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIxymB,MAAM,GAAGozmB,QAAQ,CAACxE,UAAD,CAArB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASntqB,IAAT,CAAc6mE,MAAd,EAAsB;AACpB,aAAOgpmB,WAAW,CAAChpmB,MAAD,CAAX,GAAsB+gmB,aAAa,CAAC/gmB,MAAD,CAAnC,GAA8CyomB,QAAQ,CAACzomB,MAAD,CAA7D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsimB,MAAT,CAAgBtimB,MAAhB,EAAwB;AACtB,aAAOgpmB,WAAW,CAAChpmB,MAAD,CAAX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AACA;AACA;;;AACI,aAAS/xE,GAAT,CAAa+xE,MAAb,EAAqBjrE,IAArB,EAA2B7H,KAA3B,EAAkC;AAChC,aAAO8yE,MAAM,IAAI,IAAV,GAAiBA,MAAjB,GAA0BuqmB,OAAO,CAACvqmB,MAAD,EAASjrE,IAAT,EAAe7H,KAAf,CAAxC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsxrB,OAAT,CAAiBx+mB,MAAjB,EAAyBjrE,IAAzB,EAA+B7H,KAA/B,EAAsC01qB,UAAtC,EAAkD;AAChDA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CtyqB,SAA5D;AACA,aAAO0vE,MAAM,IAAI,IAAV,GAAiBA,MAAjB,GAA0BuqmB,OAAO,CAACvqmB,MAAD,EAASjrE,IAAT,EAAe7H,KAAf,EAAsB01qB,UAAtB,CAAxC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI6b,OAAO,GAAG1L,aAAa,CAAC55qB,IAAD,CAA3B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIulrB,SAAS,GAAG3L,aAAa,CAACzQ,MAAD,CAA7B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS57lB,SAAT,CAAmB1G,MAAnB,EAA2B+1lB,QAA3B,EAAqCC,WAArC,EAAkD;AAChD,UAAIuI,KAAK,GAAG54lB,OAAO,CAAC3F,MAAD,CAAnB;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AS6zmB,eAAT,CAAV,CAAnB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS9vQ,QAAT,CAAkBtuZ,KAAlB,EAAyB;AACvB,aAAO,YAAW;AAChB,eAAOA,KAAP;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6zrB,SAAT,CAAmB7zrB,KAAnB,EAA0B06E,YAA1B,EAAwC;AACtC,aAAQ16E,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAKA,KAA5B,GAAqC06E,YAArC,GAAoD16E,KAA3D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI8zrB,IAAI,GAAGrQ,UAAU,EAArB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIsQ,SAAS,GAAGtQ,UAAU,CAAC,IAAD,CAA1B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAShtS,QAAT,CAAkBz2Y,KAAlB,EAAyB;AACvB,aAAOA,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6oqB,QAAT,CAAkBrtlB,IAAlB,EAAwB;AACtB,aAAO4/lB,YAAY,CAAC,OAAO5/lB,IAAP,IAAe,UAAf,GAA4BA,IAA5B,GAAmCg6lB,SAAS,CAACh6lB,IAAD,EAAO4ilB,eAAP,CAA7C,CAAnB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASnilB,OAAT,CAAiB1xB,MAAjB,EAAyB;AACvB,aAAO+wnB,WAAW,CAAC9F,SAAS,CAACjrnB,MAAD,EAAS6zmB,eAAT,CAAV,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS41B,eAAT,CAAyBnsrB,IAAzB,EAA+BgzqB,QAA/B,EAAyC;AACvC,aAAOQ,mBAAmB,CAACxzqB,IAAD,EAAO2tqB,SAAS,CAACqF,QAAD,EAAWzc,eAAX,CAAhB,CAA1B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIx1pB,MAAM,GAAGg1qB,QAAQ,CAAC,UAAS/1qB,IAAT,EAAehF,IAAf,EAAqB;AACzC,aAAO,UAASiwE,MAAT,EAAiB;AACtB,eAAOsmmB,UAAU,CAACtmmB,MAAD,EAASjrE,IAAT,EAAehF,IAAf,CAAjB;AACD,OAFD;AAGD,KAJoB,CAArB;AAMA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIoxrB,QAAQ,GAAGrW,QAAQ,CAAC,UAAS9qmB,MAAT,EAAiBjwE,IAAjB,EAAuB;AAC7C,aAAO,UAASgF,IA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIymlB,IAAI,GAAGtP,UAAU,CAACvb,QAAD,CAArB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI8qB,SAAS,GAAGvP,UAAU,CAAC7b,UAAD,CAA1B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIqrB,QAAQ,GAAGxP,UAAU,CAAClb,SAAD,CAAzB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASpwlB,QAAT,CAAkB1xE,IAAlB,EAAwB;AACtB,aAAOo0qB,KAAK,CAACp0qB,IAAD,CAAL,GAAcgiqB,YAAY,CAACsO,KAAK,CAACtwqB,IAAD,CAAN,CAA1B,GAA0Cy1qB,gBAAgB,CAACz1qB,IAAD,CAAjE;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASysrB,UAAT,CAAoBxhnB,MAApB,EAA4B;AAC1B,aAAO,UAASjrE,IAAT,EAAe;AACpB,eAAOirE,MAAM,IAAI,IAAV,GAAiB1vE,SAAjB,GAA6B60qB,OAAO,CAACnlmB,MAAD,EAASjrE,IAAT,CAA3C;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIwJ,KAAK,GAAG8zqB,WAAW,EAAvB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIoP,UAAU,GAAGpP,WAAW,CAAC,IAAD,CAA5B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASgC,SAAT,GAAqB;AACnB,aAAO,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASO,SAAT,GAAqB;AACnB,aAAO,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8M,UAAT,GAAsB;AACpB,aAAO,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,UAAT,GAAsB;AACpB,aAAO,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,QAAT,GAAoB;AAClB,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASn2H,KAAT,CAAe7wd,CAAf,EAAkBm7jB,QAAlB,EAA4B;AAC1Bn7jB,MAAAA,CAAC,GAAG6pkB,SAAS,CAAC7pkB,CAAD,CAAb;;AACA,UAAIA,CAAC,GAAG,CAAJ,IAASA,CAAC,GAAG2qB,gBAAjB,EAAmC;AACjC,eAAO,EAAP;AACD;;AACD,UAAIj4E,KAAK,GAAGy/mB,gBAAZ;AAAA,UACI19pB,MAAM,GAAG0sqB,SAAS,CAACnhkB,CAAD,EAAImyjB,gBAAJ,CADtB;AAGAgJ,MAAAA,QAAQ,GAAGmU,WAAW,CAACnU,QAAD,CAAtB;AACAn7jB,MAAAA,CAAC,IAAImyjB,gBAAL;AAEA,UAAI10nB,MAAM,GAAG2/nB,SAAS,CAAC3oqB,MAAD,EAAS0mqB,QAAT,CAAtB;;AACA,aAAO,EAAEzonB,KAAF,GAAUstD,CAAjB,EAAoB;AAClBm7jB,QAAAA,QAAQ,CAACzonB,KAAD,CAAR;AACD;;AACD,aAAOjV,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwppB,MAAT,CAAgB30rB,KAAhB,EAAuB;AACrB,UAAIy4E,OAAO,CAACz4E,KAAD,CAAX,EAAoB;AAClB,eAAOspqB,QAAQ,CAACtpqB,KAAD,EAAQm4qB,KAAR,CAAf;AACD;;AACD,aAAOd,QAAQ,CAACr3qB,KAAD,CAAR,GAAkB,CAACA,KAAD,CAAlB,GAA4BkxqB,SAAS,CAAC/mH,YAAY,CAACzgjB,QAAQ,CAAC1J,KAAD,CAAT,CAAb,CAA5C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+5H,QAAT,CAAkBnmH,MAAlB,EAA0B;AACxB,UAAI3G,EAAE,GAAG,EAAEggqB,SAAX;AACA,aAAOvjqB,QAAQ,CAACkK,MAAD,CAAR,GAAmB3G,EAA1B;AACD;AAED;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIykC,GAAG,GAAGkzoB,mBAAmB,CAAC,UAASgQ,MAAT,EAAiBC,MAAjB,EAAyB;AACrD,aAAOD,MAAM,GAAGC,MAAhB;AACD,KAF4B,EAE1B,CAF0B,CAA7B;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI3ijB,IAAI,GAAG0ziB,WAAW,CAAC,MAAD,CAAtB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIkP,MAAM,GAAGlQ,mBAAmB,CAAC,UAASmQ,QAAT,EAAmBC,OAAnB,EAA4B;AAC3D,aAAOD,QAAQ,GAAGC,OAAlB;AACD,KAF+B,EAE7B,CAF6B,CAAhC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI7joB,KAAK,GAAGy0nB,WAAW,CAAC,OAAD,CAAvB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS1soB,GAAT,CAAam9C,KAAb,EAAoB;AAClB,aAAQA,KAAK,IAAIA,KAAK,CAACl0F,MAAhB,GACHi1qB,YAAY,CAAC/glB,KAAD,EAAQogT,QAAR,EAAkBgiS,MAAlB,CADT,GAEHr1qB,SAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6xrB,KAAT,CAAe5+lB,KAAf,EAAsBwykB,QAAtB,EAAgC;AAC9B,aAAQxykB,KAAK,IAAIA,KAAK,CAACl0F,MAAhB,GACHi1qB,YAAY,CAAC/glB,KAAD,EAAQ2mlB,WAAW,CAACnU,QAAD,EAAW,CAAX,CAAnB,EAAkC4P,MAAlC,CADT,GAEHr1qB,SAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo0c,IAAT,CAAcnhX,KAAd,EAAqB;AACnB,aAAOm0kB,QAAQ,CAACn0kB,KAAD,EAAQogT,QAAR,CAAf;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy+S,MAAT,CAAgB7+lB,KAAhB,EAAuBwykB,QAAvB,EAAiC;AAC/B,aAAO2B,QAAQ,CAACn0kB,KAAD,EAAQ2mlB,WAAW,CAACnU,QAAD,EAAW,CAAX,CAAnB,CAAf;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASx9mB,GAAT,CAAagrC,KAAb,EAAoB;AAClB,aAAQA,KAAK,IAAIA,KAAK,CAACl0F,MAAhB,GACHi1qB,YAAY,CAAC/glB,KAAD,EAAQogT,QAAR,EAAkBmlS,MAAlB,CADT,GAEHx4qB,SAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+xrB,KAAT,CAAe9+lB,KAAf,EAAsBwykB,QAAtB,EAAgC;AAC9B,aAAQxykB,KAAK,IAAIA,KAAK,CAACl0F,MAAhB,GACHi1qB,YAAY,CAAC/glB,KAAD,EAAQ2mlB,WAAW,CAACnU,QAAD,EAAW,CAAX,CAAnB,EAAkC+S,MAAlC,CADT,GAEHx4qB,SAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIkyY,QAAQ,GAAGsvS,mBAAmB,CAAC,UAAStrd,UAAT,EAAqB87d,YAArB,EAAmC;AACpE,aAAO97d,UAAU,GAAG87d,YAApB;AACD,KAFiC,EAE/B,CAF+B,CAAlC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIt3kB,KAAK,GAAG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;AACA;;AACA4rf,IAAAA,mCAAO,YAAW;AAChB,aAAO5rf,CAAP;AACD,KAFK;AAAA,kGAAN;AAGD,GAZD,CAaA;AAbA,OAcK,EASJ;AACF,CAhzhBC,EAgzhBAypD,IAhzhBA,CAgzhBK,IAhzhBL,CAAD;;;;;;;;;;;ACRY;;AAEb,8CAA6C,EAAE,aAAa,EAAC;;AAE7D;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2EAA2E;AAC3E;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,SAAS;;AAElD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;AAEF;AACA,yGAAyG,uEAAuE;;AAEhL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;AAEF;AACA,0CAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM,iBAAiB,MAAM,eAAe,MAAM;;AAE/E;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uEAAuE,4BAA4B;AACnG;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;;AAE/B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qJAAqJ;AACrJ,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA,oDAAoD,IAAI;;AAExD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,sCAAsC,IAAI,SAAS,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,gDAAgD,oFAAoF;AACpI;AACA;AACA,MAAM,2EAA2E;AACjF,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qEAAqE;;;AAGrE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,0EAA0E;;AAE1E;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA,kFAAkF,wBAAwB;AAC1G;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,aAAa;AACtF;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,+EAA+E,eAAe;AAC9F;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK,KAAK;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iGAAiG,eAAe;AAChH;AACA;;AAEA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yEAAyE,eAAe;AACxF;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA,+DAA+D,IAAI;AACnE;AACA;AACA,2BAA2B,EAAE,IAAI,EAAE;AACnC,wBAAwB,EAAE;AAC1B,2BAA2B,EAAE,OAAO,EAAE;AACtC;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA,YAAY;AACZ,EAAE;;;AAGF,mCAAmC,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,iBAAiB,IAAI,aAAa,IAAI,aAAa,IAAI,cAAc,IAAI;;AAEnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF,yDAAyD,IAAI,0DAA0D,IAAI;;AAE3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;;AAGF,4GAA4G,EAAE;AAC9G;AACA,kIAAkI,EAAE;;AAEpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,mBAAmB;;AAEpB;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,+BAA+B;AACjF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,4VAA4V,0BAA0B,qBAAqB;AAC3Y;AACA;AACA;AACA,6CAA6C,0BAA0B,GAAG,0BAA0B,MAAM,uBAAuB;AACjI,8BAA8B,qBAAqB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,6BAA6B;AACvO,6BAA6B,uBAAuB,KAAK,gCAAgC;AACzF,qEAAqE,oBAAoB,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,2BAA2B,GAAG,uBAAuB,OAAO,sBAAsB;AACxP,yEAAyE,kBAAkB,GAAG,qBAAqB,GAAG,wBAAwB,OAAO;AACrJ;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;;;AAGA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wIAAwI;AACxI;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,uEAAuE;AACvE,0DAA0D;AAC1D,0DAA0D;AAC1D,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,wBAAwB;AAC9G,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,oCAAoC,+BAA+B;AACnE,oCAAoC,+BAA+B;AACnE,oCAAoC,+BAA+B;AACnE,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC,kCAAkC;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,oCAAoC,+BAA+B,oBAAoB;AACvF,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D,oCAAoC,wBAAwB;AAC5D,oCAAoC,WAAW;AAC/C,oCAAoC,YAAY;AAChD,oCAAoC,iBAAiB;AACrD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+EAA+E,4BAA4B;AAC3G;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,oCAAoC,uBAAuB,6BAA6B;AACxF,oCAAoC,uBAAuB,qDAAqD;AAChH,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA,8DAA8D,0BAA0B;AACxF;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,QAAQ;AACrB,mCAAmC,kBAAkB;AACrD,mCAAmC,kBAAkB;AACrD,mCAAmC,kBAAkB;AACrD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,wBAAwB,aAAa;AACrC,wBAAwB,uBAAuB;AAC/C,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD,cAAc;AACd;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,mCAAmC,SAAS;AAC5C,mCAAmC,SAAS;AAC5C,mCAAmC,UAAU;AAC7C,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB,gCAAgC;AAC1F,oCAAoC,yBAAyB,gCAAgC;AAC7F,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oCAAoC,uBAAuB,uDAAuD;AAClH,cAAc;AACd;AACA;;AAEA;AACA,yEAAyE,aAAa;AACtF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL,kBAAkB;AAClB,wBAAwB;AACxB;AACA;AACA;;AAEA,iFAAiF,8BAA8B;AAC/G;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA,UAAU;;AAEV,QAAQ;AACR;AACA;AACA,MAAM;AACN;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oCAAoC,uBAAuB,6BAA6B;AACxF,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA,gEAAgE,4BAA4B;AAC5F;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iFAAiF,8BAA8B;AAC/G;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,yFAAyF,eAAe;AACxG;AACA;AACA;AACA,8CAA8C,oBAAoB,GAAG,YAAY,GAAG,aAAa,MAAM,cAAc;AACrH,wBAAwB,aAAa,KAAK,WAAW;AACrD,qDAAqD,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,MAAM,eAAe;AAC1J,wEAAwE,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,oBAAoB,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,mBAAmB,MAAM,iBAAiB;AACnO,kEAAkE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG;AAC1I,yEAAyE,eAAe,GAAG,YAAY,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,OAAO,iBAAiB;AACvL;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,aAAa,wBAAwB;AACrC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,aAAa,wBAAwB;AACrC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ,0BAA0B,wBAAwB,gBAAgB;AACvF;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;;AAEA,6EAA6E,aAAa;AAC1F;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL,sEAAsE,4BAA4B;AAClG;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;;AAEA;AACA;;AAEA,gFAAgF,eAAe;AAC/F;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,4BAA4B;AACjD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,4BAA4B;AACjD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,iFAAiF,yBAAyB;AAC/H,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,8EAA8E;AAC9E,oFAAoF;AACpF,kGAAkG;AAClG,6GAA6G;AAC7G,uFAAuF;AACvF,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA,wFAAwF,UAAU;AAClG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD,uCAAuC,cAAc;AACrD,oCAAoC,2BAA2B;AAC/D,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,uCAAuC,iBAAiB;AACxD,uCAAuC,cAAc;AACrD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,+BAA+B,cAAc;AAC7C,cAAc;AACd;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kCAAkC,cAAc;AAChD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gDAAgD;;AAEhD;AACA;;AAEA,gDAAgD;AAChD;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,iDAAiD;AACjD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA,8BAA8B,EAAE;AAChC,gCAAgC,EAAE;AAClC,+BAA+B,EAAE;AACjC,8BAA8B,EAAE;AAChC,mCAAmC,IAAI;AACvC,qCAAqC,IAAI;AACzC,mCAAmC,IAAI;AACvC,oCAAoC,IAAI;AACxC,oCAAoC,IAAI;AACxC,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,MAAM;;AAEvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,GAAG;AACH,EAAE;AACF;;;AAGA;AACA;AACA,0CAA0C;;AAE1C,gCAAgC;;AAEhC;AACA;AACA,IAAI;;;AAGJ,oCAAoC;;AAEpC;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB;;AAEvB;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,0FAA0F;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;;;AAGA;AACA;AACA,+EAA+E,4BAA4B;AAC3G;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,QAAQ;AACR,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6EAA6E,8BAA8B;AAC3G;AACA;;AAEA;AACA;AA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AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,gFAAgF,eAAe;AAC/F,4DAA4D,6BAA6B;AACzF;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,aAAa,QAAQ;AACrB,uDAAuD;AACvD,qDAAqD;AACrD,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,oBAAoB,cAAc;AAClC,aAAa,QAAQ;AACrB,aAAa,QAAQ,QAAQ;AAC7B,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wMAAwM,WAAW,uBAAuB,eAAe,KAAK,aAAa;AAC3Q,aAAa,aAAa,iOAAiO,YAAY;AACvQ,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,wDAAwD,iBAAiB;AACzE,cAAc;AACd;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,8CAA8C,6BAA6B,mBAAmB,KAAK,cAAc;AACjH,aAAa,QAAQ;AACrB,uBAAuB,YAAY;AACnC,uBAAuB,qBAAqB;AAC5C,uBAAuB,YAAY;AACnC,uBAAuB,0BAA0B;AACjD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wOAAwO,WAAW,kDAAkD,SAAS;AAC9S,aAAa,wBAAwB;AACrC;AACA,sCAAsC,aAAa;AACnD,sCAAsC,SAAS;AAC/C,sCAAsC,UAAU;AAChD,sCAAsC,uBAAuB;AAC7D,0DAA0D,uBAAuB;AACjF,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa,wBAAwB;AACrC,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,uEAAuE;AACvE,sEAAsE;AACtE,4EAA4E;AAC5E,6EAA6E;AAC7E,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,iEAAiE;AACjE,gEAAgE;AAChE,sEAAsE;AACtE,uEAAuE;AACvE,cAAc;AACd;AACA;;AAEA;AACA;;AAEA,oDAAoD;AACpD,IAAI;;AAEJ;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,yDAAyD,cAAc;AACvE;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,iDAAiD;AACjD,oEAAoE;AACpE,gDAAgD,iBAAiB,GAAG;AACpE,mEAAmE;AACnE,qEAAqE;AACrE,wEAAwE;AACxE,gDAAgD,gDAAgD,GAAG;AACnG,gDAAgD,sFAAsF,GAAG;AACzI,gDAAgD,mDAAmD,GAAG;AACtG,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,gDAAgD;AAChD,gDAAgD,0BAA0B;AAC1E,gDAAgD,6BAA6B;AAC7E,gDAAgD,4BAA4B;AAC5E,gDAAgD,6BAA6B;AAC7E,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA,uCAAuC,sBAAsB;AAC7D,uCAAuC,iBAAiB;AACxD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,oDAAoD,iBAAiB;AACrE,cAAc;AACd;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,mCAAmC,qBAAqB;AACxD,mCAAmC,kDAAkD,cAAc,uBAAuB;AAC1H,mCAAmC,qBAAqB,cAAc,iBAAiB;AACvF,cAAc;AACd;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA;AACA,uCAAuC,sBAAsB;AAC7D,uCAAuC,oBAAoB;AAC3D,cAAc;AACd;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA;AACA,kDAAkD,sBAAsB;AACxE,kDAAkD,mBAAmB;AACrE,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,iDAAiD;AACjD,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,aAAa,UAAU;AACvB,aAAa,iBAAiB;AAC9B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,mCAAmC;AACnC,4CAA4C;AAC5C,uDAAuD;AACvD,gEAAgE;AAChE,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa,iBAAiB;AAC9B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,wDAAwD;AACxD,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ,oCAAoC;AACzD,aAAa,SAAS;AACtB,aAAa,SAAS,sJAAsJ,cAAc;AAC1L,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,sCAAsC,SAAS;AAC/C,4DAA4D,SAAS;AACrE,sCAAsC,SAAS,eAAe,cAAc;AAC5E,uCAAuC,SAAS;AAChD,uCAAuC,SAAS,eAAe,eAAe;AAC9E,uCAAuC,WAAW,eAAe,cAAc;AAC/E;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ,oCAAoC;AACzD,aAAa,QAAQ;AACrB,sCAAsC,SAAS;AAC/C,sDAAsD,SAAS;AAC/D,sCAAsC,SAAS,uBAAuB,cAAc;AACpF,uCAAuC,SAAS;AAChD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,aAAa;AAC1B,cAAc,UAAU;AACxB;AACA;;AAEA;AACA,6EAA6E,aAAa;AAC1F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,aAAa;AAC1B,cAAc,UAAU;AACxB;AACA;;AAEA;AACA,gFAAgF,eAAe;AAC/F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL,IAAI;;AAEJ;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA,MAAM,sBAAsB;AAC5B,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA,gBAAgB;AAChB,gBAAgB;AAChB,uBAAuB;AACvB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB;AAChB,mBAAmB;AACnB,iBAAiB;AACjB,gBAAgB;AAChB,YAAY;;;;;;;;;;;AC9jQZ;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,eAAe;AACf,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvMD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9LD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9JD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrND;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ND;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iCAAiC;AACjC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACnGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,sBAAsB;;AAEvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,YAAY;AACvD;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,2BAAe,IAAW,OAAO,CAAC;AAClD;AACA,cAAc;AACd;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;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AAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,CAAC,qDAAQ;AAC5E;;AAEA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;;AAE7B;AACA;AACA;AACA;AACA,CAAC,gCAAgC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA,eAAe,sDAAmB,mBAAmB,yBAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,6DAA6D,EAAE,uDAAoB,IAAI,8EAA8E;AACrK;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6CAA6C;AAC7C,gBAAgB,2EAA2E;AAC3F;AACA,2CAA2C,EAAE,uDAAoB,IAAI,WAAW;AAChF;AACA,0CAA0C,4DAA4D;AACtG,eAAe,sDAAmB;AAClC;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA,8CAA8C,SAAS,mCAAmC,WAAW;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,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAe;AAC9C,iCAAiC,iDAAe;AAChD,iCAAiC,iDAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK,GAAG,QAAQ,EAAE,OAAO;AACjD,8CAA8C,QAAQ;AACtD;AACA;AACA,0DAA0D,QAAQ;AAClE,YAAY,sDAAmB;AAC/B;AACA;AACA,wCAAwC,kBAAkB,wCAAwC;AAClG,0CAA0C,oBAAoB,gCAAgC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,sCAAsC;AACtC;AACA;AACA;AACA,uFAAuF;AACvF,mDAAmD,gEAAyB,GAAG,6DAA6D,8CAA8C,sBAAsB;AAChN,+CAA+C,oEAAkB,GAAG,2DAA2D,4CAA4C,2DAA2D;AACtO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,yDAAc;AACtC;AACA;AACA,CAAC;AACD,6BAA6B,yDAAc;AAC3C;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yCAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAW,GAAG,+BAA+B;AAC/D;AACA,kBAAkB,2DAAW,GAAG,+BAA+B;AAC/D;AACA,kBAAkB,2DAAW,GAAG,+BAA+B;AAC/D,gDAAgD,yDAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;A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O;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAAK,sEAAsE,uDAAM;AACzF,kBAAkB,yDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,qCAAqC,+DAAwB;AACjO,oDAAoD,+DAAwB,GAAG,0FAA0F,qgBAAqgB,aAAa,kHAAkH,4FAA4F,oBAAoB;AAC75B;AACA,MAAM,yCAAyC;AAC/C,MAAM;AACN;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;;AAEA;AACA;AACA;AACA,+GAA+G;AAC/G,8DAA8D,+DAAwB,GAAG,0GAA0G;;AAEnM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG,0DAA0D,+DAAwB,GAAG,+LAA+L;AACpR,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,yDAAyD,2zBAA2zB;AACv4B,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,mGAAmG,0BAA0B;AACtJ,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,iDAAW,gEAAgE,aAAa,uBAAuB,mBAAmB,YAAY,6BAA6B,kBAAkB,kBAAkB,YAAY,UAAU,yBAAyB,sBAAsB,qBAAqB,iBAAiB,gCAAgC,eAAe,yDAAyD,iCAAiC,IAAI;AAC7d,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,2DAAY,6CAA6C,cAAc;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0CAA0C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0CAA0C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,0CAA0C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,0CAA0C;AACvG;AACA;AACA;AACA;AACA;AACA,sEAAsE,0CAA0C;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB;AAChL,yCAAyC,+DAAwB,GAAG,mJAAmJ;AACvN,QAAQ,wDAAiB,4EAA4E,8CAA8C,mEAAmE,yBAAyB,2EAA2E,6BAA6B;AACvV,MAAM;AACN,QAAQ,4DAAqB;AAC7B,OAAO,YAAY,2JAA2J,aAAa,gEAAyB;AACpN;AACA,yBAAyB,8DAAiB;AAC1C;AACA;AACA;AACA,YAAY,kEAA2B,GAAG;AAC1C;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,6BAA6B,MAAM,iDAAM,wBAAwB;AACvE;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB;AACA,8CAA8C,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sBAAsB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,sDAAsD,+DAAw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ACA;AACA;AACA,gEAAgE,qBAAqB;AACrF;AACA;AACA;AACA;AACA,oDAAoD,qBAAqB;AACzE;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,qDAAQ;AACtL,wCAAwC,+DAAwB,GAAG,kFAAkF,yDAAyD,aAAa,kEAA2B,GAAG;AACzP;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,gCAAgC,MAAM,mDAAQ,EAAE,IAAI,MAAM,iDAAM,SAAS,qDAAQ,IAAI;AAC3F;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,qBAAqB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,CAAC,qDAAQ;AACpF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA,gCAAgC,yCAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0CAA0C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0CAA0C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oDAAG,qDAAqD,oDAAG,0CAA0C,oDAAG;AACtK,kEAAkE,oDAAG,0CAA0C,oDAAG;AAClH;AACA,uDAAuD,qEAAoB,IAAI,oDAAG,oCAAoC,oDAAG,yEAAyE,yDAAS;AAC3M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,0CAA0C;AAC1C;AACA;AACA,iEAAiE,0CAA0C;AAC3G;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,0CAA0C;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,gCAAgC,+DAAwB;AACnN,iDAAiD,+DAAwB,GAAG,oFAAoF,oSAAoS,aAAa,4BAA4B,aAAa,gEAAyB;AACnhB;AACA;AACA,yBAAyB,8DAAiB;AAC1C;AACA;AACA;AACA,ujDAAujD;AACvjD,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,2HAA2H,gCAAgC;AACpL,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,2HAA2H,kCAAkC;AACtL,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,+GAA+G,+BAA+B;AACvK,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB,wFAAwF,oEAA6B;AAC9I,MAAM;AACN;AACA;AACA,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,yCAAyC,yDAAkB;AACpF,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,0CAA0C,yDAAkB;AACrF,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,oDAAc,qCAAqC,iDAAW,wHAAwH,6DAAuB,oCAAoC,uBAAuB,QAAQ,sDAAgB,IAAI,+CAA+C,aAAa,mBAAmB,YAAY,wCAAwC,6CAA6C,2BAA2B,oBAAoB,+CAA+C,iBAAiB,mDAAmD,QAAQ,oDAAoD,QAAQ,mDAAmD,QAAQ,+FAA+F,QAAQ,iDAAiD,QAAQ,wBAAwB;AACx9B;AACA,MAAM,oCAAoC;AAC1C,MAAM,6BAA6B,MAAM,iDAAM,wBAAwB;AACvE;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,8DAA8D,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAC5F;;AAEA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;ACnHa;;AAEb,eAAe,iDAAyB;AACxC;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;;AAEb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChYa;;AAEb,YAAY,oDAA2B;AACvC,YAAY,yDAAgC;AAC5C,YAAY,oDAA2B;AACvC,eAAe,iDAAyB;;AAExC;AACA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,YAAY;;;;;;;;;;;;;AClHC;;AAEb,2CAA2C;AAC3C;;AAEA;AACA;AACA;;AAEA,IAAI,IAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;;;;;;;;;;ACzBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;ACjCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC/Da;;AAEb,cAAc,GAAG,0DAAmC;AACpD,cAAc,GAAG,8DAAuC;;;;;;;;;;;ACHxD,UAAU,mBAAO,CAAC,4BAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA,cAAc;AACd,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC1EA,qGAAqG,qBAAqB,mBAAmB;;AAE7I,oDAAoD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,iCAAiC;;AAExM;AACoB;;AAE7C;AACf;;AAEA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,iDAAS;AACnC,yEAAyE;AACzE;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,qEAAkB,uBAAuB,qEAAkB,yCAAyC,kCAAkC;AAC9I,4CAA4C;;AAE5C;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;AC7EO;AACA;;;;;;;;;;;;;;;;;;;;ACDP;AACA;AACA;AACA;AAEe,SAASs6mB,eAAT,CAAyBr6L,KAAzB,EAAgCv5f,MAAhC,EAAwC;AACrD;AACA,MAAI65C,UAAU,GAAG75C,MAAM,CAACkuV,SAAP,KAAqB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L,KAAgB,MAApB,EAA4B;AAC1B;AACA;AACA,aAAK6kE,GAAL,GAAWrqE,SAAX;AACD;;AAED,aAAO46rB,gBAAP;AACD;AArMiB,GAApB,CAlgBgC,CA0sBhC;AACA;AACA;AACA;;AACA,SAAOj+rB,OAAP;AAED,CAhtBc,EAitBb;AACA;AACA;AACA;AACA,QAA6B0nF,MAAM,CAAC1nF,OAApC,GAA8C,CArtBjC,CAAf;;AAwtBA,IAAI;AACF6gsB,EAAAA,kBAAkB,GAAGl3pB,OAArB;AACD,CAFD,CAEE,OAAOm3pB,oBAAP,EAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,OAAOpvnB,UAAP,KAAsB,QAA1B,EAAoC;AAClCA,IAAAA,UAAU,CAACmvnB,kBAAX,GAAgCl3pB,OAAhC;AACD,GAFD,MAEO;AACLszR,IAAAA,QAAQ,CAAC,GAAD,EAAM,wBAAN,CAAR,CAAwCtzR,OAAxC;AACD;AACF;;;;;;;;;;ACjvBD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,IAAI,SAAS,IAAI,SAAS,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2BAA2B,IAAI,SAAS,IAAI,SAAS,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,oDAAoD;AACpD,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;;;;AC7SoC;AAC7B,8BAA8B,6CAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzBO;AACA;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACb0D;AACV;AACsB;AAC1B;AACV;AACa;AACI;AAC5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,uDAAc;AAC7F,QAAQ,gEAAY;AACpB,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uDAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK,0DAAiB;AACtB;AACA;AACA;AACA,eAAe,yDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,mDAAc;AAC9F;AACA;AACA,oBAAoB,4DAAU,gBAAgB,4DAAU,iBAAiB,4DAAU;AACnF;AACA;AACA,sCAAsC,mDAAU,2BAA2B,6DAAc;AACzF;;;;;;;;;;;;;;;;;;AC3FoC;AACsC;AACnE,4BAA4B,6CAAO;AAC1C,qFAAqF,mFAAqB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2EAA2E;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAgE;AAChF;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChD0E;AACnE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uFAAyB;;;;;;;;;;;;;;;;;;;;;;ACVC;AACwB;AACO;AAC5B;AACM;AAC5C,sBAAsB,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA,QAAQ,gEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,gEAAY;AACpB;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,gEAAY;AACpB;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA,mBAAmB,6DAAkB;AACrC;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA,YAAY,0DAAS;AACrB,SAAS;AACT;AACA;AACA,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wIAAwI,6DAAkB;AAC1J;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACpI+C;AACe;AAC5B;AACiC;AAChC;AACkE;AACvC;AACX;AAC5C,yBAAyB,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA,gBAAgB,6DAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wEAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yEAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yEAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iFAA4C;AACpD,QAAQ,gEAAY;AACpB;AACA;AACA,QAAQ,gFAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAwB,EAAE,2CAAM;AAC5C,6BAA6B,kFAA0B;AACvD;AACO;AACP;AACA,UAAU,4CAAI;AACd;AACA,cAAc,4CAAI;AAClB;;;;;;;;;;;;;;;;;;;;;AC5K+C;AACkB;AACpB;AACtC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD,gBAAgB,4DAAU;AAC1B;AACA;AACA;AACA;AACA,0CAA0C,0EAAmB;AAC7D;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0EAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0EAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,YAAY,0DAAS;AACrB;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,uBAAuB,0DAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACA;AACP;AACA,uCAAuC,4DAAU,kBAAkB,4DAAU,eAAe,4DAAU;AACtG;AACA;AACA,QAAQ,4DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrHO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACN+C;AACD;AACvC;AACP;AACA;AACA,+BAA+B,uDAAc;AAC7C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wDAAU;AACzC;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;ACtB2C;AACI;AACyB;AACG;AACpC;AAChC,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uDAAY;AAC5D;AACA,iDAAiD,uFAAwB;AACzE;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,6BAA6B,6DAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAmB;AAClC;AACA;;;;;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AAsC;AAClCH,MAAAA,SAAS,GAAGG,mBAAZ;AACH,KAFD,MAGK;AACDC,MAAAA,gBAAgB,GAAGD,mBAAnB;AACH;AACJ;;AACD,SAAO,IAAI51S,mDAAJ,CAAgBm1S,UAAD,IAAgB;AAClC,QAAIW,GAAG,GAAGz3hB,yDAAW,CAACs3hB,OAAD,CAAX,GAAuB,CAACA,OAAD,GAAWF,SAAS,CAACzopB,GAAV,EAAlC,GAAoD2opB,OAA9D;;AACA,QAAIG,GAAG,GAAG,CAAV,EAAa;AACTA,MAAAA,GAAG,GAAG,CAAN;AACH;;AACD,QAAIh1lB,CAAC,GAAG,CAAR;AACA,WAAO20lB,SAAS,CAAC1te,QAAV,CAAmB,YAAY;AAClC,UAAI,CAACote,UAAU,CAACpwK,MAAhB,EAAwB;AACpBowK,QAAAA,UAAU,CAAC/wpB,IAAX,CAAgB08D,CAAC,EAAjB;;AACA,YAAI,KAAK+0lB,gBAAT,EAA2B;AACvB,eAAK9te,QAAL,CAAcvxN,SAAd,EAAyBq/rB,gBAAzB;AACH,SAFD,MAGK;AACDV,UAAAA,UAAU,CAAC33nB,QAAX;AACH;AACJ;AACJ,KAVM,EAUJs4nB,GAVI,CAAP;AAWH,GAjBM,CAAP;AAkBH;;;;;;;;;;;;;;;;;AChC0C;AACpC;AACP;AACA;AACO,iCAAiC,mDAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtDuC;AACa;AACY;AACzD;AACP,WAAW,mDAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6EAAwB;AACjD;AACA;AACA;AACA,gBAAgB,gEAA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ACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qBAAqB,6EAAwB;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACxD4B;AACwB;AACb;AACW;AACF;AACzC;AACP,QAAQ,4DAAU;AAClB,kCAAkC,yCAAG,yCAAyC,gEAAS;AACvF;AACA;AACA;AACA;AACA,WAAW,mDAAO,yBAAyB,+DAAc;AACzD;;;;;;;;;;;;;;;;;;;ACb0D;AACnB;AACyB;AACzD;AACP,WAAW,mDAAO;AAClB,yBAAyB,6EAAwB,wBAAwB,sEAAe,oEAAoE,sEAAe,sEAAsE,sEAAe;AAChQ,KAAK;AACL;;;;;;;;;;;;;;;;;;ACPuC;AACyB;AACzD;AACP,WAAW,mDAAO;AAClB;AACA;AACA,yBAAyB,6EAAwB;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;ACbgD;AACT;AAChC;AACP,WAAW,mDAAO,CAAC,6DAAa;AAChC;;;;;;;;;;;;;;;;;;ACJuC;AACyB;AACzD;AACP,WAAW,mDAAO;AAClB;AACA;AACA,2BAA2B,6EAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;ACxBuC;AACS;AACzC;AACP,WAAW,mDAAO,CAAC,6DAAa;AAChC;;;;;;;;;;;;;;;;;ACJgE;AACzD;AACP;AACA;AACA;AACA;AACA,yBAAyB,6EAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;;;;;;;;;;;;;;;;;;;;ACpBoD;AACf;AACU;AACR;AAChC,2BAA2B;AAClC,YAAY,sBAAsB,6CAAO,8EAA8E;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC,uDAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,gEAAS;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAc;AAC3C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;AC7EiD;AACjB;AACzB;AACP;AACA;AACA;AACA,WAAW,4EAA4E;AACvF;AACA;AACA;AACA;AACA,WAAW,6CAAK;AAChB,6BAA6B,yDAAa;AAC1C;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;ACjBkC;AAC3B;AACP,WAAW,+CAAM;AACjB;;;;;;;;;;;;;;;;;;;ACH8C;AACF;AACL;AAChC;AACP,sBAAsB,wDAAY;AAClC,WAAW,mDAAO;AAClB,qBAAqB,0DAAM,8BAA8B,0DAAM;AAC/D,KAAK;AACL;;;;;;;;;;;;;;;;;ACRuC;AAChC;AACP,WAAW,mDAAO;AAClB;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;ACLoD;AACb;AACyB;AACzD;AACP,WAAW,mDAAO;AAClB;AACA;AACA;AACA;AACA,yBAAyB,6EAAwB;AACjD;AACA;AACA;AACA,YAAY,gEAAS,0DAA0D,6EAAwB;AACvG;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;ACtB4C;AACL;AACyB;AACzD;AACP;AACA;AACA,kBAAkB,oDAAK;AACvB,UAAU,mDAAO;AACjB;AACA,6BAA6B,6EAAwB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT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mBAAmB,uEAAkB;AACrC;AACA,YAAY,8DAAW;AACvB,mBAAmB,6DAAa;AAChC;AACA,YAAY,0DAAS;AACrB,mBAAmB,iEAAe;AAClC;AACA,YAAY,sEAAe;AAC3B,mBAAmB,6EAAqB;AACxC;AACA,YAAY,4DAAU;AACtB,mBAAmB,mEAAgB;AACnC;AACA,YAAY,iFAAoB;AAChC,mBAAmB,wFAA0B;AAC7C;AACA;AACA,UAAU,+FAAgC;AAC1C;;;;;;;;;;;;;;;;;ACnC+C;AACxC,qBAAqB,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACR4C;AACsB;AAC3D,mCAAmC,qDAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iGAA4C;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gGAA2C;AACvD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzBkD;AAC3C,sCAAsC,2DAAc;AAC3D;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtB4C;AACY;AACjD,yBAAyB,qDAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,8EAA8B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gFAAgC;AAC5C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzBkD;AAC3C,4BAA4B,2DAAc;AACjD;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtBkC;AACoB;AACR;AACvC,0BAA0B,2CAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2EAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,QAAQ,6EAA8B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC,oBAAoB,UAAU;AAC9B;AACA;AACA,YAAY,0DAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7EyC;AAClC,6BAA6B,iDAAS;AAC7C,uCAAuC,qDAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC7B8D;AACM;AAC7D,oCAAoC,6EAAuB,CAAC,uEAAoB;AAChF;;;;;;;;;;;;;;;;;ACHwC;AACxC;AACP;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,uDAAY;AAC/B,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;ACzB0C;AACM;AACzC,0BAA0B,yDAAa,CAAC,mDAAU;AAClD;;;;;;;;;;;;;;;;;;;ACHP;AACA;AACO,MAAMkisB,cAAc,GAAG,IAAI8B,2DAAJ,CAAmBD,qDAAnB,CAAvB;AACA,MAAMv/mB,KAAK,GAAG09mB,cAAd;;;;;;;;;;;;;;;ACHA;AACP;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACL8C;AAC9C,QAAQ,+BAA+B,EAAE,sDAAS;AAC3C;AACP;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACZO;AACP;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACbO;AACP;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACbO;AACP;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;ACNA;;;;;;;;;;;;;;;;;ACA+C;AAC/C,mBAAmB,mEAAgB;AAC1C;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACLD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5BsD;AAC/C,gCAAgC,mEAAgB;AACvD;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACLqD;AAC/C,4BAA4B,mEAAgB;AACnD;AACA;AACA,aAAa,eAAe;AAC5B,EAAE,0BAA0B,MAAM,IAAI,eAAe,gBAAgB;AACrE;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;ACTyC;AACE;AAC5C;AACA;AACA;AACO;AACP,WAAW,uDAAU;AACrB;AACO;AACP,WAAW,yDAAW;AACtB;AACO;AACP;AACA;;;;;;;;;;;;;;;;ACbA,QAAQ,UAAU;AAClB,QAAQ,wDAAwD;AACzD;AACP;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpBO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTO;AACP,kFAAkF;AAClF;;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C,OAAO9piB,IAAP,KAAgB,WAAhB,GAA8B,OAAO8B,MAAP,KAAkB,WAAlB,GAAgC,IAAhC,GAAuCA,MAArE,GAA8E9B,IAzL/E,CAAD;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,WAAW,0BAA0B;AACrC,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY;AACZ,aAAa,WAAW,KAAK;AAC7B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEwL;;;;;;;;;;;ACvjBxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAS,uDAA8B;AACvC,eAAe,mBAAO,CAAC,qBAAU;;AAEjC;AACA,kBAAkB,mBAAO,CAAC,oDAAyC;AACnE,kBAAkB,mBAAO,CAAC,oDAAyC;AACnE,gBAAgB,mBAAO,CAAC,kDAAuC;AAC/D,mBAAmB,mBAAO,CAAC,mDAA0C;AACrE,qBAAqB,mBAAO,CAAC,sDAA4C;AACzE,kBAAkB,mBAAO,CAAC,kEAAuD;AACjF,kBAAkB,mBAAO,CAAC,6DAAkD;;AAE5E;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;AChIa;;AAEb,gDAAgD,0DAA0D,2CAA2C;;AAErJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oBAAoB;;;;;;;;;;;;AC9HpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,eAAe,mBAAO,CAAC,+BAAoB;;AAE3C,eAAe,mBAAO,CAAC,+BAAoB;;AAE3C,mBAAO,CAAC,qBAAU;;AAElB;AACA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG;;AAEJ;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;;AAGA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC1ID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,8BAAqB;;AAE7C,mBAAO,CAAC,qBAAU;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb6X,MAAM,CAAC1nF,OAAP,GAAiBgxiB,QAAjB;AACA;;AAEA,IAAI6nD,MAAJ;AACA;;AAEA7nD,QAAQ,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AI,CAACY,MAAD,IAAWA,MAAM,CAACpD,WAAP,IAAsBoD,MAAM,CAACjpsB,QAA5C,EAAsD;AACpD8tC,QAAAA,MAAM,CAAChC,OAAP;AACD;AACF;AACF;AACF;;AAED,IAAI,OAAOib,MAAP,KAAkB,UAAtB,EAAkC;AAChCsof,EAAAA,QAAQ,CAACxgf,IAAT,GAAgB,UAAU6qS,QAAV,EAAoB7tT,IAApB,EAA0B;AACxC,QAAIgjB,IAAI,KAAKntD,SAAb,EAAwB;AACtBmtD,MAAAA,IAAI,GAAGrwD,mBAAO,CAAC,oCAAD,CAAd;AACD;;AAED,WAAOqwD,IAAI,CAACwgf,QAAD,EAAW31M,QAAX,EAAqB7tT,IAArB,CAAX;AACD,GAND;AAOD;;AAED,SAASmD,OAAT,CAAiB+/W,EAAjB,EAAqB3+V,CAArB,EAAwB;AACtB,OAAK,IAAI9wD,CAAC,GAAG,CAAR,EAAW43T,CAAC,GAAG63F,EAAE,CAACtuZ,MAAvB,EAA+BnB,CAAC,GAAG43T,CAAnC,EAAsC53T,CAAC,EAAvC,EAA2C;AACzC,QAAIyvZ,EAAE,CAACzvZ,CAAD,CAAF,KAAU8wD,CAAd,EAAiB,OAAO9wD,CAAP;AAClB;;AAED,SAAO,CAAC,CAAR;AACD;;;;;;;;;;;ACnmCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;;AAEA,qBAAqB,mDAA0B;AAC/C;AACA;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,6BAAkB;;AAEvC,mBAAO,CAAC,qBAAU;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA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E,GAAG,kCAAkC;;AAEvU,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,4CAA4C,KAAK,6CAA6C,6EAA6E,OAAO,iDAAiD,mFAAmF,OAAO;;AAEtgB,4CAA4C,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;;AAEpM,kDAAkD,0CAA0C;;AAE5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;;AAE/P,8DAA8D,sEAAsE,8DAA8D;;AAElM,eAAe,mBAAO,CAAC,mBAAQ;AAC/B;;AAEA,gBAAgB,mBAAO,CAAC,iBAAM;AAC9B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;;AAEN,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM;;AAEN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN,GAAG;AACH;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;ACjNY,CAAC;;AAEd;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF;AACxF;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxGA;AACA;AACa;;AAEb,iCAAiC,oFAA2D;;AAE5F;AACA;AACA;AACA;AACA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACvGA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;AACa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,yDAAgC;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,mBAAO,CAAC,4BAAiB;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,aAAa;AACtF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;AChGa;;AAEb,4BAA4B,+EAAsD;;AAElF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;;;;;;;;;;AC1BA,sEAA+C;;;;;;;;;;;ACA/C;AACA;AACA,aAAa,mBAAO,CAAC,mBAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,sDAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACvSA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;AACA;AACA,QAAQ;AACR;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;AACR;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,8GAA8G;AAC9G,oHAAoH;AACpH,iBAAiB;AACjB;AACA;AACA,kDAAkD;AAClD;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA,iBAAiB,yCAAyC;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA,kFAAkF;AAClF,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA,6CAA6C;AAC7C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC3HkC;;AAElC;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,IAAI,gDAAS;AACb;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;AACkC;;;;;;;;;;;;AC5D7D;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;AAC7C;AACA,kBAAkB,KAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,MAAM;AACN,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB,0CAA0C,qBAAqB;;AAE/D;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;;AAEvD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,iBAAiB;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAmB;AACrB;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,EAUN;;AAEF,CAAC;;;;;;;;;;;;ACjhBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B,aAAa;AACb,eAAe;AACf,qBAAqB;AACrB,cAAc;;AAEd,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAK;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,mBAAO,CAAC,uBAAa;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;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;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3tBa;;AAEb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACdA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACLA;AACA;;AAEa;;AAEb,wBAAwB,mBAAO,CAAC,wBAAc;AAC9C,0BAA0B,mBAAO,CAAC,kCAAuB;AACzD,sBAAsB,mBAAO,CAAC,8BAAmB;AACjD,mBAAmB,mBAAO,CAAC,2BAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,yBAAyB;AACzB,2BAA2B;AAC3B,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;;AAGzB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;AC7UD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIhznB,yBAAyB,GAAGzzE,MAAM,CAACyzE,yBAAP,IAC9B,SAASA,yBAAT,CAAmCyF,GAAnC,EAAwC;AACtC,MAAI9sE,IAAI,GAAGpM,MAAM,CAACoM,IAAP,CAAY8sE,GAAZ,CAAX;AACA,MAAI+2nB,WAAW,GAAG,EAAlB;;AACA,OAAK,IAAI9usB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiL,IAAI,CAAC9J,MAAzB,EAAiCnB,CAAC,EAAlC,EAAsC;AACpC8usB,IAAAA,WAAW,CAAC7jsB,IAAI,CAACjL,CAAD,CAAL,CAAX,GAAuBnB,MAAM,CAACszE,wBAAP,CAAgC4F,GAAhC,EAAqC9sE,IAAI,CAACjL,CAAD,CAAzC,CAAvB;AACD;;AACD,SAAO8usB,WAAP;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A;;AAEA;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACjCA,UAAU,mBAAO,CAAC,sBAAW;AAC7B,kBAAkB,mBAAO,CAAC,8BAAmB;;AAE7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5GA,UAAU,mBAAO,CAAC,sBAAW;AAC7B,kBAAkB,mBAAO,CAAC,8BAAmB;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5Ba;;AAEb,cAAc,mBAAO,CAAC,qBAAU;AAChC,2BAA2B,mBAAO,CAAC,mCAAwB;AAC3D,gBAAgB,mBAAO,CAAC,+BAAqB;;AAE7C;AACA,qBAAqB,mBAAO,CAAC,kCAAuB;;AAEpD;AACA;;AAEA;AACA;AACA,WAAW,mBAAO,CAAC,yDAA8C;AACjE,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE;AACF;AACA;;AAEA,mBAAmB,mBAAO,CAAC,2BAAgB;;AAE3C;AACA,6BAA6B;AAC7B,0DAA0D;AAC1D;AACA;;;;;;;;;;;;;;;;;;;ACtD2C;;AAE3C,iBAAiB,uDAAa;;AAE9B,iEAAe,UAAU,EAAC;AACJ;;;;;;;;;;;ACLtB,iFAA0D;;;;;;;;;;;;ACA7C;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAkB;;AAElB,kDAAkD,0CAA0C;;AAE5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;;AAE/P,8DAA8D,sEAAsE,8DAA8D;;AAElM;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,0EAA0E;AAC1E;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA,6EAA6E,aAAa;AAC1F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+EAA+E,gEAAgE;AAC/I;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,cAAc;AAC1C;AACA;AACA;;AAEA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,kBAAkB;AAC5C;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzNA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;;AAEA,oCAAoC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACV/F;AACA;AACA;;AAEA,kCAAkC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACJ7F,uBAAuB,mBAAO,CAAC,kCAAuB;;AAEtD;AACA;AACA;;AAEA,qCAAqC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACNhG;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA,oCAAoC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACpC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA,kCAAkC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACf7F;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACNpG;AACA;AACA;;AAEA,mCAAmC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACJ9F;AACA;AACA;;AAEA,mCAAmC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACJ9F;AACA;AACA;;AAEA,qCAAqC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACJhG,mCAAmC,mBAAO,CAAC,8CAAmC;;AAE9E;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2CAA2C,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACrBtG;AACA;AACA;AACA;AACA;;AAEA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gDAAgD,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACf3G,qBAAqB,mBAAO,CAAC,+BAAqB;;AAElD,sBAAsB,mBAAO,CAAC,iCAAsB;;AAEpD,iCAAiC,mBAAO,CAAC,4CAAiC;;AAE1E,sBAAsB,mBAAO,CAAC,iCAAsB;;AAEpD;AACA;AACA;;AAEA,2BAA2B,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACZtF,wBAAwB,mBAAO,CAAC,mCAAwB;;AAExD,sBAAsB,mBAAO,CAAC,iCAAsB;;AAEpD,iCAAiC,mBAAO,CAAC,4CAAiC;;AAE1E,wBAAwB,mBAAO,CAAC,iCAAwB;;AAExD;AACA;AACA;;AAEA,qCAAqC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACZhG;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;;AAEA,0BAA0B,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACVrF,uBAAuB,mBAAO,CAAC,kCAAuB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACXzG,sEAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzNa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Ba;;AAEb,mBAAmB,mBAAO,CAAC,0BAAe;;AAE1C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,aAAa,mCAAmC;AAChD,aAAa,sCAAsC;AACnD,aAAa,wCAAwC;AACrD,aAAa,qCAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,aAAa,yBAAyB;AACtC,aAAa,2BAA2B;AACxC,aAAa,0BAA0B;AACvC;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,WAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,oBAAoB,qCAAqC;AACzD,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa,QAAQ,GAAG;AACrC,iBAAiB,OAAO;AACxB,aAAa,aAAa,MAAM,EAAE;AAClC;AACA,OAAO,UAAU,mCAAmC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C,oCAAoC,YAAY;AAChD;AACA;AACA,4CAA4C,YAAY;AACxD,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+BAA+B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AA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ACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9LwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmB;;;;;;;;;;;;;;;;;;;;;;;AC5BwB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB,8BAA8B;AAC9B,yBAAyB;AACzB,SAAS,MAAM,SAAS;AACxB,QAAQ,MAAM,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,MAAM;AACrE;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2I;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClI3I;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMM,UAAN,CAAiB;AAEjB;;;AACA,SAASC,YAAT,CAAsBh1uB,KAAtB,EAA6B;AACzB;AACA;AACA;AACA,SAAOA,KAAK,IAAI,OAAO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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,yBAAyB;AACzB,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB;AACpB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEq/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrKr/B;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkE,YAAN,CAAmB;;AAEnBA,YAAY,CAAC13C,IAAb;AAAA,mBAAyG03C,YAAzG;AAAA;;AACAA,YAAY,CAACjf,IAAb,kBAD+FvpV,8DAC/F;AAAA,QAA0GwoW;AAA1G;AACAA,YAAY,CAAChf,IAAb,kBAF+FxpV,8DAE/F;;AACA;AAAA,qDAH+FA,+DAG/F,CAA2FwoW,YAA3F,EAA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C,IAAP,KAAgB,WAAhB,IAA+B,CAAC,CAACA,IAJtC,IAKI;AACC,WAAOC,KAAP,KAAiB,WAAjB,IAAgC,CAAC,CAACA;AARvC;AASH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7XA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,SAASC,oBAAT,GAAgC;AAC5B,QAAMrowB,KAAK,CAAC,iCAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASsowB,+BAAT,GAA2C;AACvC,QAAMtowB,KAAK,CAAC,oCAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASuowB,qCAAT,GAAiD;AAC7C,QAAMvowB,KAAK,CAAC,6CAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASwowB,2BAAT,GAAuC;AACnC,QAAMxowB,KAAK,CAAC,kFACR,wCADO,CAAX;AAEH;AACD;AACA;AACA;AACA;;;AACA,SAASyowB,0BAAT,GAAsC;AAClC,QAAMzowB,KAAK,CAAC,sDAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS0owB,0BAAT,GAAsC;AAClC,QAAM1owB,KAAK,CAAC,8DAAD,CAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAM2owB,MAAN,CAAa;AACT;AACAxW,EAAAA,MAAM,CAACxgtB,IAAD,EAAO;AACT,QAAI,OAAO89pB,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;AAC/C,UAAI99pB,IAAI,IAAI,IAAZ,EAAkB;AACd82tB,QAAAA,0BAA0B;AAC7B;;AACD,UAAI92tB,IAAI,CAACi0rB,WAAL,EAAJ,EAAwB;AACpB0iC,QAAAA,+BAA+B;AAClC;AACJ;;AACD,SAAKM,aAAL,GAAqBj3tB,IAArB;AACA,WAAOA,IAAI,CAACwgtB,MAAL,CAAY,I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I,EAAE4rrB,gDAAKA;AADiB,KAAD,CAF0D;AAIrFolE,IAAAA,wBAAwB,EAAE,CAAC;AAC3BhxvB,MAAAA,IAAI,EAAE4rrB,gDAAKA;AADgB,KAAD,CAJ2D;AAMrFklE,IAAAA,gCAAgC,EAAE,CAAC;AACnC9wvB,MAAAA,IAAI,EAAE4rrB,gDAAKA;AADwB,KAAD;AANmD,GAHrG;AAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMqlE,cAAN,CAAqB;AACjBx2vB,EAAAA,WAAW,CAACmpsB,SAAD,EAAYstD,OAAZ,EAAqBzjvB,KAArB,EAA4Bi4B,KAA5B,EAAmC;AAC1C,SAAKk+pB,SAAL,GAAiBA,SAAjB;AACA,SAAKstD,OAAL,GAAeA,OAAf;AACA,SAAKzjvB,KAAL,GAAaA,KAAb;AACA,SAAKi4B,KAAL,GAAaA,KAAb;AACH;;AACQ,MAAL6iE,KAAK,GAAG;AACR,WAAO,KAAK96F,KAAL,KAAe,CAAtB;AACH;;AACO,MAAJq1C,IAAI,GAAG;AACP,WAAO,KAAKr1C,KAAL,KAAe,KAAKi4B,KAAL,GAAa,CAAnC;AACH;;AACO,MAAJyxT,IAAI,GAAG;AACP,WAAO,KAAK1pV,KAAL,GAAa,CAAb,KAAmB,CAA1B;AACH;;AACM,MAAH23tB,GAAG,GAAG;AACN,WAAO,CAAC,KAAKjuY,IAAb;AACH;;AAlBgB;AAoBrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4xvB,IAAN,CAAW;AACPn3vB,EAAAA,WAAW,CAACmuuB,cAAD,EAAiB1lC,WAAjB,EAA8B;AACrC,SAAK0lC,cAAL,GAAsBA,cAAtB;AACA,SAAKpmsB,QAAL,GAAgB,IAAIqvtB,WAAJ,EAAhB;AACA,SAAKC,gBAAL,GAAwB,IAAxB;AACA,SAAKC,gBAAL,GAAwB,IAAxB;AACA,SAAKC,YAAL,GAAoB,IAApB;AACA,SAAKC,YAAL,GAAoB,IAApB;AACA,SAAKH,gBAAL,GAAwB5uD,WAAxB;AACH;AACD;AACJ;AACA;;;AACY,MAAJgvD,IAAI,CAACvntB,SAAD,EAAY;AAChB,SAAKnI,QAAL,CAAcohqB,SAAd,GAA0B,KAAKphqB,QAAL,CAAc0vtB,IAAd,GAAqBvntB,SAA/C;;AACA,SAAKwntB,WAAL;AACH;AACD;AACJ;AACA;;;AACgB,MAARC,QAAQ,CAAClvD,WAAD,EAAc;AACtBmvD,IAAAA,cAAc,CAAC,UAAD,EAAanvD,WAAb,CAAd;AACA,SAAK4uD,gBAAL,GAAwB5uD,WAAxB;AACA,SAAK8uD,YAAL,GAAoB,IAApB,CAHsB,CAGI;;AAC1B,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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMgrE,QAAN,CAAe;AACXp8vB,EAAAA,WAAW,CAACylX,MAAD,EAAS42Y,eAAT,EAA0B;AACjC,SAAK52Y,MAAL,GAAcA,MAAd;AACA,SAAK42Y,eAAL,GAAuBA,eAAvB;AACH;;AACDjwtB,EAAAA,SAAS,CAACx5E,KAAD,EAAQilD,MAAM,GAAG,YAAjB,EAA+B6yuB,QAA/B,EAAyCjlY,MAAzC,EAAiD;AACtD,QAAI/wZ,EAAJ;;AACA,QAAI9B,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAK,EAA3B,IAAiCA,KAAK,KAAKA,KAA/C,EACI,OAAO,IAAP;;AACJ,QAAI;AACA,aAAO6jD,UAAU,CAAC7jD,KAAD,EAAQilD,MAAR,EAAgB4tW,MAAM,IAAI,KAAKA,MAA/B,EAAuC,CAAC/wZ,EAAE,GAAGg2xB,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,KAAK,CAAvC,GAA2CA,QAA3C,GAAsD,KAAK2R,eAAjE,MAAsF,IAAtF,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,GAAxC,EAA6C;AACzC,WAAKjH,OAAL,GAAgB,mCAAkConE,IAAI,CAAClhE,GAAL,IAAY,eAAgB,EAA9E;AACH,KAFD,MAGK;AACD,WAAKlG,OAAL,GAAgB,6BAA4BonE,IAAI,CAAClhE,GAAL,IAAY,eAAgB,KAAIkhE,IAAI,CAACngE,MAAO,IAAGmgE,IAAI,CAACpgE,UAAW,EAA3G;AACH;;AACD,SAAK5tC,KAAL,GAAaguG,IAAI,CAAChuG,KAAL,IAAc,IAA3B;AACH;;AAnB4C;AAsBjD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiwyB,OAAT,CAAiBlkwB,OAAjB,EAA0B1kC,IAA1B,EAAgC;AAC5B,SAAO;AACHA,IAAAA,IADG;AAEHX,IAAAA,OAAO,EAAEqlC,OAAO,CAACrlC,OAFd;AAGHP,IAAAA,OAAO,EAAE4lC,OAAO,CAAC5lC,OAHd;AAIHgxR,IAAAA,OAAO,EAAEprP,OAAO,CAACorP,OAJd;AAKHjtP,IAAAA,MAAM,EAAE6B,OAAO,CAAC7B,MALb;AAMHilwB,IAAAA,cAAc,EAAEpjwB,OAAO,CAACojwB,cANrB;AAOH3xuB,IAAAA,YAAY,EAAEzxB,OAAO,CAACyxB,YAPnB;AAQHN,IAAAA,eAAe,EAAEnxB,OAAO,CAACmxB;AARtB,GAAP;AAUH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMpB,UAAN,CAAiB;AACbhwB,EAAAA,WAAW,CAACs3kB,OAAD,EAAU;AACjB,SAAKA,OAAL,GAAeA,OAAf;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAyC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C,0BAA0B,SAAS,EAAE,8BAA8B;AACnE;AACA,0BAA0B,aAAa,iBAAiB,4BAA4B,GAAG,SAAS;AAChG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB,IAAI,MAAM;AAC7E,sGAAsG,MAAM,EAAE,QAAQ;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,0BAA0B;AACnG;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,6EAA6E,0BAA0B,OAAO,gBAAgB;AAC9H;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C,mDAAmD,UAAU,EAAE,YAAY,EAAE,QAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ,UAAU,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA,8CAA8C,6BAA6B,UAAU,sBAAsB;AAC3G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E,0GAA0G,SAAS;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E;AACA,mDAAmD,yCAAyC;AAC5F,iDAAiD,uCAAuC;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA,QAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,oCAAoC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,qCAAqC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8BAA8B;AAC3E,4CAA4C,8BAA8B;AAC1E,6CAA6C,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2CAA2C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO,2CAA2C,WAAW;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,KAAK,OAAO,IAAI,MAAM;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oCAAoC;AAC9E,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mCAAmC;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,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA,gBAAgB,8FAA8F;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qBAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mCAAmC,YAAY,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,0BAA0B;AAChH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0EAA0E;;AAElJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAkC;AAC1C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,sBAAsB,8HAA8H;AACrO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,8DAA8D;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,4HAA4H;AAC7N;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,6DAA6D;;AAEnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE,6BAA6B,cAAc,GAAG;AAC9C,uBAAuB;AACvB;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,sEAAsE,GAAG;AACzE;AACA;AACA;AACA;AACA,gFAAgF,GAAG;AACnF;AACA;AACA;AACA;AACA,yFAAyF,GAAG,6BAA6B,GAAG;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,iEAAiE;AACjE;AACA;AACA,uCAAuC,KAAK,sBAAsB,KAAK;AACvE,mBAAmB,KAAK,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAmD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,OAAO;AACvH;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,kBAAkB;AACxC;AACA,cAAc,kBAAkB,EAAE,iCAAiC,GAAG,QAAQ,KAAK,+BAA+B;AAClH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,IAAI,EAAE;AACN,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2CAA2C;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK,UAAU,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,gBAAgB;AAChB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uIAAuI;AACvI;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,+EAA+E;AAC/E,KAAK;AACL;AACA,8CAA8C;AAC9C,KAAK;AACL,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mCAAmC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA;AACA,6EAA6E,cAAc;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,KAAK;AAChE,2BAA2B,cAAc;AACzC,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK;AACjE,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,aAAa,uEAAuE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gDAAgD;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,YAAY;AAC5H,WAAW,0BAA0B;AACrC,WAAW,0BAA0B;AACrC;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C,yHAAyH,MAAM,KAAK,SAAS,qBAAqB,UAAU;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,uBAAuB,eAAe,EAAE,UAAU;AAClD,uBAAuB,4DAA4D,EAAE,UAAU;AAC/F;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qBAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,yBAAyB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D,4CAA4C,eAAe,IAAI,mBAAmB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,MAAM,eAAe;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iCAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAqC;AACnF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,UAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,uBAAuB,qDAAqD;AAC5E;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB;AAC3N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB,wBAAwB,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS,wCAAwC,QAAQ;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,YAAY;AAChF,0EAA0E,qBAAqB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA,oGAAoG,iBAAiB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kBAAkB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,iBAAiB,KAAK,gBAAgB;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2CAA2C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA,gHAAgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oCAAoC,oCAAoC,6BAA6B;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,4FAA4F,UAAU;AACtG;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,sFAAsF,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,mDAAmD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E,IAAI,gBAAgB,iBAAiB,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,6BAA6B;AACxE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wEAAwE;AAC9E,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6BAA6B;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B,kCAAkC,MAAM,GAAG,6BAA6B;AACpH,KAAK;AACL;AACA;AACA,qCAAqC,gBAAgB,0BAA0B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kBAAkB;AAC/E;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,qDAAqD;AAC5D,OAAO;AACP;AACA;AACA;AACA;AACA,2EAA2E,WAAW,EAAE,UAAU;AAClG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uCAAuC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB,KAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC,iCAAiC,QAAQ;AACzC;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc,sBAAsB,mCAAmC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;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,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA,yBAAyB,UAAU;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mDAAmD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC9E,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,MAAM,QAAQ,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS,gBAAgB;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,kBAAkB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AACxF,mBAAmB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACvF,UAAU,gBAAgB,gBAAgB,gBAAgB;AAC1D;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI;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,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uvBAAuvB,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,oBAAoB,2HAA2H;;AAEh6B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0IAA0I,OAAO;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,QAAQ;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,OAAO;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,eAAe,2CAA2C,GAAG,qBAAqB,EAAE;AACtH;AACA,mDAAmD,MAAM,GAAG;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA,mDAAmD,eAAe;AAClE,iCAAiC,IAAI,8BAA8B,SAAS,KAAK,MAAM;AACvF;AACA,wCAAwC,IAAI;AAC5C;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,mCAAmC,iBAAiB,IAAI,EAAE,uBAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,kCAAkC,QAAQ;AAClF;AACA,iCAAiC,IAAI,8BAA8B,uBAAuB,MAAM,uBAAuB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA,gCAAgC,QAAQ,+BAA+B,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB,EAAE,YAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,QAAQ;AACtF;AACA,wJAAwJ,MAAM,GAAG,0BAA0B;AAC3L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB;AACA,8HAA8H,GAAG;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,QAAQ;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,qCAAqC;AACrC,oCAAoC;AACpC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO,IAAI,WAAW,EAAE,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH,QAAQ;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB,EAAE,OAAO;AACpE,iDAAiD,OAAO,aAAa,iBAAiB,EAAE,OAAO;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe,aAAa,SAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6EAA6E,QAAQ;AACrF;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM,EAAE,kBAAkB,EAAE,IAAI;AACrF,KAAK;AACL;AACA,uEAAuE;AACvE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,OAAO,YAAY,IAAI;AAC5F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,KAAK,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB,wBAAwB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2BAA2B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6CAA6C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAqD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,GAAG;AAC7D;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB;AAC/E;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI,IAAI,iBAAiB,KAAK,qBAAqB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA,cAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yBAAyB;AACzE,uEAAuE,KAAK,sBAAsB,UAAU;AAC5G;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAAoD;AAC3F,sCAAsC,8CAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB,GAAG,sBAAsB,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mBAAmB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,MAAM;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,gBAAgB;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,4BAA4B,qBAAqB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wBAAwB,4BAA4B,8BAA8B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,MAAM,EAAE,yBAAyB,OAAO,+BAA+B;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB,4CAA4C,YAAY,MAAM,WAAW;AACtI,8CAA8C,yBAAyB,kCAAkC,YAAY,MAAM,WAAW;AACtI,oFAAoF,yBAAyB,+BAA+B,YAAY,MAAM,WAAW;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU,4BAA4B,qBAAqB;AAChH;AACA;AACA,gDAAgD,UAAU,4BAA4B,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yDAAyD;AAC9G;AACA,iDAAiD,UAAU;AAC3D;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA,oDAAoD,mCAAmC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,UAAU;AAC/E,2DAA2D,wCAAwC,wYAAwY;AAC3e;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,qDAAqD,mDAAmD;AACxG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,yCAAyC,mDAAmD;AAC5F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mDAAmD;AACxG,gFAAgF,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8DAA8D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,MAAM;AAC3F,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6DAA6D;AAClH,gFAAgF,cAAc;AAC9F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,6DAA6D;AAClH;AACA,kEAAkE,cAAc;AAChF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sBAAsB,kDAAkD;AAC5H;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA,qEAAqE,qBAAqB;AAC1F;AACA;AACA;AACA;AACA,uEAAuE,qBAAqB;AAC5F;AACA;AACA;AACA;AACA,8EAA8E,kBAAkB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iBAAiB;;AAEhG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kCAAkC;AACjF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,iEAAiE,uFAAuF;AACxJ;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS;AACT,kBAAkB;AAClB;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB,GAAG;AACxB,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAA6D;AACjE;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,cAAc,cAAc,EAAE,cAAc,EAAE,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,mDAAmD,+DAA+D;AAClH;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C,SAAS;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,uCAAuC;AACzD,IAAI;AACJ;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,iDAAiD;AACnE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mBAAmB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAA6B;AACzC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,oDAAoD,6DAA6D;AACjH;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS;AACT,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oHAAoH;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,uDAAuD;AACvD,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB,WAAW;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,sDAAsD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uDAAuD,+CAA+C;AACtG;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,cAAc,IAAI;AACtD,CAAC;AACD;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,+DAA+D,uFAAuF;AACtJ;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C,SAAS,iBAAiB,YAAY;AACtC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+CAA+C,8BAA8B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+CAA+C;AAC7D,cAAc,wEAAwE;AACtF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAA4C;AAC7F,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,qDAAqD,kFAAkF;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uDAAuD,uEAAuE;AAC9H;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C,SAAS,iBAAiB,UAAU,gBAAgB,IAAI;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,sCAAsC,4CAAU;AAChD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,6BAA6B,4CAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,2CAAO,kCAAkC,qDAAK;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,0DAA0D,yEAAyE;AACnI;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS,iBAAiB,UAAU,cAAc,IAAI,gBAAgB,IAAI,oBAAoB,IAAI,6BAA6B,IAAI;AACnI,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAA6B;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,SAAS,aAAa,kCAAkC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oFAAoF;AACjI;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA,6CAA6C,oFAAoF;;AAEjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,0DAA0D,yBAAyB;AACnF,0DAA0D;AAC1D;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,sBAAsB,IAAI;AAC9D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uEAAuE,eAAe;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wEAAwE;AACjH,0EAA0E,eAAe;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAsE;AAC/G,wEAAwE,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAsE;AAC/G,wEAAwE,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAy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AkC;AAC9B;AACA,SAAOA,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACmC,MAAN,KAAiB,CAAzC;AACH;;AACD,SAAS80yB,cAAT,CAAwBj3yB,KAAxB,EAA+B;AAC3B;AACA,SAAOA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAK,CAACmC,MAAb,KAAwB,QAAhD;AACH;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,MAAM+0yB,aAAa,GAAG,IAAI14E,yDAAJ,CAAmB,cAAnB,CAAtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM24E,mBAAmB,GAAG,IAAI34E,yDAAJ,CAAmB,mBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM44E,YAAY,GAAG,oMAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,UAAN,CAAiB;AACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACc,SAAHhsvB,GAAG,CAACA,GAAD,EAAM;AACZ,WAAOisvB,YAAY,CAACjsvB,GAAD,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACc,SAAHnS,GAAG,CAACA,GAAD,EAAM;AACZ,WAAOq+vB,YAAY,CAACr+vB,GAAD,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACmB,SAAR2jf,QAAQ,CAAC6kF,OAAD,EAAU;AACrB,WAAO81L,iBAAiB,CAAC91L,OAAD,CAAxB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACuB,SAAZ+1L,YAAY,CAAC/1L,OAAD,EAAU;AACzB,WAAOg2L,qBAAqB,CAACh2L,OAAD,CAA5B;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACgB,SAALi2L,KAAK,CAACj2L,OAAD,EAAU;AAClB,WAAOk2L,cAAc,CAACl2L,OAAD,CAArB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACoB,SAATm2L,SAAS,CAACA,SAAD,EAAY;AACxB,WAAOC,kBAAkB,CAACD,SAAD,CAAzB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACoB,SAAT/1oB,SAAS,CAACA,SAAD,EAAY;AACxB,WAAOi2oB,kBAAkB,CAACj2oB,SAAD,CAAzB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AAAE1xK,UAAAA;AAAF,SAAvB;AACH,OANmC,CAApC;AAOH;AACJ;;AACDw/Q,EAAAA,2BAA2B,GAAG;AAC1B,QAAI,KAAKM,4BAAT,EAAuC;AACnC,WAAKA,4BAAL,CAAkCl7R,WAAlC;;AACA,WAAKo5R,4BAAL,GAAoC,KAApC;AACH;AACJ;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI+B,EAAAA,SAAS,CAACruG,MAAD,EAAS5nqB,IAAI,GAAG,EAAhB,EAAoB;AACzB,SAAK4nqB,MAAL,GAAcA,MAAd;;AACA,SAAKsuG,qBAAL,CAA2Bl2wB,IAAI,CAACk2f,SAAL,KAAmB,KAA9C;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIj1d,EAAAA,GAAG,CAAC3mE,IAAD,EAAO;AACN,WAAOy4yB,KAAK,CAAC,IAAD,EAAOz4yB,IAAP,EAAa,GAAb,CAAZ;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI8yyB,EAAAA,QAAQ,CAACp+xB,SAAD,EAAY1U,IAAZ,EAAkB;AACtB,UAAM65mB,OAAO,GAAG75mB,IAAI,GAAG,KAAK2mE,GAAL,CAAS3mE,IAAT,CAAH,GAAoB,IAAxC;AACA,WAAO65mB,OAAO,IAAIA,OAAO,CAACyzF,MAAnB,GAA4BzzF,OAAO,CAACyzF,MAAR,CAAe54rB,SAAf,CAA5B,GAAwD,IAA/D;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIm+xB,EAAAA,QAAQ,CAACn+xB,SAAD,EAAY1U,IAAZ,EAAkB;AACtB,WAAO,CAAC,CAAC,KAAK8yyB,QAAL,CAAcp+xB,SAAd,EAAyB1U,IAAzB,CAAT;AACH;AACD;AACJ;AACA;;;AACY,MAAJukZ,IAAI,GAAG;AACP,QAAIt6V,CAAC,GAAG,IAAR;;AACA,WAAOA,CAAC,CAAComV,OAAT,EAAkB;AACdpmV,MAAAA,CAAC,GAAGA,CAAC,CAAComV,OAAN;AACH;;AACD,WAAOpmV,CAAP;AACH;AACD;;;AACA2xvB,EAAAA,qBAAqB,CAAChgR,SAAD,EAAY;AAC7B,SAAKt0f,MAAL,GAAc,KAAKg0wB,gBAAL,EAAd;;AACA,QAAI1/Q,SAAJ,EAAe;AACX,WAAKw2Q,aAAL,CAAmBtqvB,IAAnB,CAAwB,KAAKxgB,MAA7B;AACH;;AACD,QAAI,KAAK+oW,OAAT,EAAkB;AACd,WAAKA,OAAL,CAAaura,qBAAb,CAAmChgR,SAAnC;AACH;AACJ;AACD;;;AACAigR,EAAAA,gBAAgB,GAAG;AACf,SAAKxJ,YAAL,GAAoB,IAAI3tvB,uDAAJ,EAApB;AACA,SAAK0tvB,aAAL,GAAqB,IAAI1tvB,uDAAJ,EAArB;AACH;;AACD42vB,EAAAA,gBAAgB,GAAG;AACf,QAAI,KAAKG,oBAAL,EAAJ,EACI,OAAOjD,QAAP;AACJ,QAAI,KAAKlrG,MAAT,EACI,OAAOirG,OAAP;AACJ,QAAI,KAAKqB,4BAAL,IAAqC,KAAKkC,sBAAL,CAA4Bt0J,OAA5B,CAAzC,EACI,OAAOA,OAAP;AACJ,QAAI,KAAKs0J,sBAAL,CAA4BvD,OAA5B,CAAJ,EACI,OAAOA,OAAP;AACJ,WAAOD,KAAP;AACH;AACD;;;AACAwD,EAAAA,sBAAsB,CAACx0wB,MAAD,EAAS;AAC3B,WAAO,KAAKy0wB,YAAL,CAAmBliM,OAAD,IAAaA,OAAO,CAACvykB,MAAR,KAAmBA,MAAlD,CAAP;AACH;AACD;;;AACA00wB,EAAAA,iBAAiB,GAAG;AAChB,WAAO,KAAKD,YAAL,CAAmBliM,OAAD,IAAaA,OAAO,CAACrpO,KAAvC,CAAP;AACH;AACD;;;AACAyra,EAAAA,mBAAmB,GAAG;AAClB,WAAO,KAAKF,YAAL,CAAmBliM,OAAD,IAAaA,OAAO,CAACq4L,OAAvC,CAAP;AACH;AACD;;;AACA0I,EAAAA,eAAe,CAACl1wB,IAAI,GAAG,EAAR,EAAY;AACvB,SAAKuswB,QAAL,GAAgB,CAAC,KAAK+J,iBAAL,EAAjB;;AACA,QAAI,KAAK3ra,OAAL,IAAgB,CAAC3qW,IAAI,CAAC60wB,QAA1B,EAAoC;AAChC,WAAKlqa,OAAL,CAAauqa,eAAb,CAA6Bl1wB,IAA7B;AACH;AACJ;AACD;;;AACAg1wB,EAAAA,cAAc,CAACh1wB,IAAI,GAAG,EAAR,EAAY;AACtB,SAAKwswB,OAAL,GAAe,KAAK+J,mBAAL,EAAf;;AACA,QAAI,KAAK5ra,OAAL,IAAgB,CAAC3qW,IAAI,CAAC60wB,QAA1B,EAAoC;AAChC,WAAKlqa,OAAL,CAAaqqa,cAAb,CAA4Bh1wB,IAA5B;AACH;AACJ;AACD;;;AACAw2wB,EAAAA,aAAa,CAACC,SAAD,EAAY;AACrB,WAAO,OAAOA,SAAP,KAAqB,QAArB,IAAiCA,SAAS,KAAK,IAA/C,IACHnkzB,MAAM,CAACoM,IAAP,CAAY+3yB,SAAZ,EAAuB7hzB,MAAvB,KAAkC,CAD/B,IACoC,WAAW6hzB,SAD/C,IAC4D,cAAcA,SADjF;AAEH;AACD;;;AACA5G,EAAAA,2BAA2B,CAACp+sB,EAAD,EAAK;AAC5B,SAAK0itB,mBAAL,GAA2B1itB,EAA3B;AACH;AACD;;;AACAiltB,EAAAA,kBAAkB,CAAC12wB,IAAD,EAAO;AACrB,QAAIqzwB,YAAY,CAACrzwB,IAAD,CAAZ,IAAsBA,IAAI,CAAC6wwB,QAAL,IAAiB,IAA3C,EAAiD;AAC7C,WAAK0D,SAAL,GAAiBv0wB,IAAI,CAAC6wwB,QAAtB;AACH;AACJ;AACD;AACJ;AACA;AACA;AACA;;;AACIwE,EAAAA,kBAAkB,CAACR,QAAD,EAAW;AACzB,UAAM8B,WAAW,GAAG,KAAKhsa,OAAL,IAAgB,KAAKA,OAAL,CAAaG,KAAjD;AACA,WAAO,CAAC+pa,QAAD,IAAa,CAAC,CAAC8B,WAAf,IAA8B,CAAC,KAAKhsa,OAAL,CAAa2ra,iBAAb,EAAtC;AACH;;AAtvBiB;AAwvBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM5C,WAAN,SAA0BO,eAA1B,CAA0C;AACtC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIp0wB,EAAAA,WAAW,CAAC42wB,SAAS,GAAG,IAAb,EAAmBrD,eAAnB,EAAoCpG,cAApC,EAAoD;AAC3D,UAAMmG,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACvG,cAAD,EAAiBoG,eAAjB,CAA1D;AACA;AACR;AACA;AACA;AACA;AACA;;AACQ,SAAKjmuB,YAAL,GAAoB,IAApB;AACA;;AACA,SAAKypuB,SAAL,GAAiB,EAAjB;AACA;;AACA,SAAKjG,cAAL,GAAsB,KAAtB;;AACA,SAAKkG,eAAL,CAAqBJ,SAArB;;AACA,SAAKC,kBAAL,CAAwBtD,eAAxB;;AACA,SAAK+C,gBAAL;;AACA,SAAK7F,sBAAL,CAA4B;AACxBuE,MAAAA,QAAQ,EAAE,IADc;AAExB;AACA;AACA;AACA;AACA3+Q,MAAAA,SAAS,EAAE,CAAC,CAAC,KAAK82Q;AANM,KAA5B;;AAQA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MAA3B,GAAoC,CAApC,IAAyC,KAAKyuI,QAArD;AACH;;AA9VmC;AAgWxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMuwqB,SAAN,SAAwBK,eAAxB,CAAwC;AACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIp0wB,EAAAA,WAAW,CAACozwB,QAAD,EAAWG,eAAX,EAA4BpG,cAA5B,EAA4C;AACnD,UAAMmG,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACvG,cAAD,EAAiBoG,eAAjB,CAA1D;AACA,SAAKH,QAAL,GAAgBA,QAAhB;;AACA,SAAKkD,gBAAL;;AACA,SAAKO,kBAAL,CAAwBtD,eAAxB;;AACA,SAAK6D,cAAL;;AACA,SAAK3G,sBAAL,CAA4B;AACxBuE,MAAAA,QAAQ,EAAE,IADc;AAExB;AACA;AACA;AACA;AACA3+Q,MAAAA,SAAS,EAAE,CAAC,CAAC,KAAK82Q;AANM,KAA5B;AAQH;AACD;AACJ;AACA;AACA;AACA;;;AACI7mP,EAAAA,EAAE,CAACtzgB,KAAD,EAAQ;AACN,WAAO,KAAKogwB,QAAL,CAAcpgwB,KAAd,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIhR,EAAAA,IAAI,CAACsykB,OAAD,EAAUr0kB,OAAO,GAAG,EAApB,EAAwB;AACxB,SAAKmzwB,QAAL,CAAcpxwB,IAAd,CAAmBsykB,OAAnB;;AACA,SAAKsjM,gBAAL,CAAsBtjM,OAAtB;;AACA,SAAKm8L,sBAAL,CAA4B;AAAEp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EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjiEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM2+2B,WAAN,CAAkB;AACdx81B,EAAAA,WAAW;AACX;AACAngC,EAAAA,EAFW;AAGX;AACAmhC,EAAAA,GAJW,EAIN;AACD,SAAKnhC,EAAL,GAAUA,EAAV;AACA,SAAKmhC,GAAL,GAAWA,GAAX;AACH;;AARa;AAUlB;AACA;AACA;AACA;AACA;;;AACA,MAAMy71B,eAAN,SAA8BD,WAA9B,CAA0C;AACtCx81B,EAAAA,WAAW;AACX;AACAngC,EAAAA,EAFW;AAGX;AACAmhC,EAAAA,GAJW;AAKX;AACA071B,EAAAA,iBAAiB,GAAG,YANT;AAOX;AACAnwM,EAAAA,aAAa,GAAG,IARL,EAQW;AAClB,UAAM1srB,EAAN,EAAUmhC,GAAV;AACA,SAAK071B,iBAAL,GAAyBA,iBAAzB;AACA,SAAKnwM,aAAL,GAAqBA,aAArB;AACH;AACD;;;AACAjwrB,EAAAA,QAAQ,GAAG;AACP,WAAQ,uBAAsB,KAAKuD,EAAG,WAAU,KAAKmhC,GAAI,IAAzD;AACH;;AAjBqC;AAmB1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM271B,aAAN,SAA4BH,WAA5B,CAAwC;AACpCx81B,EAAAA,WAAW;AACX;AACAngC,EAAAA,EAFW;AAGX;AACAmhC,EAAAA,GAJW;AAKX;AACA471B,EAAAA,iBANW,EAMQ;AACf,UAAM/83B,EAAN,EAAUmhC,GAAV;A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R,KAA7C,EAA+E;AAAElm2B,MAAAA,IAAI,EAAE2lsB,sDAAWv7tB;AAAnB,KAA/E,EAAsG;AAAE41B,MAAAA,IAAI,EAAEi2W,mDAAWm+W;AAAnB,KAAtG,EAA6H;AAAEp0tB,MAAAA,IAAI,EAAEi2W,mDAAWqgf;AAAnB,KAA7H,EAAoJ;AAAEt21B,MAAAA,IAAI,EAAEvvC;AAAR,KAApJ,CAAP;AAAkL,GAF5N;AAAA;;AAGA,SAASkn5B,gBAAT,CAA0B7i2B,QAA1B,EAAoC;AAChC,OAAK,IAAIzmD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGymD,QAAQ,CAACtlD,MAA7B,EAAqCnB,CAAC,EAAtC,EAA0C;AACtC,UAAM8z4B,GAAG,GAAGrt1B,QAAQ,CAACzmD,CAAD,CAApB;;AACA,QAAI8z4B,GAAG,IAAI,IAAX,EAAiB;AACb,YAAM,IAAIrx4B,KAAJ,CAAW,+BAA8Bqx4B,GAAI,qBAAoB9z4B,CAAE,EAAnE,CAAN;AACH;AACJ;AACJ;;AACD,SAASin5B,4BAAT,CAAsC191B,MAAtC,EAA8C;AAC1C,SAAOA,MAAM,KAAK,YAAlB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMyg2B,UAAN,CAAiB;AACb592B,EAAAA,WAAW,CAAC692B,MAAD,EAAS7uoB,KAAT,EAAgB8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ACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC3+LsE;AACF;AACf;;AAErD,oBAAoB,0DAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yCAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,8CAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAI;AAChC,cAAc,wDAAQ;AACtB;AACA;AACA;AACA;AACA,uBAAuB,8DAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uCAAK;AACxB;AACA;AACA,4CAA4C,yCAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAU;AACrC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA,iBAAiB,0DAAY;AAC7B;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAA2B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,2BAA2B,gDAAgD,kBAAkB;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1QxC;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAAI,SAASol4B,SAAT,GAAqB;AACrB,MAAI;AAAE98wB,IAAAA,SAAS,EAAE+8wB;AAAb,MAAoClk1B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,EAAzG;AACA,QAAMmk1B,MAAM,GAAG;AACXpo2B,IAAAA,MAAM,EAAE,IADG;AAEXoviB,IAAAA,eAAe,EAAE,IAFN;AAGXD,IAAAA,WAAW,EAAE,IAHF;AAIX/jd,IAAAA,SAAS,EAAE+8wB,iBAJA;;AAKXE,IAAAA,YAAY,CAAE3j0B,KAAF,EAASihD,MAAT,EAAiB;AACzB,aAAO,IAAI2ixB,eAAJ,CAAoB5j0B,KAApB,EAA2BihD,MAA3B,CAAP;AACH,KAPU;;AAQL4ixB,IAAAA,WAAN,CAAmBti3B,GAAnB,EAAwB;AAAA;AACpB,cAAMQ,QAAQ,SAASD,KAAK,CAACP,GAAD,CAA5B;AACA,cAAMa,IAAI,SAASL,QAAQ,CAACK,IAAT,EAAnB;AACA,cAAM26W,GAAG,SAAS+mgB,iBAAiB,CAAC1h3B,IAAD,CAAnC;AACA,eAAO26W,GAAP;AAJoB;AAKvB;;AAbU,GAAf;;AAeA,MAAI,OAAOn4U,UAAU,CAAC8hE,SAAlB,KAAgC,WAAhC,IAA+C,OAAO+8wB,iBAAP,KAA6B,WAAhF,EAA6F;AACzF/s0B,IAAAA,OAAO,CAACqt0B,cAAR,CAAuBL,MAAvB,EAA+B,WAA/B;AACH;;AACD,SAAOA,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAAI,SAAS524B,IAAT,CAAcwwJ,KAAd,EAAqB;AACrB,MAAI;AAAE52B,IAAAA,SAAF;AAAc6oQ,IAAAA,MAAd;AAAuBztW,IAAAA;AAAvB,MAAkCw7H,KAAtC;AACA,SAAO;AACHhiH,IAAAA,MAAM,EAAE,IADL;AAEHoviB,IAAAA,eAAe,EAAE,IAFd;AAGHD,IAAAA,WAAW,EAAE,IAHV;AAIH/jd,IAAAA,SAJG;AAKH5kG,IAAAA,KALG;AAMH6h3B,IAAAA,YAAY,EAAEp0gB,MAAM,CAACo0gB,YANlB;AAOHE,IAAAA,WAAW,EAAEt0gB,MAAM,CAACy0gB;AAPjB,GAAP;AASH;;AAED,IAAIzw2B,KAAK,GAAG,aAAavgD,MAAM,CAACi4E,MAAP,CAAc;AACrCxc,EAAAA,SAAS,EAAE,IAD0B;AAErC+01B,EAAAA,SAAS,EAAEA,SAF0B;AAGrC124B,EAAAA,IAAI,EAAEA;AAH+B,CAAd,CAAzB;AAMA;AACA;AACA;AACA;AACA;;AAAI,SAASm34B,cAAT,CAAwB5/2B,GAAxB,EAA6B;AAC7B,SAAOA,GAAG,CAACp1B,OAAJ,CAAY,iBAAZ,EAA+B,GAA/B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAAS44jB,QAAT,CAAkBxjiB,GAAlB,EAAuB;AACvB,SAAOA,GAAG,CAACp1B,OAAJ,CAAY,WAAZ,EAAyB,EAAzB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAASi14B,SAAT,CAAmB7/2B,GAAnB,EAAwB;AACxB,SAAOA,GAAG,CAACp1B,OAAJ,CAAY,WAAZ,EAAyB,EAAzB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAASk14B,SAAT,CAAmB9/2B,GAAnB,EAAwB;AACxB,QAAM+qC,OAAO,GAAG/qC,GAAG,CAACwkB,KAAJ,CAAU,oDAAV,CAAhB;AACA,SAAOumB,OAAO,GAAGA,OAAO,CAAC/2E,GAAR,CAAY40D,UAAZ,CAAH,GAA6B,EAA3C;AACH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAASm31B,aAAT,CAAuB//2B,GAAvB,EAA4B;AAC5B,QAAMgg3B,OAAO,GAAGF,SAAS,CAAC9/2B,GAAD,CAAzB;AACA,QAAMylW,MAAM,GAAG,CACXu6gB,OAAO,CAAC,CAAD,CAAP,IAAc,CADH,EAEXA,OAAO,CAAC,CAAD,CAAP,IAAc,CAFH,EAGXA,OAAO,CAAC,CAAD,CAAP,IAAc,CAHH,EAIXA,OAAO,CAAC,CAAD,CAAP,IAAc,CAJH,EAKXA,OAAO,CAAC,CAAD,CAAP,IAAc,CALH,EAMXA,OAAO,CAAC,CAAD,CAAP,IAAc,CANH,CAAf;AAQA,SAAOv6gB,MAAP;AACH,EACD;;;AACA,MAAMw6gB,YAAY,GAAG,WAArB;AACA;AACA;AACA;AACA;AACA;;AAAI,SAASC,sBAAT,CAAgCt+3B,IAAhC,EAAsC;AACtC,MAAIq+3B,YAAY,CAACzk3B,IAAb,CAAkB5Z,IAAlB,CAAJ,EAA6B;AACzB,WAAOA,IAAI,CAACzmB,WAAL,EAAP;AACH;;AACD,SAAOymB,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAASu+3B,gBAAT,CAA0Bjj3B,GAA1B,EAA+B;AAC/B;AACA;AACA;AACA;AACA,QAAMkj3B,QAAQ,GAAG,yCAAyCp10B,IAAzC,CAA8C9tC,GAA9C,CAAjB;;AACA,MAAI,CAACkj3B,QAAL,EAAe;AACX,WAAO,EAAP;AACH;;AACD,SAAOA,QAAQ,CAAC,CAAD,CAAR,IAAeA,QAAQ,CAAC,CAAD,CAAvB,IAA8BA,QAAQ,CAAC,CAAD,CAAtC,IAA6C,EAApD;AACH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAASC,cAAT,CAAwBj0mB,KAAxB,EAA+B;AAC/B,MAAI,CAACA,KAAK,CAACt3R,UAAN,CAAiB,KAAjB,CAAL,EAA8B;AAC1B,WAAOs3R,KAAP;AACH;;AACD,MAAIk0mB,QAAQ,GAAG,CAAf;AACA,QAAMC,eAAe,GAAGn0mB,KAAK,CAACxhS,OAAN,CAAc,cAAd,EAA8B,CAAC+9C,GAAD,EAAM631B,OAAN,KAAiBF,QAAQ,EAAT,IAAgBE,OAAhB,GAA0Brg4B,MAAM,CAAC4nB,IAAI,CAAC6kE,KAAL,CAAWhkD,UAAU,CAACD,GAAD,CAArB,CAAD,CAAhC,GAAgEA,GAA9G,CAAxB;AAEA,SAAO431B,eAAP;AACH,EAED;;;AACA,MAAME,cAAc,GAAG,eAAvB;AACA,MAAMC,OAAO,GAAG,kBAAhB;AACA,MAAMC,UAAU,GAAG,mBAAnB;AACA,MAAMC,kBAAkB,GAAG,6DAA3B;AACA,MAAMC,4BAA4B,GAAG,sBAArC;AACA,MAAMC,gBAAgB,GAAG,kBAAzB;AACA,MAAMC,YAAY,GAAG,iBAArB;;AACA,SAASC,iBAAT,CAA2B7hwB,QAA3B,EAAqCwqjB,KAArC,EAA4C;AACxC,QAAM5+nB,OAAO,GAAG4+nB,KAAK,CAAC3+nB,IAAN,CAAWm0E,QAAX,CAAhB;;AACA,MAAI,CAACp0E,OAAL,EAAc;AACV,WAAO,CACHo0E,QADG,EAEH,CAFG,CAAP;AAIH;;AACD,SAAO,CACHA,QAAQ,CAACv0I,OAAT,CAAiB++rB,KAAjB,EAAwB,GAAxB,CADG,EAEH5+nB,OAAO,CAAC95E,MAFL,CAAP;AAIH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAASgw5B,sBAAT,CAAgC9hwB,QAAhC,EAA0C;AAC1C,QAAM+hwB,WAAW,GAAG,CAChB,CADgB,EAEhB,CAFgB,EAGhB,CAHgB,CAApB;AAKA,MAAIC,eAAe,GAAGhiwB,QAAQ,CAACv0I,OAAT,CAAiB,kBAAjB,EAAqC,UAArC,EAAiDA,OAAjD,CAAyD,YAAzD,EAAuE,GAAvE,CAAtB;AACA,MAAIglH,KAAK,GAAG,CAAZ;AACA,GAACuxxB,eAAD,EAAkBvxxB,KAAlB,IAA2BoxxB,iBAAiB,CAACG,eAAD,EAAkBV,cAAlB,CAA5C;AACAS,EAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBtxxB,KAAlB;AACA,GAACuxxB,eAAD,EAAkBvxxB,KAAlB,IAA2BoxxB,iBAAiB,CAACG,eAAD,EAAkBT,OAAlB,CAA5C;AACAQ,EAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBtxxB,KAAlB;AACA,GAACuxxB,eAAD,EAAkBvxxB,KAAlB,IAA2BoxxB,iBAAiB,CAACG,eAAD,EAAkBR,UAAlB,CAA5C;AACAO,EAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBtxxB,KAAlB;AACA,GAACuxxB,eAAD,EAAkBvxxB,KAAlB,IAA2BoxxB,iBAAiB,CAACG,eAAD,EAAkBP,kBAAlB,CAA5C;AACAM,EAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBtxxB,KAAlB;AACA,GAACuxxB,eAAD,EAAkBvxxB,KAAlB,IAA2BoxxB,iBAAiB,CAACG,eAAD,EAAkBN,4BAAlB,CAA5C;AACAK,EAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBtxxB,KAAlB;AACA,GAACuxxB,eAAD,EAAkBvxxB,KAAlB,IAA2BoxxB,iBAAiB,CAACG,eAAD,EAAkBL,gBAAlB,CAA5C;AACAI,EAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBtxxB,KAAlB;AACAuxxB,EAAAA,eAAe,GAAGA,eAAe,CAACv24B,OAAhB,CAAwB,WAAxB,EAAqC,GAArC,EAA0CA,OAA1C,CAAkD,OAAlD,EAA2D,GAA3D,CAAlB;AACA,GAACu24B,eAAD,EAAkBvxxB,KAAlB,IAA2BoxxB,iBAAiB,CAACG,eAAD,EAAkBJ,YAAlB,CAA5C,CAA4E;AAA5E;AAEAG,EAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBtxxB,KAAlB;AACA,SAAOsxxB,WAAW,CAAC//4B,IAAZ,CAAiB,EAAjB,CAAP;AACH;;AAED,MAAMig5B,WAAW,GAAG,UAApB;AACA;AACA;AACA;AACA;AACA;;AAAI,SAASC,eAAT,CAAyBz30B,CAAzB,EAA4B;AAC5B,SAAO7hC,IAAI,CAACmhQ,IAAL,CAAUnhQ,IAAI,CAACygB,GAAL,CAASohB,CAAC,CAAC,CAAD,CAAV,EAAe,CAAf,IAAoB7hC,IAAI,CAACygB,GAAL,CAASohB,CAAC,CAAC,CAAD,CAAV,EAAe,CAAf,CAA9B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AAAI,SAAS030B,YAAT,CAAsBv1jB,CAAtB,EAAyBniR,CAAzB,EAA4B;AAC5B,SAAO,CAACmiR,CAAC,CAAC,CAAD,CAAD,GAAOniR,CAAC,CAAC,CAAD,CAAR,GAAcmiR,CAAC,CAAC,CAAD,CAAD,GAAOniR,CAAC,CAAC,CAAD,CAAvB,KAA+By30B,eAAe,CAACt1jB,CAAD,CAAf,GAAqBs1jB,eAAe,CAACz30B,CAAD,CAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AAAI,SAAS230B,YAAT,CAAsBx1jB,CAAtB,EAAyBniR,CAAzB,EAA4B;AAC5B,SAAO,CAACmiR,CAAC,CAAC,CAAD,CAAD,GAAOniR,CAAC,CAAC,CAAD,CAAR,GAAcmiR,CAAC,CAAC,CAAD,CAAD,GAAOniR,CAAC,CAAC,CAAD,CAAtB,GAA4B,CAAC,CAA7B,GAAiC,CAAlC,IAAuC7hC,IAAI,CAAC4kW,IAAL,CAAU20gB,YAAY,CAACv1jB,CAAD,EAAIniR,CAAJ,CAAtB,CAA9C;AACH;;AACD,SAAS430B,GAAT,CAAa1g2B,CAAb,EAAgB;AACZ,SAAOA,CAAC,GAAGA,CAAJ,GAAQA,CAAf;AACH;;AACD,SAAS2g2B,GAAT,CAAa3g2B,CAAb,EAAgB;AACZ,SAAO,IAAIA,CAAJ,GAAQA,CAAR,IAAa,IAAIA,CAAjB,CAAP;AACH;;AACD,SAAS4g2B,GAAT,CAAa5g2B,CAAb,EAAgB;AACZ,SAAO,IAAIA,CAAJ,IAAS,IAAIA,CAAb,KAAmB,IAAIA,CAAvB,CAAP;AACH;;AACD,SAAS6g2B,GAAT,CAAa7g2B,CAAb,EAAgB;AACZ,SAAO,CAAC,IAAIA,CAAL,KAAW,IAAIA,CAAf,KAAqB,IAAIA,CAAzB,CAAP;AACH;;AACD,SAAS8g2B,GAAT,CAAa9g2B,CAAb,EAAgB;AACZ,SAAOA,CAAC,GAAGA,CAAX;AACH;;AACD,SAAS+g2B,GAAT,CAAa/g2B,CAAb,EAAgB;AACZ,SAAO,IAAIA,CAAJ,IAAS,IAAIA,CAAb,CAAP;AACH;;AACD,SAASgh2B,GAAT,CAAahh2B,CAAb,EAAgB;AACZ,SAAO,CAAC,IAAIA,CAAL,KAAW,IAAIA,CAAf,CAAP;AACH;;AAED,MAAMih2B,QAAN,CAAe;AACC,SAAL3+vB,KAAK,CAACvvF,QAAD,EAAW;AACnB,WAAO,IAAIku1B,QAAJ,CAAalu1B,QAAb,EAAuB,OAAvB,EAAgC,EAAhC,CAAP;AACH;;AACDl5D,EAAAA,KAAK,GAAG;AACJ,QAAIowI,SAAS,GAAG7vE,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,GAAjF;AACA,UAAM;AAAErH,MAAAA,QAAF;AAAajyC,MAAAA;AAAb,QAAuB,IAA7B;AACA,WAAOg+3B,cAAc,CAAC,KAAKoC,SAAL,EAAD,CAAd,CAAiCxr3B,IAAjC,GAAwC77B,KAAxC,CAA8CowI,SAA9C,EAAyD/2I,GAAzD,CAA8DlF,KAAD,IAAS,IAAIiz5B,QAAJ,CAAalu1B,QAAb,EAAuBjyC,IAAvB,EAA6B9yB,KAA7B,CAAtE,CAAP;AAEH;;AACDu4K,EAAAA,QAAQ,CAAC46uB,WAAD,EAAc;AAClB,UAAMnz5B,KAAK,GAAG,KAAKA,KAAnB;AACA,WAAOA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,EAA5B,KAAmCmz5B,WAAW,IAAInz5B,KAAK,KAAK,CAA5D,KAAkE,OAAOA,KAAP,KAAiB,WAA1F;AACH;;AACDmuZ,EAAAA,QAAQ,CAACuyR,MAAD,EAAS;AACb,UAAM;AAAE1grB,MAAAA;AAAF,QAAa,IAAnB;AACA,UAAMmrC,MAAM,GAAG,OAAOnrC,KAAP,KAAiB,QAAhC;;AACA,QAAI,CAACmrC,MAAD,IAAW,CAACu1oB,MAAhB,EAAwB;AACpB,aAAOv1oB,MAAP;AACH;;AACD,WAAOu1oB,MAAM,CAACh0oB,IAAP,CAAY1sC,KAAZ,CAAP;AACH;;AACDoz5B,EAAAA,eAAe,GAAG;AACd,WAAO,KAAKjlgB,QAAL,CAAc,QAAd,CAAP;AACH;;AACDklgB,EAAAA,QAAQ,GAAG;AACP,QAAI,CAAC,KAAK96uB,QAAL,EAAL,EAAsB;AAClB,aAAO,KAAP;AACH;;AACD,UAAM+6uB,QAAQ,GAAG,KAAKJ,SAAL,EAAjB;;AACA,YAAO,IAAP;AACI,WAAKI,QAAQ,CAAClr5B,QAAT,CAAkB,IAAlB,CAAL;AACA,WAAK,WAAWskC,IAAX,CAAgB4m3B,QAAhB,CAAL;AACI,eAAO,IAAP;;AACJ;AACI,eAAO,KAAP;AALR;AAOH;;AACDniwB,EAAAA,QAAQ,CAACnxJ,KAAD,EAAQ;AACZ,SAAKA,KAAL,GAAaA,KAAb;AACA,WAAO,IAAP;AACH;;AACDqqH,EAAAA,QAAQ,CAAChoB,GAAD,EAAM;AACV,QAAI,OAAOA,GAAP,KAAe,WAAf,IAA8B,KAAKk2E,QAAL,EAAlC,EAAmD;AAC/C,aAAO,KAAKv4K,KAAZ;AACH;;AACD,WAAOqiG,GAAP;AACH;;AACDkxzB,EAAAA,SAAS,CAAClxzB,GAAD,EAAM;AACX,QAAI,CAAC,KAAKk2E,QAAL,EAAL,EAAsB;AAClB,UAAI,OAAOl2E,GAAP,KAAe,WAAnB,EAAgC;AAC5B,eAAO,CAAP;AACH,OAHiB,CAIlB;;;AACA,aAAOvoC,UAAU,CAACuoC,GAAD,CAAjB;AACH;;AACD,UAAM;AAAEriG,MAAAA;AAAF,QAAa,IAAnB,CARW,CASX;;AACA,QAAI0tG,CAAC,GAAG5zC,UAAU,CAAC95D,KAAD,CAAlB;;AACA,QAAI,KAAKmuZ,QAAL,CAAc,IAAd,CAAJ,EAAyB;AACrBzgT,MAAAA,CAAC,IAAI,GAAL;AACH;;AACD,WAAOA,CAAP;AACH;;AACDwlzB,EAAAA,SAAS,CAAC7wzB,GAAD,EAAM;AACX,QAAI,OAAOA,GAAP,KAAe,WAAf,IAA8B,KAAKk2E,QAAL,EAAlC,EAAmD;AAC/C,aAAO,OAAO,KAAKv4K,KAAZ,KAAsB,WAAtB,GAAoC,EAApC,GAAyCqxB,MAAM,CAAC,KAAKrxB,KAAN,CAAtD;AACH;;AACD,WAAOqxB,MAAM,CAACgxE,GAAD,CAAb;AACH;;AACD0ze,EAAAA,QAAQ,CAAC1ze,GAAD,EAAM;AACV,QAAIi7M,KAAK,GAAG,KAAK41mB,SAAL,CAAe7wzB,GAAf,CAAZ;;AACA,QAAI,KAAKmxzB,iBAAT,EAA4B;AACxB,aAAOl2mB,KAAP;AACH;;AACD,SAAKk2mB,iBAAL,GAAyB,IAAzB;AACAl2mB,IAAAA,KAAK,GAAGi0mB,cAAc,CAACj0mB,KAAD,CAAtB;AACA,SAAKt9S,KAAL,GAAas9S,KAAb;AACA,WAAOA,KAAP;AACH;;AACDm2mB,EAAAA,MAAM,GAAG;AACL,WAAO,EAAP,CAAU;AAAV;AAEH;;AACDC,EAAAA,MAAM,GAAG;AACL,WAAO,KAAK3u1B,QAAL,CAAc4u1B,UAArB;AACH;;AACDC,EAAAA,KAAK,GAAG;AACJ,WAAO,KAAK7u1B,QAAL,CAAc8u1B,MAArB;AACH;;AACDC,EAAAA,QAAQ,GAAG;AACP,WAAO,KAAKZ,SAAL,GAAiBp34B,OAAjB,CAAyB,UAAzB,EAAqC,EAArC,CAAP;AACH;;AACDi44B,EAAAA,SAAS,CAACC,gBAAD,EAAmB;AACxB,QAAIC,cAAc,GAAG7n1B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAAtF;;AACA,QAAI,CAAC,KAAKmsG,QAAL,EAAL,EAAsB;AAClB,aAAO,CAAP;AACH;;AACD,UAAM,CAAC+qP,IAAD,EAAO4wf,UAAP,IAAqB,OAAOF,gBAAP,KAA4B,SAA5B,GAAwC,CAC/D5w5B,SAD+D,EAE/D4w5B,gBAF+D,CAAxC,GAGvB,CACAA,gBADA,CAHJ;AAMA,UAAM;AAAEG,MAAAA;AAAF,QAAgB,KAAKpv1B,QAAL,CAAc6njB,MAApC;;AACA,YAAO,IAAP;AACI,WAAK,KAAKz+N,QAAL,CAAc,OAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,GAAnB,GAAyBt62B,IAAI,CAACoS,GAAL,CAAS8o2B,QAAQ,CAACC,WAAT,CAAqB,GAArB,CAAT,EAAoCD,QAAQ,CAACC,WAAT,CAAqB,GAArB,CAApC,CAAhC;;AACJ,WAAK,KAAKjmgB,QAAL,CAAc,OAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,GAAnB,GAAyBt62B,IAAI,CAACC,GAAL,CAASi72B,QAAQ,CAACC,WAAT,CAAqB,GAArB,CAAT,EAAoCD,QAAQ,CAACC,WAAT,CAAqB,GAArB,CAApC,CAAhC;;AACJ,WAAK,KAAKjmgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,GAAnB,GAAyBY,QAAQ,CAACC,WAAT,CAAqB,GAArB,CAAhC;;AACJ,WAAK,KAAKjmgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,GAAnB,GAAyBY,QAAQ,CAACC,WAAT,CAAqB,GAArB,CAAhC;;AACJ,WAAK,KAAKjmgB,QAAL,CAAc,MAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,KAAKG,MAAL,EAA1B;;AACJ,WAAK,KAAKvlgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,KAAKK,KAAL,EAA1B;;AACJ,WAAK,KAAKzlgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,KAAKK,KAAL,EAAnB,GAAkC,CAAzC;;AACJ,WAAK,KAAKzlgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,EAAP;;AACJ,WAAK,KAAKplgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,KAAKE,MAAL,EAAnB,IAAoC,IAAI,EAAxC,CAAP;;AACJ,WAAK,KAAKtlgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,EAA1B;;AACJ,WAAK,KAAKplgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,KAAKE,MAAL,EAAnB,GAAmC,IAA1C;;AACJ,WAAK,KAAKtlgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,KAAKE,MAAL,EAAnB,GAAmC,IAA1C;;AACJ,WAAK,KAAKtlgB,QAAL,CAAc,KAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmB,KAAKE,MAAL,EAA1B;;AACJ,WAAK,KAAKtlgB,QAAL,CAAc,IAAd,KAAuB+lgB,UAA5B;AACI,eAAO,KAAKX,SAAL,KAAmB,KAAKK,KAAL,EAA1B;;AACJ,WAAK,KAAKzlgB,QAAL,CAAc,IAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,KAAmBY,QAAQ,CAACC,WAAT,CAAqB9wf,IAArB,CAA1B;;AACJ;AACI;AACI,gBAAM51T,CAAC,GAAG,KAAK6lzB,SAAL,EAAV;;AACA,cAAIU,cAAc,IAAIvmzB,CAAC,GAAG,CAA1B,EAA6B;AACzB,mBAAOA,CAAC,GAAGymzB,QAAQ,CAACC,WAAT,CAAqB9wf,IAArB,CAAX;AACH;;AACD,iBAAO51T,CAAP;AACH;AAtCT;AAwCH;;AACDunT,EAAAA,eAAe,GAAG;AACd,QAAI,CAAC,KAAK18O,QAAL,EAAL,EAAsB;AAClB,aAAO,CAAP;AACH;;AACD,QAAI,KAAK41O,QAAL,CAAc,KAAd,CAAJ,EAA0B;AACtB,aAAO,KAAKolgB,SAAL,EAAP;AACH;;AACD,WAAO,KAAKA,SAAL,KAAmB,IAA1B;AACH;;AACDc,EAAAA,UAAU,GAAG;AACT,QAAI,CAAC,KAAK97uB,QAAL,EAAL,EAAsB;AAClB,aAAO,CAAP;AACH;;AACD,YAAO,IAAP;AACI,WAAK,KAAK41O,QAAL,CAAc,MAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,MAAoBt62B,IAAI,CAAC2hQ,EAAL,GAAU,GAA9B,CAAP;;AACJ,WAAK,KAAKuzG,QAAL,CAAc,OAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,MAAoBt62B,IAAI,CAAC2hQ,EAAL,GAAU,GAA9B,CAAP;;AACJ,WAAK,KAAKuzG,QAAL,CAAc,MAAd,CAAL;AACI,eAAO,KAAKolgB,SAAL,EAAP;;AACJ;AACI,eAAO,KAAKA,SAAL,MAAoBt62B,IAAI,CAAC2hQ,EAAL,GAAU,GAA9B,CAAP;AARR;AAUH;;AACDjoN,EAAAA,aAAa,GAAG;AACZ,UAAM2g0B,QAAQ,GAAG,KAAKJ,SAAL,EAAjB;AACA,UAAMx91B,KAAK,GAAG,aAAawmB,IAAb,CAAkBo30B,QAAlB,CAAd;AACA,UAAMxg4B,IAAI,GAAG,CAAC4iC,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAAC,CAAD,CAApD,KAA4D491B,QAAzE;AACA,WAAO,KAAKvu1B,QAAL,CAAck7oB,WAAd,CAA0BntrB,IAA1B,CAAP;AACH;;AACDwh4B,EAAAA,sBAAsB,CAAC/2zB,OAAD,EAAU4wC,OAAV,EAAmB;AACrC,QAAI9rC,GAAG,GAAG,KAAK1P,aAAL,EAAV;;AACA,QAAI,CAAC0P,GAAL,EAAU;AACN,aAAO,IAAP;AACH,KAJoC,CAKrC;;;AACA,QAAI,OAAOA,GAAG,CAACq2V,cAAX,KAA8B,UAA9B,IAA4C,oBAAoBn7V,OAApE,EAA6E;AACzE,aAAO8E,GAAG,CAACq2V,cAAJ,CAAmB,KAAK3zX,QAAL,CAAc2uU,GAAjC,EAAsCn2S,OAAtC,EAA+C4wC,OAA/C,CAAP;AACH,KARoC,CASrC;;;AACA,QAAI,OAAO9rC,GAAG,CAACm0e,aAAX,KAA6B,UAAjC,EAA6C;AACzC,UAAIn0e,GAAG,CAACkyzB,gBAAJ,GAAuBh8uB,QAAvB,EAAJ,EAAuC;AACnC,cAAMi8uB,gBAAgB,GAAGnyzB,GAAG,CAACmrC,YAAJ,CAAiB,kBAAjB,CAAzB;AACAnrC,QAAAA,GAAG,GAAGA,GAAG,CAACkyzB,gBAAJ,GAAuB5h0B,aAAvB,EAAN;;AACA,YAAI0P,GAAG,IAAImyzB,gBAAgB,CAACj8uB,QAAjB,EAAX,EAAwC;AACpCl2E,UAAAA,GAAG,CAACmrC,YAAJ,CAAiB,kBAAjB,EAAqC,IAArC,EAA2C2jB,QAA3C,CAAoDqjwB,gBAAgB,CAACx05B,KAArE;AACH;AACJ;;AACD,UAAIqiG,GAAJ,EAAS;AACL,eAAOA,GAAG,CAACm0e,aAAJ,CAAkB,KAAKzxgB,QAAL,CAAc2uU,GAAhC,EAAqCn2S,OAArC,EAA8C4wC,OAA9C,CAAP;AACH;AACJ;;AACD,WAAO,IAAP;AACH;;AACDsmxB,EAAAA,eAAe,GAAG;AACd,QAAI,CAAC,KAAKl8uB,QAAL,EAAL,EAAsB;AAClB,aAAO,IAAP;AACH;;AACD,UAAMxwI,GAAG,GAAG,KAAKmr3B,SAAL,EAAZ;AACA,WAAOD,QAAQ,CAACyB,mBAAT,CAA6B3s3B,GAA7B,KAAqC,IAA5C;AACH;;AACD4s3B,EAAAA,UAAU,CAACxmxB,OAAD,EAAU;AAChB,QAAInuI,KAAK,GAAG,KAAK+1kB,QAAL,EAAZ;AACA,UAAM5qe,GAAG,GAAGnrG,KAAK,CAACmC,MAAlB;AACA,QAAIyy5B,MAAM,GAAG,CAAb,CAHgB,CAIhB;;AACA,SAAI,IAAI5z5B,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGmqG,GAAnB,EAAwBnqG,CAAC,EAAzB,EAA4B;AACxB,UAAIhB,KAAK,CAACgB,CAAD,CAAL,KAAa,GAAjB,EAAsB;AAClB4z5B,QAAAA,MAAM;AACT;;AACD,UAAIA,MAAM,KAAK,CAAf,EAAkB;AACd;AACH;AACJ;;AACD,QAAIzmxB,OAAO,CAACoqC,QAAR,MAAsB,KAAK41O,QAAL,EAAtB,IAAyCymgB,MAAM,KAAK,CAAxD,EAA2D;AACvD,YAAMt3mB,KAAK,GAAG,IAAI4ymB,qCAAJ,CAAalw5B,KAAb,CAAd;;AACA,UAAIs9S,KAAK,CAAC3+O,EAAV,EAAc;AACV2+O,QAAAA,KAAK,CAACp9K,KAAN,GAAciO,OAAO,CAAColxB,SAAR,EAAd;AACAvz5B,QAAAA,KAAK,GAAGs9S,KAAK,CAACu3mB,MAAN,EAAR;AACH;AACJ;;AACD,WAAO,IAAI5B,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,KAAKjyC,IAAjC,EAAuC9yB,KAAvC,CAAP;AACH;;AACDotC,EAAAA,WAAW,CAAC23B,QAAD,EAAWjyC,IAAX,EAAiB9yB,KAAjB,EAAuB;AAC9B,SAAK+kE,QAAL,GAAgBA,QAAhB;AACA,SAAKjyC,IAAL,GAAYA,IAAZ;AACA,SAAK9yB,KAAL,GAAaA,KAAb;AACA,SAAKwz5B,iBAAL,GAAyB,KAAzB;AACH;;AA1OU;;AA4OfP,QAAQ,CAACyB,mBAAT,GAA+B;AAC3B,cAAY,YADe;AAE3B,iBAAe,KAFY;AAG3B,sBAAoB,KAHO;AAI3B,YAAU,QAJiB;AAK3B,aAAW,QALgB;AAM3B,gBAAc,QANa;AAO3B,qBAAmB,QAPQ;AAQ3B,iBAAe,aARY;AAS3B,gBAAc,YATa;AAU3B,aAAW,SAVgB;AAW3B,kBAAgB;AAXW,CAA/B;;AAcA,MAAMI,QAAN,CAAe;AACXt6oB,EAAAA,KAAK,GAAG;AACJ,SAAKu6oB,SAAL,GAAiB,EAAjB;AACH;;AACDC,EAAAA,UAAU,CAACno0B,KAAD,EAAQihD,MAAR,EAAgB;AACtB,SAAKinxB,SAAL,CAAe3l3B,IAAf,CAAoB;AAChBy9C,MAAAA,KADgB;AAEhBihD,MAAAA;AAFgB,KAApB;AAIH;;AACDmnxB,EAAAA,aAAa,GAAG;AACZ,SAAKF,SAAL,CAAejv2B,GAAf;AACH;;AACDw0qB,EAAAA,OAAO,GAAG;AACN,UAAM,CAACluU,IAAD,IAAS,KAAK2ogB,SAApB;;AACA,QAAI,CAAC3ogB,IAAL,EAAW;AACP,aAAO8ogB,UAAU,EAAjB;AACH;;AACD,WAAO9ogB,IAAP;AACH;;AACD+ogB,EAAAA,UAAU,GAAG;AACT,UAAM;AAAEJ,MAAAA;AAAF,QAAiB,IAAvB;AACA,UAAMz3jB,OAAO,GAAGy3jB,SAAS,CAACA,SAAS,CAAC5y5B,MAAV,GAAmB,CAApB,CAAzB;;AACA,QAAI,CAACm7V,OAAL,EAAc;AACV,aAAO43jB,UAAU,EAAjB;AACH;;AACD,WAAO53jB,OAAP;AACH;;AACQ,MAALzwQ,KAAK,GAAG;AACR,WAAO,KAAKso0B,UAAL,GAAkBto0B,KAAzB;AACH;;AACS,MAANihD,MAAM,GAAG;AACT,WAAO,KAAKqnxB,UAAL,GAAkBrnxB,MAAzB;AACH;;AACDsmxB,EAAAA,WAAW,CAAC9i2B,CAAD,EAAI;AACX,QAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B;AACvB,aAAOA,CAAP;AACH;;AACD,QAAIA,CAAC,KAAK,GAAV,EAAe;AACX,aAAO,KAAKu7B,KAAZ;AACH;;AACD,QAAIv7B,CAAC,KAAK,GAAV,EAAe;AACX,aAAO,KAAKw8E,MAAZ;AACH;;AACD,WAAO70F,IAAI,CAACmhQ,IAAL,CAAUnhQ,IAAI,CAACygB,GAAL,CAAS,KAAKmzB,KAAd,EAAqB,CAArB,IAA0B5zC,IAAI,CAACygB,GAAL,CAAS,KAAKo0E,MAAd,EAAsB,CAAtB,CAApC,IAAgE70F,IAAI,CAACmhQ,IAAL,CAAU,CAAV,CAAvE;AACH;;AACDhtQ,EAAAA,WAAW,GAAE;AACT,SAAK2n3B,SAAL,GAAiB,EAAjB;AACH;;AAhDU;;AAkDfD,QAAQ,CAACM,sBAAT,GAAkC,GAAlC;AACAN,QAAQ,CAACO,uBAAT,GAAmC,GAAnC;;AACA,SAASH,UAAT,GAAsB;AAClB,SAAO;AACHro0B,IAAAA,KAAK,EAAEio0B,QAAQ,CAACM,sBADb;AAEHtnxB,IAAAA,MAAM,EAAEgnxB,QAAQ,CAACO;AAFd,GAAP;AAIH;;AAED,MAAMrtV,KAAN,CAAY;AACI,SAALngiB,KAAK,CAAC2jE,KAAD,EAAQ;AAChB,QAAI9wB,YAAY,GAAGtO,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,CAApF;AACA,UAAM,CAACta,CAAC,GAAG4oB,YAAL,EAAmB48D,CAAC,GAAG58D,YAAvB,IAAuCs20B,SAAS,CAACxlzB,KAAD,CAAtD;AACA,WAAO,IAAIw8d,KAAJ,CAAUl2gB,CAAV,EAAawlF,CAAb,CAAP;AACH;;AACgB,SAAVg+wB,UAAU,CAACx/xB,KAAD,EAAQ;AACrB,QAAIp7C,YAAY,GAAGtO,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,CAApF;AACA,UAAM,CAACta,CAAC,GAAG4oB,YAAL,EAAmB48D,CAAC,GAAGxlF,CAAvB,IAA4Bk/1B,SAAS,CAACl7xB,KAAD,CAA3C;AACA,WAAO,IAAIkyc,KAAJ,CAAUl2gB,CAAV,EAAawlF,CAAb,CAAP;AACH;;AACe,SAATi+wB,SAAS,CAAC1t5B,IAAD,EAAO;AACnB,UAAMqoX,MAAM,GAAG8giB,SAAS,CAACnp5B,IAAD,CAAxB;AACA,UAAMsjG,GAAG,GAAG+kR,MAAM,CAAC/tX,MAAnB;AACA,UAAMqz5B,UAAU,GAAG,EAAnB;;AACA,SAAI,IAAIx05B,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGmqG,GAAnB,EAAwBnqG,CAAC,IAAI,CAA7B,EAA+B;AAC3Bw05B,MAAAA,UAAU,CAACpm3B,IAAX,CAAgB,IAAI44hB,KAAJ,CAAU93M,MAAM,CAAClvX,CAAD,CAAhB,EAAqBkvX,MAAM,CAAClvX,CAAC,GAAG,CAAL,CAA3B,CAAhB;AACH;;AACD,WAAOw05B,UAAP;AACH;;AACDC,EAAAA,OAAO,CAACjqzB,KAAD,EAAQ;AACX,WAAOvyD,IAAI,CAACihQ,KAAL,CAAW1uM,KAAK,CAAC8rC,CAAN,GAAU,KAAKA,CAA1B,EAA6B9rC,KAAK,CAAC15C,CAAN,GAAU,KAAKA,CAA5C,CAAP;AACH;;AACD4j2B,EAAAA,cAAc,CAACl80B,SAAD,EAAY;AACtB,UAAM;AAAE1nB,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,IAAnB;AACA,UAAM2pQ,EAAE,GAAGnvV,CAAC,GAAG0nB,SAAS,CAAC,CAAD,CAAb,GAAmB89D,CAAC,GAAG99D,SAAS,CAAC,CAAD,CAAhC,GAAsCA,SAAS,CAAC,CAAD,CAA1D;AACA,UAAM0nU,EAAE,GAAGpvV,CAAC,GAAG0nB,SAAS,CAAC,CAAD,CAAb,GAAmB89D,CAAC,GAAG99D,SAAS,CAAC,CAAD,CAAhC,GAAsCA,SAAS,CAAC,CAAD,CAA1D;AACA,SAAK1nB,CAAL,GAASmvV,EAAT;AACA,SAAK3pQ,CAAL,GAAS4pQ,EAAT;AACH;;AACD9zW,EAAAA,WAAW,CAAC0kB,CAAD,EAAIwlF,CAAJ,EAAM;AACb,SAAKxlF,CAAL,GAASA,CAAT;AACA,SAAKwlF,CAAL,GAASA,CAAT;AACH;;AAjCO;;AAoCZ,MAAMq+wB,KAAN,CAAY;AACRC,EAAAA,SAAS,GAAG;AACR,WAAO,KAAKC,OAAZ;AACH;;AACDt01B,EAAAA,KAAK,GAAG;AACJ,QAAI,KAAKs01B,OAAT,EAAkB;AACd;AACH;;AACD,UAAM;AAAEjpS,MAAAA,MAAF;AAAWtrL,MAAAA,OAAX;AAAqBh4S,MAAAA;AAArB,QAAsC,IAA5C;AACA,UAAM8yP,MAAM,GAAGwwO,MAAM,CAACl5O,GAAP,CAAW0I,MAA1B;AACAA,IAAAA,MAAM,CAAC05gB,OAAP,GAAiBx0d,OAAjB;AACAllD,IAAAA,MAAM,CAAC08P,WAAP,GAAqBxvf,WAArB;AACA,SAAKuswB,OAAL,GAAe,IAAf;AACH;;AACD3z1B,EAAAA,IAAI,GAAG;AACH,QAAI,CAAC,KAAK2z1B,OAAV,EAAmB;AACf;AACH;;AACD,UAAMz5gB,MAAM,GAAG,KAAKwwO,MAAL,CAAYl5O,GAAZ,CAAgB0I,MAA/B;AACA,SAAKy5gB,OAAL,GAAe,KAAf;AACAz5gB,IAAAA,MAAM,CAAC05gB,OAAP,GAAiB,IAAjB;AACA15gB,IAAAA,MAAM,CAAC08P,WAAP,GAAqB,IAArB;AACH;;AACDi9Q,EAAAA,SAAS,GAAG;AACR,WAAO,KAAKF,OAAL,IAAgB,KAAKrwtB,MAAL,CAAYrjM,MAAZ,GAAqB,CAA5C;AACH;;AACD6z5B,EAAAA,SAAS,GAAG;AACR,QAAI,CAAC,KAAKH,OAAV,EAAmB;AACf;AACH;;AACD,UAAM;AAAEjpS,MAAAA,MAAM,EAAE7njB,QAAV;AAAqBygI,MAAAA,MAArB;AAA8BywtB,MAAAA;AAA9B,QAAiD,IAAvD;AACA,UAAM;AAAEpoxB,MAAAA;AAAF,QAAa9oE,QAAQ,CAAC2uU,GAAT,CAAa0I,MAAhC;AACA,QAAI7+S,OAAJ,CANQ,CAOR;;AACA,QAAIswC,KAAJ,EAAW;AACPA,MAAAA,KAAK,CAACiyL,MAAN,GAAe,EAAf;AACH;;AACDt6H,IAAAA,MAAM,CAAC1+I,OAAP,CAAe,CAACqjH,KAAD,EAAQnpK,CAAR,KAAY;AACvB,UAAI;AAAEm4kB,QAAAA;AAAF,UAAWhva,KAAf;AACA5sE,MAAAA,OAAO,GAAG04zB,aAAa,CAACj15B,CAAD,CAAvB;;AACA,aAAMu8F,OAAN,EAAc;AACV47e,QAAAA,GAAG,CAAC57e,OAAD,CAAH;AACAA,QAAAA,OAAO,GAAGA,OAAO,CAAClT,MAAlB;AACH;AACJ,KAPD,EAXQ,CAmBR;;AACA,SAAKm7G,MAAL,GAAc,EAAd;AACA,SAAKywtB,aAAL,GAAqB,EAArB;AACH;;AACDC,EAAAA,SAAS,CAAC34zB,OAAD,EAAUm2S,GAAV,EAAe;AACpB,QAAI,CAAC,KAAKmihB,OAAN,IAAiB,CAACnihB,GAAtB,EAA2B;AACvB;AACH;;AACD,UAAM;AAAEluM,MAAAA,MAAF;AAAWywtB,MAAAA;AAAX,QAA8B,IAApC;AACAzwtB,IAAAA,MAAM,CAAC1+I,OAAP,CAAe,CAACqjH,KAAD,EAAQnpK,CAAR,KAAY;AACvB,UAAI;AAAE8wD,QAAAA,CAAF;AAAMwlF,QAAAA;AAAN,UAAa6yB,KAAjB,CADuB,CAEvB;;AACA,UAAI,CAAC8rvB,aAAa,CAACj15B,CAAD,CAAd,IAAqB0yY,GAAG,CAACqJ,aAAzB,IAA0CrJ,GAAG,CAACqJ,aAAJ,CAAkBjrV,CAAlB,EAAqBwlF,CAArB,CAA9C,EAAuE;AACnE2+wB,QAAAA,aAAa,CAACj15B,CAAD,CAAb,GAAmBu8F,OAAnB;AACH;AACJ,KAND;AAOH;;AACD44zB,EAAAA,gBAAgB,CAAC54zB,OAAD,EAAU6wd,WAAV,EAAuB;AACnC,QAAI,CAAC,KAAKynW,OAAN,IAAiB,CAACznW,WAAtB,EAAmC;AAC/B;AACH;;AACD,UAAM;AAAE5oX,MAAAA,MAAF;AAAWywtB,MAAAA;AAAX,QAA8B,IAApC;AACAzwtB,IAAAA,MAAM,CAAC1+I,OAAP,CAAe,CAACqjH,KAAD,EAAQnpK,CAAR,KAAY;AACvB,UAAI;AAAE8wD,QAAAA,CAAF;AAAMwlF,QAAAA;AAAN,UAAa6yB,KAAjB;;AACA,UAAI,CAAC8rvB,aAAa,CAACj15B,CAAD,CAAd,IAAqBotjB,WAAW,CAACgoW,YAAZ,CAAyBtk2B,CAAzB,EAA4BwlF,CAA5B,CAAzB,EAAyD;AACrD2+wB,QAAAA,aAAa,CAACj15B,CAAD,CAAb,GAAmBu8F,OAAnB;AACH;AACJ,KALD;AAMH;;AACD84zB,EAAAA,KAAK,CAACvk2B,CAAD,EAAIwlF,CAAJ,EAAO;AACR,UAAM;AAAEnvF,MAAAA,MAAF;AAAWurV,MAAAA;AAAX,QAAoB,KAAKk5O,MAA/B;AACA,UAAMphhB,KAAK,GAAG,IAAIw8d,KAAJ,CAAUl2gB,CAAV,EAAawlF,CAAb,CAAd;AACA,QAAI/5C,OAAO,GAAGm2S,GAAG,CAAC0I,MAAlB;;AACA,WAAM7+S,OAAN,EAAc;AACViO,MAAAA,KAAK,CAAC15C,CAAN,IAAWyrC,OAAO,CAAC4jM,UAAnB;AACA31L,MAAAA,KAAK,CAAC8rC,CAAN,IAAW/5C,OAAO,CAAC6jM,SAAnB;AACA7jM,MAAAA,OAAO,GAAGA,OAAO,CAAC81C,YAAlB;AACH;;AACD,QAAIlrF,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACgwhB,OAA3D,EAAoE;AAChE3se,MAAAA,KAAK,CAAC15C,CAAN,IAAW3J,MAAM,CAACgwhB,OAAlB;AACH;;AACD,QAAIhwhB,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACugR,OAA3D,EAAoE;AAChEl9N,MAAAA,KAAK,CAAC8rC,CAAN,IAAWnvF,MAAM,CAACugR,OAAlB;AACH;;AACD,WAAOl9N,KAAP;AACH;;AACD81V,EAAAA,OAAO,CAACrxa,KAAD,EAAQ;AACX,UAAM;AAAE6hC,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,KAAK++wB,KAAL,CAAWpm4B,KAAK,CAAC60H,OAAjB,EAA0B70H,KAAK,CAAC+0H,OAAhC,CAAnB;AACA,SAAKwgD,MAAL,CAAYp2J,IAAZ,CAAiB;AACbuD,MAAAA,IAAI,EAAE,SADO;AAEbmf,MAAAA,CAFa;AAGbwlF,MAAAA,CAHa;;AAIb6hc,MAAAA,GAAG,CAAExqW,WAAF,EAAe;AACd,YAAIA,WAAW,CAAC2yN,OAAhB,EAAyB;AACrB3yN,UAAAA,WAAW,CAAC2yN,OAAZ;AACH;AACJ;;AARY,KAAjB;AAUH;;AACDh4S,EAAAA,WAAW,CAACr5H,KAAD,EAAQ;AACf,UAAM;AAAE6hC,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,KAAK++wB,KAAL,CAAWpm4B,KAAK,CAAC60H,OAAjB,EAA0B70H,KAAK,CAAC+0H,OAAhC,CAAnB;AACA,SAAKwgD,MAAL,CAAYp2J,IAAZ,CAAiB;AACbuD,MAAAA,IAAI,EAAE,aADO;AAEbmf,MAAAA,CAFa;AAGbwlF,MAAAA,CAHa;;AAIb6hc,MAAAA,GAAG,CAAExqW,WAAF,EAAe;AACd,YAAIA,WAAW,CAACrlF,WAAhB,EAA6B;AACzBqlF,UAAAA,WAAW,CAACrlF,WAAZ;AACH;AACJ;;AARY,KAAjB;AAUH;;AACDl8G,EAAAA,WAAW,CAACw/kB,MAAD,EAAQ;AACf,SAAKA,MAAL,GAAcA,MAAd;AACA,SAAKipS,OAAL,GAAe,KAAf;AACA,SAAKrwtB,MAAL,GAAc,EAAd;AACA,SAAKywtB,aAAL,GAAqB,EAArB;AACA,SAAK30d,OAAL,GAAe,KAAKA,OAAL,CAAatjY,IAAb,CAAkB,IAAlB,CAAf;AACA,SAAKsrF,WAAL,GAAmB,KAAKA,WAAL,CAAiBtrF,IAAjB,CAAsB,IAAtB,CAAnB;AACH;;AA5HO;;AA+HZ,MAAMs41B,aAAa,GAAG,OAAOnu2B,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyC,IAA/D;AACA,MAAMou2B,cAAc,GAAG,OAAO5n3B,KAAP,KAAiB,WAAjB,GAA+BA,KAAK,CAACqvB,IAAN,CAAW56D,SAAX,CAA/B,CAAqD;AAArD,EACpBA,SADH;;AAEA,MAAMoz5B,MAAN,CAAa;AACTx50B,EAAAA,IAAI,CAACy50B,OAAD,EAAU;AACV,SAAKC,KAAL,CAAWtn3B,IAAX,CAAgBqn3B,OAAhB;AACH;;AACD7nzB,EAAAA,KAAK,GAAG;AACJ;AACA,QAAI,CAAC,KAAK+nzB,YAAV,EAAwB;AACpB,aAAO9s3B,OAAO,CAACc,OAAR,EAAP;AACH;;AACD,WAAO,KAAKgs3B,YAAZ;AACH;;AACDvpyB,EAAAA,OAAO,GAAG;AACN,QAAI,KAAKwpyB,WAAT,EAAsB;AAClB,aAAO,IAAP;AACH;;AACD,UAAMA,WAAW,GAAG,KAAKF,KAAL,CAAW7g0B,KAAX,CAAkBhjE,CAAD,IAAKA,CAAC,EAAvB,CAApB;;AAEA,QAAI+j4B,WAAJ,EAAiB;AACb,WAAKF,KAAL,GAAa,EAAb;;AACA,UAAI,KAAKG,YAAT,EAAuB;AACnB,aAAKA,YAAL;AACH;AACJ;;AACD,SAAKD,WAAL,GAAmBA,WAAnB;AACA,WAAOA,WAAP;AACH;;AACDE,EAAAA,WAAW,CAACpjhB,GAAD,EAAM;AACb;AACAA,IAAAA,GAAG,CAACG,WAAJ,GAAkB,eAAlB;AACAH,IAAAA,GAAG,CAACwH,OAAJ,GAAc,MAAd;AACAxH,IAAAA,GAAG,CAAC0H,QAAJ,GAAe,OAAf;AACA1H,IAAAA,GAAG,CAACshM,UAAJ,GAAiB,CAAjB;AACH;;AACD+hV,EAAAA,UAAU,CAAC5svB,KAAD,EAAQ;AACd,QAAI;AAAEplG,MAAAA,QAAF;AAAa2uU,MAAAA,GAAb;AAAmBsjhB,MAAAA,WAAnB;AAAiCnq0B,MAAAA,KAAjC;AAAyCoq0B,MAAAA,YAAzC;AAAwDnpxB,MAAAA,MAAxD;AAAiEopxB,MAAAA,aAAjE;AAAiF/ke,MAAAA,IAAI,GAAE,CAAvF;AAA2F0zT,MAAAA,IAAI,GAAE,CAAjG;AAAqGsxK,MAAAA,IAArG;AAA4GC,MAAAA,IAA5G;AAAmHnxd,MAAAA,IAAI,GAAE,KAAzH;AAAiIoxd,MAAAA,KAAK,GAAE,CAAxI;AAA4IC,MAAAA,KAAK,GAAE;AAAnJ,QAA0JntvB,KAA9J,CADc,CAEd;;AACA,UAAMotvB,gBAAgB,GAAGzG,cAAc,CAACkG,WAAD,CAAd,CAA4Bl74B,OAA5B,CAAoC,UAApC,EAAgD,EAAhD,CAAzB,CAA6E;AAA7E;AAEA,UAAM,CAAC074B,gBAAD,EAAmBC,sBAAnB,IAA6CF,gBAAgB,CAAC1r5B,KAAjB,CAAuB,GAAvB,CAAnD;AACA,UAAMmwY,KAAK,GAAGw7gB,gBAAgB,IAAI,UAAlC;AACA,UAAME,WAAW,GAAGD,sBAAsB,IAAI,MAA9C,CAPc,CAQd;;AACA,UAAMzhV,MAAM,GAAGnpf,KAAK,GAAGoq0B,YAAvB;AACA,UAAMU,MAAM,GAAG7pxB,MAAM,GAAGopxB,aAAxB;AACA,UAAMU,QAAQ,GAAG3+2B,IAAI,CAACoS,GAAL,CAAS2qhB,MAAT,EAAiB2hV,MAAjB,CAAjB;AACA,UAAME,QAAQ,GAAG5+2B,IAAI,CAACC,GAAL,CAAS88hB,MAAT,EAAiB2hV,MAAjB,CAAjB;AACA,QAAIG,iBAAiB,GAAGb,YAAxB;AACA,QAAIc,kBAAkB,GAAGb,aAAzB;;AACA,QAAIQ,WAAW,KAAK,MAApB,EAA4B;AACxBI,MAAAA,iBAAiB,IAAIF,QAArB;AACAG,MAAAA,kBAAkB,IAAIH,QAAtB;AACH;;AACD,QAAIF,WAAW,KAAK,OAApB,EAA6B;AACzBI,MAAAA,iBAAiB,IAAID,QAArB;AACAE,MAAAA,kBAAkB,IAAIF,QAAtB;AACH;;AACD,UAAMG,QAAQ,GAAG,IAAI/E,QAAJ,CAAalu1B,QAAb,EAAuB,MAAvB,EAA+Boy1B,IAA/B,CAAjB;AACA,UAAMc,QAAQ,GAAG,IAAIhF,QAAJ,CAAalu1B,QAAb,EAAuB,MAAvB,EAA+Bqy1B,IAA/B,CAAjB;AACA,UAAMc,OAAO,GAAGF,QAAQ,CAACz/uB,QAAT,MAAuB0/uB,QAAQ,CAAC1/uB,QAAT,EAAvC;;AACA,QAAI2/uB,OAAJ,EAAa;AACTxkhB,MAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAAC4swB,QAAD,GAAYI,QAAQ,CAACjE,SAAT,CAAmB,GAAnB,CAA1B,EAAmD,CAAC6D,QAAD,GAAYK,QAAQ,CAAClE,SAAT,CAAmB,GAAnB,CAA/D;AACH;;AACD,QAAI9td,IAAJ,EAAU;AACN,YAAMkyd,WAAW,GAAGP,QAAQ,GAAGP,KAA/B;AACA,YAAMe,WAAW,GAAGR,QAAQ,GAAGN,KAA/B;AACA5jhB,MAAAA,GAAG,CAAC6R,SAAJ;AACA7R,MAAAA,GAAG,CAAC2M,MAAJ,CAAW83gB,WAAX,EAAwBC,WAAxB;AACA1khB,MAAAA,GAAG,CAAC4M,MAAJ,CAAWzzT,KAAX,EAAkBur0B,WAAlB;AACA1khB,MAAAA,GAAG,CAAC4M,MAAJ,CAAWzzT,KAAX,EAAkBihD,MAAlB;AACA4lQ,MAAAA,GAAG,CAAC4M,MAAJ,CAAW63gB,WAAX,EAAwBrqxB,MAAxB;AACA4lQ,MAAAA,GAAG,CAAC6M,SAAJ;AACA7M,MAAAA,GAAG,CAACuyD,IAAJ;AACH;;AACD,QAAI,CAACiyd,OAAL,EAAc;AACV,YAAMG,UAAU,GAAGX,WAAW,KAAK,MAAhB,IAA0BE,QAAQ,KAAKD,MAA1D;AACA,YAAMW,WAAW,GAAGZ,WAAW,KAAK,OAAhB,IAA2BG,QAAQ,KAAKF,MAA5D;AACA,YAAMY,UAAU,GAAGb,WAAW,KAAK,MAAhB,IAA0BE,QAAQ,KAAK5hV,MAA1D;AACA,YAAMwiV,WAAW,GAAGd,WAAW,KAAK,OAAhB,IAA2BG,QAAQ,KAAK7hV,MAA5D;;AACA,UAAIh6L,KAAK,CAACh2X,UAAN,CAAiB,MAAjB,MAA6Bqy4B,UAAU,IAAIC,WAA3C,CAAJ,EAA6D;AACzD5khB,QAAAA,GAAG,CAAC1oP,SAAJ,CAAcn+D,KAAK,GAAG,CAAR,GAAYir0B,iBAAiB,GAAG,CAA9C,EAAiD,CAAjD;AACH;;AACD,UAAI97gB,KAAK,CAAC5zY,QAAN,CAAe,MAAf,MAA2Bmw5B,UAAU,IAAIC,WAAzC,CAAJ,EAA2D;AACvD9khB,QAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAAd,EAAiBld,MAAM,GAAG,CAAT,GAAaiqxB,kBAAkB,GAAG,CAAnD;AACH;;AACD,UAAI/7gB,KAAK,CAACh2X,UAAN,CAAiB,MAAjB,MAA6Bqy4B,UAAU,IAAIC,WAA3C,CAAJ,EAA6D;AACzD5khB,QAAAA,GAAG,CAAC1oP,SAAJ,CAAcn+D,KAAK,GAAGir0B,iBAAtB,EAAyC,CAAzC;AACH;;AACD,UAAI97gB,KAAK,CAAC5zY,QAAN,CAAe,MAAf,MAA2Bmw5B,UAAU,IAAIC,WAAzC,CAAJ,EAA2D;AACvD9khB,QAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAAd,EAAiBld,MAAM,GAAGiqxB,kBAA1B;AACH;AACJ,KAzDa,CA0Dd;;;AACA,YAAO,IAAP;AACI,WAAK/7gB,KAAK,KAAK,MAAf;AACItI,QAAAA,GAAG,CAAC59Q,KAAJ,CAAUkgd,MAAV,EAAkB2hV,MAAlB;AACA;;AACJ,WAAKD,WAAW,KAAK,MAArB;AACIhkhB,QAAAA,GAAG,CAAC59Q,KAAJ,CAAU8hyB,QAAV,EAAoBA,QAApB;AACA;;AACJ,WAAKF,WAAW,KAAK,OAArB;AACIhkhB,QAAAA,GAAG,CAAC59Q,KAAJ,CAAU+hyB,QAAV,EAAoBA,QAApB;AACA;AATR,KA3Dc,CAsEd;;;AACAnkhB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACmnS,IAAf,EAAqB,CAAC0zT,IAAtB;AACH;;AACDtkrB,EAAAA,KAAK,CAACg8B,OAAD,EAAU;AACX,QAAI;AAAEk7zB,MAAAA,YAAY,GAAE,KAAhB;AAAwBnhU,MAAAA,WAAW,GAAE,KAArC;AAA6CC,MAAAA,eAAe,GAAE,KAA9D;AAAsEC,MAAAA,gBAAgB,GAAE,KAAxF;AAAgGkhU,MAAAA,WAAW,GAAE,KAA7G;AAAqHC,MAAAA,WAArH;AAAmIC,MAAAA,UAAnI;AAAgJC,MAAAA,WAAhJ;AAA8J9/mB,MAAAA,OAA9J;AAAwKC,MAAAA;AAAxK,QAAqL5sO,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,EAA1P;AACA,UAAM;AAAEu6qB,MAAAA;AAAF,QAAa,IAAnB;AACA,UAAMmyK,aAAa,GAAG,OAAOtC,MAAM,CAACuC,SAApC;AACA,SAAKnC,WAAL,GAAmB,KAAnB;AACA,SAAKkC,aAAL,GAAqBA,aAArB;AACA,SAAKnC,YAAL,GAAoB,IAAI9s3B,OAAJ,CAAac,OAAD,IAAW;AACvC,WAAKks3B,YAAL,GAAoBls3B,OAApB;AACH,KAFmB,CAApB;;AAGA,QAAI,KAAKyiF,OAAL,EAAJ,EAAoB;AAChB,WAAKqmR,MAAL,CAAYl2S,OAAZ,EAAqBi6f,gBAArB,EAAuCkhU,WAAvC,EAAoDE,UAApD,EAAgEC,WAAhE,EAA6E9/mB,OAA7E,EAAsFC,OAAtF;AACH;;AACD,QAAI,CAACy/mB,YAAL,EAAmB;AACf;AACH;;AACD,QAAI7+2B,GAAG,GAAGrgB,IAAI,CAACqgB,GAAL,EAAV;AACA,QAAIjT,IAAI,GAAGiT,GAAX;AACA,QAAIknF,KAAK,GAAG,CAAZ;;AACA,UAAMw/S,IAAI,GAAG,MAAI;AACb1mY,MAAAA,GAAG,GAAGrgB,IAAI,CAACqgB,GAAL,EAAN;AACAknF,MAAAA,KAAK,GAAGlnF,GAAG,GAAGjT,IAAd;;AACA,UAAIm6F,KAAK,IAAIg4xB,aAAb,EAA4B;AACxBny3B,QAAAA,IAAI,GAAGiT,GAAG,GAAGknF,KAAK,GAAGg4xB,aAArB;;AACA,YAAI,KAAKE,YAAL,CAAkBzhU,eAAlB,EAAmCohU,WAAnC,CAAJ,EAAqD;AACjD,eAAKllhB,MAAL,CAAYl2S,OAAZ,EAAqBi6f,gBAArB,EAAuCkhU,WAAvC,EAAoDE,UAApD,EAAgEC,WAAhE,EAA6E9/mB,OAA7E,EAAsFC,OAAtF;AACA2tc,UAAAA,KAAK,CAACqvK,SAAN;AACH;AACJ;;AACD,WAAKvmmB,UAAL,GAAkBh0B,gCAAqB,CAAC6kJ,IAAD,CAAvC;AACH,KAXD;;AAYA,QAAI,CAACg3K,WAAL,EAAkB;AACdqvJ,MAAAA,KAAK,CAACplrB,KAAN;AACH;;AACD,SAAKkuP,UAAL,GAAkBh0B,gCAAqB,CAAC6kJ,IAAD,CAAvC;AACH;;AACDp+W,EAAAA,IAAI,GAAG;AACH,QAAI,KAAKutP,UAAT,EAAqB;AACjBh0B,MAAAA,uCAAA,CAA6B,KAAKg0B,UAAlC;AACA,WAAKA,UAAL,GAAkB,IAAlB;AACH;;AACD,SAAKk3b,KAAL,CAAWzkrB,IAAX;AACH;;AACD821B,EAAAA,YAAY,CAACzhU,eAAD,EAAkBohU,WAAlB,EAA+B;AACvC;AACA,QAAI,CAACphU,eAAL,EAAsB;AAClB,YAAM;AAAEuhU,QAAAA;AAAF,UAAqB,IAA3B;AACA,YAAMG,aAAa,GAAG,KAAKlgG,UAAL,CAAgB7szB,MAAhB,CAAuB,CAAC8s5B,YAAD,EAAe/+U,SAAf,KAA2BA,SAAS,CAACh5kB,MAAV,CAAiB635B,aAAjB,KAAmCE,YAArF,EACpB,KADoB,CAAtB;;AAEA,UAAIC,aAAJ,EAAmB;AACf,eAAO,IAAP;AACH;AACJ,KATsC,CAUvC;;;AACA,QAAI,OAAON,WAAP,KAAuB,UAAvB,IAAqCA,WAAW,EAApD,EAAwD;AACpD,aAAO,IAAP;AACH;;AACD,QAAI,CAAC,KAAK/B,WAAN,IAAqB,KAAKxpyB,OAAL,EAAzB,EAAyC;AACrC,aAAO,IAAP;AACH,KAhBsC,CAiBvC;;;AACA,QAAI,KAAKu5nB,KAAL,CAAWovK,SAAX,EAAJ,EAA4B;AACxB,aAAO,IAAP;AACH;;AACD,WAAO,KAAP;AACH;;AACDtihB,EAAAA,MAAM,CAACl2S,OAAD,EAAUi6f,gBAAV,EAA4BkhU,WAA5B,EAAyCE,UAAzC,EAAqDC,WAArD,EAAkE9/mB,OAAlE,EAA2EC,OAA3E,EAAoF;AACtF,UAAM;AAAEm7mB,MAAAA,QAAF;AAAazghB,MAAAA,GAAb;AAAmBwlhB,MAAAA;AAAnB,QAAsC,IAA5C;AACA,UAAM98gB,MAAM,GAAG1I,GAAG,CAAC0I,MAAnB;AACA+3gB,IAAAA,QAAQ,CAAC35oB,KAAT;;AACA,QAAI4hI,MAAM,CAACvvT,KAAP,IAAgBuvT,MAAM,CAACtuQ,MAA3B,EAAmC;AAC/BqmxB,MAAAA,QAAQ,CAACa,UAAT,CAAoB54gB,MAAM,CAACvvT,KAA3B,EAAkCuvT,MAAM,CAACtuQ,MAAzC;AACH;;AACD,UAAMqrxB,UAAU,GAAG57zB,OAAO,CAAC+ke,QAAR,CAAiB,OAAjB,CAAnB;AACA,UAAM82V,WAAW,GAAG77zB,OAAO,CAAC+ke,QAAR,CAAiB,QAAjB,CAApB;;AACA,QAAI,CAACk1B,gBAAD,KAAsB0hU,aAAa,IAAI,OAAON,UAAP,KAAsB,QAAtB,IAAkC,OAAOC,WAAP,KAAuB,QAAhG,CAAJ,EAA+G;AAC3G;AACA,UAAIM,UAAU,CAAC5gvB,QAAX,EAAJ,EAA2B;AACvB6jO,QAAAA,MAAM,CAACvvT,KAAP,GAAess0B,UAAU,CAACpF,SAAX,CAAqB,GAArB,CAAf,CADuB,CAEvB;;AACA,YAAI33gB,MAAM,CAACvuQ,KAAX,EAAkB;AACduuQ,UAAAA,MAAM,CAACvuQ,KAAP,CAAahhD,KAAb,GAAqB,GAAGjtC,MAAH,CAAUw8V,MAAM,CAACvvT,KAAjB,EAAwB,IAAxB,CAArB;AACH;AACJ;;AACD,UAAIus0B,WAAW,CAAC7gvB,QAAZ,EAAJ,EAA4B;AACxB6jO,QAAAA,MAAM,CAACtuQ,MAAP,GAAgBsrxB,WAAW,CAACrF,SAAZ,CAAsB,GAAtB,CAAhB,CADwB,CAExB;;AACA,YAAI33gB,MAAM,CAACvuQ,KAAX,EAAkB;AACduuQ,UAAAA,MAAM,CAACvuQ,KAAP,CAAaC,MAAb,GAAsB,GAAGluF,MAAH,CAAUw8V,MAAM,CAACtuQ,MAAjB,EAAyB,IAAzB,CAAtB;AACH;AACJ;AACJ;;AACD,QAAIurxB,MAAM,GAAGj9gB,MAAM,CAAC7tQ,WAAP,IAAsB6tQ,MAAM,CAACvvT,KAA1C;AACA,QAAIys0B,OAAO,GAAGl9gB,MAAM,CAACruQ,YAAP,IAAuBquQ,MAAM,CAACtuQ,MAA5C;;AACA,QAAI0pd,gBAAgB,IAAI2hU,UAAU,CAAC5gvB,QAAX,EAApB,IAA6C6gvB,WAAW,CAAC7gvB,QAAZ,EAAjD,EAAyE;AACrE8gvB,MAAAA,MAAM,GAAGF,UAAU,CAACpF,SAAX,CAAqB,GAArB,CAAT;AACAuF,MAAAA,OAAO,GAAGF,WAAW,CAACrF,SAAZ,CAAsB,GAAtB,CAAV;AACH;;AACDI,IAAAA,QAAQ,CAACa,UAAT,CAAoBqE,MAApB,EAA4BC,OAA5B;;AACA,QAAI,OAAOvgnB,OAAP,KAAmB,QAAvB,EAAiC;AAC7Bx7M,MAAAA,OAAO,CAACiwC,YAAR,CAAqB,GAArB,EAA0B,IAA1B,EAAgC2jB,QAAhC,CAAyC4nJ,OAAzC;AACH;;AACD,QAAI,OAAOC,OAAP,KAAmB,QAAvB,EAAiC;AAC7Bz7M,MAAAA,OAAO,CAACiwC,YAAR,CAAqB,GAArB,EAA0B,IAA1B,EAAgC2jB,QAAhC,CAAyC6nJ,OAAzC;AACH;;AACD,QAAI,OAAO4/mB,UAAP,KAAsB,QAAtB,IAAkC,OAAOC,WAAP,KAAuB,QAA7D,EAAuE;AACnE,YAAMj/D,OAAO,GAAGo3D,SAAS,CAACzzzB,OAAO,CAACiwC,YAAR,CAAqB,SAArB,EAAgC0lxB,SAAhC,EAAD,CAAzB;AACA,UAAIqG,MAAM,GAAG,CAAb;AACA,UAAIC,MAAM,GAAG,CAAb;;AACA,UAAI,OAAOZ,UAAP,KAAsB,QAA1B,EAAoC;AAChC,cAAMO,UAAU,GAAG57zB,OAAO,CAAC+ke,QAAR,CAAiB,OAAjB,CAAnB;;AACA,YAAI62V,UAAU,CAAC5gvB,QAAX,EAAJ,EAA2B;AACvBghvB,UAAAA,MAAM,GAAGJ,UAAU,CAACpF,SAAX,CAAqB,GAArB,IAA4B6E,UAArC;AACH,SAFD,MAEO,IAAIh/D,OAAO,CAAC,CAAD,CAAP,IAAc,CAACngzB,KAAK,CAACmgzB,OAAO,CAAC,CAAD,CAAR,CAAxB,EAAsC;AACzC2/D,UAAAA,MAAM,GAAG3/D,OAAO,CAAC,CAAD,CAAP,GAAag/D,UAAtB;AACH;AACJ;;AACD,UAAI,OAAOC,WAAP,KAAuB,QAA3B,EAAqC;AACjC,cAAMO,WAAW,GAAG77zB,OAAO,CAAC+ke,QAAR,CAAiB,QAAjB,CAApB;;AACA,YAAI82V,WAAW,CAAC7gvB,QAAZ,EAAJ,EAA4B;AACxBihvB,UAAAA,MAAM,GAAGJ,WAAW,CAACrF,SAAZ,CAAsB,GAAtB,IAA6B8E,WAAtC;AACH,SAFD,MAEO,IAAIj/D,OAAO,CAAC,CAAD,CAAP,IAAc,CAACngzB,KAAK,CAACmgzB,OAAO,CAAC,CAAD,CAAR,CAAxB,EAAsC;AACzC4/D,UAAAA,MAAM,GAAG5/D,OAAO,CAAC,CAAD,CAAP,GAAai/D,WAAtB;AACH;AACJ;;AACD,UAAI,CAACU,MAAL,EAAa;AACTA,QAAAA,MAAM,GAAGC,MAAT;AACH;;AACD,UAAI,CAACA,MAAL,EAAa;AACTA,QAAAA,MAAM,GAAGD,MAAT;AACH;;AACDh8zB,MAAAA,OAAO,CAACiwC,YAAR,CAAqB,OAArB,EAA8B,IAA9B,EAAoC2jB,QAApC,CAA6CynwB,UAA7C;AACAr7zB,MAAAA,OAAO,CAACiwC,YAAR,CAAqB,QAArB,EAA+B,IAA/B,EAAqC2jB,QAArC,CAA8C0nwB,WAA9C;AACA,YAAMY,cAAc,GAAGl8zB,OAAO,CAAC+ke,QAAR,CAAiB,WAAjB,EAA8B,IAA9B,EAAoC,IAApC,CAAvB;AACAm3V,MAAAA,cAAc,CAACtowB,QAAf,CAAwB,GAAGvxG,MAAH,CAAU652B,cAAc,CAACvG,SAAf,EAAV,EAAsC,SAAtC,EAAiDtz2B,MAAjD,CAAwD,IAAI252B,MAA5D,EAAoE,IAApE,EAA0E352B,MAA1E,CAAiF,IAAI452B,MAArF,EAA6F,GAA7F,CAAxB;AACH,KArEqF,CAsEtF;;;AACA,QAAI,CAACd,WAAL,EAAkB;AACdhlhB,MAAAA,GAAG,CAAC4Y,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoB+sgB,MAApB,EAA4BC,OAA5B;AACH;;AACD/7zB,IAAAA,OAAO,CAACk2S,MAAR,CAAeC,GAAf;;AACA,QAAIwlhB,aAAJ,EAAmB;AACf,WAAKA,aAAL,GAAqB,KAArB;AACH;AACJ;;AACD9r3B,EAAAA,WAAW,CAACsmW,GAAD,EAAM;AAAE/kW,IAAAA,KAAK,GAAE4n3B,cAAT;AAA0Bpu2B,IAAAA,MAAM,GAAEmu2B;AAAlC,MAAqD,EAA3D,EAA8D;AACrE,SAAK5ihB,GAAL,GAAWA,GAAX;AACA,SAAKyghB,QAAL,GAAgB,IAAIW,QAAJ,EAAhB;AACA,SAAKnuK,KAAL,GAAa,IAAIgvK,KAAJ,CAAU,IAAV,CAAb;AACA,SAAK58F,UAAL,GAAkB,EAAlB;AACA,SAAK29F,KAAL,GAAa,EAAb;AACA,SAAKoC,aAAL,GAAqB,CAArB;AACA,SAAKlC,WAAL,GAAmB,KAAnB;AACA,SAAKsC,aAAL,GAAqB,IAArB;AACA,SAAKzpmB,UAAL,GAAkB,IAAlB;AACA,SAAKtnQ,MAAL,GAAcA,MAAd;;AACA,QAAI,CAACxZ,KAAL,EAAY;AACR,YAAM,IAAIlrC,KAAJ,CAAU,mEAAV,CAAN;AACH;;AACD,SAAKkrC,KAAL,GAAaA,KAAb;AACH;;AAzQQ;;AA2Qb6n3B,MAAM,CAACF,aAAP,GAAuBA,aAAvB;AACAE,MAAM,CAACkD,YAAP,GAAsBnD,cAAtB;AACAC,MAAM,CAACuC,SAAP,GAAmB,EAAnB;AACAvC,MAAM,CAACmD,kBAAP,GAA4B,KAA5B;AAEA,MAAM;AAAED,EAAAA;AAAF,IAAoBlD,MAA1B;AACA,MAAMoD,gBAAgB,GAAG,OAAOrmxB,SAAP,KAAqB,WAArB,GAAmCA,SAAnC,GAA+CnwI,SAAxE;;AACA,MAAM2qiB,MAAN,CAAa;AACHlmgB,EAAAA,KAAK,CAACkjgB,QAAD,EAAW;AAAA;;AAAA;AAClB,UAAIA,QAAQ,CAAC/khB,UAAT,CAAoB,GAApB,CAAJ,EAA8B;AAC1B,eAAO,KAAI,CAACytH,eAAL,CAAqBs3Z,QAArB,CAAP;AACH;;AACD,aAAO,KAAI,CAACluc,IAAL,CAAUkuc,QAAV,CAAP;AAJkB;AAKrB;;AACDt3Z,EAAAA,eAAe,CAAC2ia,GAAD,EAAM;AACjB,UAAMnvgB,MAAM,GAAG,IAAI,KAAKssG,SAAT,EAAf;;AACA,QAAI;AACA,aAAO,KAAKsmxB,aAAL,CAAmB5y3B,MAAM,CAACwsG,eAAP,CAAuB2ia,GAAvB,EAA4B,eAA5B,CAAnB,CAAP;AACH,KAFD,CAEE,OAAO19f,GAAP,EAAY;AACV,aAAO,KAAKmh3B,aAAL,CAAmB5y3B,MAAM,CAACwsG,eAAP,CAAuB2ia,GAAvB,EAA4B,UAA5B,CAAnB,CAAP;AACH;AACJ;;AACDyjX,EAAAA,aAAa,CAAC901B,QAAD,EAAW;AACpB,UAAM+01B,WAAW,GAAG/01B,QAAQ,CAAC6pE,oBAAT,CAA8B,aAA9B,EAA6C,CAA7C,CAApB;;AACA,QAAIkrxB,WAAJ,EAAiB;AACb,YAAM,IAAIr25B,KAAJ,CAAUq25B,WAAW,CAACvugB,WAAZ,IAA2B,qBAArC,CAAN;AACH;;AACD,WAAOxmV,QAAP;AACH;;AACK83B,EAAAA,IAAI,CAACzuD,GAAD,EAAM;AAAA;;AAAA;AACZ,YAAMQ,QAAQ,SAAS,MAAI,CAACD,KAAL,CAAWP,GAAX,CAAvB;AACA,YAAMgogB,GAAG,SAASxngB,QAAQ,CAACuwB,IAAT,EAAlB;AACA,aAAO,MAAI,CAACs0E,eAAL,CAAqB2ia,GAArB,CAAP;AAHY;AAIf;;AACDhpgB,EAAAA,WAAW,CAAC;AAAEuB,IAAAA,KAAK,GAAE+q3B,YAAT;AAAwBnmxB,IAAAA,SAAS,GAAEqmxB;AAAnC,MAAyD,EAA1D,EAA6D;AACpE,QAAI,CAACjr3B,KAAL,EAAY;AACR,YAAM,IAAIlrC,KAAJ,CAAU,mEAAV,CAAN;AACH;;AACD,QAAI,CAAC8vI,SAAL,EAAgB;AACZ,YAAM,IAAI9vI,KAAJ,CAAU,uEAAV,CAAN;AACH;;AACD,SAAKkrC,KAAL,GAAaA,KAAb;AACA,SAAK4kG,SAAL,GAAiBA,SAAjB;AACH;;AApCQ;;AAuCb,MAAMwmxB,SAAN,CAAgB;AACZ5t1B,EAAAA,KAAK,CAACunU,GAAD,EAAM;AACP,UAAM;AAAE5hV,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,KAAK9rC,KAAxB;AACAkoS,IAAAA,GAAG,CAAC1oP,SAAJ,CAAcl5F,CAAC,IAAI,CAAnB,EAAsBwlF,CAAC,IAAI,CAA3B;AACH;;AACD0ixB,EAAAA,OAAO,CAACtmhB,GAAD,EAAM;AACT,UAAM;AAAE5hV,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,KAAK9rC,KAAxB;AACAkoS,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAAC,CAAD,GAAKl5F,CAAL,IAAU,CAAxB,EAA2B,CAAC,CAAD,GAAKwlF,CAAL,IAAU,CAArC;AACH;;AACDkgb,EAAAA,YAAY,CAAChsd,KAAD,EAAQ;AAChB,UAAM;AAAE15C,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,KAAK9rC,KAAxB;AACAA,IAAAA,KAAK,CAACkqzB,cAAN,CAAqB,CACjB,CADiB,EAEjB,CAFiB,EAGjB,CAHiB,EAIjB,CAJiB,EAKjB5j2B,CAAC,IAAI,CALY,EAMjBwlF,CAAC,IAAI,CANY,CAArB;AAQH;;AACDlqG,EAAAA,WAAW,CAACva,CAAD,EAAI24E,KAAJ,EAAU;AACjB,SAAK74D,IAAL,GAAY,WAAZ;AACA,SAAK64D,KAAL,GAAaw8d,KAAK,CAACngiB,KAAN,CAAY2jE,KAAZ,CAAb;AACH;;AAvBW;;AA0BhB,MAAM4gR,MAAN,CAAa;AACTjgT,EAAAA,KAAK,CAACunU,GAAD,EAAM;AACP,UAAM;AAAElc,MAAAA,EAAF;AAAOC,MAAAA,EAAP;AAAY+gY,MAAAA,OAAZ;AAAsBC,MAAAA,OAAtB;AAAgChgU,MAAAA;AAAhC,QAA2C,IAAjD;AACA,UAAMv3G,EAAE,GAAGs2C,EAAE,GAAGghY,OAAO,CAACu7J,SAAR,CAAkB,GAAlB,CAAhB;AACA,UAAMr6gB,EAAE,GAAGjiB,EAAE,GAAGghY,OAAO,CAACs7J,SAAR,CAAkB,GAAlB,CAAhB;AACArghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAck2L,EAAd,EAAkBw4D,EAAlB;AACAhG,IAAAA,GAAG,CAAC7nB,MAAJ,CAAW4sE,KAAK,CAAC47d,UAAN,EAAX;AACA3ghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACk2L,EAAf,EAAmB,CAACw4D,EAApB;AACH;;AACDsghB,EAAAA,OAAO,CAACtmhB,GAAD,EAAM;AACT,UAAM;AAAElc,MAAAA,EAAF;AAAOC,MAAAA,EAAP;AAAY+gY,MAAAA,OAAZ;AAAsBC,MAAAA,OAAtB;AAAgChgU,MAAAA;AAAhC,QAA2C,IAAjD;AACA,UAAMv3G,EAAE,GAAGs2C,EAAE,GAAGghY,OAAO,CAACu7J,SAAR,CAAkB,GAAlB,CAAhB;AACA,UAAMr6gB,EAAE,GAAGjiB,EAAE,GAAGghY,OAAO,CAACs7J,SAAR,CAAkB,GAAlB,CAAhB;AACArghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAck2L,EAAd,EAAkBw4D,EAAlB;AACAhG,IAAAA,GAAG,CAAC7nB,MAAJ,CAAW,CAAC,CAAD,GAAK4sE,KAAK,CAAC47d,UAAN,EAAhB;AACA3ghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACk2L,EAAf,EAAmB,CAACw4D,EAApB;AACH;;AACD89K,EAAAA,YAAY,CAAChsd,KAAD,EAAQ;AAChB,UAAM;AAAEgsR,MAAAA,EAAF;AAAOC,MAAAA,EAAP;AAAYghE,MAAAA;AAAZ,QAAuB,IAA7B;AACA,UAAMiC,GAAG,GAAGjC,KAAK,CAAC47d,UAAN,EAAZ;AACA7ozB,IAAAA,KAAK,CAACkqzB,cAAN,CAAqB,CACjB,CADiB,EAEjB,CAFiB,EAGjB,CAHiB,EAIjB,CAJiB,EAKjBl+hB,EAAE,IAAI,CALW,EAMjBC,EAAE,IAAI,CANW,CAMT;AANS,KAArB;AAQAjsR,IAAAA,KAAK,CAACkqzB,cAAN,CAAqB,CACjBz82B,IAAI,CAAC8gQ,GAAL,CAAS2gJ,GAAT,CADiB,EAEjBzhZ,IAAI,CAAC+gQ,GAAL,CAAS0gJ,GAAT,CAFiB,EAGjB,CAACzhZ,IAAI,CAAC+gQ,GAAL,CAAS0gJ,GAAT,CAHgB,EAIjBzhZ,IAAI,CAAC8gQ,GAAL,CAAS2gJ,GAAT,CAJiB,EAKjB,CALiB,EAMjB,CANiB,CAArB;AAQAlvV,IAAAA,KAAK,CAACkqzB,cAAN,CAAqB,CACjB,CADiB,EAEjB,CAFiB,EAGjB,CAHiB,EAIjB,CAJiB,EAKjB,CAACl+hB,EAAD,IAAO,CALU,EAMjB,CAACC,EAAD,IAAO,CANU,CAMR;AANQ,KAArB;AAQH;;AACDrqV,EAAAA,WAAW,CAAC23B,QAAD,EAAW8mT,MAAX,EAAmBg3Y,eAAnB,EAAmC;AAC1C,SAAKlwtB,IAAL,GAAY,QAAZ;AACA,UAAMu+2B,OAAO,GAAGF,SAAS,CAACnliB,MAAD,CAAzB;AACA,SAAK4sE,KAAL,GAAa,IAAIw6d,QAAJ,CAAalu1B,QAAb,EAAuB,OAAvB,EAAgCms1B,OAAO,CAAC,CAAD,CAAvC,CAAb;AACA,SAAK14J,OAAL,GAAeqK,eAAe,CAAC,CAAD,CAA9B;AACA,SAAKpK,OAAL,GAAeoK,eAAe,CAAC,CAAD,CAA9B;AACA,SAAKrrY,EAAL,GAAU05hB,OAAO,CAAC,CAAD,CAAP,IAAc,CAAxB;AACA,SAAKz5hB,EAAL,GAAUy5hB,OAAO,CAAC,CAAD,CAAP,IAAc,CAAxB;AACH;;AArDQ;;AAwDb,MAAMzqR,KAAN,CAAY;AACRt6jB,EAAAA,KAAK,CAACunU,GAAD,EAAM;AACP,UAAM;AAAE59Q,MAAAA,KAAK,EAAE;AAAEhkE,QAAAA,CAAF;AAAMwlF,QAAAA;AAAN,OAAT;AAAsBkhnB,MAAAA,OAAtB;AAAgCC,MAAAA;AAAhC,QAA6C,IAAnD;AACA,UAAMv3a,EAAE,GAAGs3a,OAAO,CAACu7J,SAAR,CAAkB,GAAlB,CAAX;AACA,UAAMr6gB,EAAE,GAAG++W,OAAO,CAACs7J,SAAR,CAAkB,GAAlB,CAAX;AACArghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAck2L,EAAd,EAAkBw4D,EAAlB;AACAhG,IAAAA,GAAG,CAAC59Q,KAAJ,CAAUhkE,CAAV,EAAawlF,CAAC,IAAIxlF,CAAlB;AACA4hV,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACk2L,EAAf,EAAmB,CAACw4D,EAApB;AACH;;AACDsghB,EAAAA,OAAO,CAACtmhB,GAAD,EAAM;AACT,UAAM;AAAE59Q,MAAAA,KAAK,EAAE;AAAEhkE,QAAAA,CAAF;AAAMwlF,QAAAA;AAAN,OAAT;AAAsBkhnB,MAAAA,OAAtB;AAAgCC,MAAAA;AAAhC,QAA6C,IAAnD;AACA,UAAMv3a,EAAE,GAAGs3a,OAAO,CAACu7J,SAAR,CAAkB,GAAlB,CAAX;AACA,UAAMr6gB,EAAE,GAAG++W,OAAO,CAACs7J,SAAR,CAAkB,GAAlB,CAAX;AACArghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAck2L,EAAd,EAAkBw4D,EAAlB;AACAhG,IAAAA,GAAG,CAAC59Q,KAAJ,CAAU,IAAIhkE,CAAd,EAAiB,IAAIwlF,CAAJ,IAASxlF,CAA1B;AACA4hV,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACk2L,EAAf,EAAmB,CAACw4D,EAApB;AACH;;AACD89K,EAAAA,YAAY,CAAChsd,KAAD,EAAQ;AAChB,UAAM;AAAE15C,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,KAAKxhB,KAAxB;AACAtqB,IAAAA,KAAK,CAACkqzB,cAAN,CAAqB,CACjB5j2B,CAAC,IAAI,CADY,EAEjB,CAFiB,EAGjB,CAHiB,EAIjBwlF,CAAC,IAAI,CAJY,EAKjB,CALiB,EAMjB,CANiB,CAArB;AAQH;;AACDlqG,EAAAA,WAAW,CAACva,CAAD,EAAIijG,KAAJ,EAAW+soB,eAAX,EAA2B;AAClC,SAAKlwtB,IAAL,GAAY,OAAZ;AACA,UAAMsn3B,SAAS,GAAGjyV,KAAK,CAACstV,UAAN,CAAiBx/xB,KAAjB,CAAlB,CAFkC,CAGlC;;AACA,QAAImkyB,SAAS,CAACno2B,CAAV,KAAgB,CAAhB,IAAqBmo2B,SAAS,CAAC3ixB,CAAV,KAAgB,CAAzC,EAA4C;AACxC2ixB,MAAAA,SAAS,CAACno2B,CAAV,GAAcwg2B,WAAd;AACA2H,MAAAA,SAAS,CAAC3ixB,CAAV,GAAcg7wB,WAAd;AACH;;AACD,SAAKx8xB,KAAL,GAAamkyB,SAAb;AACA,SAAKzhK,OAAL,GAAeqK,eAAe,CAAC,CAAD,CAA9B;AACA,SAAKpK,OAAL,GAAeoK,eAAe,CAAC,CAAD,CAA9B;AACH;;AAvCO;;AA0CZ,MAAM1uX,MAAN,CAAa;AACThoU,EAAAA,KAAK,CAACunU,GAAD,EAAM;AACP,UAAM;AAAE8kX,MAAAA,OAAF;AAAYC,MAAAA,OAAZ;AAAsB9hX,MAAAA;AAAtB,QAAkC,IAAxC;AACA,UAAMz1D,EAAE,GAAGs3a,OAAO,CAACu7J,SAAR,CAAkB,GAAlB,CAAX;AACA,UAAMr6gB,EAAE,GAAG++W,OAAO,CAACs7J,SAAR,CAAkB,GAAlB,CAAX;AACArghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAck2L,EAAd,EAAkBw4D,EAAlB;AACAhG,IAAAA,GAAG,CAACl6T,SAAJ,CAAcm9T,MAAM,CAAC,CAAD,CAApB,EAAyBA,MAAM,CAAC,CAAD,CAA/B,EAAoCA,MAAM,CAAC,CAAD,CAA1C,EAA+CA,MAAM,CAAC,CAAD,CAArD,EAA0DA,MAAM,CAAC,CAAD,CAAhE,EAAqEA,MAAM,CAAC,CAAD,CAA3E;AACAjD,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACk2L,EAAf,EAAmB,CAACw4D,EAApB;AACH;;AACDsghB,EAAAA,OAAO,CAACtmhB,GAAD,EAAM;AACT,UAAM;AAAE8kX,MAAAA,OAAF;AAAYC,MAAAA,OAAZ;AAAsB9hX,MAAAA;AAAtB,QAAkC,IAAxC;AACA,UAAMpnV,CAAC,GAAGonV,MAAM,CAAC,CAAD,CAAhB;AACA,UAAMnnV,CAAC,GAAGmnV,MAAM,CAAC,CAAD,CAAhB;AACA,UAAMtlV,CAAC,GAAGslV,MAAM,CAAC,CAAD,CAAhB;AACA,UAAMrlV,CAAC,GAAGqlV,MAAM,CAAC,CAAD,CAAhB;AACA,UAAMn1Y,CAAC,GAAGm1Y,MAAM,CAAC,CAAD,CAAhB;AACA,UAAMz4T,CAAC,GAAGy4T,MAAM,CAAC,CAAD,CAAhB;AACA,UAAMvqS,CAAC,GAAG,CAAV;AACA,UAAM6zB,CAAC,GAAG,CAAV;AACA,UAAMj/H,CAAC,GAAG,CAAV;AACA,UAAMk55B,GAAG,GAAG,KAAK3q2B,CAAC,IAAI/tD,CAAC,GAAGR,CAAJ,GAAQk9E,CAAC,GAAG+hD,CAAhB,CAAD,GAAsBzwE,CAAC,IAAI8B,CAAC,GAAGtwD,CAAJ,GAAQk9E,CAAC,GAAGkuB,CAAhB,CAAvB,GAA4C/6C,CAAC,IAAIC,CAAC,GAAG2uE,CAAJ,GAAQz+H,CAAC,GAAG4qG,CAAhB,CAAlD,CAAZ;AACA,UAAM80O,EAAE,GAAGs3a,OAAO,CAACu7J,SAAR,CAAkB,GAAlB,CAAX;AACA,UAAMr6gB,EAAE,GAAG++W,OAAO,CAACs7J,SAAR,CAAkB,GAAlB,CAAX;AACArghB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAck2L,EAAd,EAAkBw4D,EAAlB;AACAhG,IAAAA,GAAG,CAACl6T,SAAJ,CAAc0g1B,GAAG,IAAI145B,CAAC,GAAGR,CAAJ,GAAQk9E,CAAC,GAAG+hD,CAAhB,CAAjB,EAAqCi6xB,GAAG,IAAIh80B,CAAC,GAAGkuB,CAAJ,GAAQ96C,CAAC,GAAGtwD,CAAhB,CAAxC,EAA4Dk55B,GAAG,IAAI7o2B,CAAC,GAAG4uE,CAAJ,GAAQzwE,CAAC,GAAGxuD,CAAhB,CAA/D,EAAmFk55B,GAAG,IAAI3q2B,CAAC,GAAGvuD,CAAJ,GAAQqwD,CAAC,GAAG+6C,CAAhB,CAAtF,EAA0G8tzB,GAAG,IAAI1q2B,CAAC,GAAG0uB,CAAJ,GAAQ7sB,CAAC,GAAG7vD,CAAhB,CAA7G,EAAiI045B,GAAG,IAAI7o2B,CAAC,GAAGC,CAAJ,GAAQ/B,CAAC,GAAG2uB,CAAhB,CAApI;AACAw1T,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACk2L,EAAf,EAAmB,CAACw4D,EAApB;AACH;;AACD89K,EAAAA,YAAY,CAAChsd,KAAD,EAAQ;AAChBA,IAAAA,KAAK,CAACkqzB,cAAN,CAAqB,KAAK/+gB,MAA1B;AACH;;AACDvpW,EAAAA,WAAW,CAACva,CAAD,EAAI8jX,MAAJ,EAAYksX,eAAZ,EAA4B;AACnC,SAAKlwtB,IAAL,GAAY,QAAZ;AACA,SAAKgkW,MAAL,GAAcs6gB,aAAa,CAACt6gB,MAAD,CAA3B;AACA,SAAK6hX,OAAL,GAAeqK,eAAe,CAAC,CAAD,CAA9B;AACA,SAAKpK,OAAL,GAAeoK,eAAe,CAAC,CAAD,CAA9B;AACH;;AAnCQ;;AAsCb,MAAMs3J,IAAN,SAAmBhmhB,MAAnB,CAA0B;AACtB/mW,EAAAA,WAAW,CAAC23B,QAAD,EAAWuyf,IAAX,EAAiBurM,eAAjB,EAAiC;AACxC,UAAM99rB,QAAN,EAAgBuyf,IAAhB,EAAsBurM,eAAtB;AACA,SAAKlwtB,IAAL,GAAY,MAAZ;AACA,SAAK8lZ,KAAL,GAAa,IAAIw6d,QAAJ,CAAalu1B,QAAb,EAAuB,OAAvB,EAAgCuyf,IAAhC,CAAb;AACH;;AALqB;;AAQ1B,MAAM8iW,KAAN,SAAoBD,IAApB,CAAyB;AACrB/s3B,EAAAA,WAAW,CAAC23B,QAAD,EAAWuyf,IAAX,EAAiBurM,eAAjB,EAAiC;AACxC,UAAM99rB,QAAN,EAAgBuyf,IAAhB,EAAsBurM,eAAtB;AACA,SAAKlwtB,IAAL,GAAY,OAAZ;AACA,SAAKgkW,MAAL,GAAc,CACV,CADU,EAEV,CAFU,EAGV19V,IAAI,CAACmxF,GAAL,CAAS,KAAKquT,KAAL,CAAW47d,UAAX,EAAT,CAHU,EAIV,CAJU,EAKV,CALU,EAMV,CANU,CAAd;AAQH;;AAZoB;;AAezB,MAAMgG,KAAN,SAAoBF,IAApB,CAAyB;AACrB/s3B,EAAAA,WAAW,CAAC23B,QAAD,EAAWuyf,IAAX,EAAiBurM,eAAjB,EAAiC;AACxC,UAAM99rB,QAAN,EAAgBuyf,IAAhB,EAAsBurM,eAAtB;AACA,SAAKlwtB,IAAL,GAAY,OAAZ;AACA,SAAKgkW,MAAL,GAAc,CACV,CADU,EAEV19V,IAAI,CAACmxF,GAAL,CAAS,KAAKquT,KAAL,CAAW47d,UAAX,EAAT,CAFU,EAGV,CAHU,EAIV,CAJU,EAKV,CALU,EAMV,CANU,CAAd;AAQH;;AAZoB;;AAezB,SAASiG,eAAT,CAAyB9g1B,SAAzB,EAAoC;AAChC,SAAOs30B,cAAc,CAACt30B,SAAD,CAAd,CAA0B9xC,IAA1B,GAAiC5rB,OAAjC,CAAyC,eAAzC,EAA0D,MAA1D,EAAkEA,OAAlE,CAA0E,cAA1E,EAA0F,IAA1F,EAAgGjQ,KAAhG,CAAsG,aAAtG,CAAP;AACH;;AACD,SAAS0u5B,cAAT,CAAwB/g1B,SAAxB,EAAmC;AAC/B,QAAM,CAAC7mC,IAAI,GAAG,EAAR,EAAY3yC,KAAK,GAAG,EAApB,IAA0Bw5E,SAAS,CAAC3tE,KAAV,CAAgB,GAAhB,CAAhC;AACA,SAAO,CACH8mC,IAAI,CAACjL,IAAL,EADG,EAEH1nC,KAAK,CAAC0nC,IAAN,GAAa5rB,OAAb,CAAqB,GAArB,EAA0B,EAA1B,CAFG,CAAP;AAIH;;AACD,MAAM0+4B,SAAN,CAAgB;AACM,SAAXC,WAAW,CAAC111B,QAAD,EAAWw4B,OAAX,EAAoB;AAClC,UAAMk8zB,cAAc,GAAGl8zB,OAAO,CAAC+ke,QAAR,CAAiB,WAAjB,EAA8B,KAA9B,EAAqC,IAArC,CAAvB;;AACA,QAAIm3V,cAAc,CAAClhvB,QAAf,EAAJ,EAA+B;AAC3B,YAAM,CAACmivB,wBAAD,EAA2BC,wBAAwB,GAAGD,wBAAtD,IAAkFn9zB,OAAO,CAAC+ke,QAAR,CAAiB,kBAAjB,EAAqC,KAArC,EAA4C,IAA5C,EAAkDz2jB,KAAlD,EAAxF;;AACA,UAAI6u5B,wBAAwB,IAAIC,wBAAhC,EAA0D;AACtD,cAAM93J,eAAe,GAAG,CACpB63J,wBADoB,EAEpBC,wBAFoB,CAAxB;AAIA,eAAO,IAAIH,SAAJ,CAAcz11B,QAAd,EAAwB001B,cAAc,CAACvG,SAAf,EAAxB,EAAoDrwJ,eAApD,CAAP;AACH;AACJ;;AACD,WAAO,IAAP;AACH;;AACD12rB,EAAAA,KAAK,CAACunU,GAAD,EAAM;AACP,SAAKg6E,UAAL,CAAgB5ma,OAAhB,CAAyB0yB,SAAD,IAAaA,SAAS,CAACrN,KAAV,CAAgBunU,GAAhB,CAArC;AAEH;;AACDsmhB,EAAAA,OAAO,CAACtmhB,GAAD,EAAM;AACT,SAAKg6E,UAAL,CAAgB5ma,OAAhB,CAAyB0yB,SAAD,IAAaA,SAAS,CAACwg1B,OAAV,CAAkBtmhB,GAAlB,CAArC;AAEH,GAtBW,CAuBZ;;;AACA8jL,EAAAA,YAAY,CAAChsd,KAAD,EAAQ;AAChB,SAAKkiX,UAAL,CAAgB5ma,OAAhB,CAAyB0yB,SAAD,IAAaA,SAAS,CAACg+e,YAAV,CAAuBhsd,KAAvB,CAArC;AAEH;;AACDp+D,EAAAA,WAAW,CAAC23B,QAAD,EAAW611B,UAAX,EAAuB/3J,eAAvB,EAAuC;AAC9C,SAAK99rB,QAAL,GAAgBA,QAAhB;AACA,SAAK2oZ,UAAL,GAAkB,EAAlB;AACA,UAAMxrd,IAAI,GAAGo45B,eAAe,CAACM,UAAD,CAA5B;AACA145B,IAAAA,IAAI,CAAC4kD,OAAL,CAAc0yB,SAAD,IAAa;AACtB,UAAIA,SAAS,KAAK,MAAlB,EAA0B;AACtB;AACH;;AACD,YAAM,CAAC7mC,IAAD,EAAO3yC,KAAP,IAAgBu65B,cAAc,CAAC/g1B,SAAD,CAApC;AACA,YAAMqh1B,aAAa,GAAGL,SAAS,CAACM,cAAV,CAAyBno3B,IAAzB,CAAtB;;AACA,UAAIko3B,aAAJ,EAAmB;AACf,aAAKntc,UAAL,CAAgBt+a,IAAhB,CAAqB,IAAIyr3B,aAAJ,CAAkB,KAAK911B,QAAvB,EAAiC/kE,KAAjC,EAAwC6iwB,eAAxC,CAArB;AACH;AACJ,KATD;AAUH;;AA1CW;;AA4ChB23J,SAAS,CAACM,cAAV,GAA2B;AACvB9vwB,EAAAA,SAAS,EAAE+uwB,SADY;AAEvBluiB,EAAAA,MAAM,EAAEO,MAFe;AAGvBt2P,EAAAA,KAAK,EAAE2wgB,KAHgB;AAIvB9vP,EAAAA,MAAM,EAAExC,MAJe;AAKvB4mhB,EAAAA,KAAK,EAAEX,KALgB;AAMvBY,EAAAA,KAAK,EAAEX;AANgB,CAA3B;;AASA,MAAMlqxB,OAAN,CAAc;AACV3C,EAAAA,YAAY,CAAC16G,IAAD,EAAO;AACf,QAAImo4B,iBAAiB,GAAG7u1B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAAzF;AACA,UAAM+pE,IAAI,GAAG,KAAK7jI,UAAL,CAAgBwgB,IAAhB,CAAb;;AACA,QAAI,CAACqjH,IAAD,IAAS8kxB,iBAAb,EAAgC;AAC5B,YAAM9kxB,IAAI,GAAG,IAAI88wB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4BjyC,IAA5B,EAAkC,EAAlC,CAAb;AACA,WAAKxgB,UAAL,CAAgBwgB,IAAhB,IAAwBqjH,IAAxB;AACA,aAAOA,IAAP;AACH;;AACD,WAAOA,IAAI,IAAI88wB,QAAQ,CAAC3+vB,KAAT,CAAe,KAAKvvF,QAApB,CAAf;AACH;;AACDwv1B,EAAAA,gBAAgB,GAAG;AACf,QAAIxi3B,IAAJ;;AACA,SAAI,MAAMhK,GAAV,IAAiB,KAAKz1B,UAAtB,EAAiC;AAC7B,UAAIy1B,GAAG,KAAK,MAAR,IAAkBA,GAAG,CAAC3/B,QAAJ,CAAa,OAAb,CAAtB,EAA6C;AACzC2pC,QAAAA,IAAI,GAAG,KAAKz/B,UAAL,CAAgBy1B,GAAhB,CAAP;AACA;AACH;AACJ;;AACD,WAAOgK,IAAI,IAAIkh3B,QAAQ,CAAC3+vB,KAAT,CAAe,KAAKvvF,QAApB,CAAf;AACH;;AACDu9f,EAAAA,QAAQ,CAACxviB,IAAD,EAAO;AACX,QAAImo4B,iBAAiB,GAAG7u1B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAAzF;AAAA,QAAgG8u1B,aAAa,GAAG9u1B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAAjL;AACA,UAAMyhE,KAAK,GAAG,KAAKiH,MAAL,CAAYhiH,IAAZ,CAAd;;AACA,QAAI+6G,KAAJ,EAAW;AACP,aAAOA,KAAP;AACH;;AACD,UAAMsI,IAAI,GAAG,KAAK3I,YAAL,CAAkB16G,IAAlB,CAAb;;AACA,QAAIqjH,IAAI,CAACoiC,QAAL,EAAJ,EAAqB;AACjB,WAAKzjC,MAAL,CAAYhiH,IAAZ,IAAoBqjH,IAApB,CAAyB;AAAzB;AAEA,aAAOA,IAAP;AACH;;AACD,QAAI,CAAC+kxB,aAAL,EAAoB;AAChB,YAAM;AAAE7w0B,QAAAA;AAAF,UAAc,IAApB;;AACA,UAAIA,MAAJ,EAAY;AACR,cAAM8w0B,WAAW,GAAG9w0B,MAAM,CAACi4e,QAAP,CAAgBxviB,IAAhB,CAApB;;AACA,YAAIqo4B,WAAW,CAAC5ivB,QAAZ,EAAJ,EAA4B;AACxB,iBAAO4ivB,WAAP;AACH;AACJ;AACJ;;AACD,QAAIF,iBAAJ,EAAuB;AACnB,YAAMptxB,KAAK,GAAG,IAAIolxB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4BjyC,IAA5B,EAAkC,EAAlC,CAAd;AACA,WAAKgiH,MAAL,CAAYhiH,IAAZ,IAAoB+6G,KAApB;AACA,aAAOA,KAAP;AACH;;AACD,WAAOolxB,QAAQ,CAAC3+vB,KAAT,CAAe,KAAKvvF,QAApB,CAAP;AACH;;AACD0uU,EAAAA,MAAM,CAACC,GAAD,EAAM;AACR;AACA;AACA,QAAI,KAAK4uL,QAAL,CAAc,SAAd,EAAyB4wV,SAAzB,OAAyC,MAAzC,IAAmD,KAAK5wV,QAAL,CAAc,YAAd,EAA4B4wV,SAA5B,OAA4C,QAAnG,EAA6G;AACzG;AACH;;AACDx/gB,IAAAA,GAAG,CAAChyP,IAAJ;;AACA,QAAI,KAAK4gb,QAAL,CAAc,MAAd,EAAsB/pZ,QAAtB,EAAJ,EAAsC;AAClC,YAAM2uR,IAAI,GAAG,KAAKo7H,QAAL,CAAc,MAAd,EAAsB3ve,aAAtB,EAAb;;AACA,UAAIu0W,IAAJ,EAAU;AACN,aAAKk0d,YAAL,CAAkB1nhB,GAAlB;AACAwzD,QAAAA,IAAI,CAAC/6X,KAAL,CAAWunU,GAAX,EAAgB,IAAhB;AACH;AACJ,KAND,MAMO,IAAI,KAAK4uL,QAAL,CAAc,QAAd,EAAwBj4c,QAAxB,CAAiC,MAAjC,MAA6C,MAAjD,EAAyD;AAC5D,YAAMvkG,MAAM,GAAG,KAAKw8iB,QAAL,CAAc,QAAd,EAAwB3ve,aAAxB,EAAf;;AACA,UAAI7sE,MAAJ,EAAY;AACR,aAAKs14B,YAAL,CAAkB1nhB,GAAlB;AACA5tX,QAAAA,MAAM,CAACqmD,KAAP,CAAaunU,GAAb,EAAkB,IAAlB;AACH;AACJ,KANM,MAMA;AACH,WAAK2nhB,UAAL,CAAgB3nhB,GAAhB;AACA,WAAK4nhB,cAAL,CAAoB5nhB,GAApB;AACA,WAAK6nhB,YAAL,CAAkB7nhB,GAAlB;AACH;;AACDA,IAAAA,GAAG,CAACt6X,OAAJ;AACH;;AACDii5B,EAAAA,UAAU,CAACxo4B,CAAD,EAAI,CACd;AACC;;AACDuo4B,EAAAA,YAAY,CAAC1nhB,GAAD,EAAM;AACd;AACA,UAAMl6T,SAAS,GAAGgh1B,SAAS,CAACC,WAAV,CAAsB,KAAK111B,QAA3B,EAAqC,IAArC,CAAlB;;AACA,QAAIyU,SAAJ,EAAe;AACXA,MAAAA,SAAS,CAACrN,KAAV,CAAgBunU,GAAhB;AACH,KALa,CAMd;;;AACA,UAAM8nhB,iBAAiB,GAAG,KAAKl5V,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAAkC,IAAlC,CAA1B;;AACA,QAAIk5V,iBAAiB,CAACjjvB,QAAlB,EAAJ,EAAkC;AAC9B,YAAM0tR,IAAI,GAAGu1d,iBAAiB,CAAC7o0B,aAAlB,EAAb;;AACA,UAAIszW,IAAJ,EAAU;AACNA,QAAAA,IAAI,CAAC95X,KAAL,CAAWunU,GAAX;AACH;AACJ;AACJ;;AACD6nhB,EAAAA,YAAY,CAAC1o4B,CAAD,EAAI,CAChB;AACC;;AACDyo4B,EAAAA,cAAc,CAAC5nhB,GAAD,EAAM;AAChB,SAAKz7S,QAAL,CAAcnxC,OAAd,CAAuByxC,KAAD,IAAS;AAC3BA,MAAAA,KAAK,CAACk7S,MAAN,CAAaC,GAAb;AACH,KAFD;AAGH;;AACDv6S,EAAAA,QAAQ,CAACs0D,SAAD,EAAY;AAChB,UAAMl1D,KAAK,GAAGk1D,SAAS,YAAYtd,OAArB,GAA+Bsd,SAA/B,GAA2C,KAAK1oF,QAAL,CAAcC,aAAd,CAA4ByoF,SAA5B,CAAzD;AACAl1D,IAAAA,KAAK,CAAClO,MAAN,GAAe,IAAf;;AACA,QAAI,CAAC8lD,OAAO,CAACsrxB,gBAAR,CAAyB303B,QAAzB,CAAkCyxD,KAAK,CAAC5lD,IAAxC,CAAL,EAAoD;AAChD,WAAKslD,QAAL,CAAc7oD,IAAd,CAAmBmpD,KAAnB;AACH;AACJ;;AACDmj0B,EAAAA,eAAe,CAACrrwB,QAAD,EAAW;AACtB,QAAI5R,GAAJ;AACA,UAAM;AAAE9kI,MAAAA;AAAF,QAAY,IAAlB;;AACA,QAAI,OAAOA,IAAI,CAACsiE,OAAZ,KAAwB,UAA5B,EAAwC;AACpC,aAAOtiE,IAAI,CAACsiE,OAAL,CAAao0E,QAAb,CAAP;AACH;;AACD,UAAMsrwB,YAAY,GAAG,CAACl9wB,GAAG,GAAG9kI,IAAI,CAAC6zH,YAAZ,MAA8B,IAA9B,IAAsCiR,GAAG,KAAK,KAAK,CAAnD,GAAuD,KAAK,CAA5D,GAAgEA,GAAG,CAACniE,IAAJ,CAAS3iE,IAAT,EAAe,OAAf,CAArF;;AACA,QAAI,CAACgi5B,YAAD,IAAiBA,YAAY,KAAK,EAAtC,EAA0C;AACtC,aAAO,KAAP;AACH;;AACD,WAAOA,YAAY,CAAC9v5B,KAAb,CAAmB,GAAnB,EAAwBmvF,IAAxB,CAA8B4g0B,UAAD,IAAc,IAAIh82B,MAAJ,CAAWg82B,UAAX,MAA2BvrwB,QAAtE,CAAP;AAEH;;AACDwrwB,EAAAA,4BAA4B,GAAG;AAC3B,UAAM;AAAE/mxB,MAAAA,MAAF;AAAWgnxB,MAAAA;AAAX,QAAkC,KAAK/21B,QAA7C;AACA,QAAIg31B,SAAJ;;AACA,SAAI,MAAM1rwB,QAAV,IAAsBvb,MAAtB,EAA6B;AACzB,UAAI,CAACub,QAAQ,CAACrqI,UAAT,CAAoB,GAApB,CAAD,IAA6B,KAAK014B,eAAL,CAAqBrrwB,QAArB,CAAjC,EAAiE;AAC7D,cAAMxiB,KAAK,GAAGiH,MAAM,CAACub,QAAD,CAApB;AACA,cAAM+hwB,WAAW,GAAG0J,iBAAiB,CAACzrwB,QAAD,CAArC;;AACA,YAAIxiB,KAAJ,EAAW;AACP,eAAI,MAAM/6G,IAAV,IAAkB+6G,KAAlB,EAAwB;AACpB,gBAAImuxB,mBAAmB,GAAG,KAAKF,iBAAL,CAAuBhp4B,IAAvB,CAA1B;;AACA,gBAAI,OAAOkp4B,mBAAP,KAA+B,WAAnC,EAAgD;AAC5CA,cAAAA,mBAAmB,GAAG,KAAtB;AACH;;AACD,gBAAI5J,WAAW,IAAIA,WAAW,IAAI4J,mBAAlC,EAAuD;AACnDD,cAAAA,SAAS,GAAGluxB,KAAK,CAAC/6G,IAAD,CAAjB;;AACA,kBAAIip4B,SAAJ,EAAe;AACX,qBAAKjnxB,MAAL,CAAYhiH,IAAZ,IAAoBip4B,SAApB;AACH;;AACD,mBAAKD,iBAAL,CAAuBhp4B,IAAvB,IAA+Bs/3B,WAA/B;AACH;AACJ;AACJ;AACJ;AACJ;AACJ;;AACD6J,EAAAA,YAAY,CAAC1+zB,OAAD,EAAU2+zB,YAAV,EAAwB;AAChC,UAAMC,UAAU,GAAGD,YAAY,CAAChw5B,MAAb,CAAoB,CAACkw5B,SAAD,EAAYtp4B,IAAZ,KAAmB;AACtD,YAAMip4B,SAAS,GAAGx+zB,OAAO,CAAC+ke,QAAR,CAAiBxviB,IAAjB,CAAlB;;AACA,UAAI,CAACip4B,SAAS,CAACxjvB,QAAV,EAAL,EAA2B;AACvB,eAAO6jvB,SAAP;AACH;;AACD,YAAMp85B,KAAK,GAAG+75B,SAAS,CAAC7I,SAAV,EAAd;AACA6I,MAAAA,SAAS,CAAC5qwB,QAAV,CAAmB,EAAnB;AACA,aAAO,CACH,GAAGirwB,SADA,EAEH,CACItp4B,IADJ,EAEI9yB,KAFJ,CAFG,CAAP;AAOH,KAdkB,EAchB,EAdgB,CAAnB;AAeA,WAAOm85B,UAAP;AACH;;AACDE,EAAAA,aAAa,CAAC9+zB,OAAD,EAAUu3C,MAAV,EAAkB;AAC3BA,IAAAA,MAAM,CAAChuF,OAAP,CAAgBqjH,KAAD,IAAS;AACpB,UAAI,CAACr3I,IAAD,EAAO9yB,KAAP,IAAgBmqK,KAApB;AACA5sE,MAAAA,OAAO,CAAC+ke,QAAR,CAAiBxviB,IAAjB,EAAuB,IAAvB,EAA6Bq+H,QAA7B,CAAsCnxJ,KAAtC;AACH,KAHD;AAIH;;AACDs85B,EAAAA,YAAY,GAAG;AACX,QAAI79wB,GAAJ;AACA,WAAO,CAAC,CAACA,GAAG,GAAG,KAAKp0D,MAAZ,MAAwB,IAAxB,IAAgCo0D,GAAG,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,GAAG,CAACxmD,QAAJ,CAAavnD,OAAb,CAAqB,IAArB,CAA3D,MAA2F,CAAlG;AACH;;AACDtD,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAgB,GAAG,KAApC,EAA0C;AACjD,SAAKx31B,QAAL,GAAgBA,QAAhB;AACA,SAAKprD,IAAL,GAAYA,IAAZ;AACA,SAAK4i5B,gBAAL,GAAwBA,gBAAxB;AACA,SAAK5p3B,IAAL,GAAY,EAAZ;AACA,SAAKrgC,UAAL,GAAkB,EAAlB;AACA,SAAKwiI,MAAL,GAAc,EAAd;AACA,SAAKgnxB,iBAAL,GAAyB,EAAzB;AACA,SAAKU,eAAL,GAAuB,KAAvB;AACA,SAAKC,oBAAL,GAA4B,EAA5B;AACA,SAAKpy0B,MAAL,GAAc,IAAd;AACA,SAAK4N,QAAL,GAAgB,EAAhB;;AACA,QAAI,CAACt+E,IAAD,IAASA,IAAI,CAACi8H,QAAL,KAAkB,CAA/B,EAAkC;AAC9B;AACH,KAdgD,CAejD;;;AACAp9D,IAAAA,KAAK,CAACjoB,IAAN,CAAW52C,IAAI,CAACrH,UAAhB,EAA4Bw0C,OAA5B,CAAqCw5B,SAAD,IAAa;AAC7C,YAAMu1D,QAAQ,GAAGu7wB,sBAAsB,CAAC9w0B,SAAS,CAACu1D,QAAX,CAAvC;AACA,WAAKvjI,UAAL,CAAgBujI,QAAhB,IAA4B,IAAIo9wB,QAAJ,CAAalu1B,QAAb,EAAuB8wE,QAAvB,EAAiCv1D,SAAS,CAACtgF,KAA3C,CAA5B;AACH,KAHD;AAIA,SAAK675B,4BAAL,GApBiD,CAqBjD;;AACA,QAAI,KAAKruxB,YAAL,CAAkB,OAAlB,EAA2B+qC,QAA3B,EAAJ,EAA2C;AACvC,YAAMzjC,MAAM,GAAG,KAAKtH,YAAL,CAAkB,OAAlB,EAA2B0lxB,SAA3B,GAAuCrn5B,KAAvC,CAA6C,GAA7C,EAAkD3G,GAAlD,CAAuD2tB,CAAD,IAAKA,CAAC,CAAC6U,IAAF,EAA3D,CAAf;AAEAotG,MAAAA,MAAM,CAAChuF,OAAP,CAAgB+mF,KAAD,IAAS;AACpB,YAAI,CAACA,KAAL,EAAY;AACR;AACH;;AACD,cAAM,CAAC/6G,IAAD,EAAO9yB,KAAP,IAAgB6tI,KAAK,CAAChiI,KAAN,CAAY,GAAZ,EAAiB3G,GAAjB,CAAsB2tB,CAAD,IAAKA,CAAC,CAAC6U,IAAF,EAA1B,CAAtB;;AAEA,YAAI5U,IAAJ,EAAU;AACN,eAAKgiH,MAAL,CAAYhiH,IAAZ,IAAoB,IAAImg4B,QAAJ,CAAalu1B,QAAb,EAAuBjyC,IAAvB,EAA6B9yB,KAA7B,CAApB;AACH;AACJ,OATD;AAUH;;AACD,UAAM;AAAEigtB,MAAAA;AAAF,QAAmBl7oB,QAAzB;AACA,UAAM93D,EAAE,GAAG,KAAKugI,YAAL,CAAkB,IAAlB,CAAX,CArCiD,CAsCjD;;AACA,QAAIvgI,EAAE,CAACsrK,QAAH,EAAJ,EAAmB;AACf,UAAI,CAAC0niB,WAAW,CAAChzsB,EAAE,CAACim5B,SAAH,EAAD,CAAhB,EAAkC;AAC9BjzM,QAAAA,WAAW,CAAChzsB,EAAE,CAACim5B,SAAH,EAAD,CAAX,GAA8B,IAA9B;AACH;AACJ;;AACD160B,IAAAA,KAAK,CAACjoB,IAAN,CAAW52C,IAAI,CAAC6zI,UAAhB,EAA4B1mG,OAA5B,CAAqC2mG,SAAD,IAAa;AAC7C,UAAIA,SAAS,CAAC7X,QAAV,KAAuB,CAA3B,EAA8B;AAC1B,aAAKz8C,QAAL,CAAcs0D,SAAd,EAAyB;AAAzB;AAEH,OAHD,MAGO,IAAI8uwB,gBAAgB,KAAK9uwB,SAAS,CAAC7X,QAAV,KAAuB,CAAvB,IAA4B6X,SAAS,CAAC7X,QAAV,KAAuB,CAAxD,CAApB,EAAgF;AACnF,cAAMuiN,QAAQ,GAAGpzR,QAAQ,CAAC8ygB,cAAT,CAAwBpqb,SAAxB,CAAjB;;AACA,YAAI0qM,QAAQ,CAACukkB,OAAT,GAAmBv65B,MAAnB,GAA4B,CAAhC,EAAmC;AAC/B,eAAKg3F,QAAL,CAAcg/P,QAAd,EAAwB;AAAxB;AAEH;AACJ;AACJ,KAXD;AAYH;;AAtOS;;AAwOdhoN,OAAO,CAACsrxB,gBAAR,GAA2B,CACvB,OADuB,CAA3B;;AAIA,MAAMkB,cAAN,SAA6BxsxB,OAA7B,CAAqC;AACjC/iG,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACH;;AAHgC;;AAMrC,SAASK,cAAT,CAAwBruf,UAAxB,EAAoC;AAChC,QAAMsuf,OAAO,GAAGtuf,UAAU,CAAC7mY,IAAX,EAAhB;AACA,SAAO,SAASgF,IAAT,CAAcmw3B,OAAd,IAAyBA,OAAzB,GAAmC,KAAKj92B,MAAL,CAAYi92B,OAAZ,EAAqB,IAArB,CAA1C;AACH;;AACD,SAASC,iBAAT,CAA2Bvuf,UAA3B,EAAuC;AACnC,SAAO,OAAO35W,OAAP,KAAmB,WAAnB,GAAiC25W,UAAjC,GAA8CA,UAAU,CAAC7mY,IAAX,GAAkB77B,KAAlB,CAAwB,GAAxB,EAA6B3G,GAA7B,CAAiC035B,cAAjC,EAAiDvq5B,IAAjD,CAAsD,GAAtD,CAArD;AACH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAAS0q5B,gBAAT,CAA0Bvuf,SAA1B,EAAqC;AACrC,MAAI,CAACA,SAAL,EAAgB;AACZ,WAAO,EAAP;AACH;;AACD,QAAMwuf,eAAe,GAAGxuf,SAAS,CAAC9mY,IAAV,GAAiBr7B,WAAjB,EAAxB;;AACA,UAAO2w5B,eAAP;AACI,SAAK,QAAL;AACA,SAAK,QAAL;AACA,SAAK,SAAL;AACA,SAAK,SAAL;AACA,SAAK,SAAL;AACA,SAAK,OAAL;AACI,aAAOA,eAAP;;AACJ;AACI,UAAI,yBAAyBtw3B,IAAzB,CAA8Bsw3B,eAA9B,CAAJ,EAAoD;AAChD,eAAOA,eAAP;AACH;;AACD,aAAO,EAAP;AAZR;AAcH;AACD;AACA;AACA;AACA;AACA;;;AAAI,SAASC,iBAAT,CAA2Bxuf,UAA3B,EAAuC;AACvC,MAAI,CAACA,UAAL,EAAiB;AACb,WAAO,EAAP;AACH;;AACD,QAAMyuf,gBAAgB,GAAGzuf,UAAU,CAAC/mY,IAAX,GAAkBr7B,WAAlB,EAAzB;;AACA,UAAO6w5B,gBAAP;AACI,SAAK,QAAL;AACA,SAAK,MAAL;AACA,SAAK,SAAL;AACA,SAAK,QAAL;AACA,SAAK,SAAL;AACA,SAAK,SAAL;AACA,SAAK,OAAL;AACI,aAAOA,gBAAP;;AACJ;AACI,UAAI,WAAWxw3B,IAAX,CAAgBww3B,gBAAhB,CAAJ,EAAuC;AACnC,eAAOA,gBAAP;AACH;;AACD,aAAO,EAAP;AAbR;AAeH;;AACD,MAAMC,IAAN,CAAW;AACK,SAALt13B,KAAK,GAAG;AACX,QAAIolV,IAAI,GAAG7gT,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,EAA5E;AAAA,QAAgFitd,OAAO,GAAGjtd,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,GAAuBiqE,SAAS,CAAC,CAAD,CAAhC,GAAsC,KAAK,CAArI;AACA,QAAIoiW,SAAS,GAAG,EAAhB;AACA,QAAI4uf,WAAW,GAAG,EAAlB;AACA,QAAI3uf,UAAU,GAAG,EAAjB;AACA,QAAIniC,QAAQ,GAAG,EAAf;AACA,QAAIiiC,UAAU,GAAG,EAAjB;AACA,UAAM9uS,KAAK,GAAGqxxB,cAAc,CAAC7jiB,IAAD,CAAd,CAAqBvlV,IAArB,GAA4B77B,KAA5B,CAAkC,GAAlC,CAAd;AACA,UAAM9K,GAAG,GAAG;AACRurY,MAAAA,QAAQ,EAAE,KADF;AAERkiC,MAAAA,SAAS,EAAE,KAFH;AAGRC,MAAAA,UAAU,EAAE,KAHJ;AAIR2uf,MAAAA,WAAW,EAAE;AAJL,KAAZ;AAMA39xB,IAAAA,KAAK,CAAC34E,OAAN,CAAe9G,IAAD,IAAQ;AAClB,cAAO,IAAP;AACI,aAAK,CAACj/C,GAAG,CAACyta,SAAL,IAAkB2uf,IAAI,CAACroxB,MAAL,CAAYhuG,QAAZ,CAAqBkZ,IAArB,CAAvB;AACI,cAAIA,IAAI,KAAK,SAAb,EAAwB;AACpBwuX,YAAAA,SAAS,GAAGxuX,IAAZ;AACH;;AACDj/C,UAAAA,GAAG,CAACyta,SAAJ,GAAgB,IAAhB;AACA;;AACJ,aAAK,CAACzta,GAAG,CAACq85B,WAAL,IAAoBD,IAAI,CAACE,QAAL,CAAcv23B,QAAd,CAAuBkZ,IAAvB,CAAzB;AACI,cAAIA,IAAI,KAAK,SAAb,EAAwB;AACpBo92B,YAAAA,WAAW,GAAGp92B,IAAd;AACH;;AACDj/C,UAAAA,GAAG,CAACyta,SAAJ,GAAgB,IAAhB;AACAzta,UAAAA,GAAG,CAACq85B,WAAJ,GAAkB,IAAlB;AACA;;AACJ,aAAK,CAACr85B,GAAG,CAAC0ta,UAAL,IAAmB0uf,IAAI,CAACG,OAAL,CAAax23B,QAAb,CAAsBkZ,IAAtB,CAAxB;AACI,cAAIA,IAAI,KAAK,SAAb,EAAwB;AACpByuX,YAAAA,UAAU,GAAGzuX,IAAb;AACH;;AACDj/C,UAAAA,GAAG,CAACyta,SAAJ,GAAgB,IAAhB;AACAzta,UAAAA,GAAG,CAACq85B,WAAJ,GAAkB,IAAlB;AACAr85B,UAAAA,GAAG,CAAC0ta,UAAJ,GAAiB,IAAjB;AACA;;AACJ,aAAK,CAAC1ta,GAAG,CAACurY,QAAV;AACI,cAAItsV,IAAI,KAAK,SAAb,EAAwB;AACpBssV,YAAAA,QAAQ,GAAGtsV,IAAI,CAACn0C,KAAL,CAAW,GAAX,EAAgB,CAAhB,KAAsB,EAAjC;AACH;;AACD9K,UAAAA,GAAG,CAACyta,SAAJ,GAAgB,IAAhB;AACAzta,UAAAA,GAAG,CAACq85B,WAAJ,GAAkB,IAAlB;AACAr85B,UAAAA,GAAG,CAAC0ta,UAAJ,GAAiB,IAAjB;AACA1ta,UAAAA,GAAG,CAACurY,QAAJ,GAAe,IAAf;AACA;;AACJ;AACI,cAAItsV,IAAI,KAAK,SAAb,EAAwB;AACpBuuX,YAAAA,UAAU,IAAIvuX,IAAd;AACH;;AAlCT;AAoCH,KArCD;AAsCA,WAAO,IAAIm92B,IAAJ,CAAS3uf,SAAT,EAAoB4uf,WAApB,EAAiC3uf,UAAjC,EAA6CniC,QAA7C,EAAuDiiC,UAAvD,EAAmE8qH,OAAnE,CAAP;AACH;;AACD3vhB,EAAAA,QAAQ,GAAG;AACP,WAAO,CACHqz5B,gBAAgB,CAAC,KAAKvuf,SAAN,CADb,EAEH,KAAK4uf,WAFF,EAGHH,iBAAiB,CAAC,KAAKxuf,UAAN,CAHd,EAIH,KAAKniC,QAJF,EAKH;AACAwwhB,IAAAA,iBAAiB,CAAC,KAAKvuf,UAAN,CANd,EAOLl8Z,IAPK,CAOA,GAPA,EAOKq1B,IAPL,EAAP;AAQH;;AACD0F,EAAAA,WAAW,CAACohY,SAAD,EAAY4uf,WAAZ,EAAyB3uf,UAAzB,EAAqCniC,QAArC,EAA+CiiC,UAA/C,EAA2D8qH,OAA3D,EAAmE;AAC1E,UAAMkkY,WAAW,GAAGlkY,OAAO,GAAG,OAAOA,OAAP,KAAmB,QAAnB,GAA8B8jY,IAAI,CAACt13B,KAAL,CAAWwxf,OAAX,CAA9B,GAAoDA,OAAvD,GAAiE,EAA5F;AACA,SAAK9qH,UAAL,GAAkBA,UAAU,IAAIgvf,WAAW,CAAChvf,UAA5C;AACA,SAAKjiC,QAAL,GAAgBA,QAAQ,IAAIixhB,WAAW,CAACjxhB,QAAxC;AACA,SAAKkiC,SAAL,GAAiBA,SAAS,IAAI+uf,WAAW,CAAC/uf,SAA1C;AACA,SAAKC,UAAL,GAAkBA,UAAU,IAAI8uf,WAAW,CAAC9uf,UAA5C;AACA,SAAK2uf,WAAL,GAAmBA,WAAW,IAAIG,WAAW,CAACH,WAA9C;AACH;;AAxEM;;AA0EXD,IAAI,CAACroxB,MAAL,GAAc,+BAAd;AACAqoxB,IAAI,CAACE,QAAL,GAAgB,2BAAhB;AACAF,IAAI,CAACG,OAAL,GAAe,wEAAf;;AAEA,MAAME,WAAN,CAAkB;AACT,MAAD1r2B,CAAC,GAAG;AACJ,WAAO,KAAKutV,EAAZ;AACH;;AACI,MAAD/nQ,CAAC,GAAG;AACJ,WAAO,KAAKgoQ,EAAZ;AACH;;AACQ,MAALzyT,KAAK,GAAG;AACR,WAAO,KAAK0yT,EAAL,GAAU,KAAKF,EAAtB;AACH;;AACS,MAANvxQ,MAAM,GAAG;AACT,WAAO,KAAK0xQ,EAAL,GAAU,KAAKF,EAAtB;AACH;;AACDm+gB,EAAAA,QAAQ,CAAC3r2B,CAAD,EAAIwlF,CAAJ,EAAO;AACX,QAAI,OAAOxlF,CAAP,KAAa,WAAjB,EAA8B;AAC1B,UAAIrY,KAAK,CAAC,KAAK4lW,EAAN,CAAL,IAAkB5lW,KAAK,CAAC,KAAK8lW,EAAN,CAA3B,EAAsC;AAClC,aAAKF,EAAL,GAAUvtV,CAAV;AACA,aAAKytV,EAAL,GAAUztV,CAAV;AACH;;AACD,UAAIA,CAAC,GAAG,KAAKutV,EAAb,EAAiB;AACb,aAAKA,EAAL,GAAUvtV,CAAV;AACH;;AACD,UAAIA,CAAC,GAAG,KAAKytV,EAAb,EAAiB;AACb,aAAKA,EAAL,GAAUztV,CAAV;AACH;AACJ;;AACD,QAAI,OAAOwlF,CAAP,KAAa,WAAjB,EAA8B;AAC1B,UAAI79F,KAAK,CAAC,KAAK6lW,EAAN,CAAL,IAAkB7lW,KAAK,CAAC,KAAK+lW,EAAN,CAA3B,EAAsC;AAClC,aAAKF,EAAL,GAAUhoQ,CAAV;AACA,aAAKkoQ,EAAL,GAAUloQ,CAAV;AACH;;AACD,UAAIA,CAAC,GAAG,KAAKgoQ,EAAb,EAAiB;AACb,aAAKA,EAAL,GAAUhoQ,CAAV;AACH;;AACD,UAAIA,CAAC,GAAG,KAAKkoQ,EAAb,EAAiB;AACb,aAAKA,EAAL,GAAUloQ,CAAV;AACH;AACJ;AACJ;;AACDomxB,EAAAA,IAAI,CAAC5r2B,CAAD,EAAI;AACJ,SAAK2r2B,QAAL,CAAc3r2B,CAAd,EAAiB,CAAjB;AACH;;AACD6r2B,EAAAA,IAAI,CAACrmxB,CAAD,EAAI;AACJ,SAAKmmxB,QAAL,CAAc,CAAd,EAAiBnmxB,CAAjB;AACH;;AACDsmxB,EAAAA,cAAc,CAACxvW,WAAD,EAAc;AACxB,QAAI,CAACA,WAAL,EAAkB;AACd;AACH;;AACD,UAAM;AAAE/uK,MAAAA,EAAF;AAAOC,MAAAA,EAAP;AAAYC,MAAAA,EAAZ;AAAiBC,MAAAA;AAAjB,QAAyB4uK,WAA/B;AACA,SAAKqvW,QAAL,CAAcp+gB,EAAd,EAAkBC,EAAlB;AACA,SAAKm+gB,QAAL,CAAcl+gB,EAAd,EAAkBC,EAAlB;AACH;;AACDq+gB,EAAAA,QAAQ,CAAC7r2B,CAAD,EAAI04Z,EAAJ,EAAQ1jD,EAAR,EAAYC,EAAZ,EAAgB62f,EAAhB,EAAoB;AACxB,WAAO7k3B,IAAI,CAACygB,GAAL,CAAS,IAAI1H,CAAb,EAAgB,CAAhB,IAAqB04Z,EAArB,GAA0B,IAAIzxa,IAAI,CAACygB,GAAL,CAAS,IAAI1H,CAAb,EAAgB,CAAhB,CAAJ,GAAyBA,CAAzB,GAA6Bg1W,EAAvD,GAA4D,KAAK,IAAIh1W,CAAT,IAAc/Y,IAAI,CAACygB,GAAL,CAAS1H,CAAT,EAAY,CAAZ,CAAd,GAA+Bi1W,EAA3F,GAAgGhuX,IAAI,CAACygB,GAAL,CAAS1H,CAAT,EAAY,CAAZ,IAAiB8r2B,EAAxH;AACH;;AACDC,EAAAA,cAAc,CAACC,IAAD,EAAOtzc,EAAP,EAAW1jD,EAAX,EAAeC,EAAf,EAAmB62f,EAAnB,EAAuB;AACjC,UAAMtu2B,CAAC,GAAG,IAAIk7Z,EAAJ,GAAS,KAAK1jD,EAAd,GAAmB,IAAIC,EAAjC;AACA,UAAM13W,CAAC,GAAG,CAAC,CAAD,GAAKm7Z,EAAL,GAAU,IAAI1jD,EAAd,GAAmB,IAAIC,EAAvB,GAA4B,IAAI62f,EAA1C;AACA,UAAMzs2B,CAAC,GAAG,IAAI21W,EAAJ,GAAS,IAAI0jD,EAAvB;;AACA,QAAIn7Z,CAAC,KAAK,CAAV,EAAa;AACT,UAAIC,CAAC,KAAK,CAAV,EAAa;AACT;AACH;;AACD,YAAMwC,CAAC,GAAG,CAACX,CAAD,GAAK7B,CAAf;;AACA,UAAI,IAAIwC,CAAJ,IAASA,CAAC,GAAG,CAAjB,EAAoB;AAChB,YAAIgs2B,IAAJ,EAAU;AACN,eAAKN,IAAL,CAAU,KAAKG,QAAL,CAAc7r2B,CAAd,EAAiB04Z,EAAjB,EAAqB1jD,EAArB,EAAyBC,EAAzB,EAA6B62f,EAA7B,CAAV;AACH,SAFD,MAEO;AACH,eAAKH,IAAL,CAAU,KAAKE,QAAL,CAAc7r2B,CAAd,EAAiB04Z,EAAjB,EAAqB1jD,EAArB,EAAyBC,EAAzB,EAA6B62f,EAA7B,CAAV;AACH;AACJ;;AACD;AACH;;AACD,UAAMG,IAAI,GAAGhl3B,IAAI,CAACygB,GAAL,CAASlK,CAAT,EAAY,CAAZ,IAAiB,IAAI6B,CAAJ,GAAQ9B,CAAtC;;AACA,QAAI0u2B,IAAI,GAAG,CAAX,EAAc;AACV;AACH;;AACD,UAAM9ghB,EAAE,GAAG,CAAC,CAAC3tV,CAAD,GAAKvW,IAAI,CAACmhQ,IAAL,CAAU6jnB,IAAV,CAAN,KAA0B,IAAI1u2B,CAA9B,CAAX;;AACA,QAAI,IAAI4tV,EAAJ,IAAUA,EAAE,GAAG,CAAnB,EAAsB;AAClB,UAAI6ghB,IAAJ,EAAU;AACN,aAAKN,IAAL,CAAU,KAAKG,QAAL,CAAc1ghB,EAAd,EAAkButE,EAAlB,EAAsB1jD,EAAtB,EAA0BC,EAA1B,EAA8B62f,EAA9B,CAAV;AACH,OAFD,MAEO;AACH,aAAKH,IAAL,CAAU,KAAKE,QAAL,CAAc1ghB,EAAd,EAAkButE,EAAlB,EAAsB1jD,EAAtB,EAA0BC,EAA1B,EAA8B62f,EAA9B,CAAV;AACH;AACJ;;AACD,UAAM1ghB,EAAE,GAAG,CAAC,CAAC5tV,CAAD,GAAKvW,IAAI,CAACmhQ,IAAL,CAAU6jnB,IAAV,CAAN,KAA0B,IAAI1u2B,CAA9B,CAAX;;AACA,QAAI,IAAI6tV,EAAJ,IAAUA,EAAE,GAAG,CAAnB,EAAsB;AAClB,UAAI4ghB,IAAJ,EAAU;AACN,aAAKN,IAAL,CAAU,KAAKG,QAAL,CAAczghB,EAAd,EAAkBstE,EAAlB,EAAsB1jD,EAAtB,EAA0BC,EAA1B,EAA8B62f,EAA9B,CAAV;AACH,OAFD,MAEO;AACH,aAAKH,IAAL,CAAU,KAAKE,QAAL,CAAczghB,EAAd,EAAkBstE,EAAlB,EAAsB1jD,EAAtB,EAA0BC,EAA1B,EAA8B62f,EAA9B,CAAV;AACH;AACJ;AACJ,GA9Fa,CA+Fd;;;AACAI,EAAAA,cAAc,CAACC,GAAD,EAAMC,GAAN,EAAWC,GAAX,EAAgBC,GAAhB,EAAqBC,GAArB,EAA0BC,GAA1B,EAA+BC,GAA/B,EAAoCC,GAApC,EAAyC;AACnD,SAAKjB,QAAL,CAAcU,GAAd,EAAmBC,GAAnB;AACA,SAAKX,QAAL,CAAcgB,GAAd,EAAmBC,GAAnB;AACA,SAAKX,cAAL,CAAoB,IAApB,EAA0BI,GAA1B,EAA+BE,GAA/B,EAAoCE,GAApC,EAAyCE,GAAzC;AACA,SAAKV,cAAL,CAAoB,KAApB,EAA2BK,GAA3B,EAAgCE,GAAhC,EAAqCE,GAArC,EAA0CE,GAA1C;AACH;;AACDC,EAAAA,iBAAiB,CAACR,GAAD,EAAMC,GAAN,EAAWC,GAAX,EAAgBC,GAAhB,EAAqBC,GAArB,EAA0BC,GAA1B,EAA+B;AAC5C,UAAMI,IAAI,GAAGT,GAAG,GAAG,IAAI,CAAJ,IAASE,GAAG,GAAGF,GAAf,CAAnB,CAAuC;AAAvC;AAEA,UAAMU,IAAI,GAAGT,GAAG,GAAG,IAAI,CAAJ,IAASE,GAAG,GAAGF,GAAf,CAAnB,CAAuC;AAAvC;AAEA,UAAMU,IAAI,GAAGF,IAAI,GAAG,IAAI,CAAJ,IAASL,GAAG,GAAGJ,GAAf,CAApB,CAAwC;AAAxC;AAEA,UAAMY,IAAI,GAAGF,IAAI,GAAG,IAAI,CAAJ,IAASL,GAAG,GAAGJ,GAAf,CAApB,CAAwC;AAAxC;AAEA,SAAKF,cAAL,CAAoBC,GAApB,EAAyBC,GAAzB,EAA8BQ,IAA9B,EAAoCE,IAApC,EAA0CD,IAA1C,EAAgDE,IAAhD,EAAsDR,GAAtD,EAA2DC,GAA3D;AACH;;AACDpI,EAAAA,YAAY,CAACtk2B,CAAD,EAAIwlF,CAAJ,EAAO;AACf,UAAM;AAAE+nQ,MAAAA,EAAF;AAAOC,MAAAA,EAAP;AAAYC,MAAAA,EAAZ;AAAiBC,MAAAA;AAAjB,QAAyB,IAA/B;AACA,WAAOH,EAAE,IAAIvtV,CAAN,IAAWA,CAAC,IAAIytV,EAAhB,IAAsBD,EAAE,IAAIhoQ,CAA5B,IAAiCA,CAAC,IAAIkoQ,EAA7C;AACH;;AACDpyW,EAAAA,WAAW,CAACiyW,EAAE,GAAG7lW,MAAM,CAACmmF,GAAb,EAAkB2/Q,EAAE,GAAG9lW,MAAM,CAACmmF,GAA9B,EAAmC4/Q,EAAE,GAAG/lW,MAAM,CAACmmF,GAA/C,EAAoD6/Q,EAAE,GAAGhmW,MAAM,CAACmmF,GAAhE,EAAoE;AAC3E,SAAK0/Q,EAAL,GAAUA,EAAV;AACA,SAAKC,EAAL,GAAUA,EAAV;AACA,SAAKC,EAAL,GAAUA,EAAV;AACA,SAAKC,EAAL,GAAUA,EAAV;AACA,SAAKi+gB,QAAL,CAAcp+gB,EAAd,EAAkBC,EAAlB;AACA,SAAKm+gB,QAAL,CAAcl+gB,EAAd,EAAkBC,EAAlB;AACH;;AA5Ha;;AA+HlB,MAAMw/gB,eAAN,SAA8B7uxB,OAA9B,CAAsC;AAClC8uxB,EAAAA,gBAAgB,GAAG;AACf,QAAI9wxB,OAAO,GAAG,CAAd,CADe,CAEf;;AACA,QAAI5wC,OAAO,GAAG,IAAd;;AACA,WAAMA,OAAN,EAAc;AACV,YAAM2h0B,YAAY,GAAG3h0B,OAAO,CAAC+ke,QAAR,CAAiB,SAAjB,EAA4B,KAA5B,EAAmC,IAAnC,CAArB,CAA8D;AAA9D;;AAEA,UAAI48V,YAAY,CAAC3mvB,QAAb,CAAsB,IAAtB,CAAJ,EAAiC;AAC7BpqC,QAAAA,OAAO,IAAI+wxB,YAAY,CAAC3L,SAAb,EAAX;AACH;;AACDh2zB,MAAAA,OAAO,GAAGA,OAAO,CAAClT,MAAlB;AACH;;AACD,WAAO8jD,OAAP;AACH;;AACDktxB,EAAAA,UAAU,CAAC3nhB,GAAD,EAAM;AACZ,QAAIyrhB,WAAW,GAAG/y1B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAAnF;;AACA,QAAI,CAAC+y1B,WAAL,EAAkB;AACd;AACA,YAAMC,aAAa,GAAG,KAAK98V,QAAL,CAAc,MAAd,CAAtB;AACA,YAAM+8V,oBAAoB,GAAG,KAAK/8V,QAAL,CAAc,cAAd,CAA7B;AACA,YAAMg9V,eAAe,GAAG,KAAKh9V,QAAL,CAAc,QAAd,CAAxB;AACA,YAAMi9V,iBAAiB,GAAG,KAAKj9V,QAAL,CAAc,gBAAd,CAA1B;;AACA,UAAI88V,aAAa,CAAChM,eAAd,EAAJ,EAAqC;AACjC,cAAMp/gB,SAAS,GAAGorhB,aAAa,CAAC9K,sBAAd,CAAqC,IAArC,EAA2C+K,oBAA3C,CAAlB;;AACA,YAAIrrhB,SAAJ,EAAe;AACXN,UAAAA,GAAG,CAACM,SAAJ,GAAgBA,SAAhB;AACH;AACJ,OALD,MAKO,IAAIorhB,aAAa,CAAC7mvB,QAAd,EAAJ,EAA8B;AACjC,YAAI6mvB,aAAa,CAAClM,SAAd,OAA8B,cAAlC,EAAkD;AAC9CkM,UAAAA,aAAa,CAACjuwB,QAAd,CAAuB,KAAKmxa,QAAL,CAAc,OAAd,EAAuByT,QAAvB,EAAvB;AACH;;AACD,cAAM/hM,SAAS,GAAGorhB,aAAa,CAACrpV,QAAd,EAAlB;;AACA,YAAI/hM,SAAS,KAAK,SAAlB,EAA6B;AACzBN,UAAAA,GAAG,CAACM,SAAJ,GAAgBA,SAAS,KAAK,MAAd,GAAuB,eAAvB,GAAyCA,SAAzD;AACH;AACJ;;AACD,UAAIqrhB,oBAAoB,CAAC9mvB,QAArB,EAAJ,EAAqC;AACjC,cAAMy7N,SAAS,GAAG,IAAIi/gB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,MAA5B,EAAoC2uU,GAAG,CAACM,SAAxC,EAAmD2ghB,UAAnD,CAA8D0K,oBAA9D,EAAoFtpV,QAApF,EAAlB;AACAriM,QAAAA,GAAG,CAACM,SAAJ,GAAgBA,SAAhB;AACH,OAvBa,CAwBd;;;AACA,UAAIsrhB,eAAe,CAAClM,eAAhB,EAAJ,EAAuC;AACnC,cAAMv/gB,WAAW,GAAGyrhB,eAAe,CAAChL,sBAAhB,CAAuC,IAAvC,EAA6CiL,iBAA7C,CAApB;;AACA,YAAI1rhB,WAAJ,EAAiB;AACbH,UAAAA,GAAG,CAACG,WAAJ,GAAkBA,WAAlB;AACH;AACJ,OALD,MAKO,IAAIyrhB,eAAe,CAAC/mvB,QAAhB,EAAJ,EAAgC;AACnC,YAAI+mvB,eAAe,CAACpM,SAAhB,OAAgC,cAApC,EAAoD;AAChDoM,UAAAA,eAAe,CAACnuwB,QAAhB,CAAyB,KAAKmxa,QAAL,CAAc,OAAd,EAAuByT,QAAvB,EAAzB;AACH;;AACD,cAAMliM,WAAW,GAAGyrhB,eAAe,CAACpM,SAAhB,EAApB;;AACA,YAAIr/gB,WAAW,KAAK,SAApB,EAA+B;AAC3BH,UAAAA,GAAG,CAACG,WAAJ,GAAkBA,WAAW,KAAK,MAAhB,GAAyB,eAAzB,GAA2CA,WAA7D;AACH;AACJ;;AACD,UAAI0rhB,iBAAiB,CAAChnvB,QAAlB,EAAJ,EAAkC;AAC9B,cAAMs7N,WAAW,GAAG,IAAIo/gB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,QAA5B,EAAsC2uU,GAAG,CAACG,WAA1C,EAAuD8ghB,UAAvD,CAAkE4K,iBAAlE,EAAqFrM,SAArF,EAApB;AACAx/gB,QAAAA,GAAG,CAACG,WAAJ,GAAkBA,WAAlB;AACH;;AACD,YAAM2rhB,oBAAoB,GAAG,KAAKl9V,QAAL,CAAc,cAAd,CAA7B;;AACA,UAAIk9V,oBAAoB,CAACjnvB,QAArB,EAAJ,EAAqC;AACjC,cAAMknvB,YAAY,GAAGD,oBAAoB,CAACzL,SAArB,EAArB;AACArghB,QAAAA,GAAG,CAACI,SAAJ,GAAgB,CAAC2rhB,YAAD,GAAgBnN,WAAhB,CAA4B;AAA5B,UACbmN,YADH;AAEH;;AACD,YAAMC,sBAAsB,GAAG,KAAKp9V,QAAL,CAAc,gBAAd,CAA/B;AACA,YAAMq9V,uBAAuB,GAAG,KAAKr9V,QAAL,CAAc,iBAAd,CAAhC;AACA,YAAMs9V,oBAAoB,GAAG,KAAKt9V,QAAL,CAAc,mBAAd,CAA7B,CAnDc,CAoDd;AACA;;AACA,YAAMu9V,wBAAwB,GAAG,KAAKv9V,QAAL,CAAc,kBAAd,CAAjC;AACA,YAAMw9V,oBAAoB,GAAG,KAAKx9V,QAAL,CAAc,mBAAd,CAA7B;;AACA,UAAIo9V,sBAAsB,CAACnnvB,QAAvB,EAAJ,EAAuC;AACnCm7N,QAAAA,GAAG,CAACwH,OAAJ,GAAcwkhB,sBAAsB,CAACxM,SAAvB,EAAd;AACH;;AACD,UAAIyM,uBAAuB,CAACpnvB,QAAxB,EAAJ,EAAwC;AACpCm7N,QAAAA,GAAG,CAAC0H,QAAJ,GAAeukhB,uBAAuB,CAACzM,SAAxB,EAAf;AACH;;AACD,UAAI0M,oBAAoB,CAACrnvB,QAArB,EAAJ,EAAqC;AACjCm7N,QAAAA,GAAG,CAACshM,UAAJ,GAAiB4qV,oBAAoB,CAACrM,SAArB,EAAjB;AACH,OAhEa,CAiEd;AACA;AACA;AACA;AACA;;;AACA,UAAIsM,wBAAwB,CAACtnvB,QAAzB,MAAuCsnvB,wBAAwB,CAAC3M,SAAzB,OAAyC,MAApF,EAA4F;AACxF,cAAMtif,IAAI,GAAGogf,SAAS,CAAC6O,wBAAwB,CAAC3M,SAAzB,EAAD,CAAtB;;AACA,YAAI,OAAOx/gB,GAAG,CAACoJ,WAAX,KAA2B,WAA/B,EAA4C;AACxCpJ,UAAAA,GAAG,CAACoJ,WAAJ,CAAgB8zB,IAAhB;AACH,SAFD,MAEO;AACP,cAAI,OAAOl9B,GAAG,CAACqshB,cAAX,KAA8B,WAAlC,EAA+C;AAC3C;AACArshB,YAAAA,GAAG,CAACqshB,cAAJ,GAAqBnvf,IAArB;AACH,WAHD,MAGO;AACP,gBAAI,OAAOl9B,GAAG,CAACsshB,OAAX,KAAuB,WAAvB,IAAsC,EAAEpvf,IAAI,CAACzua,MAAL,KAAgB,CAAhB,IAAqByua,IAAI,CAAC,CAAD,CAAJ,KAAY,CAAnC,CAA1C,EAAiF;AAC7E;AACAl9B,cAAAA,GAAG,CAACsshB,OAAJ,GAAcpvf,IAAd;AACH;;AACD,cAAM7qW,MAAM,GAAG+51B,oBAAoB,CAAC/L,SAArB,EAAf;;AACA,YAAI,OAAOrghB,GAAG,CAACsH,cAAX,KAA8B,WAAlC,EAA+C;AAC3CtH,UAAAA,GAAG,CAACsH,cAAJ,GAAqBj1U,MAArB;AACH,SAFD,MAEO;AACP,cAAI,OAAO2tU,GAAG,CAACushB,oBAAX,KAAoC,WAAxC,EAAqD;AACjD;AACAvshB,YAAAA,GAAG,CAACushB,oBAAJ,GAA2Bl61B,MAA3B;AACH,WAHD,MAGO;AACP,gBAAI,OAAO2tU,GAAG,CAACwshB,aAAX,KAA6B,WAAjC,EAA8C;AAC1C;AACAxshB,cAAAA,GAAG,CAACwshB,aAAJ,GAAoBn61B,MAApB;AACH;AACJ;AACJ,KAlGW,CAmGZ;;;AACA,SAAKo61B,mBAAL,GAA2B,KAA3B;;AACA,QAAI,OAAOzshB,GAAG,CAACzmB,IAAX,KAAoB,WAAxB,EAAqC;AACjC,YAAMmziB,aAAa,GAAG,KAAK99V,QAAL,CAAc,MAAd,CAAtB;AACA,YAAM+9V,kBAAkB,GAAG,KAAK/9V,QAAL,CAAc,YAAd,CAA3B;AACA,YAAMg+V,oBAAoB,GAAG,KAAKh+V,QAAL,CAAc,cAAd,CAA7B;AACA,YAAMi+V,mBAAmB,GAAG,KAAKj+V,QAAL,CAAc,aAAd,CAA5B;AACA,YAAMk+V,iBAAiB,GAAG,KAAKl+V,QAAL,CAAc,WAAd,CAA1B;AACA,YAAMm+V,mBAAmB,GAAG,KAAKn+V,QAAL,CAAc,aAAd,CAA5B;AACA,YAAMr1M,IAAI,GAAG,IAAIkwiB,IAAJ,CAASkD,kBAAkB,CAACnN,SAAnB,EAAT,EAAyCoN,oBAAoB,CAACpN,SAArB,EAAzC,EAA2EqN,mBAAmB,CAACrN,SAApB,EAA3E,EAA4GsN,iBAAiB,CAACjovB,QAAlB,KAA+B,GAAG34H,MAAH,CAAU4g3B,iBAAiB,CAACzM,SAAlB,CAA4B,IAA5B,CAAV,EAA6C,IAA7C,CAA/B,GAAoF,EAAhM,EAAoM0M,mBAAmB,CAACvN,SAApB,EAApM,EAAqOiK,IAAI,CAACt13B,KAAL,CAAWu43B,aAAa,CAAClN,SAAd,EAAX,EAAsCx/gB,GAAG,CAACzmB,IAA1C,CAArO,CAAb;AACAoziB,MAAAA,kBAAkB,CAAClvwB,QAAnB,CAA4B87N,IAAI,CAACuhD,SAAjC;AACA8xf,MAAAA,oBAAoB,CAACnvwB,QAArB,CAA8B87N,IAAI,CAACmwiB,WAAnC;AACAmD,MAAAA,mBAAmB,CAACpvwB,QAApB,CAA6B87N,IAAI,CAACwhD,UAAlC;AACA+xf,MAAAA,iBAAiB,CAACrvwB,QAAlB,CAA2B87N,IAAI,CAACqf,QAAhC;AACAm0hB,MAAAA,mBAAmB,CAACtvwB,QAApB,CAA6B87N,IAAI,CAACshD,UAAlC;AACA76B,MAAAA,GAAG,CAACzmB,IAAJ,GAAWA,IAAI,CAACvjX,QAAL,EAAX;;AACA,UAAI825B,iBAAiB,CAACnN,QAAlB,EAAJ,EAAkC;AAC9B,aAAKtu1B,QAAL,CAAc8u1B,MAAd,GAAuB2M,iBAAiB,CAACzM,SAAlB,EAAvB;AACA,aAAKoM,mBAAL,GAA2B,IAA3B;AACH;AACJ;;AACD,QAAI,CAAChB,WAAL,EAAkB;AACd;AACA,WAAK/D,YAAL,CAAkB1nhB,GAAlB,EAFc,CAGd;;AACAA,MAAAA,GAAG,CAACuG,WAAJ,GAAkB,KAAKglhB,gBAAL,EAAlB;AACH;AACJ;;AACD1D,EAAAA,YAAY,CAAC7nhB,GAAD,EAAM;AACd,UAAM6nhB,YAAN,CAAmB7nhB,GAAnB;;AACA,QAAI,KAAKyshB,mBAAT,EAA8B;AAC1B,WAAKp71B,QAAL,CAAc271B,SAAd;AACH;AACJ;;AACDtz3B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAKs95B,mBAAL,GAA2B,KAA3B;AACH;;AAvJiC;;AA0JtC,MAAMQ,WAAN,SAA0B3B,eAA1B,CAA0C;AACtC3D,EAAAA,UAAU,CAAC3nhB,GAAD,EAAM;AACZ,QAAIyrhB,WAAW,GAAG/y1B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAAnF;AACA,UAAMiv1B,UAAN,CAAiB3nhB,GAAjB,EAAsByrhB,WAAtB;AACA,UAAMlrhB,YAAY,GAAG,KAAKquL,QAAL,CAAc,mBAAd,EAAmCmyV,eAAnC,MAAwD,KAAKnyV,QAAL,CAAc,oBAAd,EAAoCmyV,eAApC,EAA7E;;AACA,QAAIxghB,YAAJ,EAAkB;AACdP,MAAAA,GAAG,CAACO,YAAJ,GAAmBA,YAAnB;AACH;AACJ;;AACD2shB,EAAAA,qBAAqB,GAAG;AACpB,SAAK9u2B,CAAL,GAAS,CAAT;AACA,SAAKwlF,CAAL,GAAS,CAAT;AACA,SAAKupxB,SAAL,GAAiB,EAAjB;AACA,SAAKC,cAAL,GAAsB,CAAtB;AACA,SAAK3ue,IAAL,GAAY34Y,MAAM,CAACun3B,iBAAnB;AACA,SAAK3zmB,IAAL,GAAY5zQ,MAAM,CAACqga,iBAAnB;AACH;;AACDmnd,EAAAA,cAAc,CAACtthB,GAAD,EAAM;AAChB,QAAI,KAAK/gW,IAAL,KAAc,MAAlB,EAA0B;AACtB,aAAO,KAAKsu3B,sBAAL,CAA4BvthB,GAA5B,CAAP;AACH,KAHe,CAIhB;;;AACA,SAAKkthB,qBAAL;AACA,SAAKM,+BAAL,CAAqCxthB,GAArC;AACA,QAAI06K,WAAW,GAAG,IAAlB,CAPgB,CAQhB;;AACA,SAAKn2d,QAAL,CAAcnxC,OAAd,CAAsB,CAACj0B,CAAD,EAAI7xB,CAAJ,KAAQ;AAC1B,YAAMmg6B,gBAAgB,GAAG,KAAKC,mBAAL,CAAyB1thB,GAAzB,EAA8B,IAA9B,EAAoC,IAApC,EAA0C1yY,CAA1C,CAAzB;;AACA,UAAI,CAACotjB,WAAL,EAAkB;AACdA,QAAAA,WAAW,GAAG+yW,gBAAd;AACH,OAFD,MAEO;AACH/yW,QAAAA,WAAW,CAACwvW,cAAZ,CAA2BuD,gBAA3B;AACH;AACJ,KAPD;AAQA,WAAO/yW,WAAP;AACH;;AACD8D,EAAAA,WAAW,GAAG;AACV,UAAM;AAAEntf,MAAAA,QAAF;AAAaslB,MAAAA;AAAb,QAAyB,IAA/B;AACA,UAAMg30B,eAAe,GAAGlE,IAAI,CAACt13B,KAAL,CAAWk9B,QAAQ,CAAC2uU,GAAT,CAAazmB,IAAxB,EAA8Bqf,QAAtD;AACA,UAAMA,QAAQ,GAAGjiT,MAAM,CAACi4e,QAAP,CAAgB,WAAhB,EAA6BixV,SAA7B,CAAuC8N,eAAvC,CAAjB;AACA,WAAO/0hB,QAAP;AACH;;AACD20hB,EAAAA,sBAAsB,CAACvthB,GAAD,EAAM;AACxB,UAAMpH,QAAQ,GAAG,KAAK4lL,WAAL,EAAjB;AACA,WAAO,IAAIsrW,WAAJ,CAAgB,KAAK1r2B,CAArB,EAAwB,KAAKwlF,CAAL,GAASg1P,QAAjC,EAA2C,KAAKx6U,CAAL,GAAS,KAAK+4V,WAAL,CAAiBnX,GAAjB,CAApD,EAA2E,KAAKp8P,CAAhF,CAAP;AACH;;AACDgqxB,EAAAA,QAAQ,CAACr0iB,IAAD,EAAO9tT,IAAP,EAAan+D,CAAb,EAAgB;AACpB,UAAMkqI,IAAI,GAAG/rE,IAAI,CAACn+D,CAAD,CAAjB;AACA,QAAIug6B,KAAJ;;AACA,QAAIt0iB,IAAI,CAACu0iB,QAAT,EAAmB;AACf,UAAI/ixB,GAAJ;AACA,YAAMtzC,GAAG,GAAGhsC,IAAI,CAACh9D,MAAjB;AACA,YAAMs/5B,QAAQ,GAAGti2B,IAAI,CAACn+D,CAAC,GAAG,CAAL,CAArB;AACA,YAAMuqI,QAAQ,GAAGpsE,IAAI,CAACn+D,CAAC,GAAG,CAAL,CAArB;AACA,UAAI0g6B,UAAU,GAAG,UAAjB;;AACA,UAAI,CAAC1g6B,CAAC,KAAK,CAAN,IAAWyg6B,QAAQ,KAAK,GAAzB,KAAiCzg6B,CAAC,GAAGmqG,GAAG,GAAG,CAA3C,IAAgDogC,QAAQ,KAAK,GAAjE,EAAsE;AAClEm2xB,QAAAA,UAAU,GAAG,UAAb;AACH;;AACD,UAAI1g6B,CAAC,GAAG,CAAJ,IAASyg6B,QAAQ,KAAK,GAAtB,IAA6Bzg6B,CAAC,GAAGmqG,GAAG,GAAG,CAAvC,IAA4CogC,QAAQ,KAAK,GAA7D,EAAkE;AAC9Dm2xB,QAAAA,UAAU,GAAG,QAAb;AACH;;AACD,UAAI1g6B,CAAC,GAAG,CAAJ,IAASyg6B,QAAQ,KAAK,GAAtB,KAA8Bzg6B,CAAC,KAAKmqG,GAAG,GAAG,CAAZ,IAAiBogC,QAAQ,KAAK,GAA5D,CAAJ,EAAsE;AAClEm2xB,QAAAA,UAAU,GAAG,SAAb;AACH;;AACDH,MAAAA,KAAK,GAAG,CAAC,CAAC9ixB,GAAG,GAAGwuO,IAAI,CAAC00iB,YAAL,CAAkBz2xB,IAAlB,CAAP,MAAoC,IAApC,IAA4CuT,GAAG,KAAK,KAAK,CAAzD,GAA6D,KAAK,CAAlE,GAAsEA,GAAG,CAACijxB,UAAD,CAA1E,KAA2Fz0iB,IAAI,CAAC20iB,MAAL,CAAY12xB,IAAZ,CAAnG;AACH,KAhBD,MAgBO;AACHq2xB,MAAAA,KAAK,GAAGt0iB,IAAI,CAAC20iB,MAAL,CAAY12xB,IAAZ,CAAR;AACH;;AACD,QAAI,CAACq2xB,KAAL,EAAY;AACRA,MAAAA,KAAK,GAAGt0iB,IAAI,CAAC40iB,YAAb;AACH;;AACD,WAAON,KAAP;AACH;;AACD7E,EAAAA,OAAO,GAAG;AACN,WAAO,EAAP;AACH;;AACDoF,EAAAA,eAAe,CAACno5B,IAAD,EAAO;AAClB,UAAMw+U,QAAQ,GAAGx+U,IAAI,IAAI,KAAKA,IAA9B;AACA,UAAM6zI,UAAU,GAAGh1E,KAAK,CAACjoB,IAAN,CAAW4nS,QAAQ,CAAC3pN,UAAT,CAAoBgf,UAA/B,CAAnB;AACA,UAAMptG,KAAK,GAAGotG,UAAU,CAAC98G,OAAX,CAAmBynT,QAAnB,CAAd;AACA,UAAM5lO,SAAS,GAAGi7B,UAAU,CAACrrJ,MAAX,GAAoB,CAAtC;AACA,QAAIg9D,IAAI,GAAG2x1B,cAAc,EAAC;AAC1B;AACA34jB,IAAAA,QAAQ,CAACozD,WAAT,IAAwB,EAFC,CAAzB;;AAGA,QAAInrW,KAAK,KAAK,CAAd,EAAiB;AACb+e,MAAAA,IAAI,GAAGu1gB,QAAQ,CAACv1gB,IAAD,CAAf;AACH;;AACD,QAAI/e,KAAK,KAAKmyE,SAAd,EAAyB;AACrBpzD,MAAAA,IAAI,GAAG4x1B,SAAS,CAAC5x1B,IAAD,CAAhB;AACH;;AACD,WAAOA,IAAP;AACH;;AACDm81B,EAAAA,cAAc,CAAC5nhB,GAAD,EAAM;AAChB,QAAI,KAAK/gW,IAAL,KAAc,MAAlB,EAA0B;AACtB,WAAKov3B,sBAAL,CAA4BruhB,GAA5B;AACA;AACH,KAJe,CAKhB;;;AACA,SAAKkthB,qBAAL;AACA,SAAKM,+BAAL,CAAqCxthB,GAArC,EAPgB,CAQhB;;AACA,SAAKz7S,QAAL,CAAcnxC,OAAd,CAAsB,CAACj0B,CAAD,EAAI7xB,CAAJ,KAAQ;AAC1B,WAAKgh6B,WAAL,CAAiBtuhB,GAAjB,EAAsB,IAAtB,EAA4B,IAA5B,EAAkC1yY,CAAlC;AACH,KAFD;AAGA,UAAM;AAAE2lvB,MAAAA;AAAF,QAAa,KAAK5hrB,QAAL,CAAc6njB,MAAjC,CAZgB,CAahB;;AACA,QAAI+5H,KAAK,CAACivK,SAAN,EAAJ,EAAuB;AACnBjvK,MAAAA,KAAK,CAACwvK,gBAAN,CAAuB,IAAvB,EAA6B,KAAK6K,cAAL,CAAoBtthB,GAApB,CAA7B;AACH;AACJ;;AACDquhB,EAAAA,sBAAsB,CAACruhB,GAAD,EAAM;AACxB,UAAM;AAAE3uU,MAAAA,QAAF;AAAaslB,MAAAA;AAAb,QAAyB,IAA/B;AACA,UAAM430B,UAAU,GAAG,KAAKvF,OAAL,EAAnB;AACA,UAAMwF,UAAU,GAAG730B,MAAM,CAACi4e,QAAP,CAAgB,aAAhB,EAA+B3ve,aAA/B,EAAnB;;AACA,QAAIuv0B,UAAJ,EAAgB;AACZ,YAAM;AAAEloU,QAAAA;AAAF,UAAkBkoU,UAAU,CAACC,QAAnC;AACA,YAAMC,OAAO,GAAGjF,IAAI,CAACt13B,KAAL,CAAWk9B,QAAQ,CAAC2uU,GAAT,CAAazmB,IAAxB,CAAhB;AACA,YAAMqf,QAAQ,GAAGjiT,MAAM,CAACi4e,QAAP,CAAgB,WAAhB,EAA6BixV,SAA7B,CAAuC6O,OAAO,CAAC91hB,QAA/C,CAAjB;AACA,YAAMkiC,SAAS,GAAGnkV,MAAM,CAACi4e,QAAP,CAAgB,YAAhB,EAA8B4wV,SAA9B,CAAwCkP,OAAO,CAAC5zf,SAAhD,CAAlB;AACA,YAAM14S,KAAK,GAAGw2Q,QAAQ,GAAG0tN,UAAzB;AACA,YAAM76hB,IAAI,GAAG+i2B,UAAU,CAACG,KAAX,GAAmBJ,UAAU,CAACp25B,KAAX,CAAiB,EAAjB,EAAqBqrF,OAArB,GAA+B7kF,IAA/B,CAAoC,EAApC,CAAnB,GAA6D4v5B,UAA1E;AACA,YAAMvnnB,EAAE,GAAGs2mB,SAAS,CAAC3m0B,MAAM,CAACmjD,YAAP,CAAoB,IAApB,EAA0B0lxB,SAA1B,EAAD,CAApB;AACA,YAAM/nzB,GAAG,GAAGhsC,IAAI,CAACh9D,MAAjB;;AACA,WAAI,IAAInB,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGmqG,GAAnB,EAAwBnqG,CAAC,EAAzB,EAA4B;AACxB,cAAMug6B,KAAK,GAAG,KAAKD,QAAL,CAAcY,UAAd,EAA0B/i2B,IAA1B,EAAgCn+D,CAAhC,CAAd;AACA0yY,QAAAA,GAAG,CAAC1oP,SAAJ,CAAc,KAAKl5F,CAAnB,EAAsB,KAAKwlF,CAA3B;AACAo8P,QAAAA,GAAG,CAAC59Q,KAAJ,CAAUA,KAAV,EAAiB,CAACA,KAAlB;AACA,cAAMwsyB,EAAE,GAAG5uhB,GAAG,CAACI,SAAf;AACAJ,QAAAA,GAAG,CAACI,SAAJ,GAAgBJ,GAAG,CAACI,SAAJ,GAAgBkmN,UAAhB,GAA6B1tN,QAA7C;;AACA,YAAIkiC,SAAS,KAAK,QAAlB,EAA4B;AACxB96B,UAAAA,GAAG,CAACl6T,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoB,GAApB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B;AACH;;AACD+n1B,QAAAA,KAAK,CAAC9thB,MAAN,CAAaC,GAAb;;AACA,YAAI86B,SAAS,KAAK,QAAlB,EAA4B;AACxB96B,UAAAA,GAAG,CAACl6T,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAAC,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,EAAgC,CAAhC;AACH;;AACDk6T,QAAAA,GAAG,CAACI,SAAJ,GAAgBwuhB,EAAhB;AACA5uhB,QAAAA,GAAG,CAAC59Q,KAAJ,CAAU,IAAIA,KAAd,EAAqB,CAAC,CAAD,GAAKA,KAA1B;AACA49Q,QAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAAC,KAAKl5F,CAApB,EAAuB,CAAC,KAAKwlF,CAA7B;AACA,aAAKxlF,CAAL,IAAUw6U,QAAQ,IAAIi1hB,KAAK,CAACgB,SAAN,IAAmBL,UAAU,CAACK,SAAlC,CAAR,GAAuDvoU,UAAjE;;AACA,YAAI,OAAOt/S,EAAE,CAAC15S,CAAD,CAAT,KAAiB,WAAjB,IAAgC,CAACy4C,KAAK,CAACihQ,EAAE,CAAC15S,CAAD,CAAH,CAA1C,EAAmD;AAC/C,eAAK8wD,CAAL,IAAU4oP,EAAE,CAAC15S,CAAD,CAAZ;AACH;AACJ;;AACD;AACH;;AACD,UAAM;AAAE8wD,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa,IAAnB,CApCwB,CAqCxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAIo8P,GAAG,CAACM,SAAR,EAAmB;AACfN,MAAAA,GAAG,CAACQ,QAAJ,CAAa+thB,UAAb,EAAyBnw2B,CAAzB,EAA4BwlF,CAA5B;AACH;;AACD,QAAIo8P,GAAG,CAACG,WAAR,EAAqB;AACjBH,MAAAA,GAAG,CAACq7B,UAAJ,CAAekzf,UAAf,EAA2Bnw2B,CAA3B,EAA8BwlF,CAA9B;AACH,KAnDuB,CAoD5B;;AACC;;AACDkrxB,EAAAA,cAAc,GAAG;AACb,QAAI,KAAK1B,cAAL,IAAuB,KAAKD,SAAL,CAAe1+5B,MAA1C,EAAkD;AAC9C;AACH,KAHY,CAIb;AACA;AACA;;;AACA,UAAMsg6B,YAAY,GAAG,KAAK5B,SAAL,CAAe,KAAKC,cAApB,CAArB;AACA,UAAM4B,UAAU,GAAGD,YAAY,CAACngW,QAAb,CAAsB,aAAtB,EAAqC4wV,SAArC,CAA+C,OAA/C,CAAnB;AACA,UAAMmP,KAAK,GAAG,KAAd,CAAoB;AAApB;AAEA,QAAI172B,KAAK,GAAG,CAAZ;;AACA,QAAI+72B,UAAU,KAAK,OAAf,IAA0B,CAACL,KAA3B,IAAoCK,UAAU,KAAK,KAAf,IAAwBL,KAAhE,EAAuE;AACnE172B,MAAAA,KAAK,GAAG872B,YAAY,CAAC3w2B,CAAb,GAAiB,KAAKqgY,IAA9B;AACH,KAFD,MAEO,IAAIuwe,UAAU,KAAK,KAAf,IAAwB,CAACL,KAAzB,IAAkCK,UAAU,KAAK,OAAf,IAA0BL,KAAhE,EAAuE;AAC1E172B,MAAAA,KAAK,GAAG872B,YAAY,CAAC3w2B,CAAb,GAAiB,KAAKs7P,IAA9B;AACH,KAFM,MAEA;AACHzmQ,MAAAA,KAAK,GAAG872B,YAAY,CAAC3w2B,CAAb,GAAiB,CAAC,KAAKqgY,IAAL,GAAY,KAAK/kI,IAAlB,IAA0B,CAAnD;AACH;;AACD,SAAI,IAAIpsT,CAAC,GAAG,KAAK8/5B,cAAjB,EAAiC9/5B,CAAC,GAAG,KAAK6/5B,SAAL,CAAe1+5B,MAApD,EAA4DnB,CAAC,EAA7D,EAAgE;AAC5D,WAAK6/5B,SAAL,CAAe7/5B,CAAf,EAAkB8wD,CAAlB,IAAuBnL,KAAvB;AACH,KArBY,CAsBb;;;AACA,SAAKwrY,IAAL,GAAY34Y,MAAM,CAACun3B,iBAAnB;AACA,SAAK3zmB,IAAL,GAAY5zQ,MAAM,CAACqga,iBAAnB;AACA,SAAKind,cAAL,GAAsB,KAAKD,SAAL,CAAe1+5B,MAArC;AACH;;AACD++5B,EAAAA,+BAA+B,CAACxthB,GAAD,EAAM;AACjC,SAAKz7S,QAAL,CAAcnxC,OAAd,CAAsB,CAACj0B,CAAD,EAAI7xB,CAAJ,KAAQ;AAC1B,WAAK2h6B,mCAAL,CAAyCjvhB,GAAzC,EAA8C,IAA9C,EAAoD,IAApD,EAA0D1yY,CAA1D;AACH,KAFD;AAGA,SAAKwh6B,cAAL;AACH;;AACDG,EAAAA,mCAAmC,CAACjvhB,GAAD,EAAMkvhB,UAAN,EAAkBv40B,MAAlB,EAA0Bw+T,EAA1B,EAA8B;AAC7D,UAAMtwT,KAAK,GAAGlO,MAAM,CAAC4N,QAAP,CAAgB4wT,EAAhB,CAAd;;AACA,QAAItwT,KAAK,CAACN,QAAN,CAAe91F,MAAf,GAAwB,CAA5B,EAA+B;AAC3Bo2F,MAAAA,KAAK,CAACN,QAAN,CAAenxC,OAAf,CAAuB,CAACj0B,CAAD,EAAI7xB,CAAJ,KAAQ;AAC3B4h6B,QAAAA,UAAU,CAACD,mCAAX,CAA+CjvhB,GAA/C,EAAoDkvhB,UAApD,EAAgErq0B,KAAhE,EAAuEv3F,CAAvE;AACH,OAFD;AAGH,KAJD,MAIO;AACH;AACA,WAAK6h6B,sBAAL,CAA4BnvhB,GAA5B,EAAiCkvhB,UAAjC,EAA6Cv40B,MAA7C,EAAqDw+T,EAArD;AACH;AACJ;;AACDg6gB,EAAAA,sBAAsB,CAACnvhB,GAAD,EAAMkvhB,UAAN,EAAkBv40B,MAAlB,EAA0BrpF,CAA1B,EAA6B;AAC/C,UAAMu3F,KAAK,GAAGlO,MAAM,CAAC4N,QAAP,CAAgBj3F,CAAhB,CAAd;;AACA,QAAI,OAAOu3F,KAAK,CAACsyT,WAAb,KAA6B,UAAjC,EAA6C;AACzC,aAAOtyT,KAAP;AACH;;AACDm7S,IAAAA,GAAG,CAAChyP,IAAJ;AACAnpD,IAAAA,KAAK,CAAC8i0B,UAAN,CAAiB3nhB,GAAjB,EAAsB,IAAtB;AACA,UAAMovhB,KAAK,GAAGvq0B,KAAK,CAACi1C,YAAN,CAAmB,GAAnB,CAAd;AACA,UAAMu1xB,KAAK,GAAGxq0B,KAAK,CAACi1C,YAAN,CAAmB,GAAnB,CAAd;AACA,UAAMw1xB,MAAM,GAAGzq0B,KAAK,CAACi1C,YAAN,CAAmB,IAAnB,CAAf;AACA,UAAMy1xB,MAAM,GAAG1q0B,KAAK,CAACi1C,YAAN,CAAmB,IAAnB,CAAf;AACA,UAAM00xB,UAAU,GAAG3p0B,KAAK,CAAC+pe,QAAN,CAAe,aAAf,EAA8B3ve,aAA9B,EAAnB;AACA,UAAM0v0B,KAAK,GAAGtt3B,OAAO,CAACmt3B,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,UAAU,CAACG,KAApE,CAArB;;AACA,QAAIrh6B,CAAC,KAAK,CAAV,EAAa;AACT;AACA;AACA,UAAI,CAAC8h6B,KAAK,CAACvqvB,QAAN,EAAL,EAAuB;AACnBuqvB,QAAAA,KAAK,CAAC3xwB,QAAN,CAAe54D,KAAK,CAAC2q0B,qBAAN,CAA4B,GAA5B,CAAf;AACH;;AACD,UAAI,CAACH,KAAK,CAACxqvB,QAAN,EAAL,EAAuB;AACnBwqvB,QAAAA,KAAK,CAAC5xwB,QAAN,CAAe54D,KAAK,CAAC2q0B,qBAAN,CAA4B,GAA5B,CAAf;AACH;;AACD,UAAI,CAACF,MAAM,CAACzqvB,QAAP,EAAL,EAAwB;AACpByqvB,QAAAA,MAAM,CAAC7xwB,QAAP,CAAgB54D,KAAK,CAAC2q0B,qBAAN,CAA4B,IAA5B,CAAhB;AACH;;AACD,UAAI,CAACD,MAAM,CAAC1qvB,QAAP,EAAL,EAAwB;AACpB0qvB,QAAAA,MAAM,CAAC9xwB,QAAP,CAAgB54D,KAAK,CAAC2q0B,qBAAN,CAA4B,IAA5B,CAAhB;AACH;AACJ;;AACD,UAAMr20B,KAAK,GAAG0L,KAAK,CAACsyT,WAAN,CAAkBnX,GAAlB,CAAd;;AACA,QAAI2uhB,KAAJ,EAAW;AACPO,MAAAA,UAAU,CAAC9w2B,CAAX,IAAgB+6B,KAAhB;AACH;;AACD,QAAIi20B,KAAK,CAACvqvB,QAAN,EAAJ,EAAsB;AAClB;AACAqqvB,MAAAA,UAAU,CAACJ,cAAX;AACAjq0B,MAAAA,KAAK,CAACzmC,CAAN,GAAUgx2B,KAAK,CAAC/O,SAAN,CAAgB,GAAhB,CAAV;;AACA,UAAIiP,MAAM,CAACzqvB,QAAP,EAAJ,EAAuB;AACnBhgF,QAAAA,KAAK,CAACzmC,CAAN,IAAWkx2B,MAAM,CAACjP,SAAP,CAAiB,GAAjB,CAAX;AACH;AACJ,KAPD,MAOO;AACH,UAAIiP,MAAM,CAACzqvB,QAAP,EAAJ,EAAuB;AACnBqqvB,QAAAA,UAAU,CAAC9w2B,CAAX,IAAgBkx2B,MAAM,CAACjP,SAAP,CAAiB,GAAjB,CAAhB;AACH;;AACDx7zB,MAAAA,KAAK,CAACzmC,CAAN,GAAU8w2B,UAAU,CAAC9w2B,CAArB;AACH;;AACD8w2B,IAAAA,UAAU,CAAC9w2B,CAAX,GAAeymC,KAAK,CAACzmC,CAArB;;AACA,QAAI,CAACuw2B,KAAL,EAAY;AACRO,MAAAA,UAAU,CAAC9w2B,CAAX,IAAgB+6B,KAAhB;AACH;;AACD,QAAIk20B,KAAK,CAACxqvB,QAAN,EAAJ,EAAsB;AAClBhgF,MAAAA,KAAK,CAAC++C,CAAN,GAAUyrxB,KAAK,CAAChP,SAAN,CAAgB,GAAhB,CAAV;;AACA,UAAIkP,MAAM,CAAC1qvB,QAAP,EAAJ,EAAuB;AACnBhgF,QAAAA,KAAK,CAAC++C,CAAN,IAAW2rxB,MAAM,CAAClP,SAAP,CAAiB,GAAjB,CAAX;AACH;AACJ,KALD,MAKO;AACH,UAAIkP,MAAM,CAAC1qvB,QAAP,EAAJ,EAAuB;AACnBqqvB,QAAAA,UAAU,CAACtrxB,CAAX,IAAgB2rxB,MAAM,CAAClP,SAAP,CAAiB,GAAjB,CAAhB;AACH;;AACDx7zB,MAAAA,KAAK,CAAC++C,CAAN,GAAUsrxB,UAAU,CAACtrxB,CAArB;AACH;;AACDsrxB,IAAAA,UAAU,CAACtrxB,CAAX,GAAe/+C,KAAK,CAAC++C,CAArB,CA7D+C,CA8D/C;;AACAsrxB,IAAAA,UAAU,CAAC/B,SAAX,CAAqBzx3B,IAArB,CAA0BmpD,KAA1B;AACAqq0B,IAAAA,UAAU,CAACzwe,IAAX,GAAkBl5Y,IAAI,CAACoS,GAAL,CAASu32B,UAAU,CAACzwe,IAApB,EAA0B55V,KAAK,CAACzmC,CAAhC,EAAmCymC,KAAK,CAACzmC,CAAN,GAAU+6B,KAA7C,CAAlB;AACA+10B,IAAAA,UAAU,CAACx1mB,IAAX,GAAkBn0Q,IAAI,CAACC,GAAL,CAAS0p3B,UAAU,CAACx1mB,IAApB,EAA0B70N,KAAK,CAACzmC,CAAhC,EAAmCymC,KAAK,CAACzmC,CAAN,GAAU+6B,KAA7C,CAAlB;AACA0L,IAAAA,KAAK,CAACgj0B,YAAN,CAAmB7nhB,GAAnB;AACAA,IAAAA,GAAG,CAACt6X,OAAJ;AACA,WAAOm/E,KAAP;AACH;;AACD6o0B,EAAAA,mBAAmB,CAAC1thB,GAAD,EAAMkvhB,UAAN,EAAkBv40B,MAAlB,EAA0B0xd,EAA1B,EAA8B;AAC7C,UAAMxjd,KAAK,GAAGlO,MAAM,CAAC4N,QAAP,CAAgB8jd,EAAhB,CAAd,CAD6C,CAE7C;;AACA,QAAI,OAAOxjd,KAAK,CAACyo0B,cAAb,KAAgC,UAApC,EAAgD;AAC5C,aAAO,IAAP;AACH;;AACD,UAAM5yW,WAAW,GAAG71d,KAAK,CAACyo0B,cAAN,CAAqBtthB,GAArB,CAApB;;AACA,QAAI06K,WAAJ,EAAiB;AACb71d,MAAAA,KAAK,CAACN,QAAN,CAAenxC,OAAf,CAAuB,CAACj0B,CAAD,EAAI7xB,CAAJ,KAAQ;AAC3B,cAAMmg6B,gBAAgB,GAAGyB,UAAU,CAACxB,mBAAX,CAA+B1thB,GAA/B,EAAoCkvhB,UAApC,EAAgDrq0B,KAAhD,EAAuDv3F,CAAvD,CAAzB;AACAotjB,QAAAA,WAAW,CAACwvW,cAAZ,CAA2BuD,gBAA3B;AACH,OAHD;AAIH;;AACD,WAAO/yW,WAAP;AACH;;AACD4zW,EAAAA,WAAW,CAACtuhB,GAAD,EAAMkvhB,UAAN,EAAkBv40B,MAAlB,EAA0BiupB,EAA1B,EAA8B;AACrC,UAAM//oB,KAAK,GAAGlO,MAAM,CAAC4N,QAAP,CAAgBqgpB,EAAhB,CAAd;AACA//oB,IAAAA,KAAK,CAACk7S,MAAN,CAAaC,GAAb;AACAn7S,IAAAA,KAAK,CAACN,QAAN,CAAenxC,OAAf,CAAuB,CAACj0B,CAAD,EAAI7xB,CAAJ,KAAQ;AAC3B4h6B,MAAAA,UAAU,CAACZ,WAAX,CAAuBtuhB,GAAvB,EAA4BkvhB,UAA5B,EAAwCrq0B,KAAxC,EAA+Cv3F,CAA/C;AACH,KAFD;AAGH;;AACD6pZ,EAAAA,WAAW,CAACnX,GAAD,EAAM;AACb,UAAM;AAAEyvhB,MAAAA;AAAF,QAAoB,IAA1B;;AACA,QAAI,CAACA,YAAL,EAAmB;AACf,aAAOA,YAAP;AACH;;AACD,UAAMlB,UAAU,GAAG,KAAKvF,OAAL,EAAnB;AACA,UAAM0G,OAAO,GAAG,KAAKC,iBAAL,CAAuB3vhB,GAAvB,EAA4BuuhB,UAA5B,CAAhB;AACA,SAAKkB,YAAL,GAAoBC,OAApB;AACA,WAAOA,OAAP;AACH;;AACDC,EAAAA,iBAAiB,CAAC3vhB,GAAD,EAAM4vhB,UAAN,EAAkB;AAC/B,QAAI,CAACA,UAAU,CAACnh6B,MAAhB,EAAwB;AACpB,aAAO,CAAP;AACH;;AACD,UAAM;AAAEkoF,MAAAA;AAAF,QAAc,IAApB;AACA,UAAM630B,UAAU,GAAG730B,MAAM,CAACi4e,QAAP,CAAgB,aAAhB,EAA+B3ve,aAA/B,EAAnB;;AACA,QAAIuv0B,UAAJ,EAAgB;AACZ,YAAM51hB,QAAQ,GAAG,KAAK4lL,WAAL,EAAjB;AACA,YAAM/yf,IAAI,GAAG+i2B,UAAU,CAACG,KAAX,GAAmBiB,UAAU,CAACz35B,KAAX,CAAiB,EAAjB,EAAqBqrF,OAArB,GAA+B7kF,IAA/B,CAAoC,EAApC,CAAnB,GAA6Dix5B,UAA1E;AACA,YAAM5onB,EAAE,GAAGs2mB,SAAS,CAAC3m0B,MAAM,CAACmjD,YAAP,CAAoB,IAApB,EAA0B0lxB,SAA1B,EAAD,CAApB;AACA,YAAM/nzB,GAAG,GAAGhsC,IAAI,CAACh9D,MAAjB;AACA,UAAIih6B,OAAO,GAAG,CAAd;;AACA,WAAI,IAAIpi6B,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGmqG,GAAnB,EAAwBnqG,CAAC,EAAzB,EAA4B;AACxB,cAAMug6B,KAAK,GAAG,KAAKD,QAAL,CAAcY,UAAd,EAA0B/i2B,IAA1B,EAAgCn+D,CAAhC,CAAd;AACAoi6B,QAAAA,OAAO,IAAI,CAAC7B,KAAK,CAACgB,SAAN,IAAmBL,UAAU,CAACK,SAA/B,IAA4Cj2hB,QAA5C,GAAuD41hB,UAAU,CAACC,QAAX,CAAoBnoU,UAAtF;;AACA,YAAI,OAAOt/S,EAAE,CAAC15S,CAAD,CAAT,KAAiB,WAAjB,IAAgC,CAACy4C,KAAK,CAACihQ,EAAE,CAAC15S,CAAD,CAAH,CAA1C,EAAmD;AAC/Coi6B,UAAAA,OAAO,IAAI1onB,EAAE,CAAC15S,CAAD,CAAb;AACH;AACJ;;AACD,aAAOoi6B,OAAP;AACH,KApB8B,CAqB/B;;;AACA,QAAI,CAAC1vhB,GAAG,CAACmX,WAAT,EAAsB;AAClB,aAAOy4gB,UAAU,CAACnh6B,MAAX,GAAoB,EAA3B;AACH;;AACDuxY,IAAAA,GAAG,CAAChyP,IAAJ;AACA,SAAK25wB,UAAL,CAAgB3nhB,GAAhB,EAAqB,IAArB;AACA,UAAM;AAAE7mT,MAAAA,KAAK,EAAEu20B;AAAT,QAAsB1vhB,GAAG,CAACmX,WAAJ,CAAgBy4gB,UAAhB,CAA5B;AACA,SAAK/H,YAAL,CAAkB7nhB,GAAlB;AACAA,IAAAA,GAAG,CAACt6X,OAAJ;AACA,WAAOgq5B,OAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AAAMF,EAAAA,qBAAqB,CAACpw4B,IAAD,EAAO;AAC1B;AACA,QAAIwqU,OAAO,GAAG,IAAd;;AACA,WAAMA,OAAO,YAAYqjkB,WAAnB,IAAkCrjkB,OAAO,CAACg/jB,YAAR,EAAlC,IAA4Dh/jB,OAAO,CAACjzQ,MAA1E,EAAiF;AAC7E,YAAMk50B,UAAU,GAAGjmkB,OAAO,CAACjzQ,MAAR,CAAemjD,YAAf,CAA4B16G,IAA5B,CAAnB;;AACA,UAAIyw4B,UAAU,CAAChrvB,QAAX,CAAoB,IAApB,CAAJ,EAA+B;AAC3B,eAAOgrvB,UAAU,CAACrQ,SAAX,CAAqB,GAArB,CAAP;AACH;;AACD51jB,MAAAA,OAAO,GAAGA,OAAO,CAACjzQ,MAAlB;AACH;;AACD,WAAO,IAAP;AACH;;AACDj9C,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsBwklB,GAAG,CAAChoiB,MAAJ,KAAewq2B,WAAf,GAA6B,IAA7B,GAAoCpE,gBAA1D;AACA,SAAK5p3B,IAAL,GAAY,MAAZ;AACA,SAAKmf,CAAL,GAAS,CAAT;AACA,SAAKwlF,CAAL,GAAS,CAAT;AACA,SAAKupxB,SAAL,GAAiB,EAAjB;AACA,SAAKC,cAAL,GAAsB,CAAtB;AACA,SAAK3ue,IAAL,GAAY34Y,MAAM,CAACun3B,iBAAnB;AACA,SAAK3zmB,IAAL,GAAY5zQ,MAAM,CAACqga,iBAAnB;AACA,SAAKspd,YAAL,GAAoB,CAAC,CAArB;AACH;;AAjXqC;;AAoX1C,MAAMK,YAAN,SAA2B7C,WAA3B,CAAuC;AACnCjE,EAAAA,OAAO,GAAG;AACN,WAAO,KAAKv91B,IAAZ;AACH;;AACD/xB,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsBwklB,GAAG,CAAChoiB,MAAJ,KAAeqt2B,YAAf,GAA8B,IAA9B,GAAqCjH,gBAA3D;AACA,SAAK5p3B,IAAL,GAAY,OAAZ,CAFyC,CAGzC;;AACA,SAAKwsB,IAAL,GAAY,KAAK84B,QAAL,CAAc91F,MAAd,GAAuB,CAAvB,GAA2B,EAA3B,GAAgC,KAAK2/5B,eAAL,EAA5C;AACH;;AATkC;;AAYvC,MAAM2B,QAAN,SAAuBD,YAAvB,CAAoC;AAChCp23B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,UAAZ;AACH;;AAJ+B;;AAOpC,MAAM+w3B,UAAN,SAAyBvT,qDAAzB,CAAqC;AACjC9j3B,EAAAA,KAAK,GAAG;AACJ,SAAKrrC,CAAL,GAAS,CAAC,CAAV;AACA,SAAK2mD,OAAL,GAAe,IAAf;AACA,SAAKg82B,eAAL,GAAuB,IAAvB;AACA,SAAKpi2B,KAAL,GAAa,IAAIymgB,KAAJ,CAAU,CAAV,EAAa,CAAb,CAAb;AACA,SAAK05C,OAAL,GAAe,IAAI15C,KAAJ,CAAU,CAAV,EAAa,CAAb,CAAf;AACA,SAAK1qO,OAAL,GAAe,IAAI0qO,KAAJ,CAAU,CAAV,EAAa,CAAb,CAAf;AACA,SAAK93M,MAAL,GAAc,EAAd;AACA,SAAK+2G,MAAL,GAAc,EAAd;AACH;;AACDksW,EAAAA,KAAK,GAAG;AACJ,UAAM;AAAEny0B,MAAAA,CAAF;AAAMymD,MAAAA;AAAN,QAAoB,IAA1B;AACA,WAAOzmD,CAAC,IAAIymD,QAAQ,CAACtlD,MAAT,GAAkB,CAA9B;AACH;;AACD6uC,EAAAA,IAAI,GAAG;AACH,UAAM2W,OAAO,GAAG,KAAKF,QAAL,CAAc,EAAE,KAAKzmD,CAArB,CAAhB;AACA,SAAK2i6B,eAAL,GAAuB,KAAKh82B,OAA5B;AACA,SAAKA,OAAL,GAAeA,OAAf;AACA,WAAOA,OAAP;AACH;;AACDi82B,EAAAA,QAAQ,GAAG;AACP,QAAIC,KAAK,GAAGz31B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,GAA7E;AAAA,QAAkF031B,KAAK,GAAG131B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,GAA3J;AACA,UAAMo/B,KAAK,GAAG,IAAIw8d,KAAJ,CAAU,KAAKrghB,OAAL,CAAak82B,KAAb,CAAV,EAA+B,KAAKl82B,OAAL,CAAam82B,KAAb,CAA/B,CAAd;AACA,WAAO,KAAKC,YAAL,CAAkBv4zB,KAAlB,CAAP;AACH;;AACDw4zB,EAAAA,iBAAiB,CAACH,KAAD,EAAQC,KAAR,EAAe;AAC5B,UAAMt4zB,KAAK,GAAG,KAAKo4zB,QAAL,CAAcC,KAAd,EAAqBC,KAArB,CAAd;AACA,SAAKpiT,OAAL,GAAel2gB,KAAf;AACA,WAAOA,KAAP;AACH;;AACDy4zB,EAAAA,iBAAiB,CAACJ,KAAD,EAAQC,KAAR,EAAe;AAC5B,UAAMt4zB,KAAK,GAAG,KAAKo4zB,QAAL,CAAcC,KAAd,EAAqBC,KAArB,CAAd;AACA,SAAKxmkB,OAAL,GAAe9xP,KAAf;AACA,WAAOA,KAAP;AACH;;AACD04zB,EAAAA,wBAAwB,GAAG;AACvB,UAAMP,eAAe,GAAG,KAAKA,eAAL,CAAqBhx3B,IAA7C;;AACA,QAAIgx3B,eAAe,KAAKxT,8DAApB,IAA4CwT,eAAe,KAAKxT,qEAAhE,IAA+FwT,eAAe,KAAKxT,6DAAnH,IAA0IwT,eAAe,KAAKxT,oEAAlK,EAA8L;AAC1L,aAAO,KAAK7yjB,OAAZ;AACH,KAJsB,CAKvB;;;AACA,UAAM;AAAEA,MAAAA,OAAO,EAAE;AAAExrS,QAAAA,CAAC,EAAE0lU,EAAL;AAAUlgP,QAAAA,CAAC,EAAEmgP;AAAb,OAAX;AAAgCiqP,MAAAA,OAAO,EAAE;AAAE5vjB,QAAAA,CAAC,EAAEqxV,EAAL;AAAU7rQ,QAAAA,CAAC,EAAE8rQ;AAAb;AAAzC,QAAiE,IAAvE;AACA,UAAM53S,KAAK,GAAG,IAAIw8d,KAAJ,CAAU,IAAIxwM,EAAJ,GAAS2rB,EAAnB,EAAuB,IAAI1rB,EAAJ,GAAS2rB,EAAhC,CAAd;AACA,WAAO53S,KAAP;AACH;;AACDu4zB,EAAAA,YAAY,CAACv4zB,KAAD,EAAQ;AAChB,QAAI,KAAK7jD,OAAL,CAAa482B,QAAjB,EAA2B;AACvB,YAAM;AAAEzy2B,QAAAA,CAAF;AAAMwlF,QAAAA;AAAN,UAAa,KAAKgmN,OAAxB;AACA9xP,MAAAA,KAAK,CAAC15C,CAAN,IAAWA,CAAX;AACA05C,MAAAA,KAAK,CAAC8rC,CAAN,IAAWA,CAAX;AACH;;AACD,WAAO9rC,KAAP;AACH;;AACDg5zB,EAAAA,SAAS,CAACh5zB,KAAD,EAAQj7C,IAAR,EAAck02B,OAAd,EAAuB;AAC5B,UAAM;AAAEv0iB,MAAAA,MAAF;AAAW+2G,MAAAA;AAAX,QAAuB,IAA7B,CAD4B,CAE5B;;AACA,QAAIw9b,OAAO,IAAIx9b,MAAM,CAAC9ke,MAAP,GAAgB,CAA3B,IAAgC,CAAC8ke,MAAM,CAACA,MAAM,CAAC9ke,MAAP,GAAgB,CAAjB,CAA3C,EAAgE;AAC5D8ke,MAAAA,MAAM,CAACA,MAAM,CAAC9ke,MAAP,GAAgB,CAAjB,CAAN,GAA4B+tX,MAAM,CAACA,MAAM,CAAC/tX,MAAP,GAAgB,CAAjB,CAAN,CAA0Bsz5B,OAA1B,CAAkCgP,OAAlC,CAA5B;AACH;;AACD,SAAKC,cAAL,CAAoBl5zB,KAApB,EAA2Bj7C,IAAI,GAAGA,IAAI,CAACkl2B,OAAL,CAAajqzB,KAAb,CAAH,GAAyB,IAAxD;AACH;;AACDk5zB,EAAAA,cAAc,CAACl5zB,KAAD,EAAQitV,KAAR,EAAe;AACzB,SAAKvoE,MAAL,CAAY9gV,IAAZ,CAAiBo8D,KAAjB;AACA,SAAKy7X,MAAL,CAAY73b,IAAZ,CAAiBqpZ,KAAjB;AACH;;AACDkse,EAAAA,eAAe,GAAG;AACd,WAAO,KAAKz0iB,MAAZ;AACH;;AACD00iB,EAAAA,eAAe,GAAG;AACd,UAAM;AAAE39b,MAAAA;AAAF,QAAc,IAApB;AACA,UAAM97X,GAAG,GAAG87X,MAAM,CAAC9ke,MAAnB;;AACA,SAAI,IAAInB,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGmqG,GAAnB,EAAwBnqG,CAAC,EAAzB,EAA4B;AACxB,UAAI,CAACime,MAAM,CAACjme,CAAD,CAAX,EAAgB;AACZ,aAAI,IAAI06F,CAAC,GAAG16F,CAAC,GAAG,CAAhB,EAAmB06F,CAAC,GAAGyP,GAAvB,EAA4BzP,CAAC,EAA7B,EAAgC;AAC5B,cAAIurY,MAAM,CAACvrY,CAAD,CAAV,EAAe;AACXurY,YAAAA,MAAM,CAACjme,CAAD,CAAN,GAAYime,MAAM,CAACvrY,CAAD,CAAlB;AACA;AACH;AACJ;AACJ;AACJ;;AACD,WAAOurY,MAAP;AACH;;AACD75b,EAAAA,WAAW,CAACvlC,IAAD,EAAM;AACb,UAAMA,IAAI;AAAA,KACTiU,OADK,CACG,eADH,EACoB,IADpB,EACyB;AADzB,KAELA,OAFK,CAEG,qCAFH,EAE0C,EAF1C,CAAN;AAGA,SAAK4lmB,OAAL,GAAe,IAAI15C,KAAJ,CAAU,CAAV,EAAa,CAAb,CAAf;AACA,SAAKzmgB,KAAL,GAAa,IAAIymgB,KAAJ,CAAU,CAAV,EAAa,CAAb,CAAb;AACA,SAAK1qO,OAAL,GAAe,IAAI0qO,KAAJ,CAAU,CAAV,EAAa,CAAb,CAAf;AACA,SAAKrghB,OAAL,GAAe,IAAf;AACA,SAAKF,QAAL,GAAgB,KAAKA,QAArB;AACA,SAAKzmD,CAAL,GAAS,CAAC,CAAV;AACA,SAAK2i6B,eAAL,GAAuB,IAAvB;AACA,SAAKzziB,MAAL,GAAc,EAAd;AACA,SAAK+2G,MAAL,GAAc,EAAd;AACH;;AAjGgC;;AAoGrC,MAAM49b,WAAN,SAA0B7F,eAA1B,CAA0C;AACtCn35B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAM;AAAEoxhB,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM12W,WAAW,GAAG,IAAIovW,WAAJ,EAApB;AACAsH,IAAAA,UAAU,CAACz43B,KAAX;;AACA,QAAIqnW,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC6R,SAAJ;AACH;;AACD,WAAM,CAACu/gB,UAAU,CAAC3xF,KAAX,EAAP,EAA0B;AACtB,cAAO2xF,UAAU,CAAC9z3B,IAAX,GAAkB2B,IAAzB;AACI,aAAK+w3B,UAAU,CAACqB,OAAhB;AACI,eAAKC,KAAL,CAAWtxhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACuB,OAAhB;AACI,eAAKC,KAAL,CAAWxxhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACyB,aAAhB;AACI,eAAKC,KAAL,CAAW1xhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAAC2B,YAAhB;AACI,eAAKC,KAAL,CAAW5xhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACS,QAAhB;AACI,eAAKoB,KAAL,CAAW7xhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACU,eAAhB;AACI,eAAKoB,KAAL,CAAW9xhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACW,OAAhB;AACI,eAAKoB,KAAL,CAAW/xhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACY,cAAhB;AACI,eAAKoB,KAAL,CAAWhyhB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACiC,GAAhB;AACI,eAAKn9iB,KAAL,CAAWkrB,GAAX,EAAgB06K,WAAhB;AACA;;AACJ,aAAKs1W,UAAU,CAACkC,UAAhB;AACI,eAAKC,KAAL,CAAWnyhB,GAAX,EAAgB06K,WAAhB;AACA;AA9BR;AAgCH;;AACD,WAAOA,WAAP;AACH;;AACD4yW,EAAAA,cAAc,CAACl7Q,IAAD,EAAO;AACjB,WAAO,KAAKj+oB,IAAL,EAAP;AACH;;AACDi+5B,EAAAA,UAAU,GAAG;AACT,UAAM;AAAEhB,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM50iB,MAAM,GAAG40iB,UAAU,CAACH,eAAX,EAAf;AACA,UAAM19b,MAAM,GAAG69b,UAAU,CAACF,eAAX,EAAf;AACA,UAAM95f,OAAO,GAAG56C,MAAM,CAAChrX,GAAP,CAAW,CAACsmG,KAAD,EAAQxqG,CAAR,KAAY,CAC/BwqG,KAD+B,EAE/By7X,MAAM,CAACjme,CAAD,CAFyB,CAAvB,CAAhB;AAKA,WAAO8pa,OAAP;AACH;;AACDwwf,EAAAA,cAAc,CAAC5nhB,GAAD,EAAM;AAChB,SAAK7rY,IAAL,CAAU6rY,GAAV;AACA,SAAK3uU,QAAL,CAAc6njB,MAAd,CAAqB+5H,KAArB,CAA2BuvK,SAA3B,CAAqC,IAArC,EAA2CxihB,GAA3C;AACA,UAAMqyhB,iBAAiB,GAAG,KAAKzjW,QAAL,CAAc,WAAd,CAA1B;;AACA,QAAI5uL,GAAG,CAACM,SAAJ,KAAkB,EAAtB,EAA0B;AACtB,UAAI+xhB,iBAAiB,CAAC7S,SAAlB,CAA4B,SAA5B,MAA2C,SAA/C,EAA0D;AACtDx/gB,QAAAA,GAAG,CAACne,IAAJ,CAASwwiB,iBAAiB,CAAC7S,SAAlB,EAAT;AACH,OAFD,MAEO;AACHx/gB,QAAAA,GAAG,CAACne,IAAJ;AACH;AACJ;;AACD,QAAIme,GAAG,CAACG,WAAJ,KAAoB,EAAxB,EAA4B;AACxB,UAAI,KAAKrmQ,YAAL,CAAkB,eAAlB,EAAmC0lxB,SAAnC,OAAmD,oBAAvD,EAA6E;AACzEx/gB,QAAAA,GAAG,CAAChyP,IAAJ;AACAgyP,QAAAA,GAAG,CAACvrJ,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,EAA6B,CAA7B,EAAgC,CAAhC;AACAurJ,QAAAA,GAAG,CAACgH,MAAJ;AACAhH,QAAAA,GAAG,CAACt6X,OAAJ;AACH,OALD,MAKO;AACHs6X,QAAAA,GAAG,CAACgH,MAAJ;AACH;AACJ;;AACD,UAAMowB,OAAO,GAAG,KAAKg7f,UAAL,EAAhB;;AACA,QAAIh7f,OAAJ,EAAa;AACT,YAAMk7f,gBAAgB,GAAGl7f,OAAO,CAAC3oa,MAAR,GAAiB,CAA1C;AACA,YAAM8j6B,oBAAoB,GAAG,KAAK3jW,QAAL,CAAc,cAAd,CAA7B;AACA,YAAM4jW,kBAAkB,GAAG,KAAK5jW,QAAL,CAAc,YAAd,CAA3B;AACA,YAAM6jW,kBAAkB,GAAG,KAAK7jW,QAAL,CAAc,YAAd,CAA3B;;AACA,UAAI2jW,oBAAoB,CAAC7S,eAArB,EAAJ,EAA4C;AACxC,cAAMp/4B,MAAM,GAAGiy5B,oBAAoB,CAACtz0B,aAArB,EAAf;AACA,cAAM,CAAC6Y,KAAD,EAAQitV,KAAR,IAAiB3tB,OAAO,CAAC,CAAD,CAA9B;AACA92Z,QAAAA,MAAM,CAACy/X,MAAP,CAAcC,GAAd,EAAmBloS,KAAnB,EAA0BitV,KAA1B;AACH;;AACD,UAAIyte,kBAAkB,CAAC9S,eAAnB,EAAJ,EAA0C;AACtC,cAAMp/4B,MAAM,GAAGky5B,kBAAkB,CAACvz0B,aAAnB,EAAf;;AACA,aAAI,IAAI3xF,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGgl6B,gBAAnB,EAAqChl6B,CAAC,EAAtC,EAAyC;AACrC,gBAAM,CAACwqG,KAAD,EAAQitV,KAAR,IAAiB3tB,OAAO,CAAC9pa,CAAD,CAA9B;AACAgT,UAAAA,MAAM,CAACy/X,MAAP,CAAcC,GAAd,EAAmBloS,KAAnB,EAA0BitV,KAA1B;AACH;AACJ;;AACD,UAAI0te,kBAAkB,CAAC/S,eAAnB,EAAJ,EAA0C;AACtC,cAAMp/4B,MAAM,GAAGmy5B,kBAAkB,CAACxz0B,aAAnB,EAAf;AACA,cAAM,CAAC6Y,KAAD,EAAQitV,KAAR,IAAiB3tB,OAAO,CAACk7f,gBAAD,CAA9B;AACAhy5B,QAAAA,MAAM,CAACy/X,MAAP,CAAcC,GAAd,EAAmBloS,KAAnB,EAA0BitV,KAA1B;AACH;AACJ;AACJ;;AACW,SAALuse,KAAK,CAACF,UAAD,EAAa;AACrB,UAAMt5zB,KAAK,GAAGs5zB,UAAU,CAACb,iBAAX,EAAd;AACAa,IAAAA,UAAU,CAACvj2B,KAAX,GAAmBuj2B,UAAU,CAACxnkB,OAA9B;AACA,WAAO;AACH9xP,MAAAA;AADG,KAAP;AAGH;;AACDw5zB,EAAAA,KAAK,CAACtxhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAEt5zB,MAAAA;AAAF,QAAaq5zB,WAAW,CAACG,KAAZ,CAAkBF,UAAlB,CAAnB;AACA,UAAM;AAAEhz2B,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa9rC,KAAnB;AACAs5zB,IAAAA,UAAU,CAACN,SAAX,CAAqBh5zB,KAArB;AACA4id,IAAAA,WAAW,CAACqvW,QAAZ,CAAqB3r2B,CAArB,EAAwBwlF,CAAxB;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC2M,MAAJ,CAAWvuV,CAAX,EAAcwlF,CAAd;AACH;AACJ;;AACW,SAAL4txB,KAAK,CAACJ,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA;AAAF,QAAewnkB,UAArB;AACA,UAAMt5zB,KAAK,GAAGs5zB,UAAU,CAACb,iBAAX,EAAd;AACA,WAAO;AACH3mkB,MAAAA,OADG;AAEH9xP,MAAAA;AAFG,KAAP;AAIH;;AACD05zB,EAAAA,KAAK,CAACxxhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAExnkB,MAAAA,OAAF;AAAY9xP,MAAAA;AAAZ,QAAuBq5zB,WAAW,CAACK,KAAZ,CAAkBJ,UAAlB,CAA7B;AACA,UAAM;AAAEhz2B,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa9rC,KAAnB;AACAs5zB,IAAAA,UAAU,CAACN,SAAX,CAAqBh5zB,KAArB,EAA4B8xP,OAA5B;AACA8wN,IAAAA,WAAW,CAACqvW,QAAZ,CAAqB3r2B,CAArB,EAAwBwlF,CAAxB;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAX,EAAcwlF,CAAd;AACH;AACJ;;AACW,SAAL8txB,KAAK,CAACN,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA,OAAF;AAAY31S,MAAAA;AAAZ,QAAyBm92B,UAA/B;AACA,UAAMt5zB,KAAK,GAAG,IAAIw8d,KAAJ,CAAU,CAACrghB,OAAO,CAAC482B,QAAR,GAAmBjnkB,OAAO,CAACxrS,CAA3B,GAA+B,CAAhC,IAAqCnK,OAAO,CAACmK,CAAvD,EAA0DwrS,OAAO,CAAChmN,CAAlE,CAAd;AACAwtxB,IAAAA,UAAU,CAACxnkB,OAAX,GAAqB9xP,KAArB;AACA,WAAO;AACH8xP,MAAAA,OADG;AAEH9xP,MAAAA;AAFG,KAAP;AAIH;;AACD45zB,EAAAA,KAAK,CAAC1xhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAExnkB,MAAAA,OAAF;AAAY9xP,MAAAA;AAAZ,QAAuBq5zB,WAAW,CAACO,KAAZ,CAAkBN,UAAlB,CAA7B;AACA,UAAM;AAAEhz2B,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa9rC,KAAnB;AACAs5zB,IAAAA,UAAU,CAACN,SAAX,CAAqBh5zB,KAArB,EAA4B8xP,OAA5B;AACA8wN,IAAAA,WAAW,CAACqvW,QAAZ,CAAqB3r2B,CAArB,EAAwBwlF,CAAxB;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAX,EAAcwlF,CAAd;AACH;AACJ;;AACW,SAALguxB,KAAK,CAACR,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA,OAAF;AAAY31S,MAAAA;AAAZ,QAAyBm92B,UAA/B;AACA,UAAMt5zB,KAAK,GAAG,IAAIw8d,KAAJ,CAAU1qO,OAAO,CAACxrS,CAAlB,EAAqB,CAACnK,OAAO,CAAC482B,QAAR,GAAmBjnkB,OAAO,CAAChmN,CAA3B,GAA+B,CAAhC,IAAqC3vF,OAAO,CAAC2vF,CAAlE,CAAd;AACAwtxB,IAAAA,UAAU,CAACxnkB,OAAX,GAAqB9xP,KAArB;AACA,WAAO;AACH8xP,MAAAA,OADG;AAEH9xP,MAAAA;AAFG,KAAP;AAIH;;AACD85zB,EAAAA,KAAK,CAAC5xhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAExnkB,MAAAA,OAAF;AAAY9xP,MAAAA;AAAZ,QAAuBq5zB,WAAW,CAACS,KAAZ,CAAkBR,UAAlB,CAA7B;AACA,UAAM;AAAEhz2B,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa9rC,KAAnB;AACAs5zB,IAAAA,UAAU,CAACN,SAAX,CAAqBh5zB,KAArB,EAA4B8xP,OAA5B;AACA8wN,IAAAA,WAAW,CAACqvW,QAAZ,CAAqB3r2B,CAArB,EAAwBwlF,CAAxB;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAX,EAAcwlF,CAAd;AACH;AACJ;;AACW,SAALiuxB,KAAK,CAACT,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA;AAAF,QAAewnkB,UAArB;AACA,UAAMt5zB,KAAK,GAAGs5zB,UAAU,CAAClB,QAAX,CAAoB,IAApB,EAA0B,IAA1B,CAAd;AACA,UAAMwC,YAAY,GAAGtB,UAAU,CAACd,iBAAX,CAA6B,IAA7B,EAAmC,IAAnC,CAArB;AACA,UAAMjvV,YAAY,GAAG+vV,UAAU,CAACb,iBAAX,EAArB;AACA,WAAO;AACH3mkB,MAAAA,OADG;AAEH9xP,MAAAA,KAFG;AAGH46zB,MAAAA,YAHG;AAIHrxV,MAAAA;AAJG,KAAP;AAMH;;AACDwwV,EAAAA,KAAK,CAAC7xhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAExnkB,MAAAA,OAAF;AAAY9xP,MAAAA,KAAZ;AAAoB46zB,MAAAA,YAApB;AAAmCrxV,MAAAA;AAAnC,QAAqD8vV,WAAW,CAACU,KAAZ,CAAkBT,UAAlB,CAA3D;AACAA,IAAAA,UAAU,CAACN,SAAX,CAAqBzvV,YAArB,EAAmCqxV,YAAnC,EAAiD56zB,KAAjD;AACA4id,IAAAA,WAAW,CAAC8vW,cAAZ,CAA2B5gkB,OAAO,CAACxrS,CAAnC,EAAsCwrS,OAAO,CAAChmN,CAA9C,EAAiD9rC,KAAK,CAAC15C,CAAvD,EAA0D05C,KAAK,CAAC8rC,CAAhE,EAAmE8uxB,YAAY,CAACt02B,CAAhF,EAAmFs02B,YAAY,CAAC9uxB,CAAhG,EAAmGy9b,YAAY,CAACjjhB,CAAhH,EAAmHijhB,YAAY,CAACz9b,CAAhI;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAACiZ,aAAJ,CAAkBnhT,KAAK,CAAC15C,CAAxB,EAA2B05C,KAAK,CAAC8rC,CAAjC,EAAoC8uxB,YAAY,CAACt02B,CAAjD,EAAoDs02B,YAAY,CAAC9uxB,CAAjE,EAAoEy9b,YAAY,CAACjjhB,CAAjF,EAAoFijhB,YAAY,CAACz9b,CAAjG;AACH;AACJ;;AACW,SAALkuxB,KAAK,CAACV,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA;AAAF,QAAewnkB,UAArB;AACA,UAAMt5zB,KAAK,GAAGs5zB,UAAU,CAACZ,wBAAX,EAAd;AACA,UAAMkC,YAAY,GAAGtB,UAAU,CAACd,iBAAX,CAA6B,IAA7B,EAAmC,IAAnC,CAArB;AACA,UAAMjvV,YAAY,GAAG+vV,UAAU,CAACb,iBAAX,EAArB;AACA,WAAO;AACH3mkB,MAAAA,OADG;AAEH9xP,MAAAA,KAFG;AAGH46zB,MAAAA,YAHG;AAIHrxV,MAAAA;AAJG,KAAP;AAMH;;AACDywV,EAAAA,KAAK,CAAC9xhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAExnkB,MAAAA,OAAF;AAAY9xP,MAAAA,KAAZ;AAAoB46zB,MAAAA,YAApB;AAAmCrxV,MAAAA;AAAnC,QAAqD8vV,WAAW,CAACW,KAAZ,CAAkBV,UAAlB,CAA3D;AACAA,IAAAA,UAAU,CAACN,SAAX,CAAqBzvV,YAArB,EAAmCqxV,YAAnC,EAAiD56zB,KAAjD;AACA4id,IAAAA,WAAW,CAAC8vW,cAAZ,CAA2B5gkB,OAAO,CAACxrS,CAAnC,EAAsCwrS,OAAO,CAAChmN,CAA9C,EAAiD9rC,KAAK,CAAC15C,CAAvD,EAA0D05C,KAAK,CAAC8rC,CAAhE,EAAmE8uxB,YAAY,CAACt02B,CAAhF,EAAmFs02B,YAAY,CAAC9uxB,CAAhG,EAAmGy9b,YAAY,CAACjjhB,CAAhH,EAAmHijhB,YAAY,CAACz9b,CAAhI;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAACiZ,aAAJ,CAAkBnhT,KAAK,CAAC15C,CAAxB,EAA2B05C,KAAK,CAAC8rC,CAAjC,EAAoC8uxB,YAAY,CAACt02B,CAAjD,EAAoDs02B,YAAY,CAAC9uxB,CAAjE,EAAoEy9b,YAAY,CAACjjhB,CAAjF,EAAoFijhB,YAAY,CAACz9b,CAAjG;AACH;AACJ;;AACW,SAALmuxB,KAAK,CAACX,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA;AAAF,QAAewnkB,UAArB;AACA,UAAMsB,YAAY,GAAGtB,UAAU,CAACd,iBAAX,CAA6B,IAA7B,EAAmC,IAAnC,CAArB;AACA,UAAMjvV,YAAY,GAAG+vV,UAAU,CAACb,iBAAX,EAArB;AACA,WAAO;AACH3mkB,MAAAA,OADG;AAEH8okB,MAAAA,YAFG;AAGHrxV,MAAAA;AAHG,KAAP;AAKH;;AACD0wV,EAAAA,KAAK,CAAC/xhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAExnkB,MAAAA,OAAF;AAAY8okB,MAAAA,YAAZ;AAA2BrxV,MAAAA;AAA3B,QAA6C8vV,WAAW,CAACY,KAAZ,CAAkBX,UAAlB,CAAnD;AACAA,IAAAA,UAAU,CAACN,SAAX,CAAqBzvV,YAArB,EAAmCqxV,YAAnC,EAAiDA,YAAjD;AACAh4W,IAAAA,WAAW,CAACuwW,iBAAZ,CAA8BrhkB,OAAO,CAACxrS,CAAtC,EAAyCwrS,OAAO,CAAChmN,CAAjD,EAAoD8uxB,YAAY,CAACt02B,CAAjE,EAAoEs02B,YAAY,CAAC9uxB,CAAjF,EAAoFy9b,YAAY,CAACjjhB,CAAjG,EAAoGijhB,YAAY,CAACz9b,CAAjH;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAACkP,gBAAJ,CAAqBwjhB,YAAY,CAACt02B,CAAlC,EAAqCs02B,YAAY,CAAC9uxB,CAAlD,EAAqDy9b,YAAY,CAACjjhB,CAAlE,EAAqEijhB,YAAY,CAACz9b,CAAlF;AACH;AACJ;;AACW,SAALouxB,KAAK,CAACZ,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA;AAAF,QAAewnkB,UAArB;AACA,UAAMsB,YAAY,GAAGtB,UAAU,CAACZ,wBAAX,EAArB;AACAY,IAAAA,UAAU,CAACpjT,OAAX,GAAqB0kT,YAArB;AACA,UAAMrxV,YAAY,GAAG+vV,UAAU,CAACb,iBAAX,EAArB;AACA,WAAO;AACH3mkB,MAAAA,OADG;AAEH8okB,MAAAA,YAFG;AAGHrxV,MAAAA;AAHG,KAAP;AAKH;;AACD2wV,EAAAA,KAAK,CAAChyhB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAExnkB,MAAAA,OAAF;AAAY8okB,MAAAA,YAAZ;AAA2BrxV,MAAAA;AAA3B,QAA6C8vV,WAAW,CAACa,KAAZ,CAAkBZ,UAAlB,CAAnD;AACAA,IAAAA,UAAU,CAACN,SAAX,CAAqBzvV,YAArB,EAAmCqxV,YAAnC,EAAiDA,YAAjD;AACAh4W,IAAAA,WAAW,CAACuwW,iBAAZ,CAA8BrhkB,OAAO,CAACxrS,CAAtC,EAAyCwrS,OAAO,CAAChmN,CAAjD,EAAoD8uxB,YAAY,CAACt02B,CAAjE,EAAoEs02B,YAAY,CAAC9uxB,CAAjF,EAAoFy9b,YAAY,CAACjjhB,CAAjG,EAAoGijhB,YAAY,CAACz9b,CAAjH;;AACA,QAAIo8P,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAACkP,gBAAJ,CAAqBwjhB,YAAY,CAACt02B,CAAlC,EAAqCs02B,YAAY,CAAC9uxB,CAAlD,EAAqDy9b,YAAY,CAACjjhB,CAAlE,EAAqEijhB,YAAY,CAACz9b,CAAlF;AACH;AACJ;;AACW,SAALkxO,KAAK,CAACs8iB,UAAD,EAAa;AACrB,UAAM;AAAExnkB,MAAAA,OAAF;AAAY31S,MAAAA;AAAZ,QAAyBm92B,UAA/B;AACA,QAAI;AAAEuB,MAAAA,EAAF;AAAOC,MAAAA,EAAP;AAAYC,MAAAA,IAAZ;AAAmBC,MAAAA,QAAnB;AAA8BC,MAAAA;AAA9B,QAA6C9+2B,OAAjD;AACA,UAAM++2B,aAAa,GAAGH,IAAI,IAAItt3B,IAAI,CAAC2hQ,EAAL,GAAU,GAAd,CAA1B;AACA,UAAMm6R,YAAY,GAAG+vV,UAAU,CAACb,iBAAX,EAArB,CAJqB,CAKrB;AACA;AACA;;AACA,UAAM0C,KAAK,GAAG,IAAI3+V,KAAJ,CAAU/uhB,IAAI,CAAC8gQ,GAAL,CAAS2snB,aAAT,KAA2BppkB,OAAO,CAACxrS,CAAR,GAAYijhB,YAAY,CAACjjhB,CAApD,IAAyD,CAAzD,GAA6D7Y,IAAI,CAAC+gQ,GAAL,CAAS0snB,aAAT,KAA2BppkB,OAAO,CAAChmN,CAAR,GAAYy9b,YAAY,CAACz9b,CAApD,IAAyD,CAAhI,EAAmI,CAACr+F,IAAI,CAAC+gQ,GAAL,CAAS0snB,aAAT,CAAD,IAA4BppkB,OAAO,CAACxrS,CAAR,GAAYijhB,YAAY,CAACjjhB,CAArD,IAA0D,CAA1D,GAA8D7Y,IAAI,CAAC8gQ,GAAL,CAAS2snB,aAAT,KAA2BppkB,OAAO,CAAChmN,CAAR,GAAYy9b,YAAY,CAACz9b,CAApD,IAAyD,CAA1P,CAAd,CARqB,CASrB;;AACA,UAAMshL,CAAC,GAAG3/Q,IAAI,CAACygB,GAAL,CAASit2B,KAAK,CAAC702B,CAAf,EAAkB,CAAlB,IAAuB7Y,IAAI,CAACygB,GAAL,CAAS2s2B,EAAT,EAAa,CAAb,CAAvB,GAAyCpt3B,IAAI,CAACygB,GAAL,CAASit2B,KAAK,CAACrvxB,CAAf,EAAkB,CAAlB,IAAuBr+F,IAAI,CAACygB,GAAL,CAAS4s2B,EAAT,EAAa,CAAb,CAA1E;;AACA,QAAI1tmB,CAAC,GAAG,CAAR,EAAW;AACPytmB,MAAAA,EAAE,IAAIpt3B,IAAI,CAACmhQ,IAAL,CAAUwe,CAAV,CAAN;AACA0tmB,MAAAA,EAAE,IAAIrt3B,IAAI,CAACmhQ,IAAL,CAAUwe,CAAV,CAAN;AACH,KAdoB,CAerB;;;AACA,QAAI7mQ,CAAC,GAAG,CAACy02B,QAAQ,KAAKC,SAAb,GAAyB,CAAC,CAA1B,GAA8B,CAA/B,IAAoCxt3B,IAAI,CAACmhQ,IAAL,CAAU,CAACnhQ,IAAI,CAACygB,GAAL,CAAS2s2B,EAAT,EAAa,CAAb,IAAkBpt3B,IAAI,CAACygB,GAAL,CAAS4s2B,EAAT,EAAa,CAAb,CAAlB,GAAoCrt3B,IAAI,CAACygB,GAAL,CAAS2s2B,EAAT,EAAa,CAAb,IAAkBpt3B,IAAI,CAACygB,GAAL,CAASit2B,KAAK,CAACrvxB,CAAf,EAAkB,CAAlB,CAAtD,GAA6Er+F,IAAI,CAACygB,GAAL,CAAS4s2B,EAAT,EAAa,CAAb,IAAkBrt3B,IAAI,CAACygB,GAAL,CAASit2B,KAAK,CAAC702B,CAAf,EAAkB,CAAlB,CAAhG,KAAyH7Y,IAAI,CAACygB,GAAL,CAAS2s2B,EAAT,EAAa,CAAb,IAAkBpt3B,IAAI,CAACygB,GAAL,CAASit2B,KAAK,CAACrvxB,CAAf,EAAkB,CAAlB,CAAlB,GAAyCr+F,IAAI,CAACygB,GAAL,CAAS4s2B,EAAT,EAAa,CAAb,IAAkBrt3B,IAAI,CAACygB,GAAL,CAASit2B,KAAK,CAAC702B,CAAf,EAAkB,CAAlB,CAApL,CAAV,CAA5C;;AACA,QAAIrY,KAAK,CAACsY,CAAD,CAAT,EAAc;AACVA,MAAAA,CAAC,GAAG,CAAJ;AACH;;AACD,UAAM602B,GAAG,GAAG,IAAI5+V,KAAJ,CAAUj2gB,CAAC,GAAGs02B,EAAJ,GAASM,KAAK,CAACrvxB,CAAf,GAAmBgvxB,EAA7B,EAAiCv02B,CAAC,GAAG,CAACu02B,EAAL,GAAUK,KAAK,CAAC702B,CAAhB,GAAoBu02B,EAArD,CAAZ,CApBqB,CAqBrB;;AACA,UAAMQ,KAAK,GAAG,IAAI7+V,KAAJ,CAAU,CAAC1qO,OAAO,CAACxrS,CAAR,GAAYijhB,YAAY,CAACjjhB,CAA1B,IAA+B,CAA/B,GAAmC7Y,IAAI,CAAC8gQ,GAAL,CAAS2snB,aAAT,IAA0BE,GAAG,CAAC902B,CAAjE,GAAqE7Y,IAAI,CAAC+gQ,GAAL,CAAS0snB,aAAT,IAA0BE,GAAG,CAACtvxB,CAA7G,EAAgH,CAACgmN,OAAO,CAAChmN,CAAR,GAAYy9b,YAAY,CAACz9b,CAA1B,IAA+B,CAA/B,GAAmCr+F,IAAI,CAAC+gQ,GAAL,CAAS0snB,aAAT,IAA0BE,GAAG,CAAC902B,CAAjE,GAAqE7Y,IAAI,CAAC8gQ,GAAL,CAAS2snB,aAAT,IAA0BE,GAAG,CAACtvxB,CAAnN,CAAd,CAtBqB,CAuBrB;;AACA,UAAMi4a,EAAE,GAAGkjW,YAAY,CAAC,CACpB,CADoB,EAEpB,CAFoB,CAAD,EAGpB,CACC,CAACkU,KAAK,CAAC702B,CAAN,GAAU802B,GAAG,CAAC902B,CAAf,IAAoBu02B,EADrB,EAEC,CAACM,KAAK,CAACrvxB,CAAN,GAAUsvxB,GAAG,CAACtvxB,CAAf,IAAoBgvxB,EAFrB,CAHoB,CAAvB,CAMG;AANH,KAxBqB,CAgCrB;;AACA,UAAMrpkB,CAAC,GAAG,CACN,CAAC0pkB,KAAK,CAAC702B,CAAN,GAAU802B,GAAG,CAAC902B,CAAf,IAAoBu02B,EADd,EAEN,CAACM,KAAK,CAACrvxB,CAAN,GAAUsvxB,GAAG,CAACtvxB,CAAf,IAAoBgvxB,EAFd,CAAV;AAIA,UAAMxr1B,CAAC,GAAG,CACN,CAAC,CAAC6r1B,KAAK,CAAC702B,CAAP,GAAW802B,GAAG,CAAC902B,CAAhB,IAAqBu02B,EADf,EAEN,CAAC,CAACM,KAAK,CAACrvxB,CAAP,GAAWsvxB,GAAG,CAACtvxB,CAAhB,IAAqBgvxB,EAFf,CAAV;AAIA,QAAIh/U,EAAE,GAAGmrU,YAAY,CAACx1jB,CAAD,EAAIniR,CAAJ,CAArB,CAA4B;AAA5B;;AAEA,QAAI030B,YAAY,CAACv1jB,CAAD,EAAIniR,CAAJ,CAAZ,IAAsB,CAAC,CAA3B,EAA8B;AAC1BwsgB,MAAAA,EAAE,GAAGruiB,IAAI,CAAC2hQ,EAAV;AACH;;AACD,QAAI43mB,YAAY,CAACv1jB,CAAD,EAAIniR,CAAJ,CAAZ,IAAsB,CAA1B,EAA6B;AACzBwsgB,MAAAA,EAAE,GAAG,CAAL;AACH;;AACD,WAAO;AACHvS,MAAAA,YADG;AAEHsxV,MAAAA,EAFG;AAGHC,MAAAA,EAHG;AAIHG,MAAAA,SAJG;AAKHC,MAAAA,aALG;AAMHG,MAAAA,KANG;AAOHt3W,MAAAA,EAPG;AAQH+3B,MAAAA;AARG,KAAP;AAUH;;AACD9+N,EAAAA,KAAK,CAACkrB,GAAD,EAAM06K,WAAN,EAAmB;AACpB,UAAM;AAAE02W,MAAAA;AAAF,QAAkB,IAAxB;AACA,UAAM;AAAE/vV,MAAAA,YAAF;AAAiBsxV,MAAAA,EAAjB;AAAsBC,MAAAA,EAAtB;AAA2BG,MAAAA,SAA3B;AAAuCC,MAAAA,aAAvC;AAAuDG,MAAAA,KAAvD;AAA+Dt3W,MAAAA,EAA/D;AAAoE+3B,MAAAA;AAApE,QAA4Eu9U,WAAW,CAACr8iB,KAAZ,CAAkBs8iB,UAAlB,CAAlF,CAFoB,CAGpB;;AACA,UAAMryxB,GAAG,GAAG,IAAIg0xB,SAAJ,GAAgB,CAAhB,GAAoB,CAAC,CAAjC;AACA,UAAMK,EAAE,GAAGv3W,EAAE,GAAG98a,GAAG,IAAI60c,EAAE,GAAG,CAAT,CAAnB;AACA,UAAMy/U,OAAO,GAAG,IAAI/+V,KAAJ,CAAU6+V,KAAK,CAAC/02B,CAAN,GAAUu02B,EAAE,GAAGpt3B,IAAI,CAAC8gQ,GAAL,CAAS+snB,EAAT,CAAzB,EAAuCD,KAAK,CAACvvxB,CAAN,GAAUgvxB,EAAE,GAAGrt3B,IAAI,CAAC+gQ,GAAL,CAAS8snB,EAAT,CAAtD,CAAhB;AACAhC,IAAAA,UAAU,CAACJ,cAAX,CAA0BqC,OAA1B,EAAmCD,EAAE,GAAGr0xB,GAAG,GAAGx5F,IAAI,CAAC2hQ,EAAX,GAAgB,CAAxD;AACAkqnB,IAAAA,UAAU,CAACJ,cAAX,CAA0B3vV,YAA1B,EAAwC+xV,EAAE,GAAGr0xB,GAAG,GAAGx5F,IAAI,CAAC2hQ,EAAxD;AACAwzQ,IAAAA,WAAW,CAACqvW,QAAZ,CAAqB1oV,YAAY,CAACjjhB,CAAlC,EAAqCijhB,YAAY,CAACz9b,CAAlD,EAAqD;AAArD;;AAEA,QAAIo8P,GAAG,IAAI,CAACj6V,KAAK,CAAC81gB,EAAD,CAAb,IAAqB,CAAC91gB,KAAK,CAAC6tiB,EAAD,CAA/B,EAAqC;AACjC,YAAMhkgB,CAAC,GAAG+i1B,EAAE,GAAGC,EAAL,GAAUD,EAAV,GAAeC,EAAzB;AACA,YAAMhwhB,EAAE,GAAG+vhB,EAAE,GAAGC,EAAL,GAAU,CAAV,GAAcD,EAAE,GAAGC,EAA9B;AACA,YAAM/vhB,EAAE,GAAG8vhB,EAAE,GAAGC,EAAL,GAAUA,EAAE,GAAGD,EAAf,GAAoB,CAA/B;AACA3yhB,MAAAA,GAAG,CAAC1oP,SAAJ,CAAc67wB,KAAK,CAAC/02B,CAApB,EAAuB+02B,KAAK,CAACvvxB,CAA7B;AACAo8P,MAAAA,GAAG,CAAC7nB,MAAJ,CAAW66iB,aAAX;AACAhzhB,MAAAA,GAAG,CAAC59Q,KAAJ,CAAUwgR,EAAV,EAAcC,EAAd;AACA7C,MAAAA,GAAG,CAACk1B,GAAJ,CAAQ,CAAR,EAAW,CAAX,EAActlV,CAAd,EAAiBise,EAAjB,EAAqBA,EAAE,GAAG+3B,EAA1B,EAA8BvyiB,OAAO,CAAC,IAAI0x3B,SAAL,CAArC;AACA/yhB,MAAAA,GAAG,CAAC59Q,KAAJ,CAAU,IAAIwgR,EAAd,EAAkB,IAAIC,EAAtB;AACA7C,MAAAA,GAAG,CAAC7nB,MAAJ,CAAW,CAAC66iB,aAAZ;AACAhzhB,MAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAAC67wB,KAAK,CAAC/02B,CAArB,EAAwB,CAAC+02B,KAAK,CAACvvxB,CAA/B;AACH;AACJ;;AACW,SAALuuxB,KAAK,CAACf,UAAD,EAAa;AACrBA,IAAAA,UAAU,CAACxnkB,OAAX,GAAqBwnkB,UAAU,CAACvj2B,KAAhC;AACH;;AACDsk2B,EAAAA,KAAK,CAACnyhB,GAAD,EAAM06K,WAAN,EAAmB;AACpBy2W,IAAAA,WAAW,CAACgB,KAAZ,CAAkB,KAAKf,UAAvB;;AACA,QAAIpxhB,GAAJ,EAAS;AACL;AACA,UAAI06K,WAAW,CAAC/uK,EAAZ,KAAmB+uK,WAAW,CAAC7uK,EAA/B,IAAqC6uK,WAAW,CAAC9uK,EAAZ,KAAmB8uK,WAAW,CAAC5uK,EAAxE,EAA4E;AACxE9L,QAAAA,GAAG,CAAC6M,SAAJ;AACH;AACJ;AACJ;;AACDnzW,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,MAAZ;AACA,SAAKmy3B,UAAL,GAAkB,IAAIpB,UAAJ,CAAe,KAAKl2xB,YAAL,CAAkB,GAAlB,EAAuB0lxB,SAAvB,EAAf,CAAlB;AACH;;AAtWqC;;AAyW1C,MAAM1zK,UAAN,SAAyBw/K,eAAzB,CAAyC;AACrC3D,EAAAA,UAAU,CAAC3nhB,GAAD,EAAM;AACZ,QAAIj1P,GAAJ;AACA,UAAM;AAAE15E,MAAAA;AAAF,QAAgB,IAAtB;AACA,UAAM;AAAE6njB,MAAAA,MAAF;AAAWzkkB,MAAAA;AAAX,QAAuB4c,QAA7B;AACA,UAAMq3U,MAAM,GAAG1I,GAAG,CAAC0I,MAAnB;AACAwwO,IAAAA,MAAM,CAACkqS,WAAP,CAAmBpjhB,GAAnB;;AACA,QAAI,WAAW0I,MAAX,IAAqB,OAAO1I,GAAG,CAACzmB,IAAX,KAAoB,WAAzC,IAAwD9kU,MAAxD,IAAkE,OAAOA,MAAM,CAAC4mF,gBAAd,KAAmC,WAAzG,EAAsH;AAClH2kQ,MAAAA,GAAG,CAACzmB,IAAJ,GAAW9kU,MAAM,CAAC4mF,gBAAP,CAAwBqtQ,MAAxB,EAAgChvL,gBAAhC,CAAiD,MAAjD,CAAX;AACA,YAAM45sB,YAAY,GAAG,IAAI/T,QAAJ,CAAalu1B,QAAb,EAAuB,UAAvB,EAAmCo41B,IAAI,CAACt13B,KAAL,CAAW6rW,GAAG,CAACzmB,IAAf,EAAqBqf,QAAxD,CAArB;;AACA,UAAI06hB,YAAY,CAACzuvB,QAAb,EAAJ,EAA6B;AACzBxzG,QAAAA,QAAQ,CAAC4u1B,UAAT,GAAsBqT,YAAY,CAACjT,SAAb,CAAuB,GAAvB,CAAtB;AACAhv1B,QAAAA,QAAQ,CAAC8u1B,MAAT,GAAkB9u1B,QAAQ,CAAC4u1B,UAA3B;AACH;AACJ,KAbW,CAcZ;;;AACA,QAAI,CAAC,KAAKnmxB,YAAL,CAAkB,GAAlB,EAAuB+qC,QAAvB,EAAL,EAAwC;AACpC,WAAK/qC,YAAL,CAAkB,GAAlB,EAAuB,IAAvB,EAA6B2jB,QAA7B,CAAsC,CAAtC;AACH;;AACD,QAAI,CAAC,KAAK3jB,YAAL,CAAkB,GAAlB,EAAuB+qC,QAAvB,EAAL,EAAwC;AACpC,WAAK/qC,YAAL,CAAkB,GAAlB,EAAuB,IAAvB,EAA6B2jB,QAA7B,CAAsC,CAAtC;AACH;;AACD,QAAI;AAAEtkE,MAAAA,KAAF;AAAUihD,MAAAA;AAAV,QAAsB8+e,MAAM,CAACunS,QAAjC;;AACA,QAAI,CAAC,KAAK7xV,QAAL,CAAc,OAAd,EAAuB/pZ,QAAvB,EAAL,EAAwC;AACpC,WAAK+pZ,QAAL,CAAc,OAAd,EAAuB,IAAvB,EAA6Bnxa,QAA7B,CAAsC,MAAtC;AACH;;AACD,QAAI,CAAC,KAAKmxa,QAAL,CAAc,QAAd,EAAwB/pZ,QAAxB,EAAL,EAAyC;AACrC,WAAK+pZ,QAAL,CAAc,QAAd,EAAwB,IAAxB,EAA8Bnxa,QAA9B,CAAuC,MAAvC;AACH;;AACD,QAAI,CAAC,KAAKmxa,QAAL,CAAc,OAAd,EAAuB/pZ,QAAvB,EAAL,EAAwC;AACpC,WAAK+pZ,QAAL,CAAc,OAAd,EAAuB,IAAvB,EAA6Bnxa,QAA7B,CAAsC,OAAtC;AACH;;AACD,UAAM81wB,QAAQ,GAAG,KAAKz5xB,YAAL,CAAkB,MAAlB,CAAjB;AACA,UAAM05xB,QAAQ,GAAG,KAAK15xB,YAAL,CAAkB,MAAlB,CAAjB;AACA,UAAM25xB,WAAW,GAAG,KAAK35xB,YAAL,CAAkB,SAAlB,CAApB;AACA,UAAMostB,OAAO,GAAGutE,WAAW,CAAC5uvB,QAAZ,KAAyBy4uB,SAAS,CAACmW,WAAW,CAACjU,SAAZ,EAAD,CAAlC,GAA8D,IAA9E;AACA,UAAMjtd,IAAI,GAAG,CAAC,KAAK75C,IAAN,IAAc,KAAKk2K,QAAL,CAAc,UAAd,EAA0Bj4c,QAA1B,CAAmC,QAAnC,MAAiD,SAA5E;AACA,QAAI8nU,IAAI,GAAG,CAAX;AACA,QAAI0zT,IAAI,GAAG,CAAX;AACA,QAAIwxK,KAAK,GAAG,CAAZ;AACA,QAAIC,KAAK,GAAG,CAAZ;;AACA,QAAI19D,OAAJ,EAAa;AACTzna,MAAAA,IAAI,GAAGyna,OAAO,CAAC,CAAD,CAAd;AACA/zG,MAAAA,IAAI,GAAG+zG,OAAO,CAAC,CAAD,CAAd;AACH;;AACD,QAAI,CAAC,KAAKxtc,IAAV,EAAgB;AACZv/T,MAAAA,KAAK,GAAG,KAAKy1e,QAAL,CAAc,OAAd,EAAuByxV,SAAvB,CAAiC,GAAjC,CAAR;AACAjmxB,MAAAA,MAAM,GAAG,KAAKw0b,QAAL,CAAc,QAAd,EAAwByxV,SAAxB,CAAkC,GAAlC,CAAT;;AACA,UAAI,KAAKph3B,IAAL,KAAc,QAAlB,EAA4B;AACxB0k3B,QAAAA,KAAK,GAAGlle,IAAR;AACAmle,QAAAA,KAAK,GAAGzxK,IAAR;AACA1zT,QAAAA,IAAI,GAAG,CAAP;AACA0zT,QAAAA,IAAI,GAAG,CAAP;AACH;AACJ;;AACDj5H,IAAAA,MAAM,CAACunS,QAAP,CAAgBa,UAAhB,CAA2Bno0B,KAA3B,EAAkCihD,MAAlC,EAtDY,CAuDZ;AACA;;AACA,QAAI,KAAKn0H,IAAL,CAAU;AAAV,QACC,CAAC,KAAK0wE,MAAN,IAAgB,CAAC,CAACo0D,GAAG,GAAG,KAAK9kI,IAAL,CAAU60H,UAAjB,MAAiC,IAAjC,IAAyCiQ,GAAG,KAAK,KAAK,CAAtD,GAA0D,KAAK,CAA/D,GAAmEA,GAAG,CAAC5I,QAAxE,MAAsF,eADvG,KAC2H,KAAKysb,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAAkC,IAAlC,EAAwC/pZ,QAAxC,EAD3H,IACiL,CAAC,KAAK+pZ,QAAL,CAAc,kBAAd,EAAkC,KAAlC,EAAyC,IAAzC,EAA+C/pZ,QAA/C,EADtL,EACiP;AAC7O,WAAK+pZ,QAAL,CAAc,kBAAd,EAAkC,IAAlC,EAAwC,IAAxC,EAA8Cnxa,QAA9C,CAAuD,SAAvD;AACH;;AACD,UAAMkqwB,UAAN,CAAiB3nhB,GAAjB;AACAA,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,KAAKxd,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAd,EAAqD,KAAKvmxB,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAArD;;AACA,QAAIn6D,OAAJ,EAAa;AACT/swB,MAAAA,KAAK,GAAG+swB,OAAO,CAAC,CAAD,CAAf;AACA9rtB,MAAAA,MAAM,GAAG8rtB,OAAO,CAAC,CAAD,CAAhB;AACH;;AACD70xB,IAAAA,QAAQ,CAACgy1B,UAAT,CAAoB;AAChBrjhB,MAAAA,GADgB;AAEhBsjhB,MAAAA,WAAW,EAAE,KAAKxpxB,YAAL,CAAkB,qBAAlB,EAAyC0lxB,SAAzC,EAFG;AAGhBrm0B,MAAAA,KAAK,EAAE+/hB,MAAM,CAACunS,QAAP,CAAgBtn0B,KAHP;AAIhBoq0B,MAAAA,YAAY,EAAEpq0B,KAJE;AAKhBihD,MAAAA,MAAM,EAAE8+e,MAAM,CAACunS,QAAP,CAAgBrmxB,MALR;AAMhBopxB,MAAAA,aAAa,EAAEppxB,MANC;AAOhBqkT,MAAAA,IAPgB;AAQhB0zT,MAAAA,IARgB;AAShBsxK,MAAAA,IAAI,EAAE8P,QAAQ,CAAC58yB,QAAT,EATU;AAUhB+syB,MAAAA,IAAI,EAAE8P,QAAQ,CAAC78yB,QAAT,EAVU;AAWhB47U,MAAAA,IAXgB;AAYhBoxd,MAAAA,KAZgB;AAahBC,MAAAA;AAbgB,KAApB;;AAeA,QAAI19D,OAAJ,EAAa;AACThtO,MAAAA,MAAM,CAACunS,QAAP,CAAgBc,aAAhB;AACAroS,MAAAA,MAAM,CAACunS,QAAP,CAAgBa,UAAhB,CAA2Bno0B,KAA3B,EAAkCihD,MAAlC;AACH;AACJ;;AACDytxB,EAAAA,YAAY,CAAC7nhB,GAAD,EAAM;AACd,UAAM6nhB,YAAN,CAAmB7nhB,GAAnB;AACA,SAAK3uU,QAAL,CAAc6njB,MAAd,CAAqBunS,QAArB,CAA8Bc,aAA9B;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AAAMpxoB,EAAAA,MAAM,CAACh3L,KAAD,EAAQ;AACZ,QAAIihD,MAAM,GAAG1hE,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiEygB,KAA9E;AAAA,QAAqFu60B,mBAAmB,GAAGh71B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAA5K;AACA,UAAMi71B,SAAS,GAAG,KAAK75xB,YAAL,CAAkB,OAAlB,EAA2B,IAA3B,CAAlB;AACA,UAAM85xB,UAAU,GAAG,KAAK95xB,YAAL,CAAkB,QAAlB,EAA4B,IAA5B,CAAnB;AACA,UAAM25xB,WAAW,GAAG,KAAK35xB,YAAL,CAAkB,SAAlB,CAApB;AACA,UAAM+5xB,SAAS,GAAG,KAAK/5xB,YAAL,CAAkB,OAAlB,CAAlB;AACA,UAAMg6xB,WAAW,GAAGH,SAAS,CAAC9T,SAAV,CAAoB,CAApB,CAApB;AACA,UAAMkU,YAAY,GAAGH,UAAU,CAAC/T,SAAX,CAAqB,CAArB,CAArB;;AACA,QAAI6T,mBAAJ,EAAyB;AACrB,UAAI,OAAOA,mBAAP,KAA+B,QAAnC,EAA6C;AACzC,aAAK55xB,YAAL,CAAkB,qBAAlB,EAAyC,IAAzC,EAA+C2jB,QAA/C,CAAwDi2wB,mBAAxD;AACH,OAFD,MAEO;AACH,cAAMM,uBAAuB,GAAG,KAAKl6xB,YAAL,CAAkB,qBAAlB,CAAhC;;AACA,YAAIk6xB,uBAAuB,CAACnvvB,QAAxB,EAAJ,EAAwC;AACpCmvvB,UAAAA,uBAAuB,CAACv2wB,QAAxB,CAAiCu2wB,uBAAuB,CAACxU,SAAxB,GAAoCp34B,OAApC,CAA4C,kBAA5C,EAAgE,IAAhE,CAAjC;AACH;AACJ;AACJ;;AACDur5B,IAAAA,SAAS,CAACl2wB,QAAV,CAAmBtkE,KAAnB;AACAy60B,IAAAA,UAAU,CAACn2wB,QAAX,CAAoBrjB,MAApB;;AACA,QAAI,CAACq5xB,WAAW,CAAC5uvB,QAAZ,EAAL,EAA6B;AACzB4uvB,MAAAA,WAAW,CAACh2wB,QAAZ,CAAqB,OAAOvxG,MAAP,CAAc4n3B,WAAW,IAAI360B,KAA7B,EAAoC,GAApC,EAAyCjtC,MAAzC,CAAgD6n3B,YAAY,IAAI35xB,MAAhE,CAArB;AACH;;AACD,QAAIy5xB,SAAS,CAAChvvB,QAAV,EAAJ,EAA0B;AACtB,YAAM4gvB,UAAU,GAAG,KAAK72V,QAAL,CAAc,OAAd,CAAnB;AACA,YAAM82V,WAAW,GAAG,KAAK92V,QAAL,CAAc,QAAd,CAApB;;AACA,UAAI62V,UAAU,CAAC5gvB,QAAX,EAAJ,EAA2B;AACvB4gvB,QAAAA,UAAU,CAAChowB,QAAX,CAAoB,GAAGvxG,MAAH,CAAUitC,KAAV,EAAiB,IAAjB,CAApB;AACH;;AACD,UAAIus0B,WAAW,CAAC7gvB,QAAZ,EAAJ,EAA4B;AACxB6gvB,QAAAA,WAAW,CAACjowB,QAAZ,CAAqB,GAAGvxG,MAAH,CAAUkuF,MAAV,EAAkB,IAAlB,CAArB;AACH;AACJ;AACJ;;AACD1gG,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,KAAZ;AACA,SAAKy5W,IAAL,GAAY,KAAZ;AACH;;AAvIoC;;AA0IzC,MAAMu7gB,WAAN,SAA0B9C,WAA1B,CAAsC;AAClCh95B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAM5hV,CAAC,GAAG,KAAK07E,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAV;AACA,UAAMz8wB,CAAC,GAAG,KAAK9J,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAV;AACA,UAAMln0B,KAAK,GAAG,KAAKy1e,QAAL,CAAc,OAAd,EAAuB,KAAvB,EAA8B,IAA9B,EAAoCyxV,SAApC,CAA8C,GAA9C,CAAd;AACA,UAAMjmxB,MAAM,GAAG,KAAKw0b,QAAL,CAAc,QAAd,EAAwB,KAAxB,EAA+B,IAA/B,EAAqCyxV,SAArC,CAA+C,GAA/C,CAAf;AACA,UAAM6T,MAAM,GAAG,KAAKp6xB,YAAL,CAAkB,IAAlB,CAAf;AACA,UAAMq6xB,MAAM,GAAG,KAAKr6xB,YAAL,CAAkB,IAAlB,CAAf;AACA,QAAIizQ,EAAE,GAAGmnhB,MAAM,CAAC7T,SAAP,CAAiB,GAAjB,CAAT;AACA,QAAIrzgB,EAAE,GAAGmnhB,MAAM,CAAC9T,SAAP,CAAiB,GAAjB,CAAT;;AACA,QAAI6T,MAAM,CAACrvvB,QAAP,MAAqB,CAACsvvB,MAAM,CAACtvvB,QAAP,EAA1B,EAA6C;AACzCmoO,MAAAA,EAAE,GAAGD,EAAL;AACH;;AACD,QAAIonhB,MAAM,CAACtvvB,QAAP,MAAqB,CAACqvvB,MAAM,CAACrvvB,QAAP,EAA1B,EAA6C;AACzCkoO,MAAAA,EAAE,GAAGC,EAAL;AACH;;AACDD,IAAAA,EAAE,GAAGxnW,IAAI,CAACoS,GAAL,CAASo1V,EAAT,EAAa5zT,KAAK,GAAG,CAArB,CAAL;AACA6zT,IAAAA,EAAE,GAAGznW,IAAI,CAACoS,GAAL,CAASq1V,EAAT,EAAa5yQ,MAAM,GAAG,CAAtB,CAAL;;AACA,QAAI4lQ,GAAJ,EAAS;AACL,YAAMo0hB,KAAK,GAAG,KAAK,CAAC7u3B,IAAI,CAACmhQ,IAAL,CAAU,CAAV,IAAe,CAAhB,IAAqB,CAA1B,CAAd;AACAs5F,MAAAA,GAAG,CAAC6R,SAAJ,GAAgB;AAAhB;;AAEA,UAAIz3Q,MAAM,GAAG,CAAT,IAAcjhD,KAAK,GAAG,CAA1B,EAA6B;AACzB6mT,QAAAA,GAAG,CAAC2M,MAAJ,CAAWvuV,CAAC,GAAG2uV,EAAf,EAAmBnpQ,CAAnB;AACAo8P,QAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAC,GAAG+6B,KAAJ,GAAY4zT,EAAvB,EAA2BnpQ,CAA3B;AACAo8P,QAAAA,GAAG,CAACiZ,aAAJ,CAAkB76V,CAAC,GAAG+6B,KAAJ,GAAY4zT,EAAZ,GAAiBqnhB,KAAK,GAAGrnhB,EAA3C,EAA+CnpQ,CAA/C,EAAkDxlF,CAAC,GAAG+6B,KAAtD,EAA6DyqD,CAAC,GAAGopQ,EAAJ,GAASonhB,KAAK,GAAGpnhB,EAA9E,EAAkF5uV,CAAC,GAAG+6B,KAAtF,EAA6FyqD,CAAC,GAAGopQ,EAAjG;AACAhN,QAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAC,GAAG+6B,KAAf,EAAsByqD,CAAC,GAAGxJ,MAAJ,GAAa4yQ,EAAnC;AACAhN,QAAAA,GAAG,CAACiZ,aAAJ,CAAkB76V,CAAC,GAAG+6B,KAAtB,EAA6ByqD,CAAC,GAAGxJ,MAAJ,GAAa4yQ,EAAb,GAAkBonhB,KAAK,GAAGpnhB,EAAvD,EAA2D5uV,CAAC,GAAG+6B,KAAJ,GAAY4zT,EAAZ,GAAiBqnhB,KAAK,GAAGrnhB,EAApF,EAAwFnpQ,CAAC,GAAGxJ,MAA5F,EAAoGh8E,CAAC,GAAG+6B,KAAJ,GAAY4zT,EAAhH,EAAoHnpQ,CAAC,GAAGxJ,MAAxH;AACA4lQ,QAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAC,GAAG2uV,EAAf,EAAmBnpQ,CAAC,GAAGxJ,MAAvB;AACA4lQ,QAAAA,GAAG,CAACiZ,aAAJ,CAAkB76V,CAAC,GAAG2uV,EAAJ,GAASqnhB,KAAK,GAAGrnhB,EAAnC,EAAuCnpQ,CAAC,GAAGxJ,MAA3C,EAAmDh8E,CAAnD,EAAsDwlF,CAAC,GAAGxJ,MAAJ,GAAa4yQ,EAAb,GAAkBonhB,KAAK,GAAGpnhB,EAAhF,EAAoF5uV,CAApF,EAAuFwlF,CAAC,GAAGxJ,MAAJ,GAAa4yQ,EAApG;AACAhN,QAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAX,EAAcwlF,CAAC,GAAGopQ,EAAlB;AACAhN,QAAAA,GAAG,CAACiZ,aAAJ,CAAkB76V,CAAlB,EAAqBwlF,CAAC,GAAGopQ,EAAJ,GAASonhB,KAAK,GAAGpnhB,EAAtC,EAA0C5uV,CAAC,GAAG2uV,EAAJ,GAASqnhB,KAAK,GAAGrnhB,EAA3D,EAA+DnpQ,CAA/D,EAAkExlF,CAAC,GAAG2uV,EAAtE,EAA0EnpQ,CAA1E;AACAo8P,QAAAA,GAAG,CAAC6M,SAAJ;AACH;AACJ;;AACD,WAAO,IAAIi9gB,WAAJ,CAAgB1r2B,CAAhB,EAAmBwlF,CAAnB,EAAsBxlF,CAAC,GAAG+6B,KAA1B,EAAiCyqD,CAAC,GAAGxJ,MAArC,CAAP;AACH;;AACDg4xB,EAAAA,UAAU,GAAG;AACT,WAAO,IAAP;AACH;;AACD143B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,MAAZ;AACH;;AA3CiC;;AA8CtC,MAAMo13B,aAAN,SAA4BlD,WAA5B,CAAwC;AACpCh95B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAMlc,EAAE,GAAG,KAAKhqP,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAX;AACA,UAAMt8hB,EAAE,GAAG,KAAKjqP,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAX;AACA,UAAMzw0B,CAAC,GAAG,KAAKkqD,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,EAAV;;AACA,QAAIrghB,GAAG,IAAIpwT,CAAC,GAAG,CAAf,EAAkB;AACdowT,MAAAA,GAAG,CAAC6R,SAAJ;AACA7R,MAAAA,GAAG,CAACk1B,GAAJ,CAAQpxC,EAAR,EAAYC,EAAZ,EAAgBn0S,CAAhB,EAAmB,CAAnB,EAAsBrqC,IAAI,CAAC2hQ,EAAL,GAAU,CAAhC,EAAmC,KAAnC;AACA84F,MAAAA,GAAG,CAAC6M,SAAJ;AACH;;AACD,WAAO,IAAIi9gB,WAAJ,CAAgBhmiB,EAAE,GAAGl0S,CAArB,EAAwBm0S,EAAE,GAAGn0S,CAA7B,EAAgCk0S,EAAE,GAAGl0S,CAArC,EAAwCm0S,EAAE,GAAGn0S,CAA7C,CAAP;AACH;;AACDwi1B,EAAAA,UAAU,GAAG;AACT,WAAO,IAAP;AACH;;AACD143B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,QAAZ;AACH;;AAlBmC;;AAqBxC,MAAMq13B,cAAN,SAA6BnD,WAA7B,CAAyC;AACrCh95B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAMo0hB,KAAK,GAAG,KAAK,CAAC7u3B,IAAI,CAACmhQ,IAAL,CAAU,CAAV,IAAe,CAAhB,IAAqB,CAA1B,CAAd;AACA,UAAMqmG,EAAE,GAAG,KAAKjzQ,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAX;AACA,UAAMrzgB,EAAE,GAAG,KAAKlzQ,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAX;AACA,UAAMv8hB,EAAE,GAAG,KAAKhqP,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAX;AACA,UAAMt8hB,EAAE,GAAG,KAAKjqP,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAX;;AACA,QAAIrghB,GAAG,IAAI+M,EAAE,GAAG,CAAZ,IAAiBC,EAAE,GAAG,CAA1B,EAA6B;AACzBhN,MAAAA,GAAG,CAAC6R,SAAJ;AACA7R,MAAAA,GAAG,CAAC2M,MAAJ,CAAW7oB,EAAE,GAAGipB,EAAhB,EAAoBhpB,EAApB;AACAic,MAAAA,GAAG,CAACiZ,aAAJ,CAAkBn1B,EAAE,GAAGipB,EAAvB,EAA2BhpB,EAAE,GAAGqwiB,KAAK,GAAGpnhB,EAAxC,EAA4ClpB,EAAE,GAAGswiB,KAAK,GAAGrnhB,EAAzD,EAA6DhpB,EAAE,GAAGipB,EAAlE,EAAsElpB,EAAtE,EAA0EC,EAAE,GAAGipB,EAA/E;AACAhN,MAAAA,GAAG,CAACiZ,aAAJ,CAAkBn1B,EAAE,GAAGswiB,KAAK,GAAGrnhB,EAA/B,EAAmChpB,EAAE,GAAGipB,EAAxC,EAA4ClpB,EAAE,GAAGipB,EAAjD,EAAqDhpB,EAAE,GAAGqwiB,KAAK,GAAGpnhB,EAAlE,EAAsElpB,EAAE,GAAGipB,EAA3E,EAA+EhpB,EAA/E;AACAic,MAAAA,GAAG,CAACiZ,aAAJ,CAAkBn1B,EAAE,GAAGipB,EAAvB,EAA2BhpB,EAAE,GAAGqwiB,KAAK,GAAGpnhB,EAAxC,EAA4ClpB,EAAE,GAAGswiB,KAAK,GAAGrnhB,EAAzD,EAA6DhpB,EAAE,GAAGipB,EAAlE,EAAsElpB,EAAtE,EAA0EC,EAAE,GAAGipB,EAA/E;AACAhN,MAAAA,GAAG,CAACiZ,aAAJ,CAAkBn1B,EAAE,GAAGswiB,KAAK,GAAGrnhB,EAA/B,EAAmChpB,EAAE,GAAGipB,EAAxC,EAA4ClpB,EAAE,GAAGipB,EAAjD,EAAqDhpB,EAAE,GAAGqwiB,KAAK,GAAGpnhB,EAAlE,EAAsElpB,EAAE,GAAGipB,EAA3E,EAA+EhpB,EAA/E;AACAic,MAAAA,GAAG,CAAC6M,SAAJ;AACH;;AACD,WAAO,IAAIi9gB,WAAJ,CAAgBhmiB,EAAE,GAAGipB,EAArB,EAAyBhpB,EAAE,GAAGipB,EAA9B,EAAkClpB,EAAE,GAAGipB,EAAvC,EAA2ChpB,EAAE,GAAGipB,EAAhD,CAAP;AACH;;AACDolhB,EAAAA,UAAU,GAAG;AACT,WAAO,IAAP;AACH;;AACD143B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,SAAZ;AACH;;AAxBoC;;AA2BzC,MAAMs13B,WAAN,SAA0BpD,WAA1B,CAAsC;AAClCqD,EAAAA,SAAS,GAAG;AACR,WAAO,CACH,IAAIlgW,KAAJ,CAAU,KAAKx6b,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAV,EAAkD,KAAKvmxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAlD,CADG,EAEH,IAAI/rV,KAAJ,CAAU,KAAKx6b,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAV,EAAkD,KAAKvmxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAAlD,CAFG,CAAP;AAIH;;AACDls5B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAM,CAAC;AAAE5hV,MAAAA,CAAC,EAAE69V,EAAL;AAAUr4Q,MAAAA,CAAC,EAAEs4Q;AAAb,KAAD,EAAqB;AAAE99V,MAAAA,CAAC,EAAEutV,EAAL;AAAU/nQ,MAAAA,CAAC,EAAEgoQ;AAAb,KAArB,IAA2C,KAAK4ohB,SAAL,EAAjD;;AACA,QAAIx0hB,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC6R,SAAJ;AACA7R,MAAAA,GAAG,CAAC2M,MAAJ,CAAWsP,EAAX,EAAeC,EAAf;AACAlc,MAAAA,GAAG,CAAC4M,MAAJ,CAAWjB,EAAX,EAAeC,EAAf;AACH;;AACD,WAAO,IAAIk+gB,WAAJ,CAAgB7tgB,EAAhB,EAAoBC,EAApB,EAAwBvQ,EAAxB,EAA4BC,EAA5B,CAAP;AACH;;AACDwmhB,EAAAA,UAAU,GAAG;AACT,UAAM,CAACp7c,EAAD,EAAK1jD,EAAL,IAAW,KAAKkhgB,SAAL,EAAjB;AACA,UAAM342B,CAAC,GAAGm7Z,EAAE,CAAC+qc,OAAH,CAAWzuf,EAAX,CAAV;AACA,WAAO,CACH,CACI0jD,EADJ,EAEIn7Z,CAFJ,CADG,EAKH,CACIy3W,EADJ,EAEIz3W,CAFJ,CALG,CAAP;AAUH;;AACDniB,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,MAAZ;AACH;;AAjCiC;;AAoCtC,MAAMw13B,eAAN,SAA8BtD,WAA9B,CAA0C;AACtCh95B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAM;AAAExjB,MAAAA;AAAF,QAAc,IAApB;AACA,UAAM,CAAC;AAAEp+T,MAAAA,CAAC,EAAE69V,EAAL;AAAUr4Q,MAAAA,CAAC,EAAEs4Q;AAAb,KAAD,IAAuB1/B,MAA7B;AACA,UAAMk+L,WAAW,GAAG,IAAIovW,WAAJ,CAAgB7tgB,EAAhB,EAAoBC,EAApB,CAApB;;AACA,QAAIlc,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC6R,SAAJ;AACA7R,MAAAA,GAAG,CAAC2M,MAAJ,CAAWsP,EAAX,EAAeC,EAAf;AACH;;AACD1/B,IAAAA,MAAM,CAACppU,OAAP,CAAgBqjH,KAAD,IAAS;AACpB,UAAI;AAAEr4G,QAAAA,CAAF;AAAMwlF,QAAAA;AAAN,UAAa6yB,KAAjB;AACAikZ,MAAAA,WAAW,CAACqvW,QAAZ,CAAqB3r2B,CAArB,EAAwBwlF,CAAxB;;AACA,UAAIo8P,GAAJ,EAAS;AACLA,QAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAX,EAAcwlF,CAAd;AACH;AACJ,KAND;AAOA,WAAO82a,WAAP;AACH;;AACD03W,EAAAA,UAAU,GAAG;AACT,UAAM;AAAE51iB,MAAAA;AAAF,QAAc,IAApB;AACA,UAAM39P,SAAS,GAAG29P,MAAM,CAAC/tX,MAAP,GAAgB,CAAlC;AACA,UAAM2oa,OAAO,GAAG,EAAhB;AACA56C,IAAAA,MAAM,CAACppU,OAAP,CAAe,CAAC0kD,KAAD,EAAQxqG,CAAR,KAAY;AACvB,UAAIA,CAAC,KAAKuxH,SAAV,EAAqB;AACjB;AACH;;AACDu4S,MAAAA,OAAO,CAAC17X,IAAR,CAAa,CACTo8D,KADS,EAETA,KAAK,CAACiqzB,OAAN,CAAcvliB,MAAM,CAAClvX,CAAC,GAAG,CAAL,CAApB,CAFS,CAAb;AAIH,KARD;;AASA,QAAI8pa,OAAO,CAAC3oa,MAAR,GAAiB,CAArB,EAAwB;AACpB2oa,MAAAA,OAAO,CAAC17X,IAAR,CAAa,CACT8gV,MAAM,CAACA,MAAM,CAAC/tX,MAAP,GAAgB,CAAjB,CADG,EAET2oa,OAAO,CAACA,OAAO,CAAC3oa,MAAR,GAAiB,CAAlB,CAAP,CAA4B,CAA5B,CAFS,CAAb;AAIH;;AACD,WAAO2oa,OAAP;AACH;;AACD19X,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,UAAZ;AACA,SAAKu9U,MAAL,GAAc,EAAd;AACA,SAAKA,MAAL,GAAc83M,KAAK,CAACutV,SAAN,CAAgB,KAAK/nxB,YAAL,CAAkB,QAAlB,EAA4B0lxB,SAA5B,EAAhB,CAAd;AACH;;AA5CqC;;AA+C1C,MAAMkV,cAAN,SAA6BD,eAA7B,CAA6C;AACzCtg6B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAM06K,WAAW,GAAG,MAAMvmjB,IAAN,CAAW6rY,GAAX,CAApB;AACA,UAAM,CAAC;AAAE5hV,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,KAAD,IAAe,KAAK44O,MAA1B;;AACA,QAAIwjB,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC4M,MAAJ,CAAWxuV,CAAX,EAAcwlF,CAAd;AACAo8P,MAAAA,GAAG,CAAC6M,SAAJ;AACH;;AACD,WAAO6tK,WAAP;AACH;;AACDhhhB,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,SAAZ;AACH;;AAbwC;;AAgB7C,MAAM013B,cAAN,SAA6Bl4xB,OAA7B,CAAqC;AACjCqmc,EAAAA,aAAa,CAAC9iM,GAAD,EAAM7gX,CAAN,EAASy14B,iBAAT,EAA4B;AACrC,UAAMz70B,KAAK,GAAG,KAAKy1e,QAAL,CAAc,OAAd,EAAuByxV,SAAvB,CAAiC,GAAjC,EAAsC,IAAtC,CAAd;AACA,UAAMjmxB,MAAM,GAAG,KAAKw0b,QAAL,CAAc,QAAd,EAAwByxV,SAAxB,CAAkC,GAAlC,EAAuC,IAAvC,CAAf,CAFqC,CAGrC;;AACA,UAAMwU,UAAU,GAAG,IAAI/oL,UAAJ,CAAe,KAAKz6qB,QAApB,EAA8B,IAA9B,CAAnB;AACAwj2B,IAAAA,UAAU,CAACj25B,UAAX,CAAsBsn1B,OAAtB,GAAgC,IAAIq5D,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,SAA5B,EAAuC,KAAKyoE,YAAL,CAAkB,SAAlB,EAA6BnjB,QAA7B,EAAvC,CAAhC;AACAk+yB,IAAAA,UAAU,CAACj25B,UAAX,CAAsBu6E,KAAtB,GAA8B,IAAIom0B,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,OAA5B,EAAqC,GAAGnlB,MAAH,CAAUitC,KAAV,EAAiB,IAAjB,CAArC,CAA9B;AACA070B,IAAAA,UAAU,CAACj25B,UAAX,CAAsBw7H,MAAtB,GAA+B,IAAImlxB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,QAA5B,EAAsC,GAAGnlB,MAAH,CAAUkuF,MAAV,EAAkB,IAAlB,CAAtC,CAA/B;AACAy6xB,IAAAA,UAAU,CAACj25B,UAAX,CAAsBknE,SAAtB,GAAkC,IAAIy50B,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,WAA5B,EAAyC,KAAKyoE,YAAL,CAAkB,kBAAlB,EAAsCnjB,QAAtC,EAAzC,CAAlC;AACAk+yB,IAAAA,UAAU,CAACtw0B,QAAX,GAAsB,KAAKA,QAA3B;AACA,UAAMuw0B,aAAa,GAAG,KAAKzj2B,QAAL,CAAcyr1B,YAAd,CAA2B3j0B,KAA3B,EAAkCihD,MAAlC,CAAtB;AACA,UAAM26xB,UAAU,GAAGD,aAAa,CAACn70B,UAAd,CAAyB,IAAzB,CAAnB;AACA,UAAMy10B,KAAK,GAAG,KAAKt1xB,YAAL,CAAkB,GAAlB,CAAd;AACA,UAAMu1xB,KAAK,GAAG,KAAKv1xB,YAAL,CAAkB,GAAlB,CAAd;;AACA,QAAIs1xB,KAAK,CAACvqvB,QAAN,MAAoBwqvB,KAAK,CAACxqvB,QAAN,EAAxB,EAA0C;AACtCkwvB,MAAAA,UAAU,CAACz9wB,SAAX,CAAqB83wB,KAAK,CAAC/O,SAAN,CAAgB,GAAhB,EAAqB,IAArB,CAArB,EAAiDgP,KAAK,CAAChP,SAAN,CAAgB,GAAhB,EAAqB,IAArB,CAAjD;AACH;;AACD,QAAIuU,iBAAiB,CAAC/vvB,QAAlB,EAAJ,EAAkC;AAC9B,WAAKzjC,MAAL,CAAY,cAAZ,IAA8BwzxB,iBAA9B;AACH,KAFD,MAEO;AACH/k1B,MAAAA,OAAO,CAACqt0B,cAAR,CAAuB,KAAK97wB,MAA5B,EAAoC,cAApC;AACH,KArBoC,CAsBrC;;;AACA,SAAI,IAAIhjF,CAAC,GAAG,CAAC,CAAb,EAAgBA,CAAC,IAAI,CAArB,EAAwBA,CAAC,EAAzB,EAA4B;AACxB,WAAI,IAAIwlF,CAAC,GAAG,CAAC,CAAb,EAAgBA,CAAC,IAAI,CAArB,EAAwBA,CAAC,EAAzB,EAA4B;AACxBmxxB,QAAAA,UAAU,CAAC/mxB,IAAX;AACA6mxB,QAAAA,UAAU,CAACj25B,UAAX,CAAsBw/C,CAAtB,GAA0B,IAAImh2B,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,GAA5B,EAAiCjT,CAAC,GAAG022B,aAAa,CAAC370B,KAAnD,CAA1B;AACA070B,QAAAA,UAAU,CAACj25B,UAAX,CAAsBglI,CAAtB,GAA0B,IAAI27wB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,GAA5B,EAAiCuyE,CAAC,GAAGkxxB,aAAa,CAAC16xB,MAAnD,CAA1B;AACAy6xB,QAAAA,UAAU,CAAC90hB,MAAX,CAAkBg1hB,UAAlB;AACAA,QAAAA,UAAU,CAACrv5B,OAAX;AACH;AACJ;;AACD,UAAMu9R,OAAO,GAAG+8F,GAAG,CAAC8iM,aAAJ,CAAkBgyV,aAAlB,EAAiC,QAAjC,CAAhB;AACA,WAAO7xnB,OAAP;AACH;;AACDvpQ,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,SAAZ;AACH;;AAvCgC;;AA0CrC,MAAM+13B,aAAN,SAA4Bv4xB,OAA5B,CAAoC;AAChCsjQ,EAAAA,MAAM,CAACC,GAAD,EAAMloS,KAAN,EAAaitV,KAAb,EAAoB;AACtB,QAAI,CAACjtV,KAAL,EAAY;AACR;AACH;;AACD,UAAM;AAAE15C,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAa9rC,KAAnB;AACA,UAAMm9zB,MAAM,GAAG,KAAKn7xB,YAAL,CAAkB,QAAlB,EAA4B0lxB,SAA5B,CAAsC,MAAtC,CAAf;AACA,UAAM0V,WAAW,GAAG,KAAKp7xB,YAAL,CAAkB,aAAlB,EAAiC0lxB,SAAjC,CAA2C,aAA3C,CAApB;AACAx/gB,IAAAA,GAAG,CAAC1oP,SAAJ,CAAcl5F,CAAd,EAAiBwlF,CAAjB;;AACA,QAAIqxxB,MAAM,KAAK,MAAf,EAAuB;AACnBj1hB,MAAAA,GAAG,CAAC7nB,MAAJ,CAAW4sE,KAAX;AACH;;AACD,QAAImwe,WAAW,KAAK,aAApB,EAAmC;AAC/Bl1hB,MAAAA,GAAG,CAAC59Q,KAAJ,CAAU49Q,GAAG,CAACI,SAAd,EAAyBJ,GAAG,CAACI,SAA7B;AACH;;AACDJ,IAAAA,GAAG,CAAChyP,IAAJ,GAdsB,CAetB;;AACA,UAAMmnxB,SAAS,GAAG,IAAIrpL,UAAJ,CAAe,KAAKz6qB,QAApB,CAAlB;AACA8j2B,IAAAA,SAAS,CAACl23B,IAAV,GAAiB,KAAKA,IAAtB;AACAk23B,IAAAA,SAAS,CAACv25B,UAAV,CAAqBsn1B,OAArB,GAA+B,IAAIq5D,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,SAA5B,EAAuC,KAAKyoE,YAAL,CAAkB,SAAlB,EAA6BnjB,QAA7B,EAAvC,CAA/B;AACAw+yB,IAAAA,SAAS,CAACv25B,UAAV,CAAqB6k5B,IAArB,GAA4B,IAAIlE,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,MAA5B,EAAoC,KAAKyoE,YAAL,CAAkB,MAAlB,EAA0BnjB,QAA1B,EAApC,CAA5B;AACAw+yB,IAAAA,SAAS,CAACv25B,UAAV,CAAqB8k5B,IAArB,GAA4B,IAAInE,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,MAA5B,EAAoC,KAAKyoE,YAAL,CAAkB,MAAlB,EAA0BnjB,QAA1B,EAApC,CAA5B;AACAw+yB,IAAAA,SAAS,CAACv25B,UAAV,CAAqBu6E,KAArB,GAA6B,IAAIom0B,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,OAA5B,EAAqC,KAAKyoE,YAAL,CAAkB,aAAlB,EAAiCnjB,QAAjC,EAArC,CAA7B;AACAw+yB,IAAAA,SAAS,CAACv25B,UAAV,CAAqBw7H,MAArB,GAA8B,IAAImlxB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,QAA5B,EAAsC,KAAKyoE,YAAL,CAAkB,cAAlB,EAAkCnjB,QAAlC,EAAtC,CAA9B;AACAw+yB,IAAAA,SAAS,CAACv25B,UAAV,CAAqB87H,QAArB,GAAgC,IAAI6kxB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,UAA5B,EAAwC,KAAKyoE,YAAL,CAAkB,UAAlB,EAA8BnjB,QAA9B,EAAxC,CAAhC;AACAw+yB,IAAAA,SAAS,CAACv25B,UAAV,CAAqBijX,IAArB,GAA4B,IAAI09hB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,MAA5B,EAAoC,KAAKyoE,YAAL,CAAkB,MAAlB,EAA0Buoc,QAA1B,CAAmC,OAAnC,CAApC,CAA5B;AACA8yV,IAAAA,SAAS,CAACv25B,UAAV,CAAqBooY,MAArB,GAA8B,IAAIu4gB,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,QAA5B,EAAsC,KAAKyoE,YAAL,CAAkB,QAAlB,EAA4BnjB,QAA5B,CAAqC,MAArC,CAAtC,CAA9B;AACAw+yB,IAAAA,SAAS,CAAC5w0B,QAAV,GAAqB,KAAKA,QAA1B;AACA4w0B,IAAAA,SAAS,CAACp1hB,MAAV,CAAiBC,GAAjB;AACAA,IAAAA,GAAG,CAACt6X,OAAJ;;AACA,QAAIwv5B,WAAW,KAAK,aAApB,EAAmC;AAC/Bl1hB,MAAAA,GAAG,CAAC59Q,KAAJ,CAAU,IAAI49Q,GAAG,CAACI,SAAlB,EAA6B,IAAIJ,GAAG,CAACI,SAArC;AACH;;AACD,QAAI60hB,MAAM,KAAK,MAAf,EAAuB;AACnBj1hB,MAAAA,GAAG,CAAC7nB,MAAJ,CAAW,CAAC4sE,KAAZ;AACH;;AACD/kD,IAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACl5F,CAAf,EAAkB,CAACwlF,CAAnB;AACH;;AACDlqG,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,QAAZ;AACH;;AAzC+B;;AA4CpC,MAAMm23B,WAAN,SAA0B34xB,OAA1B,CAAkC;AAC9BsjQ,EAAAA,MAAM,GAAG,CACT;AACC;;AACDrmW,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,MAAZ;AACH;;AAP6B;;AAUlC,MAAMo23B,QAAN,SAAuB/J,eAAvB,CAAuC;AACnCgC,EAAAA,cAAc,CAACtthB,GAAD,EAAM;AAChB,UAAM06K,WAAW,GAAG,IAAIovW,WAAJ,EAApB;AACA,SAAKvl0B,QAAL,CAAcnxC,OAAd,CAAuByxC,KAAD,IAAS;AAC3B61d,MAAAA,WAAW,CAACwvW,cAAZ,CAA2Brl0B,KAAK,CAACyo0B,cAAN,CAAqBtthB,GAArB,CAA3B;AACH,KAFD;AAGA,WAAO06K,WAAP;AACH;;AACDhhhB,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,GAAZ;AACH;;AAXkC;;AAcvC,MAAMq23B,eAAN,SAA8B74xB,OAA9B,CAAsC;AAClC84xB,EAAAA,gBAAgB,GAAG;AACf,WAAO,KAAKz7xB,YAAL,CAAkB,eAAlB,EAAmC0lxB,SAAnC,CAA6C,mBAA7C,CAAP;AACH;;AACDx6d,EAAAA,cAAc,CAAChlD,GAAD,EAAMn2S,OAAN,EAAe+q0B,iBAAf,EAAkC;AAC5C;AACA,QAAIY,cAAc,GAAG,IAArB;;AACA,QAAI,KAAK3U,gBAAL,GAAwBh8uB,QAAxB,EAAJ,EAAwC;AACpC2wvB,MAAAA,cAAc,GAAG,KAAK3U,gBAAL,GAAwB5h0B,aAAxB,EAAjB;AACA,WAAKw20B,oBAAL,CAA0BD,cAA1B;AACH;;AACD,UAAM;AAAE3we,MAAAA;AAAF,QAAa2we,cAAnB;AACA,UAAM3ve,QAAQ,GAAG,KAAK6ve,WAAL,CAAiB11hB,GAAjB,EAAsBn2S,OAAtB,CAAjB;;AACA,QAAI,CAACg8V,QAAL,EAAe;AACX,aAAO,KAAK8ve,gBAAL,CAAsBf,iBAAtB,EAAyC/ve,KAAK,CAACA,KAAK,CAACp2b,MAAN,GAAe,CAAhB,CAAL,CAAwBm7S,KAAjE,CAAP;AACH;;AACDi7I,IAAAA,KAAK,CAACzxY,OAAN,CAAeob,IAAD,IAAQ;AAClBq3X,MAAAA,QAAQ,CAACT,YAAT,CAAsB52X,IAAI,CAAC6D,MAA3B,EAAmC,KAAKsj2B,gBAAL,CAAsBf,iBAAtB,EAAyCpm2B,IAAI,CAACo7O,KAA9C,CAAnC;AACH,KAFD;;AAGA,QAAI,KAAK9vK,YAAL,CAAkB,mBAAlB,EAAuC+qC,QAAvC,EAAJ,EAAuD;AACnD;AACA,YAAM;AAAExzG,QAAAA;AAAF,UAAgB,IAAtB;AACA,YAAM;AAAE401B,QAAAA;AAAF,UAA0BnD,MAAhC;AACA,YAAM;AAAErC,QAAAA;AAAF,UAAgBpv1B,QAAQ,CAAC6njB,MAA/B;AACA,YAAM08S,QAAQ,GAAGnV,QAAQ,CAAC75L,OAAT,EAAjB;AACA,YAAM3uiB,IAAI,GAAG,IAAIg8uB,WAAJ,CAAgB5i2B,QAAhB,CAAb;AACA4mH,MAAAA,IAAI,CAACr5K,UAAL,CAAgBw/C,CAAhB,GAAoB,IAAImh2B,QAAJ,CAAalu1B,QAAb,EAAuB,GAAvB,EAA4B,CAAC401B,kBAAD,GAAsB,CAAlD,CAApB;AACAhuuB,MAAAA,IAAI,CAACr5K,UAAL,CAAgBglI,CAAhB,GAAoB,IAAI27wB,QAAJ,CAAalu1B,QAAb,EAAuB,GAAvB,EAA4B,CAAC401B,kBAAD,GAAsB,CAAlD,CAApB;AACAhuuB,MAAAA,IAAI,CAACr5K,UAAL,CAAgBu6E,KAAhB,GAAwB,IAAIom0B,QAAJ,CAAalu1B,QAAb,EAAuB,OAAvB,EAAgC401B,kBAAhC,CAAxB;AACAhuuB,MAAAA,IAAI,CAACr5K,UAAL,CAAgBw7H,MAAhB,GAAyB,IAAImlxB,QAAJ,CAAalu1B,QAAb,EAAuB,QAAvB,EAAiC401B,kBAAjC,CAAzB;AACA,YAAM7r0B,KAAK,GAAG,IAAIi70B,QAAJ,CAAahk2B,QAAb,CAAd;AACA+oB,MAAAA,KAAK,CAACx7E,UAAN,CAAiBknE,SAAjB,GAA6B,IAAIy50B,QAAJ,CAAalu1B,QAAb,EAAuB,WAAvB,EAAoC,KAAKyoE,YAAL,CAAkB,mBAAlB,EAAuCnjB,QAAvC,EAApC,CAA7B;AACAv8B,MAAAA,KAAK,CAACmK,QAAN,GAAiB,CACb0zF,IADa,CAAjB;AAGA,YAAM48uB,UAAU,GAAG,IAAI/oL,UAAJ,CAAez6qB,QAAf,CAAnB;AACAwj2B,MAAAA,UAAU,CAACj25B,UAAX,CAAsBw/C,CAAtB,GAA0B,IAAImh2B,QAAJ,CAAalu1B,QAAb,EAAuB,GAAvB,EAA4B,CAA5B,CAA1B;AACAwj2B,MAAAA,UAAU,CAACj25B,UAAX,CAAsBglI,CAAtB,GAA0B,IAAI27wB,QAAJ,CAAalu1B,QAAb,EAAuB,GAAvB,EAA4B,CAA5B,CAA1B;AACAwj2B,MAAAA,UAAU,CAACj25B,UAAX,CAAsBu6E,KAAtB,GAA8B,IAAIom0B,QAAJ,CAAalu1B,QAAb,EAAuB,OAAvB,EAAgCuk2B,QAAQ,CAACz80B,KAAzC,CAA9B;AACA070B,MAAAA,UAAU,CAACj25B,UAAX,CAAsBw7H,MAAtB,GAA+B,IAAImlxB,QAAJ,CAAalu1B,QAAb,EAAuB,QAAvB,EAAiCuk2B,QAAQ,CAACx7xB,MAA1C,CAA/B;AACAy6xB,MAAAA,UAAU,CAACtw0B,QAAX,GAAsB,CAClBnK,KADkB,CAAtB;AAGA,YAAM060B,aAAa,GAAGzj2B,QAAQ,CAACyr1B,YAAT,CAAsB8Y,QAAQ,CAACz80B,KAA/B,EAAsCy80B,QAAQ,CAACx7xB,MAA/C,CAAtB;AACA,YAAM26xB,UAAU,GAAGD,aAAa,CAACn70B,UAAd,CAAyB,IAAzB,CAAnB;AACAo70B,MAAAA,UAAU,CAACz0hB,SAAX,GAAuBulD,QAAvB;AACAgve,MAAAA,UAAU,CAAC90hB,MAAX,CAAkBg1hB,UAAlB;AACA,aAAOA,UAAU,CAACjyV,aAAX,CAAyBgyV,aAAzB,EAAwC,WAAxC,CAAP;AACH;;AACD,WAAOjve,QAAP;AACH;;AACD4ve,EAAAA,oBAAoB,CAACD,cAAD,EAAiB;AACjC,SAAKK,mBAAL,CAAyBzi3B,OAAzB,CAAkC0i3B,kBAAD,IAAsB;AACnD,UAAI,CAAC,KAAKh8xB,YAAL,CAAkBg8xB,kBAAlB,EAAsCjxvB,QAAtC,EAAD,IAAqD2wvB,cAAc,CAAC17xB,YAAf,CAA4Bg8xB,kBAA5B,EAAgDjxvB,QAAhD,EAAzD,EAAqH;AACjH,aAAK/qC,YAAL,CAAkBg8xB,kBAAlB,EAAsC,IAAtC,EAA4Cr4wB,QAA5C,CAAqD+3wB,cAAc,CAAC17xB,YAAf,CAA4Bg8xB,kBAA5B,EAAgDn/yB,QAAhD,EAArD;AACH;AACJ,KAJD;AAKH;;AACDg/yB,EAAAA,gBAAgB,CAACf,iBAAD,EAAoBhrnB,KAApB,EAA2B;AACvC,QAAIgrnB,iBAAiB,CAAC/vvB,QAAlB,EAAJ,EAAkC;AAC9B,YAAMkxvB,SAAS,GAAG,IAAIxW,QAAJ,CAAa,KAAKlu1B,QAAlB,EAA4B,OAA5B,EAAqCu4O,KAArC,CAAlB;AACA,aAAOmsnB,SAAS,CAAC9U,UAAV,CAAqB2T,iBAArB,EAAwCvyV,QAAxC,EAAP;AACH;;AACD,WAAOz4R,KAAP;AACH;;AACDlwQ,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAKgN,mBAAL,GAA2B,CACvB,eADuB,CAA3B;AAGA,SAAKhxe,KAAL,GAAa,EAAb;AACA,UAAM;AAAEA,MAAAA,KAAF;AAAUtgW,MAAAA;AAAV,QAAwB,IAA9B;AACAA,IAAAA,QAAQ,CAACnxC,OAAT,CAAkByxC,KAAD,IAAS;AACtB,UAAIA,KAAK,CAAC5lD,IAAN,KAAe,MAAnB,EAA2B;AACvB4lZ,QAAAA,KAAK,CAACnpZ,IAAN,CAAWmpD,KAAX;AACH;AACJ,KAJD;AAKH;;AA7EiC;;AAgFtC,MAAMmx0B,qBAAN,SAAoCV,eAApC,CAAoD;AAChDI,EAAAA,WAAW,CAAC11hB,GAAD,EAAMn2S,OAAN,EAAe;AACtB,UAAMos0B,kBAAkB,GAAG,KAAKV,gBAAL,OAA4B,mBAAvD;AACA,UAAM76W,WAAW,GAAGu7W,kBAAkB,GAAGps0B,OAAO,CAACyj0B,cAAR,CAAuBtthB,GAAvB,CAAH,GAAiC,IAAvE;;AACA,QAAIi2hB,kBAAkB,IAAI,CAACv7W,WAA3B,EAAwC;AACpC,aAAO,IAAP;AACH;;AACD,QAAI,CAAC,KAAK5gb,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAAD,IAAuC,CAAC,KAAK/qC,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAAxC,IAA8E,CAAC,KAAK/qC,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAA/E,IAAqH,CAAC,KAAK/qC,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAA1H,EAA8J;AAC1J,WAAK/qC,YAAL,CAAkB,IAAlB,EAAwB,IAAxB,EAA8B2jB,QAA9B,CAAuC,CAAvC;AACA,WAAK3jB,YAAL,CAAkB,IAAlB,EAAwB,IAAxB,EAA8B2jB,QAA9B,CAAuC,CAAvC;AACA,WAAK3jB,YAAL,CAAkB,IAAlB,EAAwB,IAAxB,EAA8B2jB,QAA9B,CAAuC,CAAvC;AACA,WAAK3jB,YAAL,CAAkB,IAAlB,EAAwB,IAAxB,EAA8B2jB,QAA9B,CAAuC,CAAvC;AACH;;AACD,UAAMkuP,EAAE,GAAGsqhB,kBAAkB,GAAGv7W,WAAW,CAACt8f,CAAZ,GAAgBs8f,WAAW,CAACvhe,KAAZ,GAAoB,KAAK2gD,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAvC,GAA6E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAA1G;AACA,UAAMz0gB,EAAE,GAAGqqhB,kBAAkB,GAAGv7W,WAAW,CAAC92a,CAAZ,GAAgB82a,WAAW,CAACtgb,MAAZ,GAAqB,KAAKN,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAxC,GAA8E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAA3G;AACA,UAAMx0gB,EAAE,GAAGoqhB,kBAAkB,GAAGv7W,WAAW,CAACt8f,CAAZ,GAAgBs8f,WAAW,CAACvhe,KAAZ,GAAoB,KAAK2gD,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAvC,GAA6E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAA1G;AACA,UAAMv0gB,EAAE,GAAGmqhB,kBAAkB,GAAGv7W,WAAW,CAAC92a,CAAZ,GAAgB82a,WAAW,CAACtgb,MAAZ,GAAqB,KAAKN,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAxC,GAA8E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAA3G;;AACA,QAAI10gB,EAAE,KAAKE,EAAP,IAAaD,EAAE,KAAKE,EAAxB,EAA4B;AACxB,aAAO,IAAP;AACH;;AACD,WAAO9L,GAAG,CAACmlD,oBAAJ,CAAyBx5C,EAAzB,EAA6BC,EAA7B,EAAiCC,EAAjC,EAAqCC,EAArC,CAAP;AACH;;AACDpyW,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,gBAAZ;AACA,SAAK423B,mBAAL,CAAyBn63B,IAAzB,CAA8B,IAA9B,EAAoC,IAApC,EAA0C,IAA1C,EAAgD,IAAhD;AACH;;AA1B+C;;AA6BpD,MAAMw63B,qBAAN,SAAoCZ,eAApC,CAAoD;AAChDI,EAAAA,WAAW,CAAC11hB,GAAD,EAAMn2S,OAAN,EAAe;AACtB,UAAMos0B,kBAAkB,GAAG,KAAKV,gBAAL,OAA4B,mBAAvD;AACA,UAAM76W,WAAW,GAAG7wd,OAAO,CAACyj0B,cAAR,CAAuBtthB,GAAvB,CAApB;;AACA,QAAIi2hB,kBAAkB,IAAI,CAACv7W,WAA3B,EAAwC;AACpC,aAAO,IAAP;AACH;;AACD,QAAI,CAAC,KAAK5gb,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAAL,EAAyC;AACrC,WAAK/qC,YAAL,CAAkB,IAAlB,EAAwB,IAAxB,EAA8B2jB,QAA9B,CAAuC,KAAvC;AACH;;AACD,QAAI,CAAC,KAAK3jB,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAAL,EAAyC;AACrC,WAAK/qC,YAAL,CAAkB,IAAlB,EAAwB,IAAxB,EAA8B2jB,QAA9B,CAAuC,KAAvC;AACH;;AACD,QAAI,CAAC,KAAK3jB,YAAL,CAAkB,GAAlB,EAAuB+qC,QAAvB,EAAL,EAAwC;AACpC,WAAK/qC,YAAL,CAAkB,GAAlB,EAAuB,IAAvB,EAA6B2jB,QAA7B,CAAsC,KAAtC;AACH;;AACD,UAAMqmO,EAAE,GAAGmyiB,kBAAkB,GAAGv7W,WAAW,CAACt8f,CAAZ,GAAgBs8f,WAAW,CAACvhe,KAAZ,GAAoB,KAAK2gD,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAvC,GAA6E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAA1G;AACA,UAAMt8hB,EAAE,GAAGkyiB,kBAAkB,GAAGv7W,WAAW,CAAC92a,CAAZ,GAAgB82a,WAAW,CAACtgb,MAAZ,GAAqB,KAAKN,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAxC,GAA8E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAA3G;AACA,QAAI8V,EAAE,GAAGryiB,EAAT;AACA,QAAIs8N,EAAE,GAAGr8N,EAAT;;AACA,QAAI,KAAKjqP,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAAJ,EAAwC;AACpCsxvB,MAAAA,EAAE,GAAGF,kBAAkB,GAAGv7W,WAAW,CAACt8f,CAAZ,GAAgBs8f,WAAW,CAACvhe,KAAZ,GAAoB,KAAK2gD,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAvC,GAA6E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAApG;AACH;;AACD,QAAI,KAAKvmxB,YAAL,CAAkB,IAAlB,EAAwB+qC,QAAxB,EAAJ,EAAwC;AACpCu7a,MAAAA,EAAE,GAAG61U,kBAAkB,GAAGv7W,WAAW,CAAC92a,CAAZ,GAAgB82a,WAAW,CAACtgb,MAAZ,GAAqB,KAAKN,YAAL,CAAkB,IAAlB,EAAwB+lxB,SAAxB,EAAxC,GAA8E,KAAK/lxB,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,CAAkC,GAAlC,CAArG;AACH;;AACD,UAAMzw0B,CAAC,GAAGqm1B,kBAAkB,GAAG,CAACv7W,WAAW,CAACvhe,KAAZ,GAAoBuhe,WAAW,CAACtgb,MAAjC,IAA2C,CAA3C,GAA+C,KAAKN,YAAL,CAAkB,GAAlB,EAAuB+lxB,SAAvB,EAAlD,GAAuF,KAAK/lxB,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,EAAnH;AACA,UAAMn2V,EAAE,GAAG,KAAKpwb,YAAL,CAAkB,IAAlB,EAAwBumxB,SAAxB,EAAX;AACA,WAAOrghB,GAAG,CAAC+iM,oBAAJ,CAAyBozV,EAAzB,EAA6B/1U,EAA7B,EAAiCl2B,EAAjC,EAAqCpmM,EAArC,EAAyCC,EAAzC,EAA6Cn0S,CAA7C,CAAP;AACH;;AACDl2C,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,gBAAZ;AACA,SAAK423B,mBAAL,CAAyBn63B,IAAzB,CAA8B,IAA9B,EAAoC,IAApC,EAA0C,GAA1C,EAA+C,IAA/C,EAAqD,IAArD,EAA2D,IAA3D;AACH;;AAlC+C;;AAqCpD,MAAM063B,WAAN,SAA0B35xB,OAA1B,CAAkC;AAC9B/iG,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,MAAZ;AACA,UAAMozB,MAAM,GAAG9sB,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYD,IAAI,CAACoS,GAAL,CAAS,CAAT,EAAY,KAAKmiF,YAAL,CAAkB,QAAlB,EAA4B+lxB,SAA5B,EAAZ,CAAZ,CAAf;AACA,UAAMwW,WAAW,GAAG,KAAKznW,QAAL,CAAc,cAAd,CAApB;AACA,QAAI0nW,SAAS,GAAG,KAAK1nW,QAAL,CAAc,YAAd,EAA4B,IAA5B,CAAhB;;AACA,QAAI0nW,SAAS,CAAC9W,SAAV,OAA0B,EAA9B,EAAkC;AAC9B8W,MAAAA,SAAS,CAAC74wB,QAAV,CAAmB,MAAnB;AACH;;AACD,QAAI44wB,WAAW,CAACxxvB,QAAZ,EAAJ,EAA4B;AACxByxvB,MAAAA,SAAS,GAAGA,SAAS,CAACrV,UAAV,CAAqBoV,WAArB,CAAZ;AACH;;AACD,SAAKhk2B,MAAL,GAAcA,MAAd;AACA,SAAKu3O,KAAL,GAAa0snB,SAAS,CAACj0V,QAAV,EAAb;AACH;;AAf6B;;AAkBlC,MAAMk0V,cAAN,SAA6B95xB,OAA7B,CAAqC;AACjCj3D,EAAAA,WAAW,GAAG;AACV,UAAMgx1B,aAAa,GAAG,KAAK18xB,YAAL,CAAkB,eAAlB,EAAmC0lxB,SAAnC,EAAtB;AACA,UAAMxy0B,aAAa,GAAG,KAAK8sD,YAAL,CAAkB,eAAlB,EAAmC0lxB,SAAnC,EAAtB;;AACA,QAAIgX,aAAa,KAAK,KAAtB,EAA6B;AACzB,aAAO,KAAK7/0B,MAAL,CAAYi4e,QAAZ,CAAqB5hf,aAArB,EAAoC,IAApC,CAAP;AACH;;AACD,WAAO,KAAK2J,MAAL,CAAYmjD,YAAZ,CAAyB9sD,aAAzB,EAAwC,IAAxC,CAAP;AACH;;AACDyp1B,EAAAA,SAAS,GAAG;AACR,UAAM;AAAEC,MAAAA;AAAF,QAAoB,IAA1B;AACA,UAAM;AAAE162B,MAAAA,QAAF;AAAaa,MAAAA,IAAb;AAAoB8nU,MAAAA;AAApB,QAA4B,KAAKgyiB,WAAL,EAAlC,CAFQ,CAGR;;AACA,QAAIn40B,QAAQ,GAAG3hC,IAAI,CAACgj2B,SAAL,KAAmB,CAACl7hB,EAAE,CAACk7hB,SAAH,KAAiBhj2B,IAAI,CAACgj2B,SAAL,EAAlB,IAAsC7j2B,QAAxE;;AACA,QAAI062B,YAAY,KAAK,GAArB,EAA0B;AACtBl40B,MAAAA,QAAQ,IAAI,GAAZ,CAAgB;AAAhB;AAEH;;AACD,WAAO,GAAGtyC,MAAH,CAAUsyC,QAAV,EAAoBtyC,MAApB,CAA2Bwq3B,YAA3B,CAAP;AACH;;AACDnp6B,EAAAA,MAAM,CAAC6/H,KAAD,EAAQ;AACV,UAAM;AAAEz2C,MAAAA;AAAF,QAAc,IAApB;AACA,UAAMj0B,IAAI,GAAG,KAAK8iB,WAAL,EAAb,CAFU,CAGV;;AACA,QAAI,CAAC,KAAK80C,YAAV,EAAwB;AACpB,WAAKA,YAAL,GAAoB53D,IAAI,CAAC881B,SAAL,EAApB;AACA,WAAKkX,YAAL,GAAoBh02B,IAAI,CAAC091B,QAAL,EAApB;AACH,KAPS,CAQV;;;AACA,QAAI,KAAK7rwB,QAAL,GAAgB,KAAKqixB,WAAzB,EAAsC;AAClC,YAAM/0iB,IAAI,GAAG,KAAK/nP,YAAL,CAAkB,MAAlB,EAA0B0lxB,SAA1B,CAAoC,QAApC,CAAb,CADkC,CAElC;;AACA,UAAI,KAAK1lxB,YAAL,CAAkB,aAAlB,EAAiC0lxB,SAAjC,OAAiD,YAAjD,IAAiE,KAAK1lxB,YAAL,CAAkB,WAAlB,EAA+B0lxB,SAA/B,OAA+C,YAApH,EAAkI;AAC9H,aAAKjrwB,QAAL,GAAgB,CAAhB;AACH,OAFD,MAEO,IAAIstO,IAAI,KAAK,QAAT,IAAqB,CAAC,KAAKg1iB,MAA/B,EAAuC;AAC1C,aAAKA,MAAL,GAAc,IAAd;;AACA,YAAIlg1B,MAAM,IAAIj0B,IAAd,EAAoB;AAChBi0B,UAAAA,MAAM,CAACmy0B,eAAP,GAAyB,IAAzB;AACAny0B,UAAAA,MAAM,CAACoy0B,oBAAP,GAA8Brm2B,IAAI,CAAC881B,SAAL,EAA9B;AACH;AACJ,OANM,MAMA,IAAI39hB,IAAI,KAAK,QAAT,IAAqB,CAAC,KAAKmiX,OAA/B,EAAwC;AAC3C,aAAKA,OAAL,GAAe,IAAf;;AACA,YAAIrtpB,MAAM,IAAIj0B,IAAd,EAAoB;AAChBA,UAAAA,IAAI,CAAC+6F,QAAL,CAAc9mE,MAAM,CAACmy0B,eAAP,GAAyBny0B,MAAM,CAACoy0B,oBAAhC,GAAuD,KAAKzuyB,YAA1E;AACH;;AACD,eAAO,IAAP;AACH;;AACD,aAAO,KAAP;AACH;;AACD,SAAKi6B,QAAL,IAAiBnnB,KAAjB,CA7BU,CA8BV;;AACA,QAAIgkrB,OAAO,GAAG,KAAd;;AACA,QAAI,KAAKzuO,KAAL,GAAa,KAAKpub,QAAtB,EAAgC;AAC5B,UAAI/1D,QAAQ,GAAG,KAAKi40B,SAAL,EAAf,CAAgC;AAAhC;AAEA,YAAMK,QAAQ,GAAG,KAAKh9xB,YAAL,CAAkB,MAAlB,CAAjB;;AACA,UAAIg9xB,QAAQ,CAACjyvB,QAAT,EAAJ,EAAyB;AACrB;AACA,cAAM5lI,IAAI,GAAG633B,QAAQ,CAACtX,SAAT,EAAb;AACAhh0B,QAAAA,QAAQ,GAAG,GAAGtyC,MAAH,CAAUjN,IAAV,EAAgB,GAAhB,EAAqBiN,MAArB,CAA4BsyC,QAA5B,EAAsC,GAAtC,CAAX;AACH;;AACD97B,MAAAA,IAAI,CAAC+6F,QAAL,CAAcj/D,QAAd;AACA4ytB,MAAAA,OAAO,GAAG,IAAV;AACH;;AACD,WAAOA,OAAP;AACH;;AACDulH,EAAAA,WAAW,GAAG;AACV,UAAM;AAAEtl2B,MAAAA,QAAF;AAAa4K,MAAAA;AAAb,QAAyB,IAA/B;AACA,QAAIjgB,QAAQ,GAAG,CAAC,KAAKu4F,QAAL,GAAgB,KAAKoub,KAAtB,KAAgC,KAAKi0V,WAAL,GAAmB,KAAKj0V,KAAxD,CAAf;AACA,QAAI9lhB,IAAJ;AACA,QAAI8nU,EAAJ;;AACA,QAAI1oT,MAAM,CAAC4oG,QAAP,EAAJ,EAAuB;AACnB,YAAM9tG,CAAC,GAAG/a,QAAQ,IAAIigB,MAAM,CAAC06C,QAAP,GAAkBloH,MAAlB,GAA2B,CAA/B,CAAlB;AACA,YAAM28kB,EAAE,GAAG7liB,IAAI,CAACkY,KAAL,CAAWsZ,CAAX,CAAX;AACA,YAAMk0U,EAAE,GAAG1lW,IAAI,CAACi5F,IAAL,CAAUznE,CAAV,CAAX;AACA,UAAIzqE,KAAJ;AACAA,MAAAA,KAAK,GAAG2vE,MAAM,CAAC06C,QAAP,GAAkBy0d,EAAlB,CAAR;AACAvuhB,MAAAA,IAAI,GAAG,IAAI0i2B,QAAJ,CAAalu1B,QAAb,EAAuB,MAAvB,EAA+B/kE,KAAK,GAAG85D,UAAU,CAAC95D,KAAD,CAAb,GAAuB,CAA3D,CAAP;AACAA,MAAAA,KAAK,GAAG2vE,MAAM,CAAC06C,QAAP,GAAkBs0R,EAAlB,CAAR;AACAtmB,MAAAA,EAAE,GAAG,IAAI46hB,QAAJ,CAAalu1B,QAAb,EAAuB,IAAvB,EAA6B/kE,KAAK,GAAG85D,UAAU,CAAC95D,KAAD,CAAb,GAAuB,CAAzD,CAAL;AACA0vD,MAAAA,QAAQ,GAAG,CAAC+a,CAAC,GAAGq0gB,EAAL,KAAYngM,EAAE,GAAGmgM,EAAjB,CAAX;AACH,KAVD,MAUO;AACHvuhB,MAAAA,IAAI,GAAG,KAAKA,IAAZ;AACA8nU,MAAAA,EAAE,GAAG,KAAKA,EAAV;AACH;;AACD,WAAO;AACH3oU,MAAAA,QADG;AAEHa,MAAAA,IAFG;AAGH8nU,MAAAA;AAHG,KAAP;AAKH;;AACDjrV,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,SAAZ;AACA,SAAKs1G,QAAL,GAAgB,CAAhB;AACA,SAAKmixB,YAAL,GAAoB,EAApB;AACA,SAAK1yL,OAAL,GAAe,KAAf;AACA,SAAK6yL,MAAL,GAAc,KAAd;AACAxl2B,IAAAA,QAAQ,CAAC6njB,MAAT,CAAgBmsM,UAAhB,CAA2B3pxB,IAA3B,CAAgC,IAAhC;AACA,SAAKiniB,KAAL,GAAa,KAAK7oc,YAAL,CAAkB,OAAlB,EAA2BynR,eAA3B,EAAb;AACA,SAAKq1gB,WAAL,GAAmB,KAAKj0V,KAAL,GAAa,KAAK7oc,YAAL,CAAkB,KAAlB,EAAyBynR,eAAzB,EAAhC;AACA,SAAK1kW,IAAL,GAAY,KAAKi9E,YAAL,CAAkB,MAAlB,CAAZ;AACA,SAAK6qP,EAAL,GAAU,KAAK7qP,YAAL,CAAkB,IAAlB,CAAV;AACA,SAAK79D,MAAL,GAAc,IAAIsj1B,QAAJ,CAAalu1B,QAAb,EAAuB,QAAvB,EAAiC,IAAjC,CAAd;AACA,UAAM0l2B,UAAU,GAAG,KAAKj9xB,YAAL,CAAkB,QAAlB,CAAnB;;AACA,QAAIi9xB,UAAU,CAAClyvB,QAAX,EAAJ,EAA2B;AACvB,WAAK5oG,MAAL,CAAYwhF,QAAZ,CAAqBs5wB,UAAU,CAACvX,SAAX,GAAuBrn5B,KAAvB,CAA6B,GAA7B,CAArB;AACH;AACJ;;AA5GgC;;AA+GrC,MAAM6+5B,mBAAN,SAAkCT,cAAlC,CAAiD;AAC7CE,EAAAA,SAAS,GAAG;AACR,UAAM;AAAEz62B,MAAAA,QAAF;AAAaa,MAAAA,IAAb;AAAoB8nU,MAAAA;AAApB,QAA4B,KAAKgyiB,WAAL,EAAlC;AACA,UAAMM,SAAS,GAAG,IAAIza,qCAAJ,CAAa3/1B,IAAI,CAACwlhB,QAAL,EAAb,CAAlB;AACA,UAAM60V,OAAO,GAAG,IAAI1a,qCAAJ,CAAa73hB,EAAE,CAAC09M,QAAH,EAAb,CAAhB;;AACA,QAAI40V,SAAS,CAAChs2B,EAAV,IAAgBis2B,OAAO,CAACjs2B,EAA5B,EAAgC;AAC5B;AACA,YAAM2kB,CAAC,GAAGqn1B,SAAS,CAACrn1B,CAAV,GAAc,CAACsn1B,OAAO,CAACtn1B,CAAR,GAAYqn1B,SAAS,CAACrn1B,CAAvB,IAA4B5zB,QAApD;AACA,YAAM08C,CAAC,GAAGu+zB,SAAS,CAACv+zB,CAAV,GAAc,CAACw+zB,OAAO,CAACx+zB,CAAR,GAAYu+zB,SAAS,CAACv+zB,CAAvB,IAA4B18C,QAApD;AACA,YAAMF,CAAC,GAAGm72B,SAAS,CAACn72B,CAAV,GAAc,CAACo72B,OAAO,CAACp72B,CAAR,GAAYm72B,SAAS,CAACn72B,CAAvB,IAA4BE,QAApD,CAJ4B,CAK5B;;AACA,aAAO,OAAO9P,MAAP,CAAc3G,IAAI,CAACkY,KAAL,CAAWmyB,CAAX,CAAd,EAA6B,IAA7B,EAAmC1jC,MAAnC,CAA0C3G,IAAI,CAACkY,KAAL,CAAWi7C,CAAX,CAA1C,EAAyD,IAAzD,EAA+DxsD,MAA/D,CAAsE3G,IAAI,CAACkY,KAAL,CAAW3B,CAAX,CAAtE,EAAqF,GAArF,CAAP;AACH;;AACD,WAAO,KAAKg+E,YAAL,CAAkB,MAAlB,EAA0Buoc,QAA1B,EAAP;AACH;;AACD3oiB,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,cAAZ;AACH;;AAlB4C;;AAqBjD,MAAMk43B,uBAAN,SAAsCZ,cAAtC,CAAqD;AACjDE,EAAAA,SAAS,GAAG;AACR,UAAM;AAAEz62B,MAAAA,QAAF;AAAaa,MAAAA,IAAI,EAAEu62B,KAAnB;AAA2BzyiB,MAAAA,EAAE,EAAE0yiB;AAA/B,QAAwC,KAAKV,WAAL,EAA9C,CADQ,CAER;;AACA,UAAMW,aAAa,GAAGha,SAAS,CAAC8Z,KAAK,CAAC5X,SAAN,EAAD,CAA/B;AACA,UAAM5tT,WAAW,GAAG0rT,SAAS,CAAC+Z,GAAG,CAAC7X,SAAJ,EAAD,CAA7B;AACA,UAAMhh0B,QAAQ,GAAG840B,aAAa,CAAC9l6B,GAAd,CAAkB,CAACqrD,IAAD,EAAOvvD,CAAP,KAAW;AAC1C,YAAMq3X,EAAE,GAAGitO,WAAW,CAACtkmB,CAAD,CAAtB;AACA,aAAOuvD,IAAI,GAAG,CAAC8nU,EAAE,GAAG9nU,IAAN,IAAcb,QAA5B;AACH,KAHgB,EAGdr9C,IAHc,CAGT,GAHS,CAAjB;AAIA,WAAO6/E,QAAP;AACH;;AACD9kD,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,kBAAZ;AACH;;AAfgD;;AAkBrD,MAAMs43B,eAAN,SAA8B96xB,OAA9B,CAAsC;AAClC/iG,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,WAAZ;AACA,SAAKutjB,MAAL,GAAc,KAAK1yd,YAAL,CAAkB,QAAlB,EAA4B+lxB,SAA5B,EAAd;AACA,SAAKpzT,OAAL,GAAe,KAAK3yd,YAAL,CAAkB,SAAlB,EAA6B+lxB,SAA7B,EAAf;AACA,SAAKv5T,UAAL,GAAkB,KAAKxsd,YAAL,CAAkB,cAAlB,EAAkC+lxB,SAAlC,EAAlB;AACH;;AAPiC;;AAUtC,MAAM2X,YAAN,SAA2BrG,WAA3B,CAAuC;AACnCz33B,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,OAAZ;AACA,SAAK4v3B,SAAL,GAAiB,KAAK/0xB,YAAL,CAAkB,aAAlB,EAAiC+lxB,SAAjC,EAAjB;AACA,SAAKr5T,OAAL,GAAe,KAAK1sd,YAAL,CAAkB,SAAlB,EAA6B0lxB,SAA7B,EAAf;AACA,SAAKwO,UAAL,GAAkB,KAAKl0xB,YAAL,CAAkB,aAAlB,EAAiC0lxB,SAAjC,EAAlB;AACH;;AAPkC;;AAUvC,MAAMiY,mBAAN,SAAkCD,YAAlC,CAA+C;AAC3C993B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,eAAZ;AACA,SAAK4v3B,SAAL,GAAiB,CAAjB;AACH;;AAL0C;;AAQ/C,MAAM6I,WAAN,SAA0Bj7xB,OAA1B,CAAkC;AAC9BsjQ,EAAAA,MAAM,GAAG,CACT;AACC;;AACDrmW,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,MAAZ;AACA,SAAK6u3B,QAAL,GAAgB,KAAhB;AACA,SAAKI,MAAL,GAAc,EAAd;AACA,SAAKD,YAAL,GAAoB,EAApB;AACA,SAAKU,KAAL,GAAa,KAAb;AACA,SAAKE,SAAL,GAAiB,KAAK/0xB,YAAL,CAAkB,aAAlB,EAAiC+lxB,SAAjC,EAAjB;AACA,UAAM;AAAEtzM,MAAAA;AAAF,QAAmBl7oB,QAAzB;AACA,UAAM;AAAEkzB,MAAAA;AAAF,QAAgB,IAAtB;;AACA,SAAK,MAAMM,KAAX,IAAoBN,QAApB,EAA6B;AACzB,UAAIM,KAAK,YAAY0y0B,eAArB,EAAsC;AAClC,aAAK9I,QAAL,GAAgB5p0B,KAAhB;AACA,cAAM8y0B,eAAe,GAAG9y0B,KAAK,CAAC+pe,QAAN,CAAe,aAAf,CAAxB;;AACA,YAAI+oW,eAAe,CAAC9yvB,QAAhB,EAAJ,EAAgC;AAC5B0niB,UAAAA,WAAW,CAACorN,eAAe,CAACnY,SAAhB,EAAD,CAAX,GAA2C,IAA3C;AACH;AACJ,OAND,MAMO,IAAI36zB,KAAK,YAAY4y0B,mBAArB,EAA0C;AAC7C,aAAKtJ,YAAL,GAAoBtp0B,KAApB;AACH,OAFM,MAEA,IAAIA,KAAK,YAAY2y0B,YAArB,EAAmC;AACtC,YAAI3y0B,KAAK,CAACmp0B,UAAV,EAAsB;AAClB,eAAKW,KAAL,GAAa,IAAb;AACA,eAAKb,QAAL,GAAgB,IAAhB;AACA,gBAAM8J,WAAW,GAAG,KAAK3J,YAAL,CAAkBpp0B,KAAK,CAAC2hgB,OAAxB,CAApB;;AACA,cAAI,OAAOoxU,WAAP,KAAuB,WAA3B,EAAwC;AACpC,iBAAK3J,YAAL,CAAkBpp0B,KAAK,CAAC2hgB,OAAxB,IAAmC;AAC/B,eAAC3hgB,KAAK,CAACmp0B,UAAP,GAAoBnp0B;AADW,aAAnC;AAGH,WAJD,MAIO;AACH+y0B,YAAAA,WAAW,CAAC/y0B,KAAK,CAACmp0B,UAAP,CAAX,GAAgCnp0B,KAAhC;AACH;AACJ,SAXD,MAWO;AACH,eAAKqp0B,MAAL,CAAYrp0B,KAAK,CAAC2hgB,OAAlB,IAA6B3hgB,KAA7B;AACH;AACJ;AACJ;AACJ;;AAxC6B;;AA2ClC,MAAMgz0B,WAAN,SAA0B5K,WAA1B,CAAsC;AAClCjE,EAAAA,OAAO,GAAG;AACN,UAAMn/zB,OAAO,GAAG,KAAKg3zB,gBAAL,GAAwB5h0B,aAAxB,EAAhB;;AACA,QAAI4K,OAAJ,EAAa;AACT,YAAMuyC,UAAU,GAAGvyC,OAAO,CAACtF,QAAR,CAAiB,CAAjB,CAAnB;;AACA,UAAI63C,UAAJ,EAAgB;AACZ,eAAOA,UAAU,CAAC4sxB,OAAX,EAAP;AACH;AACJ;;AACD,WAAO,EAAP;AACH;;AACDtv3B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,MAAZ;AACH;;AAdiC;;AAiBtC,MAAM643B,QAAN,SAAuB7K,WAAvB,CAAmC;AAC/BjE,EAAAA,OAAO,GAAG;AACN,WAAO,KAAKv91B,IAAZ;AACH;;AACDm81B,EAAAA,cAAc,CAAC5nhB,GAAD,EAAM;AAChB,QAAI,KAAK+3hB,OAAT,EAAkB;AACd;AACA,YAAMnQ,cAAN,CAAqB5nhB,GAArB;AACA,YAAM;AAAE3uU,QAAAA,QAAF;AAAajT,QAAAA,CAAb;AAAiBwlF,QAAAA;AAAjB,UAAwB,IAA9B;AACA,YAAM;AAAEqvmB,QAAAA;AAAF,UAAa5hrB,QAAQ,CAAC6njB,MAA5B;AACA,YAAMtgP,QAAQ,GAAG,IAAI2mhB,QAAJ,CAAalu1B,QAAb,EAAuB,UAAvB,EAAmCo41B,IAAI,CAACt13B,KAAL,CAAWk9B,QAAQ,CAAC2uU,GAAT,CAAazmB,IAAxB,EAA8Bqf,QAAjE,CAAjB,CALc,CAMd;;AACA,UAAIq6W,KAAK,CAACivK,SAAN,EAAJ,EAAuB;AACnBjvK,QAAAA,KAAK,CAACwvK,gBAAN,CAAuB,IAAvB,EAA6B,IAAIqH,WAAJ,CAAgB1r2B,CAAhB,EAAmBwlF,CAAC,GAAGg1P,QAAQ,CAACynhB,SAAT,CAAmB,GAAnB,CAAvB,EAAgDji2B,CAAC,GAAG,KAAK+4V,WAAL,CAAiBnX,GAAjB,CAApD,EAA2Ep8P,CAA3E,CAA7B;AACH;AACJ,KAVD,MAUO,IAAI,KAAKr/C,QAAL,CAAc91F,MAAd,GAAuB,CAA3B,EAA8B;AACjC;AACA,YAAMiqG,CAAC,GAAG,IAAI28zB,QAAJ,CAAa,KAAKhk2B,QAAlB,CAAV;AACAqnC,MAAAA,CAAC,CAACnU,QAAF,GAAa,KAAKA,QAAlB;AACAmU,MAAAA,CAAC,CAAC/hB,MAAF,GAAW,IAAX;AACA+hB,MAAAA,CAAC,CAACqnS,MAAF,CAASC,GAAT;AACH;AACJ;;AACD4tD,EAAAA,OAAO,GAAG;AACN,UAAM;AAAEn5Y,MAAAA;AAAF,QAAc,KAAK4c,QAAzB;;AACA,QAAI5c,MAAJ,EAAY;AACRA,MAAAA,MAAM,CAAC0mE,IAAP,CAAY,KAAK0lyB,gBAAL,GAAwBrB,SAAxB,EAAZ;AACH;AACJ;;AACD5pwB,EAAAA,WAAW,GAAG;AACV,UAAMoqP,GAAG,GAAG,KAAK3uU,QAAL,CAAc2uU,GAA1B;AACAA,IAAAA,GAAG,CAAC0I,MAAJ,CAAWvuQ,KAAX,CAAiBiyL,MAAjB,GAA0B,SAA1B;AACH;;AACD1yR,EAAAA,WAAW,CAAC23B,QAAD,EAAW2m2B,KAAX,EAAkBnP,gBAAlB,EAAmC;AAC1C,UAAMx31B,QAAN,EAAgB2m2B,KAAhB,EAAuBnP,gBAAvB;AACA,SAAK5p3B,IAAL,GAAY,GAAZ;AACA,UAAM;AAAE66G,MAAAA;AAAF,QAAkBk+wB,KAAxB;AACA,UAAM57xB,UAAU,GAAG0d,UAAU,CAAC,CAAD,CAA7B;AACA,UAAMi+wB,OAAO,GAAGj+wB,UAAU,CAACrrJ,MAAX,GAAoB,CAApB,IAAyBq2E,KAAK,CAACjoB,IAAN,CAAWi9F,UAAX,EAAuB33D,KAAvB,CAA8Bl8E,IAAD,IAAQA,IAAI,CAACi8H,QAAL,KAAkB,CAAvD,CAAzC;AAEA,SAAK61xB,OAAL,GAAeA,OAAf;AACA,SAAKts2B,IAAL,GAAYss2B,OAAO,GAAG,KAAK3J,eAAL,CAAqBhyxB,UAArB,CAAH,GAAsC,EAAzD;AACH;;AA1C8B;;AA6CnC,MAAM67xB,eAAN,SAA8BhL,WAA9B,CAA0C;AACtCjE,EAAAA,OAAO,GAAG;AACN,WAAO,KAAKv91B,IAAZ;AACH;;AACDt3D,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAM;AAAEk4hB,MAAAA;AAAF,QAAiB,IAAvB;;AACA,QAAIl4hB,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAAC6R,SAAJ;AACH;;AACDqmhB,IAAAA,SAAS,CAAC9k3B,OAAV,CAAmBqjH,KAAD,IAAS;AACvB,UAAI;AAAEx3H,QAAAA,IAAF;AAASu9U,QAAAA;AAAT,UAAqB/lN,KAAzB;;AACA,cAAOx3H,IAAP;AACI,aAAK+w3B,UAAU,CAACuB,OAAhB;AACI,cAAIvxhB,GAAJ,EAAS;AACLA,YAAAA,GAAG,CAAC4M,MAAJ,CAAWpwB,MAAM,CAAC,CAAD,CAAjB,EAAsBA,MAAM,CAAC,CAAD,CAA5B;AACH;;AACD;;AACJ,aAAKwziB,UAAU,CAACqB,OAAhB;AACI,cAAIrxhB,GAAJ,EAAS;AACLA,YAAAA,GAAG,CAAC2M,MAAJ,CAAWnwB,MAAM,CAAC,CAAD,CAAjB,EAAsBA,MAAM,CAAC,CAAD,CAA5B;AACH;;AACD;;AACJ,aAAKwziB,UAAU,CAACS,QAAhB;AACI,cAAIzwhB,GAAJ,EAAS;AACLA,YAAAA,GAAG,CAACiZ,aAAJ,CAAkBz8B,MAAM,CAAC,CAAD,CAAxB,EAA6BA,MAAM,CAAC,CAAD,CAAnC,EAAwCA,MAAM,CAAC,CAAD,CAA9C,EAAmDA,MAAM,CAAC,CAAD,CAAzD,EAA8DA,MAAM,CAAC,CAAD,CAApE,EAAyEA,MAAM,CAAC,CAAD,CAA/E;AACH;;AACD;;AACJ,aAAKwziB,UAAU,CAACW,OAAhB;AACI,cAAI3whB,GAAJ,EAAS;AACLA,YAAAA,GAAG,CAACkP,gBAAJ,CAAqB1yB,MAAM,CAAC,CAAD,CAA3B,EAAgCA,MAAM,CAAC,CAAD,CAAtC,EAA2CA,MAAM,CAAC,CAAD,CAAjD,EAAsDA,MAAM,CAAC,CAAD,CAA5D;AACH;;AACD;;AACJ,aAAKwziB,UAAU,CAACiC,GAAhB;AACI;AACI,kBAAM,CAACnuiB,EAAD,EAAKC,EAAL,EAASgpB,EAAT,EAAaC,EAAb,EAAiB9C,KAAjB,EAAwBiuhB,MAAxB,EAAgCC,GAAhC,EAAqC/3X,EAArC,IAA2C7jL,MAAjD;AACA,kBAAM5sS,CAAC,GAAGm9T,EAAE,GAAGC,EAAL,GAAUD,EAAV,GAAeC,EAAzB;AACA,kBAAMs1L,MAAM,GAAGv1L,EAAE,GAAGC,EAAL,GAAU,CAAV,GAAcD,EAAE,GAAGC,EAAlC;AACA,kBAAMi3gB,MAAM,GAAGl3gB,EAAE,GAAGC,EAAL,GAAUA,EAAE,GAAGD,EAAf,GAAoB,CAAnC;;AACA,gBAAI/M,GAAJ,EAAS;AACLA,cAAAA,GAAG,CAAC1oP,SAAJ,CAAcwsO,EAAd,EAAkBC,EAAlB;AACAic,cAAAA,GAAG,CAAC7nB,MAAJ,CAAWigjB,GAAX;AACAp4hB,cAAAA,GAAG,CAAC59Q,KAAJ,CAAUkgd,MAAV,EAAkB2hV,MAAlB;AACAjkhB,cAAAA,GAAG,CAACk1B,GAAJ,CAAQ,CAAR,EAAW,CAAX,EAActlV,CAAd,EAAiBs6T,KAAjB,EAAwBA,KAAK,GAAGiuhB,MAAhC,EAAwC923B,OAAO,CAAC,IAAIg/f,EAAL,CAA/C;AACArgK,cAAAA,GAAG,CAAC59Q,KAAJ,CAAU,IAAIkgd,MAAd,EAAsB,IAAI2hV,MAA1B;AACAjkhB,cAAAA,GAAG,CAAC7nB,MAAJ,CAAW,CAACigjB,GAAZ;AACAp4hB,cAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAACwsO,EAAf,EAAmB,CAACC,EAApB;AACH;;AACD;AACH;;AACL,aAAKisiB,UAAU,CAACkC,UAAhB;AACI,cAAIlyhB,GAAJ,EAAS;AACLA,YAAAA,GAAG,CAAC6M,SAAJ;AACH;;AACD;AA1CR;AA4CH,KA9CD;AA+CH;;AACD+6gB,EAAAA,cAAc,CAAC5nhB,GAAD,EAAM;AAChB,SAAKq4hB,WAAL,CAAiBr4hB,GAAjB;AACAA,IAAAA,GAAG,CAAChyP,IAAJ;AACA,UAAMsqxB,cAAc,GAAG,KAAK3h1B,MAAL,CAAYi4e,QAAZ,CAAqB,iBAArB,EAAwC4wV,SAAxC,EAAvB;AACA,UAAM5mhB,QAAQ,GAAG,KAAK4lL,WAAL,EAAjB;AACA,UAAM;AAAE+5W,MAAAA;AAAF,QAAiB,IAAvB;AACA,UAAM12iB,IAAI,GAAGme,GAAG,CAACM,SAAjB;;AACA,QAAIg4hB,cAAc,KAAK,WAAvB,EAAoC;AAChCt4hB,MAAAA,GAAG,CAAC6R,SAAJ;AACH;;AACD0mhB,IAAAA,SAAS,CAACnl3B,OAAV,CAAkB,CAACy62B,KAAD,EAAQvg6B,CAAR,KAAY;AAC1B,YAAM;AAAE0pd,QAAAA,EAAF;AAAO1jD,QAAAA,EAAP;AAAYtvC,QAAAA,QAAZ;AAAuBv4T,QAAAA,IAAI,EAAE60uB;AAA7B,UAA8CutH,KAApD;AACA7thB,MAAAA,GAAG,CAAChyP,IAAJ;AACAgyP,MAAAA,GAAG,CAAC1oP,SAAJ,CAAc0/T,EAAE,CAAC54Z,CAAjB,EAAoB44Z,EAAE,CAACpzU,CAAvB;AACAo8P,MAAAA,GAAG,CAAC7nB,MAAJ,CAAW6L,QAAX;;AACA,UAAIgc,GAAG,CAACM,SAAR,EAAmB;AACfN,QAAAA,GAAG,CAACQ,QAAJ,CAAa8/Z,WAAb,EAA0B,CAA1B,EAA6B,CAA7B;AACH;;AACD,UAAItga,GAAG,CAACG,WAAR,EAAqB;AACjBH,QAAAA,GAAG,CAACq7B,UAAJ,CAAeilY,WAAf,EAA4B,CAA5B,EAA+B,CAA/B;AACH;;AACDtga,MAAAA,GAAG,CAACt6X,OAAJ;;AACA,UAAI4y5B,cAAc,KAAK,WAAvB,EAAoC;AAChC,YAAIhr6B,CAAC,KAAK,CAAV,EAAa;AACT0yY,UAAAA,GAAG,CAAC2M,MAAJ,CAAWqqE,EAAE,CAAC54Z,CAAd,EAAiB44Z,EAAE,CAACpzU,CAAH,GAAOg1P,QAAQ,GAAG,CAAnC;AACH;;AACDoH,QAAAA,GAAG,CAAC4M,MAAJ,CAAW0mB,EAAE,CAACl1W,CAAd,EAAiBk1W,EAAE,CAAC1vR,CAAH,GAAOg1P,QAAQ,GAAG,CAAnC;AACH,OAjByB,CAkB9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACC,KA7BD;;AA8BA,QAAI0/hB,cAAc,KAAK,WAAvB,EAAoC;AAChCt4hB,MAAAA,GAAG,CAACI,SAAJ,GAAgBxH,QAAQ,GAAG,EAA3B;AACAoH,MAAAA,GAAG,CAACG,WAAJ,GAAkBte,IAAlB;AACAme,MAAAA,GAAG,CAACgH,MAAJ;AACAhH,MAAAA,GAAG,CAAC6M,SAAJ;AACH;;AACD7M,IAAAA,GAAG,CAACt6X,OAAJ;AACH;;AACD8y5B,EAAAA,kBAAkB,GAAG;AACjB,QAAIhtxB,GAAG,GAAG9yE,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,CAA3E;AACA,WAAO,KAAK+/1B,kBAAL,CAAwBjtxB,GAAxB,KAAgC,CAAvC;AACH;;AACDktxB,EAAAA,oBAAoB,CAAC14hB,GAAD,EAAMi7P,MAAN,EAAc09R,aAAd,EAA6BC,aAA7B,EAA4CC,YAA5C,EAA0DC,WAA1D,EAAuE7xnB,EAAvE,EAA2EtpP,CAA3E,EAA8Eo72B,KAA9E,EAAqF;AACrG,QAAI1m2B,MAAM,GAAGym2B,WAAb;AACA,QAAIE,UAAU,GAAG,KAAK7hhB,WAAL,CAAiBnX,GAAjB,EAAsBriV,CAAtB,CAAjB;;AACA,QAAIA,CAAC,KAAK,GAAN,IAAas9kB,MAAM,KAAK,SAAxB,IAAqC09R,aAAa,GAAGC,aAAzD,EAAwE;AACpEI,MAAAA,UAAU,IAAI,CAACJ,aAAa,GAAGD,aAAjB,IAAkCE,YAAhD;AACH;;AACD,QAAIE,KAAK,GAAG,CAAC,CAAb,EAAgB;AACZ1m2B,MAAAA,MAAM,IAAI,KAAKmm2B,kBAAL,CAAwBO,KAAxB,CAAV;AACH;;AACD,UAAME,UAAU,GAAG,KAAK55f,UAAL,GAAkB,EAArC;AACA,UAAM23C,EAAE,GAAG,KAAKkid,yBAAL,CAA+B7m2B,MAA/B,EAAuC4m2B,UAAvC,EAAmD,CAAnD,CAAX;AACA,UAAM3lgB,EAAE,GAAG,KAAK4lgB,yBAAL,CAA+B7m2B,MAAM,GAAG2m2B,UAAxC,EAAoDC,UAApD,EAAgE,CAAhE,CAAX;AACA,UAAMp+2B,OAAO,GAAG;AACZm8Z,MAAAA,EADY;AAEZ1jD,MAAAA;AAFY,KAAhB;AAIA,UAAMtvC,QAAQ,GAAGgzF,EAAE,IAAI1jD,EAAN,GAAW/tX,IAAI,CAACihQ,KAAL,CAAW8sH,EAAE,CAAC1vR,CAAH,GAAOozU,EAAE,CAACpzU,CAArB,EAAwB0vR,EAAE,CAACl1W,CAAH,GAAO44Z,EAAE,CAAC54Z,CAAlC,CAAX,GAAkD,CAAnE;;AACA,QAAI6oP,EAAJ,EAAQ;AACJ,YAAMkynB,GAAG,GAAG5z3B,IAAI,CAAC8gQ,GAAL,CAAS9gQ,IAAI,CAAC2hQ,EAAL,GAAU,CAAV,GAAc88E,QAAvB,IAAmC/8E,EAA/C;AACA,YAAMmynB,GAAG,GAAG7z3B,IAAI,CAAC8gQ,GAAL,CAAS,CAAC29E,QAAV,IAAsB/8E,EAAlC;AACApsP,MAAAA,OAAO,CAACm8Z,EAAR,GAAa,EACT,GAAGA,EADM;AAET54Z,QAAAA,CAAC,EAAE44Z,EAAE,CAAC54Z,CAAH,GAAO+62B,GAFD;AAGTv1xB,QAAAA,CAAC,EAAEozU,EAAE,CAACpzU,CAAH,GAAOw1xB;AAHD,OAAb;AAKAv+2B,MAAAA,OAAO,CAACy4W,EAAR,GAAa,EACT,GAAGA,EADM;AAETl1W,QAAAA,CAAC,EAAEk1W,EAAE,CAACl1W,CAAH,GAAO+62B,GAFD;AAGTv1xB,QAAAA,CAAC,EAAE0vR,EAAE,CAAC1vR,CAAH,GAAOw1xB;AAHD,OAAb;AAKH;;AACD/m2B,IAAAA,MAAM,IAAI2m2B,UAAV;AACA,WAAO;AACH3m2B,MAAAA,MADG;AAEHxX,MAAAA,OAFG;AAGHmpU,MAAAA;AAHG,KAAP;AAKH;;AACDmzB,EAAAA,WAAW,CAACnX,GAAD,EAAMv0U,IAAN,EAAY;AACnB,UAAM;AAAE4t2B,MAAAA;AAAF,QAAqB,IAA3B;AACA,UAAMzJ,UAAU,GAAGnk2B,IAAI,IAAI,KAAKu91B,OAAL,EAA3B;;AACA,QAAIqQ,aAAa,CAACtozB,GAAd,CAAkB6+yB,UAAlB,CAAJ,EAAmC;AAC/B,aAAOyJ,aAAa,CAACv+1B,GAAd,CAAkB801B,UAAlB,CAAP;AACH;;AACD,UAAMF,OAAO,GAAG,KAAKC,iBAAL,CAAuB3vhB,GAAvB,EAA4B4vhB,UAA5B,CAAhB;AACAyJ,IAAAA,aAAa,CAAChs6B,GAAd,CAAkBui6B,UAAlB,EAA8BF,OAA9B;AACA,WAAOA,OAAP;AACH,GA5JqC,CA6JtC;AACA;AACA;;;AACA2I,EAAAA,WAAW,CAACr4hB,GAAD,EAAM;AACb,QAAI,KAAKu4hB,SAAT,EAAoB;AAChB;AACH;;AACD,UAAMhK,UAAU,GAAG,KAAKvF,OAAL,EAAnB;AACA,UAAM13O,KAAK,GAAGi9O,UAAU,CAACp25B,KAAX,CAAiB,EAAjB,CAAd;AACA,UAAM0g6B,YAAY,GAAGtK,UAAU,CAACp25B,KAAX,CAAiB,GAAjB,EAAsB1J,MAAtB,GAA+B,CAApD;AACA,UAAMu4S,EAAE,GAAG,KAAKrwN,MAAL,CAAYmjD,YAAZ,CAAyB,IAAzB,EAA+B3hI,KAA/B,GAAuC3G,GAAvC,CAA4C2tB,CAAD,IAAKA,CAAC,CAACkh4B,SAAF,CAAY,GAAZ,CAAhD,CAAX;AAEA,UAAMp5mB,EAAE,GAAG,KAAKtwN,MAAL,CAAYmjD,YAAZ,CAAyB,IAAzB,EAA+BumxB,SAA/B,CAAyC,GAAzC,CAAX;AACA,UAAMplR,MAAM,GAAG,KAAKtkjB,MAAL,CAAYi4e,QAAZ,CAAqB,aAArB,EAAoC4wV,SAApC,CAA8C,OAA9C,CAAf;AACA,UAAM8Z,WAAW,GAAG,KAAK1qW,QAAL,CAAc,gBAAd,CAApB;AACA,UAAM2qW,aAAa,GAAG,KAAK5i1B,MAAL,CAAYi4e,QAAZ,CAAqB,gBAArB,CAAtB;AACA,QAAI4qW,aAAa,GAAG,CAApB;;AACA,QAAI,CAACF,WAAW,CAACz0vB,QAAZ,EAAD,IAA2By0vB,WAAW,CAAC3izB,QAAZ,OAA2B,SAA1D,EAAqE;AACjE6izB,MAAAA,aAAa,GAAGD,aAAa,CAAClZ,SAAd,EAAhB;AACH,KAFD,MAEO,IAAIiZ,WAAW,CAACz0vB,QAAZ,EAAJ,EAA4B;AAC/B,UAAIy0vB,WAAW,CAAC3izB,QAAZ,OAA2B,SAA3B,IAAwC2izB,WAAW,CAAC3izB,QAAZ,OAA2B,OAAvE,EAAgF;AAC5E6izB,QAAAA,aAAa,GAAGF,WAAW,CAACjZ,SAAZ,EAAhB;AACH;AACJ,KApBY,CAqBb;;;AACA,UAAMoY,kBAAkB,GAAG,EAA3B;AACA,UAAMgB,OAAO,GAAGlL,UAAU,CAAC9/5B,MAA3B;AACA,SAAKgq6B,kBAAL,GAA0BA,kBAA1B;;AACA,SAAI,IAAItjhB,EAAE,GAAG,CAAb,EAAgBA,EAAE,GAAGskhB,OAArB,EAA8BtkhB,EAAE,EAAhC,EAAmC;AAC/BsjhB,MAAAA,kBAAkB,CAAC/83B,IAAnB,CAAwB,OAAOsrQ,EAAE,CAACmuG,EAAD,CAAT,KAAkB,WAAlB,GAAgCnuG,EAAE,CAACmuG,EAAD,CAAlC,GAAyCqkhB,aAAjE;AACH;;AACD,UAAME,KAAK,GAAGjB,kBAAkB,CAACjg6B,MAAnB,CAA0B,CAACC,GAAD,EAAMylsB,GAAN,EAAW5wsB,CAAX,KAAeA,CAAC,KAAK,CAAN,GAAU,CAAV,GAAcmL,GAAG,GAAGylsB,GAAN,IAAa,CAApE,EACZ,CADY,CAAd;AAEA,UAAMl/R,SAAS,GAAG,KAAK7nB,WAAL,CAAiBnX,GAAjB,CAAlB;AACA,UAAM24hB,aAAa,GAAGpz3B,IAAI,CAACC,GAAL,CAASw5X,SAAS,GAAG06f,KAArB,EAA4B,CAA5B,CAAtB;AACA,SAAK16f,SAAL,GAAiBA,SAAjB;AACA,SAAKK,UAAL,GAAkB,KAAKm/I,WAAL,EAAlB;AACA,SAAK+5W,SAAL,GAAiB,EAAjB;AACA,UAAMK,aAAa,GAAG,KAAKe,aAAL,EAAtB;AACA,UAAMC,WAAW,GAAG,KAAKhrW,QAAL,CAAc,aAAd,EAA6BixV,SAA7B,CAAuC,CAAvC,IAA4C+Y,aAAhE;AACA,QAAIvm2B,MAAM,GAAG,CAAb;;AACA,QAAI4okB,MAAM,KAAK,QAAX,IAAuBA,MAAM,KAAK,QAAtC,EAAgD;AAC5C5okB,MAAAA,MAAM,GAAG,CAACsm2B,aAAD,GAAiB,CAA1B;AACH;;AACD,QAAI19R,MAAM,KAAK,KAAX,IAAoBA,MAAM,KAAK,OAAnC,EAA4C;AACxC5okB,MAAAA,MAAM,GAAG,CAACsm2B,aAAV;AACH;;AACDtm2B,IAAAA,MAAM,IAAIun2B,WAAV;AACAtoP,IAAAA,KAAK,CAACl+nB,OAAN,CAAc,CAACokF,IAAD,EAAOlqI,CAAP,KAAW;AACrB;AACA,YAAM;AAAE+kE,QAAAA,MAAM,EAAEwn2B,UAAV;AAAuBh/2B,QAAAA,OAAvB;AAAiCmpU,QAAAA;AAAjC,UAA+C,KAAK00iB,oBAAL,CAA0B14hB,GAA1B,EAA+Bi7P,MAA/B,EAAuC09R,aAAvC,EAAsDC,aAAtD,EAAqEC,YAArE,EAAmFxm2B,MAAnF,EAA2F40O,EAA3F,EAA+FzvK,IAA/F,EAAqGlqI,CAArG,CAArD;AACA+kE,MAAAA,MAAM,GAAGwn2B,UAAT;;AACA,UAAI,CAACh/2B,OAAO,CAACm8Z,EAAT,IAAe,CAACn8Z,OAAO,CAACy4W,EAA5B,EAAgC;AAC5B;AACH,OANoB,CAOrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,WAAKilgB,SAAL,CAAe783B,IAAf,CAAoB;AAChB;AACA;AACA+vB,QAAAA,IAAI,EAAE6lnB,KAAK,CAAChkrB,CAAD,CAHK;AAIhB0pd,QAAAA,EAAE,EAAEn8Z,OAAO,CAACm8Z,EAJI;AAKhB1jD,QAAAA,EAAE,EAAEz4W,OAAO,CAACy4W,EALI;AAMhBtvC,QAAAA;AANgB,OAApB;AAQH,KA9BD;AA+BH;;AACD81iB,EAAAA,aAAa,CAAC3l6B,IAAD,EAAO;AAChB,SAAK4l6B,UAAL,GAAkB,CAAC,CAAnB,CAAqB;AAArB;;AAEA,QAAI,CAAC5l6B,IAAL,EAAW;AACP,aAAO,EAAP;AACH;;AACD,UAAM6l6B,YAAY,GAAG,EAArB;AACA,UAAM;AAAE5I,MAAAA;AAAF,QAAkBj95B,IAAxB;AACAi95B,IAAAA,UAAU,CAACz43B,KAAX,GARgB,CAShB;;AACA,WAAM,CAACy43B,UAAU,CAAC3xF,KAAX,EAAP,EAA0B;AACtB,YAAM;AAAE71e,QAAAA;AAAF,UAAewnkB,UAArB;AACA,YAAM/ne,MAAM,GAAGz/F,OAAO,GAAGA,OAAO,CAACxrS,CAAX,GAAe,CAArC;AACA,YAAMkrY,MAAM,GAAG1/F,OAAO,GAAGA,OAAO,CAAChmN,CAAX,GAAe,CAArC;AACA,YAAM3vF,OAAO,GAAGm92B,UAAU,CAAC9z3B,IAAX,EAAhB;AACA,UAAI283B,eAAe,GAAGhm3B,OAAO,CAAChV,IAA9B;AACA,UAAIu9U,MAAM,GAAG,EAAb;;AACA,cAAOvoU,OAAO,CAAChV,IAAf;AACI,aAAK+w3B,UAAU,CAACqB,OAAhB;AACI,eAAKC,KAAL,CAAWF,UAAX,EAAuB50iB,MAAvB;AACA;;AACJ,aAAKwziB,UAAU,CAACuB,OAAhB;AACI0I,UAAAA,eAAe,GAAG,KAAKzI,KAAL,CAAWJ,UAAX,EAAuB50iB,MAAvB,CAAlB;AACA;;AACJ,aAAKwziB,UAAU,CAACyB,aAAhB;AACIwI,UAAAA,eAAe,GAAG,KAAKvI,KAAL,CAAWN,UAAX,EAAuB50iB,MAAvB,CAAlB;AACA;;AACJ,aAAKwziB,UAAU,CAAC2B,YAAhB;AACIsI,UAAAA,eAAe,GAAG,KAAKrI,KAAL,CAAWR,UAAX,EAAuB50iB,MAAvB,CAAlB;AACA;;AACJ,aAAKwziB,UAAU,CAACS,QAAhB;AACI,eAAKoB,KAAL,CAAWT,UAAX,EAAuB50iB,MAAvB;AACA;;AACJ,aAAKwziB,UAAU,CAACU,eAAhB;AACIuJ,UAAAA,eAAe,GAAG,KAAKnI,KAAL,CAAWV,UAAX,EAAuB50iB,MAAvB,CAAlB;AACA;;AACJ,aAAKwziB,UAAU,CAACW,OAAhB;AACI,eAAKoB,KAAL,CAAWX,UAAX,EAAuB50iB,MAAvB;AACA;;AACJ,aAAKwziB,UAAU,CAACY,cAAhB;AACIqJ,UAAAA,eAAe,GAAG,KAAKjI,KAAL,CAAWZ,UAAX,EAAuB50iB,MAAvB,CAAlB;AACA;;AACJ,aAAKwziB,UAAU,CAACiC,GAAhB;AACIz1iB,UAAAA,MAAM,GAAG,KAAK1H,KAAL,CAAWs8iB,UAAX,CAAT;AACA;;AACJ,aAAKpB,UAAU,CAACkC,UAAhB;AACIf,UAAAA,WAAW,CAACgB,KAAZ,CAAkBf,UAAlB;AACA;AA9BR;;AAgCA,UAAIn92B,OAAO,CAAChV,IAAR,KAAiB+w3B,UAAU,CAACkC,UAAhC,EAA4C;AACxC8H,QAAAA,YAAY,CAACt+3B,IAAb,CAAkB;AACduD,UAAAA,IAAI,EAAEg73B,eADQ;AAEdz9iB,UAAAA,MAFc;AAGd3uT,UAAAA,KAAK,EAAE;AACHzP,YAAAA,CAAC,EAAEirY,MADA;AAEHzlT,YAAAA,CAAC,EAAE0lT;AAFA,WAHO;AAOdywe,UAAAA,UAAU,EAAE,KAAKG,UAAL,CAAgB7we,MAAhB,EAAwBC,MAAxB,EAAgC2we,eAAhC,EAAiDz9iB,MAAjD;AAPE,SAAlB;AASH,OAVD,MAUO;AACHw9iB,QAAAA,YAAY,CAACt+3B,IAAb,CAAkB;AACduD,UAAAA,IAAI,EAAE+w3B,UAAU,CAACkC,UADH;AAEd11iB,UAAAA,MAAM,EAAE,EAFM;AAGdu9iB,UAAAA,UAAU,EAAE;AAHE,SAAlB;AAKH;AACJ;;AACD,WAAOC,YAAP;AACH;;AACD1I,EAAAA,KAAK,CAACF,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAEp+T,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAautxB,WAAW,CAACG,KAAZ,CAAkBF,UAAlB,EAA8Bt5zB,KAAjD;AACA0kR,IAAAA,MAAM,CAAC9gV,IAAP,CAAY0iB,CAAZ,EAAewlF,CAAf;AACH;;AACD4txB,EAAAA,KAAK,CAACJ,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAEp+T,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAautxB,WAAW,CAACK,KAAZ,CAAkBJ,UAAlB,EAA8Bt5zB,KAAjD;AACA0kR,IAAAA,MAAM,CAAC9gV,IAAP,CAAY0iB,CAAZ,EAAewlF,CAAf;AACA,WAAOosxB,UAAU,CAACuB,OAAlB;AACH;;AACDG,EAAAA,KAAK,CAACN,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAEp+T,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAautxB,WAAW,CAACO,KAAZ,CAAkBN,UAAlB,EAA8Bt5zB,KAAjD;AACA0kR,IAAAA,MAAM,CAAC9gV,IAAP,CAAY0iB,CAAZ,EAAewlF,CAAf;AACA,WAAOosxB,UAAU,CAACuB,OAAlB;AACH;;AACDK,EAAAA,KAAK,CAACR,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAEp+T,MAAAA,CAAF;AAAMwlF,MAAAA;AAAN,QAAautxB,WAAW,CAACS,KAAZ,CAAkBR,UAAlB,EAA8Bt5zB,KAAjD;AACA0kR,IAAAA,MAAM,CAAC9gV,IAAP,CAAY0iB,CAAZ,EAAewlF,CAAf;AACA,WAAOosxB,UAAU,CAACuB,OAAlB;AACH;;AACDM,EAAAA,KAAK,CAACT,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAE1kR,MAAAA,KAAF;AAAU46zB,MAAAA,YAAV;AAAyBrxV,MAAAA;AAAzB,QAA2C8vV,WAAW,CAACU,KAAZ,CAAkBT,UAAlB,CAAjD;AACA50iB,IAAAA,MAAM,CAAC9gV,IAAP,CAAYo8D,KAAK,CAAC15C,CAAlB,EAAqB05C,KAAK,CAAC8rC,CAA3B,EAA8B8uxB,YAAY,CAACt02B,CAA3C,EAA8Cs02B,YAAY,CAAC9uxB,CAA3D,EAA8Dy9b,YAAY,CAACjjhB,CAA3E,EAA8EijhB,YAAY,CAACz9b,CAA3F;AACH;;AACDkuxB,EAAAA,KAAK,CAACV,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAE1kR,MAAAA,KAAF;AAAU46zB,MAAAA,YAAV;AAAyBrxV,MAAAA;AAAzB,QAA2C8vV,WAAW,CAACW,KAAZ,CAAkBV,UAAlB,CAAjD;AACA50iB,IAAAA,MAAM,CAAC9gV,IAAP,CAAYo8D,KAAK,CAAC15C,CAAlB,EAAqB05C,KAAK,CAAC8rC,CAA3B,EAA8B8uxB,YAAY,CAACt02B,CAA3C,EAA8Cs02B,YAAY,CAAC9uxB,CAA3D,EAA8Dy9b,YAAY,CAACjjhB,CAA3E,EAA8EijhB,YAAY,CAACz9b,CAA3F;AACA,WAAOosxB,UAAU,CAACS,QAAlB;AACH;;AACDsB,EAAAA,KAAK,CAACX,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAEk2iB,MAAAA,YAAF;AAAiBrxV,MAAAA;AAAjB,QAAmC8vV,WAAW,CAACY,KAAZ,CAAkBX,UAAlB,CAAzC;AACA50iB,IAAAA,MAAM,CAAC9gV,IAAP,CAAYg33B,YAAY,CAACt02B,CAAzB,EAA4Bs02B,YAAY,CAAC9uxB,CAAzC,EAA4Cy9b,YAAY,CAACjjhB,CAAzD,EAA4DijhB,YAAY,CAACz9b,CAAzE;AACH;;AACDouxB,EAAAA,KAAK,CAACZ,UAAD,EAAa50iB,MAAb,EAAqB;AACtB,UAAM;AAAEk2iB,MAAAA,YAAF;AAAiBrxV,MAAAA;AAAjB,QAAmC8vV,WAAW,CAACa,KAAZ,CAAkBZ,UAAlB,CAAzC;AACA50iB,IAAAA,MAAM,CAAC9gV,IAAP,CAAYg33B,YAAY,CAACt02B,CAAzB,EAA4Bs02B,YAAY,CAAC9uxB,CAAzC,EAA4Cy9b,YAAY,CAACjjhB,CAAzD,EAA4DijhB,YAAY,CAACz9b,CAAzE;AACA,WAAOosxB,UAAU,CAACW,OAAlB;AACH;;AACD77iB,EAAAA,KAAK,CAACs8iB,UAAD,EAAa;AACd,QAAI;AAAEuB,MAAAA,EAAF;AAAOC,MAAAA,EAAP;AAAYG,MAAAA,SAAZ;AAAwBC,MAAAA,aAAxB;AAAwCG,MAAAA,KAAxC;AAAgDt3W,MAAAA,EAAhD;AAAqD+3B,MAAAA;AAArD,QAA6Du9U,WAAW,CAACr8iB,KAAZ,CAAkBs8iB,UAAlB,CAAjE;;AACA,QAAI2B,SAAS,KAAK,CAAd,IAAmBn/U,EAAE,GAAG,CAA5B,EAA+B;AAC3BA,MAAAA,EAAE,IAAI,IAAIruiB,IAAI,CAAC2hQ,EAAf;AACH;;AACD,QAAI6rnB,SAAS,KAAK,CAAd,IAAmBn/U,EAAE,GAAG,CAA5B,EAA+B;AAC3BA,MAAAA,EAAE,IAAI,IAAIruiB,IAAI,CAAC2hQ,EAAf;AACH;;AACD,WAAO,CACHisnB,KAAK,CAAC/02B,CADH,EAEH+02B,KAAK,CAACvvxB,CAFH,EAGH+uxB,EAHG,EAIHC,EAJG,EAKH/2W,EALG,EAMH+3B,EANG,EAOHo/U,aAPG,EAQHD,SARG,CAAP;AAUH;;AACDmH,EAAAA,UAAU,CAAC972B,CAAD,EAAIwlF,CAAJ,EAAOu2xB,WAAP,EAAoB39iB,MAApB,EAA4B;AAClC,QAAI/kR,GAAG,GAAG,CAAV;AACA,QAAI67T,EAAE,GAAG,IAAT;AACA,QAAIC,EAAE,GAAG,IAAT;AACA,QAAIj1W,CAAC,GAAG,CAAR;;AACA,YAAO672B,WAAP;AACI,WAAKnK,UAAU,CAACuB,OAAhB;AACI,eAAO,KAAK6I,aAAL,CAAmBh82B,CAAnB,EAAsBwlF,CAAtB,EAAyB44O,MAAM,CAAC,CAAD,CAA/B,EAAoCA,MAAM,CAAC,CAAD,CAA1C,CAAP;;AACJ,WAAKwziB,UAAU,CAACS,QAAhB;AACI;AACAh5zB,QAAAA,GAAG,GAAG,CAAN;AACA67T,QAAAA,EAAE,GAAG,KAAK+mgB,qBAAL,CAA2B,CAA3B,EAA8Bj82B,CAA9B,EAAiCwlF,CAAjC,EAAoC44O,MAAM,CAAC,CAAD,CAA1C,EAA+CA,MAAM,CAAC,CAAD,CAArD,EAA0DA,MAAM,CAAC,CAAD,CAAhE,EAAqEA,MAAM,CAAC,CAAD,CAA3E,EAAgFA,MAAM,CAAC,CAAD,CAAtF,EAA2FA,MAAM,CAAC,CAAD,CAAjG,CAAL;;AACA,aAAIl+T,CAAC,GAAG,IAAR,EAAcA,CAAC,IAAI,CAAnB,EAAsBA,CAAC,IAAI,IAA3B,EAAgC;AAC5Bi1W,UAAAA,EAAE,GAAG,KAAK8mgB,qBAAL,CAA2B/72B,CAA3B,EAA8BF,CAA9B,EAAiCwlF,CAAjC,EAAoC44O,MAAM,CAAC,CAAD,CAA1C,EAA+CA,MAAM,CAAC,CAAD,CAArD,EAA0DA,MAAM,CAAC,CAAD,CAAhE,EAAqEA,MAAM,CAAC,CAAD,CAA3E,EAAgFA,MAAM,CAAC,CAAD,CAAtF,EAA2FA,MAAM,CAAC,CAAD,CAAjG,CAAL;AACA/kR,UAAAA,GAAG,IAAI,KAAK2i0B,aAAL,CAAmB9mgB,EAAE,CAACl1W,CAAtB,EAAyBk1W,EAAE,CAAC1vR,CAA5B,EAA+B2vR,EAAE,CAACn1W,CAAlC,EAAqCm1W,EAAE,CAAC3vR,CAAxC,CAAP;AACA0vR,UAAAA,EAAE,GAAGC,EAAL;AACH;;AACD,eAAO97T,GAAP;;AACJ,WAAKu4zB,UAAU,CAACW,OAAhB;AACI;AACAl5zB,QAAAA,GAAG,GAAG,CAAN;AACA67T,QAAAA,EAAE,GAAG,KAAKgngB,yBAAL,CAA+B,CAA/B,EAAkCl82B,CAAlC,EAAqCwlF,CAArC,EAAwC44O,MAAM,CAAC,CAAD,CAA9C,EAAmDA,MAAM,CAAC,CAAD,CAAzD,EAA8DA,MAAM,CAAC,CAAD,CAApE,EAAyEA,MAAM,CAAC,CAAD,CAA/E,CAAL;;AACA,aAAIl+T,CAAC,GAAG,IAAR,EAAcA,CAAC,IAAI,CAAnB,EAAsBA,CAAC,IAAI,IAA3B,EAAgC;AAC5Bi1W,UAAAA,EAAE,GAAG,KAAK+mgB,yBAAL,CAA+Bh82B,CAA/B,EAAkCF,CAAlC,EAAqCwlF,CAArC,EAAwC44O,MAAM,CAAC,CAAD,CAA9C,EAAmDA,MAAM,CAAC,CAAD,CAAzD,EAA8DA,MAAM,CAAC,CAAD,CAApE,EAAyEA,MAAM,CAAC,CAAD,CAA/E,CAAL;AACA/kR,UAAAA,GAAG,IAAI,KAAK2i0B,aAAL,CAAmB9mgB,EAAE,CAACl1W,CAAtB,EAAyBk1W,EAAE,CAAC1vR,CAA5B,EAA+B2vR,EAAE,CAACn1W,CAAlC,EAAqCm1W,EAAE,CAAC3vR,CAAxC,CAAP;AACA0vR,UAAAA,EAAE,GAAGC,EAAL;AACH;;AACD,eAAO97T,GAAP;;AACJ,WAAKu4zB,UAAU,CAACiC,GAAhB;AACI;AACI;AACAx6zB,UAAAA,GAAG,GAAG,CAAN;AACA,gBAAM5pC,KAAK,GAAG2uT,MAAM,CAAC,CAAD,CAApB,CAHJ,CAII;;AACA,gBAAM27iB,MAAM,GAAG37iB,MAAM,CAAC,CAAD,CAArB,CALJ,CAMI;;AACA,gBAAM72J,GAAG,GAAG62J,MAAM,CAAC,CAAD,CAAN,GAAY27iB,MAAxB;AACA,cAAIoC,GAAG,GAAGh13B,IAAI,CAAC2hQ,EAAL,GAAU,GAApB,CARJ,CASI;;AACA,cAAI3hQ,IAAI,CAAC65F,GAAL,CAASvxE,KAAK,GAAG83J,GAAjB,IAAwB40sB,GAA5B,EAAiC;AAC7BA,YAAAA,GAAG,GAAGh13B,IAAI,CAAC65F,GAAL,CAASvxE,KAAK,GAAG83J,GAAjB,CAAN;AACH,WAZL,CAaI;;;AACA2tM,UAAAA,EAAE,GAAG,KAAKkngB,uBAAL,CAA6Bh+iB,MAAM,CAAC,CAAD,CAAnC,EAAwCA,MAAM,CAAC,CAAD,CAA9C,EAAmDA,MAAM,CAAC,CAAD,CAAzD,EAA8DA,MAAM,CAAC,CAAD,CAApE,EAAyE3uT,KAAzE,EAAgF,CAAhF,CAAL;;AACA,cAAIsq2B,MAAM,GAAG,CAAb,EAAgB;AACZ,iBAAI752B,CAAC,GAAGuP,KAAK,GAAG0s2B,GAAhB,EAAqBj82B,CAAC,GAAGqnK,GAAzB,EAA8BrnK,CAAC,IAAIi82B,GAAnC,EAAuC;AACnChngB,cAAAA,EAAE,GAAG,KAAKingB,uBAAL,CAA6Bh+iB,MAAM,CAAC,CAAD,CAAnC,EAAwCA,MAAM,CAAC,CAAD,CAA9C,EAAmDA,MAAM,CAAC,CAAD,CAAzD,EAA8DA,MAAM,CAAC,CAAD,CAApE,EAAyEl+T,CAAzE,EAA4E,CAA5E,CAAL;AACAm5C,cAAAA,GAAG,IAAI,KAAK2i0B,aAAL,CAAmB9mgB,EAAE,CAACl1W,CAAtB,EAAyBk1W,EAAE,CAAC1vR,CAA5B,EAA+B2vR,EAAE,CAACn1W,CAAlC,EAAqCm1W,EAAE,CAAC3vR,CAAxC,CAAP;AACA0vR,cAAAA,EAAE,GAAGC,EAAL;AACH;AACJ,WAND,MAMO;AACH,iBAAIj1W,CAAC,GAAGuP,KAAK,GAAG0s2B,GAAhB,EAAqBj82B,CAAC,GAAGqnK,GAAzB,EAA8BrnK,CAAC,IAAIi82B,GAAnC,EAAuC;AACnChngB,cAAAA,EAAE,GAAG,KAAKingB,uBAAL,CAA6Bh+iB,MAAM,CAAC,CAAD,CAAnC,EAAwCA,MAAM,CAAC,CAAD,CAA9C,EAAmDA,MAAM,CAAC,CAAD,CAAzD,EAA8DA,MAAM,CAAC,CAAD,CAApE,EAAyEl+T,CAAzE,EAA4E,CAA5E,CAAL;AACAm5C,cAAAA,GAAG,IAAI,KAAK2i0B,aAAL,CAAmB9mgB,EAAE,CAACl1W,CAAtB,EAAyBk1W,EAAE,CAAC1vR,CAA5B,EAA+B2vR,EAAE,CAACn1W,CAAlC,EAAqCm1W,EAAE,CAAC3vR,CAAxC,CAAP;AACA0vR,cAAAA,EAAE,GAAGC,EAAL;AACH;AACJ;;AACDA,UAAAA,EAAE,GAAG,KAAKingB,uBAAL,CAA6Bh+iB,MAAM,CAAC,CAAD,CAAnC,EAAwCA,MAAM,CAAC,CAAD,CAA9C,EAAmDA,MAAM,CAAC,CAAD,CAAzD,EAA8DA,MAAM,CAAC,CAAD,CAApE,EAAyE72J,GAAzE,EAA8E,CAA9E,CAAL;AACAluH,UAAAA,GAAG,IAAI,KAAK2i0B,aAAL,CAAmB9mgB,EAAE,CAACl1W,CAAtB,EAAyBk1W,EAAE,CAAC1vR,CAA5B,EAA+B2vR,EAAE,CAACn1W,CAAlC,EAAqCm1W,EAAE,CAAC3vR,CAAxC,CAAP;AACA,iBAAOnsC,GAAP;AACH;AAvDT;;AAyDA,WAAO,CAAP;AACH;;AACDgj0B,EAAAA,cAAc,CAACpziB,IAAD,EAAOsjiB,GAAP,EAAYC,GAAZ,EAAiBC,GAAjB,EAAsBC,GAAtB,EAA2B;AACrC,QAAI4P,KAAK,GAAGhi2B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiEiy1B,GAA7E;AAAA,QAAkFgQ,KAAK,GAAGji2B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiEky1B,GAA3J;AACA,UAAMpy1B,CAAC,GAAG,CAACsy1B,GAAG,GAAGF,GAAP,KAAeC,GAAG,GAAGF,GAAN,GAAY/L,WAA3B,CAAV;AACA,QAAIn5U,GAAG,GAAGlgiB,IAAI,CAACmhQ,IAAL,CAAU2gF,IAAI,GAAGA,IAAP,IAAe,IAAI7uT,CAAC,GAAGA,CAAvB,CAAV,CAAV;;AACA,QAAIqy1B,GAAG,GAAGF,GAAV,EAAe;AACXllV,MAAAA,GAAG,IAAI,CAAC,CAAR;AACH;;AACD,QAAIm1V,IAAI,GAAGpi2B,CAAC,GAAGitgB,GAAf;AACA,QAAI/kB,EAAE,GAAG,IAAT;;AACA,QAAImqW,GAAG,KAAKF,GAAZ,EAAiB;AACbjqW,MAAAA,EAAE,GAAG;AACDtigB,QAAAA,CAAC,EAAEs82B,KADF;AAED92xB,QAAAA,CAAC,EAAE+2xB,KAAK,GAAGC;AAFV,OAAL;AAIH,KALD,MAKO,IAAI,CAACD,KAAK,GAAG/P,GAAT,KAAiB8P,KAAK,GAAG/P,GAAR,GAAc/L,WAA/B,MAAgDpm1B,CAApD,EAAuD;AAC1Dkof,MAAAA,EAAE,GAAG;AACDtigB,QAAAA,CAAC,EAAEs82B,KAAK,GAAGj1V,GADV;AAED7hc,QAAAA,CAAC,EAAE+2xB,KAAK,GAAGC;AAFV,OAAL;AAIH,KALM,MAKA;AACH,UAAIC,EAAE,GAAG,CAAT;AACA,UAAIC,EAAE,GAAG,CAAT;AACA,YAAMrj0B,GAAG,GAAG,KAAK2i0B,aAAL,CAAmBzP,GAAnB,EAAwBC,GAAxB,EAA6BC,GAA7B,EAAkCC,GAAlC,CAAZ;;AACA,UAAIrzzB,GAAG,GAAGmnzB,WAAV,EAAuB;AACnB,eAAO,IAAP;AACH;;AACD,UAAIr1jB,CAAC,GAAG,CAACmxkB,KAAK,GAAG/P,GAAT,KAAiBE,GAAG,GAAGF,GAAvB,IAA8B,CAACgQ,KAAK,GAAG/P,GAAT,KAAiBE,GAAG,GAAGF,GAAvB,CAAtC;AACArhkB,MAAAA,CAAC,IAAI9xP,GAAG,GAAGA,GAAX;AACAoj0B,MAAAA,EAAE,GAAGlQ,GAAG,GAAGphkB,CAAC,IAAIshkB,GAAG,GAAGF,GAAV,CAAZ;AACAmQ,MAAAA,EAAE,GAAGlQ,GAAG,GAAGrhkB,CAAC,IAAIuhkB,GAAG,GAAGF,GAAV,CAAZ;AACA,YAAMmQ,KAAK,GAAG,KAAKX,aAAL,CAAmBM,KAAnB,EAA0BC,KAA1B,EAAiCE,EAAjC,EAAqCC,EAArC,CAAd;AACA,YAAME,IAAI,GAAGz13B,IAAI,CAACmhQ,IAAL,CAAU2gF,IAAI,GAAGA,IAAP,GAAc0ziB,KAAK,GAAGA,KAAhC,CAAb;AACAt1V,MAAAA,GAAG,GAAGlgiB,IAAI,CAACmhQ,IAAL,CAAUs0nB,IAAI,GAAGA,IAAP,IAAe,IAAIxi2B,CAAC,GAAGA,CAAvB,CAAV,CAAN;;AACA,UAAIqy1B,GAAG,GAAGF,GAAV,EAAe;AACXllV,QAAAA,GAAG,IAAI,CAAC,CAAR;AACH;;AACDm1V,MAAAA,IAAI,GAAGpi2B,CAAC,GAAGitgB,GAAX;AACA/kB,MAAAA,EAAE,GAAG;AACDtigB,QAAAA,CAAC,EAAEy82B,EAAE,GAAGp1V,GADP;AAED7hc,QAAAA,CAAC,EAAEk3xB,EAAE,GAAGF;AAFP,OAAL;AAIH;;AACD,WAAOl6W,EAAP;AACH;;AACDu6W,EAAAA,cAAc,CAAC7ngB,QAAD,EAAW;AACrB,UAAM8ngB,OAAO,GAAG,KAAKvB,aAAL,EAAhB;AACA,QAAIwB,oBAAoB,GAAG,CAA3B;AACA,QAAIpk2B,CAAC,GAAG,IAAR;;AACA,QAAIq8V,QAAQ,GAAG,CAAC,OAAZ,IAAuBA,QAAQ,GAAG,OAAX,GAAqB8ngB,OAAhD,EAAyD;AACrD,aAAO,IAAP;AACH;;AACD,UAAM;AAAEhD,MAAAA;AAAF,QAAiB,IAAvB;;AACA,SAAK,MAAMjk3B,OAAX,IAAsBik3B,SAAtB,EAAgC;AAC5B,UAAIjk3B,OAAO,KAAKA,OAAO,CAAC8l3B,UAAR,GAAqB,OAArB,IAAgCoB,oBAAoB,GAAGln3B,OAAO,CAAC8l3B,UAA/B,GAA4C,OAA5C,GAAsD3mgB,QAA3F,CAAX,EAAiH;AAC7G+ngB,QAAAA,oBAAoB,IAAIln3B,OAAO,CAAC8l3B,UAAhC;AACA;AACH;;AACD,YAAM3syB,KAAK,GAAGgmS,QAAQ,GAAG+ngB,oBAAzB;AACA,UAAIC,QAAQ,GAAG,CAAf;;AACA,cAAOnn3B,OAAO,CAAChV,IAAf;AACI,aAAK+w3B,UAAU,CAACuB,OAAhB;AACIx61B,UAAAA,CAAC,GAAG,KAAK0j2B,cAAL,CAAoBrtyB,KAApB,EAA2Bn5E,OAAO,CAAC4Z,KAAR,CAAczP,CAAzC,EAA4CnK,OAAO,CAAC4Z,KAAR,CAAc+1E,CAA1D,EAA6D3vF,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAA7D,EAAgFvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAhF,EAAmGvoU,OAAO,CAAC4Z,KAAR,CAAczP,CAAjH,EAAoHnK,OAAO,CAAC4Z,KAAR,CAAc+1E,CAAlI,CAAJ;AACA;;AACJ,aAAKosxB,UAAU,CAACiC,GAAhB;AACI;AACI,kBAAMpk2B,KAAK,GAAG5Z,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAd,CADJ,CAEI;;AACA,kBAAM27iB,MAAM,GAAGlk3B,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAf,CAHJ,CAII;;AACA,kBAAM72J,GAAG,GAAG1xK,OAAO,CAACuoU,MAAR,CAAe,CAAf,IAAoB27iB,MAAhC;AACAiD,YAAAA,QAAQ,GAAGvt2B,KAAK,GAAGu/D,KAAK,GAAGn5E,OAAO,CAAC8l3B,UAAhB,GAA6B5B,MAAhD;;AACA,gBAAIA,MAAM,GAAG,CAAT,IAAciD,QAAQ,GAAGz1sB,GAAzB,IAAgCwysB,MAAM,IAAI,CAAV,IAAeiD,QAAQ,GAAGz1sB,GAA9D,EAAmE;AAC/D;AACH;;AACD5uJ,YAAAA,CAAC,GAAG,KAAKyj2B,uBAAL,CAA6Bvm3B,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAA7B,EAAgDvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAhD,EAAmEvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAnE,EAAsFvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAtF,EAAyG4+iB,QAAzG,EAAmHnn3B,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAnH,CAAJ;AACA;AACH;;AACL,aAAKwziB,UAAU,CAACS,QAAhB;AACI2K,UAAAA,QAAQ,GAAGhuyB,KAAK,GAAGn5E,OAAO,CAAC8l3B,UAA3B;;AACA,cAAIqB,QAAQ,GAAG,CAAf,EAAkB;AACdA,YAAAA,QAAQ,GAAG,CAAX;AACH;;AACDrk2B,UAAAA,CAAC,GAAG,KAAKsj2B,qBAAL,CAA2Be,QAA3B,EAAqCnn3B,OAAO,CAAC4Z,KAAR,CAAczP,CAAnD,EAAsDnK,OAAO,CAAC4Z,KAAR,CAAc+1E,CAApE,EAAuE3vF,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAvE,EAA0FvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAA1F,EAA6GvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAA7G,EAAgIvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAhI,EAAmJvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAnJ,EAAsKvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAtK,CAAJ;AACA;;AACJ,aAAKwziB,UAAU,CAACW,OAAhB;AACIyK,UAAAA,QAAQ,GAAGhuyB,KAAK,GAAGn5E,OAAO,CAAC8l3B,UAA3B;;AACA,cAAIqB,QAAQ,GAAG,CAAf,EAAkB;AACdA,YAAAA,QAAQ,GAAG,CAAX;AACH;;AACDrk2B,UAAAA,CAAC,GAAG,KAAKuj2B,yBAAL,CAA+Bc,QAA/B,EAAyCnn3B,OAAO,CAAC4Z,KAAR,CAAczP,CAAvD,EAA0DnK,OAAO,CAAC4Z,KAAR,CAAc+1E,CAAxE,EAA2E3vF,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAA3E,EAA8FvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAA9F,EAAiHvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAAjH,EAAoIvoU,OAAO,CAACuoU,MAAR,CAAe,CAAf,CAApI,CAAJ;AACA;AA/BR;;AAiCA,UAAIzlT,CAAJ,EAAO;AACH,eAAOA,CAAP;AACH;;AACD;AACH;;AACD,WAAO,IAAP;AACH;;AACDqj2B,EAAAA,aAAa,CAACzuhB,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,EAAiB;AAC1B,WAAOvmW,IAAI,CAACmhQ,IAAL,CAAU,CAACmlG,EAAE,GAAGF,EAAN,KAAaE,EAAE,GAAGF,EAAlB,IAAwB,CAACG,EAAE,GAAGF,EAAN,KAAaE,EAAE,GAAGF,EAAlB,CAAlC,CAAP;AACH;;AACD+thB,EAAAA,aAAa,GAAG;AACZ,QAAI,KAAKI,UAAL,KAAoB,CAAC,CAAzB,EAA4B;AACxB,WAAKA,UAAL,GAAkB,KAAK7B,SAAL,CAAe1/5B,MAAf,CAAsB,CAAC/J,MAAD,EAASwlD,OAAT,KAAmBA,OAAO,CAAC8l3B,UAAR,GAAqB,CAArB,GAAyBtr6B,MAAM,GAAGwlD,OAAO,CAAC8l3B,UAA1C,GAAuDtr6B,MAAhG,EAChB,CADgB,CAAlB;AAEH;;AACD,WAAO,KAAKsr6B,UAAZ;AACH;;AACDM,EAAAA,qBAAqB,CAACgB,GAAD,EAAM1Q,GAAN,EAAWC,GAAX,EAAgBC,GAAhB,EAAqBC,GAArB,EAA0BC,GAA1B,EAA+BC,GAA/B,EAAoCsQ,GAApC,EAAyCC,GAAzC,EAA8C;AAC/D,UAAMn92B,CAAC,GAAGk92B,GAAG,GAAGtc,GAAG,CAACqc,GAAD,CAAT,GAAiBtQ,GAAG,GAAG9L,GAAG,CAACoc,GAAD,CAA1B,GAAkCxQ,GAAG,GAAG3L,GAAG,CAACmc,GAAD,CAA3C,GAAmD1Q,GAAG,GAAGxL,GAAG,CAACkc,GAAD,CAAtE;AACA,UAAMz3xB,CAAC,GAAG23xB,GAAG,GAAGvc,GAAG,CAACqc,GAAD,CAAT,GAAiBrQ,GAAG,GAAG/L,GAAG,CAACoc,GAAD,CAA1B,GAAkCvQ,GAAG,GAAG5L,GAAG,CAACmc,GAAD,CAA3C,GAAmDzQ,GAAG,GAAGzL,GAAG,CAACkc,GAAD,CAAtE;AACA,WAAO;AACHj92B,MAAAA,CADG;AAEHwlF,MAAAA;AAFG,KAAP;AAIH;;AACD02xB,EAAAA,yBAAyB,CAACe,GAAD,EAAM1Q,GAAN,EAAWC,GAAX,EAAgBC,GAAhB,EAAqBC,GAArB,EAA0BC,GAA1B,EAA+BC,GAA/B,EAAoC;AACzD,UAAM5s2B,CAAC,GAAG2s2B,GAAG,GAAG3L,GAAG,CAACic,GAAD,CAAT,GAAiBxQ,GAAG,GAAGxL,GAAG,CAACgc,GAAD,CAA1B,GAAkC1Q,GAAG,GAAGrL,GAAG,CAAC+b,GAAD,CAArD;AACA,UAAMz3xB,CAAC,GAAGonxB,GAAG,GAAG5L,GAAG,CAACic,GAAD,CAAT,GAAiBvQ,GAAG,GAAGzL,GAAG,CAACgc,GAAD,CAA1B,GAAkCzQ,GAAG,GAAGtL,GAAG,CAAC+b,GAAD,CAArD;AACA,WAAO;AACHj92B,MAAAA,CADG;AAEHwlF,MAAAA;AAFG,KAAP;AAIH;;AACD42xB,EAAAA,uBAAuB,CAAC12iB,EAAD,EAAKC,EAAL,EAASgpB,EAAT,EAAaC,EAAb,EAAiB9C,KAAjB,EAAwBkuhB,GAAxB,EAA6B;AAChD,UAAMoD,MAAM,GAAGj23B,IAAI,CAAC8gQ,GAAL,CAAS+xnB,GAAT,CAAf;AACA,UAAMqD,MAAM,GAAGl23B,IAAI,CAAC+gQ,GAAL,CAAS8xnB,GAAT,CAAf;AACA,UAAM13W,EAAE,GAAG;AACPtigB,MAAAA,CAAC,EAAE2uV,EAAE,GAAGxnW,IAAI,CAAC8gQ,GAAL,CAAS6jG,KAAT,CADD;AAEPtmQ,MAAAA,CAAC,EAAEopQ,EAAE,GAAGznW,IAAI,CAAC+gQ,GAAL,CAAS4jG,KAAT;AAFD,KAAX;AAIA,WAAO;AACH9rV,MAAAA,CAAC,EAAE0lU,EAAE,IAAI48L,EAAE,CAACtigB,CAAH,GAAOo92B,MAAP,GAAgB96W,EAAE,CAAC98a,CAAH,GAAO63xB,MAA3B,CADF;AAEH73xB,MAAAA,CAAC,EAAEmgP,EAAE,IAAI28L,EAAE,CAACtigB,CAAH,GAAOq92B,MAAP,GAAgB/6W,EAAE,CAAC98a,CAAH,GAAO43xB,MAA3B;AAFF,KAAP;AAIH,GAljBqC,CAmjBtC;;;AACAE,EAAAA,qBAAqB,CAACC,SAAD,EAAYC,cAAZ,EAA4B;AAC7C,UAAMV,OAAO,GAAG,KAAKvB,aAAL,EAAhB;AACA,UAAMj2nB,SAAS,GAAGk4nB,cAAc,IAAI,IAApC,CAAyC;AAAzC;AAEA,UAAMl+3B,IAAI,GAAGi+3B,SAAS,IAAIT,OAAO,GAAG,GAApC;;AACA,QAAI,CAAC,KAAKW,gBAAN,IAA0B,KAAKA,gBAAL,CAAsBn+3B,IAAtB,KAA+BA,IAAzD,IAAiE,KAAKm+3B,gBAAL,CAAsBn4nB,SAAtB,KAAoCA,SAAzG,EAAoH;AAChH;AACA,WAAKm4nB,gBAAL,GAAwB;AACpBn+3B,QAAAA,IADoB;AAEpBgmQ,QAAAA,SAFoB;AAGpB84E,QAAAA,MAAM,EAAE;AAHY,OAAxB,CAFgH,CAOhH;;AACA,UAAIn+T,CAAC,GAAG,CAAR;;AACA,WAAI,IAAI6mQ,CAAC,GAAG,CAAZ,EAAeA,CAAC,IAAIg2mB,OAApB,EAA6Bh2mB,CAAC,IAAIxhB,SAAlC,EAA4C;AACxC,cAAMszK,EAAE,GAAG,KAAKikd,cAAL,CAAoB/1mB,CAApB,CAAX;AACA,cAAMouG,EAAE,GAAG,KAAK2ngB,cAAL,CAAoB/1mB,CAAC,GAAGxhB,SAAxB,CAAX;;AACA,YAAI,CAACszK,EAAD,IAAO,CAAC1jD,EAAZ,EAAgB;AACZ;AACH;;AACDj1W,QAAAA,CAAC,IAAI,KAAK+72B,aAAL,CAAmBpjd,EAAE,CAAC54Z,CAAtB,EAAyB44Z,EAAE,CAACpzU,CAA5B,EAA+B0vR,EAAE,CAACl1W,CAAlC,EAAqCk1W,EAAE,CAAC1vR,CAAxC,CAAL;;AACA,YAAIvlF,CAAC,IAAI3gB,IAAT,EAAe;AACX,eAAKm+3B,gBAAL,CAAsBr/iB,MAAtB,CAA6B9gV,IAA7B,CAAkC;AAC9B0iB,YAAAA,CAAC,EAAE44Z,EAAE,CAAC54Z,CADwB;AAE9BwlF,YAAAA,CAAC,EAAEozU,EAAE,CAACpzU,CAFwB;AAG9BwvR,YAAAA,QAAQ,EAAEluG;AAHoB,WAAlC;AAKA7mQ,UAAAA,CAAC,IAAI3gB,IAAL;AACH;AACJ;AACJ;AACJ;;AACDw73B,EAAAA,yBAAyB,CAAC4C,cAAD,EAAiBp+3B,IAAjB,EAAuBgmQ,SAAvB,EAAkC;AACvD,SAAKg4nB,qBAAL,CAA2Bh+3B,IAA3B,EAAiCgmQ,SAAjC;;AACA,QAAIo4nB,cAAc,GAAG,CAAjB,IAAsBA,cAAc,GAAG,KAAKnC,aAAL,EAAjB,GAAwC,OAAlE,EAA2E;AACvE,aAAO,IAAP;AACH;;AACD,UAAMnuxB,GAAG,GAAGjmG,IAAI,CAAC6kE,KAAL,CAAW0xzB,cAAc,GAAG,KAAKnC,aAAL,EAAjB,IAAyC,KAAKkC,gBAAL,CAAsBr/iB,MAAtB,CAA6B/tX,MAA7B,GAAsC,CAA/E,CAAX,CAAZ;AACA,WAAO,KAAKot6B,gBAAL,CAAsBr/iB,MAAtB,CAA6BhxO,GAA7B,KAAqC,IAA5C;AACH;;AACD9xG,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,UAAZ;AACA,SAAK+/X,SAAL,GAAiB,CAAjB;AACA,SAAKK,UAAL,GAAkB,CAAlB;AACA,SAAK06f,UAAL,GAAkB,CAAC,CAAnB;AACA,SAAKxB,SAAL,GAAiB,IAAjB;AACA,SAAKE,kBAAL,GAA0B,EAA1B;AACA,SAAKY,aAAL,GAAqB,IAAIp11B,GAAJ,CAAQ,CACzB,CACI,EADJ,EAEI,CAFJ,CADyB,CAAR,CAArB;AAMA,UAAM831B,WAAW,GAAG,KAAKlb,gBAAL,GAAwB5h0B,aAAxB,EAApB;AACA,SAAKxzB,IAAL,GAAY,KAAK2i2B,eAAL,EAAZ;AACA,SAAK8J,SAAL,GAAiB,KAAK4B,aAAL,CAAmBiC,WAAnB,CAAjB;AACH;;AA7mBqC,EAgnB1C;;;AACA,MAAMC,YAAY,GAAG,4EAArB;;AACA,MAAMC,YAAN,SAA2B3Q,eAA3B,CAA2C;AACjCnO,EAAAA,SAAS,CAAC9+2B,IAAD,EAAO;AAAA;;AAAA;AAClB,UAAI;AACA,cAAM2+U,KAAK,SAAS,MAAI,CAAC3rT,QAAL,CAAc2r1B,WAAd,CAA0B3+2B,IAA1B,CAApB;AACA,cAAI,CAAC2+U,KAAL,GAAaA,KAAb;AACH,OAHD,CAGE,OAAOh4U,GAAP,EAAY;AACVyc,QAAAA,OAAO,CAAC7zD,KAAR,CAAc,+BAA+Bs+C,MAA/B,CAAsC7N,IAAtC,EAA4C,KAA5C,CAAd,EAAkE2G,GAAlE;AACH;;AACD,YAAI,CAACsV,MAAL,GAAc,IAAd;AAPkB;AAQrB;;AACK4h3B,EAAAA,OAAO,CAAC793B,IAAD,EAAO;AAAA;;AAAA;AAChB,YAAM2jB,KAAK,GAAGg62B,YAAY,CAACxz1B,IAAb,CAAkBnqC,IAAlB,CAAd;;AACA,UAAI2jB,KAAJ,EAAW;AACP,cAAMxzD,IAAI,GAAGwzD,KAAK,CAAC,CAAD,CAAlB;;AACA,YAAIxzD,IAAJ,EAAU;AACN,cAAIwzD,KAAK,CAAC,CAAD,CAAL,KAAa,QAAjB,EAA2B;AACvB,kBAAI,CAACg7T,KAAL,GAAa31B,IAAI,CAAC74V,IAAD,CAAjB;AACH,WAFD,MAEO;AACH,kBAAI,CAACwuX,KAAL,GAAa63L,kBAAkB,CAACrmjB,IAAD,CAA/B;AACH;AACJ;AACJ,OATD,MASO;AACH,YAAI;AACA,gBAAM0sC,QAAQ,SAAS,MAAI,CAACm2B,QAAL,CAAcp2B,KAAd,CAAoBoD,IAApB,CAAvB;AACA,gBAAMu4W,GAAG,SAAS17W,QAAQ,CAACuwB,IAAT,EAAlB;AACA,gBAAI,CAACuxT,KAAL,GAAa45B,GAAb;AACH,SAJD,CAIE,OAAO5xW,GAAP,EAAY;AACVyc,UAAAA,OAAO,CAAC7zD,KAAR,CAAc,+BAA+Bs+C,MAA/B,CAAsC7N,IAAtC,EAA4C,KAA5C,CAAd,EAAkE2G,GAAlE;AACH;AACJ;;AACD,YAAI,CAACsV,MAAL,GAAc,IAAd;AApBgB;AAqBnB;;AACDst2B,EAAAA,cAAc,CAAC5nhB,GAAD,EAAM;AAChB,UAAM;AAAE3uU,MAAAA,QAAF;AAAa2rT,MAAAA,KAAb;AAAqB1iU,MAAAA;AAArB,QAAiC,IAAvC;AACA,UAAM8D,CAAC,GAAG,KAAK07E,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAV;AACA,UAAMz8wB,CAAC,GAAG,KAAK9J,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAV;AACA,UAAMln0B,KAAK,GAAG,KAAKy1e,QAAL,CAAc,OAAd,EAAuByxV,SAAvB,CAAiC,GAAjC,CAAd;AACA,UAAMjmxB,MAAM,GAAG,KAAKw0b,QAAL,CAAc,QAAd,EAAwByxV,SAAxB,CAAkC,GAAlC,CAAf;;AACA,QAAI,CAAC/l2B,MAAD,IAAW,CAAC0iU,KAAZ,IAAqB,CAAC7jS,KAAtB,IAA+B,CAACihD,MAApC,EAA4C;AACxC;AACH;;AACD4lQ,IAAAA,GAAG,CAAChyP,IAAJ;AACAgyP,IAAAA,GAAG,CAAC1oP,SAAJ,CAAcl5F,CAAd,EAAiBwlF,CAAjB;;AACA,QAAI,OAAOo5O,KAAP,KAAiB,QAArB,EAA+B;AAC3B,YAAMm/iB,WAAW,GAAG9q2B,QAAQ,CAACqyhB,KAAT,CAAe04U,UAAf,CAA0Bp8hB,GAA1B,EAA+BhjB,KAA/B,EAAsC;AACtD4mO,QAAAA,WAAW,EAAE,IADyC;AAEtDC,QAAAA,eAAe,EAAE,IAFqC;AAGtDC,QAAAA,gBAAgB,EAAE,IAHoC;AAItDkhU,QAAAA,WAAW,EAAE,IAJyC;AAKtD3/mB,QAAAA,OAAO,EAAE,CAL6C;AAMtDC,QAAAA,OAAO,EAAE,CAN6C;AAOtD4/mB,QAAAA,UAAU,EAAE/r0B,KAP0C;AAQtDgs0B,QAAAA,WAAW,EAAE/qxB;AARyC,OAAtC,CAApB;AAUA,YAAM;AAAEwB,QAAAA;AAAF,UAAuBugyB,WAAW,CAAC9q2B,QAAzC;;AACA,UAAIuqE,eAAJ,EAAqB;AACjBA,QAAAA,eAAe,CAACjlD,MAAhB,GAAyB,IAAzB;AACH;;AACD,WAAKwl1B,WAAW,CAACp8hB,MAAZ,EAAL;AACH,KAhBD,MAgBO;AACH1uU,MAAAA,QAAQ,CAACgy1B,UAAT,CAAoB;AAChBrjhB,QAAAA,GADgB;AAEhBsjhB,QAAAA,WAAW,EAAE,KAAKxpxB,YAAL,CAAkB,qBAAlB,EAAyC0lxB,SAAzC,EAFG;AAGhBrm0B,QAAAA,KAHgB;AAIhBoq0B,QAAAA,YAAY,EAAEvmiB,KAAK,CAAC7jS,KAJJ;AAKhBihD,QAAAA,MALgB;AAMhBopxB,QAAAA,aAAa,EAAExmiB,KAAK,CAAC5iP;AANL,OAApB;;AAQA,UAAI,KAAK9/E,MAAT,EAAiB;AACb,YAAI,EAAE,cAAc0iU,KAAhB,KAA0BA,KAAK,CAACtmT,QAApC,EAA8C;AAC1CspU,UAAAA,GAAG,CAACuiM,SAAJ,CAAcvlN,KAAd,EAAqB,CAArB,EAAwB,CAAxB;AACH;AACJ;AACJ;;AACDgjB,IAAAA,GAAG,CAACt6X,OAAJ;AACH;;AACD4n5B,EAAAA,cAAc,GAAG;AACb,UAAMlv2B,CAAC,GAAG,KAAK07E,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAV;AACA,UAAMz8wB,CAAC,GAAG,KAAK9J,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAV;AACA,UAAMln0B,KAAK,GAAG,KAAKy1e,QAAL,CAAc,OAAd,EAAuByxV,SAAvB,CAAiC,GAAjC,CAAd;AACA,UAAMjmxB,MAAM,GAAG,KAAKw0b,QAAL,CAAc,QAAd,EAAwByxV,SAAxB,CAAkC,GAAlC,CAAf;AACA,WAAO,IAAIyJ,WAAJ,CAAgB1r2B,CAAhB,EAAmBwlF,CAAnB,EAAsBxlF,CAAC,GAAG+6B,KAA1B,EAAiCyqD,CAAC,GAAGxJ,MAArC,CAAP;AACH;;AACD1gG,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,OAAZ;AACA,SAAKqb,MAAL,GAAc,KAAd;AACA,UAAMjc,IAAI,GAAG,KAAKwi3B,gBAAL,GAAwBrB,SAAxB,EAAb;;AACA,QAAI,CAACnh3B,IAAL,EAAW;AACP;AACH;;AACD,UAAMg+3B,KAAK,GAAGh+3B,IAAI,CAAC3pC,QAAL,CAAc,MAAd,KAAyB,4BAA4BskC,IAA5B,CAAiCqF,IAAjC,CAAvC;AACAgzB,IAAAA,QAAQ,CAAC6lU,MAAT,CAAgBx7V,IAAhB,CAAqB,IAArB;;AACA,QAAI,CAAC2g4B,KAAL,EAAY;AACR,WAAK,KAAKlf,SAAL,CAAe9+2B,IAAf,CAAL;AACH,KAFD,MAEO;AACH,WAAK,KAAK693B,OAAL,CAAa793B,IAAb,CAAL;AACH;AACJ;;AAlGsC;;AAqG3C,MAAMi+3B,aAAN,SAA4BhR,eAA5B,CAA4C;AACxCvrhB,EAAAA,MAAM,CAAC5gX,CAAD,EAAI,CACV;AACC;;AACDua,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,QAAZ;AACH;;AAPuC;;AAU5C,MAAMs93B,aAAN,CAAoB;AACVpz0B,EAAAA,IAAI,CAAC0xU,UAAD,EAAangY,GAAb,EAAkB;AAAA;;AAAA;AACxB,UAAI;AACA,cAAM;AAAE22B,UAAAA;AAAF,YAAgB,MAAtB;AACA,cAAMmr2B,WAAW,SAASnr2B,QAAQ,CAACqyhB,KAAT,CAAenwjB,MAAf,CAAsB41D,IAAtB,CAA2BzuD,GAA3B,CAA1B;AACA,cAAMkuV,KAAK,GAAG4ziB,WAAW,CAACthyB,oBAAZ,CAAiC,MAAjC,CAAd;AACAp2D,QAAAA,KAAK,CAACjoB,IAAN,CAAW+rU,KAAX,EAAkBx1U,OAAlB,CAA2Bqp3B,QAAD,IAAY;AAClC,gBAAMljjB,IAAI,GAAGloT,QAAQ,CAACC,aAAT,CAAuBmr2B,QAAvB,CAAb;AACApr2B,UAAAA,QAAQ,CAACk7oB,WAAT,CAAqB1xS,UAArB,IAAmCthD,IAAnC;AACH,SAHD;AAIH,OARD,CAQE,OAAOv0U,GAAP,EAAY;AACVyc,QAAAA,OAAO,CAAC7zD,KAAR,CAAc,8BAA8Bs+C,MAA9B,CAAqCxR,GAArC,EAA0C,KAA1C,CAAd,EAAgEsK,GAAhE;AACH;;AACD,YAAI,CAACsV,MAAL,GAAc,IAAd;AAZwB;AAa3B;;AACD5gB,EAAAA,WAAW,CAAC23B,QAAD,EAAU;AACjB,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAK/W,MAAL,GAAc,KAAd;AACA+W,IAAAA,QAAQ,CAACu3T,KAAT,CAAeltV,IAAf,CAAoB,IAApB;AACH;;AAnBe;;AAsBpB,MAAMgh4B,YAAN,SAA2BjgyB,OAA3B,CAAmC;AAC/B/iG,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,OAAZ;AACA,UAAM2giB,GAAG,GAAGw9U,cAAc,CAACt40B,KAAK,CAACjoB,IAAN,CAAW52C,IAAI,CAAC6zI,UAAhB,EAA2B;AAA3B,KAC1BtoJ,GAD0B,CACrB2tB,CAAD,IAAKA,CAAC,CAAC04X,WADe,EAEzBl5Y,IAFyB,CAEpB,EAFoB,EAEhByJ,OAFgB,CAER,gEAFQ,EAE0D,EAF1D,EAE8D;AAF9D,KAG1BA,OAH0B,CAGlB,aAHkB,EAGH,EAHG,CAAD,CAGE;AAHF,KAA1B;AAKA,UAAMu05B,OAAO,GAAG/8V,GAAG,CAACznkB,KAAJ,CAAU,GAAV,CAAhB;AACAwk6B,IAAAA,OAAO,CAACvp3B,OAAR,CAAiBwp3B,EAAD,IAAM;AAClB,YAAMju0B,GAAG,GAAGiu0B,EAAE,CAAC5o4B,IAAH,EAAZ;;AACA,UAAI,CAAC26D,GAAL,EAAU;AACN;AACH;;AACD,YAAMku0B,QAAQ,GAAGlu0B,GAAG,CAACx2F,KAAJ,CAAU,GAAV,CAAjB;AACA,YAAM+5O,UAAU,GAAG2qrB,QAAQ,CAAC,CAAD,CAAR,CAAY1k6B,KAAZ,CAAkB,GAAlB,CAAnB;AACA,YAAM2k6B,QAAQ,GAAGD,QAAQ,CAAC,CAAD,CAAR,CAAY1k6B,KAAZ,CAAkB,GAAlB,CAAjB;AACA+5O,MAAAA,UAAU,CAAC9+L,OAAX,CAAoBj0B,CAAD,IAAK;AACpB,cAAMowH,QAAQ,GAAGpwH,CAAC,CAAC6U,IAAF,EAAjB;;AACA,YAAI,CAACu7G,QAAL,EAAe;AACX;AACH;;AACD,cAAM9gE,KAAK,GAAGpd,QAAQ,CAAC+vE,MAAT,CAAgBmO,QAAhB,KAA6B,EAA3C;AACAutxB,QAAAA,QAAQ,CAAC1p3B,OAAT,CAAkB2p3B,OAAD,IAAW;AACxB,gBAAMr62B,IAAI,GAAGq62B,OAAO,CAAC//3B,OAAR,CAAgB,GAAhB,CAAb;AACA,gBAAM5d,IAAI,GAAG294B,OAAO,CAACtg2B,MAAR,CAAe,CAAf,EAAkB/Z,IAAlB,EAAwB1uB,IAAxB,EAAb;AACA,gBAAM1nC,KAAK,GAAGyw6B,OAAO,CAACtg2B,MAAR,CAAe/Z,IAAI,GAAG,CAAtB,EAAyBq62B,OAAO,CAACtu6B,MAAR,GAAiBi0D,IAA1C,EAAgD1uB,IAAhD,EAAd;;AACA,cAAI5U,IAAI,IAAI9yB,KAAZ,EAAmB;AACfmiF,YAAAA,KAAK,CAACrvD,IAAD,CAAL,GAAc,IAAImg4B,QAAJ,CAAalu1B,QAAb,EAAuBjyC,IAAvB,EAA6B9yB,KAA7B,CAAd;AACH;AACJ,SAPD;AAQA+kE,QAAAA,QAAQ,CAAC+vE,MAAT,CAAgBmO,QAAhB,IAA4B9gE,KAA5B;AACApd,QAAAA,QAAQ,CAAC+21B,iBAAT,CAA2B74wB,QAA3B,IAAuCkvwB,sBAAsB,CAAClvwB,QAAD,CAA7D;;AACA,YAAIA,QAAQ,KAAK,YAAjB,EAA+B;AAC3B,gBAAMsrR,UAAU,GAAGpsV,KAAK,CAAC,aAAD,CAAL,CAAqB+w0B,SAArB,GAAiCp34B,OAAjC,CAAyC,MAAzC,EAAiD,EAAjD,CAAnB;AACA,gBAAM405B,IAAI,GAAGvu1B,KAAK,CAAC4U,GAAN,CAAUm8zB,SAAV,GAAsBrn5B,KAAtB,CAA4B,GAA5B,CAAb;AACA6k6B,UAAAA,IAAI,CAAC5p3B,OAAL,CAAciwC,GAAD,IAAO;AAChB,gBAAIA,GAAG,CAACrmD,OAAJ,CAAY,eAAZ,IAA+B,CAAnC,EAAsC;AAClC,oBAAMtC,GAAG,GAAGij3B,gBAAgB,CAACt6zB,GAAD,CAA5B;;AACA,kBAAI3oD,GAAJ,EAAS;AACL,qBAAK,IAAI6h4B,aAAJ,CAAkBlr2B,QAAlB,EAA4B83B,IAA5B,CAAiC0xU,UAAjC,EAA6CngY,GAA7C,CAAL;AACH;AACJ;AACJ,WAPD;AAQH;AACJ,OA5BD;AA6BH,KArCD;AAsCH;;AAhD8B;;AAkDnCgi4B,YAAY,CAAC/e,gBAAb,GAAgCA,gBAAhC;;AAEA,MAAMsf,UAAN,SAAyB3R,eAAzB,CAAyC;AACrC3D,EAAAA,UAAU,CAAC3nhB,GAAD,EAAM;AACZ,UAAM2nhB,UAAN,CAAiB3nhB,GAAjB;AACA,UAAMovhB,KAAK,GAAG,KAAKt1xB,YAAL,CAAkB,GAAlB,CAAd;AACA,UAAMu1xB,KAAK,GAAG,KAAKv1xB,YAAL,CAAkB,GAAlB,CAAd;;AACA,QAAIs1xB,KAAK,CAACvqvB,QAAN,EAAJ,EAAsB;AAClBm7N,MAAAA,GAAG,CAAC1oP,SAAJ,CAAc83wB,KAAK,CAAC/O,SAAN,CAAgB,GAAhB,CAAd,EAAoC,CAApC;AACH;;AACD,QAAIgP,KAAK,CAACxqvB,QAAN,EAAJ,EAAsB;AAClBm7N,MAAAA,GAAG,CAAC1oP,SAAJ,CAAc,CAAd,EAAiB+3wB,KAAK,CAAChP,SAAN,CAAgB,GAAhB,CAAjB;AACH;AACJ;;AACDls5B,EAAAA,IAAI,CAAC6rY,GAAD,EAAM;AACN,UAAM;AAAEn2S,MAAAA;AAAF,QAAe,IAArB;;AACA,QAAIA,OAAJ,EAAa;AACTA,MAAAA,OAAO,CAAC11F,IAAR,CAAa6rY,GAAb;AACH;AACJ;;AACD4nhB,EAAAA,cAAc,CAAC5nhB,GAAD,EAAM;AAChB,UAAM;AAAE3uU,MAAAA,QAAF;AAAaw4B,MAAAA;AAAb,QAA0B,IAAhC;;AACA,QAAIA,OAAJ,EAAa;AACT,UAAIqz0B,OAAO,GAAGrz0B,OAAd;;AACA,UAAIA,OAAO,CAAC5qD,IAAR,KAAiB,QAArB,EAA+B;AAC3B;AACAi+3B,QAAAA,OAAO,GAAG,IAAIpxL,UAAJ,CAAez6qB,QAAf,CAAV;AACA6r2B,QAAAA,OAAO,CAACt+5B,UAAR,CAAmBsn1B,OAAnB,GAA6B,IAAIq5D,QAAJ,CAAalu1B,QAAb,EAAuB,SAAvB,EAAkCw4B,OAAO,CAACiwC,YAAR,CAAqB,SAArB,EAAgC0lxB,SAAhC,EAAlC,CAA7B;AACA0d,QAAAA,OAAO,CAACt+5B,UAAR,CAAmB805B,mBAAnB,GAAyC,IAAInU,QAAJ,CAAalu1B,QAAb,EAAuB,qBAAvB,EAA8Cw4B,OAAO,CAACiwC,YAAR,CAAqB,qBAArB,EAA4C0lxB,SAA5C,EAA9C,CAAzC;AACA0d,QAAAA,OAAO,CAACt+5B,UAAR,CAAmB87H,QAAnB,GAA8B,IAAI6kxB,QAAJ,CAAalu1B,QAAb,EAAuB,UAAvB,EAAmCw4B,OAAO,CAACiwC,YAAR,CAAqB,UAArB,EAAiC0lxB,SAAjC,EAAnC,CAA9B;AACA0d,QAAAA,OAAO,CAAC340B,QAAR,GAAmBsF,OAAO,CAACtF,QAA3B,CAN2B,CAO3B;;AACAsF,QAAAA,OAAO,CAACu3C,MAAR,CAAe3G,OAAf,GAAyB,IAAI8kxB,QAAJ,CAAalu1B,QAAb,EAAuB,SAAvB,EAAkC,KAAKk61B,gBAAL,EAAlC,CAAzB;AACH;;AACD,UAAI2R,OAAO,CAACj+3B,IAAR,KAAiB,KAArB,EAA4B;AACxB,cAAMwm3B,UAAU,GAAG,KAAK72V,QAAL,CAAc,OAAd,EAAuB,KAAvB,EAA8B,IAA9B,CAAnB;AACA,cAAM82V,WAAW,GAAG,KAAK92V,QAAL,CAAc,QAAd,EAAwB,KAAxB,EAA+B,IAA/B,CAApB,CAFwB,CAGxB;;AACA,YAAI62V,UAAU,CAAC5gvB,QAAX,EAAJ,EAA2B;AACvBq4vB,UAAAA,OAAO,CAACt+5B,UAAR,CAAmBu6E,KAAnB,GAA2B,IAAIom0B,QAAJ,CAAalu1B,QAAb,EAAuB,OAAvB,EAAgCo01B,UAAU,CAACjG,SAAX,EAAhC,CAA3B;AACH;;AACD,YAAIkG,WAAW,CAAC7gvB,QAAZ,EAAJ,EAA4B;AACxBq4vB,UAAAA,OAAO,CAACt+5B,UAAR,CAAmBw7H,MAAnB,GAA4B,IAAImlxB,QAAJ,CAAalu1B,QAAb,EAAuB,QAAvB,EAAiCq01B,WAAW,CAAClG,SAAZ,EAAjC,CAA5B;AACH;AACJ;;AACD,YAAM2d,SAAS,GAAGD,OAAO,CAACvm1B,MAA1B;AACAum1B,MAAAA,OAAO,CAACvm1B,MAAR,GAAiB,IAAjB;AACAum1B,MAAAA,OAAO,CAACn9hB,MAAR,CAAeC,GAAf;AACAk9hB,MAAAA,OAAO,CAACvm1B,MAAR,GAAiBwm1B,SAAjB;AACH;AACJ;;AACD7P,EAAAA,cAAc,CAACtthB,GAAD,EAAM;AAChB,UAAM;AAAEn2S,MAAAA;AAAF,QAAe,IAArB;;AACA,QAAIA,OAAJ,EAAa;AACT,aAAOA,OAAO,CAACyj0B,cAAR,CAAuBtthB,GAAvB,CAAP;AACH;;AACD,WAAO,IAAP;AACH;;AACDo9hB,EAAAA,gBAAgB,GAAG;AACf,UAAM;AAAE/r2B,MAAAA,QAAF;AAAaw4B,MAAAA;AAAb,QAA0B,IAAhC;;AACA,QAAI,CAACA,OAAL,EAAc;AACV,aAAO,IAAP;AACH;;AACD,WAAOi9zB,SAAS,CAACC,WAAV,CAAsB111B,QAAtB,EAAgCw4B,OAAhC,CAAP;AACH;;AACU,MAAPA,OAAO,GAAG;AACV,QAAI,CAAC,KAAKwz0B,aAAV,EAAyB;AACrB,WAAKA,aAAL,GAAqB,KAAKxc,gBAAL,GAAwB5h0B,aAAxB,EAArB;AACH;;AACD,WAAO,KAAKo+0B,aAAZ;AACH;;AACD3j4B,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,KAAZ;AACH;;AAxEoC;;AA2EzC,SAASq+3B,KAAT,CAAepnhB,GAAf,EAAoB93V,CAApB,EAAuBwlF,CAAvB,EAA0BzqD,KAA1B,EAAiC28T,OAAjC,EAA0C1pR,IAA1C,EAAgD;AAC5C,SAAO8pR,GAAG,CAACtyQ,CAAC,GAAGzqD,KAAJ,GAAY,CAAZ,GAAgB/6B,CAAC,GAAG,CAApB,GAAwBguE,IAAzB,CAAV;AACH;;AACD,SAASmxyB,KAAT,CAAernhB,GAAf,EAAoB93V,CAApB,EAAuBwlF,CAAvB,EAA0BzqD,KAA1B,EAAiC28T,OAAjC,EAA0C1pR,IAA1C,EAAgDr4F,GAAhD,EAAqD;AACjDmiX,EAAAA,GAAG,CAACtyQ,CAAC,GAAGzqD,KAAJ,GAAY,CAAZ,GAAgB/6B,CAAC,GAAG,CAApB,GAAwBguE,IAAzB,CAAH,GAAoCr4F,GAApC;AACH;;AACD,SAASykC,CAAT,CAAWyqU,MAAX,EAAmB31Y,CAAnB,EAAsB85E,CAAtB,EAAyB;AACrB,QAAMkpgB,EAAE,GAAGrtM,MAAM,CAAC31Y,CAAD,CAAjB;AACA,SAAOgjlB,EAAE,GAAGlpgB,CAAZ;AACH;;AACD,SAASzpB,CAAT,CAAW9B,CAAX,EAAc2nT,EAAd,EAAkBC,EAAlB,EAAsB+5jB,EAAtB,EAA0B;AACtB,SAAOh6jB,EAAE,GAAGj+T,IAAI,CAAC8gQ,GAAL,CAASxqP,CAAT,IAAc4nT,EAAnB,GAAwBl+T,IAAI,CAAC+gQ,GAAL,CAASzqP,CAAT,IAAc2h3B,EAA7C;AACH;;AACD,MAAMC,oBAAN,SAAmChhyB,OAAnC,CAA2C;AACvChkE,EAAAA,KAAK,CAACunU,GAAD,EAAM99T,EAAN,EAAU6yV,EAAV,EAAc57U,KAAd,EAAqBihD,MAArB,EAA6B;AAC9B;AACA,UAAM;AAAEsjyB,MAAAA,cAAF;AAAmBz6hB,MAAAA;AAAnB,QAA+B,IAArC;AACA,UAAM06hB,OAAO,GAAG39hB,GAAG,CAAC49hB,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuBzk1B,KAAvB,EAA8BihD,MAA9B,CAAhB;;AACA,SAAI,IAAIwJ,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGxJ,MAAnB,EAA2BwJ,CAAC,EAA5B,EAA+B;AAC3B,WAAI,IAAIxlF,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAG+6B,KAAnB,EAA0B/6B,CAAC,EAA3B,EAA8B;AAC1B,cAAMwxB,CAAC,GAAG0t1B,KAAK,CAACK,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,CAAf;AACA,cAAM1hC,CAAC,GAAG4k0B,KAAK,CAACK,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,CAAf;AACA,cAAMt+E,CAAC,GAAGwh3B,KAAK,CAACK,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,CAAf;AACA,cAAMv+E,CAAC,GAAGyh3B,KAAK,CAACK,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,CAAf;AACA,YAAI40b,EAAE,GAAGx2f,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYrzT,CAAZ,CAAD,GAAkBpX,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYvqS,CAAZ,CAAnB,GAAoClgC,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYnnV,CAAZ,CAArC,GAAsD0c,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYpnV,CAAZ,CAAvD,GAAwE2c,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAY,CAAZ,CAAlF;AACA,YAAIk+M,EAAE,GAAG3ohB,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYrzT,CAAZ,CAAD,GAAkBpX,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYvqS,CAAZ,CAAnB,GAAoClgC,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYnnV,CAAZ,CAArC,GAAsD0c,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAYpnV,CAAZ,CAAvD,GAAwE2c,CAAC,CAACyqU,MAAD,EAAS,CAAT,EAAY,CAAZ,CAAlF;AACA,YAAIgY,EAAE,GAAGziV,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAarzT,CAAb,CAAD,GAAmBpX,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAavqS,CAAb,CAApB,GAAsClgC,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAannV,CAAb,CAAvC,GAAyD0c,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAapnV,CAAb,CAA1D,GAA4E2c,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAa,CAAb,CAAtF;AACA,YAAIiY,EAAE,GAAG1iV,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAarzT,CAAb,CAAD,GAAmBpX,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAavqS,CAAb,CAApB,GAAsClgC,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAannV,CAAb,CAAvC,GAAyD0c,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAapnV,CAAb,CAA1D,GAA4E2c,CAAC,CAACyqU,MAAD,EAAS,EAAT,EAAa,CAAb,CAAtF;;AACA,YAAIy6hB,cAAJ,EAAoB;AAChB1uW,UAAAA,EAAE,GAAG,CAAL;AACAmyB,UAAAA,EAAE,GAAG,CAAL;AACAlmM,UAAAA,EAAE,GAAG,CAAL;AACAC,UAAAA,EAAE,IAAIr/V,CAAC,GAAG,GAAV;AACH;;AACD0h3B,QAAAA,KAAK,CAACI,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,EAAuC40b,EAAvC,CAAL;AACAuuW,QAAAA,KAAK,CAACI,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,EAAuC+md,EAAvC,CAAL;AACAo8U,QAAAA,KAAK,CAACI,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,EAAuC6gR,EAAvC,CAAL;AACAsihB,QAAAA,KAAK,CAACI,OAAO,CAACnv6B,IAAT,EAAe4vD,CAAf,EAAkBwlF,CAAlB,EAAqBzqD,KAArB,EAA4BihD,MAA5B,EAAoC,CAApC,EAAuC8gR,EAAvC,CAAL;AACH;AACJ;;AACDlb,IAAAA,GAAG,CAAC4Y,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoBz/T,KAApB,EAA2BihD,MAA3B;AACA4lQ,IAAAA,GAAG,CAAC0nM,YAAJ,CAAiBi2V,OAAjB,EAA0B,CAA1B,EAA6B,CAA7B;AACH;;AACDjk4B,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,eAAZ;AACA,QAAIgkW,MAAM,GAAGq6gB,SAAS,CAAC,KAAKxjxB,YAAL,CAAkB,QAAlB,EAA4B0lxB,SAA5B,EAAD,CAAtB;;AACA,YAAO,KAAK1lxB,YAAL,CAAkB,MAAlB,EAA0B0lxB,SAA1B,CAAoC,QAApC,CAAP;AACI,WAAK,UAAL;AACI;AACI,gBAAMnh2B,CAAC,GAAG4kV,MAAM,CAAC,CAAD,CAAhB;AACA;;AAA2CA,UAAAA,MAAM,GAAG,CAChD,QAAQ,QAAQ5kV,CADgC,EAEhD,QAAQ,QAAQA,CAFgC,EAGhD,QAAQ,QAAQA,CAHgC,EAIhD,CAJgD,EAKhD,CALgD,EAMhD,QAAQ,QAAQA,CANgC,EAOhD,QAAQ,QAAQA,CAPgC,EAQhD,QAAQ,QAAQA,CARgC,EAShD,CATgD,EAUhD,CAVgD,EAWhD,QAAQ,QAAQA,CAXgC,EAYhD,QAAQ,QAAQA,CAZgC,EAahD,QAAQ,QAAQA,CAbgC,EAchD,CAdgD,EAehD,CAfgD,EAgBhD,CAhBgD,EAiBhD,CAjBgD,EAkBhD,CAlBgD,EAmBhD,CAnBgD,EAoBhD,CApBgD,EAqBhD,CArBgD,EAsBhD,CAtBgD,EAuBhD,CAvBgD,EAwBhD,CAxBgD,EAyBhD,CAzBgD,CAAT;AA2B3C;AACH;;AACL,WAAK,WAAL;AACI;AACI,gBAAMxC,CAAC,GAAGonV,MAAM,CAAC,CAAD,CAAN,GAAY19V,IAAI,CAAC2hQ,EAAjB,GAAsB,GAAhC;AACA;;AAA2C+7F,UAAAA,MAAM,GAAG,CAChDtlV,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,KAAX,EAAkB,CAAC,KAAnB,CAD+C,EAEhD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,CAAC,KAAZ,EAAmB,CAAC,KAApB,CAF+C,EAGhD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,CAAC,KAAZ,EAAmB,KAAnB,CAH+C,EAIhD,CAJgD,EAKhD,CALgD,EAMhD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,CAAC,KAAZ,EAAmB,KAAnB,CAN+C,EAOhD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,KAAX,EAAkB,IAAlB,CAP+C,EAQhD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,CAAC,KAAZ,EAAmB,CAAC,KAApB,CAR+C,EAShD,CATgD,EAUhD,CAVgD,EAWhD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,CAAC,KAAZ,EAAmB,CAAC,KAApB,CAX+C,EAYhD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,CAAC,KAAZ,EAAmB,KAAnB,CAZ+C,EAahD8B,CAAC,CAAC9B,CAAD,EAAI,KAAJ,EAAW,KAAX,EAAkB,KAAlB,CAb+C,EAchD,CAdgD,EAehD,CAfgD,EAgBhD,CAhBgD,EAiBhD,CAjBgD,EAkBhD,CAlBgD,EAmBhD,CAnBgD,EAoBhD,CApBgD,EAqBhD,CArBgD,EAsBhD,CAtBgD,EAuBhD,CAvBgD,EAwBhD,CAxBgD,EAyBhD,CAzBgD,CAAT;AA2B3C;AACH;;AACL,WAAK,kBAAL;AACI;AAA2ConV,QAAAA,MAAM,GAAG,CAChD,CADgD,EAEhD,CAFgD,EAGhD,CAHgD,EAIhD,CAJgD,EAKhD,CALgD,EAMhD,CANgD,EAOhD,CAPgD,EAQhD,CARgD,EAShD,CATgD,EAUhD,CAVgD,EAWhD,CAXgD,EAYhD,CAZgD,EAahD,CAbgD,EAchD,CAdgD,EAehD,CAfgD,EAgBhD,MAhBgD,EAiBhD,MAjBgD,EAkBhD,MAlBgD,EAmBhD,CAnBgD,EAoBhD,CApBgD,EAqBhD,CArBgD,EAsBhD,CAtBgD,EAuBhD,CAvBgD,EAwBhD,CAxBgD,EAyBhD,CAzBgD,CAAT;AA2B3C;AA7FR;;AA+FA,SAAKA,MAAL,GAAcA,MAAd;AACA,SAAKy6hB,cAAL,GAAsB,KAAK5jyB,YAAL,CAAkB,gBAAlB,EAAoC+qC,QAApC,EAAtB;AACH;;AAnIsC;;AAsI3C,MAAMg5vB,WAAN,SAA0BphyB,OAA1B,CAAkC;AAC9BhkE,EAAAA,KAAK,CAACunU,GAAD,EAAMn2S,OAAN,EAAe;AAChB,UAAM;AAAEx4B,MAAAA;AAAF,QAAgB,IAAtB,CADgB,CAEhB;;AACA,QAAIjT,CAAC,GAAG,KAAK07E,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAR;AACA,QAAIz8wB,CAAC,GAAG,KAAK9J,YAAL,CAAkB,GAAlB,EAAuBumxB,SAAvB,CAAiC,GAAjC,CAAR;AACA,QAAIln0B,KAAK,GAAG,KAAKy1e,QAAL,CAAc,OAAd,EAAuByxV,SAAvB,CAAiC,GAAjC,CAAZ;AACA,QAAIjmxB,MAAM,GAAG,KAAKw0b,QAAL,CAAc,QAAd,EAAwByxV,SAAxB,CAAkC,GAAlC,CAAb;;AACA,QAAI,CAACln0B,KAAD,IAAU,CAACihD,MAAf,EAAuB;AACnB,YAAMsgb,WAAW,GAAG,IAAIovW,WAAJ,EAApB;AACA,WAAKvl0B,QAAL,CAAcnxC,OAAd,CAAuByxC,KAAD,IAAS;AAC3B61d,QAAAA,WAAW,CAACwvW,cAAZ,CAA2Brl0B,KAAK,CAACyo0B,cAAN,CAAqBtthB,GAArB,CAA3B;AACH,OAFD;AAGA5hV,MAAAA,CAAC,GAAG7Y,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAAC/uK,EAAvB,CAAJ;AACA/nQ,MAAAA,CAAC,GAAGr+F,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAAC9uK,EAAvB,CAAJ;AACAzyT,MAAAA,KAAK,GAAG5zC,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAACvhe,KAAvB,CAAR;AACAihD,MAAAA,MAAM,GAAG70F,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAACtgb,MAAvB,CAAT;AACH;;AACD,UAAM0jyB,aAAa,GAAG,KAAKvV,YAAL,CAAkB1+zB,OAAlB,EAA2Bg00B,WAAW,CAACrV,YAAvC,CAAtB;AACA,UAAMuV,UAAU,GAAG1s2B,QAAQ,CAACyr1B,YAAT,CAAsB1+1B,CAAC,GAAG+6B,KAA1B,EAAiCyqD,CAAC,GAAGxJ,MAArC,CAAnB;AACA,UAAM4jyB,OAAO,GAAGD,UAAU,CAACpk1B,UAAX,CAAsB,IAAtB,CAAhB;AACAtoB,IAAAA,QAAQ,CAAC6njB,MAAT,CAAgBkqS,WAAhB,CAA4B4a,OAA5B;AACA,SAAKpW,cAAL,CAAoBoW,OAApB,EArBgB,CAsBhB;AACA;;AACA,QAAIP,oBAAJ,CAAyBps2B,QAAzB,EAAmC;AAC/B6wE,MAAAA,QAAQ,EAAE,CADqB;AAE/B4X,MAAAA,UAAU,EAAE,EAFmB;AAG/Bl7I,MAAAA,UAAU,EAAE,CACR;AACIujI,QAAAA,QAAQ,EAAE,MADd;AAEI71I,QAAAA,KAAK,EAAE;AAFX,OADQ,EAKR;AACI61I,QAAAA,QAAQ,EAAE,gBADd;AAEI71I,QAAAA,KAAK,EAAE;AAFX,OALQ;AAHmB,KAAnC,EAaGmsE,KAbH,CAaSul2B,OAbT,EAakB,CAblB,EAaqB,CAbrB,EAawB5/2B,CAAC,GAAG+6B,KAb5B,EAamCyqD,CAAC,GAAGxJ,MAbvC;AAcA,UAAM6jyB,SAAS,GAAG5s2B,QAAQ,CAACyr1B,YAAT,CAAsB1+1B,CAAC,GAAG+6B,KAA1B,EAAiCyqD,CAAC,GAAGxJ,MAArC,CAAlB;AACA,UAAM8jyB,MAAM,GAAGD,SAAS,CAACtk1B,UAAV,CAAqB,IAArB,CAAf;AACAtoB,IAAAA,QAAQ,CAAC6njB,MAAT,CAAgBkqS,WAAhB,CAA4B8a,MAA5B;AACAr00B,IAAAA,OAAO,CAACk2S,MAAR,CAAem+hB,MAAf;AACAA,IAAAA,MAAM,CAAC/8V,wBAAP,GAAkC,gBAAlC;AACA+8V,IAAAA,MAAM,CAAC59hB,SAAP,GAAmB09hB,OAAO,CAACl7V,aAAR,CAAsBi7V,UAAtB,EAAkC,WAAlC,CAAnB;AACAG,IAAAA,MAAM,CAACrlhB,QAAP,CAAgB,CAAhB,EAAmB,CAAnB,EAAsBz6V,CAAC,GAAG+6B,KAA1B,EAAiCyqD,CAAC,GAAGxJ,MAArC;AACA4lQ,IAAAA,GAAG,CAACM,SAAJ,GAAgB49hB,MAAM,CAACp7V,aAAP,CAAqBm7V,SAArB,EAAgC,WAAhC,CAAhB;AACAj+hB,IAAAA,GAAG,CAAC6Y,QAAJ,CAAa,CAAb,EAAgB,CAAhB,EAAmBz6V,CAAC,GAAG+6B,KAAvB,EAA8ByqD,CAAC,GAAGxJ,MAAlC,EA9CgB,CA+ChB;;AACA,SAAKuuxB,aAAL,CAAmB9+zB,OAAnB,EAA4Bi00B,aAA5B;AACH;;AACD/9hB,EAAAA,MAAM,CAAC5gX,CAAD,EAAI,CACV;AACC;;AACDua,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,MAAZ;AACH;;AAzD6B;;AA2DlC4+3B,WAAW,CAACrV,YAAZ,GAA2B,CACvB,MADuB,EAEvB,WAFuB,EAGvB,WAHuB,CAA3B;;AAMA,MAAM73X,IAAI,GAAG,MAAI,CACjB;AACC,CAFD;;AAGA,MAAMwtY,eAAN,SAA8B1hyB,OAA9B,CAAsC;AAClChkE,EAAAA,KAAK,CAACunU,GAAD,EAAM;AACP,UAAM;AAAE3uU,MAAAA;AAAF,QAAgB,IAAtB;AACA,UAAM+s2B,YAAY,GAAGvu1B,OAAO,CAAChI,cAAR,CAAuBm4T,GAAvB,CAArB;AACA,UAAM;AAAE6R,MAAAA,SAAF;AAAchF,MAAAA;AAAd,QAA6B7M,GAAnC;;AACA,QAAIo+hB,YAAJ,EAAkB;AACdA,MAAAA,YAAY,CAACvshB,SAAb,GAAyB8+I,IAAzB;AACAytY,MAAAA,YAAY,CAACvxhB,SAAb,GAAyB8jJ,IAAzB;AACH;;AACD9gd,IAAAA,OAAO,CAACpX,KAAR,CAAco5U,SAAd,EAAyB7R,GAAzB,EAA8B,EAA9B;AACA,SAAKz7S,QAAL,CAAcnxC,OAAd,CAAuByxC,KAAD,IAAS;AAC3B,UAAI,EAAE,UAAUA,KAAZ,CAAJ,EAAwB;AACpB;AACH;;AACD,UAAI/e,SAAS,GAAG,sBAAsB+e,KAAtB,GAA8BA,KAAK,CAACu40B,gBAAN,EAA9B,GAAyD,IAAzE,CAA8E;AAA9E;;AAEA,UAAI,CAACt31B,SAAL,EAAgB;AACZA,QAAAA,SAAS,GAAGgh1B,SAAS,CAACC,WAAV,CAAsB111B,QAAtB,EAAgCwzB,KAAhC,CAAZ;AACH;;AACD,UAAI/e,SAAJ,EAAe;AACXA,QAAAA,SAAS,CAACrN,KAAV,CAAgBunU,GAAhB;AACH;;AACDn7S,MAAAA,KAAK,CAAC1wF,IAAN,CAAW6rY,GAAX;;AACA,UAAIo+hB,YAAJ,EAAkB;AACdA,QAAAA,YAAY,CAACvxhB,SAAb,GAAyBA,SAAzB;AACH;;AACD,UAAI/mU,SAAJ,EAAe;AACXA,QAAAA,SAAS,CAACwg1B,OAAV,CAAkBtmhB,GAAlB;AACH;AACJ,KAnBD;AAoBAnwT,IAAAA,OAAO,CAACpX,KAAR,CAAco0U,SAAd,EAAyB7M,GAAzB,EAA8B,EAA9B;AACAA,IAAAA,GAAG,CAACuyD,IAAJ;;AACA,QAAI6re,YAAJ,EAAkB;AACdA,MAAAA,YAAY,CAACvshB,SAAb,GAAyBA,SAAzB;AACAushB,MAAAA,YAAY,CAACvxhB,SAAb,GAAyBA,SAAzB;AACH;AACJ;;AACD9M,EAAAA,MAAM,CAAC5gX,CAAD,EAAI,CACV;AACC;;AACDua,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,UAAZ;AACH;;AA3CiC;;AA8CtC,MAAMo/3B,aAAN,SAA4B5hyB,OAA5B,CAAoC;AAChChkE,EAAAA,KAAK,CAACunU,GAAD,EAAMn2S,OAAN,EAAe;AAChB;AACA,UAAM;AAAEx4B,MAAAA,QAAF;AAAakzB,MAAAA;AAAb,QAA2B,IAAjC;AACA,UAAMm2d,WAAW,GAAG,oBAAoB7wd,OAApB,GAA8BA,OAAO,CAACyj0B,cAAR,CAAuBtthB,GAAvB,CAA9B,GAA4D,IAAhF;;AACA,QAAI,CAAC06K,WAAL,EAAkB;AACd;AACH;;AACD,QAAIl6R,EAAE,GAAG,CAAT;AACA,QAAImvH,EAAE,GAAG,CAAT;AACAprT,IAAAA,QAAQ,CAACnxC,OAAT,CAAkByxC,KAAD,IAAS;AACtB,YAAMy50B,GAAG,GAAGz50B,KAAK,CAAC050B,mBAAN,IAA6B,CAAzC;AACA/9oB,MAAAA,EAAE,GAAGj7O,IAAI,CAACC,GAAL,CAASg7O,EAAT,EAAa89oB,GAAb,CAAL;AACA3uhB,MAAAA,EAAE,GAAGpqW,IAAI,CAACC,GAAL,CAASmqW,EAAT,EAAa2uhB,GAAb,CAAL;AACH,KAJD;AAKA,UAAMnl1B,KAAK,GAAG5zC,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAACvhe,KAAvB,CAAd;AACA,UAAMihD,MAAM,GAAG70F,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAACtgb,MAAvB,CAAf;AACA,UAAMokyB,cAAc,GAAGrl1B,KAAK,GAAG,IAAIqnM,EAAnC;AACA,UAAMi+oB,eAAe,GAAGrkyB,MAAM,GAAG,IAAIu1Q,EAArC;;AACA,QAAI6uhB,cAAc,GAAG,CAAjB,IAAsBC,eAAe,GAAG,CAA5C,EAA+C;AAC3C;AACH;;AACD,UAAMrg3B,CAAC,GAAG7Y,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAACt8f,CAAvB,CAAV;AACA,UAAMwlF,CAAC,GAAGr+F,IAAI,CAACkY,KAAL,CAAWi9f,WAAW,CAAC92a,CAAvB,CAAV;AACA,UAAMk6xB,aAAa,GAAG,KAAKvV,YAAL,CAAkB1+zB,OAAlB,EAA2Bw00B,aAAa,CAAC7V,YAAzC,CAAtB;AACA,UAAMyV,SAAS,GAAG5s2B,QAAQ,CAACyr1B,YAAT,CAAsB0hB,cAAtB,EAAsCC,eAAtC,CAAlB;AACA,UAAMP,MAAM,GAAGD,SAAS,CAACtk1B,UAAV,CAAqB,IAArB,CAAf;AACAtoB,IAAAA,QAAQ,CAAC6njB,MAAT,CAAgBkqS,WAAhB,CAA4B8a,MAA5B;AACAA,IAAAA,MAAM,CAAC5mxB,SAAP,CAAiB,CAACl5F,CAAD,GAAKoiO,EAAtB,EAA0B,CAAC58I,CAAD,GAAK+rQ,EAA/B;AACA9lT,IAAAA,OAAO,CAACk2S,MAAR,CAAem+hB,MAAf,EA5BgB,CA6BhB;;AACA350B,IAAAA,QAAQ,CAACnxC,OAAT,CAAkByxC,KAAD,IAAS;AACtB,UAAI,OAAOA,KAAK,CAACpsB,KAAb,KAAuB,UAA3B,EAAuC;AACnCosB,QAAAA,KAAK,CAACpsB,KAAN,CAAYyl2B,MAAZ,EAAoB,CAApB,EAAuB,CAAvB,EAA0BM,cAA1B,EAA0CC,eAA1C;AACH;AACJ,KAJD,EA9BgB,CAmChB;;AACAz+hB,IAAAA,GAAG,CAACuiM,SAAJ,CAAc07V,SAAd,EAAyB,CAAzB,EAA4B,CAA5B,EAA+BO,cAA/B,EAA+CC,eAA/C,EAAgErg3B,CAAC,GAAGoiO,EAApE,EAAwE58I,CAAC,GAAG+rQ,EAA5E,EAAgF6uhB,cAAhF,EAAgGC,eAAhG;AACA,SAAK9V,aAAL,CAAmB9+zB,OAAnB,EAA4Bi00B,aAA5B;AACH;;AACD/9hB,EAAAA,MAAM,CAAC5gX,CAAD,EAAI,CACV;AACC;;AACDua,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,QAAZ;AACH;;AA9C+B;;AAgDpCo/3B,aAAa,CAAC7V,YAAd,GAA6B,CACzB,QADyB,EAEzB,WAFyB,EAGzB,WAHyB,CAA7B;;AAMA,MAAMkW,mBAAN,SAAkCjiyB,OAAlC,CAA0C;AACtChkE,EAAAA,KAAK,CAACt5C,CAAD,EAAI+iD,EAAJ,EAAQ6yV,EAAR,EAAYlf,MAAZ,EAAoBC,OAApB,EAA6B,CAClC;AACC;;AACDp8W,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,cAAZ;AACA,SAAKkp3B,4BAAL;AACH;;AARqC;;AAW1C,MAAMwW,mBAAN,SAAkCliyB,OAAlC,CAA0C;AACtChkE,EAAAA,KAAK,CAACt5C,CAAD,EAAI+iD,EAAJ,EAAQ6yV,EAAR,EAAYlf,MAAZ,EAAoBC,OAApB,EAA6B,CAClC;AACC;;AACDp8W,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,cAAZ;AACH;;AAPqC;;AAU1C,MAAM2/3B,kBAAN,SAAiCniyB,OAAjC,CAAyC;AACrChkE,EAAAA,KAAK,CAACt5C,CAAD,EAAI+iD,EAAJ,EAAQ6yV,EAAR,EAAYlf,MAAZ,EAAoBC,OAApB,EAA6B,CAClC;AACC;;AACDp8W,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,aAAZ;AACH;;AAPoC;;AAUzC,MAAM4/3B,qBAAN,SAAoCpiyB,OAApC,CAA4C;AACxChkE,EAAAA,KAAK,CAACunU,GAAD,EAAM5hV,CAAN,EAASwlF,CAAT,EAAYzqD,KAAZ,EAAmBihD,MAAnB,EAA2B;AAC5B,UAAM;AAAE/oE,MAAAA,QAAF;AAAayt2B,MAAAA;AAAb,QAA6B,IAAnC;AACA,UAAM7p6B,IAAI,GAAGo8D,QAAQ,CAAC5c,MAAT,GAAkB4c,QAAQ,CAAC5c,MAAT,CAAgB4c,QAAhB,CAAyBp8D,IAA3C,GAAkD,IAA/D;AACA,UAAMyzY,MAAM,GAAG1I,GAAG,CAAC0I,MAAnB,CAH4B,CAI5B;;AACAA,IAAAA,MAAM,CAACnvY,EAAP,GAAY83D,QAAQ,CAAC2tB,WAAT,EAAZ;;AACA,QAAI/pF,IAAJ,EAAU;AACNyzY,MAAAA,MAAM,CAACvuQ,KAAP,CAAaqvG,OAAb,GAAuB,MAAvB;AACAv0O,MAAAA,IAAI,CAACilI,WAAL,CAAiBwuQ,MAAjB;AACH;;AACDg0gB,IAAAA,4DAAU,CAACh0gB,MAAD,EAAStqV,CAAT,EAAYwlF,CAAZ,EAAezqD,KAAf,EAAsBihD,MAAtB,EAA8B0kyB,UAA9B,CAAV;;AACA,QAAI7p6B,IAAJ,EAAU;AACNA,MAAAA,IAAI,CAACqlI,WAAL,CAAiBouQ,MAAjB;AACH;AACJ;;AACDhvW,EAAAA,WAAW,CAAC23B,QAAD,EAAWprD,IAAX,EAAiB4i5B,gBAAjB,EAAkC;AACzC,UAAMx31B,QAAN,EAAgBprD,IAAhB,EAAsB4i5B,gBAAtB;AACA,SAAK5p3B,IAAL,GAAY,gBAAZ;AACA,SAAK6/3B,UAAL,GAAkBv53B,IAAI,CAACkY,KAAL,CAAW,KAAKq8E,YAAL,CAAkB,cAAlB,EAAkC+lxB,SAAlC,EAAX,CAAlB;AACA,SAAK0e,mBAAL,GAA2B,KAAKO,UAAhC;AACH;;AArBuC;;AAwB5C,MAAMC,YAAN,SAA2BtiyB,OAA3B,CAAmC;AAC/B/iG,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,OAAZ;AACH;;AAJ8B;;AAOnC,MAAM+/3B,WAAN,SAA0BviyB,OAA1B,CAAkC;AAC9B/iG,EAAAA,WAAW,CAAC,GAAGvqC,IAAJ,EAAS;AAChB,UAAM,GAAGA,IAAT;AACA,SAAK8vC,IAAL,GAAY,MAAZ;AACH;;AAJ6B;;AAOlC,MAAMiuL,QAAQ,GAAG;AACb,SAAO4+gB,UADM;AAEb,UAAQmoL,WAFK;AAGb,YAAUI,aAHG;AAIb,aAAWC,cAJE;AAKb,UAAQC,WALK;AAMb,cAAYE,eANC;AAOb,aAAWC,cAPE;AAQb,UAAQvD,WARK;AASb,aAAWwD,cATE;AAUb,YAAUK,aAVG;AAWb,UAAQI,WAXK;AAYb,oBAAkBY,qBAZL;AAab,oBAAkBE,qBAbL;AAcb,UAAQE,WAdK;AAeb,aAAWG,cAfE;AAgBb,kBAAgBS,mBAhBH;AAiBb,sBAAoBG,uBAjBP;AAkBb,UAAQO,WAlBK;AAmBb,eAAaH,eAnBA;AAoBb,mBAAiBE,mBApBJ;AAqBb,WAASD,YArBI;AAsBb,UAAQvK,WAtBK;AAuBb,WAAS6C,YAvBI;AAwBb,UAAQ+H,WAxBK;AAyBb,OAAKC,QAzBQ;AA0Bb,cAAYG,eA1BC;AA2Bb,WAASgE,YA3BI;AA4Bb,OAAK5G,QA5BQ;AA6Bb,YAAUiH,aA7BG;AA8Bb,WAASI,YA9BI;AA+Bb,SAAOO,UA/BM;AAgCb,UAAQY,WAhCK;AAiCb,cAAYM,eAjCC;AAkCb,YAAUE,aAlCG;AAmCb,kBAAgBK,mBAnCH;AAoCb,kBAAgBC,mBApCH;AAqCb,iBAAeC,kBArCF;AAsCb,mBAAiBnB,oBAtCJ;AAuCb,oBAAkBoB,qBAvCL;AAwCb,WAASE,YAxCI;AAyCb,UAAQC;AAzCK,CAAjB;;AA4CA,SAASliB,YAAT,CAAsB3j0B,KAAtB,EAA6BihD,MAA7B,EAAqC;AACjC,QAAMsuQ,MAAM,GAAGr3U,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACAo3U,EAAAA,MAAM,CAACvvT,KAAP,GAAeA,KAAf;AACAuvT,EAAAA,MAAM,CAACtuQ,MAAP,GAAgBA,MAAhB;AACA,SAAOsuQ,MAAP;AACH;;SACcs0gB;;;;;yKAAf,WAA2B35zB,GAA3B,EAAgC;AAC5B,QAAI470B,oBAAoB,GAAGvm2B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAA5F;AACA,UAAMskT,KAAK,GAAG3rT,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd;;AACA,QAAI2t2B,oBAAJ,EAA0B;AACtBjijB,MAAAA,KAAK,CAACy9Q,WAAN,GAAoB,WAApB;AACH;;AACD,WAAO,IAAItkmB,OAAJ,CAAY,CAACc,OAAD,EAAUb,MAAV,KAAmB;AAClC4mV,MAAAA,KAAK,CAACjzD,MAAN,GAAe,MAAI;AACf9yR,QAAAA,OAAO,CAAC+lV,KAAD,CAAP;AACH,OAFD;;AAGAA,MAAAA,KAAK,CAAC9/U,OAAN,GAAgB,CAACqhC,MAAD,EAAS+nkB,OAAT,EAAkB44R,OAAlB,EAA2BC,MAA3B,EAAmCvx6B,KAAnC,KAA2C;AACvDwoC,QAAAA,MAAM,CAACxoC,KAAD,CAAN;AACH,OAFD;;AAGAovX,MAAAA,KAAK,CAAC35R,GAAN,GAAYA,GAAZ;AACH,KARM,CAAP;AASH;;;;AACD,MAAM+70B,eAAe,GAAG,EAAxB;;AACA,MAAM9lM,QAAN,CAAe;AACX+lM,EAAAA,eAAe,CAACC,YAAD,EAAeL,oBAAf,EAAqC;AAChD,QAAI,OAAOA,oBAAP,KAAgC,SAApC,EAA+C;AAC3C,aAAO,CAACpo3B,MAAD,EAAS0o3B,yBAAT,KAAqCD,YAAY,CAACzo3B,MAAD,EAAS,OAAO0o3B,yBAAP,KAAqC,SAArC,GAAiDA,yBAAjD,GAA6EN,oBAAtF,CAAxD;AAEH;;AACD,WAAOK,YAAP;AACH;;AACS,MAAN7q3B,MAAM,GAAG;AACT,WAAO,KAAKykkB,MAAL,CAAYzkkB,MAAnB;AACH;;AACQ,MAALxZ,KAAK,GAAG;AACR,WAAO,KAAKi+kB,MAAL,CAAYj+kB,KAAnB;AACH;;AACM,MAAH+kW,GAAG,GAAG;AACN,WAAO,KAAKk5O,MAAL,CAAYl5O,GAAnB;AACH;;AACS,MAANmghB,MAAM,GAAG;AACT,UAAM;AAAEqf,MAAAA;AAAF,QAAmB,IAAzB;AACA,WAAOA,WAAW,CAACA,WAAW,CAAC/w6B,MAAZ,GAAqB,CAAtB,CAAX,IAAuC2w6B,eAA9C;AACH;;AACS,MAANjf,MAAM,CAAC7z5B,KAAD,EAAQ;AACd,UAAM;AAAEkz6B,MAAAA;AAAF,QAAmB,IAAzB;AACAA,IAAAA,WAAW,CAAC9j4B,IAAZ,CAAiBpvC,KAAjB;AACH;;AACD0g6B,EAAAA,SAAS,GAAG;AACR,UAAM;AAAEwS,MAAAA;AAAF,QAAmB,IAAzB;AACAA,IAAAA,WAAW,CAACpt3B,GAAZ;AACH;;AACD4sC,EAAAA,WAAW,GAAG;AACV,WAAO,QAAQ9yC,MAAR,CAAe,EAAE,KAAKm6E,QAAtB,CAAP;AACH;;AACDo5yB,EAAAA,cAAc,GAAG;AACb,WAAO,KAAKvoiB,MAAL,CAAY/0S,KAAZ,CAAmBhjE,CAAD,IAAKA,CAAC,CAACm7B,MAAzB,CAAP;AAEH;;AACDol3B,EAAAA,aAAa,GAAG;AACZ,WAAO,KAAK92iB,KAAL,CAAWzmS,KAAX,CAAkBhjE,CAAD,IAAKA,CAAC,CAACm7B,MAAxB,CAAP;AAEH;;AACDql3B,EAAAA,qBAAqB,CAACtu2B,QAAD,EAAW;AAC5B,UAAMuqE,eAAe,GAAG,KAAKtqE,aAAL,CAAmBD,QAAQ,CAACuqE,eAA5B,CAAxB;AACAA,IAAAA,eAAe,CAAC88Q,IAAhB,GAAuB,IAAvB;AACA98Q,IAAAA,eAAe,CAACusxB,4BAAhB;AACA,SAAKvsxB,eAAL,GAAuBA,eAAvB;AACA,WAAOA,eAAP;AACH;;AACDtqE,EAAAA,aAAa,CAACrrD,IAAD,EAAO;AAChB,UAAM255B,WAAW,GAAG355B,IAAI,CAACk8H,QAAL,CAAc/5H,OAAd,CAAsB,SAAtB,EAAiC,EAAjC,CAApB;AACA,UAAMy35B,WAAW,GAAGvmM,QAAQ,CAACwmM,YAAT,CAAsBF,WAAtB,CAApB;;AACA,QAAIC,WAAJ,EAAiB;AACb,aAAO,IAAIA,WAAJ,CAAgB,IAAhB,EAAsB555B,IAAtB,CAAP;AACH;;AACD,WAAO,IAAIgj5B,cAAJ,CAAmB,IAAnB,EAAyBhj5B,IAAzB,CAAP;AACH;;AACDk+jB,EAAAA,cAAc,CAACl+jB,IAAD,EAAO;AACjB,WAAO,IAAI8p5B,QAAJ,CAAa,IAAb,EAAmB9p5B,IAAnB,CAAP;AACH;;AACDo94B,EAAAA,UAAU,CAAC/z5B,MAAD,EAAS;AACf,SAAK4pnB,MAAL,CAAYmqS,UAAZ,CAAuB;AACnBhy1B,MAAAA,QAAQ,EAAE,IADS;AAEnB,SAAG/hE;AAFgB,KAAvB;AAIH;;AACDoqC,EAAAA,WAAW,CAACgqjB,KAAD,EAAQ;AAAEu8T,IAAAA,UAAU,GAAEmf,eAAd;AAAgCjf,IAAAA,MAAM,GAAEif,eAAxC;AAA0DtiB,IAAAA,YAAY,EAAEijB,aAAa,GAAGzmM,QAAQ,CAACwjL,YAAjG;AAAgHE,IAAAA,WAAW,EAAEgjB,YAAY,GAAG1mM,QAAQ,CAAC0jL,WAArJ;AAAmKiiB,IAAAA;AAAnK,MAA6L,EAArM,EAAwM;AAC/M,SAAKv7U,KAAL,GAAaA,KAAb;AACA,SAAK6oH,WAAL,GAAmB,EAAnB;AACA,SAAKnrkB,MAAL,GAAc,EAAd;AACA,SAAKgnxB,iBAAL,GAAyB,EAAzB;AACA,SAAKlxhB,MAAL,GAAc,EAAd;AACA,SAAKtO,KAAL,GAAa,EAAb;AACA,SAAK42iB,WAAL,GAAmB,EAAnB;AACA,SAAKn5yB,QAAL,GAAgB,CAAhB;AACA,SAAK6yf,MAAL,GAAcx1B,KAAK,CAACw1B,MAApB;AACA,SAAK+mS,UAAL,GAAkBA,UAAlB;AACA,SAAKE,MAAL,GAAcA,MAAd;AACA,SAAKrD,YAAL,GAAoBijB,aAApB;AACA,SAAK/iB,WAAL,GAAmB,KAAKqiB,eAAL,CAAqBW,YAArB,EAAmCf,oBAAnC,CAAnB;AACA,SAAK/lT,MAAL,CAAY5viB,IAAZ,CAAiB,MAAI,KAAKm21B,cAAL,EAArB;AAEA,SAAKvmT,MAAL,CAAY5viB,IAAZ,CAAiB,MAAI,KAAKo21B,aAAL,EAArB;AAEH;;AAlFU;;AAoFfpmM,QAAQ,CAACwjL,YAAT,GAAwBA,YAAxB;AACAxjL,QAAQ,CAAC0jL,WAAT,GAAuBA,WAAvB;AACA1jL,QAAQ,CAACwmM,YAAT,GAAwB5ysB,QAAxB;AAEA;AACA;AACA;;AAAI,MAAM+ysB,KAAN,CAAY;AACZ;AACJ;AACA;AACA;AACA;AACA;AACA;AAAuB,SAAJpj3B,IAAI,CAACmjV,GAAD,EAAM4W,GAAN,EAAW;AAAA;AAAA;AAC1B,UAAIj9W,OAAO,GAAG++B,UAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,UAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,UAAS,CAAC,CAAD,CAA3D,GAAiE,EAA/E;AACA,YAAMnlC,MAAM,GAAG,IAAI8mgB,MAAJ,CAAW1ggB,OAAX,CAAf;AACA,YAAM6i4B,WAAW,SAASjp4B,MAAM,CAACY,KAAP,CAAayiX,GAAb,CAA1B;AACA,aAAO,IAAIqphB,KAAJ,CAAUjgiB,GAAV,EAAew8hB,WAAf,EAA4B7i4B,OAA5B,CAAP;AAJ0B;AAK7B;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AAAuB,SAAV8xF,UAAU,CAACu0Q,GAAD,EAAM4W,GAAN,EAAW;AAC1B,QAAIj9W,OAAO,GAAG++B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,EAA/E;AACA,UAAMnlC,MAAM,GAAG,IAAI8mgB,MAAJ,CAAW1ggB,OAAX,CAAf;AACA,UAAM6i4B,WAAW,GAAGjp4B,MAAM,CAACwsG,eAAP,CAAuB62Q,GAAvB,CAApB;AACA,WAAO,IAAIqphB,KAAJ,CAAUjgiB,GAAV,EAAew8hB,WAAf,EAA4B7i4B,OAA5B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AAAMq6qB,EAAAA,IAAI,CAACh0U,GAAD,EAAM4W,GAAN,EAAW;AACb,QAAIj9W,OAAO,GAAG++B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,EAA/E;AACA,WAAOun2B,KAAK,CAACpj3B,IAAN,CAAWmjV,GAAX,EAAgB4W,GAAhB,EAAqB,EACxB,GAAG,KAAKj9W,OADgB;AAExB,SAAGA;AAFqB,KAArB,CAAP;AAIH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AAAMyi4B,EAAAA,UAAU,CAACp8hB,GAAD,EAAM4W,GAAN,EAAW;AACnB,QAAIj9W,OAAO,GAAG++B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,EAA/E;AACA,WAAOun2B,KAAK,CAACx0yB,UAAN,CAAiBu0Q,GAAjB,EAAsB4W,GAAtB,EAA2B,EAC9B,GAAG,KAAKj9W,OADsB;AAE9B,SAAGA;AAF2B,KAA3B,CAAP;AAIH;AACD;AACJ;AACA;AACA;;;AAAMuhE,EAAAA,KAAK,GAAG;AACN,WAAO,KAAKg+gB,MAAL,CAAYh+gB,KAAZ,EAAP;AACH;AACD;AACJ;AACA;AACA;;;AAAMwe,EAAAA,OAAO,GAAG;AACR,WAAO,KAAKw/f,MAAL,CAAYx/f,OAAZ,EAAP;AACH;AACD;AACJ;AACA;AACA;;;AAAYqmR,EAAAA,MAAM,GAAG;AAAA;AAAA;;AAAA;AACb,UAAIpmW,OAAO,GAAG++B,WAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,WAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,WAAS,CAAC,CAAD,CAA3D,GAAiE,EAA/E;;AACA,YAAI,CAAC7K,KAAL,CAAW;AACPk31B,QAAAA,YAAY,EAAE,IADP;AAEPlhU,QAAAA,eAAe,EAAE,IAFV;AAGPD,QAAAA,WAAW,EAAE,IAHN;AAIP,WAAGjqjB;AAJI,OAAX;;AAMA,YAAM,MAAI,CAACuhE,KAAL,EAAN;;AACA,YAAI,CAAC1sC,IAAL;AATa;AAUhB;AACD;AACJ;AACA;AACA;;;AAAMX,EAAAA,KAAK,GAAG;AACN,QAAIl0B,OAAO,GAAG++B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,EAA/E;AACA,UAAM;AAAEkjE,MAAAA,eAAF;AAAoBs9e,MAAAA,MAApB;AAA6Bv/kB,MAAAA,OAAO,EAAEum4B;AAAtC,QAAuD,IAA7D;AACAhnT,IAAAA,MAAM,CAACrrjB,KAAP,CAAa+tE,eAAb,EAA8B;AAC1BmpxB,MAAAA,YAAY,EAAE,IADY;AAE1B,SAAGmb,WAFuB;AAG1B,SAAGvm4B;AAHuB,KAA9B;AAKH;AACD;AACJ;AACA;;;AAAM60B,EAAAA,IAAI,GAAG;AACL,SAAK0qjB,MAAL,CAAY1qjB,IAAZ;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AAAM2hN,EAAAA,MAAM,CAACh3L,KAAD,EAAQ;AACZ,QAAIihD,MAAM,GAAG1hE,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiEygB,KAA9E;AAAA,QAAqFu60B,mBAAmB,GAAGh71B,SAAS,CAACjqE,MAAV,GAAmB,CAAnB,IAAwBiqE,SAAS,CAAC,CAAD,CAAT,KAAiB,KAAK,CAA9C,GAAkDA,SAAS,CAAC,CAAD,CAA3D,GAAiE,KAA5K;AACA,SAAKkjE,eAAL,CAAqBu0I,MAArB,CAA4Bh3L,KAA5B,EAAmCihD,MAAnC,EAA2Cs5xB,mBAA3C;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AAAMh63B,EAAAA,WAAW,CAACsmW,GAAD,EAAM4W,GAAN,EAAWj9W,OAAO,GAAG,EAArB,EAAwB;AACjC,SAAKpG,MAAL,GAAc,IAAI8mgB,MAAJ,CAAW1ggB,OAAX,CAAd;AACA,SAAKu/kB,MAAL,GAAc,IAAI4pS,MAAJ,CAAW9ihB,GAAX,EAAgBrmW,OAAhB,CAAd;AACA,SAAKA,OAAL,GAAeA,OAAf;AACA,UAAM03B,QAAQ,GAAG,IAAIioqB,QAAJ,CAAa,IAAb,EAAmB3/rB,OAAnB,CAAjB;AACA,UAAMiiG,eAAe,GAAGvqE,QAAQ,CAACsu2B,qBAAT,CAA+B/ohB,GAA/B,CAAxB;AACA,SAAKvlV,QAAL,GAAgBA,QAAhB;AACA,SAAKuqE,eAAL,GAAuBA,eAAvB;AACH;;AApHW;;;;;;;;;;;;;;;;;;;;;AC9/JmC;AACA;AAC4B;AAC/E;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4GAA4G;;;AAG5G;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,+DAAW;AACxB,KAAK;AACL,IAAI;AACJ;AACA;AACA,kBAAkB,+DAAW;AAC7B;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA,QAAQ,iEAAY;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG;;AAEN;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA,mDAAmD,4BAA4B;AAC/E;;AAEA;AACA,2BAA2B,sEAAa;AACxC;AACA;AACA,IAAI;AACJ,2DAA2D,gCAAgC;AAC3F;AACA,yBAAyB,4EAAmB;AAC5C;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACxK6C;;AAE7C;AACA;AACA;AACA;AACO;AACP,WAAW,8DAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzB8C;AAC9C;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,aAAa,uDAAY;AACzB;;;;;;;;;;;;;;;;;ACf8C;AAC9C;AACA;AACA;AACA;;AAEO;AACP,aAAa,uDAAY;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRgD;AACP;AACE;AACE;AACA;AACA;AACA;AACA;AACM;AACE;AACM;AACJ;AACF;AACA;AACZ;AACY;AAC8C;AAChB;AACsB;AAClD;AACkB;AACW;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,GAAG;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC,mEAAmE;AACnE;;AAEA,iJAAiJ;;AAEjJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;;AAGA;AACA,MAAM,8DAAS;AACf;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP,cAAc,8DAAS,8BAA8B;;AAErD,EAAE,iEAAiB,UAAU;;AAE7B,+BAA+B,iEAAY,uBAAuB,8DAAS;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,mEAAmE,qCAAqC;AACxG;;AAEA;AACA,WAAW,sEAAyB;AACpC;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA,WAAW,qEAAwB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,6DAAY;AAC9B;;AAEA,gBAAgB,6DAAY;AAC5B;;AAEA;AACA,gBAAgB,6DAAY;AAC5B;;AAEA,8BAA8B,0DAAiB,qEAAqE;AACpH;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,qFAAoB;AACjC;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,8DAAS;AACjB;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,SAAS,kEAAa;AACtB;AACA,oBAAoB,uDAAO;AAC3B;;AAEA;AACA;AACA;;AAEA,QAAQ,8DAAS;AACjB;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,yDAAyD,4BAA4B;AACrF;AACA;AACA,oBAAoB,uDAAO;AAC3B;;AAEA;AACA;;AAEA,8BAA8B,8DAAS;AACvC;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA,IAAI;AACJ;AACA;;;AAGA,SAAS,sEAAgB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP,sEAAsE,qCAAqC;AAC3G;;AAEA;AACA,WAAW,uDAAU;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,iEAAoB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,iEAAoB;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,2DAAkB,CAAC,mEAAoB;;AAEpD;AACA;AACA;;AAEA,gBAAgB,2DAAkB,CAAC,sEAAuB;;AAE1D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,oEAAW;;AAEnC;AACA;AACA;;AAEA,MAAM,iEAAc;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mFAAmF;AACnF;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEO;AACP;AACA;AACA;AACA;AACA,eAAe,0DAAiB,sDAAsD;AACtF;AACA;;AAEA;AACA;AACA,WAAW,8DAAS;AACpB,IAAI;AACJ;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA,gDAAgD,6DAAO;AACvD,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA,QAAQ,8DAAS;AACjB;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;;AAEA,QAAQ,8DAAS;AACjB;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,cAAc,kEAAY,wCAAwC,2DAAW,SAAS;AACtF;;AAEA,MAAM,gEAAa;AACnB;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA,MAAM,gEAAa;AACnB;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ,MAAM,+DAAS;AACf;AACA,IAAI;;;AAGJ,MAAM,6DAAU;AAChB;AACA,IAAI;AACJ;;;AAGA,MAAM,6DAAU;AAChB;AACA,IAAI;AACJ;;;AAGA,MAAM,iEAAc;AACpB;AACA,IAAI;;;AAGJ;AACA,MAAM,+DAAY;AAClB;AACA,IAAI;;;AAGJ;AACA,EAAE,+DAAS,8DAA8D,6DAAO;AAChF;AACA;AACA;AACA;AACA;;;AAGA;AACA,OAAO,qDAAY;AACnB,cAAc,6DAAY;AAC1B,IAAI;AACJ;;;AAGA;AACA;AACA;AACA,EAAE,gDAAO;AACT;AACA;AACA,oBAAoB,uDAAO;AAC3B;;AAEA,4BAA4B,8DAAS;AACrC;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,MAAM,+DAAS;AACf,yDAAyD,6DAAO,+CAA+C,6DAAO;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,MAAM,8DAAS;AACf;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA,OAAO,+DAAY;AACnB,cAAc,6DAAY,wLAAwL,6DAAO,kCAAkC,6DAAO;AAClQ;;AAEA;AACA,cAAc,6DAAY;AAC1B;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,8DAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,6DAAY,4EAA4E,6DAAO;AAC5G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,uBAAuB,8DAAQ;;AAE/B;AACA;AACA;;AAEA,oBAAoB,yBAAyB;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA,MAAM,iEAAY;AAClB;AACA,IAAI;;;AAGJ;AACA;;AAEA,kBAAkB,0BAA0B;AAC5C;;AAEA;AACA;;AAEA,UAAU,8DAAS;AACnB;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,MAAM,iEAAY;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,oBAAoB,yEAAuB;AAC3C,WAAW,oEAAkB;AAC7B,IAAI,uBAAuB,uEAAqB;AAChD,WAAW,kEAAgB;AAC3B,IAAI,uBAAuB,2EAAyB;AACpD,WAAW,sEAAoB;AAC/B;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtyBqC;AACE;AACE;AACc;AACF;AACZ;AACG;AACoB;AACT;AACE;AACQ;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,6DAAY;AAC9B;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,mEAAW;;AAE7B,SAAS,6DAAW;AACpB;AACA;AACA,uBAAuB,wDAAK;AAC5B,kBAAkB,6DAAY;AAC9B;AACA;;AAEA;AACA;AACA,iCAAiC,qEAAY;AAC7C,QAAQ,SAAS,+DAAa;AAC9B,0BAA0B,4DAAO;;AAEjC,oBAAoB,6DAAY;AAChC;;AAEA;AACA;;AAEA;;AAEA,0BAA0B,+DAAa;AACvC,yBAAyB,4DAAO;;AAEhC,kBAAkB,6DAAY;AAC9B;AACA;;AAEA,6BAA6B,6EAAgB;AAC7C,6EAA6E,4DAAO;;AAEpF;AACA,kDAAkD,mEAAc;AAChE;;AAEA,kBAAkB,6DAAY,aAAa;AAC3C,KAAK;AACL;;AAEA,oBAAoB,0BAA0B;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA,mBAAmB,2DAAM;AACzB;AACA,GAAG;;AAEH,2CAA2C,yBAAyB;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS,+DAAa;AAC9B,kBAAkB,6DAAY,6DAA6D,4DAAO;AAClG;;AAEA;AACA;;AAEA;AACA,oCAAoC,sDAAS;;AAE7C,2BAA2B,0DAAa;AACxC;;AAEA;AACA;AACA;AACA,UAAU,SAAS,+DAAa;AAChC,oBAAoB,6DAAY,6DAA6D,4DAAO;AACpG;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,+DAAa;AAC/B,gBAAgB,6DAAY,6DAA6D,4DAAO;AAChG;;AAEA,uBAAuB,qEAAY;;AAEnC;AACA;AACA;AACA;AACA,gBAAgB,6DAAY,4DAA4D,wDAAK;AAC7F;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,yCAAyC,4DAAI;AAC7C;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrM4C;AACF;AACO;AACA;AACH;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG;;AAEN,MAAM,8DAAS;AACf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC,+BAA+B,8DAAc;;AAE7C;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;;AAEA;AACA,eAAe,uDAAK;AACpB,IAAI;AACJ;AACA;AACA;AACA,IAAI;;;AAGJ,yBAAyB,8DAAQ;;AAEjC;AACA;AACA;AACA;AACA,IAAI;;;AAGJ,SAAS,2DAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACiD,CAAC;;AAED,CAAC;;AAaA;AAClD;AAO6M;AAC7M;AAC0H;AACtD;AACpE;AAI8M;AAC9M;AAC2F;AAC3F;AAsC0C;;;;;;;;;;;;;;;;;AChG1C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACvBoE;AACpE;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;;AAEA,MAAM,kEAAyB;AAC/B,0BAA0B,kEAAyB;AACnD;AACA;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,iEAAiE,WAAW;AAC5E;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACrBe;AACf;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA;AACe;AACf;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;;ACLA,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAErQ;AACpE;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,YAAY,+BAA+B;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA,sCAAsC,kEAAyB;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAqC;AACpD,CAEC,CAAC;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACzBa;AACf;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;ACLA,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU;AACA;AACA;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC,WAAW;AACX;AACA;AACA,YAAY,OAAO,8BAA8B;AACjD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACe;AACf;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC,WAAW;AACX;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACtBuD;;AAEvD;AACA;AACA;AACA;AACe;AACf;;AAEA,sCAAsC,oEAAa,OAAO,8BAA8B;AACxF;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACxCA;AACA,iEAAe,yBAAyB,EAAC;;;;;;;;;;;;;;;;ACDzC;AACA;AACA;AACe;AACf;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;;;;;;AClBoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA,WAAW,sDAAS;AACpB;AACA,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACe;AACf;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,KAAK;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;;AAEA,kBAAkB,cAAc;AAChC;AACA;;AAEA,kBAAkB,cAAc;AAChC;AACA;;AAEA,oBAAoB,gBAAgB;AACpC,qBAAqB,eAAe;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC5EuD;AACxC;AACf;AACA;AACA;AACA;;AAEA;;AAEA,sCAAsC,oEAAa,OAAO,8BAA8B;AACxF;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,+CAA+C;;AAE/C;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA,EAAE;;AAEK;AACP;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC9FA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC7DmD;AACA;AACI;AACf;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,iCAAiC,qDAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,qDAAa;AAClC;AACA;AACA;AACA,MAAM,sBAAsB,yDAAiB;AAC7C;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACO;AACP;AACA,kBAAkB,sDAAc,aAAa,wDAAgB,aAAa,qDAAa,aAAa,yDAAiB,aAAa,yDAAiB,aAAa,wDAAgB,aAAa,uDAAe,aAAa,wDAAgB,aAAa,oDAAY,aAAa,2DAAmB,aAAa,2DAAmB,aAAa,yDAAiB,aAAa,sDAAc,aAAa,yDAAiB;AACzZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF,iEAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,kBAAkB,qDAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,qDAAa;AAChC;;AAEA,mCAAmC;;AAEnC;AACA;AACA;AACA,qBAAqB,sDAAc;AACnC;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,wDAAgB;AACrC;;AAEA;AACA,qBAAqB,qDAAa;AAClC;;AAEA;AACA,qBAAqB,yDAAiB;AACtC;;AAEA;AACA,qBAAqB,yDAAiB;AACtC;;AAEA;AACA;AACA,uBAAuB,wDAAgB;AACvC;;AAEA;AACA;;AAEA;AACA,qBAAqB,uDAAe;AACpC;;AAEA;AACA,qBAAqB,wDAAgB;AACrC;;AAEA;AACA,qBAAqB,oDAAY;AACjC;;AAEA;AACA,qBAAqB,2DAAmB;AACxC;;AAEA;AACA,qBAAqB,2DAAmB;AACxC;;AAEA;AACA,qBAAqB,yDAAiB;AACtC;;AAEA;AACA,qBAAqB,sDAAc;AACnC;;AAEA;AACA,qBAAqB,yDAAiB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,+DAAW;AACnB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,0CAA0C;;AAE1C;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA,iBAAiB,yDAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,+DAAW;AACvB;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA,UAAU,+DAAW;AACrB;;AAEA,2BAA2B,uDAAe,GAAG,qDAAa;AAC1D;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,kCAAkC;;;AAGxC;AACA;;AAEA,QAAQ,+DAAW;AACnB;AACA;AACA;AACA;AACA,yCAAyC,EAAE;AAC3C;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wDAAgB;AACrC,MAAM;;;AAGN;AACA,YAAY,+DAAW;AACvB;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,+DAAW;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,+DAAW;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,+DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,8DAAsB,wCAAwC,oEAAsB;AACzG,MAAM;;;AAGN;AACA,YAAY,+DAAW;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,QAAQ,+DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,sDAAc;AAC/B;;;;;;;;;;;;;;;;ACpmBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvByC;AACI;AACM;AACA;AACpB;AACG;AACI;AACkB;AAChB;;AAExC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,qBAAqB,qDAAa;AAClC;AACA,qBAAqB,qDAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,qBAAqB,qDAAa;AAClC;AACA,qBAAqB,qDAAa;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,2CAAM;AAC3D,yBAAyB,2CAAM,IAAI,8DAAS,6CAA6C,4DAAO;AAChG,kBAAkB,mDAAW;AAC7B;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA,iCAAiC,sDAAc;AAC/C;AACA,YAAY,6CAAS;AACrB;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,iDAAa;AACzB,6BAA6B,qDAAa,wBAAwB,qDAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sDAAc;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,mBAAmB,yDAAiB;AAC1C;AACA,MAAM;AACN;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,yDAAiB;AACnC;AACA,cAAc,6DAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,sDAAc;AAChC;AACA;;AAEA;AACA,YAAY,6DAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,sDAAc;;AAExD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,yDAAiB,gCAAgC,yDAAiB;AAC/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,4DAAwB;AACpC;AACA,8BAA8B,uDAAe;AAC7C,6CAA6C,wDAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,wDAAgB;AACrC;AACA,YAAY,iDAAa;AACzB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,YAAY,sDAAkB;AAC9B,4BAA4B,yDAAiB,uBAAuB,yDAAiB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,wDAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,uDAAe;AAChD;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,YAAY,8CAAU;AACtB;AACA;AACA;AACA;AACA,8BAA8B,yDAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,yDAAiB,QAAQ,yDAAiB;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,uDAAe;AACpC;AACA,YAAY,iDAAa;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,iDAAa;AACzB;AACA,+BAA+B,uDAAe;AAC9C;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,wDAAgB;AACrC;;AAEA,uCAAuC,sDAAc;AACrD;AACA,cAAc,wDAAoB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,wDAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA,cAAc,4DAAwB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,4DAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,2DAAmB;AAC9B;;AAEA,WAAW,yDAAiB;AAC5B;;AAEA,WAAW,qDAAa;AACxB;;AAEA;AACA,gBAAgB,4CAAQ;AACxB;AACA;AACA;;AAEA,WAAW,uDAAe;AAC1B;;AAEA;AACA,gBAAgB,8CAAU;AAC1B;AACA;AACA;;AAEA,WAAW,wDAAgB;AAC3B,WAAW,8DAAsB;AACjC;;AAEA,WAAW,sDAAc;AACzB;AACA;;AAEA;AACA,kBAAkB,gDAAY;AAC9B;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA,kBAAkB,6CAAS;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,6CAAS;AACzB;AACA;AACA;;AAEA,WAAW,wDAAgB;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,YAAY,+CAAW;AACvB;AACA,4BAA4B,8DAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,6CAAS;AACrB,uBAAuB,2DAAmB,QAAQ,2DAAmB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,+CAAW;AACvB,uBAAuB,yDAAiB,QAAQ,yDAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,uDAAe;AACpC;AACA,YAAY,qDAAiB;AAC7B;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,oDAAY;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oDAAY;AACjC;AACA,YAAY,kDAAc;AAC1B;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC,2DAAmB;AACpD;AACA,uBAAuB,2DAAmB;AAC1C;AACA,cAAc,kDAAc;AAC5B;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,iCAAiC,sDAAc;AAC/C;AACA,cAAc,sDAAkB;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,mDAAe;AAC3B;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,sDAAc;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,wDAAgB,eAAe,8DAAsB;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,yDAAiB,qCAAqC,yDAAiB;AAC1G;AACA,YAAY,0DAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,uDAAe;AACpC;AACA;AACA,YAAY,kEAA8B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,qDAAa;;AAE5C;AACA;AACA,QAAQ,gCAAgC,qDAAa;AACrD,oEAAoE,sDAAc;AAClF;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA,6DAA6D,yDAAiB,sCAAsC,yDAAiB;AACrI;;AAEA;;AAEA;AACA;;AAEA,6BAA6B,yDAAiB,6BAA6B,yDAAiB;AAC5F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uDAAe;AACpC;AACA;AACA;AACA,YAAY,yDAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,yDAAiB,2BAA2B,yDAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,uDAAe;AACpC;AACA;;AAEA,iCAAiC,wDAAgB;AACjD;AACA;;AAEA;AACA;AACA,YAAY,+DAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAA8B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,wDAAgB;AACjD;AACA,+BAA+B,sDAAc;;AAE7C;AACA;AACA,QAAQ,gCAAgC,sDAAc;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA,6BAA6B,yDAAiB,iCAAiC,yDAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAiC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA,6BAA6B,yDAAiB,2BAA2B,yDAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B,sDAAc;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yDAAiB,qCAAqC,yDAAiB;;AAElH;AACA;AACA;;AAEA;AACA,YAAY,yDAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,8DAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,8DAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,iEAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,6DAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,4DAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,oEAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oDAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,sDAAc;AAC3C;;AAEA;AACA;AACA,MAAM,gCAAgC,sDAAc;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,iEAAiB;AACzB;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,UAAU,+DAAW;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sDAAc;AACrC;AACA,MAAM;AACN,YAAY,+DAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sDAAc;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,+DAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF,iEAAY;AACZ;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACv/C+B;AACxB;AACP;AACA;AACO;AACP,uBAAuB,6DAAyB,kBAAkB,4DAAwB;AAC1F;AACO;AACP,uBAAuB,8CAAU,kBAAkB,wDAAoB,kBAAkB,wDAAoB;AAC7G;AACO;AACP,uBAAuB,iDAAa,kBAAkB,4CAAQ,kBAAkB,8CAAU,kBAAkB,+CAAW,kBAAkB,gDAAY,kBAAkB,6CAAS,kBAAkB,6CAAS,kBAAkB,6CAAS,kBAAkB,+CAAW;AACnQ;AACO;AACP,uBAAuB,mDAAe,kBAAkB,kDAAc,kBAAkB,sDAAkB;AAC1G;AACO;AACP,uBAAuB,0DAAsB,gDAAgD,6DAAyB;AACtH;AACO;AACP,uBAAuB,+DAA2B,kBAAkB,+DAA2B,kBAAkB,kEAA8B,kBAAkB,8DAA0B,kBAAkB,6DAAyB,kBAAkB,qEAAiC;AACzR;AACO;AACP,uBAAuB,yDAAqB;AAC5C;AACO;AACP,uBAAuB,8DAA0B,kBAAkB,8DAA0B,kBAAkB,iEAA6B,kBAAkB,6DAAyB,kBAAkB,4DAAwB,kBAAkB,oEAAgC;AACnR;;;;;;;;;;;;;;;;;;AC3BmD;AACnD;AACA;AACA;;AAEO;AACP,8CAA8C,+DAAW;AACzD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjEkC;AACe;AACjD;AACA;AACA;AACA;;AAEO;AACP,SAAS,+CAAK;AACd;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,2BAA2B,8DAAgB;AAC3C,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,2BAA2B;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,gBAAgB;AAChB;;;AAGA;AACA,yCAAyC,sCAAsC;AAC/E;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3S6C;AACgB;;AAE7D;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8DAAS;AAC3C,oCAAoC,8DAAS;AAC7C,GAAG;;AAEH,sEAAiB;;;;;;;;;;;;;;;;ACtBjB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC9ByC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,4BAA4B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA,+DAA+D,4BAA4B;AAC3F;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,yBAAyB,mBAAmB;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,+CAA+C,4DAAO;AACtD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA,WAAW,QAAQ,UAAU;AAC7B;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,aAAa,UAAU;AACvB;AACA;;AAEA;;AAEA;AACA,aAAa,SAAS,WAAW,WAAW;AAC5C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACraA;AACA;AACA;AACA;AACA,EAAE;AACF,oBAAoB,mBAAmB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;ACbpB;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA,oBAAoB,mBAAmB;AACvC;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;ACvBvB;AACA;AACA;AACA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;ACNhC;AACA;AACA;AACA;AACA;;AAEA,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;ACNzB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACR7B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;ACR5B,SAASs/jB,eAAT,CAAyB71nB,GAAzB,EAA8BhxC,GAA9B,EAAmC/nC,KAAnC,EAA0C;AAAE,MAAI+nC,GAAG,IAAIgxC,GAAX,EAAgB;AAAEl5E,IAAAA,MAAM,CAACC,cAAP,CAAsBi5E,GAAtB,EAA2BhxC,GAA3B,EAAgC;AAAE/nC,MAAAA,KAAK,EAAEA,KAAT;AAAgBozE,MAAAA,UAAU,EAAE,IAA5B;AAAkCkhU,MAAAA,YAAY,EAAE,IAAhD;AAAsD74T,MAAAA,QAAQ,EAAE;AAAhE,KAAhC;AAA0G,GAA5H,MAAkI;AAAE1C,IAAAA,GAAG,CAAChxC,GAAD,CAAH,GAAW/nC,KAAX;AAAmB;;AAAC,SAAO+4E,GAAP;AAAa;;AAEjN;AAEA;AACA;AACA;AACA;;AACe,SAASi71B,gBAAT,CAA0B54kB,QAA1B,EAAoCtwR,QAApC,EAA8Cmp2B,cAA9C,EAA8D;AAC3E,MAAIjq3B,QAAQ,GAAG+p3B,yDAAgB,CAAC34kB,QAAD,CAA/B;AACA,MAAI84kB,OAAJ;AACA,MAAIC,WAAJ,CAH2E,CAG1D;;AAEjB,MAAI,OAAOnq3B,QAAQ,CAAC0sD,MAAhB,KAA2B,UAA/B,EAA2C;AACzCw9zB,IAAAA,OAAO,GAAGlq3B,QAAQ,CAAC0sD,MAAnB;;AAEAy9zB,IAAAA,WAAW,GAAG,SAASA,WAAT,CAAqB7y6B,KAArB,EAA4B;AACxC,UAAI8y6B,OAAO,GAAG,SAASA,OAAT,GAAmB;AAC/B,eAAOvq4B,OAAO,CAACC,MAAR,CAAexoC,KAAf,CAAP;AACD,OAFD;;AAIA,aAAO4y6B,OAAO,CAAC531B,IAAR,CAAatyB,QAAb,EAAuBrjB,IAAvB,CAA4Byt4B,OAA5B,EAAqCA,OAArC,CAAP;AACD,KAND;AAOD;;AAED,WAASC,SAAT,CAAmBlp4B,MAAnB,EAA2B;AACzB,WAAOA,MAAM,CAACgF,IAAP,GAAchF,MAAd,GAAuBmp4B,aAAa,CAACnp4B,MAAM,CAACnrC,KAAR,EAAe8qE,QAAf,CAAb,CAAsCnkC,IAAtC,CAA2C4t4B,cAA3C,EAA2DJ,WAA3D,CAA9B;AACD;;AAED,MAAIK,SAAJ;;AAEA,MAAIP,cAAJ,EAAoB;AAClB;AACA,QAAInq4B,MAAM,GAAGmq4B,cAAb;;AAEAO,IAAAA,SAAS,GAAG,SAASA,SAAT,CAAmBlz6B,KAAnB,EAA0B;AACpC,aAAOgz6B,aAAa,CAAChz6B,KAAD,EAAQwoC,MAAR,CAAb,CAA6BnD,IAA7B,CAAkC4t4B,cAAlC,EAAkDJ,WAAlD,CAAP;AACD,KAFD;AAGD;AACD;AACF;;;AAGE,SAAOvlO,eAAe,CAAC;AACrB59pB,IAAAA,IAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,aAAOgZ,QAAQ,CAAChZ,IAAT,GAAgBrK,IAAhB,CAAqB0t4B,SAArB,EAAgCG,SAAhC,CAAP;AACD,KAHoB;AAIrB99zB,IAAAA,MAAM,EAAE,SAASi5lB,OAAT,GAAmB;AACzB,aAAOukO,OAAO,GAAGA,OAAO,CAAC531B,IAAR,CAAatyB,QAAb,EAAuBrjB,IAAvB,CAA4B0t4B,SAA5B,EAAuCG,SAAvC,CAAH,GAAuD3q4B,OAAO,CAACc,OAAR,CAAgB;AACnF3qC,QAAAA,KAAK,EAAEoD,SAD4E;AAEnF+sC,QAAAA,IAAI,EAAE;AAF6E,OAAhB,CAArE;AAID,KAToB;AAUrBsk4B,IAAAA,KAAK,EAAE,SAASC,MAAT,CAAgBpz6B,KAAhB,EAAuB;AAC5B;AACA,UAAI,OAAO0oD,QAAQ,CAACyq3B,KAAhB,KAA0B,UAA9B,EAA0C;AACxC,eAAOzq3B,QAAQ,CAACyq3B,KAAT,CAAenz6B,KAAf,EAAsBqlC,IAAtB,CAA2B0t4B,SAA3B,EAAsCG,SAAtC,CAAP;AACD;;AAED,aAAO3q4B,OAAO,CAACC,MAAR,CAAexoC,KAAf,EAAsBi9C,KAAtB,CAA4B413B,WAA5B,CAAP;AACD;AAjBoB,GAAD,EAkBnBL,oDAlBmB,EAkBF,YAAY;AAC9B,WAAO,IAAP;AACD,GApBqB,CAAtB;AAqBD;;AAED,SAASQ,aAAT,CAAuBt06B,KAAvB,EAA8B8qE,QAA9B,EAAwC;AACtC,SAAO,IAAIjhC,OAAJ,CAAY,UAAUc,OAAV,EAAmB;AACpC,WAAOA,OAAO,CAACmgC,QAAQ,CAAC9qE,KAAD,CAAT,CAAd;AACD,GAFM,CAAP;AAGD;;AAED,SAASu06B,cAAT,CAAwBv06B,KAAxB,EAA+B;AAC7B,SAAO;AACLA,IAAAA,KAAK,EAAEA,KADF;AAELmwC,IAAAA,IAAI,EAAE;AAFD,GAAP;AAID;;;;;;;;;;;;;;;;;;;;;;;;AC7ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASi9B,SAAT,CAAmBko2B,YAAnB,EAAiCvw2B,QAAjC,EAA2Cww2B,SAA3C,EAAsDC,YAAtD,EAAoEzotB,cAApE,EAAoFsqU,aAApF,EAAmGo+Y,aAAnG,EAAkHC,sBAAlH,EAA0I;AAC/I;AACA;AACA,SAAOtp2B,SAAS,CAACjqE,MAAV,KAAqB,CAArB,GAAyBwz6B,aAAa,CAACL,YAAD,CAAtC,GAAuDK,aAAa,CAAC;AAC1EC,IAAAA,MAAM,EAAEN,YADkE;AAE1Evw2B,IAAAA,QAAQ,EAAEA,QAFgE;AAG1Eww2B,IAAAA,SAAS,EAAEA,SAH+D;AAI1EC,IAAAA,YAAY,EAAEA,YAJ4D;AAK1EzotB,IAAAA,cAAc,EAAEA,cAL0D;AAM1EsqU,IAAAA,aAAa,EAAEA,aAN2D;AAO1Eo+Y,IAAAA,aAAa,EAAEA,aAP2D;AAQ1EC,IAAAA,sBAAsB,EAAEA;AARkD,GAAD,CAA3E;AAUD;AACD;AACA;AACA;AACA;AACA;;AAEA,SAASG,kBAAT,CAA4Bv06B,KAA5B,EAAmC;AACjC,MAAIA,KAAK,YAAYuz6B,6DAArB,EAAmC;AACjC,WAAO;AACL1/N,MAAAA,MAAM,EAAE,CAAC7zsB,KAAD;AADH,KAAP;AAGD;;AAED,QAAMA,KAAN;AACD;;AAED,SAASq06B,aAAT,CAAuB9y6B,IAAvB,EAA6B;AAC3B,MAAI+y6B,MAAM,GAAG/y6B,IAAI,CAAC+y6B,MAAlB;AAAA,MACI7w2B,QAAQ,GAAGliE,IAAI,CAACkiE,QADpB;AAAA,MAEIww2B,SAAS,GAAG1y6B,IAAI,CAAC0y6B,SAFrB;AAAA,MAGIC,YAAY,GAAG3y6B,IAAI,CAAC2y6B,YAHxB;AAAA,MAIIzotB,cAAc,GAAGlqN,IAAI,CAACkqN,cAJ1B;AAAA,MAKIsqU,aAAa,GAAGx0hB,IAAI,CAACw0hB,aALzB;AAAA,MAMIo+Y,aAAa,GAAG5y6B,IAAI,CAAC4y6B,aANzB;AAAA,MAOIC,sBAAsB,GAAG7y6B,IAAI,CAAC6y6B,sBAPlC;AAQA,MAAII,aAAa,GAAGC,uBAAuB,CAACH,MAAD,EAAS7w2B,QAAT,EAAmBww2B,SAAnB,EAA8BC,YAA9B,EAA4CzotB,cAA5C,EAA4DsqU,aAA5D,EAA2Eq+Y,sBAA3E,CAA3C,CAT2B,CASoH;AAC/I;AACA;AACA;AACA;AACA;;AAEA,MAAIM,mBAAmB,GAAG,SAASA,mBAAT,CAA6Bzx3B,OAA7B,EAAsC;AAC9D,WAAOw+R,2DAAO,CAAC6ylB,MAAD,EAAS7w2B,QAAT,EAAmBxgB,OAAnB,EAA4Bix3B,YAA5B,EAA0CzotB,cAA1C,EAA0DsqU,aAA1D,EAAyEo+Y,aAAzE,CAAd;AACD,GAFD,CAhB2B,CAkBxB;AACH;;;AAGA,SAAOK,aAAa,CAACnv4B,IAAd,CAAmB,UAAUsv4B,cAAV,EAA0B;AAClD,WAAQ;AACNh1O,MAAAA,wDAAe,CAACg1O,cAAD,CAAf,GAAkCjC,6DAAgB,CAACiC,cAAD,EAAiBD,mBAAjB,EAAsCH,kBAAtC,CAAlD,GAA8GI;AADhH;AAGD,GAJM,CAAP;AAKD;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;;;AAGO,SAASF,uBAAT,CAAiCH,MAAjC,EAAyC7w2B,QAAzC,EAAmDww2B,SAAnD,EAA8DC,YAA9D,EAA4EzotB,cAA5E,EAA4FsqU,aAA5F,EAA2Go+Y,aAA3G,EAA0H;AAC/H;AACA;AACAV,EAAAA,iFAA6B,CAACa,MAAD,EAAS7w2B,QAAT,EAAmBgoJ,cAAnB,CAA7B;;AAEA,MAAI;AACF;AACA;AACA,QAAImptB,UAAU,GAAGlB,yEAAqB,CAACY,MAAD,EAAS7w2B,QAAT,EAAmBww2B,SAAnB,EAA8BC,YAA9B,EAA4CzotB,cAA5C,EAA4DsqU,aAA5D,EAA2Eo+Y,aAA3E,CAAtC,CAHE,CAG+H;;AAEjI,QAAIj91B,KAAK,CAACC,OAAN,CAAcy91B,UAAd,CAAJ,EAA+B;AAC7B,aAAOrs4B,OAAO,CAACc,OAAR,CAAgB;AACrBwqqB,QAAAA,MAAM,EAAE+gO;AADa,OAAhB,CAAP;AAGD;;AAED,QAAIvj4B,IAAI,GAAG0i4B,qFAAoB,CAACO,MAAD,EAASM,UAAU,CAACriZ,SAApB,CAA/B;AACA,QAAI34c,MAAM,GAAGg61B,iEAAa,CAACgB,UAAD,EAAavj4B,IAAb,EAAmBuj4B,UAAU,CAACriZ,SAAX,CAAqB+C,YAAxC,EAAsD/2hB,MAAM,CAACmoE,MAAP,CAAc,IAAd,CAAtD,EAA2EnoE,MAAM,CAACmoE,MAAP,CAAc,IAAd,CAA3E,CAA1B;AACA,QAAImu2B,aAAa,GAAGt26B,MAAM,CAACoM,IAAP,CAAYivE,MAAZ,CAApB;AACA,QAAIk71B,YAAY,GAAGD,aAAa,CAAC,CAAD,CAAhC;AACA,QAAIE,UAAU,GAAGn71B,MAAM,CAACk71B,YAAD,CAAvB;AACA,QAAIE,SAAS,GAAGD,UAAU,CAAC,CAAD,CAA1B;AACA,QAAIE,SAAS,GAAGD,SAAS,CAACxj5B,IAAV,CAAe9yB,KAA/B;AACA,QAAIw26B,QAAQ,GAAGrB,+DAAW,CAACS,MAAD,EAASjj4B,IAAT,EAAe4j4B,SAAf,CAA1B;;AAEA,QAAI,CAACC,QAAL,EAAe;AACb,YAAM,IAAI3B,6DAAJ,CAAiB,4BAA4Bj13B,MAA5B,CAAmC223B,SAAnC,EAA8C,oBAA9C,CAAjB,EAAsFF,UAAtF,CAAN;AACD,KAtBC,CAsBA;AACF;;;AAGA,QAAII,SAAS,GAAGD,QAAQ,CAACpp2B,SAAT,IAAsB8o2B,UAAU,CAACT,aAAjD;AACA,QAAI5t6B,IAAI,GAAG8s6B,sDAAO,CAACvx6B,SAAD,EAAYgz6B,YAAZ,CAAlB;AACA,QAAIlg4B,IAAI,GAAG++3B,oEAAgB,CAACiB,UAAD,EAAaM,QAAb,EAAuBH,UAAvB,EAAmC1j4B,IAAnC,EAAyC9qC,IAAzC,CAA3B,CA5BE,CA4ByE;AAC3E;AACA;;AAEA,QAAIsjC,MAAM,GAAGiq4B,4EAAwB,CAACc,UAAD,EAAaM,QAAb,EAAuBH,UAAvB,EAAmCI,SAAnC,EAA8ClB,SAA9C,EAAyDr/3B,IAAzD,CAArC,CAhCE,CAgCmG;;AAErG,WAAOrM,OAAO,CAACc,OAAR,CAAgBQ,MAAhB,EAAwBxE,IAAxB,CAA6B,UAAU+v4B,WAAV,EAAuB;AACzD;AACA,UAAIA,WAAW,YAAYjz6B,KAA3B,EAAkC;AAChC,eAAO;AACL0xsB,UAAAA,MAAM,EAAE,CAAC2/N,iEAAY,CAAC4B,WAAD,EAAcL,UAAd,EAA0BzB,0DAAW,CAAC/s6B,IAAD,CAArC,CAAb;AADH,SAAP;AAGD,OANwD,CAMvD;;;AAGF,UAAIo5rB,wDAAe,CAACy1O,WAAD,CAAnB,EAAkC;AAChC;AACA,eAAOA,WAAP;AACD;;AAED,YAAM,IAAIjz6B,KAAJ,CAAU,8DAA8DussB,4DAAO,CAAC0mO,WAAD,CAA/E,CAAN;AACD,KAfM,CAAP;AAgBD,GAlDD,CAkDE,OAAOp16B,KAAP,EAAc;AACd;AACA;AACA;AACA,WAAOA,KAAK,YAAYuz6B,6DAAjB,GAAgChr4B,OAAO,CAACc,OAAR,CAAgB;AACrDwqqB,MAAAA,MAAM,EAAE,CAAC7zsB,KAAD;AAD6C,KAAhB,CAAhC,GAEFuoC,OAAO,CAACC,MAAR,CAAexoC,KAAf,CAFL;AAGD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/JD,2CAA2C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,iEAAiE,GAAG,kCAAkC;;AAEvU,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,+CAA+C,4CAA4C,KAAK,6CAA6C,6EAA6E,OAAO,yCAAyC,mFAAmF,OAAO;;AAEtf,4CAA4C,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;;AAE7I;AACd;AACF;AACI;AACA;AACE;AACA;AACE;AACI;AACA;AACA;AACU;AACpB;AAC8B;AAChE;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,uBAAuB,+BAA+B;AACtD,UAAU;AACV,QAAQ;AACR;AACA;;AAEA;AACO;AACP;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;AAEF;AACA;AACA,GAAG;;;AAGH,sEAAiB;AACjB,iEAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD,UAAU;AACV,QAAQ;AACR;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;AAEF;AACA;AACA,GAAG;;;AAGH,sEAAiB;AACjB,iEAAY;AACZ;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGO;AACP;AACA;AACA;AACA,0CAA0C,6DAAY;AACtD;AACA;AACA,yCAAyC,6DAAY;AACrD;;AAEA;AACA,wBAAwB,mFAAmB;AAC3C;;AAEA,2CAA2C,6DAAQ;AACnD;AACA;AACA,uCAAuC,8DAAS;AAChD,0EAA0E,8DAAS;;AAEnF;AACA,8FAA8F,8DAAS;AACvG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI;;AAEL,sEAAiB;AACjB,iEAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,yBAAyB,kBAAkB;AAC3C,UAAU;AACV,QAAQ;AACR;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAQ;AACnD;AACA;AACA;AACA;AACA,uCAAuC,8DAAS;AAChD,wEAAwE,8DAAS,4FAA4F,4DAAO;AACpL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI;;AAEL,sEAAiB;AACjB,iEAAY;;AAEZ;AACA;AACA,+BAA+B,8DAAS;AACxC;AACA;;AAEA;AACA;AACA,0BAA0B,8DAAS;AACnC,SAAS,6DAAQ;AACjB,+BAA+B,8DAAS;AACxC,wCAAwC,8DAAS;AACjD,gFAAgF,8DAAS,2HAA2H,4DAAO;AAC3N;AACA,8BAA8B,8DAAS;AACvC,eAAe,oEAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6DAAQ;AAC9C;AACA;AACA,KAAK;AACL,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6DAAQ;AACpD;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA,SAAS,kEAAY;AACrB;;AAEA;AACA,SAAS,6DAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP,SAAS,+DAAS;AAClB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,QAAQ;AACR;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAQ;AACnD;AACA;AACA;AACA,uCAAuC,8DAAS;AAChD,8EAA8E,8DAAS,+FAA+F,4DAAO;AAC7L;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI;;AAEL,sEAAiB;AACjB,iEAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAQ;AACnD;AACA;AACA;AACA,uCAAuC,8DAAS;AAChD,8EAA8E,8DAAS,+FAA+F,4DAAO;AAC7L;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI;;AAEL,sEAAiB;AACjB,iEAAY;;AAEZ;AACA;AACA,0BAA0B,8DAAS;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,oBAAoB,UAAU;AAC9B,mBAAmB;AACnB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAQ;AACnD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uBAAuB,4DAAM;AAC7B;AACA,KAAK;AACL,uCAAuC,8DAAS;AAChD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,uDAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,+DAAS;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI;;AAEL,sEAAiB;AACjB,iEAAY;;AAEZ;AACA,0BAA0B,8DAAS;AACnC,SAAS,oEAAa;AACtB;AACA;AACA,yBAAyB,8DAAS,qJAAqJ,4DAAO;AAC9L,kCAAkC,8DAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6DAAQ;AAC9C;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oCAAoC;AACtD,kBAAkB,oCAAoC;AACtD,kBAAkB,qCAAqC;AACvD;AACA,QAAQ;AACR;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAQ;AACnD;AACA;AACA;AACA,uCAAuC,8DAAS;AAChD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,6DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI;;AAEL,sEAAiB;AACjB,iEAAY;;AAEZ;AACA;AACA,0BAA0B,8DAAS;AACnC,SAAS,6DAAQ;AACjB,mCAAmC,8DAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,4CAA4C,6DAAQ;AACpD;AACA,KAAK;AACL,GAAG;AACH;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC77BuD;AACd;AACE;AACE;AACE;AACI;AACA;AACU;AACK;AACR;AACM;AAChE;AACA;AACA;;AAEA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAQ;AACnD;AACA,mBAAmB,8DAAS;AAC5B,uCAAuC,8DAAS;AAChD;AACA,IAAI,iEAAY,kCAAkC,8DAAS;AAC3D,gBAAgB,oEAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6DAAQ;AAC9C;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAgB;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,IAAI;;AAEL,sEAAiB;AACjB,iEAAY;;AAEZ;AACA;AACA;AACO;AACP;AACA;AACA,cAAc,gFAAuB,EAAE,0FAAiC,EAAE,0FAAiC;AAC3G;AACA;AACA,YAAY,2DAAc,CAAC,qDAAc;AACzC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEO;AACP;AACA;AACA,cAAc,gFAAuB,EAAE,0FAAiC,EAAE,0FAAiC;AAC3G;AACA;AACA,YAAY,2DAAc,CAAC,qDAAc;AACzC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA,cAAc,2FAAkC,EAAE,qFAA4B;AAC9E;AACA;AACA,YAAY,oDAAa;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEO;AACA;AACP;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/IqD;AACZ;AACI;AACD;AACsB;AACT;AACC;AACsL;AACzO,mBAAmB,0DAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAc,CAAC,wDAAW,CAAC,2DAAc;AACvD;AACA,iBAAiB,mEAAY;AAC7B;AACA,OAAO;AACP;AACA;AACA,cAAc,2DAAc;AAC5B;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,2DAAc,CAAC,wDAAW,CAAC,2DAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,sBAAsB,0DAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAc,CAAC,mDAAa;AAC1C;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,2DAAc,CAAC,wDAAW,CAAC,2DAAc;AACvD;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,2DAAc,CAAC,wDAAW,CAAC,2DAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,8BAA8B,wDAAe;AACpD;AACA;AACA;AACA;AACA,aAAa,gFAAuB;AACpC;AACA,KAAK;AACL;AACA,aAAa,mFAA0B;AACvC;AACA,KAAK;AACL;AACA,aAAa,uFAA8B;AAC3C;AACA,KAAK;AACL;AACA,aAAa,gFAAuB;AACpC;AACA,KAAK;AACL;AACA,aAAa,8FAAqC;AAClD;AACA,KAAK;AACL;AACA,aAAa,0FAAiC;AAC9C;AACA,KAAK;AACL;AACA,aAAa,0FAAiC;AAC9C;AACA,KAAK;AACL;AACA,aAAa,8FAAqC;AAClD;AACA,KAAK;AACL;AACA,aAAa,iFAAwB;AACrC;AACA,KAAK;AACL;AACA,aAAa,iFAAwB;AACrC;AACA,KAAK;AACL;AACA,aAAa,iFAAwB;AACrC;AACA,KAAK;AACL;AACA,aAAa,2FAAkC;AAC/C;AACA,KAAK;AACL;AACA,aAAa,8FAAqC;AAClD;AACA,KAAK;AACL;AACA,aAAa,oFAA2B;AACxC;AACA,KAAK;AACL;AACA,aAAa,gFAAuB;AACpC;AACA,KAAK;AACL;AACA,aAAa,+EAAsB;AACnC;AACA,KAAK;AACL;AACA,aAAa,qFAA4B;AACzC;AACA,KAAK;AACL;AACA,aAAa,uFAA8B;AAC3C;AACA,KAAK;AACL;AACA,aAAa,iGAAwC;AACrD;AACA;AACA;AACA,CAAC;AACM,iBAAiB,0DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAc;AAC5B;AACA,cAAc,yDAAY;AAC1B;AACA,YAAY,SAAS,yDAAY;AACjC;AACA,YAAY,SAAS,4DAAe;AACpC;AACA,YAAY,SAAS,wDAAW;AAChC;AACA,YAAY,SAAS,uDAAU;AAC/B;AACA,YAAY,SAAS,8DAAiB;AACtC;AACA,YAAY,SAAS,uDAAU;AAC/B;AACA,YAAY,SAAS,0DAAa;AAClC;AACA,YAAY;;;AAGZ;AACA,UAAU,8DAAS,qCAAqC,4DAAO;AAC/D;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,wDAAW,CAAC,2DAAc;AACxC;AACA;AACA,kBAAkB,oDAAc;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEA,cAAc,yDAAY,UAAU,4DAAe;AACnD,yBAAyB,mEAAY;;AAErC;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,cAAc,wDAAW,CAAC,2DAAc;AACxC;AACA,cAAc,yDAAY;AAC1B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,wDAAW,CAAC,2DAAc;AACxC;AACA;;AAEA,cAAc,2DAAc;AAC5B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,wDAAW,CAAC,2DAAc;AACxC;AACA;AACA,kBAAkB,oDAAc;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEA,cAAc,uDAAU;AACxB;;AAEA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,wDAAW,CAAC,2DAAc;AACxC;AACA,cAAc,8DAAiB;AAC/B,mBAAmB,mEAAY;AAC/B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,kBAAkB,0DAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAc,CAAC,mDAAa;AAC1C;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,2DAAc,CAAC,wDAAW,CAAC,2DAAc;AACvD;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,2DAAc;AAC5B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,2DAAc,CAAC,oDAAc;AAC3C;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,uBAAuB,0DAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAc,CAAC,mDAAa;AAC1C;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,2DAAc;AAC5B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA,yBAAyB,qEAAY;AACrC,4BAA4B,wDAAK;AACjC;AACA;AACA;AACA;AACA,CAAC;AACM,sBAAsB,0DAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAc,CAAC,mDAAa;AAC1C;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,2DAAc,CAAC,oDAAc;AAC3C;AACA;AACA;AACA,OAAO;AACP;AACA,cAAc,mDAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,qBAAqB,wDAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEO;AACP;AACA,QAAQ,2DAAc;AACtB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAc,CAAC,mDAAa;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,2DAAc,CAAC,mDAAa;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACO;AACA;AACP,SAAS,wDAAW;AACpB;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7f6C;AACE;AACN;AACU;AACV;AACsB,CAAC;AAChE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO,gEAAS;AAChB,0EAA0E,4DAAO;AACjF;;AAEA;AACA,wFAAwF,4DAAO;AAC/F;;AAEA;AACA;;AAEA;AACA,OAAO,gEAAS;AAChB,0EAA0E,4DAAO;AACjF;;AAEA;AACA,wFAAwF,4DAAO;AAC/F;;AAEA;AACA;;AAEO,qBAAqB,0DAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAQ;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO,+DAAQ;AACf,4EAA4E,4DAAO;AACnF;;AAEA;AACA;;AAEA;AACA,OAAO,+DAAQ;AACf,4EAA4E,4DAAO;AACnF;;AAEA;AACA;;AAEO,uBAAuB,0DAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAU,iBAAiB,qDAAQ;AAC3D;AACA,CAAC,GAAG;AACJ;AACA;;AAEA;AACA,MAAM,iEAAY;AAClB;AACA;;AAEA,WAAW,iEAAY;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,+DAAQ;AACd;AACA;;AAEA,+DAA+D,4DAAO;AACtE;;AAEA;AACA;AACA,8EAA8E,4DAAO;AACrF;;AAEA;AACA;;AAEO,wBAAwB,0DAAiB;AAChD;AACA;AACA;AACA;AACA;AACA,wBAAwB,wDAAW;AACnC;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA,MAAM,+DAAQ;AACd;AACA;;AAEA,8EAA8E,4DAAO;AACrF;;AAEA;AACA;AACA,gFAAgF,4DAAO;AACvF;;AAEA;AACA;;AAEO,yBAAyB,0DAAiB;AACjD;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAY;AACpC;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,gEAAS;AACf;AACA;;AAEA,2DAA2D,4DAAO;AAClE;;AAEA;AACA;AACA;AACA;;AAEA,MAAM,gEAAS;AACf;AACA;;AAEA,2DAA2D,4DAAO;AAClE;;AAEO,oBAAoB,0DAAiB;AAC5C;AACA,gLAAgL;AAChL;AACA;AACA;AACA,wBAAwB,wDAAW,iBAAiB,qDAAQ;AAC5D;AACA,CAAC;AACM;AACA;AACP,SAAS,yDAAY;AACrB;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvOqC;AACgB;AACZ;AACE;AACE;AACE;AACI;AACU;AAClB;AACuC;AACyB;AAC3G;AACA;AACA;;AAEA;AACO;AACP,SAAS,+DAAU;AACnB;AACO;AACP;AACA,uCAAuC,4DAAO;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;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sCAAsC,0DAAa,IAAI,8DAAS;;AAEhE;AACA,IAAI,oEAAc;AAClB;;AAEA;AACA;AACA;;AAEA,sEAAsE,qCAAqC;AAC3G;;AAEA,qBAAqB,mEAAsB;AAC3C;AACA,MAAM,SAAS,0EAAoB;AACnC;AACA,MAAM,sBAAsB,sEAAyB;AACrD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG;;AAEN;AACA;AACA,GAAG;AACH,oBAAoB,kEAAoB;AACxC;;AAEA;AACA;AACA,GAAG;AACH,oBAAoB,qEAAuB;AAC3C;;AAEA;AACA;AACA,GAAG;AACH,oBAAoB,wEAA0B;AAC9C;;AAEA,aAAa,uDAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAY;AACvB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,sEAAsE,qCAAqC;AAC3G;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,2DAAM,CAAC,sEAA2B,CAAC,mEAAkB;AACtE;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,2DAAc;AACpC,iBAAiB,0DAAW;AAC5B;;AAEA,sBAAsB,+DAAkB;AACxC,iBAAiB,6DAAc;AAC/B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,eAAe,8DAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,wEAA2B;AACtC;;AAEA,WAAW,2EAA8B;AACzC;;AAEA,WAAW,sEAAyB;AACpC;;AAEA,WAAW,uEAA0B;AACrC;;AAEA,WAAW,wEAA2B;AACtC;;AAEA,WAAW,8EAAiC;AAC5C;AACA,MAAM;;;AAGN;AACA,IAAI,+DAAS,8CAA8C,6DAAO;AAClE;;AAEA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN,eAAe,gEAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN,eAAe,mEAAoB;AACnC;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,eAAe,8DAAe;AAC9B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;AACA;;AAEA,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN,eAAe,+DAAgB;AAC/B;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,eAAe,gEAAiB;AAChC;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,eAAe,qEAAsB;AACrC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA,SAAS,+DAAS;AAClB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA,mBAAmB,sEAAkB,CAAC,wEAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,8EAAsB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,mEAAiB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP,wBAAwB,wDAAK;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5aqD;AACZ;AACI;AACA;AACM;AACH;AACM;AACC;AACc;AACtB;AAC+N;AAChO;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,EAAE,iEAAY,mBAAmB,iEAAY,4BAA4B,8DAAS,mKAAmK,4DAAO,kBAAkB;;AAE9Q,oDAAoD;;AAEpD,gBAAgB,8DAAS;AACzB;AACA,GAAG;AACH;AACA,GAAG;;AAEH,sCAAsC,+DAAoB,EAAE,mEAAkB,GAAG,oBAAoB;AACrG;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA,4HAA4H;AAC5H;;AAEA,6GAA6G;;AAE7G,aAAa,uDAAa;AAC1B;AACA;AACA;AACA,WAAW,mEAAY;AACvB;AACA;AACA;AACA,GAAG,GAAG;AACN;;AAEA;AACA,yBAAyB,8DAAa;AACtC;;AAEA;AACA;AACA;;AAEA,aAAa,6DAAW;AACxB;;AAEA,yBAAyB,kEAAiB;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,gEAAc,CAAC,oEAAkB;AAC9C;;AAEA;AACA,mDAAmD,4DAAO;AAC1D;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,QAAQ,6DAAW;AACnB;AACA;;AAEA,4FAA4F,4DAAO;AACnG;;AAEA;AACA;;AAEA,QAAQ,8DAAY;AACpB;AACA;;AAEA,0FAA0F,4DAAO;AACjG;;AAEA;AACA;AACA,WAAW,kEAAgB;AAC3B;;AAEA;AACA;AACA,WAAW,qEAAmB;AAC9B,IAAI;AACJ;;;AAGA;AACA;AACA;AACA,aAAa,gEAAe;AAC5B;;AAEA,aAAa,gEAAe;AAC5B;;AAEA,aAAa,mEAAkB;AAC/B;;AAEA,aAAa,+DAAc;AAC3B;;AAEA,aAAa,8DAAa;AAC1B;;AAEA,aAAa,sEAAqB;AAClC;AACA;AACA;;AAEA,sJAAsJ,4DAAO;AAC7J;;AAEA;AACA,eAAe,+DAAiB;AAChC;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,oEAAoE,4DAAO;AAC3E;;AAEA,eAAe,+DAAiB;AAChC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,eAAe,kEAAoB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,uEAAuE,4DAAO;AAC9E;;AAEA,eAAe,8DAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,oEAAoE,4DAAO;AAC3E;;AAEA,eAAe,6DAAe;AAC9B;AACA;AACA,cAAc,8DAAS;AACvB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA,qEAAqE,4DAAO;AAC5E;;AAEA,eAAe,oEAAsB;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,gEAAgE,4DAAO;AACvE;;AAEA,WAAW,8DAAS;AACpB;AACA,KAAK;AACL;AACA,sEAAsE,4DAAO;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW,8DAAS;AACpB;AACA,KAAK;AACL;;AAEA;AACA;AACA,8DAA8D,2DAAY,CAAC,6DAAU;AACrF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wEAAwE,4DAAO;AAC/E;;AAEA;AACA,6EAA6E,4DAAO;AACpF;;AAEA,eAAe,+DAAgB;AAC/B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtSgD;AACK;AACZ;AACI;AACE;AACI;AACI;AACA;AACA;AACF;AACuD;;AAE5G;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA,uCAAuC,4DAAO;;AAE9C;AACA,wCAAwC,mEAAc;AACtD;;AAEA;AACA;AACA;;AAEA;AACA,MAAM,+DAAa;AACnB;AACA;AACA;;AAEA,YAAY,0DAAW,wBAAwB,6DAAY,sCAAsC,4DAAO;AACxG;A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;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,YAAY,sEAAoB;AAChC,GAAG;AACH;AACO;AACP,qCAAqC,kEAAoB,EAAE,oEAAmB;AAC9E;;AAEA;AACA,UAAU,oEAAqB,WAAW,wEAAmB;AAC7D;;AAEA;AACA;AACA;AACA,cAAc,mEAAY;AAC1B;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,kBAAkB,0CAA0C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP,MAAM,8DAAY;AAClB;AACA,IAAI,SAAS,8DAAY;AACzB;AACA,IAAI,SAAS,iEAAe;AAC5B;AACA,IAAI,SAAS,6DAAW;AACxB;AACA,IAAI,SAAS,4DAAU;AACvB;AACA,IAAI,SAAS,mEAAiB;AAC9B;AACA,IAAI;;;AAGJ;AACA,EAAE,8DAAS,8BAA8B,4DAAO;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,eAAe,mEAAY;AAC3B;AACA,GAAG;AACH;AACA;;AAEA;AACA,eAAe,mEAAY;AAC3B;AACA,GAAG;AACH;AACA;;AAEA;AACA,iCAAiC,6BAA6B;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA,mBAAmB,qEAAY;AAC/B;;AAEA;AACA,4BAA4B,wDAAK;AACjC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,qEAAY,SAAS,wDAAa;;AAEpD,+CAA+C,wEAA0B;AACzE,qCAAqC,wDAAK;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,uEAAgB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS,+DAAO;AAChB;AACA;AACA,MAAM;AACN;;;AAGA;AACA,GAAG;AACH;;AAEA;AACA,+CAA+C,2BAA2B;;AAE1E;AACA;AACA;;AAEA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC/R4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf,EAAE,wDAAK;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG,GAAG;AACN;;AAEA;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA,0EAA0E;AAC1E;;AAEA;;AAEA,iEAAiE,4BAA4B;AAC7F;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;;AAEA;AACA,kEAAkE,4BAA4B;AAC9F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AClFyC;AACG;AACM;AACiB;AACyB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B,IAAI;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kFAAkF,qCAAqC;AACvH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;AACM;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACM;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAyB,yDAAQ;AACjC,MAAM,wDAAK,OAAO,oEAAiB;AACnC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oGAAoG,qCAAqC;AACzI;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;AC3OuD;AACZ;AAC2B;AAChE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,+DAA+D,iCAAiC;AAChG;;AAEA,aAAa,gFAA0B;AACvC,kCAAkC,6DAAY,oDAAoD,mEAAsB,wBAAwB,kEAAqB;AACrK;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC3BkD;AACQ;AACF;AAC8B;AAC/E;AACP;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,2FAA2F,+DAAU,qDAAqD,+DAAU;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C,mFAAmF;;AAEnF,4HAA4H;;AAE5H,kCAAkC,6DAAY;AAC9C;AA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,gCAAgC,6DAAY;AAC5C;AACA;;AAEA;AACA,gCAAgC,6DAAY;AAC5C;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC/BwD;AACjD;AACP;AACA;AACA;AACO;AACP;AACA;AACA,0CAA0C;;AAE1C,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT,gCAAgC,6DAAY;AAC5C;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjEwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;;AAEA;AACA,oCAAoC,6DAAY;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACpCwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,0BAA0B,4BAA4B;AACtD;;AAEA,2GAA2G,qCAAqC;AAChJ;AACA;AACA;AACA;;AAEA,0BAA0B,2BAA2B;AACrD;AACA;;AAEA;AACA,oCAAoC,6DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC/CwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;;AAEA,yDAAyD,6BAA6B;AACtF;AACA;;AAEA;AACA,oCAAoC,6DAAY;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC3CwC;AACkB;AACd;AACY;AACZ;AACG;AAC4E;AACjE;AACnD;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAY;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,0BAA0B;AAC9C,+KAA+K;AAC/K;AACA;AACA;;AAEA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;;;AAGjD;AACA;AACA,IAAI;AACJ;;;AAGA,+IAA+I;AAC/I;;AAEA,kBAAkB,2BAA2B;AAC7C;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;AAClD;;;AAGA,gJAAgJ;AAChJ;;AAEA,kBAAkB,2BAA2B;AAC7C;AACA,IAAI;AACJ;;;AAGA,kBAAkB,2BAA2B;AAC7C;AACA;AACA,EAAE;AACF;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;;;AAGlD,gJAAgJ;AAChJ;;AAEA;AACA;;AAEA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;;AAEA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,IAAI;AACJ;AACA;;;AAGA,oBAAoB,6BAA6B;AACjD,qBAAqB,4BAA4B;AACjD;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,sCAAsC,oEAAa,YAAY,8BAA8B;AAC7F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC,4BAA4B,mBAAmB;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4BAA4B;AACxF;AACA;;AAEA;AACA;;AAEA,sBAAsB,oBAAoB;AAC1C,wBAAwB,oBAAoB;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gGAAgG,8DAAY,iBAAiB,8DAAY,eAAe;;AAExJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,4DAAO,yBAAyB,4DAAO;AAC1G,IAAI;AACJ;AACA;;;AAGA;AACA;;AAEA;AACA,6IAA6I,8DAAY,wBAAwB,8DAAY;AAC7L;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,2DAAI;AACxB;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,+BAA+B,wDAAK,aAAa,wDAAK;AACtD,EAAE;AACF;AACA;;;AAGA;AACA,MAAM,4DAAU;AAChB,WAAW,4DAAU;AACrB;;AAEA,MAAM,4DAAU;AAChB;AACA;;AAEA,MAAM,+DAAa;AACnB,WAAW,+DAAa;AACxB;;AAEA,MAAM,+DAAa;AACnB;AACA;;AAEA,MAAM,4DAAU,WAAW,4DAAU;AACrC;AACA;;AAEA;AACA,EAAE;AACF;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mEAAW;AAChC;AACA;;AAEA;AACA,sEAAsE,qCAAqC;AAC3G;;AAEA;AACA,WAAW,uDAAU;AACrB;AACA;AACA;;AAEA,cAAc,8DAAY,gBAAgB,iEAAe;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,iEAAoB;AAC/B;AACA;;AAEA,WAAW,iEAAoB;AAC/B;AACA;AACA,mDAAmD,mEAAW;;AAE9D;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChkB4C;AACY;AACA;AACE;AACO;AAC1D;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA,UAAU,iEAAe,cAAc,iEAAe,iBAAiB,0EAAc;AACrF,gCAAgC,6DAAY,mCAAmC,4DAAO,cAAc,4DAAO;AAC3G;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,qCAAqC,0EAAc;AACnD,gCAAgC,6DAAY,yCA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,oCAAoC,6DAAY,+CAA+C,4DAAO;AACtG;AACA,UAAU;AACV,kCAAkC,6DAAY,8CAA8C,4DAAO;AACnG;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjCwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,kCAAkC,6DAAY;AAC9C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACpBwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,gCAAgC,6DAAY;AAC5C,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AChCwD;AACjD;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,6DAAY;AAC5C;AACA;;AAEA;AACA,gCAAgC,6DAAY;AAC5C,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClCwD;AACZ;AACgB;AACrD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4DAA4D,iEAAmB;;AAE/E,oBAAoB,gCAAgC;AACpD;AACA;AACA;;AAEA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA,qBAAqB,sEAAyB;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B,yBAAyB;AACnD;AACA;;AAEA;AACA;AACA,sCAAsC,6DAAY;AAClD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC5DwD;AACL;AAC5C;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,qDAAqD,4BAA4B;AACjF;AACA;AACA;;AAEA,YAAY,4DAAU;AACtB,kCAAkC,6DAAY;AAC9C,UAAU;AACV,kCAAkC,6DAAY;AAC9C,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClDwD;AACiC;AAClF;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,qDAAqD,4BAA4B;AACjF;AACA;;AAEA;AACA,kCAAkC,6DAAY;AAC9C,UAAU;AACV,kCAAkC,6DAAY;AAC9C,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM,8DAAY,UAAU,iEAAe,UAAU,mEAAiB;AACtE;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;AC7DwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,gCAAgC,6DAAY;AAC5C,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5BwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,gCAAgC,6DAAY;AAC5C,QAAQ;AACR;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AClCwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,6DAAY;AAC9C,UAAU;AACV;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9BwD;AACjD;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;AACA;;AAEA;AACA,kCAAkC,6DAAY;AAC9C,UAAU;AACV,kCAAkC,6DAAY;AAC9C,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC7CwD;AACjD;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,6DAAY;AAC1C;AACA;;AAEA;AACA,8BAA8B,6DAAY;AAC1C,MAAM;AACN;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACzCwD;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,gCAAgC,6DAAY;AAC5C,QAAQ;AACR;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BwD;AACd;AACE;AACI;AACE;AACQ;AACF;AACT;AACqH;AAC7J;AACP,yFAAyF;AACzF;AACO;AACP,gFAAgF,+DAAU;AAC1F;AACO;AACP;AACA;AACO;AACP,4FAA4F,+DAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,UAAU,+DAAa;AACvB,gCAAgC,6DAAY,iBAAiB,4DAAO,QAAQ,wDAAK;AACjF;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB,iEAAe;;AAEhC,WAAW,4DAAU;AACrB;AACA,sBAAsB;AACtB;AACA,KAAK;AACL;AACA,iBAAiB,8DAAY;;AAE7B,WAAW,mEAAiB;AAC5B;AACA,sBAAsB;AACtB,QAAQ;;;AAGR,yBAAyB,2DAAM;AAC/B;AACA,OAAO;;AAEP,yCAAyC,mEAAY,oBAAoB,6BAA6B;AACtG;AACA;;AAEA,0BAA0B,sEAAoB;AAC9C,wBAAwB,4DAAO;AA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C2B;AAC3B;AACJ;AACoB;AACS;AACvE,uCAAuC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kFAAkF,2DAAc;AAChG,yFAAyF,yDAAQ;AACjG;AACA,iBAAiB,8DAAS,8BAA8B;;AAExD,EAAE,iEAAiB;AACnB,iCAAiC;AACjC;AACA;AACA,oBAAoB,iEAAiB;AACrC;AACA,sBAAsB,6DAAY;AAClC;AACA;;AAEA;AACA,GAAG,GAAG;AACN;;AAEA,gBAAgB,kEAAe;AAC/B;AACA,GAAG,IAAI;;AAEP;AACA,IAAI,wDAAK,cAAc,oEAAiB;AACxC,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEK;AACP,kFAAkF,8DAAiB;AACnG;AACA,oBAAoB,oEAAoB;AACxC;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,EAAE,wDAAK,cAAc,kEAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACvGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;;AAEA,iEAAe,KAAK,EAAC;AACiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1PtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,IAAIq16B;AAAO;AAAD,EAAc,OAAOlu3B,MAAP,KAAkB,UAAlB,GAA+BA,MAA/B,GAAwC,KAAK,CAArE,EAEA;;AACA,IAAImu3B,eAAe,GAAGD,MAAM,IAAIA,MAAM,CAAC3s3B,QAAvC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACO,IAAI6s3B,UAAU,GAAGD,eAAe,IAAI,YAApC;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACO,SAASz1O,UAAT,CAAoBponB,GAApB,EAAyB;AAC9B,SAAO,CAAC,CAAC+91B,iBAAiB,CAAC/91B,GAAD,CAA1B;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACO,SAAS+imB,WAAT,CAAqB/imB,GAArB,EAA0B;AAC/B,MAAI52E,MAAM,GAAG42E,GAAG,IAAI,IAAP,IAAeA,GAAG,CAAC52E,MAAhC;AACA,SAAO,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,IAAI,CAAxC,IAA6CA,MAAM,GAAG,CAAT,KAAe,CAAnE;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACO,SAAS406B,YAAT,CAAsBh+1B,GAAtB,EAA2B;AAChC,SAAOl5E,MAAM,CAACk5E,GAAD,CAAN,KAAgBA,GAAhB,KAAwB+imB,WAAW,CAAC/imB,GAAD,CAAX,IAAoBoonB,UAAU,CAACponB,GAAD,CAAtD,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACO,SAASi+1B,WAAT,CAAqB57kB,QAArB,EAA+B;AACpC,MAAIxyV,MAAM,GAAGku6B,iBAAiB,CAAC17kB,QAAD,CAA9B;;AACA,MAAIxyV,MAAJ,EAAY;AACV,WAAOA,MAAM,CAAC0zE,IAAP,CAAY8+Q,QAAZ,CAAP;AACD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACO,SAAS07kB,iBAAT,CAA2B17kB,QAA3B,EAAqC;AAC1C,MAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACpB,QAAIxyV,MAAM,GACPgu6B,eAAe,IAAIx7kB,QAAQ,CAACw7kB,eAAD,CAA5B,IAAkDx7kB,QAAQ,CAAC,YAAD,CAD5D;;AAEA,QAAI,OAAOxyV,MAAP,KAAkB,UAAtB,EAAkC;AAChC,aAAOA,MAAP;AACD;AACF;AACF;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACO,SAASqu6B,cAAT,CAAwBhtQ,UAAxB,EAAoC;AACzC,MAAIA,UAAU,IAAI,IAAlB,EAAwB;AACtB,QAAIjgnB,QAAQ,GAAGgt3B,WAAW,CAAC/sQ,UAAD,CAA1B;;AACA,QAAIjgnB,QAAJ,EAAc;AACZ,aAAOA,QAAP;AACD;;AACD,QAAI8xnB,WAAW,CAAC7R,UAAD,CAAf,EAA6B;AAC3B,aAAO,IAAIitQ,iBAAJ,CAAsBjtQ,UAAtB,CAAP;AACD;AACF;AACF,EAED;AACA;;AACA,SAASitQ,iBAAT,CAA2Bn+1B,GAA3B,EAAgC;AAC9B,OAAKo+1B,EAAL,GAAUp+1B,GAAV;AACA,OAAKM,EAAL,GAAU,CAAV;AACD,EAED;;;AACA691B,iBAAiB,CAAC/16B,SAAlB,CAA4B016B,UAA5B,IAA0C,YAAW;AACnD,SAAO,IAAP;AACD,CAFD,EAIA;AACA;;;AACAK,iBAAiB,CAAC/16B,SAAlB,CAA4B6vC,IAA5B,GAAmC,YAAW;AAC5C,MAAI,KAAKmm4B,EAAL,KAAY,KAAK,CAAjB,IAAsB,KAAK991B,EAAL,IAAW,KAAK891B,EAAL,CAAQh16B,MAA7C,EAAqD;AACnD,SAAKg16B,EAAL,GAAU,KAAK,CAAf;AACA,WAAO;AAAEn36B,MAAAA,KAAK,EAAE,KAAK,CAAd;AAAiBmwC,MAAAA,IAAI,EAAE;AAAvB,KAAP;AACD;;AACD,SAAO;AAAEnwC,IAAAA,KAAK,EAAE,KAAKm36B,EAAL,CAAQ,KAAK991B,EAAL,EAAR,CAAT;AAA6BlpC,IAAAA,IAAI,EAAE;AAAnC,GAAP;AACD,CAND;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAAS2W,OAAT,CAAiBmjnB,UAAjB,EAA6Bn/lB,QAA7B,EAAuC2jS,OAAvC,EAAgD;AACrD,MAAIw7T,UAAU,IAAI,IAAlB,EAAwB;AACtB,QAAI,OAAOA,UAAU,CAACnjnB,OAAlB,KAA8B,UAAlC,EAA8C;AAC5C,aAAOmjnB,UAAU,CAACnjnB,OAAX,CAAmBgkB,QAAnB,EAA6B2jS,OAA7B,CAAP;AACD;;AACD,QAAIztW,CAAC,GAAG,CAAR;AACA,QAAIgpD,QAAQ,GAAGgt3B,WAAW,CAAC/sQ,UAAD,CAA1B;;AACA,QAAIjgnB,QAAJ,EAAc;AACZ,UAAI5Y,IAAJ;;AACA,aAAO,CAAC,CAACA,IAAI,GAAG4Y,QAAQ,CAAChZ,IAAT,EAAR,EAAyBb,IAAjC,EAAuC;AACrC26B,QAAAA,QAAQ,CAACwR,IAAT,CAAcmyR,OAAd,EAAuBr9T,IAAI,CAACpxC,KAA5B,EAAmCgB,CAAC,EAApC,EAAwCipqB,UAAxC,EADqC,CAErC;AACA;;AACA;;AACA,YAAIjpqB,CAAC,GAAG,OAAR,EAAiB;AACf,gBAAM,IAAIwsG,SAAJ,CAAc,0BAAd,CAAN;AACD;AACF;AACF,KAXD,MAWO,IAAIsukB,WAAW,CAAC7R,UAAD,CAAf,EAA6B;AAClC,aAAOjpqB,CAAC,GAAGipqB,UAAU,CAAC9nqB,MAAtB,EAA8BnB,CAAC,EAA/B,EAAmC;AACjC,YAAIipqB,UAAU,CAACv1mB,cAAX,CAA0B1zD,CAA1B,CAAJ,EAAkC;AAChC8pE,UAAAA,QAAQ,CAACwR,IAAT,CAAcmyR,OAAd,EAAuBw7T,UAAU,CAACjpqB,CAAD,CAAjC,EAAsCA,CAAtC,EAAyCipqB,UAAzC;AACD;AACF;AACF;AACF;AACF,EAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AACA,IAAImtQ,qBAAqB,GAAGT,MAAM,IAAIA,MAAM,CAACju3B,aAA7C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACO,IAAIor3B,eAAe,GAAGsD,qBAAqB,IAAI,iBAA/C;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACO,SAASn2O,eAAT,CAAyBlonB,GAAzB,EAA8B;AACnC,SAAO,CAAC,CAACs+1B,sBAAsB,CAACt+1B,GAAD,CAA/B;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;A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kBAAkB,wDAAwD,uDAAuD,mDAAmD,uBAAuB,+CAA+C,uEAAuE,SAAS,mCAAmC,2BAA2B,OAAO,oBAAoB,mBAAmB,6DAA6D,WAAW,KAAK,kBAAkB,6CAA6C,WAAW,EAAE,GAAG,kBAAkB,cAAc,yBAAyB,oDAAoD,4CAA4C,+BAA+B,kCAAkC,2BAA2B,2BAA2B,mCAAmC,iCAAiC,WAAW,KAAK,cAAc,6CAA6C,4BAA4B,sBAAsB,YAAY,qBAAqB,iBAAiB,kCAAkC,iVAAiV,YAAY,mLAA0S;;;;;;;;;;;;;;;;;ACdvwjB;AAC1B;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,sDAAU;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;AC9Fe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;AACA;AACA;;AAEA,+FAA+F,QAAQ;AACvG;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;AClCyC;AAC1B;AACf,aAAa,sDAAU;AACvB;;;;;;;;;;;;;;;ACHe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACbiD;;AAEjD;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEe;AACf,kBAAkB,sBAAsB;AACxC;AACA;AACA,MAAM,8DAAc;AACpB,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;;;;;;;AC1Be;AACf;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACRiD;AAClC;AACf;AACA,eAAe,0DAAc;AAC7B;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,gBAAgB,sCAAsC,kBAAkB;AACjF,wBAAwB;AACxB;AACA;;AAEO;AACP;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEO;AACP;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;;AAEO;AACP,kCAAkC;AAClC;;AAEO;AACP,uBAAuB,uFAAuF;AAC9G;AACA;AACA,yGAAyG;AACzG;AACA,sCAAsC,QAAQ;AAC9C;AACA,gEAAgE;AAChE;AACA,8CAA8C,yFAAyF;AACvI,8DAA8D,2CAA2C;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA,4CAA4C,yEAAyE;AACrH;;AAEO;AACP;AACA;;AAEO;AACP,0BAA0B,+DAA+D,iBAAiB;AAC1G;AACA,kCAAkC,MAAM,+BAA+B,YAAY;AACnF,iCAAiC,MAAM,mCAAmC,YAAY;AACtF,8BAA8B;AAC9B;AACA,GAAG;AACH;;AAEO;AACP,YAAY,6BAA6B,0BAA0B,cAAc,qBAAqB;AACtG,eAAe,oDAAoD,qEAAqE,cAAc;AACtJ,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iCAAiC,SAAS;AAC1C,iCAAiC,WAAW,UAAU;AACtD,wCAAwC,cAAc;AACtD;AACA,4GAA4G,OAAO;AACnH,+EAA+E,iBAAiB;AAChG,uDAAuD,gBAAgB,QAAQ;AAC/E,6CAA6C,gBAAgB,gBAAgB;AAC7E;AACA,gCAAgC;AAChC;AACA;AACA,QAAQ,YAAY,aAAa,SAAS,UAAU;AACpD,kCAAkC,SAAS;AAC3C;AACA;;AAEO;AACP;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAEM;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACO;AACP,2BAA2B,sBAAsB;AACjD;AACA;AACA;;AAEA;AACO;AACP,gDAAgD,QAAQ;AACxD,uCAAuC,QAAQ;AAC/C,uDAAuD,QAAQ;AAC/D;AACA;AACA;;AAEO;AACP,2EAA2E,OAAO;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,eAAe,uFAAuF,cAAc;AACpH,qBAAqB,gCAAgC,qCAAqC,2CAA2C;AACrI,0BAA0B,MAAM,iBAAiB,YAAY;AAC7D,qBAAqB;AACrB,4BAA4B;AAC5B,2BAA2B;AAC3B,0BAA0B;AAC1B;;AAEO;AACP;AACA,eAAe,6CAA6C,UAAU,sDAAsD,cAAc;AAC1I,wBAAwB,6BAA6B,oBAAoB,uCAAuC,kBAAkB;AAClI;;AAEO;AACP;AACA;AACA,yGAAyG,uFAAuF,cAAc;AAC9M,qBAAqB,8BAA8B,gDAAgD,wDAAwD;AAC3J,2CAA2C,sCAAsC,UAAU,mBAAmB,IAAI;AAClH;;AAEO;AACP,+BAA+B,uCAAuC,YAAY,KAAK,OAAO;AAC9F;AACA;;AAEA;AACA,wCAAwC,4BAA4B;AACpE,CAAC;AACD;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,2CAA2C;AAC3C;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC","sources":["./node_modules/@asymmetrik/ngx-leaflet-draw/__ivy_ngcc__/dist/index.js","./node_modules/@asymmetrik/ngx-leaflet-draw/__ivy_ngcc__/dist/leaflet-draw/core/leaflet-draw.directive.js","./node_modules/@asymmetrik/ngx-leaflet-draw/__ivy_ngcc__/dist/leaflet-draw/leaflet-draw.module.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/index.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/core/leaflet.directive.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/core/leaflet.directive.wrapper.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/core/leaflet.util.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/base/leaflet-baselayers.directive.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/control/leaflet-control-layers-changes.model.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/control/leaflet-control-layers-config.model.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/control/leaflet-control-layers.directive.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/control/leaflet-control-layers.wrapper.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/leaflet-layer.directive.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/leaflet-layers.directive.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/layers/leaflet-tile-layer-definition.model.js","./node_modules/@asymmetrik/ngx-leaflet/__ivy_ngcc__/dist/leaflet/leaflet.module.js","./node_modules/@aws-crypto/crc32c/build/aws_crc32c.js","./node_modules/@aws-crypto/crc32c/build/index.js","./convertToBuffer","@aws-crypto/util","./isEmptyData","./numToUint8","./uint32ArrayFrom","./node_modules/@aws-crypto/sha1-browser/build/constants.js","./node_modules/@aws-crypto/sha1-browser/build/crossPlatformSha1.js","./node_modules/@aws-crypto/sha1-browser/build/ie11Sha1.js","./node_modules/@aws-crypto/sha1-browser/build/index.js","./node_modules/@aws-crypto/sha1-browser/build/isEmptyData.js","./node_modules/@aws-crypto/sha1-browser/build/webCryptoSha1.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/ie11-detection/build/Key.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/ie11-detection/build/index.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/supports-web-crypto/build/index.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/util/build/convertToBuffer.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/util/build/index.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/util/build/isEmptyData.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/util/build/numToUint8.js","./node_modules/@aws-crypto/sha1-browser/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","./node_modules/@aws-crypto/sha256-js/build/RawSha256.js","./node_modules/@aws-crypto/sha256-js/build/constants.js","./node_modules/@aws-crypto/sha256-js/build/index.js","./node_modules/@aws-crypto/sha256-js/build/jsSha256.js","./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","./node_modules/@aws-crypto/util/build/convertToBuffer.js","./node_modules/@aws-crypto/util/build/index.js","./node_modules/@aws-crypto/util/build/isEmptyData.js","./node_modules/@aws-crypto/util/build/numToUint8.js","./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","./node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","./node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","./node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","./node_modules/@aws-sdk/abort-controller/dist/es/AbortController.js","./node_modules/@aws-sdk/abort-controller/dist/es/AbortSignal.js","./node_modules/@aws-sdk/abort-controller/dist/es/index.js","./node_modules/@aws-sdk/chunked-blob-reader/dist-es/index.js","./node_modules/@aws-sdk/client-s3/dist-es/S3.js","./node_modules/@aws-sdk/client-s3/dist-es/S3Client.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketAnalyticsConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCorsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketEncryptionCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketIntelligentTieringConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketInventoryConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketLifecycleCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetricsConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketOwnershipControlsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketPolicyCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketReplicationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketTaggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketWebsiteCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectTaggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/DeletePublicAccessBlockCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAccelerateConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAclCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAnalyticsConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketCorsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketEncryptionCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketIntelligentTieringConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketInventoryConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLifecycleConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLocationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLoggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetricsConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketNotificationConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketOwnershipControlsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyStatusCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketReplicationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketRequestPaymentCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketTaggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketVersioningCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketWebsiteCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAclCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAttributesCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLegalHoldCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLockConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectRetentionCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTaggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTorrentCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/GetPublicAccessBlockCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/HeadBucketCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketAnalyticsConfigurationsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketIntelligentTieringConfigurationsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketInventoryConfigurationsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketMetricsConfigurationsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListMultipartUploadsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectVersionsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAnalyticsConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketIntelligentTieringConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketMetricsConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketNotificationConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketOwnershipControlsCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/SelectObjectContentCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCopyCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/WriteGetObjectResponseCommand.js","./node_modules/@aws-sdk/client-s3/dist-es/commands/index.js","./node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js","./node_modules/@aws-sdk/client-s3/dist-es/endpoint/endpointResolver.js","./node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js","./node_modules/@aws-sdk/client-s3/dist-es/index.js","./node_modules/@aws-sdk/client-s3/dist-es/models/S3ServiceException.js","./node_modules/@aws-sdk/client-s3/dist-es/models/index.js","./node_modules/@aws-sdk/client-s3/dist-es/models/models_0.js","./node_modules/@aws-sdk/client-s3/dist-es/models/models_1.js","./node_modules/@aws-sdk/client-s3/dist-es/pagination/ListObjectsV2Paginator.js","./node_modules/@aws-sdk/client-s3/dist-es/pagination/ListPartsPaginator.js","./node_modules/@aws-sdk/client-s3/dist-es/pagination/index.js","./node_modules/@aws-sdk/client-s3/dist-es/protocols/Aws_restXml.js","./node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.browser.js","./node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js","./node_modules/@aws-sdk/client-s3/dist-es/waiters/index.js","./node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js","./node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js","./node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js","./node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js","./CryptoOperation","./Key","./KeyOperation","./MsSubtleCrypto","./MsWindow","@aws-crypto/ie11-detection","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/build/constants.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/build/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/build/constants.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/build/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","@aws-crypto/supports-web-crypto","./supportsWebCrypto","webpack:///./convertToBuffer?a50e","webpack:///@aws-crypto/util?590c","webpack:///./isEmptyData?c38c","webpack:///./numToUint8?f979","webpack:///./uint32ArrayFrom?344d","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/config.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/getRealRegion.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/PartitionHash.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/RegionHash.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getRegionInfo.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedHostname.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedPartition.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/fetch-http-handler/dist-es/fetch-http-handler.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/fetch-http-handler/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/fetch-http-handler/dist-es/request-timeout.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/fetch-http-handler/dist-es/stream-collector.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/invalid-dependency/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/invalid-dependency/dist-es/invalidFunction.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/invalid-dependency/dist-es/invalidProvider.js","@aws-sdk/is-array-buffer","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-content-length/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/toEndpointV1.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/endpointMiddleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/getEndpointPlugin.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/resolveEndpointConfig.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/s3.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-endpoint/dist-es/types.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/AdaptiveRetryStrategy.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/configurations.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/defaultRetryQuota.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/omitRetryHeadersMiddleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/retryMiddleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-retry/dist-es/util.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-serde/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/awsAuthConfiguration.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/awsAuthMiddleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-stack/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/property-provider/dist-es/CredentialsProviderError.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/property-provider/dist-es/TokenProviderError.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/property-provider/dist-es/chain.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/property-provider/dist-es/fromStatic.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/property-provider/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/property-provider/dist-es/memoize.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/Field.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/FieldPosition.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/Fields.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/httpHandler.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/httpRequest.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/httpResponse.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/protocol-http/dist-es/isValidHostname.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/querystring-builder/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/querystring-parser/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/service-error-classification/dist-es/constants.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/service-error-classification/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/SignatureV4.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/cloneRequest.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/constants.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalHeaders.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalQuery.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/headerUtil.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/moveHeadersToQuery.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/prepareRequest.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/signature-v4/dist-es/utilDate.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/NoOpLogger.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/client.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/collect-stream-body.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/command.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/constants.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/create-aggregated-client.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/get-array-if-single-item.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/get-value-from-text-node.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/ser-utils.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/serde-json.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/smithy-client/dist-es/split-every.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/url-parser/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-body-length-browser/dist-es/calculateBodyLength.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-body-length-browser/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-config-provider/dist-es/booleanSelector.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-config-provider/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-middleware/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-middleware/dist-es/normalizeProvider.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri-path.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-uri-escape/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","./node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/esm-browser/regex.js","./node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/esm-browser/rng.js","./node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/esm-browser/stringify.js","./node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/esm-browser/v4.js","./node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/esm-browser/validate.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/EventStreamCodec.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/HeaderMarshaller.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/Int64.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/Message.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/MessageDecoderStream.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/MessageEncoderStream.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/SmithyMessageDecoderStream.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/SmithyMessageEncoderStream.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/index.js","./node_modules/@aws-sdk/eventstream-codec/dist-es/splitMessage.js","./aws_crc32","@aws-crypto/crc32","webpack:///./convertToBuffer?d5ee","webpack:///@aws-crypto/util?6123","webpack:///./isEmptyData?f33e","webpack:///./numToUint8?e559","webpack:///./uint32ArrayFrom?e96a","webpack:///@aws-sdk/util-hex-encoding?3481","./node_modules/@aws-sdk/eventstream-serde-browser/dist-es/EventStreamMarshaller.js","./node_modules/@aws-sdk/eventstream-serde-browser/dist-es/index.js","./node_modules/@aws-sdk/eventstream-serde-browser/dist-es/provider.js","./node_modules/@aws-sdk/eventstream-serde-browser/dist-es/utils.js","./node_modules/@aws-sdk/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js","./node_modules/@aws-sdk/eventstream-serde-config-resolver/dist-es/index.js","./node_modules/@aws-sdk/eventstream-serde-universal/dist-es/EventStreamMarshaller.js","./node_modules/@aws-sdk/eventstream-serde-universal/dist-es/getChunkedStream.js","./node_modules/@aws-sdk/eventstream-serde-universal/dist-es/getUnmarshalledStream.js","./node_modules/@aws-sdk/eventstream-serde-universal/dist-es/index.js","./node_modules/@aws-sdk/eventstream-serde-universal/dist-es/provider.js","./node_modules/@aws-sdk/hash-blob-browser/dist-es/index.js","./node_modules/@aws-sdk/lib-storage/dist-es/Upload.js","./node_modules/@aws-sdk/lib-storage/dist-es/bytelength.js","./node_modules/@aws-sdk/lib-storage/dist-es/chunker.js","./node_modules/@aws-sdk/lib-storage/dist-es/chunks/getChunkBuffer.js","./node_modules/@aws-sdk/lib-storage/dist-es/chunks/getChunkStream.js","./node_modules/@aws-sdk/lib-storage/dist-es/chunks/getDataReadable.js","./node_modules/@aws-sdk/lib-storage/dist-es/chunks/getDataReadableStream.js","./node_modules/@aws-sdk/lib-storage/dist-es/index.js","./node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.browser.js","./node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.shared.js","./node_modules/@aws-sdk/lib-storage/dist-es/types.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/middleware-stack/dist-es/index.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/client.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/command.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/constants.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/get-array-if-single-item.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/get-value-from-text-node.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/index.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/ser-utils.js","./node_modules/@aws-sdk/lib-storage/node_modules/@aws-sdk/smithy-client/dist-es/split-every.js","./node_modules/@aws-sdk/lib-storage/node_modules/buffer/index.js","./node_modules/@aws-sdk/md5-js/dist-es/constants.js","./node_modules/@aws-sdk/md5-js/dist-es/index.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/index.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/toEndpointV1.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/endpointMiddleware.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/getEndpointPlugin.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/resolveEndpointConfig.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/index.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/s3.js","./node_modules/@aws-sdk/middleware-endpoint/dist-es/types.js","./node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js","./node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/middleware-serde/dist-es/index.js","./node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js","./node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js","./node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/querystring-parser/dist-es/index.js","./node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/url-parser/dist-es/index.js","./node_modules/@aws-sdk/middleware-expect-continue/dist-es/index.js","webpack:///./Field?d703","webpack:///./FieldPosition?f051","webpack:///./Fields?ebdf","webpack:///./httpHandler?d372","webpack:///./httpRequest?8327","webpack:///./httpResponse?235d","webpack:///@aws-sdk/protocol-http?2ea2","webpack:///./isValidHostname?ef1b","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksum.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmListForResponse.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumLocationName.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeader.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/index.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isStreaming.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringHasher.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js","./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js","./node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-crypto/crc32/build/aws_crc32.js","./node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-crypto/crc32/build/index.js","webpack:///./convertToBuffer?3461","webpack:///@aws-crypto/util?b87f","webpack:///./isEmptyData?0471","webpack:///./numToUint8?41b1","webpack:///./uint32ArrayFrom?3e3c","./node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/is-array-buffer/dist-es/index.js","webpack:///./Field?47cc","webpack:///./FieldPosition?f587","webpack:///./Fields?1987","webpack:///./httpHandler?ec08","webpack:///./httpRequest?de81","webpack:///./httpResponse?c734","webpack:///@aws-sdk/protocol-http?6aa3","webpack:///./isValidHostname?e99e","./node_modules/@aws-sdk/middleware-location-constraint/dist-es/index.js","./node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js","webpack:///./Field?7852","webpack:///./FieldPosition?edbb","webpack:///./Fields?854e","webpack:///./httpHandler?d58b","webpack:///./httpRequest?7fea","webpack:///./httpResponse?9409","webpack:///@aws-sdk/protocol-http?d27a","webpack:///./isValidHostname?06b5","./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js","./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/index.js","./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js","./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js","./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js","webpack:///./Field?a5db","webpack:///./FieldPosition?b3d2","webpack:///./Fields?9f82","webpack:///./httpHandler?c6f4","webpack:///./httpRequest?018b","webpack:///./httpResponse?ffa5","webpack:///@aws-sdk/protocol-http?ce97","webpack:///./isValidHostname?762d","./node_modules/@aws-sdk/middleware-ssec/dist-es/index.js","./node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js","./node_modules/@aws-sdk/signature-v4-multi-region/dist-es/index.js","webpack:///@aws-sdk/is-array-buffer?f9bf","./cloneRequest","./constants","./getCanonicalHeaders","./getCanonicalQuery","./headerUtil","@aws-sdk/signature-v4","./moveHeadersToQuery","./prepareRequest","./utilDate","webpack:///@aws-sdk/util-hex-encoding?ca1a","@aws-sdk/util-middleware","./normalizeProvider","webpack:///./escape-uri-path?8f0a","webpack:///./escape-uri?598b","webpack:///@aws-sdk/util-uri-escape?72f3","./node_modules/@aws-sdk/util-arn-parser/dist-es/index.js","./node_modules/@aws-sdk/util-base64/dist-es/constants.browser.js","./node_modules/@aws-sdk/util-base64/dist-es/fromBase64.browser.js","./node_modules/@aws-sdk/util-base64/dist-es/index.js","./node_modules/@aws-sdk/util-base64/dist-es/toBase64.browser.js","./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/constants.js","./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/index.js","./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js","./CredentialsProviderError","./ProviderError","./TokenProviderError","./fromStatic","@aws-sdk/property-provider","./node_modules/@aws-sdk/util-endpoints/dist-es/debug/debugId.js","./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js","./node_modules/@aws-sdk/util-endpoints/dist-es/debug/toDebugString.js","./node_modules/@aws-sdk/util-endpoints/dist-es/index.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/index.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/booleanEquals.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttr.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttrPathList.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/index.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isSet.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/not.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/parseURL.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/stringEquals.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/substring.js","./node_modules/@aws-sdk/util-endpoints/dist-es/lib/uriEncode.js","./node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js","./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js","./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointRuleObject.js","./node_modules/@aws-sdk/util-endpoints/dist-es/types/ErrorRuleObject.js","./node_modules/@aws-sdk/util-endpoints/dist-es/types/RuleSetObject.js","./node_modules/@aws-sdk/util-endpoints/dist-es/types/TreeRuleObject.js","./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js","./node_modules/@aws-sdk/util-endpoints/dist-es/types/shared.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateCondition.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateEndpointRule.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateErrorRule.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTreeRule.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointHeaders.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperty.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointUrl.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getReferenceValue.js","./node_modules/@aws-sdk/util-endpoints/dist-es/utils/index.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/abort.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/auth.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/blob/blob-types.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/checksum.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/client.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/command.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/connection/config.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/connection/index.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/connection/manager.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/connection/pool.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/credentials.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/crypto.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/dns.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/encode.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/endpoint.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/eventStream.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/http.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/identity/AnonymousIdentity.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/identity/AwsCredentialIdentity.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/identity/Identity.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/identity/LoginIdentity.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/identity/TokenIdentity.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/identity/index.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/index.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/logger.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/middleware.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/pagination.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/profile.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/request.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/response.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/retry.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/serde.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/shapes.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/signature.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/stream.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/token.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/transfer.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/uri.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/util.js","./node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/waiter.js","./node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","./node_modules/@aws-sdk/util-locate-window/dist-es/index.js","./node_modules/@aws-sdk/util-middleware/dist-es/index.js","./node_modules/@aws-sdk/util-middleware/dist-es/normalizeProvider.js","./node_modules/@aws-sdk/util-retry/dist-es/AdaptiveRetryStrategy.js","./node_modules/@aws-sdk/util-retry/dist-es/ConfiguredRetryStrategy.js","./node_modules/@aws-sdk/util-retry/dist-es/DefaultRateLimiter.js","./node_modules/@aws-sdk/util-retry/dist-es/StandardRetryStrategy.js","./node_modules/@aws-sdk/util-retry/dist-es/config.js","./node_modules/@aws-sdk/util-retry/dist-es/constants.js","./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryBackoffStrategy.js","./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryToken.js","./node_modules/@aws-sdk/util-retry/dist-es/index.js","./node_modules/@aws-sdk/util-retry/dist-es/types.js","webpack:///./constants?8015","@aws-sdk/service-error-classification","./node_modules/@aws-sdk/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js","./node_modules/@aws-sdk/util-stream/dist-es/blob/transforms.js","./node_modules/@aws-sdk/util-stream/dist-es/getAwsChunkedEncodingStream.browser.js","./node_modules/@aws-sdk/util-stream/dist-es/index.js","./node_modules/@aws-sdk/util-stream/dist-es/sdk-stream-mixin.browser.js","@aws-sdk/fetch-http-handler","./request-timeout","./Field","./FieldPosition","./Fields","./httpHandler","./httpRequest","./httpResponse","@aws-sdk/protocol-http","./isValidHostname","@aws-sdk/querystring-builder","@aws-sdk/util-hex-encoding","./escape-uri-path","./escape-uri","@aws-sdk/util-uri-escape","./node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","./node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","./node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","./node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.browser.js","./node_modules/@aws-sdk/util-utf8/dist-es/index.js","./node_modules/@aws-sdk/util-utf8/dist-es/toUint8Array.js","./node_modules/@aws-sdk/util-utf8/dist-es/toUtf8.browser.js","./node_modules/@aws-sdk/util-waiter/dist-es/createWaiter.js","./node_modules/@aws-sdk/util-waiter/dist-es/index.js","./node_modules/@aws-sdk/util-waiter/dist-es/poller.js","./node_modules/@aws-sdk/util-waiter/dist-es/utils/index.js","./node_modules/@aws-sdk/util-waiter/dist-es/utils/sleep.js","./node_modules/@aws-sdk/util-waiter/dist-es/utils/validate.js","./node_modules/@aws-sdk/util-waiter/dist-es/waiter.js","./node_modules/@aws-sdk/xml-builder/dist-es/XmlNode.js","./node_modules/@aws-sdk/xml-builder/dist-es/XmlText.js","./node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js","./node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js","./node_modules/@aws-sdk/xml-builder/dist-es/index.js","./node_modules/@microsoft/signalr/dist/esm/AbortController.js","./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","./node_modules/@microsoft/signalr/dist/esm/Errors.js","./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","./node_modules/@microsoft/signalr/dist/esm/ILogger.js","./node_modules/@microsoft/signalr/dist/esm/ITransport.js","./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","./node_modules/@microsoft/signalr/dist/esm/Loggers.js","./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","./node_modules/@microsoft/signalr/dist/esm/Subject.js","./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","./node_modules/@microsoft/signalr/dist/esm/Utils.js","./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","./node_modules/@ngx-translate/core/__ivy_ngcc__/esm2015/ngx-translate-core.js","./node_modules/@redux-offline/redux-offline/lib/actions.js","./node_modules/@redux-offline/redux-offline/lib/config.js","./node_modules/@redux-offline/redux-offline/lib/constants.js","./node_modules/@redux-offline/redux-offline/lib/defaults/defaultCommit.js","./node_modules/@redux-offline/redux-offline/lib/defaults/defaultRollback.js","./node_modules/@redux-offline/redux-offline/lib/defaults/detectNetwork.js","./node_modules/@redux-offline/redux-offline/lib/defaults/discard.js","./node_modules/@redux-offline/redux-offline/lib/defaults/effect.js","./node_modules/@redux-offline/redux-offline/lib/defaults/index.js","./node_modules/@redux-offline/redux-offline/lib/defaults/offlineStateLens.js","./node_modules/@redux-offline/redux-offline/lib/defaults/persist.js","./node_modules/@redux-offline/redux-offline/lib/defaults/persistAutoRehydrate.js","./node_modules/@redux-offline/redux-offline/lib/defaults/queue.js","./node_modules/@redux-offline/redux-offline/lib/defaults/retry.js","./node_modules/@redux-offline/redux-offline/lib/index.js","./node_modules/@redux-offline/redux-offline/lib/middleware.js","./node_modules/@redux-offline/redux-offline/lib/offlineActionTracker.js","./node_modules/@redux-offline/redux-offline/lib/send.js","./node_modules/@redux-offline/redux-offline/lib/updater.js","./node_modules/@smithy/protocol-http/dist-es/Field.js","./node_modules/@smithy/protocol-http/dist-es/Fields.js","./node_modules/@smithy/protocol-http/dist-es/httpHandler.js","./node_modules/@smithy/protocol-http/dist-es/httpRequest.js","./node_modules/@smithy/protocol-http/dist-es/httpResponse.js","./node_modules/@smithy/protocol-http/dist-es/index.js","./node_modules/@smithy/protocol-http/dist-es/isValidHostname.js","./node_modules/@smithy/protocol-http/dist-es/types.js","./node_modules/@smithy/types/dist-es/abort.js","./node_modules/@smithy/types/dist-es/auth.js","./node_modules/@smithy/types/dist-es/checksum.js","./node_modules/@smithy/types/dist-es/client.js","./node_modules/@smithy/types/dist-es/command.js","./node_modules/@smithy/types/dist-es/connection/config.js","./node_modules/@smithy/types/dist-es/connection/index.js","./node_modules/@smithy/types/dist-es/connection/manager.js","./node_modules/@smithy/types/dist-es/connection/pool.js","./node_modules/@smithy/types/dist-es/crypto.js","./node_modules/@smithy/types/dist-es/encode.js","./node_modules/@smithy/types/dist-es/endpoint.js","./node_modules/@smithy/types/dist-es/endpoints/EndpointRuleObject.js","./node_modules/@smithy/types/dist-es/endpoints/ErrorRuleObject.js","./node_modules/@smithy/types/dist-es/endpoints/RuleSetObject.js","./node_modules/@smithy/types/dist-es/endpoints/TreeRuleObject.js","./node_modules/@smithy/types/dist-es/endpoints/index.js","./node_modules/@smithy/types/dist-es/endpoints/shared.js","./node_modules/@smithy/types/dist-es/eventStream.js","./node_modules/@smithy/types/dist-es/http.js","./node_modules/@smithy/types/dist-es/identity/awsCredentialIdentity.js","./node_modules/@smithy/types/dist-es/identity/identity.js","./node_modules/@smithy/types/dist-es/identity/index.js","./node_modules/@smithy/types/dist-es/index.js","./node_modules/@smithy/types/dist-es/logger.js","./node_modules/@smithy/types/dist-es/middleware.js","./node_modules/@smithy/types/dist-es/pagination.js","./node_modules/@smithy/types/dist-es/profile.js","./node_modules/@smithy/types/dist-es/response.js","./node_modules/@smithy/types/dist-es/retry.js","./node_modules/@smithy/types/dist-es/serde.js","./node_modules/@smithy/types/dist-es/shapes.js","./node_modules/@smithy/types/dist-es/signature.js","./node_modules/@smithy/types/dist-es/stream.js","./node_modules/@smithy/types/dist-es/transfer.js","./node_modules/@smithy/types/dist-es/uri.js","./node_modules/@smithy/types/dist-es/util.js","./node_modules/@smithy/types/dist-es/waiter.js","./node_modules/@wry/equality/lib/equality.esm.js","./node_modules/ag-grid-angular/__ivy_ngcc__/fesm2015/ag-grid-angular.js","./node_modules/ag-grid-community/dist/ag-grid-community.cjs.js","./node_modules/ag-grid-enterprise/dist/ag-grid-enterprise.cjs.js","./node_modules/angular-mentions/__ivy_ngcc__/fesm2015/angular-mentions.js","./node_modules/apollo-cache-inmemory/lib/depTrackingCache.js","./node_modules/apollo-cache-inmemory/lib/fixPolyfills.js","./node_modules/apollo-cache-inmemory/lib/fragmentMatcher.js","./node_modules/apollo-cache-inmemory/lib/inMemoryCache.js","./node_modules/apollo-cache-inmemory/lib/index.js","./node_modules/apollo-cache-inmemory/lib/objectCache.js","./node_modules/apollo-cache-inmemory/lib/optimism.js","./node_modules/apollo-cache-inmemory/lib/queryKeyMaker.js","./node_modules/apollo-cache-inmemory/lib/readFromStore.js","./node_modules/apollo-cache-inmemory/lib/recordingCache.js","./node_modules/apollo-cache-inmemory/lib/writeToStore.js","./node_modules/apollo-cache/lib/bundle.esm.js","./node_modules/apollo-client/ApolloClient.js","./node_modules/apollo-client/core/ObservableQuery.js","./node_modules/apollo-client/core/QueryManager.js","./node_modules/apollo-client/core/networkStatus.js","./node_modules/apollo-client/core/types.js","./node_modules/apollo-client/data/mutations.js","./node_modules/apollo-client/data/queries.js","./node_modules/apollo-client/data/store.js","./node_modules/apollo-client/errors/ApolloError.js","./node_modules/apollo-client/index.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/directives.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/getFromAST.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/storeUtils.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/transform.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/util/assign.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/util/cloneDeep.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/util/environment.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/util/errorHandling.js","./node_modules/apollo-client/node_modules/apollo-utilities/lib/util/isEqual.js","./node_modules/apollo-client/node_modules/symbol-observable/es/index.js","./node_modules/apollo-client/node_modules/symbol-observable/es/ponyfill.js","./node_modules/apollo-client/scheduler/scheduler.js","./node_modules/apollo-client/util/Observable.js","./node_modules/apollo-client/version.js","./node_modules/apollo-link-context/lib/index.js","./node_modules/apollo-link-dedup/lib/bundle.esm.js","./node_modules/apollo-link-dedup/node_modules/apollo-link/lib/bundle.esm.js","./node_modules/apollo-link-dedup/node_modules/zen-observable-ts/lib/bundle.esm.js","./node_modules/apollo-link-http-common/lib/bundle.esm.js","./node_modules/apollo-link-http/lib/httpLink.js","./node_modules/apollo-link-http/lib/index.js","./node_modules/apollo-link-retry/lib/delayFunction.js","./node_modules/apollo-link-retry/lib/index.js","./node_modules/apollo-link-retry/lib/retryFunction.js","./node_modules/apollo-link-retry/lib/retryLink.js","./node_modules/apollo-link/lib/index.js","./node_modules/apollo-link/lib/link.js","./node_modules/apollo-link/lib/linkUtils.js","./node_modules/apollo-utilities/lib/bundle.esm.js","./node_modules/aws-appsync-auth-link/lib/auth-link.js","./node_modules/aws-appsync-auth-link/lib/index.js","./node_modules/aws-appsync-auth-link/lib/platform.js","./node_modules/aws-appsync-auth-link/lib/signer/index.js","./node_modules/aws-appsync-auth-link/lib/signer/signer.js","./node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","./node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/build/constants.js","./node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/build/index.js","./node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","./node_modules/aws-appsync-auth-link/node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js","./node_modules/aws-appsync-subscription-link/lib/index.js","./node_modules/aws-appsync-subscription-link/lib/non-terminating-link.js","./node_modules/aws-appsync-subscription-link/lib/realtime-subscription-handshake-link.js","./node_modules/aws-appsync-subscription-link/lib/subscription-handshake-link.js","./node_modules/aws-appsync-subscription-link/lib/types/index.js","./node_modules/aws-appsync-subscription-link/lib/utils/index.js","./node_modules/aws-appsync-subscription-link/lib/utils/logger.js","./node_modules/aws-appsync-subscription-link/lib/utils/retry.js","./node_modules/aws-appsync-subscription-link/lib/vendor/paho-mqtt.js","./node_modules/aws-appsync/lib/cache/index.js","./node_modules/aws-appsync/lib/cache/offline-cache.js","./node_modules/aws-appsync/lib/client.js","./node_modules/aws-appsync/lib/deltaSync.js","./node_modules/aws-appsync/lib/helpers/offline.js","./node_modules/aws-appsync/lib/index.js","./node_modules/aws-appsync/lib/link/complex-object-link-uploader.js","./node_modules/aws-appsync/lib/link/complex-object-link.js","./node_modules/aws-appsync/lib/link/conflict-resolution-link.js","./node_modules/aws-appsync/lib/link/index.js","./node_modules/aws-appsync/lib/link/offline-link.js","./node_modules/aws-appsync/lib/link/retry-link.js","./node_modules/aws-appsync/lib/store.js","./node_modules/aws-appsync/lib/utils/index.js","./node_modules/aws-appsync/lib/utils/logger.js","./node_modules/aws-appsync/node_modules/redux/es/applyMiddleware.js","./node_modules/aws-appsync/node_modules/redux/es/bindActionCreators.js","./node_modules/aws-appsync/node_modules/redux/es/combineReducers.js","./node_modules/aws-appsync/node_modules/redux/es/compose.js","./node_modules/aws-appsync/node_modules/redux/es/createStore.js","./node_modules/aws-appsync/node_modules/redux/es/index.js","./node_modules/aws-appsync/node_modules/redux/es/utils/warning.js","symbol-observable","./ponyfill.js","./node_modules/aws-sdk/clients/acm.js","./node_modules/aws-sdk/clients/amp.js","./node_modules/aws-sdk/clients/apigateway.js","./node_modules/aws-sdk/clients/applicationautoscaling.js","./node_modules/aws-sdk/clients/athena.js","./node_modules/aws-sdk/clients/autoscaling.js","./node_modules/aws-sdk/clients/browser_default.js","./node_modules/aws-sdk/clients/cloudformation.js","./node_modules/aws-sdk/clients/cloudfront.js","./node_modules/aws-sdk/clients/cloudhsm.js","./node_modules/aws-sdk/clients/cloudhsmv2.js","./node_modules/aws-sdk/clients/cloudtrail.js","./node_modules/aws-sdk/clients/cloudwatch.js","./node_modules/aws-sdk/clients/cloudwatchevents.js","./node_modules/aws-sdk/clients/cloudwatchlogs.js","./node_modules/aws-sdk/clients/codebuild.js","./node_modules/aws-sdk/clients/codecommit.js","./node_modules/aws-sdk/clients/codedeploy.js","./node_modules/aws-sdk/clients/codepipeline.js","./node_modules/aws-sdk/clients/cognitoidentity.js","./node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","./node_modules/aws-sdk/clients/cognitosync.js","./node_modules/aws-sdk/clients/comprehend.js","./node_modules/aws-sdk/clients/comprehendmedical.js","./node_modules/aws-sdk/clients/configservice.js","./node_modules/aws-sdk/clients/connect.js","./node_modules/aws-sdk/clients/costexplorer.js","./node_modules/aws-sdk/clients/cur.js","./node_modules/aws-sdk/clients/devicefarm.js","./node_modules/aws-sdk/clients/directconnect.js","./node_modules/aws-sdk/clients/dynamodb.js","./node_modules/aws-sdk/clients/dynamodbstreams.js","./node_modules/aws-sdk/clients/ec2.js","./node_modules/aws-sdk/clients/ecr.js","./node_modules/aws-sdk/clients/ecs.js","./node_modules/aws-sdk/clients/efs.js","./node_modules/aws-sdk/clients/elasticache.js","./node_modules/aws-sdk/clients/elasticbeanstalk.js","./node_modules/aws-sdk/clients/elastictranscoder.js","./node_modules/aws-sdk/clients/elb.js","./node_modules/aws-sdk/clients/elbv2.js","./node_modules/aws-sdk/clients/emr.js","./node_modules/aws-sdk/clients/firehose.js","./node_modules/aws-sdk/clients/forecastqueryservice.js","./node_modules/aws-sdk/clients/forecastservice.js","./node_modules/aws-sdk/clients/gamelift.js","./node_modules/aws-sdk/clients/iam.js","./node_modules/aws-sdk/clients/inspector.js","./node_modules/aws-sdk/clients/iot.js","./node_modules/aws-sdk/clients/iotanalytics.js","./node_modules/aws-sdk/clients/iotdata.js","./node_modules/aws-sdk/clients/kinesis.js","./node_modules/aws-sdk/clients/kinesisvideo.js","./node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","./node_modules/aws-sdk/clients/kinesisvideomedia.js","./node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","./node_modules/aws-sdk/clients/kms.js","./node_modules/aws-sdk/clients/lambda.js","./node_modules/aws-sdk/clients/lexmodelbuildingservice.js","./node_modules/aws-sdk/clients/lexruntime.js","./node_modules/aws-sdk/clients/lexruntimev2.js","./node_modules/aws-sdk/clients/location.js","./node_modules/aws-sdk/clients/machinelearning.js","./node_modules/aws-sdk/clients/marketplacecatalog.js","./node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","./node_modules/aws-sdk/clients/mediastoredata.js","./node_modules/aws-sdk/clients/mobileanalytics.js","./node_modules/aws-sdk/clients/mturk.js","./node_modules/aws-sdk/clients/opsworks.js","./node_modules/aws-sdk/clients/personalize.js","./node_modules/aws-sdk/clients/personalizeevents.js","./node_modules/aws-sdk/clients/personalizeruntime.js","./node_modules/aws-sdk/clients/polly.js","./node_modules/aws-sdk/clients/pricing.js","./node_modules/aws-sdk/clients/rds.js","./node_modules/aws-sdk/clients/redshift.js","./node_modules/aws-sdk/clients/rekognition.js","./node_modules/aws-sdk/clients/resourcegroups.js","./node_modules/aws-sdk/clients/route53.js","./node_modules/aws-sdk/clients/route53domains.js","./node_modules/aws-sdk/clients/s3.js","./node_modules/aws-sdk/clients/secretsmanager.js","./node_modules/aws-sdk/clients/servicecatalog.js","./node_modules/aws-sdk/clients/ses.js","./node_modules/aws-sdk/clients/sns.js","./node_modules/aws-sdk/clients/sqs.js","./node_modules/aws-sdk/clients/ssm.js","./node_modules/aws-sdk/clients/storagegateway.js","./node_modules/aws-sdk/clients/sts.js","./node_modules/aws-sdk/clients/translate.js","./node_modules/aws-sdk/clients/waf.js","./node_modules/aws-sdk/clients/workdocs.js","./node_modules/aws-sdk/clients/xray.js","./node_modules/aws-sdk/lib/api_loader.js","./node_modules/aws-sdk/lib/browser.js","./node_modules/aws-sdk/lib/browserCryptoLib.js","./node_modules/aws-sdk/lib/browserHashUtils.js","./node_modules/aws-sdk/lib/browserHmac.js","./node_modules/aws-sdk/lib/browserMd5.js","./node_modules/aws-sdk/lib/browserSha1.js","./node_modules/aws-sdk/lib/browserSha256.js","./node_modules/aws-sdk/lib/browser_loader.js","./node_modules/aws-sdk/lib/cloudfront/signer.js","./node_modules/aws-sdk/lib/config.js","./node_modules/aws-sdk/lib/config_regional_endpoint.js","./node_modules/aws-sdk/lib/core.js","./node_modules/aws-sdk/lib/credentials.js","./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","./node_modules/aws-sdk/lib/credentials/saml_credentials.js","./node_modules/aws-sdk/lib/credentials/temporary_credentials.js","./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","./node_modules/aws-sdk/lib/discover_endpoint.js","./node_modules/aws-sdk/lib/dynamodb/converter.js","./node_modules/aws-sdk/lib/dynamodb/document_client.js","./node_modules/aws-sdk/lib/dynamodb/numberValue.js","./node_modules/aws-sdk/lib/dynamodb/set.js","./node_modules/aws-sdk/lib/dynamodb/translator.js","./node_modules/aws-sdk/lib/dynamodb/types.js","./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","./node_modules/aws-sdk/lib/event-stream/int64.js","./node_modules/aws-sdk/lib/event-stream/parse-event.js","./node_modules/aws-sdk/lib/event-stream/parse-message.js","./node_modules/aws-sdk/lib/event-stream/split-message.js","./node_modules/aws-sdk/lib/event_listeners.js","./node_modules/aws-sdk/lib/http.js","./node_modules/aws-sdk/lib/http/xhr.js","./node_modules/aws-sdk/lib/json/builder.js","./node_modules/aws-sdk/lib/json/parser.js","./node_modules/aws-sdk/lib/maintenance_mode_message.js","./node_modules/aws-sdk/lib/model/api.js","./node_modules/aws-sdk/lib/model/collection.js","./node_modules/aws-sdk/lib/model/operation.js","./node_modules/aws-sdk/lib/model/paginator.js","./node_modules/aws-sdk/lib/model/resource_waiter.js","./node_modules/aws-sdk/lib/model/shape.js","./node_modules/aws-sdk/lib/param_validator.js","./node_modules/aws-sdk/lib/polly/presigner.js","./node_modules/aws-sdk/lib/protocol/helpers.js","./node_modules/aws-sdk/lib/protocol/json.js","./node_modules/aws-sdk/lib/protocol/query.js","./node_modules/aws-sdk/lib/protocol/rest.js","./node_modules/aws-sdk/lib/protocol/rest_json.js","./node_modules/aws-sdk/lib/protocol/rest_xml.js","./node_modules/aws-sdk/lib/query/query_param_serializer.js","./node_modules/aws-sdk/lib/rds/signer.js","./node_modules/aws-sdk/lib/realclock/browserClock.js","./node_modules/aws-sdk/lib/region/utils.js","./node_modules/aws-sdk/lib/region_config.js","./node_modules/aws-sdk/lib/request.js","./node_modules/aws-sdk/lib/resource_waiter.js","./node_modules/aws-sdk/lib/response.js","./node_modules/aws-sdk/lib/s3/managed_upload.js","./node_modules/aws-sdk/lib/sequential_executor.js","./node_modules/aws-sdk/lib/service.js","./node_modules/aws-sdk/lib/services/apigateway.js","./node_modules/aws-sdk/lib/services/cloudfront.js","./node_modules/aws-sdk/lib/services/dynamodb.js","./node_modules/aws-sdk/lib/services/ec2.js","./node_modules/aws-sdk/lib/services/iotdata.js","./node_modules/aws-sdk/lib/services/lambda.js","./node_modules/aws-sdk/lib/services/machinelearning.js","./node_modules/aws-sdk/lib/services/polly.js","./node_modules/aws-sdk/lib/services/rds.js","./node_modules/aws-sdk/lib/services/rdsutil.js","./node_modules/aws-sdk/lib/services/route53.js","./node_modules/aws-sdk/lib/services/s3.js","./node_modules/aws-sdk/lib/services/s3util.js","./node_modules/aws-sdk/lib/services/sqs.js","./node_modules/aws-sdk/lib/services/sts.js","./node_modules/aws-sdk/lib/signers/bearer.js","./node_modules/aws-sdk/lib/signers/presign.js","./node_modules/aws-sdk/lib/signers/request_signer.js","./node_modules/aws-sdk/lib/signers/s3.js","./node_modules/aws-sdk/lib/signers/v2.js","./node_modules/aws-sdk/lib/signers/v3.js","./node_modules/aws-sdk/lib/signers/v3https.js","./node_modules/aws-sdk/lib/signers/v4.js","./node_modules/aws-sdk/lib/signers/v4_credentials.js","./node_modules/aws-sdk/lib/state_machine.js","./node_modules/aws-sdk/lib/util.js","./node_modules/aws-sdk/lib/xml/browser_parser.js","./node_modules/aws-sdk/lib/xml/builder.js","./node_modules/aws-sdk/lib/xml/escape-attribute.js","./node_modules/aws-sdk/lib/xml/escape-element.js","./node_modules/aws-sdk/lib/xml/xml-node.js","./node_modules/aws-sdk/lib/xml/xml-text.js","./node_modules/aws-sdk/node_modules/buffer/index.js","./node_modules/aws-sdk/node_modules/events/events.js","./node_modules/aws-sdk/node_modules/ieee754/index.js","punycode","./node_modules/aws-sdk/node_modules/url/url.js","./node_modules/aws-sdk/node_modules/uuid/dist/bytesToUuid.js","./node_modules/aws-sdk/node_modules/uuid/dist/index.js","./node_modules/aws-sdk/node_modules/uuid/dist/md5-browser.js","./node_modules/aws-sdk/node_modules/uuid/dist/rng-browser.js","./node_modules/aws-sdk/node_modules/uuid/dist/sha1-browser.js","./node_modules/aws-sdk/node_modules/uuid/dist/v1.js","./node_modules/aws-sdk/node_modules/uuid/dist/v3.js","./node_modules/aws-sdk/node_modules/uuid/dist/v35.js","./node_modules/aws-sdk/node_modules/uuid/dist/v4.js","./node_modules/aws-sdk/node_modules/uuid/dist/v5.js","./node_modules/aws-sdk/vendor/endpoint-cache/index.js","./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","./node_modules/base64-js/index.js","./node_modules/bowser/es5.js","./node_modules/buffer/index.js","./node_modules/call-bind/callBound.js","./node_modules/call-bind/index.js","./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","./node_modules/date-fns/add_days/index.js","./node_modules/date-fns/add_hours/index.js","./node_modules/date-fns/add_iso_years/index.js","./node_modules/date-fns/add_milliseconds/index.js","./node_modules/date-fns/add_minutes/index.js","./node_modules/date-fns/add_months/index.js","./node_modules/date-fns/add_quarters/index.js","./node_modules/date-fns/add_seconds/index.js","./node_modules/date-fns/add_weeks/index.js","./node_modules/date-fns/add_years/index.js","./node_modules/date-fns/are_ranges_overlapping/index.js","./node_modules/date-fns/closest_index_to/index.js","./node_modules/date-fns/closest_to/index.js","./node_modules/date-fns/compare_asc/index.js","./node_modules/date-fns/compare_desc/index.js","./node_modules/date-fns/difference_in_calendar_days/index.js","./node_modules/date-fns/difference_in_calendar_iso_weeks/index.js","./node_modules/date-fns/difference_in_calendar_iso_years/index.js","./node_modules/date-fns/difference_in_calendar_months/index.js","./node_modules/date-fns/difference_in_calendar_quarters/index.js","./node_modules/date-fns/difference_in_calendar_weeks/index.js","./node_modules/date-fns/difference_in_calendar_years/index.js","./node_modules/date-fns/difference_in_days/index.js","./node_modules/date-fns/difference_in_hours/index.js","./node_modules/date-fns/difference_in_iso_years/index.js","./node_modules/date-fns/difference_in_milliseconds/index.js","./node_modules/date-fns/difference_in_minutes/index.js","./node_modules/date-fns/difference_in_months/index.js","./node_modules/date-fns/difference_in_quarters/index.js","./node_modules/date-fns/difference_in_seconds/index.js","./node_modules/date-fns/difference_in_weeks/index.js","./node_modules/date-fns/difference_in_years/index.js","./node_modules/date-fns/distance_in_words/index.js","./node_modules/date-fns/distance_in_words_strict/index.js","./node_modules/date-fns/distance_in_words_to_now/index.js","./node_modules/date-fns/each_day/index.js","./node_modules/date-fns/end_of_day/index.js","./node_modules/date-fns/end_of_hour/index.js","./node_modules/date-fns/end_of_iso_week/index.js","./node_modules/date-fns/end_of_iso_year/index.js","./node_modules/date-fns/end_of_minute/index.js","./node_modules/date-fns/end_of_month/index.js","./node_modules/date-fns/end_of_quarter/index.js","./node_modules/date-fns/end_of_second/index.js","./node_modules/date-fns/end_of_today/index.js","./node_modules/date-fns/end_of_tomorrow/index.js","./node_modules/date-fns/end_of_week/index.js","./node_modules/date-fns/end_of_year/index.js","./node_modules/date-fns/end_of_yesterday/index.js","./node_modules/date-fns/format/index.js","./node_modules/date-fns/get_date/index.js","./node_modules/date-fns/get_day/index.js","./node_modules/date-fns/get_day_of_year/index.js","./node_modules/date-fns/get_days_in_month/index.js","./node_modules/date-fns/get_days_in_year/index.js","./node_modules/date-fns/get_hours/index.js","./node_modules/date-fns/get_iso_day/index.js","./node_modules/date-fns/get_iso_week/index.js","./node_modules/date-fns/get_iso_weeks_in_year/index.js","./node_modules/date-fns/get_iso_year/index.js","./node_modules/date-fns/get_milliseconds/index.js","./node_modules/date-fns/get_minutes/index.js","./node_modules/date-fns/get_month/index.js","./node_modules/date-fns/get_overlapping_days_in_ranges/index.js","./node_modules/date-fns/get_quarter/index.js","./node_modules/date-fns/get_seconds/index.js","./node_modules/date-fns/get_time/index.js","./node_modules/date-fns/get_year/index.js","./node_modules/date-fns/index.js","./node_modules/date-fns/is_after/index.js","./node_modules/date-fns/is_before/index.js","./node_modules/date-fns/is_date/index.js","./node_modules/date-fns/is_equal/index.js","./node_modules/date-fns/is_first_day_of_month/index.js","./node_modules/date-fns/is_friday/index.js","./node_modules/date-fns/is_future/index.js","./node_modules/date-fns/is_last_day_of_month/index.js","./node_modules/date-fns/is_leap_year/index.js","./node_modules/date-fns/is_monday/index.js","./node_modules/date-fns/is_past/index.js","./node_modules/date-fns/is_same_day/index.js","./node_modules/date-fns/is_same_hour/index.js","./node_modules/date-fns/is_same_iso_week/index.js","./node_modules/date-fns/is_same_iso_year/index.js","./node_modules/date-fns/is_same_minute/index.js","./node_modules/date-fns/is_same_month/index.js","./node_modules/date-fns/is_same_quarter/index.js","./node_modules/date-fns/is_same_second/index.js","./node_modules/date-fns/is_same_week/index.js","./node_modules/date-fns/is_same_year/index.js","./node_modules/date-fns/is_saturday/index.js","./node_modules/date-fns/is_sunday/index.js","./node_modules/date-fns/is_this_hour/index.js","./node_modules/date-fns/is_this_iso_week/index.js","./node_modules/date-fns/is_this_iso_year/index.js","./node_modules/date-fns/is_this_minute/index.js","./node_modules/date-fns/is_this_month/index.js","./node_modules/date-fns/is_this_quarter/index.js","./node_modules/date-fns/is_this_second/index.js","./node_modules/date-fns/is_this_week/index.js","./node_modules/date-fns/is_this_year/index.js","./node_modules/date-fns/is_thursday/index.js","./node_modules/date-fns/is_today/index.js","./node_modules/date-fns/is_tomorrow/index.js","./node_modules/date-fns/is_tuesday/index.js","./node_modules/date-fns/is_valid/index.js","./node_modules/date-fns/is_wednesday/index.js","./node_modules/date-fns/is_weekend/index.js","./node_modules/date-fns/is_within_range/index.js","./node_modules/date-fns/is_yesterday/index.js","./node_modules/date-fns/last_day_of_iso_week/index.js","./node_modules/date-fns/last_day_of_iso_year/index.js","./node_modules/date-fns/last_day_of_month/index.js","./node_modules/date-fns/last_day_of_quarter/index.js","./node_modules/date-fns/last_day_of_week/index.js","./node_modules/date-fns/last_day_of_year/index.js","./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js","./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js","./node_modules/date-fns/locale/en/build_format_locale/index.js","./node_modules/date-fns/locale/en/index.js","./node_modules/date-fns/max/index.js","./node_modules/date-fns/min/index.js","./node_modules/date-fns/parse/index.js","./node_modules/date-fns/set_date/index.js","./node_modules/date-fns/set_day/index.js","./node_modules/date-fns/set_day_of_year/index.js","./node_modules/date-fns/set_hours/index.js","./node_modules/date-fns/set_iso_day/index.js","./node_modules/date-fns/set_iso_week/index.js","./node_modules/date-fns/set_iso_year/index.js","./node_modules/date-fns/set_milliseconds/index.js","./node_modules/date-fns/set_minutes/index.js","./node_modules/date-fns/set_month/index.js","./node_modules/date-fns/set_quarter/index.js","./node_modules/date-fns/set_seconds/index.js","./node_modules/date-fns/set_year/index.js","./node_modules/date-fns/start_of_day/index.js","./node_modules/date-fns/start_of_hour/index.js","./node_modules/date-fns/start_of_iso_week/index.js","./node_modules/date-fns/start_of_iso_year/index.js","./node_modules/date-fns/start_of_minute/index.js","./node_modules/date-fns/start_of_month/index.js","./node_modules/date-fns/start_of_quarter/index.js","./node_modules/date-fns/start_of_second/index.js","./node_modules/date-fns/start_of_today/index.js","./node_modules/date-fns/start_of_tomorrow/index.js","./node_modules/date-fns/start_of_week/index.js","./node_modules/date-fns/start_of_year/index.js","./node_modules/date-fns/start_of_yesterday/index.js","./node_modules/date-fns/sub_days/index.js","./node_modules/date-fns/sub_hours/index.js","./node_modules/date-fns/sub_iso_years/index.js","./node_modules/date-fns/sub_milliseconds/index.js","./node_modules/date-fns/sub_minutes/index.js","./node_modules/date-fns/sub_months/index.js","./node_modules/date-fns/sub_quarters/index.js","./node_modules/date-fns/sub_seconds/index.js","./node_modules/date-fns/sub_weeks/index.js","./node_modules/date-fns/sub_years/index.js","./node_modules/debug/node_modules/ms/index.js","./node_modules/debug/src/browser.js","./node_modules/debug/src/debug.js","./node_modules/dom-to-image-more/dist/dom-to-image-more.min.js","./node_modules/events/events.js","./node_modules/fast-json-stable-stringify/index.js","./node_modules/fast-xml-parser/src/fxp.js","./node_modules/fast-xml-parser/src/util.js","./node_modules/fast-xml-parser/src/validator.js","./node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","./node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","./node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","./node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","./node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","./node_modules/fast-xml-parser/src/xmlparser/node2json.js","./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","./node_modules/fflate/esm/browser.js","./node_modules/for-each/index.js","./node_modules/function-bind/implementation.js","./node_modules/function-bind/index.js","./node_modules/get-intrinsic/index.js","./node_modules/graphql-tag/lib/index.js","./node_modules/has-symbols/index.js","./node_modules/has-symbols/shams.js","./node_modules/has-tostringtag/shams.js","./node_modules/has/src/index.js","./node_modules/highcharts-angular/__ivy_ngcc__/fesm2015/highcharts-angular.js","./node_modules/highcharts/highcharts-more.js","./node_modules/highcharts/highcharts.js","./node_modules/highcharts/modules/boost.js","./node_modules/highcharts/modules/exporting.js","./node_modules/highcharts/modules/pattern-fill.js","./node_modules/html2canvas/dist/html2canvas.js","./node_modules/idb/build/esm/index.js","./node_modules/idb/build/esm/wrap-idb-value.js","./node_modules/ieee754/index.js","./node_modules/inherits/inherits_browser.js","./node_modules/is-arguments/index.js","./node_modules/is-callable/index.js","./node_modules/is-generator-function/index.js","./node_modules/is-typed-array/index.js","./node_modules/isarray/index.js","./node_modules/jmespath/jmespath.js","./node_modules/json-stringify-safe/stringify.js","./node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js","./node_modules/jspdf/dist/jspdf.es.min.js","./node_modules/jszip/dist/jszip.min.js","./node_modules/leaflet-distortableimage/dist/leaflet.distortableimage.js","./node_modules/leaflet-draw/dist/leaflet.draw.js","./node_modules/leaflet-kmz/src/KMZImageOverlay.js","./node_modules/leaflet-kmz/src/KMZLayer.js","./node_modules/leaflet-kmz/src/KMZMarker.js","./node_modules/leaflet-kmz/src/index.js","./node_modules/leaflet-kmz/src/utils.js","./node_modules/leaflet-path-drag/index.js","./node_modules/leaflet-path-drag/src/Canvas.js","./node_modules/leaflet-path-drag/src/Path.Drag.js","./node_modules/leaflet-path-drag/src/Path.Transform.js","./node_modules/leaflet-path-drag/src/SVG.VML.js","./node_modules/leaflet-path-drag/src/SVG.js","./node_modules/leaflet-toolbar/dist/leaflet.toolbar.js","./node_modules/leaflet.gridlayer.googlemutant/dist/Leaflet.GoogleMutant.js","./node_modules/leaflet.offline/dist/bundle.js","./node_modules/leaflet/dist/leaflet-src.js","./node_modules/localforage/dist/localforage.js","./node_modules/lodash/lodash.js","./node_modules/luxon/build/cjs-browser/luxon.js","./node_modules/moment/locale/af.js","./node_modules/moment/locale/ar-dz.js","./node_modules/moment/locale/ar-kw.js","./node_modules/moment/locale/ar-ly.js","./node_modules/moment/locale/ar-ma.js","./node_modules/moment/locale/ar-sa.js","./node_modules/moment/locale/ar-tn.js","./node_modules/moment/locale/ar.js","./node_modules/moment/locale/az.js","./node_modules/moment/locale/be.js","./node_modules/moment/locale/bg.js","./node_modules/moment/locale/bm.js","./node_modules/moment/locale/bn-bd.js","./node_modules/moment/locale/bn.js","./node_modules/moment/locale/bo.js","./node_modules/moment/locale/br.js","./node_modules/moment/locale/bs.js","./node_modules/moment/locale/ca.js","./node_modules/moment/locale/cs.js","./node_modules/moment/locale/cv.js","./node_modules/moment/locale/cy.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/de-at.js","./node_modules/moment/locale/de-ch.js","./node_modules/moment/locale/de.js","./node_modules/moment/locale/dv.js","./node_modules/moment/locale/el.js","./node_modules/moment/locale/en-au.js","./node_modules/moment/locale/en-ca.js","./node_modules/moment/locale/en-gb.js","./node_modules/moment/locale/en-ie.js","./node_modules/moment/locale/en-il.js","./node_modules/moment/locale/en-in.js","./node_modules/moment/locale/en-nz.js","./node_modules/moment/locale/en-sg.js","./node_modules/moment/locale/eo.js","./node_modules/moment/locale/es-do.js","./node_modules/moment/locale/es-mx.js","./node_modules/moment/locale/es-us.js","./node_modules/moment/locale/es.js","./node_modules/moment/locale/et.js","./node_modules/moment/locale/eu.js","./node_modules/moment/locale/fa.js","./node_modules/moment/locale/fi.js","./node_modules/moment/locale/fil.js","./node_modules/moment/locale/fo.js","./node_modules/moment/locale/fr-ca.js","./node_modules/moment/locale/fr-ch.js","./node_modules/moment/locale/fr.js","./node_modules/moment/locale/fy.js","./node_modules/moment/locale/ga.js","./node_modules/moment/locale/gd.js","./node_modules/moment/locale/gl.js","./node_modules/moment/locale/gom-deva.js","./node_modules/moment/locale/gom-latn.js","./node_modules/moment/locale/gu.js","./node_modules/moment/locale/he.js","./node_modules/moment/locale/hi.js","./node_modules/moment/locale/hr.js","./node_modules/moment/locale/hu.js","./node_modules/moment/locale/hy-am.js","./node_modules/moment/locale/id.js","./node_modules/moment/locale/is.js","./node_modules/moment/locale/it-ch.js","./node_modules/moment/locale/it.js","./node_modules/moment/locale/ja.js","./node_modules/moment/locale/jv.js","./node_modules/moment/locale/ka.js","./node_modules/moment/locale/kk.js","./node_modules/moment/locale/km.js","./node_modules/moment/locale/kn.js","./node_modules/moment/locale/ko.js","./node_modules/moment/locale/ku.js","./node_modules/moment/locale/ky.js","./node_modules/moment/locale/lb.js","./node_modules/moment/locale/lo.js","./node_modules/moment/locale/lt.js","./node_modules/moment/locale/lv.js","./node_modules/moment/locale/me.js","./node_modules/moment/locale/mi.js","./node_modules/moment/locale/mk.js","./node_modules/moment/locale/ml.js","./node_modules/moment/locale/mn.js","./node_modules/moment/locale/mr.js","./node_modules/moment/locale/ms-my.js","./node_modules/moment/locale/ms.js","./node_modules/moment/locale/mt.js","./node_modules/moment/locale/my.js","./node_modules/moment/locale/nb.js","./node_modules/moment/locale/ne.js","./node_modules/moment/locale/nl-be.js","./node_modules/moment/locale/nl.js","./node_modules/moment/locale/nn.js","./node_modules/moment/locale/oc-lnc.js","./node_modules/moment/locale/pa-in.js","./node_modules/moment/locale/pl.js","./node_modules/moment/locale/pt-br.js","./node_modules/moment/locale/pt.js","./node_modules/moment/locale/ro.js","./node_modules/moment/locale/ru.js","./node_modules/moment/locale/sd.js","./node_modules/moment/locale/se.js","./node_modules/moment/locale/si.js","./node_modules/moment/locale/sk.js","./node_modules/moment/locale/sl.js","./node_modules/moment/locale/sq.js","./node_modules/moment/locale/sr-cyrl.js","./node_modules/moment/locale/sr.js","./node_modules/moment/locale/ss.js","./node_modules/moment/locale/sv.js","./node_modules/moment/locale/sw.js","./node_modules/moment/locale/ta.js","./node_modules/moment/locale/te.js","./node_modules/moment/locale/tet.js","./node_modules/moment/locale/tg.js","./node_modules/moment/locale/th.js","./node_modules/moment/locale/tk.js","./node_modules/moment/locale/tl-ph.js","./node_modules/moment/locale/tlh.js","./node_modules/moment/locale/tr.js","./node_modules/moment/locale/tzl.js","./node_modules/moment/locale/tzm-latn.js","./node_modules/moment/locale/tzm.js","./node_modules/moment/locale/ug-cn.js","./node_modules/moment/locale/uk.js","./node_modules/moment/locale/ur.js","./node_modules/moment/locale/uz-latn.js","./node_modules/moment/locale/uz.js","./node_modules/moment/locale/vi.js","./node_modules/moment/locale/x-pseudo.js","./node_modules/moment/locale/yo.js","./node_modules/moment/locale/zh-cn.js","./node_modules/moment/locale/zh-hk.js","./node_modules/moment/locale/zh-mo.js","./node_modules/moment/locale/zh-tw.js","./node_modules/moment/moment.js","./node_modules/ngx-material-timepicker/__ivy_ngcc__/fesm2015/ngx-material-timepicker.js","./node_modules/oidc-client/lib/oidc-client.min.js","./node_modules/optimism/lib/cache.js","./node_modules/optimism/lib/entry.js","./node_modules/optimism/lib/index.js","./node_modules/optimism/lib/local.js","./node_modules/performance-now/lib/performance-now.js","./node_modules/querystring/decode.js","./node_modules/querystring/encode.js","./node_modules/querystring/index.js","./node_modules/raf/index.js","./node_modules/redux-persist/es/autoRehydrate.js","./node_modules/redux-persist/es/constants.js","./node_modules/redux-persist/es/createPersistor.js","./node_modules/redux-persist/es/createTransform.js","./node_modules/redux-persist/es/defaults/asyncLocalStorage.js","./node_modules/redux-persist/es/getStoredState.js","./node_modules/redux-persist/es/index.js","./node_modules/redux-persist/es/persistStore.js","./node_modules/redux-persist/es/purgeStoredState.js","./node_modules/redux-persist/es/utils/isStatePlainEnough.js","./node_modules/redux-persist/es/utils/setImmediate.js","./node_modules/redux-persist/lib/constants.js","./node_modules/redux-thunk/es/index.js","./node_modules/redux/es/redux.js","./node_modules/regenerator-runtime/runtime.js","./node_modules/rgbcolor/index.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/firstValueFrom.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/iif.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/flatMap.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/pairwise.js","./node_modules/rxjs/dist/esm/internal/operators/reduce.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/skip.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/timeout.js","./node_modules/rxjs/dist/esm/internal/operators/toArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/setimmediate/setImmediate.js","./node_modules/stackblur-canvas/dist/stackblur-es.js","./node_modules/stream-browserify/index.js","./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js","./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","./node_modules/stream-browserify/node_modules/safe-buffer/index.js","./node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js","./node_modules/strnum/strnum.js","./node_modules/ts-invariant/lib/invariant.esm.js","./node_modules/url/node_modules/punycode/punycode.js","./node_modules/url/url.js","./node_modules/url/util.js","./node_modules/util-deprecate/browser.js","./node_modules/util/support/isBufferBrowser.js","./node_modules/util/support/types.js","./node_modules/util/util.js","./node_modules/uuid/index.js","./node_modules/uuid/lib/bytesToUuid.js","./node_modules/uuid/lib/rng-browser.js","./node_modules/uuid/v1.js","./node_modules/uuid/v4.js","./node_modules/which-typed-array/index.js","./node_modules/zen-observable-ts/lib/bundle.esm.js","./node_modules/zen-observable/index.js","./node_modules/zen-observable/lib/Observable.js","webpack:///tslib?1c7d","webpack:///tslib?09f5","webpack:///tslib?b634","webpack:///tslib?136c","webpack:///tslib?f6ae","webpack:///tslib?e196","webpack:///tslib?283c","webpack:///tslib?25aa","webpack:///tslib?aacb","./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/arrayWithHoles.js","./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","./node_modules/@babel/runtime/helpers/asyncToGenerator.js","./node_modules/@babel/runtime/helpers/defineProperty.js","./node_modules/@babel/runtime/helpers/interopRequireDefault.js","./node_modules/@babel/runtime/helpers/iterableToArray.js","./node_modules/@babel/runtime/helpers/nonIterableRest.js","./node_modules/@babel/runtime/helpers/nonIterableSpread.js","./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","./node_modules/@babel/runtime/helpers/toArray.js","./node_modules/@babel/runtime/helpers/toConsumableArray.js","./node_modules/@babel/runtime/helpers/typeof.js","./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","./node_modules/@babel/runtime/regenerator/index.js","webpack:///tslib?f3c5","webpack:///tslib?2821","webpack:///tslib?19c9","webpack:///tslib?8178","webpack:///tslib?5574","./node_modules/ngx-material-timepicker/node_modules/tslib/tslib.es6.js","tslib","./node_modules/available-typed-arrays/index.js","./node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","./node_modules/@angular/animations/fesm2015/animations.mjs","./node_modules/@angular/animations/fesm2015/browser.mjs","./node_modules/@angular/cdk/fesm2015/a11y.mjs","./node_modules/@angular/cdk/fesm2015/accordion.mjs","./node_modules/@angular/cdk/fesm2015/bidi.mjs","./node_modules/@angular/cdk/fesm2015/cdk.mjs","./node_modules/@angular/cdk/fesm2015/coercion.mjs","./node_modules/@angular/cdk/fesm2015/collections.mjs","./node_modules/@angular/cdk/fesm2015/drag-drop.mjs","./node_modules/@angular/cdk/fesm2015/keycodes.mjs","./node_modules/@angular/cdk/fesm2015/layout.mjs","./node_modules/@angular/cdk/fesm2015/observers.mjs","./node_modules/@angular/cdk/fesm2015/overlay.mjs","./node_modules/@angular/cdk/fesm2015/platform.mjs","./node_modules/@angular/cdk/fesm2015/portal.mjs","./node_modules/@angular/cdk/fesm2015/scrolling.mjs","./node_modules/@angular/cdk/fesm2015/table.mjs","./node_modules/@angular/cdk/fesm2015/text-field.mjs","./node_modules/@angular/cdk/fesm2015/tree.mjs","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/common/fesm2015/http.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/@angular/forms/fesm2015/forms.mjs","./node_modules/@angular/material/fesm2015/autocomplete.mjs","./node_modules/@angular/material/fesm2015/badge.mjs","./node_modules/@angular/material/fesm2015/bottom-sheet.mjs","./node_modules/@angular/material/fesm2015/button-toggle.mjs","./node_modules/@angular/material/fesm2015/button.mjs","./node_modules/@angular/material/fesm2015/card.mjs","./node_modules/@angular/material/fesm2015/checkbox.mjs","./node_modules/@angular/material/fesm2015/chips.mjs","./node_modules/@angular/material/fesm2015/core.mjs","./node_modules/@angular/material/fesm2015/datepicker.mjs","./node_modules/@angular/material/fesm2015/dialog.mjs","./node_modules/@angular/material/fesm2015/divider.mjs","./node_modules/@angular/material/fesm2015/expansion.mjs","./node_modules/@angular/material/fesm2015/form-field.mjs","./node_modules/@angular/material/fesm2015/icon.mjs","./node_modules/@angular/material/fesm2015/input.mjs","./node_modules/@angular/material/fesm2015/menu.mjs","./node_modules/@angular/material/fesm2015/progress-bar.mjs","./node_modules/@angular/material/fesm2015/progress-spinner.mjs","./node_modules/@angular/material/fesm2015/radio.mjs","./node_modules/@angular/material/fesm2015/select.mjs","./node_modules/@angular/material/fesm2015/sidenav.mjs","./node_modules/@angular/material/fesm2015/slide-toggle.mjs","./node_modules/@angular/material/fesm2015/slider.mjs","./node_modules/@angular/material/fesm2015/snack-bar.mjs","./node_modules/@angular/material/fesm2015/sort.mjs","./node_modules/@angular/material/fesm2015/table.mjs","./node_modules/@angular/material/fesm2015/tabs.mjs","./node_modules/@angular/material/fesm2015/toolbar.mjs","./node_modules/@angular/material/fesm2015/tooltip.mjs","./node_modules/@angular/material/fesm2015/tree.mjs","./node_modules/@angular/platform-browser/fesm2015/animations.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/@angular/router/fesm2015/router.mjs","./node_modules/@ngneat/until-destroy/fesm2015/ngneat-until-destroy.mjs","./node_modules/canvg/dist/index.js","./node_modules/graphql/error/GraphQLError.mjs","./node_modules/graphql/error/formatError.mjs","./node_modules/graphql/error/locatedError.mjs","./node_modules/graphql/error/syntaxError.mjs","./node_modules/graphql/execution/execute.mjs","./node_modules/graphql/execution/values.mjs","./node_modules/graphql/graphql.mjs","./node_modules/graphql/index.mjs","./node_modules/graphql/jsutils/Path.mjs","./node_modules/graphql/jsutils/defineToJSON.mjs","./node_modules/graphql/jsutils/defineToStringTag.mjs","./node_modules/graphql/jsutils/devAssert.mjs","./node_modules/graphql/jsutils/didYouMean.mjs","./node_modules/graphql/jsutils/identityFunc.mjs","./node_modules/graphql/jsutils/inspect.mjs","./node_modules/graphql/jsutils/instanceOf.mjs","./node_modules/graphql/jsutils/invariant.mjs","./node_modules/graphql/jsutils/isInvalid.mjs","./node_modules/graphql/jsutils/isNullish.mjs","./node_modules/graphql/jsutils/isObjectLike.mjs","./node_modules/graphql/jsutils/isPromise.mjs","./node_modules/graphql/jsutils/keyMap.mjs","./node_modules/graphql/jsutils/keyValMap.mjs","./node_modules/graphql/jsutils/mapValue.mjs","./node_modules/graphql/jsutils/memoize3.mjs","./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","./node_modules/graphql/jsutils/printPathArray.mjs","./node_modules/graphql/jsutils/promiseForObject.mjs","./node_modules/graphql/jsutils/promiseReduce.mjs","./node_modules/graphql/jsutils/suggestionList.mjs","./node_modules/graphql/jsutils/toObjMap.mjs","./node_modules/graphql/language/blockString.mjs","./node_modules/graphql/language/directiveLocation.mjs","./node_modules/graphql/language/kinds.mjs","./node_modules/graphql/language/lexer.mjs","./node_modules/graphql/language/location.mjs","./node_modules/graphql/language/parser.mjs","./node_modules/graphql/language/predicates.mjs","./node_modules/graphql/language/printLocation.mjs","./node_modules/graphql/language/printer.mjs","./node_modules/graphql/language/source.mjs","./node_modules/graphql/language/tokenKind.mjs","./node_modules/graphql/language/visitor.mjs","./node_modules/graphql/polyfills/find.mjs","./node_modules/graphql/polyfills/flatMap.mjs","./node_modules/graphql/polyfills/isFinite.mjs","./node_modules/graphql/polyfills/isInteger.mjs","./node_modules/graphql/polyfills/objectEntries.mjs","./node_modules/graphql/polyfills/objectValues.mjs","./node_modules/graphql/subscription/mapAsyncIterator.mjs","./node_modules/graphql/subscription/subscribe.mjs","./node_modules/graphql/type/definition.mjs","./node_modules/graphql/type/directives.mjs","./node_modules/graphql/type/introspection.mjs","./node_modules/graphql/type/scalars.mjs","./node_modules/graphql/type/schema.mjs","./node_modules/graphql/type/validate.mjs","./node_modules/graphql/utilities/TypeInfo.mjs","./node_modules/graphql/utilities/assertValidName.mjs","./node_modules/graphql/utilities/astFromValue.mjs","./node_modules/graphql/utilities/buildASTSchema.mjs","./node_modules/graphql/utilities/buildClientSchema.mjs","./node_modules/graphql/utilities/coerceInputValue.mjs","./node_modules/graphql/utilities/coerceValue.mjs","./node_modules/graphql/utilities/concatAST.mjs","./node_modules/graphql/utilities/extendSchema.mjs","./node_modules/graphql/utilities/findBreakingChanges.mjs","./node_modules/graphql/utilities/findDeprecatedUsages.mjs","./node_modules/graphql/utilities/getOperationAST.mjs","./node_modules/graphql/utilities/getOperationRootType.mjs","./node_modules/graphql/utilities/introspectionFromSchema.mjs","./node_modules/graphql/utilities/introspectionQuery.mjs","./node_modules/graphql/utilities/isValidJSValue.mjs","./node_modules/graphql/utilities/isValidLiteralValue.mjs","./node_modules/graphql/utilities/lexicographicSortSchema.mjs","./node_modules/graphql/utilities/schemaPrinter.mjs","./node_modules/graphql/utilities/separateOperations.mjs","./node_modules/graphql/utilities/stripIgnoredCharacters.mjs","./node_modules/graphql/utilities/typeComparators.mjs","./node_modules/graphql/utilities/typeFromAST.mjs","./node_modules/graphql/utilities/valueFromAST.mjs","./node_modules/graphql/utilities/valueFromASTUntyped.mjs","./node_modules/graphql/validation/ValidationContext.mjs","./node_modules/graphql/validation/rules/ExecutableDefinitions.mjs","./node_modules/graphql/validation/rules/FieldsOnCorrectType.mjs","./node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.mjs","./node_modules/graphql/validation/rules/KnownArgumentNames.mjs","./node_modules/graphql/validation/rules/KnownDirectives.mjs","./node_modules/graphql/validation/rules/KnownFragmentNames.mjs","./node_modules/graphql/validation/rules/KnownTypeNames.mjs","./node_modules/graphql/validation/rules/LoneAnonymousOperation.mjs","./node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs","./node_modules/graphql/validation/rules/NoFragmentCycles.mjs","./node_modules/graphql/validation/rules/NoUndefinedVariables.mjs","./node_modules/graphql/validation/rules/NoUnusedFragments.mjs","./node_modules/graphql/validation/rules/NoUnusedVariables.mjs","./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.mjs","./node_modules/graphql/validation/rules/PossibleFragmentSpreads.mjs","./node_modules/graphql/validation/rules/PossibleTypeExtensions.mjs","./node_modules/graphql/validation/rules/ProvidedRequiredArguments.mjs","./node_modules/graphql/validation/rules/ScalarLeafs.mjs","./node_modules/graphql/validation/rules/SingleFieldSubscriptions.mjs","./node_modules/graphql/validation/rules/UniqueArgumentNames.mjs","./node_modules/graphql/validation/rules/UniqueDirectiveNames.mjs","./node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.mjs","./node_modules/graphql/validation/rules/UniqueEnumValueNames.mjs","./node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.mjs","./node_modules/graphql/validation/rules/UniqueFragmentNames.mjs","./node_modules/graphql/validation/rules/UniqueInputFieldNames.mjs","./node_modules/graphql/validation/rules/UniqueOperationNames.mjs","./node_modules/graphql/validation/rules/UniqueOperationTypes.mjs","./node_modules/graphql/validation/rules/UniqueTypeNames.mjs","./node_modules/graphql/validation/rules/UniqueVariableNames.mjs","./node_modules/graphql/validation/rules/ValuesOfCorrectType.mjs","./node_modules/graphql/validation/rules/VariablesAreInputTypes.mjs","./node_modules/graphql/validation/rules/VariablesInAllowedPosition.mjs","./node_modules/graphql/validation/specifiedRules.mjs","./node_modules/graphql/validation/validate.mjs","./node_modules/graphql/version.mjs","./node_modules/immutable-tuple/dist/tuple.mjs","./node_modules/iterall/index.mjs","./node_modules/lodash-es/_Symbol.js","./node_modules/lodash-es/_baseGetTag.js","./node_modules/lodash-es/_freeGlobal.js","./node_modules/lodash-es/_getPrototype.js","./node_modules/lodash-es/_getRawTag.js","./node_modules/lodash-es/_objectToString.js","./node_modules/lodash-es/_overArg.js","./node_modules/lodash-es/_root.js","./node_modules/lodash-es/isObjectLike.js","./node_modules/lodash-es/isPlainObject.js","./node_modules/ngx-color-picker/fesm2015/ngx-color-picker.mjs","./node_modules/ngx-device-detector/fesm2015/ngx-device-detector.mjs","./node_modules/ngx-dropzone/fesm2015/ngx-dropzone.mjs","./node_modules/svg-pathdata/lib/SVGPathData.module.js","./node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","./node_modules/@babel/runtime/helpers/esm/AwaitValue.js","./node_modules/@babel/runtime/helpers/esm/asyncIterator.js","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","./node_modules/@babel/runtime/helpers/esm/defineProperty.js","./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["export { LeafletDrawModule } from './leaflet-draw/leaflet-draw.module';\nexport { LeafletDrawDirective } from './leaflet-draw/core/leaflet-draw.directive';\n\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport * as L from 'leaflet';\nimport 'leaflet-draw';\nimport { LeafletDirective, LeafletDirectiveWrapper } from '@asymmetrik/ngx-leaflet';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@asymmetrik/ngx-leaflet';\nvar LeafletDrawDirective = /** @class */ (function () {\n function LeafletDrawDirective(leafletDirective) {\n this.drawOptions = null;\n // Configure callback function for the map\n this.drawReady = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n }\n LeafletDrawDirective.prototype.ngOnInit = function () {\n var _this = this;\n this.leafletDirective.init();\n // Initialize the draw options (in case they weren't provided)\n this.drawOptions = this.initializeDrawOptions(this.drawOptions);\n // Create the control\n this.drawControl = new L.Control.Draw(this.drawOptions);\n // Pull out the feature group for convenience\n this.featureGroup = this.drawOptions.edit.featureGroup;\n // Add the control to the map\n this.leafletDirective.getMap().addControl(this.drawControl);\n // Register the main handler for events coming from the draw plugin\n this.leafletDirective.getMap().on(L.Draw.Event.CREATED, function (e) {\n var layer = e.layer;\n _this.featureGroup.addLayer(layer);\n });\n // Notify others that the draw control has been created\n this.drawReady.emit(this.drawControl);\n };\n LeafletDrawDirective.prototype.ngOnDestroy = function () {\n this.leafletDirective.getMap().removeControl(this.drawControl);\n };\n LeafletDrawDirective.prototype.ngOnChanges = function (changes) {\n // No changes being handled currently\n };\n LeafletDrawDirective.prototype.getDrawControl = function () {\n return this.drawControl;\n };\n LeafletDrawDirective.prototype.initializeDrawOptions = function (options) {\n // Ensure the options have a featureGroup\n if (null == options) {\n options = {\n edit: null\n };\n }\n if (null == options.edit) {\n options.edit = {\n featureGroup: null\n };\n }\n if (null == options.edit.featureGroup) {\n // No feature group was provided, so we're going to add it ourselves\n options.edit.featureGroup = L.featureGroup();\n this.leafletDirective.getMap().addLayer(options.edit.featureGroup);\n }\n return options;\n };\n /** @nocollapse */\n LeafletDrawDirective.ctorParameters = function () { return [\n { type: LeafletDirective, },\n ]; };\n LeafletDrawDirective.propDecorators = {\n \"drawOptions\": [{ type: Input, args: ['leafletDrawOptions',] },],\n \"drawReady\": [{ type: Output, args: ['leafletDrawReady',] },],\n };\nLeafletDrawDirective.ɵfac = function LeafletDrawDirective_Factory(t) { return new (t || LeafletDrawDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LeafletDirective)); };\nLeafletDrawDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LeafletDrawDirective, selectors: [[\"\", \"leafletDraw\", \"\"]], inputs: { drawOptions: [\"leafletDrawOptions\", \"drawOptions\"] }, outputs: { drawReady: \"leafletDrawReady\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletDrawDirective, [{\n type: Directive,\n args: [{\n selector: '[leafletDraw]'\n }]\n }], function () { return [{ type: ɵngcc1.LeafletDirective }]; }, { drawOptions: [{\n type: Input,\n args: ['leafletDrawOptions']\n }], drawReady: [{\n type: Output,\n args: ['leafletDrawReady']\n }] }); })();\n return LeafletDrawDirective;\n}());\nexport { LeafletDrawDirective };\n\n","import { NgModule } from '@angular/core';\nimport { LeafletModule } from '@asymmetrik/ngx-leaflet';\nimport { LeafletDrawDirective } from './core/leaflet-draw.directive';\nimport * as ɵngcc0 from '@angular/core';\nvar LeafletDrawModule = /** @class */ (function () {\n function LeafletDrawModule() {\n }\n LeafletDrawModule.forRoot = function () {\n return { ngModule: LeafletDrawModule, providers: [] };\n };\nLeafletDrawModule.ɵfac = function LeafletDrawModule_Factory(t) { return new (t || LeafletDrawModule)(); };\nLeafletDrawModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: LeafletDrawModule });\nLeafletDrawModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n LeafletModule\n ]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletDrawModule, [{\n type: NgModule,\n args: [{\n imports: [\n LeafletModule\n ],\n exports: [\n LeafletDrawDirective\n ],\n declarations: [\n LeafletDrawDirective\n ]\n }]\n }], function () { return []; }, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(LeafletDrawModule, { declarations: function () { return [LeafletDrawDirective]; }, imports: function () { return [LeafletModule]; }, exports: function () { return [LeafletDrawDirective]; } }); })();\n return LeafletDrawModule;\n}());\nexport { LeafletDrawModule };\n\n","export { LeafletModule } from './leaflet/leaflet.module';\nexport { LeafletDirective } from './leaflet/core/leaflet.directive';\nexport { LeafletDirectiveWrapper } from './leaflet/core/leaflet.directive.wrapper';\nexport { LeafletTileLayerDefinition } from './leaflet/layers/leaflet-tile-layer-definition.model';\n\nexport {LeafletLayerDirective} from './leaflet/layers/leaflet-layer.directive';\nexport {LeafletLayersDirective} from './leaflet/layers/leaflet-layers.directive';\nexport {LeafletLayersControlDirective} from './leaflet/layers/control/leaflet-control-layers.directive';\nexport {LeafletBaseLayersDirective} from './leaflet/layers/base/leaflet-baselayers.directive';\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, NgZone, Output } from '@angular/core';\nimport { latLng, LatLng, LatLngBounds, map } from 'leaflet';\nimport { LeafletUtil } from './leaflet.util';\nimport * as ɵngcc0 from '@angular/core';\nvar LeafletDirective = /** @class */ (function () {\n function LeafletDirective(element, zone) {\n // Nothing here\n this.element = element;\n this.zone = zone;\n this.DEFAULT_ZOOM = 1;\n this.DEFAULT_CENTER = latLng(38.907192, -77.036871);\n this.DEFAULT_FPZ_OPTIONS = {};\n this.fitBoundsOptions = this.DEFAULT_FPZ_OPTIONS;\n this.panOptions = this.DEFAULT_FPZ_OPTIONS;\n this.zoomOptions = this.DEFAULT_FPZ_OPTIONS;\n this.zoomPanOptions = this.DEFAULT_FPZ_OPTIONS;\n // Default configuration\n this.options = {};\n // Configure callback function for the map\n this.mapReady = new EventEmitter();\n this.zoomChange = new EventEmitter();\n this.centerChange = new EventEmitter();\n // Mouse Map Events\n this.onClick = new EventEmitter();\n this.onDoubleClick = new EventEmitter();\n this.onMouseDown = new EventEmitter();\n this.onMouseUp = new EventEmitter();\n this.onMouseMove = new EventEmitter();\n this.onMouseOver = new EventEmitter();\n // Map Move Events\n this.onMapMove = new EventEmitter();\n this.onMapMoveStart = new EventEmitter();\n this.onMapMoveEnd = new EventEmitter();\n // Map Zoom Events\n this.onMapZoom = new EventEmitter();\n this.onMapZoomStart = new EventEmitter();\n this.onMapZoomEnd = new EventEmitter();\n }\n LeafletDirective.prototype.ngOnInit = function () {\n var _this = this;\n // Create the map outside of angular so the various map events don't trigger change detection\n this.zone.runOutsideAngular(function () {\n // Create the map with some reasonable defaults\n // Create the map with some reasonable defaults\n _this.map = map(_this.element.nativeElement, _this.options);\n _this.addMapEventListeners();\n });\n // Only setView if there is a center/zoom\n if (null != this.center && null != this.zoom) {\n this.setView(this.center, this.zoom);\n }\n // Set up all the initial settings\n if (null != this.fitBounds) {\n this.setFitBounds(this.fitBounds);\n }\n if (null != this.maxBounds) {\n this.setMaxBounds(this.maxBounds);\n }\n if (null != this.minZoom) {\n this.setMinZoom(this.minZoom);\n }\n if (null != this.maxZoom) {\n this.setMaxZoom(this.maxZoom);\n }\n this.doResize();\n // Fire map ready event\n this.mapReady.emit(this.map);\n };\n LeafletDirective.prototype.ngOnChanges = function (changes) {\n /*\n * The following code is to address an issue with our (basic) implementation of\n * zooming and panning. From our testing, it seems that a pan operation followed\n * by a zoom operation in the same thread will interfere with eachother. The zoom\n * operation interrupts/cancels the pan, resulting in a final center point that is\n * inaccurate. The solution seems to be to either separate them with a timeout or\n * to collapse them into a setView call.\n */\n // Zooming and Panning\n if (changes['zoom'] && changes['center'] && null != this.zoom && null != this.center) {\n this.setView(changes['center'].currentValue, changes['zoom'].currentValue);\n }\n else if (changes['zoom']) {\n this.setZoom(changes['zoom'].currentValue);\n }\n else if (changes['center']) {\n this.setCenter(changes['center'].currentValue);\n }\n // Other options\n if (changes['fitBounds']) {\n this.setFitBounds(changes['fitBounds'].currentValue);\n }\n if (changes['maxBounds']) {\n this.setMaxBounds(changes['maxBounds'].currentValue);\n }\n if (changes['minZoom']) {\n this.setMinZoom(changes['minZoom'].currentValue);\n }\n if (changes['maxZoom']) {\n this.setMaxZoom(changes['maxZoom'].currentValue);\n }\n };\n LeafletDirective.prototype.getMap = function () {\n return this.map;\n };\n LeafletDirective.prototype.onResize = function () {\n this.delayResize();\n };\n LeafletDirective.prototype.addMapEventListeners = function () {\n var _this = this;\n // Add all the pass-through mouse event handlers\n this.map.on('click', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onClick, e); });\n this.map.on('dblclick', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onDoubleClick, e); });\n this.map.on('mousedown', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseDown, e); });\n this.map.on('mouseup', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseUp, e); });\n this.map.on('mouseover', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseOver, e); });\n this.map.on('mousemove', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseMove, e); });\n this.map.on('zoomstart', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapZoomStart, e); });\n this.map.on('zoom', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapZoom, e); });\n this.map.on('zoomend', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapZoomEnd, e); });\n this.map.on('movestart', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapMoveStart, e); });\n this.map.on('move', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapMove, e); });\n this.map.on('moveend', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapMoveEnd, e); });\n // Update any things for which we provide output bindings\n this.map.on('zoomend moveend', function () {\n var zoom = _this.map.getZoom();\n if (zoom !== _this.zoom) {\n _this.zoom = zoom;\n LeafletUtil.handleEvent(_this.zone, _this.zoomChange, zoom);\n }\n var center = _this.map.getCenter();\n if (null != center || null != _this.center) {\n if (((null == center || null == _this.center) && center !== _this.center)\n || (center.lat !== _this.center.lat || center.lng !== _this.center.lng)) {\n _this.center = center;\n LeafletUtil.handleEvent(_this.zone, _this.centerChange, center);\n }\n }\n });\n };\n /**\n * Resize the map to fit it's parent container\n */\n /**\n * Resize the map to fit it's parent container\n */\n LeafletDirective.prototype.doResize = /**\n * Resize the map to fit it's parent container\n */\n function () {\n var _this = this;\n // Run this outside of angular so the map events stay outside of angular\n this.zone.runOutsideAngular(function () {\n // Invalidate the map size to trigger it to update itself\n // Invalidate the map size to trigger it to update itself\n _this.map.invalidateSize({});\n });\n };\n /**\n * Manage a delayed resize of the component\n */\n /**\n * Manage a delayed resize of the component\n */\n LeafletDirective.prototype.delayResize = /**\n * Manage a delayed resize of the component\n */\n function () {\n if (null != this.resizeTimer) {\n clearTimeout(this.resizeTimer);\n }\n this.resizeTimer = setTimeout(this.doResize.bind(this), 200);\n };\n /**\n * Set the view (center/zoom) all at once\n * @param center The new center\n * @param zoom The new zoom level\n */\n /**\n * Set the view (center/zoom) all at once\n * @param center The new center\n * @param zoom The new zoom level\n */\n LeafletDirective.prototype.setView = /**\n * Set the view (center/zoom) all at once\n * @param center The new center\n * @param zoom The new zoom level\n */\n function (center, zoom) {\n if (this.map && null != center && null != zoom) {\n this.map.setView(center, zoom, this.zoomPanOptions);\n }\n };\n /**\n * Set the map zoom level\n * @param zoom the new zoom level for the map\n */\n /**\n * Set the map zoom level\n * @param zoom the new zoom level for the map\n */\n LeafletDirective.prototype.setZoom = /**\n * Set the map zoom level\n * @param zoom the new zoom level for the map\n */\n function (zoom) {\n if (this.map && null != zoom) {\n this.map.setZoom(zoom, this.zoomOptions);\n }\n };\n /**\n * Set the center of the map\n * @param center the center point\n */\n /**\n * Set the center of the map\n * @param center the center point\n */\n LeafletDirective.prototype.setCenter = /**\n * Set the center of the map\n * @param center the center point\n */\n function (center) {\n if (this.map && null != center) {\n this.map.panTo(center, this.panOptions);\n }\n };\n /**\n * Fit the map to the bounds\n * @param latLngBounds the boundary to set\n */\n /**\n * Fit the map to the bounds\n * @param latLngBounds the boundary to set\n */\n LeafletDirective.prototype.setFitBounds = /**\n * Fit the map to the bounds\n * @param latLngBounds the boundary to set\n */\n function (latLngBounds) {\n if (this.map && null != latLngBounds) {\n this.map.fitBounds(latLngBounds, this.fitBoundsOptions);\n }\n };\n /**\n * Set the map's max bounds\n * @param latLngBounds the boundary to set\n */\n /**\n * Set the map's max bounds\n * @param latLngBounds the boundary to set\n */\n LeafletDirective.prototype.setMaxBounds = /**\n * Set the map's max bounds\n * @param latLngBounds the boundary to set\n */\n function (latLngBounds) {\n if (this.map && null != latLngBounds) {\n this.map.setMaxBounds(latLngBounds);\n }\n };\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n LeafletDirective.prototype.setMinZoom = /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n function (zoom) {\n if (this.map && null != zoom) {\n this.map.setMinZoom(zoom);\n }\n };\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n LeafletDirective.prototype.setMaxZoom = /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n function (zoom) {\n if (this.map && null != zoom) {\n this.map.setMaxZoom(zoom);\n }\n };\n /** @nocollapse */\n LeafletDirective.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: NgZone, },\n ]; };\n LeafletDirective.propDecorators = {\n \"fitBoundsOptions\": [{ type: Input, args: ['leafletFitBoundsOptions',] },],\n \"panOptions\": [{ type: Input, args: ['leafletPanOptions',] },],\n \"zoomOptions\": [{ type: Input, args: ['leafletZoomOptions',] },],\n \"zoomPanOptions\": [{ type: Input, args: ['leafletZoomPanOptions',] },],\n \"options\": [{ type: Input, args: ['leafletOptions',] },],\n \"mapReady\": [{ type: Output, args: ['leafletMapReady',] },],\n \"zoom\": [{ type: Input, args: ['leafletZoom',] },],\n \"zoomChange\": [{ type: Output, args: ['leafletZoomChange',] },],\n \"center\": [{ type: Input, args: ['leafletCenter',] },],\n \"centerChange\": [{ type: Output, args: ['leafletCenterChange',] },],\n \"fitBounds\": [{ type: Input, args: ['leafletFitBounds',] },],\n \"maxBounds\": [{ type: Input, args: ['leafletMaxBounds',] },],\n \"minZoom\": [{ type: Input, args: ['leafletMinZoom',] },],\n \"maxZoom\": [{ type: Input, args: ['leafletMaxZoom',] },],\n \"onClick\": [{ type: Output, args: ['leafletClick',] },],\n \"onDoubleClick\": [{ type: Output, args: ['leafletDoubleClick',] },],\n \"onMouseDown\": [{ type: Output, args: ['leafletMouseDown',] },],\n \"onMouseUp\": [{ type: Output, args: ['leafletMouseUp',] },],\n \"onMouseMove\": [{ type: Output, args: ['leafletMouseMove',] },],\n \"onMouseOver\": [{ type: Output, args: ['leafletMouseOver',] },],\n \"onMapMove\": [{ type: Output, args: ['leafletMapMove',] },],\n \"onMapMoveStart\": [{ type: Output, args: ['leafletMapMoveStart',] },],\n \"onMapMoveEnd\": [{ type: Output, args: ['leafletMapMoveEnd',] },],\n \"onMapZoom\": [{ type: Output, args: ['leafletMapZoom',] },],\n \"onMapZoomStart\": [{ type: Output, args: ['leafletMapZoomStart',] },],\n \"onMapZoomEnd\": [{ type: Output, args: ['leafletMapZoomEnd',] },],\n \"onResize\": [{ type: HostListener, args: ['window:resize', [],] },],\n };\nLeafletDirective.ɵfac = function LeafletDirective_Factory(t) { return new (t || LeafletDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nLeafletDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LeafletDirective, selectors: [[\"\", \"leaflet\", \"\"]], hostBindings: function LeafletDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"resize\", function LeafletDirective_resize_HostBindingHandler() { return ctx.onResize(); }, false, ɵngcc0.ɵɵresolveWindow);\n } }, inputs: { fitBoundsOptions: [\"leafletFitBoundsOptions\", \"fitBoundsOptions\"], panOptions: [\"leafletPanOptions\", \"panOptions\"], zoomOptions: [\"leafletZoomOptions\", \"zoomOptions\"], zoomPanOptions: [\"leafletZoomPanOptions\", \"zoomPanOptions\"], options: [\"leafletOptions\", \"options\"], zoom: [\"leafletZoom\", \"zoom\"], center: [\"leafletCenter\", \"center\"], fitBounds: [\"leafletFitBounds\", \"fitBounds\"], maxBounds: [\"leafletMaxBounds\", \"maxBounds\"], minZoom: [\"leafletMinZoom\", \"minZoom\"], maxZoom: [\"leafletMaxZoom\", \"maxZoom\"] }, outputs: { mapReady: \"leafletMapReady\", zoomChange: \"leafletZoomChange\", centerChange: \"leafletCenterChange\", onClick: \"leafletClick\", onDoubleClick: \"leafletDoubleClick\", onMouseDown: \"leafletMouseDown\", onMouseUp: \"leafletMouseUp\", onMouseMove: \"leafletMouseMove\", onMouseOver: \"leafletMouseOver\", onMapMove: \"leafletMapMove\", onMapMoveStart: \"leafletMapMoveStart\", onMapMoveEnd: \"leafletMapMoveEnd\", onMapZoom: \"leafletMapZoom\", onMapZoomStart: \"leafletMapZoomStart\", onMapZoomEnd: \"leafletMapZoomEnd\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletDirective, [{\n type: Directive,\n args: [{\n selector: '[leaflet]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { fitBoundsOptions: [{\n type: Input,\n args: ['leafletFitBoundsOptions']\n }], panOptions: [{\n type: Input,\n args: ['leafletPanOptions']\n }], zoomOptions: [{\n type: Input,\n args: ['leafletZoomOptions']\n }], zoomPanOptions: [{\n type: Input,\n args: ['leafletZoomPanOptions']\n }], options: [{\n type: Input,\n args: ['leafletOptions']\n }], mapReady: [{\n type: Output,\n args: ['leafletMapReady']\n }], zoomChange: [{\n type: Output,\n args: ['leafletZoomChange']\n }], centerChange: [{\n type: Output,\n args: ['leafletCenterChange']\n }], onClick: [{\n type: Output,\n args: ['leafletClick']\n }], onDoubleClick: [{\n type: Output,\n args: ['leafletDoubleClick']\n }], onMouseDown: [{\n type: Output,\n args: ['leafletMouseDown']\n }], onMouseUp: [{\n type: Output,\n args: ['leafletMouseUp']\n }], onMouseMove: [{\n type: Output,\n args: ['leafletMouseMove']\n }], onMouseOver: [{\n type: Output,\n args: ['leafletMouseOver']\n }], onMapMove: [{\n type: Output,\n args: ['leafletMapMove']\n }], onMapMoveStart: [{\n type: Output,\n args: ['leafletMapMoveStart']\n }], onMapMoveEnd: [{\n type: Output,\n args: ['leafletMapMoveEnd']\n }], onMapZoom: [{\n type: Output,\n args: ['leafletMapZoom']\n }], onMapZoomStart: [{\n type: Output,\n args: ['leafletMapZoomStart']\n }], onMapZoomEnd: [{\n type: Output,\n args: ['leafletMapZoomEnd']\n }], onResize: [{\n type: HostListener,\n args: ['window:resize', []]\n }], zoom: [{\n type: Input,\n args: ['leafletZoom']\n }], center: [{\n type: Input,\n args: ['leafletCenter']\n }], fitBounds: [{\n type: Input,\n args: ['leafletFitBounds']\n }], maxBounds: [{\n type: Input,\n args: ['leafletMaxBounds']\n }], minZoom: [{\n type: Input,\n args: ['leafletMinZoom']\n }], maxZoom: [{\n type: Input,\n args: ['leafletMaxZoom']\n }] }); })();\n return LeafletDirective;\n}());\nexport { LeafletDirective };\n\n","var LeafletDirectiveWrapper = /** @class */ (function () {\n function LeafletDirectiveWrapper(leafletDirective) {\n this.leafletDirective = leafletDirective;\n }\n LeafletDirectiveWrapper.prototype.init = function () {\n // Nothing for now\n };\n LeafletDirectiveWrapper.prototype.getMap = function () {\n return this.leafletDirective.getMap();\n };\n return LeafletDirectiveWrapper;\n}());\nexport { LeafletDirectiveWrapper };\n","var LeafletUtil = /** @class */ (function () {\n function LeafletUtil() {\n }\n LeafletUtil.mapToArray = function (map) {\n var toReturn = [];\n for (var k in map) {\n if (map.hasOwnProperty(k)) {\n toReturn.push(map[k]);\n }\n }\n return toReturn;\n };\n LeafletUtil.handleEvent = function (zone, eventEmitter, event) {\n // Don't want to emit if there are no observers\n if (0 < eventEmitter.observers.length) {\n zone.run(function () {\n eventEmitter.emit(event);\n });\n }\n };\n return LeafletUtil;\n}());\nexport { LeafletUtil };\n","import { Directive, EventEmitter, Input, KeyValueDiffers, NgZone, Output } from '@angular/core';\nimport { Control } from 'leaflet';\nimport { LeafletUtil } from '../../core/leaflet.util';\nimport { LeafletDirective } from '../../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../../core/leaflet.directive.wrapper';\nimport { LeafletControlLayersWrapper } from '../control/leaflet-control-layers.wrapper';\n/**\n * Baselayers directive\n *\n * This directive is provided as a convenient way to add baselayers to the map. The input accepts\n * a key-value map of layer name -> layer. Mutable changed are detected. On changes, a differ is\n * used to determine what changed so that layers are appropriately added or removed. This directive\n * will also add the layers control so users can switch between available base layers.\n *\n * To specify which layer to show as the 'active' baselayer, you will want to add it to the map\n * using the layers directive. Otherwise, the plugin will use the last one it sees.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '../../core/leaflet.directive';\nvar LeafletBaseLayersDirective = /** @class */ (function () {\n function LeafletBaseLayersDirective(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n // Output for once the layers control is ready\n this.layersControlReady = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.controlLayers = new LeafletControlLayersWrapper(this.zone, this.layersControlReady);\n this.baseLayersDiffer = this.differs.find({}).create();\n }\n Object.defineProperty(LeafletBaseLayersDirective.prototype, \"baseLayers\", {\n get: function () {\n return this.baseLayersValue;\n },\n set: \n // Set/get baseLayers\n function (v) {\n this.baseLayersValue = v;\n this.updateBaseLayers();\n },\n enumerable: true,\n configurable: true\n });\n LeafletBaseLayersDirective.prototype.ngOnDestroy = function () {\n this.baseLayers = {};\n this.controlLayers.getLayersControl().remove();\n };\n LeafletBaseLayersDirective.prototype.ngOnInit = function () {\n var _this = this;\n // Init the map\n this.leafletDirective.init();\n // Create the control outside angular to prevent events from triggering chnage detection\n this.zone.runOutsideAngular(function () {\n // Initially configure the controlLayers\n // Initially configure the controlLayers\n _this.controlLayers\n .init({}, _this.layersControlOptions)\n .addTo(_this.leafletDirective.getMap());\n });\n this.updateBaseLayers();\n };\n LeafletBaseLayersDirective.prototype.ngDoCheck = function () {\n this.updateBaseLayers();\n };\n LeafletBaseLayersDirective.prototype.updateBaseLayers = function () {\n var map = this.leafletDirective.getMap();\n var layersControl = this.controlLayers.getLayersControl();\n if (null != map && null != layersControl && null != this.baseLayersDiffer) {\n var changes = this.baseLayersDiffer.diff(this.baseLayersValue);\n var results = this.controlLayers.applyBaseLayerChanges(changes);\n if (results.changed()) {\n this.syncBaseLayer();\n }\n }\n };\n /**\n * Check the current base layer and change it to the new one if necessary\n */\n /**\n * Check the current base layer and change it to the new one if necessary\n */\n LeafletBaseLayersDirective.prototype.syncBaseLayer = /**\n * Check the current base layer and change it to the new one if necessary\n */\n function () {\n var _this = this;\n var map = this.leafletDirective.getMap();\n var layers = LeafletUtil.mapToArray(this.baseLayers);\n var foundLayer;\n // Search all the layers in the map to see if we can find them in the baselayer array\n map.eachLayer(function (l) {\n foundLayer = layers.find(function (bl) { return (l === bl); });\n });\n // Did we find the layer?\n if (null != foundLayer) {\n // Yes - set the baselayer to the one we found\n this.baseLayer = foundLayer;\n }\n else {\n // No - set the baselayer to the first in the array and add it to the map\n if (layers.length > 0) {\n this.baseLayer = layers[0];\n // Add layers outside of angular to prevent events from triggering change detection\n this.zone.runOutsideAngular(function () {\n _this.baseLayer.addTo(map);\n });\n }\n }\n };\n /** @nocollapse */\n LeafletBaseLayersDirective.ctorParameters = function () { return [\n { type: LeafletDirective, },\n { type: KeyValueDiffers, },\n { type: NgZone, },\n ]; };\n LeafletBaseLayersDirective.propDecorators = {\n \"baseLayers\": [{ type: Input, args: ['leafletBaseLayers',] },],\n \"layersControlOptions\": [{ type: Input, args: ['leafletLayersControlOptions',] },],\n \"layersControlReady\": [{ type: Output, args: ['leafletLayersControlReady',] },],\n };\nLeafletBaseLayersDirective.ɵfac = function LeafletBaseLayersDirective_Factory(t) { return new (t || LeafletBaseLayersDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LeafletDirective), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nLeafletBaseLayersDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LeafletBaseLayersDirective, selectors: [[\"\", \"leafletBaseLayers\", \"\"]], inputs: { baseLayers: [\"leafletBaseLayers\", \"baseLayers\"], layersControlOptions: [\"leafletLayersControlOptions\", \"layersControlOptions\"] }, outputs: { layersControlReady: \"leafletLayersControlReady\" } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletBaseLayersDirective, [{\n type: Directive,\n args: [{\n selector: '[leafletBaseLayers]'\n }]\n }], function () { return [{ type: ɵngcc1.LeafletDirective }, { type: ɵngcc0.KeyValueDiffers }, { type: ɵngcc0.NgZone }]; }, { layersControlReady: [{\n type: Output,\n args: ['leafletLayersControlReady']\n }], baseLayers: [{\n type: Input,\n args: ['leafletBaseLayers']\n }], layersControlOptions: [{\n type: Input,\n args: ['leafletLayersControlOptions']\n }] }); })();\n return LeafletBaseLayersDirective;\n}());\nexport { LeafletBaseLayersDirective };\n\n","var LeafletControlLayersChanges = /** @class */ (function () {\n function LeafletControlLayersChanges() {\n this.layersRemoved = 0;\n this.layersChanged = 0;\n this.layersAdded = 0;\n }\n LeafletControlLayersChanges.prototype.changed = function () {\n return !(this.layersRemoved === 0 && this.layersChanged === 0 && this.layersAdded === 0);\n };\n return LeafletControlLayersChanges;\n}());\nexport { LeafletControlLayersChanges };\n","var LeafletControlLayersConfig = /** @class */ (function () {\n function LeafletControlLayersConfig() {\n this.baseLayers = {};\n this.overlays = {};\n }\n return LeafletControlLayersConfig;\n}());\nexport { LeafletControlLayersConfig };\n","import { Directive, EventEmitter, Input, KeyValueDiffers, NgZone, Output } from '@angular/core';\nimport { LeafletDirective } from '../../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../../core/leaflet.directive.wrapper';\nimport { LeafletControlLayersWrapper } from './leaflet-control-layers.wrapper';\nimport { LeafletControlLayersConfig } from './leaflet-control-layers-config.model';\n/**\n * Layers Control\n *\n * This directive is used to configure the layers control. The input accepts an object with two\n * key-value maps of layer name -> layer. Mutable changes are detected. On changes, a differ is\n * used to determine what changed so that layers are appropriately added or removed.\n *\n * To specify which layer to show as the 'active' baselayer, you will want to add it to the map\n * using the layers directive. Otherwise, the last one it sees will be used.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '../../core/leaflet.directive';\nvar LeafletLayersControlDirective = /** @class */ (function () {\n function LeafletLayersControlDirective(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n this.layersControlReady = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.controlLayers = new LeafletControlLayersWrapper(this.zone, this.layersControlReady);\n // Generate differs\n this.baseLayersDiffer = this.differs.find({}).create();\n this.overlaysDiffer = this.differs.find({}).create();\n }\n Object.defineProperty(LeafletLayersControlDirective.prototype, \"layersControlConfig\", {\n get: function () {\n return this.layersControlConfigValue;\n },\n set: function (v) {\n // Validation/init stuff\n if (null == v) {\n v = new LeafletControlLayersConfig();\n }\n if (null == v.baseLayers) {\n v.baseLayers = {};\n }\n if (null == v.overlays) {\n v.overlays = {};\n }\n // Store the value\n this.layersControlConfigValue = v;\n // Update the map\n this.updateLayers();\n },\n enumerable: true,\n configurable: true\n });\n LeafletLayersControlDirective.prototype.ngOnInit = function () {\n var _this = this;\n // Init the map\n this.leafletDirective.init();\n // Set up control outside of angular to avoid change detection when using the control\n this.zone.runOutsideAngular(function () {\n // Set up all the initial settings\n // Set up all the initial settings\n _this.controlLayers\n .init({}, _this.layersControlOptions)\n .addTo(_this.leafletDirective.getMap());\n });\n this.updateLayers();\n };\n LeafletLayersControlDirective.prototype.ngOnDestroy = function () {\n this.layersControlConfig = { baseLayers: {}, overlays: {} };\n this.controlLayers.getLayersControl().remove();\n };\n LeafletLayersControlDirective.prototype.ngDoCheck = function () {\n this.updateLayers();\n };\n LeafletLayersControlDirective.prototype.updateLayers = function () {\n var map = this.leafletDirective.getMap();\n var layersControl = this.controlLayers.getLayersControl();\n if (null != map && null != layersControl) {\n // Run the baselayers differ\n if (null != this.baseLayersDiffer && null != this.layersControlConfigValue.baseLayers) {\n var changes = this.baseLayersDiffer.diff(this.layersControlConfigValue.baseLayers);\n this.controlLayers.applyBaseLayerChanges(changes);\n }\n // Run the overlays differ\n if (null != this.overlaysDiffer && null != this.layersControlConfigValue.overlays) {\n var changes = this.overlaysDiffer.diff(this.layersControlConfigValue.overlays);\n this.controlLayers.applyOverlayChanges(changes);\n }\n }\n };\n /** @nocollapse */\n LeafletLayersControlDirective.ctorParameters = function () { return [\n { type: LeafletDirective, },\n { type: KeyValueDiffers, },\n { type: NgZone, },\n ]; };\n LeafletLayersControlDirective.propDecorators = {\n \"layersControlConfig\": [{ type: Input, args: ['leafletLayersControl',] },],\n \"layersControlOptions\": [{ type: Input, args: ['leafletLayersControlOptions',] },],\n \"layersControlReady\": [{ type: Output, args: ['leafletLayersControlReady',] },],\n };\nLeafletLayersControlDirective.ɵfac = function LeafletLayersControlDirective_Factory(t) { return new (t || LeafletLayersControlDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LeafletDirective), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nLeafletLayersControlDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LeafletLayersControlDirective, selectors: [[\"\", \"leafletLayersControl\", \"\"]], inputs: { layersControlConfig: [\"leafletLayersControl\", \"layersControlConfig\"], layersControlOptions: [\"leafletLayersControlOptions\", \"layersControlOptions\"] }, outputs: { layersControlReady: \"leafletLayersControlReady\" } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletLayersControlDirective, [{\n type: Directive,\n args: [{\n selector: '[leafletLayersControl]'\n }]\n }], function () { return [{ type: ɵngcc1.LeafletDirective }, { type: ɵngcc0.KeyValueDiffers }, { type: ɵngcc0.NgZone }]; }, { layersControlReady: [{\n type: Output,\n args: ['leafletLayersControlReady']\n }], layersControlConfig: [{\n type: Input,\n args: ['leafletLayersControl']\n }], layersControlOptions: [{\n type: Input,\n args: ['leafletLayersControlOptions']\n }] }); })();\n return LeafletLayersControlDirective;\n}());\nexport { LeafletLayersControlDirective };\n\n","import { control } from 'leaflet';\nimport { LeafletControlLayersChanges } from './leaflet-control-layers-changes.model';\nvar LeafletControlLayersWrapper = /** @class */ (function () {\n function LeafletControlLayersWrapper(zone, layersControlReady) {\n this.zone = zone;\n this.layersControlReady = layersControlReady;\n }\n LeafletControlLayersWrapper.prototype.getLayersControl = function () {\n return this.layersControl;\n };\n LeafletControlLayersWrapper.prototype.init = function (controlConfig, controlOptions) {\n var _this = this;\n var baseLayers = controlConfig.baseLayers || {};\n var overlays = controlConfig.overlays || {};\n // Create the control outside of angular to ensure events don't trigger change detection\n this.zone.runOutsideAngular(function () {\n _this.layersControl = control.layers(baseLayers, overlays, controlOptions);\n });\n this.layersControlReady.emit(this.layersControl);\n return this.layersControl;\n };\n LeafletControlLayersWrapper.prototype.applyBaseLayerChanges = function (changes) {\n var results = new LeafletControlLayersChanges();\n if (null != this.layersControl) {\n results = this.applyChanges(changes, this.layersControl.addBaseLayer);\n }\n return results;\n };\n LeafletControlLayersWrapper.prototype.applyOverlayChanges = function (changes) {\n var results = new LeafletControlLayersChanges();\n if (null != this.layersControl) {\n results = this.applyChanges(changes, this.layersControl.addOverlay);\n }\n return results;\n };\n LeafletControlLayersWrapper.prototype.applyChanges = function (changes, addFn) {\n var _this = this;\n var results = new LeafletControlLayersChanges();\n if (null != changes) {\n // All layer management is outside angular to avoid layer events from triggering change detection\n this.zone.runOutsideAngular(function () {\n changes.forEachChangedItem(function (c) {\n _this.layersControl.removeLayer(c.previousValue);\n addFn.call(_this.layersControl, c.currentValue, c.key);\n results.layersChanged++;\n });\n changes.forEachRemovedItem(function (c) {\n _this.layersControl.removeLayer(c.previousValue);\n results.layersRemoved++;\n });\n changes.forEachAddedItem(function (c) {\n addFn.call(_this.layersControl, c.currentValue, c.key);\n results.layersAdded++;\n });\n });\n }\n return results;\n };\n return LeafletControlLayersWrapper;\n}());\nexport { LeafletControlLayersWrapper };\n","import { Directive, EventEmitter, Input, NgZone, Output } from '@angular/core';\nimport { Layer } from 'leaflet';\nimport { LeafletDirective } from '../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../core/leaflet.directive.wrapper';\nimport { LeafletUtil } from '../core/leaflet.util';\n/**\n * Layer directive\n *\n * This directive is used to directly control a single map layer. The purpose of this directive is to\n * be used as part of a child structural directive of the map element.\n *\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '../core/leaflet.directive';\nvar LeafletLayerDirective = /** @class */ (function () {\n function LeafletLayerDirective(leafletDirective, zone) {\n this.zone = zone;\n // Layer Events\n this.onAdd = new EventEmitter();\n this.onRemove = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n }\n LeafletLayerDirective.prototype.ngOnInit = function () {\n // Init the map\n this.leafletDirective.init();\n };\n LeafletLayerDirective.prototype.ngOnDestroy = function () {\n this.layer.remove();\n };\n LeafletLayerDirective.prototype.ngOnChanges = function (changes) {\n var _this = this;\n if (changes['layer']) {\n // Update the layer\n var p_1 = changes['layer'].previousValue;\n var n_1 = changes['layer'].currentValue;\n this.zone.runOutsideAngular(function () {\n if (null != p_1) {\n p_1.remove();\n }\n if (null != n_1) {\n _this.addLayerEventListeners(n_1);\n _this.leafletDirective.getMap().addLayer(n_1);\n }\n });\n }\n };\n LeafletLayerDirective.prototype.addLayerEventListeners = function (l) {\n var _this = this;\n l.on('add', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onAdd, e); });\n l.on('remove', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onRemove, e); });\n };\n /** @nocollapse */\n LeafletLayerDirective.ctorParameters = function () { return [\n { type: LeafletDirective, },\n { type: NgZone, },\n ]; };\n LeafletLayerDirective.propDecorators = {\n \"layer\": [{ type: Input, args: ['leafletLayer',] },],\n \"onAdd\": [{ type: Output, args: ['leafletLayerAdd',] },],\n \"onRemove\": [{ type: Output, args: ['leafletLayerRemove',] },],\n };\nLeafletLayerDirective.ɵfac = function LeafletLayerDirective_Factory(t) { return new (t || LeafletLayerDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LeafletDirective), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nLeafletLayerDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LeafletLayerDirective, selectors: [[\"\", \"leafletLayer\", \"\"]], inputs: { layer: [\"leafletLayer\", \"layer\"] }, outputs: { onAdd: \"leafletLayerAdd\", onRemove: \"leafletLayerRemove\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletLayerDirective, [{\n type: Directive,\n args: [{\n selector: '[leafletLayer]'\n }]\n }], function () { return [{ type: ɵngcc1.LeafletDirective }, { type: ɵngcc0.NgZone }]; }, { onAdd: [{\n type: Output,\n args: ['leafletLayerAdd']\n }], onRemove: [{\n type: Output,\n args: ['leafletLayerRemove']\n }], layer: [{\n type: Input,\n args: ['leafletLayer']\n }] }); })();\n return LeafletLayerDirective;\n}());\nexport { LeafletLayerDirective };\n\n","import { Directive, Input, IterableDiffers, NgZone } from '@angular/core';\nimport { LeafletDirective } from '../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../core/leaflet.directive.wrapper';\n/**\n * Layers directive\n *\n * This directive is used to directly control map layers. As changes are made to the input array of\n * layers, the map is synched to the array. As layers are added or removed from the input array, they\n * are also added or removed from the map. The input array is treated as immutable. To detect changes,\n * you must change the array instance.\n *\n * Important Note: The input layers array is assumed to be immutable. This means you need to use an\n * immutable array implementation or create a new copy of your array when you make changes, otherwise\n * this directive won't detect the change. This is by design. It's for performance reasons. Change\n * detection of mutable arrays requires diffing the state of the array on every DoCheck cycle, which\n * is extremely expensive from a time complexity perspective.\n *\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '../core/leaflet.directive';\nvar LeafletLayersDirective = /** @class */ (function () {\n function LeafletLayersDirective(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.layersDiffer = this.differs.find([]).create();\n }\n Object.defineProperty(LeafletLayersDirective.prototype, \"layers\", {\n get: function () {\n return this.layersValue;\n },\n set: \n // Set/get the layers\n function (v) {\n this.layersValue = v;\n // Now that we have a differ, do an immediate layer update\n this.updateLayers();\n },\n enumerable: true,\n configurable: true\n });\n LeafletLayersDirective.prototype.ngDoCheck = function () {\n this.updateLayers();\n };\n LeafletLayersDirective.prototype.ngOnInit = function () {\n // Init the map\n this.leafletDirective.init();\n // Update layers once the map is ready\n this.updateLayers();\n };\n LeafletLayersDirective.prototype.ngOnDestroy = function () {\n this.layers = [];\n };\n /**\n * Update the state of the layers.\n * We use an iterable differ to synchronize the map layers with the state of the bound layers array.\n * This is important because it allows us to react to changes to the contents of the array as well\n * as changes to the actual array instance.\n */\n /**\n * Update the state of the layers.\n * We use an iterable differ to synchronize the map layers with the state of the bound layers array.\n * This is important because it allows us to react to changes to the contents of the array as well\n * as changes to the actual array instance.\n */\n LeafletLayersDirective.prototype.updateLayers = /**\n * Update the state of the layers.\n * We use an iterable differ to synchronize the map layers with the state of the bound layers array.\n * This is important because it allows us to react to changes to the contents of the array as well\n * as changes to the actual array instance.\n */\n function () {\n var map = this.leafletDirective.getMap();\n if (null != map && null != this.layersDiffer) {\n var changes_1 = this.layersDiffer.diff(this.layersValue);\n if (null != changes_1) {\n // Run outside angular to ensure layer events don't trigger change detection\n this.zone.runOutsideAngular(function () {\n changes_1.forEachRemovedItem(function (c) {\n map.removeLayer(c.item);\n });\n changes_1.forEachAddedItem(function (c) {\n map.addLayer(c.item);\n });\n });\n }\n }\n };\n /** @nocollapse */\n LeafletLayersDirective.ctorParameters = function () { return [\n { type: LeafletDirective, },\n { type: IterableDiffers, },\n { type: NgZone, },\n ]; };\n LeafletLayersDirective.propDecorators = {\n \"layers\": [{ type: Input, args: ['leafletLayers',] },],\n };\nLeafletLayersDirective.ɵfac = function LeafletLayersDirective_Factory(t) { return new (t || LeafletLayersDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LeafletDirective), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.IterableDiffers), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nLeafletLayersDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LeafletLayersDirective, selectors: [[\"\", \"leafletLayers\", \"\"]], inputs: { layers: [\"leafletLayers\", \"layers\"] } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletLayersDirective, [{\n type: Directive,\n args: [{\n selector: '[leafletLayers]'\n }]\n }], function () { return [{ type: ɵngcc1.LeafletDirective }, { type: ɵngcc0.IterableDiffers }, { type: ɵngcc0.NgZone }]; }, { layers: [{\n type: Input,\n args: ['leafletLayers']\n }] }); })();\n return LeafletLayersDirective;\n}());\nexport { LeafletLayersDirective };\n\n","import { tileLayer } from 'leaflet';\nvar LeafletTileLayerDefinition = /** @class */ (function () {\n function LeafletTileLayerDefinition(type, url, options) {\n this.type = type;\n this.url = url;\n this.options = options;\n }\n /**\n * Creates a TileLayer from the provided definition. This is a convenience function\n * to help with generating layers from objects.\n *\n * @param layerDef The layer to create\n * @returns {TileLayer} The TileLayer that has been created\n */\n /**\n * Creates a TileLayer from the provided definition. This is a convenience function\n * to help with generating layers from objects.\n *\n * @param layerDef The layer to create\n * @returns {TileLayer} The TileLayer that has been created\n */\n LeafletTileLayerDefinition.createTileLayer = /**\n * Creates a TileLayer from the provided definition. This is a convenience function\n * to help with generating layers from objects.\n *\n * @param layerDef The layer to create\n * @returns {TileLayer} The TileLayer that has been created\n */\n function (layerDef) {\n var layer;\n switch (layerDef.type) {\n case 'xyz':\n layer = tileLayer(layerDef.url, layerDef.options);\n break;\n case 'wms':\n default:\n layer = tileLayer.wms(layerDef.url, layerDef.options);\n break;\n }\n return layer;\n };\n /**\n * Creates a TileLayer for each key in the incoming map. This is a convenience function\n * for generating an associative array of layers from an associative array of objects\n *\n * @param layerDefs A map of key to tile layer definition\n * @returns {{[p: string]: TileLayer}} A new map of key to TileLayer\n */\n /**\n * Creates a TileLayer for each key in the incoming map. This is a convenience function\n * for generating an associative array of layers from an associative array of objects\n *\n * @param layerDefs A map of key to tile layer definition\n * @returns {{[p: string]: TileLayer}} A new map of key to TileLayer\n */\n LeafletTileLayerDefinition.createTileLayers = /**\n * Creates a TileLayer for each key in the incoming map. This is a convenience function\n * for generating an associative array of layers from an associative array of objects\n *\n * @param layerDefs A map of key to tile layer definition\n * @returns {{[p: string]: TileLayer}} A new map of key to TileLayer\n */\n function (layerDefs) {\n var layers = {};\n for (var k in layerDefs) {\n if (layerDefs.hasOwnProperty(k)) {\n layers[k] = (LeafletTileLayerDefinition.createTileLayer(layerDefs[k]));\n }\n }\n return layers;\n };\n /**\n * Create a Tile Layer from the current state of this object\n *\n * @returns {TileLayer} A new TileLayer\n */\n /**\n * Create a Tile Layer from the current state of this object\n *\n * @returns {TileLayer} A new TileLayer\n */\n LeafletTileLayerDefinition.prototype.createTileLayer = /**\n * Create a Tile Layer from the current state of this object\n *\n * @returns {TileLayer} A new TileLayer\n */\n function () {\n return LeafletTileLayerDefinition.createTileLayer(this);\n };\n return LeafletTileLayerDefinition;\n}());\nexport { LeafletTileLayerDefinition };\n","import { NgModule } from '@angular/core';\nimport { LeafletDirective } from './core/leaflet.directive';\nimport { LeafletLayerDirective } from './layers/leaflet-layer.directive';\nimport { LeafletLayersDirective } from './layers/leaflet-layers.directive';\nimport { LeafletLayersControlDirective } from './layers/control/leaflet-control-layers.directive';\nimport { LeafletBaseLayersDirective } from './layers/base/leaflet-baselayers.directive';\nimport * as ɵngcc0 from '@angular/core';\nvar LeafletModule = /** @class */ (function () {\n function LeafletModule() {\n }\n LeafletModule.forRoot = function () {\n return { ngModule: LeafletModule, providers: [] };\n };\nLeafletModule.ɵfac = function LeafletModule_Factory(t) { return new (t || LeafletModule)(); };\nLeafletModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: LeafletModule });\nLeafletModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeafletModule, [{\n type: NgModule,\n args: [{\n exports: [\n LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective\n ],\n declarations: [\n LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective\n ]\n }]\n }], function () { return []; }, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(LeafletModule, { declarations: function () { return [LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective]; }, exports: function () { return [LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective]; } }); })();\n return LeafletModule;\n}());\nexport { LeafletModule };\n\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32c = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32c = /** @class */ (function () {\n function AwsCrc32c() {\n this.crc32c = new index_1.Crc32c();\n }\n AwsCrc32c.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32c.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32c.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32c.digest())];\n });\n });\n };\n AwsCrc32c.prototype.reset = function () {\n this.crc32c = new index_1.Crc32c();\n };\n return AwsCrc32c;\n}());\nexports.AwsCrc32c = AwsCrc32c;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32c = exports.Crc32c = exports.crc32c = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32c(data) {\n return new Crc32c().update(data).digest();\n}\nexports.crc32c = crc32c;\nvar Crc32c = /** @class */ (function () {\n function Crc32c() {\n this.checksum = 0xffffffff;\n }\n Crc32c.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32c.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32c;\n}());\nexports.Crc32c = Crc32c;\n// prettier-ignore\nvar a_lookupTable = [\n 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookupTable);\nvar aws_crc32c_1 = require(\"./aws_crc32c\");\nObject.defineProperty(exports, \"AwsCrc32c\", { enumerable: true, get: function () { return aws_crc32c_1.AwsCrc32c; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_DATA_SHA_1 = exports.SHA_1_HMAC_ALGO = exports.SHA_1_HASH = void 0;\nexports.SHA_1_HASH = { name: \"SHA-1\" };\nexports.SHA_1_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_1_HASH,\n};\nexports.EMPTY_DATA_SHA_1 = new Uint8Array([\n 218,\n 57,\n 163,\n 238,\n 94,\n 107,\n 75,\n 13,\n 50,\n 85,\n 191,\n 239,\n 149,\n 96,\n 24,\n 144,\n 175,\n 216,\n 7,\n 9,\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha1 = void 0;\nvar ie11Sha1_1 = require(\"./ie11Sha1\");\nvar webCryptoSha1_1 = require(\"./webCryptoSha1\");\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha1 = /** @class */ (function () {\n function Sha1(secret) {\n if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new webCryptoSha1_1.Sha1(secret);\n }\n else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new ie11Sha1_1.Sha1(secret);\n }\n else {\n throw new Error(\"SHA1 not supported\");\n }\n }\n Sha1.prototype.update = function (data, encoding) {\n this.hash.update((0, util_1.convertToBuffer)(data));\n };\n Sha1.prototype.digest = function () {\n return this.hash.digest();\n };\n Sha1.prototype.reset = function () {\n this.hash.reset();\n };\n return Sha1;\n}());\nexports.Sha1 = Sha1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha1 = void 0;\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha1 = /** @class */ (function () {\n function Sha1(secret) {\n this.secret = secret;\n this.reset();\n }\n Sha1.prototype.update = function (toHash) {\n var _this = this;\n if ((0, isEmptyData_1.isEmptyData)(toHash)) {\n return;\n }\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () { });\n };\n Sha1.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.finish();\n });\n });\n };\n Sha1.prototype.reset = function () {\n if (this.secret) {\n this.operation = getKeyPromise(this.secret).then(function (keyData) {\n return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_1_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () { });\n }\n else {\n this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\"SHA-1\"));\n }\n };\n return Sha1;\n}());\nexports.Sha1 = Sha1;\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_1_HMAC_ALGO, false, [\"sign\"]);\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha1 = exports.Ie11Sha1 = void 0;\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crossPlatformSha1\"), exports);\nvar ie11Sha1_1 = require(\"./ie11Sha1\");\nObject.defineProperty(exports, \"Ie11Sha1\", { enumerable: true, get: function () { return ie11Sha1_1.Sha1; } });\nvar webCryptoSha1_1 = require(\"./webCryptoSha1\");\nObject.defineProperty(exports, \"WebCryptoSha1\", { enumerable: true, get: function () { return webCryptoSha1_1.Sha1; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha1 = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha1 = /** @class */ (function () {\n function Sha1(secret) {\n this.toHash = new Uint8Array(0);\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.importKey(\"raw\", convertToBuffer(secret), constants_1.SHA_1_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n }\n Sha1.prototype.update = function (data) {\n if ((0, isEmptyData_1.isEmptyData)(data)) {\n return;\n }\n var update = convertToBuffer(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha1.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.sign(constants_1.SHA_1_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if ((0, isEmptyData_1.isEmptyData)(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_1);\n }\n return Promise.resolve()\n .then(function () { return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_1_HASH, _this.toHash); })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n Sha1.prototype.reset = function () {\n this.toHash = new Uint8Array(0);\n };\n return Sha1;\n}());\nexports.Sha1 = Sha1;\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction quacksLikeAnMsWindow(window) {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\n return msSubtleCryptoMethods\n .map(function (methodName) { return subtle_1[methodName]; })\n .concat(getRandomValues)\n .every(function (method) { return typeof method === \"function\"; });\n }\n return false;\n}\nexports.isMsWindow = isMsWindow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\ntslib_1.__exportStar(require(\"./Key\"), exports);\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\nvar tslib_1 = require(\"tslib\");\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexports.supportsWebCrypto = supportsWebCrypto;\nfunction supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexports.supportsSecureRandom = supportsSecureRandom;\nfunction supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update(convertToBuffer(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = convertToBuffer(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","import { AbortSignal } from \"./AbortSignal\";\nvar AbortController = /** @class */ (function () {\n function AbortController() {\n this.signal = new AbortSignal();\n }\n AbortController.prototype.abort = function () {\n this.signal.abort();\n };\n return AbortController;\n}());\nexport { AbortController };\n","var AbortSignal = /** @class */ (function () {\n function AbortSignal() {\n this.onabort = null;\n this._aborted = false;\n Object.defineProperty(this, \"_aborted\", {\n value: false,\n writable: true,\n });\n }\n Object.defineProperty(AbortSignal.prototype, \"aborted\", {\n /**\n * Whether the associated operation has already been cancelled.\n */\n get: function () {\n return this._aborted;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @internal\n */\n AbortSignal.prototype.abort = function () {\n this._aborted = true;\n if (this.onabort) {\n this.onabort(this);\n this.onabort = null;\n }\n };\n return AbortSignal;\n}());\nexport { AbortSignal };\n","export * from \"./AbortController\";\nexport * from \"./AbortSignal\";\n","export function blobReader(blob, onChunk, chunkSize = 1024 * 1024) {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.addEventListener(\"error\", reject);\n fileReader.addEventListener(\"abort\", reject);\n const size = blob.size;\n let totalBytesRead = 0;\n function read() {\n if (totalBytesRead >= size) {\n resolve();\n return;\n }\n fileReader.readAsArrayBuffer(blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize)));\n }\n fileReader.addEventListener(\"load\", (event) => {\n const result = event.target.result;\n onChunk(new Uint8Array(result));\n totalBytesRead += result.byteLength;\n read();\n });\n read();\n });\n}\n","import { createAggregatedClient } from \"@aws-sdk/smithy-client\";\nimport { AbortMultipartUploadCommand, } from \"./commands/AbortMultipartUploadCommand\";\nimport { CompleteMultipartUploadCommand, } from \"./commands/CompleteMultipartUploadCommand\";\nimport { CopyObjectCommand } from \"./commands/CopyObjectCommand\";\nimport { CreateBucketCommand, } from \"./commands/CreateBucketCommand\";\nimport { CreateMultipartUploadCommand, } from \"./commands/CreateMultipartUploadCommand\";\nimport { DeleteBucketAnalyticsConfigurationCommand, } from \"./commands/DeleteBucketAnalyticsConfigurationCommand\";\nimport { DeleteBucketCommand, } from \"./commands/DeleteBucketCommand\";\nimport { DeleteBucketCorsCommand, } from \"./commands/DeleteBucketCorsCommand\";\nimport { DeleteBucketEncryptionCommand, } from \"./commands/DeleteBucketEncryptionCommand\";\nimport { DeleteBucketIntelligentTieringConfigurationCommand, } from \"./commands/DeleteBucketIntelligentTieringConfigurationCommand\";\nimport { DeleteBucketInventoryConfigurationCommand, } from \"./commands/DeleteBucketInventoryConfigurationCommand\";\nimport { DeleteBucketLifecycleCommand, } from \"./commands/DeleteBucketLifecycleCommand\";\nimport { DeleteBucketMetricsConfigurationCommand, } from \"./commands/DeleteBucketMetricsConfigurationCommand\";\nimport { DeleteBucketOwnershipControlsCommand, } from \"./commands/DeleteBucketOwnershipControlsCommand\";\nimport { DeleteBucketPolicyCommand, } from \"./commands/DeleteBucketPolicyCommand\";\nimport { DeleteBucketReplicationCommand, } from \"./commands/DeleteBucketReplicationCommand\";\nimport { DeleteBucketTaggingCommand, } from \"./commands/DeleteBucketTaggingCommand\";\nimport { DeleteBucketWebsiteCommand, } from \"./commands/DeleteBucketWebsiteCommand\";\nimport { DeleteObjectCommand, } from \"./commands/DeleteObjectCommand\";\nimport { DeleteObjectsCommand, } from \"./commands/DeleteObjectsCommand\";\nimport { DeleteObjectTaggingCommand, } from \"./commands/DeleteObjectTaggingCommand\";\nimport { DeletePublicAccessBlockCommand, } from \"./commands/DeletePublicAccessBlockCommand\";\nimport { GetBucketAccelerateConfigurationCommand, } from \"./commands/GetBucketAccelerateConfigurationCommand\";\nimport { GetBucketAclCommand, } from \"./commands/GetBucketAclCommand\";\nimport { GetBucketAnalyticsConfigurationCommand, } from \"./commands/GetBucketAnalyticsConfigurationCommand\";\nimport { GetBucketCorsCommand, } from \"./commands/GetBucketCorsCommand\";\nimport { GetBucketEncryptionCommand, } from \"./commands/GetBucketEncryptionCommand\";\nimport { GetBucketIntelligentTieringConfigurationCommand, } from \"./commands/GetBucketIntelligentTieringConfigurationCommand\";\nimport { GetBucketInventoryConfigurationCommand, } from \"./commands/GetBucketInventoryConfigurationCommand\";\nimport { GetBucketLifecycleConfigurationCommand, } from \"./commands/GetBucketLifecycleConfigurationCommand\";\nimport { GetBucketLocationCommand, } from \"./commands/GetBucketLocationCommand\";\nimport { GetBucketLoggingCommand, } from \"./commands/GetBucketLoggingCommand\";\nimport { GetBucketMetricsConfigurationCommand, } from \"./commands/GetBucketMetricsConfigurationCommand\";\nimport { GetBucketNotificationConfigurationCommand, } from \"./commands/GetBucketNotificationConfigurationCommand\";\nimport { GetBucketOwnershipControlsCommand, } from \"./commands/GetBucketOwnershipControlsCommand\";\nimport { GetBucketPolicyCommand, } from \"./commands/GetBucketPolicyCommand\";\nimport { GetBucketPolicyStatusCommand, } from \"./commands/GetBucketPolicyStatusCommand\";\nimport { GetBucketReplicationCommand, } from \"./commands/GetBucketReplicationCommand\";\nimport { GetBucketRequestPaymentCommand, } from \"./commands/GetBucketRequestPaymentCommand\";\nimport { GetBucketTaggingCommand, } from \"./commands/GetBucketTaggingCommand\";\nimport { GetBucketVersioningCommand, } from \"./commands/GetBucketVersioningCommand\";\nimport { GetBucketWebsiteCommand, } from \"./commands/GetBucketWebsiteCommand\";\nimport { GetObjectAclCommand, } from \"./commands/GetObjectAclCommand\";\nimport { GetObjectAttributesCommand, } from \"./commands/GetObjectAttributesCommand\";\nimport { GetObjectCommand } from \"./commands/GetObjectCommand\";\nimport { GetObjectLegalHoldCommand, } from \"./commands/GetObjectLegalHoldCommand\";\nimport { GetObjectLockConfigurationCommand, } from \"./commands/GetObjectLockConfigurationCommand\";\nimport { GetObjectRetentionCommand, } from \"./commands/GetObjectRetentionCommand\";\nimport { GetObjectTaggingCommand, } from \"./commands/GetObjectTaggingCommand\";\nimport { GetObjectTorrentCommand, } from \"./commands/GetObjectTorrentCommand\";\nimport { GetPublicAccessBlockCommand, } from \"./commands/GetPublicAccessBlockCommand\";\nimport { HeadBucketCommand } from \"./commands/HeadBucketCommand\";\nimport { HeadObjectCommand } from \"./commands/HeadObjectCommand\";\nimport { ListBucketAnalyticsConfigurationsCommand, } from \"./commands/ListBucketAnalyticsConfigurationsCommand\";\nimport { ListBucketIntelligentTieringConfigurationsCommand, } from \"./commands/ListBucketIntelligentTieringConfigurationsCommand\";\nimport { ListBucketInventoryConfigurationsCommand, } from \"./commands/ListBucketInventoryConfigurationsCommand\";\nimport { ListBucketMetricsConfigurationsCommand, } from \"./commands/ListBucketMetricsConfigurationsCommand\";\nimport { ListBucketsCommand } from \"./commands/ListBucketsCommand\";\nimport { ListMultipartUploadsCommand, } from \"./commands/ListMultipartUploadsCommand\";\nimport { ListObjectsCommand } from \"./commands/ListObjectsCommand\";\nimport { ListObjectsV2Command, } from \"./commands/ListObjectsV2Command\";\nimport { ListObjectVersionsCommand, } from \"./commands/ListObjectVersionsCommand\";\nimport { ListPartsCommand } from \"./commands/ListPartsCommand\";\nimport { PutBucketAccelerateConfigurationCommand, } from \"./commands/PutBucketAccelerateConfigurationCommand\";\nimport { PutBucketAclCommand, } from \"./commands/PutBucketAclCommand\";\nimport { PutBucketAnalyticsConfigurationCommand, } from \"./commands/PutBucketAnalyticsConfigurationCommand\";\nimport { PutBucketCorsCommand, } from \"./commands/PutBucketCorsCommand\";\nimport { PutBucketEncryptionCommand, } from \"./commands/PutBucketEncryptionCommand\";\nimport { PutBucketIntelligentTieringConfigurationCommand, } from \"./commands/PutBucketIntelligentTieringConfigurationCommand\";\nimport { PutBucketInventoryConfigurationCommand, } from \"./commands/PutBucketInventoryConfigurationCommand\";\nimport { PutBucketLifecycleConfigurationCommand, } from \"./commands/PutBucketLifecycleConfigurationCommand\";\nimport { PutBucketLoggingCommand, } from \"./commands/PutBucketLoggingCommand\";\nimport { PutBucketMetricsConfigurationCommand, } from \"./commands/PutBucketMetricsConfigurationCommand\";\nimport { PutBucketNotificationConfigurationCommand, } from \"./commands/PutBucketNotificationConfigurationCommand\";\nimport { PutBucketOwnershipControlsCommand, } from \"./commands/PutBucketOwnershipControlsCommand\";\nimport { PutBucketPolicyCommand, } from \"./commands/PutBucketPolicyCommand\";\nimport { PutBucketReplicationCommand, } from \"./commands/PutBucketReplicationCommand\";\nimport { PutBucketRequestPaymentCommand, } from \"./commands/PutBucketRequestPaymentCommand\";\nimport { PutBucketTaggingCommand, } from \"./commands/PutBucketTaggingCommand\";\nimport { PutBucketVersioningCommand, } from \"./commands/PutBucketVersioningCommand\";\nimport { PutBucketWebsiteCommand, } from \"./commands/PutBucketWebsiteCommand\";\nimport { PutObjectAclCommand, } from \"./commands/PutObjectAclCommand\";\nimport { PutObjectCommand } from \"./commands/PutObjectCommand\";\nimport { PutObjectLegalHoldCommand, } from \"./commands/PutObjectLegalHoldCommand\";\nimport { PutObjectLockConfigurationCommand, } from \"./commands/PutObjectLockConfigurationCommand\";\nimport { PutObjectRetentionCommand, } from \"./commands/PutObjectRetentionCommand\";\nimport { PutObjectTaggingCommand, } from \"./commands/PutObjectTaggingCommand\";\nimport { PutPublicAccessBlockCommand, } from \"./commands/PutPublicAccessBlockCommand\";\nimport { RestoreObjectCommand, } from \"./commands/RestoreObjectCommand\";\nimport { SelectObjectContentCommand, } from \"./commands/SelectObjectContentCommand\";\nimport { UploadPartCommand } from \"./commands/UploadPartCommand\";\nimport { UploadPartCopyCommand, } from \"./commands/UploadPartCopyCommand\";\nimport { WriteGetObjectResponseCommand, } from \"./commands/WriteGetObjectResponseCommand\";\nimport { S3Client } from \"./S3Client\";\nconst commands = {\n AbortMultipartUploadCommand,\n CompleteMultipartUploadCommand,\n CopyObjectCommand,\n CreateBucketCommand,\n CreateMultipartUploadCommand,\n DeleteBucketCommand,\n DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand,\n DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand,\n DeleteObjectCommand,\n DeleteObjectsCommand,\n DeleteObjectTaggingCommand,\n DeletePublicAccessBlockCommand,\n GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand,\n GetBucketEncryptionCommand,\n GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand,\n GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand,\n GetBucketLoggingCommand,\n GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand,\n GetBucketVersioningCommand,\n GetBucketWebsiteCommand,\n GetObjectCommand,\n GetObjectAclCommand,\n GetObjectAttributesCommand,\n GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand,\n GetObjectRetentionCommand,\n GetObjectTaggingCommand,\n GetObjectTorrentCommand,\n GetPublicAccessBlockCommand,\n HeadBucketCommand,\n HeadObjectCommand,\n ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand,\n ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand,\n ListMultipartUploadsCommand,\n ListObjectsCommand,\n ListObjectsV2Command,\n ListObjectVersionsCommand,\n ListPartsCommand,\n PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand,\n PutBucketEncryptionCommand,\n PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand,\n PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand,\n PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand,\n PutBucketVersioningCommand,\n PutBucketWebsiteCommand,\n PutObjectCommand,\n PutObjectAclCommand,\n PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand,\n PutObjectRetentionCommand,\n PutObjectTaggingCommand,\n PutPublicAccessBlockCommand,\n RestoreObjectCommand,\n SelectObjectContentCommand,\n UploadPartCommand,\n UploadPartCopyCommand,\n WriteGetObjectResponseCommand,\n};\nexport class S3 extends S3Client {\n}\ncreateAggregatedClient(commands, S3);\n","import { resolveRegionConfig } from \"@aws-sdk/config-resolver\";\nimport { resolveEventStreamSerdeConfig, } from \"@aws-sdk/eventstream-serde-config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { resolveEndpointConfig } from \"@aws-sdk/middleware-endpoint\";\nimport { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getValidateBucketNamePlugin, resolveS3Config, } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nexport { __Client };\nexport class S3Client extends __Client {\n constructor(configuration) {\n const _config_0 = __getRuntimeConfig(configuration);\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = resolveRegionConfig(_config_1);\n const _config_3 = resolveEndpointConfig(_config_2);\n const _config_4 = resolveRetryConfig(_config_3);\n const _config_5 = resolveHostHeaderConfig(_config_4);\n const _config_6 = resolveAwsAuthConfig(_config_5);\n const _config_7 = resolveS3Config(_config_6);\n const _config_8 = resolveUserAgentConfig(_config_7);\n const _config_9 = resolveEventStreamSerdeConfig(_config_8);\n super(_config_9);\n this.config = _config_9;\n this.middlewareStack.use(getRetryPlugin(this.config));\n this.middlewareStack.use(getContentLengthPlugin(this.config));\n this.middlewareStack.use(getHostHeaderPlugin(this.config));\n this.middlewareStack.use(getLoggerPlugin(this.config));\n this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(getAwsAuthPlugin(this.config));\n this.middlewareStack.use(getValidateBucketNamePlugin(this.config));\n this.middlewareStack.use(getAddExpectContinuePlugin(this.config));\n this.middlewareStack.use(getUserAgentPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_AbortMultipartUploadCommand, se_AbortMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class AbortMultipartUploadCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, AbortMultipartUploadCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"AbortMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_AbortMultipartUploadCommand(input, context);\n }\n deserialize(output, context) {\n return de_AbortMultipartUploadCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { CompleteMultipartUploadOutputFilterSensitiveLog, CompleteMultipartUploadRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CompleteMultipartUploadCommand, se_CompleteMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CompleteMultipartUploadCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CompleteMultipartUploadCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CompleteMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: CompleteMultipartUploadRequestFilterSensitiveLog,\n outputFilterSensitiveLog: CompleteMultipartUploadOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CompleteMultipartUploadCommand(input, context);\n }\n deserialize(output, context) {\n return de_CompleteMultipartUploadCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { CopyObjectOutputFilterSensitiveLog, CopyObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CopyObjectCommand, se_CopyObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CopyObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CopyObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CopyObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: CopyObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: CopyObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CopyObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_CopyObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getLocationConstraintPlugin } from \"@aws-sdk/middleware-location-constraint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_CreateBucketCommand, se_CreateBucketCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CreateBucketCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n DisableAccessPoints: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CreateBucketCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getLocationConstraintPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CreateBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CreateBucketCommand(input, context);\n }\n deserialize(output, context) {\n return de_CreateBucketCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { CreateMultipartUploadOutputFilterSensitiveLog, CreateMultipartUploadRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CreateMultipartUploadCommand, se_CreateMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CreateMultipartUploadCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CreateMultipartUploadCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CreateMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: CreateMultipartUploadRequestFilterSensitiveLog,\n outputFilterSensitiveLog: CreateMultipartUploadOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CreateMultipartUploadCommand(input, context);\n }\n deserialize(output, context) {\n return de_CreateMultipartUploadCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketAnalyticsConfigurationCommand, se_DeleteBucketAnalyticsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketAnalyticsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketAnalyticsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketAnalyticsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketCommand, se_DeleteBucketCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketCorsCommand, se_DeleteBucketCorsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketCorsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketCorsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketCorsCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketCorsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketEncryptionCommand, se_DeleteBucketEncryptionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketEncryptionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketEncryptionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketEncryptionCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketEncryptionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketIntelligentTieringConfigurationCommand, se_DeleteBucketIntelligentTieringConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketIntelligentTieringConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketIntelligentTieringConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketIntelligentTieringConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketInventoryConfigurationCommand, se_DeleteBucketInventoryConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketInventoryConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketInventoryConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketInventoryConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketLifecycleCommand, se_DeleteBucketLifecycleCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketLifecycleCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketLifecycleCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketLifecycleCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketLifecycleCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketLifecycleCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketMetricsConfigurationCommand, se_DeleteBucketMetricsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketMetricsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketMetricsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketMetricsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketOwnershipControlsCommand, se_DeleteBucketOwnershipControlsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketOwnershipControlsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketOwnershipControlsCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketOwnershipControlsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketPolicyCommand, se_DeleteBucketPolicyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketPolicyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketPolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketPolicyCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketPolicyCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketReplicationCommand, se_DeleteBucketReplicationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketReplicationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketReplicationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketReplicationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketReplicationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketTaggingCommand, se_DeleteBucketTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteBucketWebsiteCommand, se_DeleteBucketWebsiteCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketWebsiteCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketWebsiteCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketWebsiteCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketWebsiteCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteObjectCommand, se_DeleteObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteObjectCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteObjectTaggingCommand, se_DeleteObjectTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteObjectTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteObjectTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteObjectTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteObjectTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeleteObjectsCommand, se_DeleteObjectsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteObjectsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteObjectsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteObjectsCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteObjectsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_DeletePublicAccessBlockCommand, se_DeletePublicAccessBlockCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeletePublicAccessBlockCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeletePublicAccessBlockCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeletePublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeletePublicAccessBlockCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeletePublicAccessBlockCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketAccelerateConfigurationCommand, se_GetBucketAccelerateConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketAccelerateConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketAccelerateConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAccelerateConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketAccelerateConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketAccelerateConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketAclCommand, se_GetBucketAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketAclCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketAclCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketAnalyticsConfigurationCommand, se_GetBucketAnalyticsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketAnalyticsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketAnalyticsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketAnalyticsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketCorsCommand, se_GetBucketCorsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketCorsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketCorsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketCorsCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketCorsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { GetBucketEncryptionOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetBucketEncryptionCommand, se_GetBucketEncryptionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketEncryptionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketEncryptionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: GetBucketEncryptionOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketEncryptionCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketEncryptionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketIntelligentTieringConfigurationCommand, se_GetBucketIntelligentTieringConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketIntelligentTieringConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketIntelligentTieringConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketIntelligentTieringConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { GetBucketInventoryConfigurationOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetBucketInventoryConfigurationCommand, se_GetBucketInventoryConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketInventoryConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: GetBucketInventoryConfigurationOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketInventoryConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketInventoryConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketLifecycleConfigurationCommand, se_GetBucketLifecycleConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketLifecycleConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketLifecycleConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLifecycleConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketLifecycleConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketLifecycleConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketLocationCommand, se_GetBucketLocationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketLocationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketLocationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLocationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketLocationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketLocationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketLoggingCommand, se_GetBucketLoggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketLoggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketLoggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLoggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketLoggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketLoggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketMetricsConfigurationCommand, se_GetBucketMetricsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketMetricsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketMetricsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketMetricsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketNotificationConfigurationCommand, se_GetBucketNotificationConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketNotificationConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketNotificationConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketNotificationConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketNotificationConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketNotificationConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketOwnershipControlsCommand, se_GetBucketOwnershipControlsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketOwnershipControlsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketOwnershipControlsCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketOwnershipControlsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketPolicyCommand, se_GetBucketPolicyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketPolicyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketPolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketPolicyCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketPolicyCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketPolicyStatusCommand, se_GetBucketPolicyStatusCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketPolicyStatusCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketPolicyStatusCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketPolicyStatusCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketPolicyStatusCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketPolicyStatusCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketReplicationCommand, se_GetBucketReplicationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketReplicationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketReplicationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketReplicationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketReplicationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketRequestPaymentCommand, se_GetBucketRequestPaymentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketRequestPaymentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketRequestPaymentCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketRequestPaymentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketRequestPaymentCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketRequestPaymentCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketTaggingCommand, se_GetBucketTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketVersioningCommand, se_GetBucketVersioningCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketVersioningCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketVersioningCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketVersioningCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketVersioningCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketVersioningCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetBucketWebsiteCommand, se_GetBucketWebsiteCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketWebsiteCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketWebsiteCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketWebsiteCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketWebsiteCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetObjectAclCommand, se_GetObjectAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectAclCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectAclCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { GetObjectAttributesRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetObjectAttributesCommand, se_GetObjectAttributesCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectAttributesCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectAttributesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectAttributesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: GetObjectAttributesRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectAttributesCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectAttributesCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { GetObjectOutputFilterSensitiveLog, GetObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetObjectCommand, se_GetObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestChecksumRequired: false,\n requestValidationModeMember: \"ChecksumMode\",\n responseAlgorithms: [\"CRC32\", \"CRC32C\", \"SHA256\", \"SHA1\"],\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: GetObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: GetObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetObjectLegalHoldCommand, se_GetObjectLegalHoldCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectLegalHoldCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectLegalHoldCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectLegalHoldCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectLegalHoldCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectLegalHoldCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetObjectLockConfigurationCommand, se_GetObjectLockConfigurationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectLockConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectLockConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectLockConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectLockConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectLockConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetObjectRetentionCommand, se_GetObjectRetentionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectRetentionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectRetentionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectRetentionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectRetentionCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectRetentionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetObjectTaggingCommand, se_GetObjectTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { GetObjectTorrentOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetObjectTorrentCommand, se_GetObjectTorrentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectTorrentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectTorrentCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectTorrentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: GetObjectTorrentOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectTorrentCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectTorrentCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_GetPublicAccessBlockCommand, se_GetPublicAccessBlockCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetPublicAccessBlockCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetPublicAccessBlockCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetPublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetPublicAccessBlockCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetPublicAccessBlockCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_HeadBucketCommand, se_HeadBucketCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class HeadBucketCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, HeadBucketCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"HeadBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_HeadBucketCommand(input, context);\n }\n deserialize(output, context) {\n return de_HeadBucketCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { HeadObjectOutputFilterSensitiveLog, HeadObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_HeadObjectCommand, se_HeadObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class HeadObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, HeadObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"HeadObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: HeadObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: HeadObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_HeadObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_HeadObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListBucketAnalyticsConfigurationsCommand, se_ListBucketAnalyticsConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketAnalyticsConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketAnalyticsConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketAnalyticsConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketAnalyticsConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketAnalyticsConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListBucketIntelligentTieringConfigurationsCommand, se_ListBucketIntelligentTieringConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketIntelligentTieringConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketIntelligentTieringConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketIntelligentTieringConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketIntelligentTieringConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketIntelligentTieringConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { ListBucketInventoryConfigurationsOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_ListBucketInventoryConfigurationsCommand, se_ListBucketInventoryConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketInventoryConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketInventoryConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketInventoryConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: ListBucketInventoryConfigurationsOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketInventoryConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketInventoryConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListBucketMetricsConfigurationsCommand, se_ListBucketMetricsConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketMetricsConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketMetricsConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketMetricsConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketMetricsConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketMetricsConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListBucketsCommand, se_ListBucketsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListMultipartUploadsCommand, se_ListMultipartUploadsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListMultipartUploadsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListMultipartUploadsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListMultipartUploadsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListMultipartUploadsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListMultipartUploadsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListObjectVersionsCommand, se_ListObjectVersionsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListObjectVersionsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListObjectVersionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectVersionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListObjectVersionsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListObjectVersionsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListObjectsCommand, se_ListObjectsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListObjectsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListObjectsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListObjectsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListObjectsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_ListObjectsV2Command, se_ListObjectsV2Command } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListObjectsV2Command extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListObjectsV2Command.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectsV2Command\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListObjectsV2Command(input, context);\n }\n deserialize(output, context) {\n return de_ListObjectsV2Command(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { ListPartsRequestFilterSensitiveLog } from \"../models/models_0\";\nimport { de_ListPartsCommand, se_ListPartsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListPartsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListPartsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListPartsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: ListPartsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListPartsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListPartsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketAccelerateConfigurationCommand, se_PutBucketAccelerateConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketAccelerateConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketAccelerateConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAccelerateConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketAccelerateConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketAccelerateConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketAclCommand, se_PutBucketAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketAclCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketAclCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketAnalyticsConfigurationCommand, se_PutBucketAnalyticsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketAnalyticsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketAnalyticsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketAnalyticsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketCorsCommand, se_PutBucketCorsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketCorsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketCorsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketCorsCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketCorsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { PutBucketEncryptionRequestFilterSensitiveLog } from \"../models/models_0\";\nimport { de_PutBucketEncryptionCommand, se_PutBucketEncryptionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketEncryptionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketEncryptionCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: PutBucketEncryptionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketEncryptionCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketEncryptionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketIntelligentTieringConfigurationCommand, se_PutBucketIntelligentTieringConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketIntelligentTieringConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketIntelligentTieringConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketIntelligentTieringConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { PutBucketInventoryConfigurationRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_PutBucketInventoryConfigurationCommand, se_PutBucketInventoryConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketInventoryConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: PutBucketInventoryConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketInventoryConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketInventoryConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketLifecycleConfigurationCommand, se_PutBucketLifecycleConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketLifecycleConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketLifecycleConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketLifecycleConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketLifecycleConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketLifecycleConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketLoggingCommand, se_PutBucketLoggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketLoggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketLoggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketLoggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketLoggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketLoggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketMetricsConfigurationCommand, se_PutBucketMetricsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketMetricsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketMetricsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketMetricsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketNotificationConfigurationCommand, se_PutBucketNotificationConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketNotificationConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketNotificationConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketNotificationConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketNotificationConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketNotificationConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketOwnershipControlsCommand, se_PutBucketOwnershipControlsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketOwnershipControlsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, { input: this.input, requestChecksumRequired: true }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketOwnershipControlsCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketOwnershipControlsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketPolicyCommand, se_PutBucketPolicyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketPolicyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketPolicyCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketPolicyCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketPolicyCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketReplicationCommand, se_PutBucketReplicationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketReplicationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketReplicationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketReplicationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketReplicationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketRequestPaymentCommand, se_PutBucketRequestPaymentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketRequestPaymentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketRequestPaymentCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketRequestPaymentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketRequestPaymentCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketRequestPaymentCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketTaggingCommand, se_PutBucketTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketTaggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketVersioningCommand, se_PutBucketVersioningCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketVersioningCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketVersioningCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketVersioningCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketVersioningCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketVersioningCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutBucketWebsiteCommand, se_PutBucketWebsiteCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketWebsiteCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketWebsiteCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketWebsiteCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketWebsiteCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutObjectAclCommand, se_PutObjectAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectAclCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectAclCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getCheckContentLengthHeaderPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { PutObjectOutputFilterSensitiveLog, PutObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_PutObjectCommand, se_PutObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getCheckContentLengthHeaderPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: PutObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: PutObjectOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutObjectLegalHoldCommand, se_PutObjectLegalHoldCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectLegalHoldCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectLegalHoldCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectLegalHoldCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectLegalHoldCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectLegalHoldCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutObjectLockConfigurationCommand, se_PutObjectLockConfigurationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectLockConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectLockConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectLockConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectLockConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectLockConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutObjectRetentionCommand, se_PutObjectRetentionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectRetentionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectRetentionCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectRetentionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectRetentionCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectRetentionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutObjectTaggingCommand, se_PutObjectTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectTaggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { de_PutPublicAccessBlockCommand, se_PutPublicAccessBlockCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutPublicAccessBlockCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutPublicAccessBlockCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutPublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutPublicAccessBlockCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutPublicAccessBlockCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { RestoreObjectRequestFilterSensitiveLog } from \"../models/models_1\";\nimport { de_RestoreObjectCommand, se_RestoreObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class RestoreObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, RestoreObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"RestoreObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: RestoreObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_RestoreObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_RestoreObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { SelectObjectContentOutputFilterSensitiveLog, SelectObjectContentRequestFilterSensitiveLog, } from \"../models/models_1\";\nimport { de_SelectObjectContentCommand, se_SelectObjectContentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class SelectObjectContentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, SelectObjectContentCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"SelectObjectContentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: SelectObjectContentRequestFilterSensitiveLog,\n outputFilterSensitiveLog: SelectObjectContentOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_SelectObjectContentCommand(input, context);\n }\n deserialize(output, context) {\n return de_SelectObjectContentCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { UploadPartOutputFilterSensitiveLog, UploadPartRequestFilterSensitiveLog, } from \"../models/models_1\";\nimport { de_UploadPartCommand, se_UploadPartCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class UploadPartCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, UploadPartCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"UploadPartCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: UploadPartRequestFilterSensitiveLog,\n outputFilterSensitiveLog: UploadPartOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_UploadPartCommand(input, context);\n }\n deserialize(output, context) {\n return de_UploadPartCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { UploadPartCopyOutputFilterSensitiveLog, UploadPartCopyRequestFilterSensitiveLog, } from \"../models/models_1\";\nimport { de_UploadPartCopyCommand, se_UploadPartCopyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class UploadPartCopyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, UploadPartCopyCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"UploadPartCopyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: UploadPartCopyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: UploadPartCopyOutputFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_UploadPartCopyCommand(input, context);\n }\n deserialize(output, context) {\n return de_UploadPartCopyCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@aws-sdk/middleware-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { WriteGetObjectResponseRequestFilterSensitiveLog } from \"../models/models_1\";\nimport { de_WriteGetObjectResponseCommand, se_WriteGetObjectResponseCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class WriteGetObjectResponseCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseObjectLambdaEndpoint: { type: \"staticContextParams\", value: true },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, WriteGetObjectResponseCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"WriteGetObjectResponseCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: WriteGetObjectResponseRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_WriteGetObjectResponseCommand(input, context);\n }\n deserialize(output, context) {\n return de_WriteGetObjectResponseCommand(output, context);\n }\n}\n","export * from \"./AbortMultipartUploadCommand\";\nexport * from \"./CompleteMultipartUploadCommand\";\nexport * from \"./CopyObjectCommand\";\nexport * from \"./CreateBucketCommand\";\nexport * from \"./CreateMultipartUploadCommand\";\nexport * from \"./DeleteBucketAnalyticsConfigurationCommand\";\nexport * from \"./DeleteBucketCommand\";\nexport * from \"./DeleteBucketCorsCommand\";\nexport * from \"./DeleteBucketEncryptionCommand\";\nexport * from \"./DeleteBucketIntelligentTieringConfigurationCommand\";\nexport * from \"./DeleteBucketInventoryConfigurationCommand\";\nexport * from \"./DeleteBucketLifecycleCommand\";\nexport * from \"./DeleteBucketMetricsConfigurationCommand\";\nexport * from \"./DeleteBucketOwnershipControlsCommand\";\nexport * from \"./DeleteBucketPolicyCommand\";\nexport * from \"./DeleteBucketReplicationCommand\";\nexport * from \"./DeleteBucketTaggingCommand\";\nexport * from \"./DeleteBucketWebsiteCommand\";\nexport * from \"./DeleteObjectCommand\";\nexport * from \"./DeleteObjectTaggingCommand\";\nexport * from \"./DeleteObjectsCommand\";\nexport * from \"./DeletePublicAccessBlockCommand\";\nexport * from \"./GetBucketAccelerateConfigurationCommand\";\nexport * from \"./GetBucketAclCommand\";\nexport * from \"./GetBucketAnalyticsConfigurationCommand\";\nexport * from \"./GetBucketCorsCommand\";\nexport * from \"./GetBucketEncryptionCommand\";\nexport * from \"./GetBucketIntelligentTieringConfigurationCommand\";\nexport * from \"./GetBucketInventoryConfigurationCommand\";\nexport * from \"./GetBucketLifecycleConfigurationCommand\";\nexport * from \"./GetBucketLocationCommand\";\nexport * from \"./GetBucketLoggingCommand\";\nexport * from \"./GetBucketMetricsConfigurationCommand\";\nexport * from \"./GetBucketNotificationConfigurationCommand\";\nexport * from \"./GetBucketOwnershipControlsCommand\";\nexport * from \"./GetBucketPolicyCommand\";\nexport * from \"./GetBucketPolicyStatusCommand\";\nexport * from \"./GetBucketReplicationCommand\";\nexport * from \"./GetBucketRequestPaymentCommand\";\nexport * from \"./GetBucketTaggingCommand\";\nexport * from \"./GetBucketVersioningCommand\";\nexport * from \"./GetBucketWebsiteCommand\";\nexport * from \"./GetObjectAclCommand\";\nexport * from \"./GetObjectAttributesCommand\";\nexport * from \"./GetObjectCommand\";\nexport * from \"./GetObjectLegalHoldCommand\";\nexport * from \"./GetObjectLockConfigurationCommand\";\nexport * from \"./GetObjectRetentionCommand\";\nexport * from \"./GetObjectTaggingCommand\";\nexport * from \"./GetObjectTorrentCommand\";\nexport * from \"./GetPublicAccessBlockCommand\";\nexport * from \"./HeadBucketCommand\";\nexport * from \"./HeadObjectCommand\";\nexport * from \"./ListBucketAnalyticsConfigurationsCommand\";\nexport * from \"./ListBucketIntelligentTieringConfigurationsCommand\";\nexport * from \"./ListBucketInventoryConfigurationsCommand\";\nexport * from \"./ListBucketMetricsConfigurationsCommand\";\nexport * from \"./ListBucketsCommand\";\nexport * from \"./ListMultipartUploadsCommand\";\nexport * from \"./ListObjectVersionsCommand\";\nexport * from \"./ListObjectsCommand\";\nexport * from \"./ListObjectsV2Command\";\nexport * from \"./ListPartsCommand\";\nexport * from \"./PutBucketAccelerateConfigurationCommand\";\nexport * from \"./PutBucketAclCommand\";\nexport * from \"./PutBucketAnalyticsConfigurationCommand\";\nexport * from \"./PutBucketCorsCommand\";\nexport * from \"./PutBucketEncryptionCommand\";\nexport * from \"./PutBucketIntelligentTieringConfigurationCommand\";\nexport * from \"./PutBucketInventoryConfigurationCommand\";\nexport * from \"./PutBucketLifecycleConfigurationCommand\";\nexport * from \"./PutBucketLoggingCommand\";\nexport * from \"./PutBucketMetricsConfigurationCommand\";\nexport * from \"./PutBucketNotificationConfigurationCommand\";\nexport * from \"./PutBucketOwnershipControlsCommand\";\nexport * from \"./PutBucketPolicyCommand\";\nexport * from \"./PutBucketReplicationCommand\";\nexport * from \"./PutBucketRequestPaymentCommand\";\nexport * from \"./PutBucketTaggingCommand\";\nexport * from \"./PutBucketVersioningCommand\";\nexport * from \"./PutBucketWebsiteCommand\";\nexport * from \"./PutObjectAclCommand\";\nexport * from \"./PutObjectCommand\";\nexport * from \"./PutObjectLegalHoldCommand\";\nexport * from \"./PutObjectLockConfigurationCommand\";\nexport * from \"./PutObjectRetentionCommand\";\nexport * from \"./PutObjectTaggingCommand\";\nexport * from \"./PutPublicAccessBlockCommand\";\nexport * from \"./RestoreObjectCommand\";\nexport * from \"./SelectObjectContentCommand\";\nexport * from \"./UploadPartCommand\";\nexport * from \"./UploadPartCopyCommand\";\nexport * from \"./WriteGetObjectResponseCommand\";\n","export const resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n defaultSigningName: \"s3\",\n };\n};\n","import { resolveEndpoint } from \"@aws-sdk/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n return resolveEndpoint(ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\n","const bV = \"required\", bW = \"type\", bX = \"rules\", bY = \"conditions\", bZ = \"fn\", ca = \"argv\", cb = \"ref\", cc = \"assign\", cd = \"url\", ce = \"properties\", cf = \"authSchemes\", cg = \"disableDoubleEncoding\", ch = \"signingName\", ci = \"signingRegion\", cj = \"headers\";\nconst a = false, b = true, c = \"tree\", d = \"isSet\", e = \"substring\", f = \"hardwareType\", g = \"regionPrefix\", h = \"abbaSuffix\", i = \"outpostId\", j = \"aws.partition\", k = \"stringEquals\", l = \"isValidHostLabel\", m = \"not\", n = \"error\", o = \"parseURL\", p = \"s3-outposts\", q = \"endpoint\", r = \"booleanEquals\", s = \"aws.parseArn\", t = \"s3\", u = \"aws.isVirtualHostableS3Bucket\", v = \"getAttr\", w = \"name\", x = \"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\", y = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", z = \"bucketArn\", A = \"arnType\", B = \"\", C = \"s3-object-lambda\", D = \"accesspoint\", E = \"accessPointName\", F = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", G = \"mrapPartition\", H = \"outpostType\", I = \"arnPrefix\", J = \"{url#scheme}://{url#authority}{url#path}\", K = \"https://s3.{partitionResult#dnsSuffix}\", L = { [bV]: false, [bW]: \"String\" }, M = { [bV]: true, \"default\": false, [bW]: \"Boolean\" }, N = { [bV]: false, [bW]: \"Boolean\" }, O = { [bZ]: d, [ca]: [{ [cb]: \"Bucket\" }] }, P = { [cb]: \"Bucket\" }, Q = { [cb]: f }, R = { [bY]: [{ [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [cb]: \"Endpoint\" }] }] }], [n]: \"Expected a endpoint to be specified but no endpoint was found\", [bW]: n }, S = { [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [cb]: \"Endpoint\" }] }] }, T = { [bZ]: d, [ca]: [{ [cb]: \"Endpoint\" }] }, U = { [bZ]: o, [ca]: [{ [cb]: \"Endpoint\" }], [cc]: \"url\" }, V = { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: p, [ci]: \"{Region}\" }] }, W = {}, X = { [cb]: \"ForcePathStyle\" }, Y = { [bY]: [{ [bZ]: \"uriEncode\", [ca]: [P], [cc]: \"uri_encoded_bucket\" }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, T], [n]: \"Cannot set dual-stack in combination with a custom endpoint.\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: j, [ca]: [{ [cb]: \"Region\" }], [cc]: \"partitionResult\" }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"Accelerate\" }, false] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [q]: { [cd]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"us-east-1\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }, { [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, T, U, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"us-east-1\"] }], [q]: { [cd]: \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }, { [q]: { [cd]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }] }, { [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, S, { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }], [q]: { [cd]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, [cj]: {} }, [bW]: q }] }] }, { [n]: \"Path-style addressing cannot be used with S3 Accelerate\", [bW]: n }] }] }, { [n]: \"A valid partition could not be determined\", [bW]: n }] }] }, Z = { [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, true] }, aa = { [bZ]: r, [ca]: [{ [cb]: \"Accelerate\" }, false] }, ab = { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, true] }, ac = { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }] }, ad = { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, true] }, ae = { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{Region}\" }] }, af = { [bZ]: r, [ca]: [{ [cb]: \"UseGlobalEndpoint\" }, false] }, ag = { [bZ]: r, [ca]: [{ [cb]: \"UseDualStack\" }, false] }, ah = { [bZ]: r, [ca]: [{ [cb]: \"UseFIPS\" }, false] }, ai = { [n]: \"A valid partition could not be determined\", [bW]: n }, aj = { [bY]: [ab, { [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"partitionResult\" }, w] }, \"aws-cn\"] }], [n]: \"Partition does not support FIPS\", [bW]: n }, ak = { [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"partitionResult\" }, w] }, \"aws-cn\"] }, al = { [bZ]: r, [ca]: [{ [cb]: \"Accelerate\" }, true] }, am = { [bY]: [Z, ab, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, an = { [cd]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, ao = { [bY]: [ag, ab, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, ap = { [cd]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, aq = { [bY]: [Z, ah, al, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, ar = { [cd]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, as = { [bY]: [Z, ah, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, at = { [cd]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, au = { [bY]: [ag, ah, aa, T, U, { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"url\" }, \"isIp\"] }, true] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, av = { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: \"url\" }, \"isIp\"] }, true] }, aw = { [cb]: \"url\" }, ax = { [bY]: [ag, ah, aa, T, U, { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [aw, \"isIp\"] }, false] }, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, ay = { [bZ]: r, [ca]: [{ [bZ]: v, [ca]: [aw, \"isIp\"] }, false] }, az = { [cd]: \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", [ce]: ae, [cj]: {} }, aA = { [cd]: \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", [ce]: ae, [cj]: {} }, aB = { [q]: aA, [bW]: q }, aC = { [bY]: [ag, ah, al, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, aD = { [cd]: \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, aE = { [bY]: [ag, ah, aa, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: y, [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, aF = { [cd]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, aG = { [n]: \"Invalid region: region was not a valid DNS name.\", [bW]: n }, aH = { [cb]: z }, aI = { [cb]: A }, aJ = { [bZ]: v, [ca]: [aH, \"service\"] }, aK = { [cb]: E }, aL = { [bY]: [Z], [n]: \"S3 Object Lambda does not support Dual-stack\", [bW]: n }, aM = { [bY]: [al], [n]: \"S3 Object Lambda does not support S3 Accelerate\", [bW]: n }, aN = { [bY]: [{ [bZ]: d, [ca]: [{ [cb]: \"DisableAccessPoints\" }] }, { [bZ]: r, [ca]: [{ [cb]: \"DisableAccessPoints\" }, true] }], [n]: \"Access points are not supported for this operation\", [bW]: n }, aO = { [bY]: [{ [bZ]: d, [ca]: [{ [cb]: \"UseArnRegion\" }] }, { [bZ]: r, [ca]: [{ [cb]: \"UseArnRegion\" }, false] }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }, \"{Region}\"] }] }], [n]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [bW]: n }, aP = { [bZ]: v, [ca]: [{ [cb]: \"bucketPartition\" }, w] }, aQ = { [bZ]: v, [ca]: [aH, \"accountId\"] }, aR = { [bY]: [ab, { [bZ]: k, [ca]: [aP, \"aws-cn\"] }], [n]: \"Partition does not support FIPS\", [bW]: n }, aS = { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: C, [ci]: \"{bucketArn#region}\" }] }, aT = { [n]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [bW]: n }, aU = { [n]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [bW]: n }, aV = { [n]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [bW]: n }, aW = { [n]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [bW]: n }, aX = { [n]: \"Could not load partition for ARN region `{bucketArn#region}`\", [bW]: n }, aY = { [n]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [bW]: n }, aZ = { [n]: \"Invalid ARN: bucket ARN is missing a region\", [bW]: n }, ba = { [n]: \"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\", [bW]: n }, bb = { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"{bucketArn#region}\" }] }, bc = { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: p, [ci]: \"{bucketArn#region}\" }] }, bd = { [cb]: \"UseObjectLambdaEndpoint\" }, be = { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: C, [ci]: \"{Region}\" }] }, bf = { [bY]: [ab, Z, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, bg = { [q]: { [cd]: J, [ce]: ae, [cj]: {} }, [bW]: q }, bh = { [cd]: J, [ce]: ae, [cj]: {} }, bi = { [bY]: [ab, Z, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, bj = { [cd]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bk = { [bY]: [ab, ag, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, bl = { [bY]: [ab, ag, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, bm = { [cd]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bn = { [bY]: [ah, Z, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, bo = { [bY]: [ah, Z, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, bp = { [cd]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bq = { [bY]: [ah, ag, T, U, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: J, [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, br = { [bY]: [ah, ag, S, { [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"aws-global\"] }], [q]: { [cd]: K, [ce]: { [cf]: [{ [cg]: true, [w]: \"sigv4\", [ch]: t, [ci]: \"us-east-1\" }] }, [cj]: {} }, [bW]: q }, bs = { [cd]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [ce]: ae, [cj]: {} }, bt = [{ [cb]: \"Region\" }], bu = [P], bv = [{ [bZ]: l, [ca]: [{ [cb]: i }, false] }], bw = [{ [bZ]: k, [ca]: [{ [cb]: g }, \"beta\"] }], bx = [{ [cb]: \"Endpoint\" }], by = [T, U], bz = [O], bA = [{ [bZ]: s, [ca]: [P] }], bB = [Z, T], bC = [{ [bZ]: j, [ca]: bt, [cc]: \"partitionResult\" }], bD = [{ [bZ]: k, [ca]: [{ [cb]: \"Region\" }, \"us-east-1\"] }], bE = [{ [bZ]: l, [ca]: [{ [cb]: \"Region\" }, false] }], bF = [{ [bZ]: k, [ca]: [aI, D] }], bG = [{ [bZ]: v, [ca]: [aH, \"resourceId[1]\"], [cc]: E }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [aK, B] }] }], bH = [aH, \"resourceId[1]\"], bI = [Z], bJ = [al], bK = [{ [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }, B] }] }], bL = [{ [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [bZ]: v, [ca]: [aH, \"resourceId[2]\"] }] }] }], bM = [aH, \"resourceId[2]\"], bN = [{ [bZ]: j, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }], [cc]: \"bucketPartition\" }], bO = [{ [bZ]: k, [ca]: [aP, { [bZ]: v, [ca]: [{ [cb]: \"partitionResult\" }, w] }] }], bP = [{ [bZ]: l, [ca]: [{ [bZ]: v, [ca]: [aH, \"region\"] }, true] }], bQ = [{ [bZ]: l, [ca]: [aQ, false] }], bR = [{ [bZ]: l, [ca]: [aK, false] }], bS = [ab], bT = [{ [bZ]: l, [ca]: [{ [cb]: \"Region\" }, true] }], bU = [bg];\nconst _data = { version: \"1.0\", parameters: { Bucket: L, Region: L, UseFIPS: M, UseDualStack: M, Endpoint: L, ForcePathStyle: N, Accelerate: M, UseGlobalEndpoint: M, UseObjectLambdaEndpoint: N, DisableAccessPoints: N, DisableMultiRegionAccessPoints: M, UseArnRegion: N }, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: d, [ca]: bt }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [O, { [bZ]: e, [ca]: [P, 49, 50, b], [cc]: f }, { [bZ]: e, [ca]: [P, 8, 12, b], [cc]: g }, { [bZ]: e, [ca]: [P, 0, 7, b], [cc]: h }, { [bZ]: e, [ca]: [P, 32, 49, b], [cc]: i }, { [bZ]: j, [ca]: bt, [cc]: \"regionPartition\" }, { [bZ]: k, [ca]: [{ [cb]: h }, \"--op-s3\"] }], [bW]: c, [bX]: [{ [bY]: bv, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [Q, \"e\"] }], [bW]: c, [bX]: [{ [bY]: bw, [bW]: c, [bX]: [R, { [bY]: by, endpoint: { [cd]: \"https://{Bucket}.ec2.{url#authority}\", [ce]: V, [cj]: W }, [bW]: q }] }, { endpoint: { [cd]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [ce]: V, [cj]: W }, [bW]: q }] }, { [bY]: [{ [bZ]: k, [ca]: [Q, \"o\"] }], [bW]: c, [bX]: [{ [bY]: bw, [bW]: c, [bX]: [R, { [bY]: by, endpoint: { [cd]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [ce]: V, [cj]: W }, [bW]: q }] }, { endpoint: { [cd]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [ce]: V, [cj]: W }, [bW]: q }] }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [bW]: n }] }] }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [bW]: n }] }, { [bY]: bz, [bW]: c, [bX]: [{ [bY]: [T, { [bZ]: m, [ca]: [{ [bZ]: d, [ca]: [{ [bZ]: o, [ca]: bx }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: d, [ca]: [X] }, { [bZ]: r, [ca]: [X, b] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bA, error: \"Path-style addressing cannot be used with ARN buckets\", [bW]: n }, Y] }] }, { [bY]: [{ [bZ]: u, [ca]: [P, a] }], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bE, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aj, { [bW]: c, [bX]: [{ [bY]: [al, ab], error: \"Accelerate cannot be used with FIPS\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [al, ak], error: \"S3 Accelerate cannot be used in this region\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [T, Z], error: x, [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [T, ab], error: x, [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [T, al], error: x, [bW]: n }, { [bW]: c, [bX]: [am, am, { [bY]: [Z, ab, aa, S, ac, ad], [bW]: c, [bX]: [{ endpoint: an, [bW]: q }] }, { [bY]: [Z, ab, aa, S, ac, af], endpoint: an, [bW]: q }, ao, ao, { [bY]: [ag, ab, aa, S, ac, ad], [bW]: c, [bX]: [{ endpoint: ap, [bW]: q }] }, { [bY]: [ag, ab, aa, S, ac, af], endpoint: ap, [bW]: q }, aq, aq, { [bY]: [Z, ah, al, S, ac, ad], [bW]: c, [bX]: [{ endpoint: ar, [bW]: q }] }, { [bY]: [Z, ah, al, S, ac, af], endpoint: ar, [bW]: q }, as, as, { [bY]: [Z, ah, aa, S, ac, ad], [bW]: c, [bX]: [{ endpoint: at, [bW]: q }] }, { [bY]: [Z, ah, aa, S, ac, af], endpoint: at, [bW]: q }, au, ax, au, ax, { [bY]: [ag, ah, aa, T, U, av, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: az, [bW]: q }, { endpoint: az, [bW]: q }] }, { [bY]: [ag, ah, aa, T, U, ay, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: aA, [bW]: q }, aB] }, { [bY]: [ag, ah, aa, T, U, av, ac, af], endpoint: az, [bW]: q }, { [bY]: [ag, ah, aa, T, U, ay, ac, af], endpoint: aA, [bW]: q }, aC, aC, { [bY]: [ag, ah, al, S, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: aD, [bW]: q }, { endpoint: aD, [bW]: q }] }, { [bY]: [ag, ah, al, S, ac, af], endpoint: aD, [bW]: q }, aE, aE, { [bY]: [ag, ah, aa, S, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: { [cd]: y, [ce]: ae, [cj]: W }, [bW]: q }, { endpoint: aF, [bW]: q }] }, { [bY]: [ag, ah, aa, S, ac, af], endpoint: aF, [bW]: q }] }] }] }] }] }] }] }] }, aG] }] }, ai] }, { [bY]: [T, U, { [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [aw, \"scheme\"] }, \"http\"] }, { [bZ]: u, [ca]: [P, b] }, ah, ag, aa], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bE, [bW]: c, [bX]: [aB] }, aG] }] }, ai] }, { [bY]: [{ [bZ]: s, [ca]: bu, [cc]: z }], [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: [aH, \"resourceId[0]\"], [cc]: A }, { [bZ]: m, [ca]: [{ [bZ]: k, [ca]: [aI, B] }] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aJ, C] }], [bW]: c, [bX]: [{ [bY]: bF, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bG, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aL, { [bW]: c, [bX]: [aM, { [bW]: c, [bX]: [{ [bY]: bK, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aN, { [bW]: c, [bX]: [{ [bY]: bL, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aO, { [bW]: c, [bX]: [{ [bY]: bN, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bO, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bP, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aQ, B] }], error: \"Invalid ARN: Missing account id\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bQ, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bR, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aR, { [bW]: c, [bX]: [{ [bY]: by, endpoint: { [cd]: F, [ce]: aS, [cj]: W }, [bW]: q }, { [bY]: bS, endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: aS, [cj]: W }, [bW]: q }, { endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: aS, [cj]: W }, [bW]: q }] }] }] }, aT] }] }, aU] }] }] }, aV] }] }, aW] }] }, ai] }] }, aX] }] }] }, aY] }] }] }, aZ] }] }] }] }, ba] }] }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [bW]: n }] }, { [bY]: bF, [bW]: c, [bX]: [{ [bY]: bG, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bK, [bW]: c, [bX]: [{ [bY]: bF, [bW]: c, [bX]: [{ [bY]: bK, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aN, { [bW]: c, [bX]: [{ [bY]: bL, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aO, { [bW]: c, [bX]: [{ [bY]: bN, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aP, \"{partitionResult#name}\"] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bP, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [aJ, t] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bQ, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bR, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bJ, error: \"Access Points do not support S3 Accelerate\", [bW]: n }, { [bW]: c, [bX]: [aR, { [bW]: c, [bX]: [{ [bY]: bB, error: \"DualStack cannot be combined with a Host override (PrivateLink)\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [ab, Z], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ab, ag], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ah, Z], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ah, ag, T, U], endpoint: { [cd]: F, [ce]: bb, [cj]: W }, [bW]: q }, { [bY]: [ah, ag], endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bb, [cj]: W }, [bW]: q }] }] }] }] }] }, aT] }] }, aU] }] }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [bW]: n }] }] }, aV] }] }, aW] }] }, ai] }] }, aX] }] }] }, aY] }] }] }, aZ] }] }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: l, [ca]: [aK, b] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bI, error: \"S3 MRAP does not support dual-stack\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bS, error: \"S3 MRAP does not support FIPS\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bJ, error: \"S3 MRAP does not support S3 Accelerate\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: r, [ca]: [{ [cb]: \"DisableMultiRegionAccessPoints\" }, b] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: j, [ca]: bt, [cc]: G }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [bZ]: v, [ca]: [{ [cb]: G }, w] }, { [bZ]: v, [ca]: [aH, \"partition\"] }] }], [bW]: c, [bX]: [{ endpoint: { [cd]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [ce]: { [cf]: [{ [cg]: b, name: \"sigv4a\", [ch]: t, signingRegionSet: [\"*\"] }] }, [cj]: W }, [bW]: q }] }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [bW]: n }] }] }, { error: \"{Region} was not a valid region\", [bW]: n }] }] }] }] }] }] }, { error: \"Invalid Access Point Name\", [bW]: n }] }] }] }, ba] }, { [bY]: [{ [bZ]: k, [ca]: [aJ, p] }], [bW]: c, [bX]: [{ [bY]: bI, error: \"S3 Outposts does not support Dual-stack\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bS, error: \"S3 Outposts does not support FIPS\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: bJ, error: \"S3 Outposts does not support S3 Accelerate\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: d, [ca]: [{ [bZ]: v, [ca]: [aH, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [bW]: n }, { [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: bH, [cc]: i }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bv, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aO, { [bW]: c, [bX]: [{ [bY]: bN, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bO, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bP, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bQ, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: bM, [cc]: H }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: v, [ca]: [aH, \"resourceId[3]\"], [cc]: E }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: [{ [bZ]: k, [ca]: [{ [cb]: H }, D] }], [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: by, endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [ce]: bc, [cj]: W }, [bW]: q }, { endpoint: { [cd]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [ce]: bc, [cj]: W }, [bW]: q }] }] }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [bW]: n }] }] }, { error: \"Invalid ARN: expected an access point name\", [bW]: n }] }] }, { error: \"Invalid ARN: Expected a 4-component resource\", [bW]: n }] }] }, aU] }] }, aV] }] }, aW] }] }, ai] }] }, { error: \"Could not load partition for ARN region {bucketArn#region}\", [bW]: n }] }] }] }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [bW]: n }] }] }, { error: \"Invalid ARN: The Outpost Id was not set\", [bW]: n }] }] }] }] }] }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [bW]: n }] }] }, { error: \"Invalid ARN: No ARN type specified\", [bW]: n }] }, { [bY]: [{ [bZ]: e, [ca]: [P, 0, 4, a], [cc]: I }, { [bZ]: k, [ca]: [{ [cb]: I }, \"arn:\"] }, { [bZ]: m, [ca]: [{ [bZ]: d, [ca]: bA }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [bW]: n }, Y] }] }, { [bY]: [{ [bZ]: d, [ca]: [bd] }, { [bZ]: r, [ca]: [bd, b] }], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bT, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aL, { [bW]: c, [bX]: [aM, { [bW]: c, [bX]: [aj, { [bW]: c, [bX]: [{ [bY]: by, endpoint: { [cd]: J, [ce]: be, [cj]: W }, [bW]: q }, { [bY]: bS, endpoint: { [cd]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [ce]: be, [cj]: W }, [bW]: q }, { endpoint: { [cd]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [ce]: be, [cj]: W }, [bW]: q }] }] }] }] }] }, aG] }] }, ai] }, { [bY]: [{ [bZ]: m, [ca]: bz }], [bW]: c, [bX]: [{ [bY]: bC, [bW]: c, [bX]: [{ [bW]: c, [bX]: [{ [bY]: bT, [bW]: c, [bX]: [{ [bW]: c, [bX]: [aj, { [bW]: c, [bX]: [bf, bf, { [bY]: [ab, Z, T, U, ac, ad], [bW]: c, [bX]: bU }, { [bY]: [ab, Z, T, U, ac, af], endpoint: bh, [bW]: q }, bi, bi, { [bY]: [ab, Z, S, ac, ad], [bW]: c, [bX]: [{ endpoint: bj, [bW]: q }] }, { [bY]: [ab, Z, S, ac, af], endpoint: bj, [bW]: q }, bk, bk, { [bY]: [ab, ag, T, U, ac, ad], [bW]: c, [bX]: bU }, { [bY]: [ab, ag, T, U, ac, af], endpoint: bh, [bW]: q }, bl, bl, { [bY]: [ab, ag, S, ac, ad], [bW]: c, [bX]: [{ endpoint: bm, [bW]: q }] }, { [bY]: [ab, ag, S, ac, af], endpoint: bm, [bW]: q }, bn, bn, { [bY]: [ah, Z, T, U, ac, ad], [bW]: c, [bX]: bU }, { [bY]: [ah, Z, T, U, ac, af], endpoint: bh, [bW]: q }, bo, bo, { [bY]: [ah, Z, S, ac, ad], [bW]: c, [bX]: [{ endpoint: bp, [bW]: q }] }, { [bY]: [ah, Z, S, ac, af], endpoint: bp, [bW]: q }, bq, bq, { [bY]: [ah, ag, T, U, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: bh, [bW]: q }, bg] }, { [bY]: [ah, ag, T, U, ac, af], endpoint: bh, [bW]: q }, br, br, { [bY]: [ah, ag, S, ac, ad], [bW]: c, [bX]: [{ [bY]: bD, endpoint: { [cd]: K, [ce]: ae, [cj]: W }, [bW]: q }, { endpoint: bs, [bW]: q }] }, { [bY]: [ah, ag, S, ac, af], endpoint: bs, [bW]: q }] }] }] }, aG] }] }, ai] }] }] }, { error: \"A region must be set when sending requests to S3.\", [bW]: n }] }] };\nexport const ruleSet = _data;\n","export * from \"./S3Client\";\nexport * from \"./S3\";\nexport * from \"./commands\";\nexport * from \"./pagination\";\nexport * from \"./waiters\";\nexport * from \"./models\";\nexport { S3ServiceException } from \"./models/S3ServiceException\";\n","import { ServiceException as __ServiceException, } from \"@aws-sdk/smithy-client\";\nexport { __ServiceException };\nexport class S3ServiceException extends __ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, S3ServiceException.prototype);\n }\n}\n","export * from \"./models_0\";\nexport * from \"./models_1\";\n","import { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nimport { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport const RequestCharged = {\n requester: \"requester\",\n};\nexport const RequestPayer = {\n requester: \"requester\",\n};\nexport class NoSuchUpload extends __BaseException {\n constructor(opts) {\n super({\n name: \"NoSuchUpload\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchUpload\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchUpload.prototype);\n }\n}\nexport const BucketAccelerateStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\",\n};\nexport const Type = {\n AmazonCustomerByEmail: \"AmazonCustomerByEmail\",\n CanonicalUser: \"CanonicalUser\",\n Group: \"Group\",\n};\nexport const Permission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n READ_ACP: \"READ_ACP\",\n WRITE: \"WRITE\",\n WRITE_ACP: \"WRITE_ACP\",\n};\nexport const OwnerOverride = {\n Destination: \"Destination\",\n};\nexport const ServerSideEncryption = {\n AES256: \"AES256\",\n aws_kms: \"aws:kms\",\n aws_kms_dsse: \"aws:kms:dsse\",\n};\nexport const ObjectCannedACL = {\n authenticated_read: \"authenticated-read\",\n aws_exec_read: \"aws-exec-read\",\n bucket_owner_full_control: \"bucket-owner-full-control\",\n bucket_owner_read: \"bucket-owner-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\",\n};\nexport const ChecksumAlgorithm = {\n CRC32: \"CRC32\",\n CRC32C: \"CRC32C\",\n SHA1: \"SHA1\",\n SHA256: \"SHA256\",\n};\nexport const MetadataDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\",\n};\nexport const ObjectLockLegalHoldStatus = {\n OFF: \"OFF\",\n ON: \"ON\",\n};\nexport const ObjectLockMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\",\n};\nexport const StorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\",\n};\nexport const TaggingDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\",\n};\nexport class ObjectNotInActiveTierError extends __BaseException {\n constructor(opts) {\n super({\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ObjectNotInActiveTierError\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ObjectNotInActiveTierError.prototype);\n }\n}\nexport class BucketAlreadyExists extends __BaseException {\n constructor(opts) {\n super({\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"BucketAlreadyExists\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, BucketAlreadyExists.prototype);\n }\n}\nexport class BucketAlreadyOwnedByYou extends __BaseException {\n constructor(opts) {\n super({\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"BucketAlreadyOwnedByYou\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, BucketAlreadyOwnedByYou.prototype);\n }\n}\nexport const BucketCannedACL = {\n authenticated_read: \"authenticated-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\",\n};\nexport const BucketLocationConstraint = {\n EU: \"EU\",\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ca_central_1: \"ca-central-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n me_south_1: \"me-south-1\",\n sa_east_1: \"sa-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\",\n};\nexport const ObjectOwnership = {\n BucketOwnerEnforced: \"BucketOwnerEnforced\",\n BucketOwnerPreferred: \"BucketOwnerPreferred\",\n ObjectWriter: \"ObjectWriter\",\n};\nexport var AnalyticsFilter;\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nexport const AnalyticsS3ExportFileFormat = {\n CSV: \"CSV\",\n};\nexport const StorageClassAnalysisSchemaVersion = {\n V_1: \"V_1\",\n};\nexport const IntelligentTieringStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const IntelligentTieringAccessTier = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\",\n};\nexport const InventoryFormat = {\n CSV: \"CSV\",\n ORC: \"ORC\",\n Parquet: \"Parquet\",\n};\nexport const InventoryIncludedObjectVersions = {\n All: \"All\",\n Current: \"Current\",\n};\nexport const InventoryOptionalField = {\n BucketKeyStatus: \"BucketKeyStatus\",\n ChecksumAlgorithm: \"ChecksumAlgorithm\",\n ETag: \"ETag\",\n EncryptionStatus: \"EncryptionStatus\",\n IntelligentTieringAccessTier: \"IntelligentTieringAccessTier\",\n IsMultipartUploaded: \"IsMultipartUploaded\",\n LastModifiedDate: \"LastModifiedDate\",\n ObjectLockLegalHoldStatus: \"ObjectLockLegalHoldStatus\",\n ObjectLockMode: \"ObjectLockMode\",\n ObjectLockRetainUntilDate: \"ObjectLockRetainUntilDate\",\n ReplicationStatus: \"ReplicationStatus\",\n Size: \"Size\",\n StorageClass: \"StorageClass\",\n};\nexport const InventoryFrequency = {\n Daily: \"Daily\",\n Weekly: \"Weekly\",\n};\nexport var LifecycleRuleFilter;\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.ObjectSizeGreaterThan !== undefined)\n return visitor.ObjectSizeGreaterThan(value.ObjectSizeGreaterThan);\n if (value.ObjectSizeLessThan !== undefined)\n return visitor.ObjectSizeLessThan(value.ObjectSizeLessThan);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(LifecycleRuleFilter || (LifecycleRuleFilter = {}));\nexport const TransitionStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n STANDARD_IA: \"STANDARD_IA\",\n};\nexport const ExpirationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const BucketLogsPermission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n WRITE: \"WRITE\",\n};\nexport var MetricsFilter;\n(function (MetricsFilter) {\n MetricsFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.AccessPointArn !== undefined)\n return visitor.AccessPointArn(value.AccessPointArn);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(MetricsFilter || (MetricsFilter = {}));\nexport const Event = {\n s3_IntelligentTiering: \"s3:IntelligentTiering\",\n s3_LifecycleExpiration_: \"s3:LifecycleExpiration:*\",\n s3_LifecycleExpiration_Delete: \"s3:LifecycleExpiration:Delete\",\n s3_LifecycleExpiration_DeleteMarkerCreated: \"s3:LifecycleExpiration:DeleteMarkerCreated\",\n s3_LifecycleTransition: \"s3:LifecycleTransition\",\n s3_ObjectAcl_Put: \"s3:ObjectAcl:Put\",\n s3_ObjectCreated_: \"s3:ObjectCreated:*\",\n s3_ObjectCreated_CompleteMultipartUpload: \"s3:ObjectCreated:CompleteMultipartUpload\",\n s3_ObjectCreated_Copy: \"s3:ObjectCreated:Copy\",\n s3_ObjectCreated_Post: \"s3:ObjectCreated:Post\",\n s3_ObjectCreated_Put: \"s3:ObjectCreated:Put\",\n s3_ObjectRemoved_: \"s3:ObjectRemoved:*\",\n s3_ObjectRemoved_Delete: \"s3:ObjectRemoved:Delete\",\n s3_ObjectRemoved_DeleteMarkerCreated: \"s3:ObjectRemoved:DeleteMarkerCreated\",\n s3_ObjectRestore_: \"s3:ObjectRestore:*\",\n s3_ObjectRestore_Completed: \"s3:ObjectRestore:Completed\",\n s3_ObjectRestore_Delete: \"s3:ObjectRestore:Delete\",\n s3_ObjectRestore_Post: \"s3:ObjectRestore:Post\",\n s3_ObjectTagging_: \"s3:ObjectTagging:*\",\n s3_ObjectTagging_Delete: \"s3:ObjectTagging:Delete\",\n s3_ObjectTagging_Put: \"s3:ObjectTagging:Put\",\n s3_ReducedRedundancyLostObject: \"s3:ReducedRedundancyLostObject\",\n s3_Replication_: \"s3:Replication:*\",\n s3_Replication_OperationFailedReplication: \"s3:Replication:OperationFailedReplication\",\n s3_Replication_OperationMissedThreshold: \"s3:Replication:OperationMissedThreshold\",\n s3_Replication_OperationNotTracked: \"s3:Replication:OperationNotTracked\",\n s3_Replication_OperationReplicatedAfterThreshold: \"s3:Replication:OperationReplicatedAfterThreshold\",\n};\nexport const FilterRuleName = {\n prefix: \"prefix\",\n suffix: \"suffix\",\n};\nexport const DeleteMarkerReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const MetricsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const ReplicationTimeStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const ExistingObjectReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport var ReplicationRuleFilter;\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(ReplicationRuleFilter || (ReplicationRuleFilter = {}));\nexport const ReplicaModificationsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const SseKmsEncryptedObjectsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const ReplicationRuleStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const Payer = {\n BucketOwner: \"BucketOwner\",\n Requester: \"Requester\",\n};\nexport const MFADeleteStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const BucketVersioningStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\",\n};\nexport const Protocol = {\n http: \"http\",\n https: \"https\",\n};\nexport const ReplicationStatus = {\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n REPLICA: \"REPLICA\",\n};\nexport const ChecksumMode = {\n ENABLED: \"ENABLED\",\n};\nexport class InvalidObjectState extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidObjectState\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidObjectState\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidObjectState.prototype);\n this.StorageClass = opts.StorageClass;\n this.AccessTier = opts.AccessTier;\n }\n}\nexport class NoSuchKey extends __BaseException {\n constructor(opts) {\n super({\n name: \"NoSuchKey\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchKey\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchKey.prototype);\n }\n}\nexport const ObjectAttributes = {\n CHECKSUM: \"Checksum\",\n ETAG: \"ETag\",\n OBJECT_PARTS: \"ObjectParts\",\n OBJECT_SIZE: \"ObjectSize\",\n STORAGE_CLASS: \"StorageClass\",\n};\nexport const ObjectLockEnabled = {\n Enabled: \"Enabled\",\n};\nexport const ObjectLockRetentionMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\",\n};\nexport class NotFound extends __BaseException {\n constructor(opts) {\n super({\n name: \"NotFound\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NotFound\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NotFound.prototype);\n }\n}\nexport const ArchiveStatus = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\",\n};\nexport const EncodingType = {\n url: \"url\",\n};\nexport const ObjectStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\",\n};\nexport class NoSuchBucket extends __BaseException {\n constructor(opts) {\n super({\n name: \"NoSuchBucket\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchBucket\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchBucket.prototype);\n }\n}\nexport const ObjectVersionStorageClass = {\n STANDARD: \"STANDARD\",\n};\nexport const MFADelete = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const CompleteMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const CompleteMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const CopyObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const CopyObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }),\n});\nexport const CreateMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const CreateMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const ServerSideEncryptionByDefaultFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KMSMasterKeyID && { KMSMasterKeyID: SENSITIVE_STRING }),\n});\nexport const ServerSideEncryptionRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefaultFilterSensitiveLog(obj.ApplyServerSideEncryptionByDefault),\n }),\n});\nexport const ServerSideEncryptionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Rules && { Rules: obj.Rules.map((item) => ServerSideEncryptionRuleFilterSensitiveLog(item)) }),\n});\nexport const GetBucketEncryptionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }),\n});\nexport const SSEKMSFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KeyId && { KeyId: SENSITIVE_STRING }),\n});\nexport const InventoryEncryptionFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMS && { SSEKMS: SSEKMSFilterSensitiveLog(obj.SSEKMS) }),\n});\nexport const InventoryS3BucketDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Encryption && { Encryption: InventoryEncryptionFilterSensitiveLog(obj.Encryption) }),\n});\nexport const InventoryDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestinationFilterSensitiveLog(obj.S3BucketDestination),\n }),\n});\nexport const InventoryConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Destination && { Destination: InventoryDestinationFilterSensitiveLog(obj.Destination) }),\n});\nexport const GetBucketInventoryConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration),\n }),\n});\nexport const GetObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const GetObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const GetObjectAttributesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const GetObjectTorrentOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexport const HeadObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const HeadObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const ListBucketInventoryConfigurationsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map((item) => InventoryConfigurationFilterSensitiveLog(item)),\n }),\n});\nexport const ListPartsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const PutBucketEncryptionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }),\n});\nexport const PutBucketInventoryConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration),\n }),\n});\nexport const PutObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const PutObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\n","import { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nimport { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport class ObjectAlreadyInActiveTierError extends __BaseException {\n constructor(opts) {\n super({\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ObjectAlreadyInActiveTierError\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype);\n }\n}\nexport const Tier = {\n Bulk: \"Bulk\",\n Expedited: \"Expedited\",\n Standard: \"Standard\",\n};\nexport const ExpressionType = {\n SQL: \"SQL\",\n};\nexport const CompressionType = {\n BZIP2: \"BZIP2\",\n GZIP: \"GZIP\",\n NONE: \"NONE\",\n};\nexport const FileHeaderInfo = {\n IGNORE: \"IGNORE\",\n NONE: \"NONE\",\n USE: \"USE\",\n};\nexport const JSONType = {\n DOCUMENT: \"DOCUMENT\",\n LINES: \"LINES\",\n};\nexport const QuoteFields = {\n ALWAYS: \"ALWAYS\",\n ASNEEDED: \"ASNEEDED\",\n};\nexport const RestoreRequestType = {\n SELECT: \"SELECT\",\n};\nexport var SelectObjectContentEventStream;\n(function (SelectObjectContentEventStream) {\n SelectObjectContentEventStream.visit = (value, visitor) => {\n if (value.Records !== undefined)\n return visitor.Records(value.Records);\n if (value.Stats !== undefined)\n return visitor.Stats(value.Stats);\n if (value.Progress !== undefined)\n return visitor.Progress(value.Progress);\n if (value.Cont !== undefined)\n return visitor.Cont(value.Cont);\n if (value.End !== undefined)\n return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nexport const EncryptionFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KMSKeyId && { KMSKeyId: SENSITIVE_STRING }),\n});\nexport const S3LocationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Encryption && { Encryption: EncryptionFilterSensitiveLog(obj.Encryption) }),\n});\nexport const OutputLocationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.S3 && { S3: S3LocationFilterSensitiveLog(obj.S3) }),\n});\nexport const RestoreRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.OutputLocation && { OutputLocation: OutputLocationFilterSensitiveLog(obj.OutputLocation) }),\n});\nexport const RestoreObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.RestoreRequest && { RestoreRequest: RestoreRequestFilterSensitiveLog(obj.RestoreRequest) }),\n});\nexport const SelectObjectContentEventStreamFilterSensitiveLog = (obj) => {\n if (obj.Records !== undefined)\n return { Records: obj.Records };\n if (obj.Stats !== undefined)\n return { Stats: obj.Stats };\n if (obj.Progress !== undefined)\n return { Progress: obj.Progress };\n if (obj.Cont !== undefined)\n return { Cont: obj.Cont };\n if (obj.End !== undefined)\n return { End: obj.End };\n if (obj.$unknown !== undefined)\n return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexport const SelectObjectContentOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Payload && { Payload: \"STREAMING_CONTENT\" }),\n});\nexport const SelectObjectContentRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const UploadPartOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const UploadPartRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const UploadPartCopyOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const UploadPartCopyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }),\n});\nexport const WriteGetObjectResponseRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\n","import { ListObjectsV2Command, } from \"../commands/ListObjectsV2Command\";\nimport { S3Client } from \"../S3Client\";\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListObjectsV2Command(input), ...args);\n};\nexport async function* paginateListObjectsV2(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.ContinuationToken = token;\n input[\"MaxKeys\"] = config.pageSize;\n if (config.client instanceof S3Client) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected S3 | S3Client\");\n }\n yield page;\n const prevToken = token;\n token = page.NextContinuationToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\n","import { ListPartsCommand } from \"../commands/ListPartsCommand\";\nimport { S3Client } from \"../S3Client\";\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListPartsCommand(input), ...args);\n};\nexport async function* paginateListParts(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.PartNumberMarker = token;\n input[\"MaxParts\"] = config.pageSize;\n if (config.client instanceof S3Client) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected S3 | S3Client\");\n }\n yield page;\n const prevToken = token;\n token = page.NextPartNumberMarker;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\n","export * from \"./Interfaces\";\nexport * from \"./ListObjectsV2Paginator\";\nexport * from \"./ListPartsPaginator\";\n","import { collectBody, dateToUtcString as __dateToUtcString, decorateServiceException as __decorateServiceException, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, expectUnion as __expectUnion, getArrayIfSingleItem as __getArrayIfSingleItem, getValueFromTextNode as __getValueFromTextNode, map, parseBoolean as __parseBoolean, parseRfc3339DateTimeWithOffset as __parseRfc3339DateTimeWithOffset, parseRfc7231DateTime as __parseRfc7231DateTime, resolvedPath as __resolvedPath, strictParseInt32 as __strictParseInt32, strictParseLong as __strictParseLong, withBaseException, } from \"@aws-sdk/smithy-client\";\nimport { XmlNode as __XmlNode, XmlText as __XmlText } from \"@aws-sdk/xml-builder\";\nimport { HttpRequest as __HttpRequest, isValidHostname as __isValidHostname, } from \"@smithy/protocol-http\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { AnalyticsFilter, BucketAlreadyExists, BucketAlreadyOwnedByYou, InvalidObjectState, LifecycleRuleFilter, MetricsFilter, NoSuchBucket, NoSuchKey, NoSuchUpload, NotFound, ObjectNotInActiveTierError, ReplicationRuleFilter, } from \"../models/models_0\";\nimport { ObjectAlreadyInActiveTierError, } from \"../models/models_1\";\nimport { S3ServiceException as __BaseException } from \"../models/S3ServiceException\";\nexport const se_AbortMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"AbortMultipartUpload\"],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_CompleteMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"CompleteMultipartUpload\"],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n if (input.MultipartUpload !== undefined) {\n body = se_CompletedMultipartUpload(input.MultipartUpload, context);\n }\n let contents;\n if (input.MultipartUpload !== undefined) {\n contents = se_CompletedMultipartUpload(input.MultipartUpload, context);\n contents = contents.withName(\"CompleteMultipartUpload\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_CopyObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"x-amz-checksum-algorithm\": input.ChecksumAlgorithm,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-type\": input.ContentType,\n \"x-amz-copy-source\": input.CopySource,\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n \"x-amz-copy-source-if-modified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfModifiedSince),\n () => __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n ],\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n \"x-amz-copy-source-if-unmodified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince),\n () => __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n ],\n expires: [() => isSerializableHeaderValue(input.Expires), () => __dateToUtcString(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-metadata-directive\": input.MetadataDirective,\n \"x-amz-tagging-directive\": input.TaggingDirective,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"CopyObject\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_CreateBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-bucket-object-lock-enabled\": [\n () => isSerializableHeaderValue(input.ObjectLockEnabledForBucket),\n () => input.ObjectLockEnabledForBucket.toString(),\n ],\n \"x-amz-object-ownership\": input.ObjectOwnership,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n if (input.CreateBucketConfiguration !== undefined) {\n body = se_CreateBucketConfiguration(input.CreateBucketConfiguration, context);\n }\n let contents;\n if (input.CreateBucketConfiguration !== undefined) {\n contents = se_CreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_CreateMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-type\": input.ContentType,\n expires: [() => isSerializableHeaderValue(input.Expires), () => __dateToUtcString(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-algorithm\": input.ChecksumAlgorithm,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n uploads: [, \"\"],\n \"x-id\": [, \"CreateMultipartUpload\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_DeleteBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketLifecycleCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-mfa\": input.MFA,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"DeleteObject\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteObjectsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-mfa\": input.MFA,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n delete: [, \"\"],\n \"x-id\": [, \"DeleteObjects\"],\n });\n let body;\n if (input.Delete !== undefined) {\n body = se_Delete(input.Delete, context);\n }\n let contents;\n if (input.Delete !== undefined) {\n contents = se_Delete(input.Delete, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeletePublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketAccelerateConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n accelerate: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n acl: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n \"x-id\": [, \"GetBucketAnalyticsConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n \"x-id\": [, \"GetBucketIntelligentTieringConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n \"x-id\": [, \"GetBucketInventoryConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketLifecycleConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketLocationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n location: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketLoggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n logging: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n \"x-id\": [, \"GetBucketMetricsConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketNotificationConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n notification: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketPolicyStatusCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policyStatus: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketRequestPaymentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n requestPayment: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketVersioningCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versioning: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"if-match\": input.IfMatch,\n \"if-modified-since\": [\n () => isSerializableHeaderValue(input.IfModifiedSince),\n () => __dateToUtcString(input.IfModifiedSince).toString(),\n ],\n \"if-none-match\": input.IfNoneMatch,\n \"if-unmodified-since\": [\n () => isSerializableHeaderValue(input.IfUnmodifiedSince),\n () => __dateToUtcString(input.IfUnmodifiedSince).toString(),\n ],\n range: input.Range,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-mode\": input.ChecksumMode,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"GetObject\"],\n \"response-cache-control\": [, input.ResponseCacheControl],\n \"response-content-disposition\": [, input.ResponseContentDisposition],\n \"response-content-encoding\": [, input.ResponseContentEncoding],\n \"response-content-language\": [, input.ResponseContentLanguage],\n \"response-content-type\": [, input.ResponseContentType],\n \"response-expires\": [\n () => input.ResponseExpires !== void 0,\n () => __dateToUtcString(input.ResponseExpires).toString(),\n ],\n versionId: [, input.VersionId],\n partNumber: [() => input.PartNumber !== void 0, () => input.PartNumber.toString()],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n acl: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectAttributesCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-max-parts\": [() => isSerializableHeaderValue(input.MaxParts), () => input.MaxParts.toString()],\n \"x-amz-part-number-marker\": input.PartNumberMarker,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-object-attributes\": [\n () => isSerializableHeaderValue(input.ObjectAttributes),\n () => (input.ObjectAttributes || []).map((_entry) => _entry).join(\", \"),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n attributes: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectLegalHoldCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"legal-hold\": [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectLockConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"object-lock\": [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectRetentionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n retention: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectTorrentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n torrent: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetPublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_HeadBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"HEAD\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_HeadObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"if-match\": input.IfMatch,\n \"if-modified-since\": [\n () => isSerializableHeaderValue(input.IfModifiedSince),\n () => __dateToUtcString(input.IfModifiedSince).toString(),\n ],\n \"if-none-match\": input.IfNoneMatch,\n \"if-unmodified-since\": [\n () => isSerializableHeaderValue(input.IfUnmodifiedSince),\n () => __dateToUtcString(input.IfUnmodifiedSince).toString(),\n ],\n range: input.Range,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-mode\": input.ChecksumMode,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n versionId: [, input.VersionId],\n partNumber: [() => input.PartNumber !== void 0, () => input.PartNumber.toString()],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"HEAD\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketAnalyticsConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n \"x-id\": [, \"ListBucketAnalyticsConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketIntelligentTieringConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n \"x-id\": [, \"ListBucketIntelligentTieringConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketInventoryConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n \"x-id\": [, \"ListBucketInventoryConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketMetricsConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n \"x-id\": [, \"ListBucketMetricsConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/xml\",\n };\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n let body;\n body = \"\";\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_ListMultipartUploadsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n uploads: [, \"\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"key-marker\": [, input.KeyMarker],\n \"max-uploads\": [() => input.MaxUploads !== void 0, () => input.MaxUploads.toString()],\n prefix: [, input.Prefix],\n \"upload-id-marker\": [, input.UploadIdMarker],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListObjectsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n marker: [, input.Marker],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListObjectsV2Command = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"list-type\": [, \"2\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n \"continuation-token\": [, input.ContinuationToken],\n \"fetch-owner\": [() => input.FetchOwner !== void 0, () => input.FetchOwner.toString()],\n \"start-after\": [, input.StartAfter],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListObjectVersionsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versions: [, \"\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"key-marker\": [, input.KeyMarker],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n \"version-id-marker\": [, input.VersionIdMarker],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListPartsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"ListParts\"],\n \"max-parts\": [() => input.MaxParts !== void 0, () => input.MaxParts.toString()],\n \"part-number-marker\": [, input.PartNumberMarker],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketAccelerateConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n accelerate: [, \"\"],\n });\n let body;\n if (input.AccelerateConfiguration !== undefined) {\n body = se_AccelerateConfiguration(input.AccelerateConfiguration, context);\n }\n let contents;\n if (input.AccelerateConfiguration !== undefined) {\n contents = se_AccelerateConfiguration(input.AccelerateConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n acl: [, \"\"],\n });\n let body;\n if (input.AccessControlPolicy !== undefined) {\n body = se_AccessControlPolicy(input.AccessControlPolicy, context);\n }\n let contents;\n if (input.AccessControlPolicy !== undefined) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.AnalyticsConfiguration !== undefined) {\n body = se_AnalyticsConfiguration(input.AnalyticsConfiguration, context);\n }\n let contents;\n if (input.AnalyticsConfiguration !== undefined) {\n contents = se_AnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n if (input.CORSConfiguration !== undefined) {\n body = se_CORSConfiguration(input.CORSConfiguration, context);\n }\n let contents;\n if (input.CORSConfiguration !== undefined) {\n contents = se_CORSConfiguration(input.CORSConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n body = se_ServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n }\n let contents;\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n contents = se_ServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/xml\",\n };\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.IntelligentTieringConfiguration !== undefined) {\n body = se_IntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n }\n let contents;\n if (input.IntelligentTieringConfiguration !== undefined) {\n contents = se_IntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.InventoryConfiguration !== undefined) {\n body = se_InventoryConfiguration(input.InventoryConfiguration, context);\n }\n let contents;\n if (input.InventoryConfiguration !== undefined) {\n contents = se_InventoryConfiguration(input.InventoryConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketLifecycleConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n if (input.LifecycleConfiguration !== undefined) {\n body = se_BucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n }\n let contents;\n if (input.LifecycleConfiguration !== undefined) {\n contents = se_BucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n contents = contents.withName(\"LifecycleConfiguration\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketLoggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n logging: [, \"\"],\n });\n let body;\n if (input.BucketLoggingStatus !== undefined) {\n body = se_BucketLoggingStatus(input.BucketLoggingStatus, context);\n }\n let contents;\n if (input.BucketLoggingStatus !== undefined) {\n contents = se_BucketLoggingStatus(input.BucketLoggingStatus, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.MetricsConfiguration !== undefined) {\n body = se_MetricsConfiguration(input.MetricsConfiguration, context);\n }\n let contents;\n if (input.MetricsConfiguration !== undefined) {\n contents = se_MetricsConfiguration(input.MetricsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketNotificationConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-skip-destination-validation\": [\n () => isSerializableHeaderValue(input.SkipDestinationValidation),\n () => input.SkipDestinationValidation.toString(),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n notification: [, \"\"],\n });\n let body;\n if (input.NotificationConfiguration !== undefined) {\n body = se_NotificationConfiguration(input.NotificationConfiguration, context);\n }\n let contents;\n if (input.NotificationConfiguration !== undefined) {\n contents = se_NotificationConfiguration(input.NotificationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n if (input.OwnershipControls !== undefined) {\n body = se_OwnershipControls(input.OwnershipControls, context);\n }\n let contents;\n if (input.OwnershipControls !== undefined) {\n contents = se_OwnershipControls(input.OwnershipControls, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"text/plain\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-confirm-remove-self-bucket-access\": [\n () => isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess),\n () => input.ConfirmRemoveSelfBucketAccess.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n if (input.Policy !== undefined) {\n body = input.Policy;\n }\n let contents;\n if (input.Policy !== undefined) {\n contents = input.Policy;\n body = contents;\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-bucket-object-lock-token\": input.Token,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n if (input.ReplicationConfiguration !== undefined) {\n body = se_ReplicationConfiguration(input.ReplicationConfiguration, context);\n }\n let contents;\n if (input.ReplicationConfiguration !== undefined) {\n contents = se_ReplicationConfiguration(input.ReplicationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketRequestPaymentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n requestPayment: [, \"\"],\n });\n let body;\n if (input.RequestPaymentConfiguration !== undefined) {\n body = se_RequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n }\n let contents;\n if (input.RequestPaymentConfiguration !== undefined) {\n contents = se_RequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n if (input.Tagging !== undefined) {\n body = se_Tagging(input.Tagging, context);\n }\n let contents;\n if (input.Tagging !== undefined) {\n contents = se_Tagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketVersioningCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-mfa\": input.MFA,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versioning: [, \"\"],\n });\n let body;\n if (input.VersioningConfiguration !== undefined) {\n body = se_VersioningConfiguration(input.VersioningConfiguration, context);\n }\n let contents;\n if (input.VersioningConfiguration !== undefined) {\n contents = se_VersioningConfiguration(input.VersioningConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n if (input.WebsiteConfiguration !== undefined) {\n body = se_WebsiteConfiguration(input.WebsiteConfiguration, context);\n }\n let contents;\n if (input.WebsiteConfiguration !== undefined) {\n contents = se_WebsiteConfiguration(input.WebsiteConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": input.ContentType || \"application/octet-stream\",\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n expires: [() => isSerializableHeaderValue(input.Expires), () => __dateToUtcString(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"PutObject\"],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n acl: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.AccessControlPolicy !== undefined) {\n body = se_AccessControlPolicy(input.AccessControlPolicy, context);\n }\n let contents;\n if (input.AccessControlPolicy !== undefined) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectLegalHoldCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"legal-hold\": [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.LegalHold !== undefined) {\n body = se_ObjectLockLegalHold(input.LegalHold, context);\n }\n let contents;\n if (input.LegalHold !== undefined) {\n contents = se_ObjectLockLegalHold(input.LegalHold, context);\n contents = contents.withName(\"LegalHold\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectLockConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bucket-object-lock-token\": input.Token,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"object-lock\": [, \"\"],\n });\n let body;\n if (input.ObjectLockConfiguration !== undefined) {\n body = se_ObjectLockConfiguration(input.ObjectLockConfiguration, context);\n }\n let contents;\n if (input.ObjectLockConfiguration !== undefined) {\n contents = se_ObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectRetentionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n retention: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.Retention !== undefined) {\n body = se_ObjectLockRetention(input.Retention, context);\n }\n let contents;\n if (input.Retention !== undefined) {\n contents = se_ObjectLockRetention(input.Retention, context);\n contents = contents.withName(\"Retention\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.Tagging !== undefined) {\n body = se_Tagging(input.Tagging, context);\n }\n let contents;\n if (input.Tagging !== undefined) {\n contents = se_Tagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutPublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n if (input.PublicAccessBlockConfiguration !== undefined) {\n body = se_PublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n }\n let contents;\n if (input.PublicAccessBlockConfiguration !== undefined) {\n contents = se_PublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_RestoreObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n restore: [, \"\"],\n \"x-id\": [, \"RestoreObject\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.RestoreRequest !== undefined) {\n body = se_RestoreRequest(input.RestoreRequest, context);\n }\n let contents;\n if (input.RestoreRequest !== undefined) {\n contents = se_RestoreRequest(input.RestoreRequest, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_SelectObjectContentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n select: [, \"\"],\n \"select-type\": [, \"2\"],\n \"x-id\": [, \"SelectObjectContent\"],\n });\n let body;\n body = '';\n const bodyNode = new __XmlNode(\"SelectObjectContentRequest\");\n bodyNode.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n if (input.Expression !== undefined) {\n const node = __XmlNode.of(\"Expression\", input.Expression).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined) {\n const node = __XmlNode.of(\"ExpressionType\", input.ExpressionType).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.InputSerialization !== undefined) {\n const node = se_InputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined) {\n const node = se_OutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.RequestProgress !== undefined) {\n const node = se_RequestProgress(input.RequestProgress, context).withName(\"RequestProgress\");\n bodyNode.addChildNode(node);\n }\n if (input.ScanRange !== undefined) {\n const node = se_ScanRange(input.ScanRange, context).withName(\"ScanRange\");\n bodyNode.addChildNode(node);\n }\n body += bodyNode.toString();\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_UploadPartCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"UploadPart\"],\n partNumber: [__expectNonNull(input.PartNumber, `PartNumber`) != null, () => input.PartNumber.toString()],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_UploadPartCopyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-copy-source\": input.CopySource,\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n \"x-amz-copy-source-if-modified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfModifiedSince),\n () => __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n ],\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n \"x-amz-copy-source-if-unmodified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince),\n () => __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n ],\n \"x-amz-copy-source-range\": input.CopySourceRange,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"UploadPartCopy\"],\n partNumber: [__expectNonNull(input.PartNumber, `PartNumber`) != null, () => input.PartNumber.toString()],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_WriteGetObjectResponseCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\",\n \"content-type\": \"application/octet-stream\",\n \"x-amz-request-route\": input.RequestRoute,\n \"x-amz-request-token\": input.RequestToken,\n \"x-amz-fwd-status\": [() => isSerializableHeaderValue(input.StatusCode), () => input.StatusCode.toString()],\n \"x-amz-fwd-error-code\": input.ErrorCode,\n \"x-amz-fwd-error-message\": input.ErrorMessage,\n \"x-amz-fwd-header-accept-ranges\": input.AcceptRanges,\n \"x-amz-fwd-header-cache-control\": input.CacheControl,\n \"x-amz-fwd-header-content-disposition\": input.ContentDisposition,\n \"x-amz-fwd-header-content-encoding\": input.ContentEncoding,\n \"x-amz-fwd-header-content-language\": input.ContentLanguage,\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"x-amz-fwd-header-content-range\": input.ContentRange,\n \"x-amz-fwd-header-content-type\": input.ContentType,\n \"x-amz-fwd-header-x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-fwd-header-x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-fwd-header-x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-fwd-header-x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-fwd-header-x-amz-delete-marker\": [\n () => isSerializableHeaderValue(input.DeleteMarker),\n () => input.DeleteMarker.toString(),\n ],\n \"x-amz-fwd-header-etag\": input.ETag,\n \"x-amz-fwd-header-expires\": [\n () => isSerializableHeaderValue(input.Expires),\n () => __dateToUtcString(input.Expires).toString(),\n ],\n \"x-amz-fwd-header-x-amz-expiration\": input.Expiration,\n \"x-amz-fwd-header-last-modified\": [\n () => isSerializableHeaderValue(input.LastModified),\n () => __dateToUtcString(input.LastModified).toString(),\n ],\n \"x-amz-fwd-header-x-amz-missing-meta\": [\n () => isSerializableHeaderValue(input.MissingMeta),\n () => input.MissingMeta.toString(),\n ],\n \"x-amz-fwd-header-x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-fwd-header-x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-fwd-header-x-amz-mp-parts-count\": [\n () => isSerializableHeaderValue(input.PartsCount),\n () => input.PartsCount.toString(),\n ],\n \"x-amz-fwd-header-x-amz-replication-status\": input.ReplicationStatus,\n \"x-amz-fwd-header-x-amz-request-charged\": input.RequestCharged,\n \"x-amz-fwd-header-x-amz-restore\": input.Restore,\n \"x-amz-fwd-header-x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-fwd-header-x-amz-storage-class\": input.StorageClass,\n \"x-amz-fwd-header-x-amz-tagging-count\": [\n () => isSerializableHeaderValue(input.TagCount),\n () => input.TagCount.toString(),\n ],\n \"x-amz-fwd-header-x-amz-version-id\": input.VersionId,\n \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/WriteGetObjectResponse\";\n const query = map({\n \"x-id\": [, \"WriteGetObjectResponse\"],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"{RequestRoute}.\" + resolvedHostname;\n if (input.RequestRoute === undefined) {\n throw new Error(\"Empty value provided for input host prefix: RequestRoute.\");\n }\n resolvedHostname = resolvedHostname.replace(\"{RequestRoute}\", input.RequestRoute);\n if (!__isValidHostname(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return new __HttpRequest({\n protocol,\n hostname: resolvedHostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const de_AbortMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_AbortMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_AbortMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchUpload\":\n case \"com.amazonaws.s3#NoSuchUpload\":\n throw await de_NoSuchUploadRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CompleteMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CompleteMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(data[\"ChecksumCRC32\"]);\n }\n if (data[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(data[\"ChecksumCRC32C\"]);\n }\n if (data[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(data[\"ChecksumSHA1\"]);\n }\n if (data[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(data[\"ChecksumSHA256\"]);\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(data[\"ETag\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n if (data[\"Location\"] !== undefined) {\n contents.Location = __expectString(data[\"Location\"]);\n }\n return contents;\n};\nconst de_CompleteMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_CopyObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CopyObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n CopySourceVersionId: [, output.headers[\"x-amz-copy-source-version-id\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.CopyObjectResult = de_CopyObjectResult(data, context);\n return contents;\n};\nconst de_CopyObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ObjectNotInActiveTierError\":\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\":\n throw await de_ObjectNotInActiveTierErrorRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateBucketCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CreateBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Location: [, output.headers[\"location\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_CreateBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"BucketAlreadyExists\":\n case \"com.amazonaws.s3#BucketAlreadyExists\":\n throw await de_BucketAlreadyExistsRes(parsedOutput, context);\n case \"BucketAlreadyOwnedByYou\":\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\":\n throw await de_BucketAlreadyOwnedByYouRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CreateMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n AbortDate: [\n () => void 0 !== output.headers[\"x-amz-abort-date\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"x-amz-abort-date\"])),\n ],\n AbortRuleId: [, output.headers[\"x-amz-abort-rule-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ChecksumAlgorithm: [, output.headers[\"x-amz-checksum-algorithm\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(data[\"UploadId\"]);\n }\n return contents;\n};\nconst de_CreateMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketLifecycleCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketLifecycleCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketLifecycleCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteObjectCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteObjectsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_DeleteObjectsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.Deleted === \"\") {\n contents.Deleted = [];\n }\n else if (data[\"Deleted\"] !== undefined) {\n contents.Deleted = de_DeletedObjects(__getArrayIfSingleItem(data[\"Deleted\"]), context);\n }\n if (data.Error === \"\") {\n contents.Errors = [];\n }\n else if (data[\"Error\"] !== undefined) {\n contents.Errors = de_Errors(__getArrayIfSingleItem(data[\"Error\"]), context);\n }\n return contents;\n};\nconst de_DeleteObjectsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeletePublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeletePublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeletePublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketAccelerateConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketAccelerateConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Status\"] !== undefined) {\n contents.Status = __expectString(data[\"Status\"]);\n }\n return contents;\n};\nconst de_GetBucketAccelerateConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n else if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = de_Grants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n return contents;\n};\nconst de_GetBucketAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.AnalyticsConfiguration = de_AnalyticsConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CORSRule === \"\") {\n contents.CORSRules = [];\n }\n else if (data[\"CORSRule\"] !== undefined) {\n contents.CORSRules = de_CORSRules(__getArrayIfSingleItem(data[\"CORSRule\"]), context);\n }\n return contents;\n};\nconst de_GetBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.ServerSideEncryptionConfiguration = de_ServerSideEncryptionConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.IntelligentTieringConfiguration = de_IntelligentTieringConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.InventoryConfiguration = de_InventoryConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketLifecycleConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketLifecycleConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.Rule === \"\") {\n contents.Rules = [];\n }\n else if (data[\"Rule\"] !== undefined) {\n contents.Rules = de_LifecycleRules(__getArrayIfSingleItem(data[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_GetBucketLifecycleConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketLocationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketLocationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"LocationConstraint\"] !== undefined) {\n contents.LocationConstraint = __expectString(data[\"LocationConstraint\"]);\n }\n return contents;\n};\nconst de_GetBucketLocationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketLoggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketLoggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"LoggingEnabled\"] !== undefined) {\n contents.LoggingEnabled = de_LoggingEnabled(data[\"LoggingEnabled\"], context);\n }\n return contents;\n};\nconst de_GetBucketLoggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.MetricsConfiguration = de_MetricsConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketNotificationConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketNotificationConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"EventBridgeConfiguration\"] !== undefined) {\n contents.EventBridgeConfiguration = de_EventBridgeConfiguration(data[\"EventBridgeConfiguration\"], context);\n }\n if (data.CloudFunctionConfiguration === \"\") {\n contents.LambdaFunctionConfigurations = [];\n }\n else if (data[\"CloudFunctionConfiguration\"] !== undefined) {\n contents.LambdaFunctionConfigurations = de_LambdaFunctionConfigurationList(__getArrayIfSingleItem(data[\"CloudFunctionConfiguration\"]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents.QueueConfigurations = [];\n }\n else if (data[\"QueueConfiguration\"] !== undefined) {\n contents.QueueConfigurations = de_QueueConfigurationList(__getArrayIfSingleItem(data[\"QueueConfiguration\"]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents.TopicConfigurations = [];\n }\n else if (data[\"TopicConfiguration\"] !== undefined) {\n contents.TopicConfigurations = de_TopicConfigurationList(__getArrayIfSingleItem(data[\"TopicConfiguration\"]), context);\n }\n return contents;\n};\nconst de_GetBucketNotificationConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.OwnershipControls = de_OwnershipControls(data, context);\n return contents;\n};\nconst de_GetBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = await collectBodyString(output.body, context);\n contents.Policy = __expectString(data);\n return contents;\n};\nconst de_GetBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketPolicyStatusCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketPolicyStatusCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.PolicyStatus = de_PolicyStatus(data, context);\n return contents;\n};\nconst de_GetBucketPolicyStatusCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.ReplicationConfiguration = de_ReplicationConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketRequestPaymentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketRequestPaymentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Payer\"] !== undefined) {\n contents.Payer = __expectString(data[\"Payer\"]);\n }\n return contents;\n};\nconst de_GetBucketRequestPaymentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n else if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = de_TagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return contents;\n};\nconst de_GetBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketVersioningCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketVersioningCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"MfaDelete\"] !== undefined) {\n contents.MFADelete = __expectString(data[\"MfaDelete\"]);\n }\n if (data[\"Status\"] !== undefined) {\n contents.Status = __expectString(data[\"Status\"]);\n }\n return contents;\n};\nconst de_GetBucketVersioningCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ErrorDocument\"] !== undefined) {\n contents.ErrorDocument = de_ErrorDocument(data[\"ErrorDocument\"], context);\n }\n if (data[\"IndexDocument\"] !== undefined) {\n contents.IndexDocument = de_IndexDocument(data[\"IndexDocument\"], context);\n }\n if (data[\"RedirectAllRequestsTo\"] !== undefined) {\n contents.RedirectAllRequestsTo = de_RedirectAllRequestsTo(data[\"RedirectAllRequestsTo\"], context);\n }\n if (data.RoutingRules === \"\") {\n contents.RoutingRules = [];\n }\n else if (data[\"RoutingRules\"] !== undefined && data[\"RoutingRules\"][\"RoutingRule\"] !== undefined) {\n contents.RoutingRules = de_RoutingRules(__getArrayIfSingleItem(data[\"RoutingRules\"][\"RoutingRule\"]), context);\n }\n return contents;\n};\nconst de_GetBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n AcceptRanges: [, output.headers[\"accept-ranges\"]],\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n Restore: [, output.headers[\"x-amz-restore\"]],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"last-modified\"])),\n ],\n ContentLength: [\n () => void 0 !== output.headers[\"content-length\"],\n () => __strictParseLong(output.headers[\"content-length\"]),\n ],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n MissingMeta: [\n () => void 0 !== output.headers[\"x-amz-missing-meta\"],\n () => __strictParseInt32(output.headers[\"x-amz-missing-meta\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n CacheControl: [, output.headers[\"cache-control\"]],\n ContentDisposition: [, output.headers[\"content-disposition\"]],\n ContentEncoding: [, output.headers[\"content-encoding\"]],\n ContentLanguage: [, output.headers[\"content-language\"]],\n ContentRange: [, output.headers[\"content-range\"]],\n ContentType: [, output.headers[\"content-type\"]],\n Expires: [\n () => void 0 !== output.headers[\"expires\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"expires\"])),\n ],\n WebsiteRedirectLocation: [, output.headers[\"x-amz-website-redirect-location\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n StorageClass: [, output.headers[\"x-amz-storage-class\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ReplicationStatus: [, output.headers[\"x-amz-replication-status\"]],\n PartsCount: [\n () => void 0 !== output.headers[\"x-amz-mp-parts-count\"],\n () => __strictParseInt32(output.headers[\"x-amz-mp-parts-count\"]),\n ],\n TagCount: [\n () => void 0 !== output.headers[\"x-amz-tagging-count\"],\n () => __strictParseInt32(output.headers[\"x-amz-tagging-count\"]),\n ],\n ObjectLockMode: [, output.headers[\"x-amz-object-lock-mode\"]],\n ObjectLockRetainUntilDate: [\n () => void 0 !== output.headers[\"x-amz-object-lock-retain-until-date\"],\n () => __expectNonNull(__parseRfc3339DateTimeWithOffset(output.headers[\"x-amz-object-lock-retain-until-date\"])),\n ],\n ObjectLockLegalHoldStatus: [, output.headers[\"x-amz-object-lock-legal-hold\"]],\n Metadata: [\n ,\n Object.keys(output.headers)\n .filter((header) => header.startsWith(\"x-amz-meta-\"))\n .reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {}),\n ],\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n};\nconst de_GetObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidObjectState\":\n case \"com.amazonaws.s3#InvalidObjectState\":\n throw await de_InvalidObjectStateRes(parsedOutput, context);\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetObjectAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n else if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = de_Grants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n return contents;\n};\nconst de_GetObjectAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetObjectAttributesCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectAttributesCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"last-modified\"])),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Checksum\"] !== undefined) {\n contents.Checksum = de_Checksum(data[\"Checksum\"], context);\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(data[\"ETag\"]);\n }\n if (data[\"ObjectParts\"] !== undefined) {\n contents.ObjectParts = de_GetObjectAttributesParts(data[\"ObjectParts\"], context);\n }\n if (data[\"ObjectSize\"] !== undefined) {\n contents.ObjectSize = __strictParseLong(data[\"ObjectSize\"]);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n return contents;\n};\nconst de_GetObjectAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetObjectLegalHoldCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectLegalHoldCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.LegalHold = de_ObjectLockLegalHold(data, context);\n return contents;\n};\nconst de_GetObjectLegalHoldCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectLockConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectLockConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.ObjectLockConfiguration = de_ObjectLockConfiguration(data, context);\n return contents;\n};\nconst de_GetObjectLockConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectRetentionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectRetentionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.Retention = de_ObjectLockRetention(data, context);\n return contents;\n};\nconst de_GetObjectRetentionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n else if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = de_TagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return contents;\n};\nconst de_GetObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectTorrentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectTorrentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n};\nconst de_GetObjectTorrentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetPublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetPublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.PublicAccessBlockConfiguration = de_PublicAccessBlockConfiguration(data, context);\n return contents;\n};\nconst de_GetPublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_HeadBucketCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_HeadBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_HeadBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await de_NotFoundRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_HeadObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_HeadObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n AcceptRanges: [, output.headers[\"accept-ranges\"]],\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n Restore: [, output.headers[\"x-amz-restore\"]],\n ArchiveStatus: [, output.headers[\"x-amz-archive-status\"]],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"last-modified\"])),\n ],\n ContentLength: [\n () => void 0 !== output.headers[\"content-length\"],\n () => __strictParseLong(output.headers[\"content-length\"]),\n ],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n ETag: [, output.headers[\"etag\"]],\n MissingMeta: [\n () => void 0 !== output.headers[\"x-amz-missing-meta\"],\n () => __strictParseInt32(output.headers[\"x-amz-missing-meta\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n CacheControl: [, output.headers[\"cache-control\"]],\n ContentDisposition: [, output.headers[\"content-disposition\"]],\n ContentEncoding: [, output.headers[\"content-encoding\"]],\n ContentLanguage: [, output.headers[\"content-language\"]],\n ContentType: [, output.headers[\"content-type\"]],\n Expires: [\n () => void 0 !== output.headers[\"expires\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"expires\"])),\n ],\n WebsiteRedirectLocation: [, output.headers[\"x-amz-website-redirect-location\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n StorageClass: [, output.headers[\"x-amz-storage-class\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ReplicationStatus: [, output.headers[\"x-amz-replication-status\"]],\n PartsCount: [\n () => void 0 !== output.headers[\"x-amz-mp-parts-count\"],\n () => __strictParseInt32(output.headers[\"x-amz-mp-parts-count\"]),\n ],\n ObjectLockMode: [, output.headers[\"x-amz-object-lock-mode\"]],\n ObjectLockRetainUntilDate: [\n () => void 0 !== output.headers[\"x-amz-object-lock-retain-until-date\"],\n () => __expectNonNull(__parseRfc3339DateTimeWithOffset(output.headers[\"x-amz-object-lock-retain-until-date\"])),\n ],\n ObjectLockLegalHoldStatus: [, output.headers[\"x-amz-object-lock-legal-hold\"]],\n Metadata: [\n ,\n Object.keys(output.headers)\n .filter((header) => header.startsWith(\"x-amz-meta-\"))\n .reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {}),\n ],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_HeadObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await de_NotFoundRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListBucketAnalyticsConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketAnalyticsConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.AnalyticsConfiguration === \"\") {\n contents.AnalyticsConfigurationList = [];\n }\n else if (data[\"AnalyticsConfiguration\"] !== undefined) {\n contents.AnalyticsConfigurationList = de_AnalyticsConfigurationList(__getArrayIfSingleItem(data[\"AnalyticsConfiguration\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketAnalyticsConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketIntelligentTieringConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketIntelligentTieringConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents.IntelligentTieringConfigurationList = [];\n }\n else if (data[\"IntelligentTieringConfiguration\"] !== undefined) {\n contents.IntelligentTieringConfigurationList = de_IntelligentTieringConfigurationList(__getArrayIfSingleItem(data[\"IntelligentTieringConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketIntelligentTieringConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketInventoryConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketInventoryConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data.InventoryConfiguration === \"\") {\n contents.InventoryConfigurationList = [];\n }\n else if (data[\"InventoryConfiguration\"] !== undefined) {\n contents.InventoryConfigurationList = de_InventoryConfigurationList(__getArrayIfSingleItem(data[\"InventoryConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketInventoryConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketMetricsConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketMetricsConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data.MetricsConfiguration === \"\") {\n contents.MetricsConfigurationList = [];\n }\n else if (data[\"MetricsConfiguration\"] !== undefined) {\n contents.MetricsConfigurationList = de_MetricsConfigurationList(__getArrayIfSingleItem(data[\"MetricsConfiguration\"]), context);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketMetricsConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.Buckets === \"\") {\n contents.Buckets = [];\n }\n else if (data[\"Buckets\"] !== undefined && data[\"Buckets\"][\"Bucket\"] !== undefined) {\n contents.Buckets = de_Buckets(__getArrayIfSingleItem(data[\"Buckets\"][\"Bucket\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n return contents;\n};\nconst de_ListBucketsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListMultipartUploadsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListMultipartUploadsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = __expectString(data[\"KeyMarker\"]);\n }\n if (data[\"MaxUploads\"] !== undefined) {\n contents.MaxUploads = __strictParseInt32(data[\"MaxUploads\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = __expectString(data[\"NextKeyMarker\"]);\n }\n if (data[\"NextUploadIdMarker\"] !== undefined) {\n contents.NextUploadIdMarker = __expectString(data[\"NextUploadIdMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n if (data[\"UploadIdMarker\"] !== undefined) {\n contents.UploadIdMarker = __expectString(data[\"UploadIdMarker\"]);\n }\n if (data.Upload === \"\") {\n contents.Uploads = [];\n }\n else if (data[\"Upload\"] !== undefined) {\n contents.Uploads = de_MultipartUploadList(__getArrayIfSingleItem(data[\"Upload\"]), context);\n }\n return contents;\n};\nconst de_ListMultipartUploadsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListObjectsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListObjectsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n else if (data[\"Contents\"] !== undefined) {\n contents.Contents = de_ObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"Marker\"] !== undefined) {\n contents.Marker = __expectString(data[\"Marker\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = __strictParseInt32(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n if (data[\"NextMarker\"] !== undefined) {\n contents.NextMarker = __expectString(data[\"NextMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n return contents;\n};\nconst de_ListObjectsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await de_NoSuchBucketRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListObjectsV2Command = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListObjectsV2CommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n else if (data[\"Contents\"] !== undefined) {\n contents.Contents = de_ObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"KeyCount\"] !== undefined) {\n contents.KeyCount = __strictParseInt32(data[\"KeyCount\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = __strictParseInt32(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n if (data[\"StartAfter\"] !== undefined) {\n contents.StartAfter = __expectString(data[\"StartAfter\"]);\n }\n return contents;\n};\nconst de_ListObjectsV2CommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await de_NoSuchBucketRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListObjectVersionsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListObjectVersionsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents.DeleteMarkers = [];\n }\n else if (data[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarkers = de_DeleteMarkers(__getArrayIfSingleItem(data[\"DeleteMarker\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = __expectString(data[\"KeyMarker\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = __strictParseInt32(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = __expectString(data[\"NextKeyMarker\"]);\n }\n if (data[\"NextVersionIdMarker\"] !== undefined) {\n contents.NextVersionIdMarker = __expectString(data[\"NextVersionIdMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n if (data[\"VersionIdMarker\"] !== undefined) {\n contents.VersionIdMarker = __expectString(data[\"VersionIdMarker\"]);\n }\n if (data.Version === \"\") {\n contents.Versions = [];\n }\n else if (data[\"Version\"] !== undefined) {\n contents.Versions = de_ObjectVersionList(__getArrayIfSingleItem(data[\"Version\"]), context);\n }\n return contents;\n};\nconst de_ListObjectVersionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListPartsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListPartsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n AbortDate: [\n () => void 0 !== output.headers[\"x-amz-abort-date\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"x-amz-abort-date\"])),\n ],\n AbortRuleId: [, output.headers[\"x-amz-abort-rule-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = __expectString(data[\"ChecksumAlgorithm\"]);\n }\n if (data[\"Initiator\"] !== undefined) {\n contents.Initiator = de_Initiator(data[\"Initiator\"], context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n if (data[\"MaxParts\"] !== undefined) {\n contents.MaxParts = __strictParseInt32(data[\"MaxParts\"]);\n }\n if (data[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = __expectString(data[\"NextPartNumberMarker\"]);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n if (data[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = __expectString(data[\"PartNumberMarker\"]);\n }\n if (data.Part === \"\") {\n contents.Parts = [];\n }\n else if (data[\"Part\"] !== undefined) {\n contents.Parts = de_Parts(__getArrayIfSingleItem(data[\"Part\"]), context);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(data[\"UploadId\"]);\n }\n return contents;\n};\nconst de_ListPartsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketAccelerateConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketAccelerateConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketAccelerateConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketLifecycleConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketLifecycleConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketLifecycleConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketLoggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketLoggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketLoggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketNotificationConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketNotificationConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketNotificationConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketRequestPaymentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketRequestPaymentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketRequestPaymentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketVersioningCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketVersioningCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketVersioningCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_PutObjectLegalHoldCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectLegalHoldCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectLegalHoldCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectLockConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectLockConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectLockConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectRetentionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectRetentionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectRetentionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutPublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutPublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutPublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_RestoreObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_RestoreObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n RestoreOutputPath: [, output.headers[\"x-amz-restore-output-path\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_RestoreObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ObjectAlreadyInActiveTierError\":\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\":\n throw await de_ObjectAlreadyInActiveTierErrorRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SelectObjectContentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_SelectObjectContentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = output.body;\n contents.Payload = de_SelectObjectContentEventStream(data, context);\n return contents;\n};\nconst de_SelectObjectContentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_UploadPartCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_UploadPartCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_UploadPartCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_UploadPartCopyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_UploadPartCopyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n CopySourceVersionId: [, output.headers[\"x-amz-copy-source-version-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.CopyPartResult = de_CopyPartResult(data, context);\n return contents;\n};\nconst de_UploadPartCopyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_WriteGetObjectResponseCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_WriteGetObjectResponseCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_WriteGetObjectResponseCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nconst throwDefaultError = withBaseException(__BaseException);\nconst de_BucketAlreadyExistsRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_BucketAlreadyOwnedByYouRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyOwnedByYou({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_InvalidObjectStateRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data[\"AccessTier\"] !== undefined) {\n contents.AccessTier = __expectString(data[\"AccessTier\"]);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n const exception = new InvalidObjectState({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchBucketRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NoSuchBucket({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchKeyRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NoSuchKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchUploadRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NoSuchUpload({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NotFoundRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_ObjectAlreadyInActiveTierErrorRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new ObjectAlreadyInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_ObjectNotInActiveTierErrorRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new ObjectNotInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_SelectObjectContentEventStream = (output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"Records\"] != null) {\n return {\n Records: await de_RecordsEvent_event(event[\"Records\"], context),\n };\n }\n if (event[\"Stats\"] != null) {\n return {\n Stats: await de_StatsEvent_event(event[\"Stats\"], context),\n };\n }\n if (event[\"Progress\"] != null) {\n return {\n Progress: await de_ProgressEvent_event(event[\"Progress\"], context),\n };\n }\n if (event[\"Cont\"] != null) {\n return {\n Cont: await de_ContinuationEvent_event(event[\"Cont\"], context),\n };\n }\n if (event[\"End\"] != null) {\n return {\n End: await de_EndEvent_event(event[\"End\"], context),\n };\n }\n return { $unknown: output };\n });\n};\nconst de_ContinuationEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n Object.assign(contents, de_ContinuationEvent(data, context));\n return contents;\n};\nconst de_EndEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n Object.assign(contents, de_EndEvent(data, context));\n return contents;\n};\nconst de_ProgressEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n contents.Details = de_Progress(data, context);\n return contents;\n};\nconst de_RecordsEvent_event = async (output, context) => {\n const contents = {};\n contents.Payload = output.body;\n return contents;\n};\nconst de_StatsEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n contents.Details = de_Stats(data, context);\n return contents;\n};\nconst se_AbortIncompleteMultipartUpload = (input, context) => {\n const bodyNode = new __XmlNode(\"AbortIncompleteMultipartUpload\");\n if (input.DaysAfterInitiation != null) {\n const node = __XmlNode.of(\"DaysAfterInitiation\", String(input.DaysAfterInitiation)).withName(\"DaysAfterInitiation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AccelerateConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"AccelerateConfiguration\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"BucketAccelerateStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AccessControlPolicy = (input, context) => {\n const bodyNode = new __XmlNode(\"AccessControlPolicy\");\n if (input.Grants != null) {\n const nodes = se_Grants(input.Grants, context);\n const containerNode = new __XmlNode(\"AccessControlList\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Owner != null) {\n const node = se_Owner(input.Owner, context).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AccessControlTranslation = (input, context) => {\n const bodyNode = new __XmlNode(\"AccessControlTranslation\");\n if (input.Owner != null) {\n const node = __XmlNode.of(\"OwnerOverride\", input.Owner).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AllowedHeaders = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"AllowedHeader\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_AllowedMethods = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"AllowedMethod\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_AllowedOrigins = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"AllowedOrigin\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_AnalyticsAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_AnalyticsConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"AnalyticsId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_AnalyticsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClassAnalysis != null) {\n const node = se_StorageClassAnalysis(input.StorageClassAnalysis, context).withName(\"StorageClassAnalysis\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AnalyticsExportDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsExportDestination\");\n if (input.S3BucketDestination != null) {\n const node = se_AnalyticsS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AnalyticsFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsFilter\");\n AnalyticsFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_AnalyticsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_AnalyticsS3BucketDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsS3BucketDestination\");\n if (input.Format != null) {\n const node = __XmlNode.of(\"AnalyticsS3ExportFileFormat\", input.Format).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketAccountId != null) {\n const node = __XmlNode.of(\"AccountId\", input.BucketAccountId).withName(\"BucketAccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket != null) {\n const node = __XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_BucketLifecycleConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"BucketLifecycleConfiguration\");\n if (input.Rules != null) {\n const nodes = se_LifecycleRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_BucketLoggingStatus = (input, context) => {\n const bodyNode = new __XmlNode(\"BucketLoggingStatus\");\n if (input.LoggingEnabled != null) {\n const node = se_LoggingEnabled(input.LoggingEnabled, context).withName(\"LoggingEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CompletedMultipartUpload = (input, context) => {\n const bodyNode = new __XmlNode(\"CompletedMultipartUpload\");\n if (input.Parts != null) {\n const nodes = se_CompletedPartList(input.Parts, context);\n nodes.map((node) => {\n node = node.withName(\"Part\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_CompletedPart = (input, context) => {\n const bodyNode = new __XmlNode(\"CompletedPart\");\n if (input.ETag != null) {\n const node = __XmlNode.of(\"ETag\", input.ETag).withName(\"ETag\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumCRC32 != null) {\n const node = __XmlNode.of(\"ChecksumCRC32\", input.ChecksumCRC32).withName(\"ChecksumCRC32\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumCRC32C != null) {\n const node = __XmlNode.of(\"ChecksumCRC32C\", input.ChecksumCRC32C).withName(\"ChecksumCRC32C\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumSHA1 != null) {\n const node = __XmlNode.of(\"ChecksumSHA1\", input.ChecksumSHA1).withName(\"ChecksumSHA1\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumSHA256 != null) {\n const node = __XmlNode.of(\"ChecksumSHA256\", input.ChecksumSHA256).withName(\"ChecksumSHA256\");\n bodyNode.addChildNode(node);\n }\n if (input.PartNumber != null) {\n const node = __XmlNode.of(\"PartNumber\", String(input.PartNumber)).withName(\"PartNumber\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CompletedPartList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_CompletedPart(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_Condition = (input, context) => {\n const bodyNode = new __XmlNode(\"Condition\");\n if (input.HttpErrorCodeReturnedEquals != null) {\n const node = __XmlNode\n .of(\"HttpErrorCodeReturnedEquals\", input.HttpErrorCodeReturnedEquals)\n .withName(\"HttpErrorCodeReturnedEquals\");\n bodyNode.addChildNode(node);\n }\n if (input.KeyPrefixEquals != null) {\n const node = __XmlNode.of(\"KeyPrefixEquals\", input.KeyPrefixEquals).withName(\"KeyPrefixEquals\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CORSConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"CORSConfiguration\");\n if (input.CORSRules != null) {\n const nodes = se_CORSRules(input.CORSRules, context);\n nodes.map((node) => {\n node = node.withName(\"CORSRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_CORSRule = (input, context) => {\n const bodyNode = new __XmlNode(\"CORSRule\");\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowedHeaders != null) {\n const nodes = se_AllowedHeaders(input.AllowedHeaders, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedMethods != null) {\n const nodes = se_AllowedMethods(input.AllowedMethods, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedMethod\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedOrigins != null) {\n const nodes = se_AllowedOrigins(input.AllowedOrigins, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedOrigin\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ExposeHeaders != null) {\n const nodes = se_ExposeHeaders(input.ExposeHeaders, context);\n nodes.map((node) => {\n node = node.withName(\"ExposeHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.MaxAgeSeconds != null) {\n const node = __XmlNode.of(\"MaxAgeSeconds\", String(input.MaxAgeSeconds)).withName(\"MaxAgeSeconds\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CORSRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_CORSRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_CreateBucketConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"CreateBucketConfiguration\");\n if (input.LocationConstraint != null) {\n const node = __XmlNode.of(\"BucketLocationConstraint\", input.LocationConstraint).withName(\"LocationConstraint\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CSVInput = (input, context) => {\n const bodyNode = new __XmlNode(\"CSVInput\");\n if (input.FileHeaderInfo != null) {\n const node = __XmlNode.of(\"FileHeaderInfo\", input.FileHeaderInfo).withName(\"FileHeaderInfo\");\n bodyNode.addChildNode(node);\n }\n if (input.Comments != null) {\n const node = __XmlNode.of(\"Comments\", input.Comments).withName(\"Comments\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter != null) {\n const node = __XmlNode.of(\"QuoteEscapeCharacter\", input.QuoteEscapeCharacter).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter != null) {\n const node = __XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter != null) {\n const node = __XmlNode.of(\"FieldDelimiter\", input.FieldDelimiter).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter != null) {\n const node = __XmlNode.of(\"QuoteCharacter\", input.QuoteCharacter).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowQuotedRecordDelimiter != null) {\n const node = __XmlNode\n .of(\"AllowQuotedRecordDelimiter\", String(input.AllowQuotedRecordDelimiter))\n .withName(\"AllowQuotedRecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CSVOutput = (input, context) => {\n const bodyNode = new __XmlNode(\"CSVOutput\");\n if (input.QuoteFields != null) {\n const node = __XmlNode.of(\"QuoteFields\", input.QuoteFields).withName(\"QuoteFields\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter != null) {\n const node = __XmlNode.of(\"QuoteEscapeCharacter\", input.QuoteEscapeCharacter).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter != null) {\n const node = __XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter != null) {\n const node = __XmlNode.of(\"FieldDelimiter\", input.FieldDelimiter).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter != null) {\n const node = __XmlNode.of(\"QuoteCharacter\", input.QuoteCharacter).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_DefaultRetention = (input, context) => {\n const bodyNode = new __XmlNode(\"DefaultRetention\");\n if (input.Mode != null) {\n const node = __XmlNode.of(\"ObjectLockRetentionMode\", input.Mode).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.Years != null) {\n const node = __XmlNode.of(\"Years\", String(input.Years)).withName(\"Years\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Delete = (input, context) => {\n const bodyNode = new __XmlNode(\"Delete\");\n if (input.Objects != null) {\n const nodes = se_ObjectIdentifierList(input.Objects, context);\n nodes.map((node) => {\n node = node.withName(\"Object\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Quiet != null) {\n const node = __XmlNode.of(\"Quiet\", String(input.Quiet)).withName(\"Quiet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_DeleteMarkerReplication = (input, context) => {\n const bodyNode = new __XmlNode(\"DeleteMarkerReplication\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"DeleteMarkerReplicationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Destination = (input, context) => {\n const bodyNode = new __XmlNode(\"Destination\");\n if (input.Bucket != null) {\n const node = __XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Account != null) {\n const node = __XmlNode.of(\"AccountId\", input.Account).withName(\"Account\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"StorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlTranslation != null) {\n const node = se_AccessControlTranslation(input.AccessControlTranslation, context).withName(\"AccessControlTranslation\");\n bodyNode.addChildNode(node);\n }\n if (input.EncryptionConfiguration != null) {\n const node = se_EncryptionConfiguration(input.EncryptionConfiguration, context).withName(\"EncryptionConfiguration\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicationTime != null) {\n const node = se_ReplicationTime(input.ReplicationTime, context).withName(\"ReplicationTime\");\n bodyNode.addChildNode(node);\n }\n if (input.Metrics != null) {\n const node = se_Metrics(input.Metrics, context).withName(\"Metrics\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Encryption = (input, context) => {\n const bodyNode = new __XmlNode(\"Encryption\");\n if (input.EncryptionType != null) {\n const node = __XmlNode.of(\"ServerSideEncryption\", input.EncryptionType).withName(\"EncryptionType\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSKeyId != null) {\n const node = __XmlNode.of(\"SSEKMSKeyId\", input.KMSKeyId).withName(\"KMSKeyId\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSContext != null) {\n const node = __XmlNode.of(\"KMSContext\", input.KMSContext).withName(\"KMSContext\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_EncryptionConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"EncryptionConfiguration\");\n if (input.ReplicaKmsKeyID != null) {\n const node = __XmlNode.of(\"ReplicaKmsKeyID\", input.ReplicaKmsKeyID).withName(\"ReplicaKmsKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ErrorDocument = (input, context) => {\n const bodyNode = new __XmlNode(\"ErrorDocument\");\n if (input.Key != null) {\n const node = __XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_EventBridgeConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"EventBridgeConfiguration\");\n return bodyNode;\n};\nconst se_EventList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"Event\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_ExistingObjectReplication = (input, context) => {\n const bodyNode = new __XmlNode(\"ExistingObjectReplication\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ExistingObjectReplicationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ExposeHeaders = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"ExposeHeader\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_FilterRule = (input, context) => {\n const bodyNode = new __XmlNode(\"FilterRule\");\n if (input.Name != null) {\n const node = __XmlNode.of(\"FilterRuleName\", input.Name).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = __XmlNode.of(\"FilterRuleValue\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_FilterRuleList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_FilterRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_GlacierJobParameters = (input, context) => {\n const bodyNode = new __XmlNode(\"GlacierJobParameters\");\n if (input.Tier != null) {\n const node = __XmlNode.of(\"Tier\", input.Tier).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Grant = (input, context) => {\n const bodyNode = new __XmlNode(\"Grant\");\n if (input.Grantee != null) {\n const node = se_Grantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission != null) {\n const node = __XmlNode.of(\"Permission\", input.Permission).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Grantee = (input, context) => {\n const bodyNode = new __XmlNode(\"Grantee\");\n if (input.DisplayName != null) {\n const node = __XmlNode.of(\"DisplayName\", input.DisplayName).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.EmailAddress != null) {\n const node = __XmlNode.of(\"EmailAddress\", input.EmailAddress).withName(\"EmailAddress\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.URI != null) {\n const node = __XmlNode.of(\"URI\", input.URI).withName(\"URI\");\n bodyNode.addChildNode(node);\n }\n if (input.Type != null) {\n bodyNode.addAttribute(\"xsi:type\", input.Type);\n }\n return bodyNode;\n};\nconst se_Grants = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Grant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nconst se_IndexDocument = (input, context) => {\n const bodyNode = new __XmlNode(\"IndexDocument\");\n if (input.Suffix != null) {\n const node = __XmlNode.of(\"Suffix\", input.Suffix).withName(\"Suffix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InputSerialization = (input, context) => {\n const bodyNode = new __XmlNode(\"InputSerialization\");\n if (input.CSV != null) {\n const node = se_CSVInput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.CompressionType != null) {\n const node = __XmlNode.of(\"CompressionType\", input.CompressionType).withName(\"CompressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON != null) {\n const node = se_JSONInput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n if (input.Parquet != null) {\n const node = se_ParquetInput(input.Parquet, context).withName(\"Parquet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_IntelligentTieringAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"IntelligentTieringAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_IntelligentTieringConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"IntelligentTieringConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"IntelligentTieringId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_IntelligentTieringFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"IntelligentTieringStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Tierings != null) {\n const nodes = se_TieringList(input.Tierings, context);\n nodes.map((node) => {\n node = node.withName(\"Tiering\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_IntelligentTieringFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"IntelligentTieringFilter\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tag != null) {\n const node = se_Tag(input.Tag, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n }\n if (input.And != null) {\n const node = se_IntelligentTieringAndOperator(input.And, context).withName(\"And\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryConfiguration\");\n if (input.Destination != null) {\n const node = se_InventoryDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.IsEnabled != null) {\n const node = __XmlNode.of(\"IsEnabled\", String(input.IsEnabled)).withName(\"IsEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_InventoryFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Id != null) {\n const node = __XmlNode.of(\"InventoryId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.IncludedObjectVersions != null) {\n const node = __XmlNode\n .of(\"InventoryIncludedObjectVersions\", input.IncludedObjectVersions)\n .withName(\"IncludedObjectVersions\");\n bodyNode.addChildNode(node);\n }\n if (input.OptionalFields != null) {\n const nodes = se_InventoryOptionalFields(input.OptionalFields, context);\n const containerNode = new __XmlNode(\"OptionalFields\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Schedule != null) {\n const node = se_InventorySchedule(input.Schedule, context).withName(\"Schedule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryDestination\");\n if (input.S3BucketDestination != null) {\n const node = se_InventoryS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryEncryption = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryEncryption\");\n if (input.SSES3 != null) {\n const node = se_SSES3(input.SSES3, context).withName(\"SSE-S3\");\n bodyNode.addChildNode(node);\n }\n if (input.SSEKMS != null) {\n const node = se_SSEKMS(input.SSEKMS, context).withName(\"SSE-KMS\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryFilter\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryOptionalFields = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"InventoryOptionalField\", entry);\n return node.withName(\"Field\");\n });\n};\nconst se_InventoryS3BucketDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryS3BucketDestination\");\n if (input.AccountId != null) {\n const node = __XmlNode.of(\"AccountId\", input.AccountId).withName(\"AccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket != null) {\n const node = __XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Format != null) {\n const node = __XmlNode.of(\"InventoryFormat\", input.Format).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption != null) {\n const node = se_InventoryEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventorySchedule = (input, context) => {\n const bodyNode = new __XmlNode(\"InventorySchedule\");\n if (input.Frequency != null) {\n const node = __XmlNode.of(\"InventoryFrequency\", input.Frequency).withName(\"Frequency\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_JSONInput = (input, context) => {\n const bodyNode = new __XmlNode(\"JSONInput\");\n if (input.Type != null) {\n const node = __XmlNode.of(\"JSONType\", input.Type).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_JSONOutput = (input, context) => {\n const bodyNode = new __XmlNode(\"JSONOutput\");\n if (input.RecordDelimiter != null) {\n const node = __XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LambdaFunctionConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"LambdaFunctionConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.LambdaFunctionArn != null) {\n const node = __XmlNode.of(\"LambdaFunctionArn\", input.LambdaFunctionArn).withName(\"CloudFunction\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = se_EventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = se_NotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LambdaFunctionConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_LambdaFunctionConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_LifecycleExpiration = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleExpiration\");\n if (input.Date != null) {\n const node = __XmlNode.of(\"Date\", (input.Date.toISOString().split(\".\")[0] + \"Z\").toString()).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpiredObjectDeleteMarker != null) {\n const node = __XmlNode\n .of(\"ExpiredObjectDeleteMarker\", String(input.ExpiredObjectDeleteMarker))\n .withName(\"ExpiredObjectDeleteMarker\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LifecycleRule = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleRule\");\n if (input.Expiration != null) {\n const node = se_LifecycleExpiration(input.Expiration, context).withName(\"Expiration\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_LifecycleRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"ExpirationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Transitions != null) {\n const nodes = se_TransitionList(input.Transitions, context);\n nodes.map((node) => {\n node = node.withName(\"Transition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionTransitions != null) {\n const nodes = se_NoncurrentVersionTransitionList(input.NoncurrentVersionTransitions, context);\n nodes.map((node) => {\n node = node.withName(\"NoncurrentVersionTransition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionExpiration != null) {\n const node = se_NoncurrentVersionExpiration(input.NoncurrentVersionExpiration, context).withName(\"NoncurrentVersionExpiration\");\n bodyNode.addChildNode(node);\n }\n if (input.AbortIncompleteMultipartUpload != null) {\n const node = se_AbortIncompleteMultipartUpload(input.AbortIncompleteMultipartUpload, context).withName(\"AbortIncompleteMultipartUpload\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LifecycleRuleAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleRuleAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ObjectSizeGreaterThan != null) {\n const node = __XmlNode\n .of(\"ObjectSizeGreaterThanBytes\", String(input.ObjectSizeGreaterThan))\n .withName(\"ObjectSizeGreaterThan\");\n bodyNode.addChildNode(node);\n }\n if (input.ObjectSizeLessThan != null) {\n const node = __XmlNode\n .of(\"ObjectSizeLessThanBytes\", String(input.ObjectSizeLessThan))\n .withName(\"ObjectSizeLessThan\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LifecycleRuleFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleRuleFilter\");\n LifecycleRuleFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n ObjectSizeGreaterThan: (value) => {\n const node = __XmlNode.of(\"ObjectSizeGreaterThanBytes\", String(value)).withName(\"ObjectSizeGreaterThan\");\n bodyNode.addChildNode(node);\n },\n ObjectSizeLessThan: (value) => {\n const node = __XmlNode.of(\"ObjectSizeLessThanBytes\", String(value)).withName(\"ObjectSizeLessThan\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_LifecycleRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_LifecycleRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_LifecycleRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_LoggingEnabled = (input, context) => {\n const bodyNode = new __XmlNode(\"LoggingEnabled\");\n if (input.TargetBucket != null) {\n const node = __XmlNode.of(\"TargetBucket\", input.TargetBucket).withName(\"TargetBucket\");\n bodyNode.addChildNode(node);\n }\n if (input.TargetGrants != null) {\n const nodes = se_TargetGrants(input.TargetGrants, context);\n const containerNode = new __XmlNode(\"TargetGrants\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.TargetPrefix != null) {\n const node = __XmlNode.of(\"TargetPrefix\", input.TargetPrefix).withName(\"TargetPrefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetadataEntry = (input, context) => {\n const bodyNode = new __XmlNode(\"MetadataEntry\");\n if (input.Name != null) {\n const node = __XmlNode.of(\"MetadataKey\", input.Name).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = __XmlNode.of(\"MetadataValue\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Metrics = (input, context) => {\n const bodyNode = new __XmlNode(\"Metrics\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"MetricsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.EventThreshold != null) {\n const node = se_ReplicationTimeValue(input.EventThreshold, context).withName(\"EventThreshold\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetricsAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"MetricsAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AccessPointArn != null) {\n const node = __XmlNode.of(\"AccessPointArn\", input.AccessPointArn).withName(\"AccessPointArn\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetricsConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"MetricsConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"MetricsId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_MetricsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetricsFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"MetricsFilter\");\n MetricsFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n AccessPointArn: (value) => {\n const node = __XmlNode.of(\"AccessPointArn\", value).withName(\"AccessPointArn\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_MetricsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_NoncurrentVersionExpiration = (input, context) => {\n const bodyNode = new __XmlNode(\"NoncurrentVersionExpiration\");\n if (input.NoncurrentDays != null) {\n const node = __XmlNode.of(\"Days\", String(input.NoncurrentDays)).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.NewerNoncurrentVersions != null) {\n const node = __XmlNode\n .of(\"VersionCount\", String(input.NewerNoncurrentVersions))\n .withName(\"NewerNoncurrentVersions\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_NoncurrentVersionTransition = (input, context) => {\n const bodyNode = new __XmlNode(\"NoncurrentVersionTransition\");\n if (input.NoncurrentDays != null) {\n const node = __XmlNode.of(\"Days\", String(input.NoncurrentDays)).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"TransitionStorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.NewerNoncurrentVersions != null) {\n const node = __XmlNode\n .of(\"VersionCount\", String(input.NewerNoncurrentVersions))\n .withName(\"NewerNoncurrentVersions\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_NoncurrentVersionTransitionList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_NoncurrentVersionTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_NotificationConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"NotificationConfiguration\");\n if (input.TopicConfigurations != null) {\n const nodes = se_TopicConfigurationList(input.TopicConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"TopicConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.QueueConfigurations != null) {\n const nodes = se_QueueConfigurationList(input.QueueConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"QueueConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.LambdaFunctionConfigurations != null) {\n const nodes = se_LambdaFunctionConfigurationList(input.LambdaFunctionConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"CloudFunctionConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.EventBridgeConfiguration != null) {\n const node = se_EventBridgeConfiguration(input.EventBridgeConfiguration, context).withName(\"EventBridgeConfiguration\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_NotificationConfigurationFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"NotificationConfigurationFilter\");\n if (input.Key != null) {\n const node = se_S3KeyFilter(input.Key, context).withName(\"S3Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectIdentifier = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectIdentifier\");\n if (input.Key != null) {\n const node = __XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.VersionId != null) {\n const node = __XmlNode.of(\"ObjectVersionId\", input.VersionId).withName(\"VersionId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectIdentifierList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_ObjectIdentifier(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_ObjectLockConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockConfiguration\");\n if (input.ObjectLockEnabled != null) {\n const node = __XmlNode.of(\"ObjectLockEnabled\", input.ObjectLockEnabled).withName(\"ObjectLockEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Rule != null) {\n const node = se_ObjectLockRule(input.Rule, context).withName(\"Rule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectLockLegalHold = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockLegalHold\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ObjectLockLegalHoldStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectLockRetention = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockRetention\");\n if (input.Mode != null) {\n const node = __XmlNode.of(\"ObjectLockRetentionMode\", input.Mode).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.RetainUntilDate != null) {\n const node = __XmlNode\n .of(\"Date\", (input.RetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString())\n .withName(\"RetainUntilDate\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectLockRule = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockRule\");\n if (input.DefaultRetention != null) {\n const node = se_DefaultRetention(input.DefaultRetention, context).withName(\"DefaultRetention\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OutputLocation = (input, context) => {\n const bodyNode = new __XmlNode(\"OutputLocation\");\n if (input.S3 != null) {\n const node = se_S3Location(input.S3, context).withName(\"S3\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OutputSerialization = (input, context) => {\n const bodyNode = new __XmlNode(\"OutputSerialization\");\n if (input.CSV != null) {\n const node = se_CSVOutput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON != null) {\n const node = se_JSONOutput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Owner = (input, context) => {\n const bodyNode = new __XmlNode(\"Owner\");\n if (input.DisplayName != null) {\n const node = __XmlNode.of(\"DisplayName\", input.DisplayName).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OwnershipControls = (input, context) => {\n const bodyNode = new __XmlNode(\"OwnershipControls\");\n if (input.Rules != null) {\n const nodes = se_OwnershipControlsRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_OwnershipControlsRule = (input, context) => {\n const bodyNode = new __XmlNode(\"OwnershipControlsRule\");\n if (input.ObjectOwnership != null) {\n const node = __XmlNode.of(\"ObjectOwnership\", input.ObjectOwnership).withName(\"ObjectOwnership\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OwnershipControlsRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_OwnershipControlsRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_ParquetInput = (input, context) => {\n const bodyNode = new __XmlNode(\"ParquetInput\");\n return bodyNode;\n};\nconst se_PublicAccessBlockConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"PublicAccessBlockConfiguration\");\n if (input.BlockPublicAcls != null) {\n const node = __XmlNode.of(\"Setting\", String(input.BlockPublicAcls)).withName(\"BlockPublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.IgnorePublicAcls != null) {\n const node = __XmlNode.of(\"Setting\", String(input.IgnorePublicAcls)).withName(\"IgnorePublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.BlockPublicPolicy != null) {\n const node = __XmlNode.of(\"Setting\", String(input.BlockPublicPolicy)).withName(\"BlockPublicPolicy\");\n bodyNode.addChildNode(node);\n }\n if (input.RestrictPublicBuckets != null) {\n const node = __XmlNode.of(\"Setting\", String(input.RestrictPublicBuckets)).withName(\"RestrictPublicBuckets\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_QueueConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"QueueConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.QueueArn != null) {\n const node = __XmlNode.of(\"QueueArn\", input.QueueArn).withName(\"Queue\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = se_EventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = se_NotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_QueueConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_QueueConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_Redirect = (input, context) => {\n const bodyNode = new __XmlNode(\"Redirect\");\n if (input.HostName != null) {\n const node = __XmlNode.of(\"HostName\", input.HostName).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.HttpRedirectCode != null) {\n const node = __XmlNode.of(\"HttpRedirectCode\", input.HttpRedirectCode).withName(\"HttpRedirectCode\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol != null) {\n const node = __XmlNode.of(\"Protocol\", input.Protocol).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyPrefixWith != null) {\n const node = __XmlNode.of(\"ReplaceKeyPrefixWith\", input.ReplaceKeyPrefixWith).withName(\"ReplaceKeyPrefixWith\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyWith != null) {\n const node = __XmlNode.of(\"ReplaceKeyWith\", input.ReplaceKeyWith).withName(\"ReplaceKeyWith\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RedirectAllRequestsTo = (input, context) => {\n const bodyNode = new __XmlNode(\"RedirectAllRequestsTo\");\n if (input.HostName != null) {\n const node = __XmlNode.of(\"HostName\", input.HostName).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol != null) {\n const node = __XmlNode.of(\"Protocol\", input.Protocol).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicaModifications = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicaModifications\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ReplicaModificationsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicationConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationConfiguration\");\n if (input.Role != null) {\n const node = __XmlNode.of(\"Role\", input.Role).withName(\"Role\");\n bodyNode.addChildNode(node);\n }\n if (input.Rules != null) {\n const nodes = se_ReplicationRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_ReplicationRule = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationRule\");\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Priority != null) {\n const node = __XmlNode.of(\"Priority\", String(input.Priority)).withName(\"Priority\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_ReplicationRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"ReplicationRuleStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.SourceSelectionCriteria != null) {\n const node = se_SourceSelectionCriteria(input.SourceSelectionCriteria, context).withName(\"SourceSelectionCriteria\");\n bodyNode.addChildNode(node);\n }\n if (input.ExistingObjectReplication != null) {\n const node = se_ExistingObjectReplication(input.ExistingObjectReplication, context).withName(\"ExistingObjectReplication\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination != null) {\n const node = se_Destination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.DeleteMarkerReplication != null) {\n const node = se_DeleteMarkerReplication(input.DeleteMarkerReplication, context).withName(\"DeleteMarkerReplication\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicationRuleAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationRuleAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_ReplicationRuleFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationRuleFilter\");\n ReplicationRuleFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_ReplicationRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_ReplicationRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_ReplicationRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_ReplicationTime = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationTime\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ReplicationTimeStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Time != null) {\n const node = se_ReplicationTimeValue(input.Time, context).withName(\"Time\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicationTimeValue = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationTimeValue\");\n if (input.Minutes != null) {\n const node = __XmlNode.of(\"Minutes\", String(input.Minutes)).withName(\"Minutes\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RequestPaymentConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"RequestPaymentConfiguration\");\n if (input.Payer != null) {\n const node = __XmlNode.of(\"Payer\", input.Payer).withName(\"Payer\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RequestProgress = (input, context) => {\n const bodyNode = new __XmlNode(\"RequestProgress\");\n if (input.Enabled != null) {\n const node = __XmlNode.of(\"EnableRequestProgress\", String(input.Enabled)).withName(\"Enabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RestoreRequest = (input, context) => {\n const bodyNode = new __XmlNode(\"RestoreRequest\");\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.GlacierJobParameters != null) {\n const node = se_GlacierJobParameters(input.GlacierJobParameters, context).withName(\"GlacierJobParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.Type != null) {\n const node = __XmlNode.of(\"RestoreRequestType\", input.Type).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n if (input.Tier != null) {\n const node = __XmlNode.of(\"Tier\", input.Tier).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n if (input.Description != null) {\n const node = __XmlNode.of(\"Description\", input.Description).withName(\"Description\");\n bodyNode.addChildNode(node);\n }\n if (input.SelectParameters != null) {\n const node = se_SelectParameters(input.SelectParameters, context).withName(\"SelectParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputLocation != null) {\n const node = se_OutputLocation(input.OutputLocation, context).withName(\"OutputLocation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RoutingRule = (input, context) => {\n const bodyNode = new __XmlNode(\"RoutingRule\");\n if (input.Condition != null) {\n const node = se_Condition(input.Condition, context).withName(\"Condition\");\n bodyNode.addChildNode(node);\n }\n if (input.Redirect != null) {\n const node = se_Redirect(input.Redirect, context).withName(\"Redirect\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RoutingRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_RoutingRule(entry, context);\n return node.withName(\"RoutingRule\");\n });\n};\nconst se_S3KeyFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"S3KeyFilter\");\n if (input.FilterRules != null) {\n const nodes = se_FilterRuleList(input.FilterRules, context);\n nodes.map((node) => {\n node = node.withName(\"FilterRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_S3Location = (input, context) => {\n const bodyNode = new __XmlNode(\"S3Location\");\n if (input.BucketName != null) {\n const node = __XmlNode.of(\"BucketName\", input.BucketName).withName(\"BucketName\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"LocationPrefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption != null) {\n const node = se_Encryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n if (input.CannedACL != null) {\n const node = __XmlNode.of(\"ObjectCannedACL\", input.CannedACL).withName(\"CannedACL\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlList != null) {\n const nodes = se_Grants(input.AccessControlList, context);\n const containerNode = new __XmlNode(\"AccessControlList\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Tagging != null) {\n const node = se_Tagging(input.Tagging, context).withName(\"Tagging\");\n bodyNode.addChildNode(node);\n }\n if (input.UserMetadata != null) {\n const nodes = se_UserMetadata(input.UserMetadata, context);\n const containerNode = new __XmlNode(\"UserMetadata\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"StorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ScanRange = (input, context) => {\n const bodyNode = new __XmlNode(\"ScanRange\");\n if (input.Start != null) {\n const node = __XmlNode.of(\"Start\", String(input.Start)).withName(\"Start\");\n bodyNode.addChildNode(node);\n }\n if (input.End != null) {\n const node = __XmlNode.of(\"End\", String(input.End)).withName(\"End\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SelectParameters = (input, context) => {\n const bodyNode = new __XmlNode(\"SelectParameters\");\n if (input.InputSerialization != null) {\n const node = se_InputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType != null) {\n const node = __XmlNode.of(\"ExpressionType\", input.ExpressionType).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.Expression != null) {\n const node = __XmlNode.of(\"Expression\", input.Expression).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization != null) {\n const node = se_OutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionByDefault = (input, context) => {\n const bodyNode = new __XmlNode(\"ServerSideEncryptionByDefault\");\n if (input.SSEAlgorithm != null) {\n const node = __XmlNode.of(\"ServerSideEncryption\", input.SSEAlgorithm).withName(\"SSEAlgorithm\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSMasterKeyID != null) {\n const node = __XmlNode.of(\"SSEKMSKeyId\", input.KMSMasterKeyID).withName(\"KMSMasterKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"ServerSideEncryptionConfiguration\");\n if (input.Rules != null) {\n const nodes = se_ServerSideEncryptionRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionRule = (input, context) => {\n const bodyNode = new __XmlNode(\"ServerSideEncryptionRule\");\n if (input.ApplyServerSideEncryptionByDefault != null) {\n const node = se_ServerSideEncryptionByDefault(input.ApplyServerSideEncryptionByDefault, context).withName(\"ApplyServerSideEncryptionByDefault\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketKeyEnabled != null) {\n const node = __XmlNode.of(\"BucketKeyEnabled\", String(input.BucketKeyEnabled)).withName(\"BucketKeyEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_ServerSideEncryptionRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_SourceSelectionCriteria = (input, context) => {\n const bodyNode = new __XmlNode(\"SourceSelectionCriteria\");\n if (input.SseKmsEncryptedObjects != null) {\n const node = se_SseKmsEncryptedObjects(input.SseKmsEncryptedObjects, context).withName(\"SseKmsEncryptedObjects\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicaModifications != null) {\n const node = se_ReplicaModifications(input.ReplicaModifications, context).withName(\"ReplicaModifications\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SSEKMS = (input, context) => {\n const bodyNode = new __XmlNode(\"SSE-KMS\");\n if (input.KeyId != null) {\n const node = __XmlNode.of(\"SSEKMSKeyId\", input.KeyId).withName(\"KeyId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SseKmsEncryptedObjects = (input, context) => {\n const bodyNode = new __XmlNode(\"SseKmsEncryptedObjects\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"SseKmsEncryptedObjectsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SSES3 = (input, context) => {\n const bodyNode = new __XmlNode(\"SSE-S3\");\n return bodyNode;\n};\nconst se_StorageClassAnalysis = (input, context) => {\n const bodyNode = new __XmlNode(\"StorageClassAnalysis\");\n if (input.DataExport != null) {\n const node = se_StorageClassAnalysisDataExport(input.DataExport, context).withName(\"DataExport\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_StorageClassAnalysisDataExport = (input, context) => {\n const bodyNode = new __XmlNode(\"StorageClassAnalysisDataExport\");\n if (input.OutputSchemaVersion != null) {\n const node = __XmlNode\n .of(\"StorageClassAnalysisSchemaVersion\", input.OutputSchemaVersion)\n .withName(\"OutputSchemaVersion\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination != null) {\n const node = se_AnalyticsExportDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Tag = (input, context) => {\n const bodyNode = new __XmlNode(\"Tag\");\n if (input.Key != null) {\n const node = __XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = __XmlNode.of(\"Value\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Tagging = (input, context) => {\n const bodyNode = new __XmlNode(\"Tagging\");\n if (input.TagSet != null) {\n const nodes = se_TagSet(input.TagSet, context);\n const containerNode = new __XmlNode(\"TagSet\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n return bodyNode;\n};\nconst se_TagSet = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Tag(entry, context);\n return node.withName(\"Tag\");\n });\n};\nconst se_TargetGrant = (input, context) => {\n const bodyNode = new __XmlNode(\"TargetGrant\");\n if (input.Grantee != null) {\n const node = se_Grantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission != null) {\n const node = __XmlNode.of(\"BucketLogsPermission\", input.Permission).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TargetGrants = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_TargetGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nconst se_Tiering = (input, context) => {\n const bodyNode = new __XmlNode(\"Tiering\");\n if (input.Days != null) {\n const node = __XmlNode.of(\"IntelligentTieringDays\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessTier != null) {\n const node = __XmlNode.of(\"IntelligentTieringAccessTier\", input.AccessTier).withName(\"AccessTier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TieringList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Tiering(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_TopicConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"TopicConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.TopicArn != null) {\n const node = __XmlNode.of(\"TopicArn\", input.TopicArn).withName(\"Topic\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = se_EventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = se_NotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TopicConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_TopicConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_Transition = (input, context) => {\n const bodyNode = new __XmlNode(\"Transition\");\n if (input.Date != null) {\n const node = __XmlNode.of(\"Date\", (input.Date.toISOString().split(\".\")[0] + \"Z\").toString()).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"TransitionStorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TransitionList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Transition(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_UserMetadata = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_MetadataEntry(entry, context);\n return node.withName(\"MetadataEntry\");\n });\n};\nconst se_VersioningConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"VersioningConfiguration\");\n if (input.MFADelete != null) {\n const node = __XmlNode.of(\"MFADelete\", input.MFADelete).withName(\"MfaDelete\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"BucketVersioningStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_WebsiteConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"WebsiteConfiguration\");\n if (input.ErrorDocument != null) {\n const node = se_ErrorDocument(input.ErrorDocument, context).withName(\"ErrorDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.IndexDocument != null) {\n const node = se_IndexDocument(input.IndexDocument, context).withName(\"IndexDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.RedirectAllRequestsTo != null) {\n const node = se_RedirectAllRequestsTo(input.RedirectAllRequestsTo, context).withName(\"RedirectAllRequestsTo\");\n bodyNode.addChildNode(node);\n }\n if (input.RoutingRules != null) {\n const nodes = se_RoutingRules(input.RoutingRules, context);\n const containerNode = new __XmlNode(\"RoutingRules\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n return bodyNode;\n};\nconst de_AbortIncompleteMultipartUpload = (output, context) => {\n const contents = {};\n if (output[\"DaysAfterInitiation\"] !== undefined) {\n contents.DaysAfterInitiation = __strictParseInt32(output[\"DaysAfterInitiation\"]);\n }\n return contents;\n};\nconst de_AccessControlTranslation = (output, context) => {\n const contents = {};\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = __expectString(output[\"Owner\"]);\n }\n return contents;\n};\nconst de_AllowedHeaders = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_AllowedMethods = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_AllowedOrigins = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_AnalyticsAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst de_AnalyticsConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_AnalyticsFilter(__expectUnion(output[\"Filter\"]), context);\n }\n if (output[\"StorageClassAnalysis\"] !== undefined) {\n contents.StorageClassAnalysis = de_StorageClassAnalysis(output[\"StorageClassAnalysis\"], context);\n }\n return contents;\n};\nconst de_AnalyticsConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_AnalyticsConfiguration(entry, context);\n });\n};\nconst de_AnalyticsExportDestination = (output, context) => {\n const contents = {};\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = de_AnalyticsS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nconst de_AnalyticsFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_AnalyticsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_AnalyticsS3BucketDestination = (output, context) => {\n const contents = {};\n if (output[\"Format\"] !== undefined) {\n contents.Format = __expectString(output[\"Format\"]);\n }\n if (output[\"BucketAccountId\"] !== undefined) {\n contents.BucketAccountId = __expectString(output[\"BucketAccountId\"]);\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n return contents;\n};\nconst de_Bucket = (output, context) => {\n const contents = {};\n if (output[\"Name\"] !== undefined) {\n contents.Name = __expectString(output[\"Name\"]);\n }\n if (output[\"CreationDate\"] !== undefined) {\n contents.CreationDate = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"CreationDate\"]));\n }\n return contents;\n};\nconst de_Buckets = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Bucket(entry, context);\n });\n};\nconst de_Checksum = (output, context) => {\n const contents = {};\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_ChecksumAlgorithmList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_CommonPrefix = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n return contents;\n};\nconst de_CommonPrefixList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_CommonPrefix(entry, context);\n });\n};\nconst de_Condition = (output, context) => {\n const contents = {};\n if (output[\"HttpErrorCodeReturnedEquals\"] !== undefined) {\n contents.HttpErrorCodeReturnedEquals = __expectString(output[\"HttpErrorCodeReturnedEquals\"]);\n }\n if (output[\"KeyPrefixEquals\"] !== undefined) {\n contents.KeyPrefixEquals = __expectString(output[\"KeyPrefixEquals\"]);\n }\n return contents;\n};\nconst de_ContinuationEvent = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de_CopyObjectResult = (output, context) => {\n const contents = {};\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_CopyPartResult = (output, context) => {\n const contents = {};\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_CORSRule = (output, context) => {\n const contents = {};\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output.AllowedHeader === \"\") {\n contents.AllowedHeaders = [];\n }\n else if (output[\"AllowedHeader\"] !== undefined) {\n contents.AllowedHeaders = de_AllowedHeaders(__getArrayIfSingleItem(output[\"AllowedHeader\"]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents.AllowedMethods = [];\n }\n else if (output[\"AllowedMethod\"] !== undefined) {\n contents.AllowedMethods = de_AllowedMethods(__getArrayIfSingleItem(output[\"AllowedMethod\"]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents.AllowedOrigins = [];\n }\n else if (output[\"AllowedOrigin\"] !== undefined) {\n contents.AllowedOrigins = de_AllowedOrigins(__getArrayIfSingleItem(output[\"AllowedOrigin\"]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents.ExposeHeaders = [];\n }\n else if (output[\"ExposeHeader\"] !== undefined) {\n contents.ExposeHeaders = de_ExposeHeaders(__getArrayIfSingleItem(output[\"ExposeHeader\"]), context);\n }\n if (output[\"MaxAgeSeconds\"] !== undefined) {\n contents.MaxAgeSeconds = __strictParseInt32(output[\"MaxAgeSeconds\"]);\n }\n return contents;\n};\nconst de_CORSRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_CORSRule(entry, context);\n });\n};\nconst de_DefaultRetention = (output, context) => {\n const contents = {};\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = __expectString(output[\"Mode\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"Years\"] !== undefined) {\n contents.Years = __strictParseInt32(output[\"Years\"]);\n }\n return contents;\n};\nconst de_DeletedObject = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarker = __parseBoolean(output[\"DeleteMarker\"]);\n }\n if (output[\"DeleteMarkerVersionId\"] !== undefined) {\n contents.DeleteMarkerVersionId = __expectString(output[\"DeleteMarkerVersionId\"]);\n }\n return contents;\n};\nconst de_DeletedObjects = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_DeletedObject(entry, context);\n });\n};\nconst de_DeleteMarkerEntry = (output, context) => {\n const contents = {};\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = __parseBoolean(output[\"IsLatest\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n return contents;\n};\nconst de_DeleteMarkerReplication = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_DeleteMarkers = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_DeleteMarkerEntry(entry, context);\n });\n};\nconst de_Destination = (output, context) => {\n const contents = {};\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n if (output[\"Account\"] !== undefined) {\n contents.Account = __expectString(output[\"Account\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"AccessControlTranslation\"] !== undefined) {\n contents.AccessControlTranslation = de_AccessControlTranslation(output[\"AccessControlTranslation\"], context);\n }\n if (output[\"EncryptionConfiguration\"] !== undefined) {\n contents.EncryptionConfiguration = de_EncryptionConfiguration(output[\"EncryptionConfiguration\"], context);\n }\n if (output[\"ReplicationTime\"] !== undefined) {\n contents.ReplicationTime = de_ReplicationTime(output[\"ReplicationTime\"], context);\n }\n if (output[\"Metrics\"] !== undefined) {\n contents.Metrics = de_Metrics(output[\"Metrics\"], context);\n }\n return contents;\n};\nconst de_EncryptionConfiguration = (output, context) => {\n const contents = {};\n if (output[\"ReplicaKmsKeyID\"] !== undefined) {\n contents.ReplicaKmsKeyID = __expectString(output[\"ReplicaKmsKeyID\"]);\n }\n return contents;\n};\nconst de_EndEvent = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de__Error = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"Code\"] !== undefined) {\n contents.Code = __expectString(output[\"Code\"]);\n }\n if (output[\"Message\"] !== undefined) {\n contents.Message = __expectString(output[\"Message\"]);\n }\n return contents;\n};\nconst de_ErrorDocument = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n return contents;\n};\nconst de_Errors = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de__Error(entry, context);\n });\n};\nconst de_EventBridgeConfiguration = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de_EventList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_ExistingObjectReplication = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_ExposeHeaders = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_FilterRule = (output, context) => {\n const contents = {};\n if (output[\"Name\"] !== undefined) {\n contents.Name = __expectString(output[\"Name\"]);\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = __expectString(output[\"Value\"]);\n }\n return contents;\n};\nconst de_FilterRuleList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_FilterRule(entry, context);\n });\n};\nconst de_GetObjectAttributesParts = (output, context) => {\n const contents = {};\n if (output[\"PartsCount\"] !== undefined) {\n contents.TotalPartsCount = __strictParseInt32(output[\"PartsCount\"]);\n }\n if (output[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = __expectString(output[\"PartNumberMarker\"]);\n }\n if (output[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = __expectString(output[\"NextPartNumberMarker\"]);\n }\n if (output[\"MaxParts\"] !== undefined) {\n contents.MaxParts = __strictParseInt32(output[\"MaxParts\"]);\n }\n if (output[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(output[\"IsTruncated\"]);\n }\n if (output.Part === \"\") {\n contents.Parts = [];\n }\n else if (output[\"Part\"] !== undefined) {\n contents.Parts = de_PartsList(__getArrayIfSingleItem(output[\"Part\"]), context);\n }\n return contents;\n};\nconst de_Grant = (output, context) => {\n const contents = {};\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = de_Grantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = __expectString(output[\"Permission\"]);\n }\n return contents;\n};\nconst de_Grantee = (output, context) => {\n const contents = {};\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n if (output[\"EmailAddress\"] !== undefined) {\n contents.EmailAddress = __expectString(output[\"EmailAddress\"]);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"URI\"] !== undefined) {\n contents.URI = __expectString(output[\"URI\"]);\n }\n if (output[\"xsi:type\"] !== undefined) {\n contents.Type = __expectString(output[\"xsi:type\"]);\n }\n return contents;\n};\nconst de_Grants = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Grant(entry, context);\n });\n};\nconst de_IndexDocument = (output, context) => {\n const contents = {};\n if (output[\"Suffix\"] !== undefined) {\n contents.Suffix = __expectString(output[\"Suffix\"]);\n }\n return contents;\n};\nconst de_Initiator = (output, context) => {\n const contents = {};\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n return contents;\n};\nconst de_IntelligentTieringAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst de_IntelligentTieringConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_IntelligentTieringFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output.Tiering === \"\") {\n contents.Tierings = [];\n }\n else if (output[\"Tiering\"] !== undefined) {\n contents.Tierings = de_TieringList(__getArrayIfSingleItem(output[\"Tiering\"]), context);\n }\n return contents;\n};\nconst de_IntelligentTieringConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_IntelligentTieringConfiguration(entry, context);\n });\n};\nconst de_IntelligentTieringFilter = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tag = de_Tag(output[\"Tag\"], context);\n }\n if (output[\"And\"] !== undefined) {\n contents.And = de_IntelligentTieringAndOperator(output[\"And\"], context);\n }\n return contents;\n};\nconst de_InventoryConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = de_InventoryDestination(output[\"Destination\"], context);\n }\n if (output[\"IsEnabled\"] !== undefined) {\n contents.IsEnabled = __parseBoolean(output[\"IsEnabled\"]);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_InventoryFilter(output[\"Filter\"], context);\n }\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"IncludedObjectVersions\"] !== undefined) {\n contents.IncludedObjectVersions = __expectString(output[\"IncludedObjectVersions\"]);\n }\n if (output.OptionalFields === \"\") {\n contents.OptionalFields = [];\n }\n else if (output[\"OptionalFields\"] !== undefined && output[\"OptionalFields\"][\"Field\"] !== undefined) {\n contents.OptionalFields = de_InventoryOptionalFields(__getArrayIfSingleItem(output[\"OptionalFields\"][\"Field\"]), context);\n }\n if (output[\"Schedule\"] !== undefined) {\n contents.Schedule = de_InventorySchedule(output[\"Schedule\"], context);\n }\n return contents;\n};\nconst de_InventoryConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_InventoryConfiguration(entry, context);\n });\n};\nconst de_InventoryDestination = (output, context) => {\n const contents = {};\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = de_InventoryS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nconst de_InventoryEncryption = (output, context) => {\n const contents = {};\n if (output[\"SSE-S3\"] !== undefined) {\n contents.SSES3 = de_SSES3(output[\"SSE-S3\"], context);\n }\n if (output[\"SSE-KMS\"] !== undefined) {\n contents.SSEKMS = de_SSEKMS(output[\"SSE-KMS\"], context);\n }\n return contents;\n};\nconst de_InventoryFilter = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n return contents;\n};\nconst de_InventoryOptionalFields = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_InventoryS3BucketDestination = (output, context) => {\n const contents = {};\n if (output[\"AccountId\"] !== undefined) {\n contents.AccountId = __expectString(output[\"AccountId\"]);\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n if (output[\"Format\"] !== undefined) {\n contents.Format = __expectString(output[\"Format\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output[\"Encryption\"] !== undefined) {\n contents.Encryption = de_InventoryEncryption(output[\"Encryption\"], context);\n }\n return contents;\n};\nconst de_InventorySchedule = (output, context) => {\n const contents = {};\n if (output[\"Frequency\"] !== undefined) {\n contents.Frequency = __expectString(output[\"Frequency\"]);\n }\n return contents;\n};\nconst de_LambdaFunctionConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"CloudFunction\"] !== undefined) {\n contents.LambdaFunctionArn = __expectString(output[\"CloudFunction\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = de_EventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_NotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst de_LambdaFunctionConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_LambdaFunctionConfiguration(entry, context);\n });\n};\nconst de_LifecycleExpiration = (output, context) => {\n const contents = {};\n if (output[\"Date\"] !== undefined) {\n contents.Date = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"Date\"]));\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"ExpiredObjectDeleteMarker\"] !== undefined) {\n contents.ExpiredObjectDeleteMarker = __parseBoolean(output[\"ExpiredObjectDeleteMarker\"]);\n }\n return contents;\n};\nconst de_LifecycleRule = (output, context) => {\n const contents = {};\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = de_LifecycleExpiration(output[\"Expiration\"], context);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_LifecycleRuleFilter(__expectUnion(output[\"Filter\"]), context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output.Transition === \"\") {\n contents.Transitions = [];\n }\n else if (output[\"Transition\"] !== undefined) {\n contents.Transitions = de_TransitionList(__getArrayIfSingleItem(output[\"Transition\"]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents.NoncurrentVersionTransitions = [];\n }\n else if (output[\"NoncurrentVersionTransition\"] !== undefined) {\n contents.NoncurrentVersionTransitions = de_NoncurrentVersionTransitionList(__getArrayIfSingleItem(output[\"NoncurrentVersionTransition\"]), context);\n }\n if (output[\"NoncurrentVersionExpiration\"] !== undefined) {\n contents.NoncurrentVersionExpiration = de_NoncurrentVersionExpiration(output[\"NoncurrentVersionExpiration\"], context);\n }\n if (output[\"AbortIncompleteMultipartUpload\"] !== undefined) {\n contents.AbortIncompleteMultipartUpload = de_AbortIncompleteMultipartUpload(output[\"AbortIncompleteMultipartUpload\"], context);\n }\n return contents;\n};\nconst de_LifecycleRuleAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n if (output[\"ObjectSizeGreaterThan\"] !== undefined) {\n contents.ObjectSizeGreaterThan = __strictParseLong(output[\"ObjectSizeGreaterThan\"]);\n }\n if (output[\"ObjectSizeLessThan\"] !== undefined) {\n contents.ObjectSizeLessThan = __strictParseLong(output[\"ObjectSizeLessThan\"]);\n }\n return contents;\n};\nconst de_LifecycleRuleFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"ObjectSizeGreaterThan\"] !== undefined) {\n return {\n ObjectSizeGreaterThan: __strictParseLong(output[\"ObjectSizeGreaterThan\"]),\n };\n }\n if (output[\"ObjectSizeLessThan\"] !== undefined) {\n return {\n ObjectSizeLessThan: __strictParseLong(output[\"ObjectSizeLessThan\"]),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_LifecycleRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_LifecycleRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_LifecycleRule(entry, context);\n });\n};\nconst de_LoggingEnabled = (output, context) => {\n const contents = {};\n if (output[\"TargetBucket\"] !== undefined) {\n contents.TargetBucket = __expectString(output[\"TargetBucket\"]);\n }\n if (output.TargetGrants === \"\") {\n contents.TargetGrants = [];\n }\n else if (output[\"TargetGrants\"] !== undefined && output[\"TargetGrants\"][\"Grant\"] !== undefined) {\n contents.TargetGrants = de_TargetGrants(__getArrayIfSingleItem(output[\"TargetGrants\"][\"Grant\"]), context);\n }\n if (output[\"TargetPrefix\"] !== undefined) {\n contents.TargetPrefix = __expectString(output[\"TargetPrefix\"]);\n }\n return contents;\n};\nconst de_Metrics = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output[\"EventThreshold\"] !== undefined) {\n contents.EventThreshold = de_ReplicationTimeValue(output[\"EventThreshold\"], context);\n }\n return contents;\n};\nconst de_MetricsAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n if (output[\"AccessPointArn\"] !== undefined) {\n contents.AccessPointArn = __expectString(output[\"AccessPointArn\"]);\n }\n return contents;\n};\nconst de_MetricsConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_MetricsFilter(__expectUnion(output[\"Filter\"]), context);\n }\n return contents;\n};\nconst de_MetricsConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_MetricsConfiguration(entry, context);\n });\n};\nconst de_MetricsFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"AccessPointArn\"] !== undefined) {\n return {\n AccessPointArn: __expectString(output[\"AccessPointArn\"]),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_MetricsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_MultipartUpload = (output, context) => {\n const contents = {};\n if (output[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(output[\"UploadId\"]);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"Initiated\"] !== undefined) {\n contents.Initiated = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"Initiated\"]));\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n if (output[\"Initiator\"] !== undefined) {\n contents.Initiator = de_Initiator(output[\"Initiator\"], context);\n }\n if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = __expectString(output[\"ChecksumAlgorithm\"]);\n }\n return contents;\n};\nconst de_MultipartUploadList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_MultipartUpload(entry, context);\n });\n};\nconst de_NoncurrentVersionExpiration = (output, context) => {\n const contents = {};\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = __strictParseInt32(output[\"NoncurrentDays\"]);\n }\n if (output[\"NewerNoncurrentVersions\"] !== undefined) {\n contents.NewerNoncurrentVersions = __strictParseInt32(output[\"NewerNoncurrentVersions\"]);\n }\n return contents;\n};\nconst de_NoncurrentVersionTransition = (output, context) => {\n const contents = {};\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = __strictParseInt32(output[\"NoncurrentDays\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"NewerNoncurrentVersions\"] !== undefined) {\n contents.NewerNoncurrentVersions = __strictParseInt32(output[\"NewerNoncurrentVersions\"]);\n }\n return contents;\n};\nconst de_NoncurrentVersionTransitionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_NoncurrentVersionTransition(entry, context);\n });\n};\nconst de_NotificationConfigurationFilter = (output, context) => {\n const contents = {};\n if (output[\"S3Key\"] !== undefined) {\n contents.Key = de_S3KeyFilter(output[\"S3Key\"], context);\n }\n return contents;\n};\nconst de__Object = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents.ChecksumAlgorithm = [];\n }\n else if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = de_ChecksumAlgorithmList(__getArrayIfSingleItem(output[\"ChecksumAlgorithm\"]), context);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n return contents;\n};\nconst de_ObjectList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de__Object(entry, context);\n });\n};\nconst de_ObjectLockConfiguration = (output, context) => {\n const contents = {};\n if (output[\"ObjectLockEnabled\"] !== undefined) {\n contents.ObjectLockEnabled = __expectString(output[\"ObjectLockEnabled\"]);\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rule = de_ObjectLockRule(output[\"Rule\"], context);\n }\n return contents;\n};\nconst de_ObjectLockLegalHold = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_ObjectLockRetention = (output, context) => {\n const contents = {};\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = __expectString(output[\"Mode\"]);\n }\n if (output[\"RetainUntilDate\"] !== undefined) {\n contents.RetainUntilDate = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"RetainUntilDate\"]));\n }\n return contents;\n};\nconst de_ObjectLockRule = (output, context) => {\n const contents = {};\n if (output[\"DefaultRetention\"] !== undefined) {\n contents.DefaultRetention = de_DefaultRetention(output[\"DefaultRetention\"], context);\n }\n return contents;\n};\nconst de_ObjectPart = (output, context) => {\n const contents = {};\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = __strictParseInt32(output[\"PartNumber\"]);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_ObjectVersion = (output, context) => {\n const contents = {};\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents.ChecksumAlgorithm = [];\n }\n else if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = de_ChecksumAlgorithmList(__getArrayIfSingleItem(output[\"ChecksumAlgorithm\"]), context);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = __parseBoolean(output[\"IsLatest\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n return contents;\n};\nconst de_ObjectVersionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ObjectVersion(entry, context);\n });\n};\nconst de_Owner = (output, context) => {\n const contents = {};\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n return contents;\n};\nconst de_OwnershipControls = (output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = de_OwnershipControlsRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_OwnershipControlsRule = (output, context) => {\n const contents = {};\n if (output[\"ObjectOwnership\"] !== undefined) {\n contents.ObjectOwnership = __expectString(output[\"ObjectOwnership\"]);\n }\n return contents;\n};\nconst de_OwnershipControlsRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_OwnershipControlsRule(entry, context);\n });\n};\nconst de_Part = (output, context) => {\n const contents = {};\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = __strictParseInt32(output[\"PartNumber\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_Parts = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Part(entry, context);\n });\n};\nconst de_PartsList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ObjectPart(entry, context);\n });\n};\nconst de_PolicyStatus = (output, context) => {\n const contents = {};\n if (output[\"IsPublic\"] !== undefined) {\n contents.IsPublic = __parseBoolean(output[\"IsPublic\"]);\n }\n return contents;\n};\nconst de_Progress = (output, context) => {\n const contents = {};\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = __strictParseLong(output[\"BytesScanned\"]);\n }\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = __strictParseLong(output[\"BytesProcessed\"]);\n }\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = __strictParseLong(output[\"BytesReturned\"]);\n }\n return contents;\n};\nconst de_PublicAccessBlockConfiguration = (output, context) => {\n const contents = {};\n if (output[\"BlockPublicAcls\"] !== undefined) {\n contents.BlockPublicAcls = __parseBoolean(output[\"BlockPublicAcls\"]);\n }\n if (output[\"IgnorePublicAcls\"] !== undefined) {\n contents.IgnorePublicAcls = __parseBoolean(output[\"IgnorePublicAcls\"]);\n }\n if (output[\"BlockPublicPolicy\"] !== undefined) {\n contents.BlockPublicPolicy = __parseBoolean(output[\"BlockPublicPolicy\"]);\n }\n if (output[\"RestrictPublicBuckets\"] !== undefined) {\n contents.RestrictPublicBuckets = __parseBoolean(output[\"RestrictPublicBuckets\"]);\n }\n return contents;\n};\nconst de_QueueConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"Queue\"] !== undefined) {\n contents.QueueArn = __expectString(output[\"Queue\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = de_EventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_NotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst de_QueueConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_QueueConfiguration(entry, context);\n });\n};\nconst de_Redirect = (output, context) => {\n const contents = {};\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = __expectString(output[\"HostName\"]);\n }\n if (output[\"HttpRedirectCode\"] !== undefined) {\n contents.HttpRedirectCode = __expectString(output[\"HttpRedirectCode\"]);\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = __expectString(output[\"Protocol\"]);\n }\n if (output[\"ReplaceKeyPrefixWith\"] !== undefined) {\n contents.ReplaceKeyPrefixWith = __expectString(output[\"ReplaceKeyPrefixWith\"]);\n }\n if (output[\"ReplaceKeyWith\"] !== undefined) {\n contents.ReplaceKeyWith = __expectString(output[\"ReplaceKeyWith\"]);\n }\n return contents;\n};\nconst de_RedirectAllRequestsTo = (output, context) => {\n const contents = {};\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = __expectString(output[\"HostName\"]);\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = __expectString(output[\"Protocol\"]);\n }\n return contents;\n};\nconst de_ReplicaModifications = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_ReplicationConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Role\"] !== undefined) {\n contents.Role = __expectString(output[\"Role\"]);\n }\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = de_ReplicationRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_ReplicationRule = (output, context) => {\n const contents = {};\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"Priority\"] !== undefined) {\n contents.Priority = __strictParseInt32(output[\"Priority\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_ReplicationRuleFilter(__expectUnion(output[\"Filter\"]), context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output[\"SourceSelectionCriteria\"] !== undefined) {\n contents.SourceSelectionCriteria = de_SourceSelectionCriteria(output[\"SourceSelectionCriteria\"], context);\n }\n if (output[\"ExistingObjectReplication\"] !== undefined) {\n contents.ExistingObjectReplication = de_ExistingObjectReplication(output[\"ExistingObjectReplication\"], context);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = de_Destination(output[\"Destination\"], context);\n }\n if (output[\"DeleteMarkerReplication\"] !== undefined) {\n contents.DeleteMarkerReplication = de_DeleteMarkerReplication(output[\"DeleteMarkerReplication\"], context);\n }\n return contents;\n};\nconst de_ReplicationRuleAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst de_ReplicationRuleFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_ReplicationRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_ReplicationRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ReplicationRule(entry, context);\n });\n};\nconst de_ReplicationTime = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output[\"Time\"] !== undefined) {\n contents.Time = de_ReplicationTimeValue(output[\"Time\"], context);\n }\n return contents;\n};\nconst de_ReplicationTimeValue = (output, context) => {\n const contents = {};\n if (output[\"Minutes\"] !== undefined) {\n contents.Minutes = __strictParseInt32(output[\"Minutes\"]);\n }\n return contents;\n};\nconst de_RoutingRule = (output, context) => {\n const contents = {};\n if (output[\"Condition\"] !== undefined) {\n contents.Condition = de_Condition(output[\"Condition\"], context);\n }\n if (output[\"Redirect\"] !== undefined) {\n contents.Redirect = de_Redirect(output[\"Redirect\"], context);\n }\n return contents;\n};\nconst de_RoutingRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_RoutingRule(entry, context);\n });\n};\nconst de_S3KeyFilter = (output, context) => {\n const contents = {};\n if (output.FilterRule === \"\") {\n contents.FilterRules = [];\n }\n else if (output[\"FilterRule\"] !== undefined) {\n contents.FilterRules = de_FilterRuleList(__getArrayIfSingleItem(output[\"FilterRule\"]), context);\n }\n return contents;\n};\nconst de_ServerSideEncryptionByDefault = (output, context) => {\n const contents = {};\n if (output[\"SSEAlgorithm\"] !== undefined) {\n contents.SSEAlgorithm = __expectString(output[\"SSEAlgorithm\"]);\n }\n if (output[\"KMSMasterKeyID\"] !== undefined) {\n contents.KMSMasterKeyID = __expectString(output[\"KMSMasterKeyID\"]);\n }\n return contents;\n};\nconst de_ServerSideEncryptionConfiguration = (output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = de_ServerSideEncryptionRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_ServerSideEncryptionRule = (output, context) => {\n const contents = {};\n if (output[\"ApplyServerSideEncryptionByDefault\"] !== undefined) {\n contents.ApplyServerSideEncryptionByDefault = de_ServerSideEncryptionByDefault(output[\"ApplyServerSideEncryptionByDefault\"], context);\n }\n if (output[\"BucketKeyEnabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output[\"BucketKeyEnabled\"]);\n }\n return contents;\n};\nconst de_ServerSideEncryptionRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ServerSideEncryptionRule(entry, context);\n });\n};\nconst de_SourceSelectionCriteria = (output, context) => {\n const contents = {};\n if (output[\"SseKmsEncryptedObjects\"] !== undefined) {\n contents.SseKmsEncryptedObjects = de_SseKmsEncryptedObjects(output[\"SseKmsEncryptedObjects\"], context);\n }\n if (output[\"ReplicaModifications\"] !== undefined) {\n contents.ReplicaModifications = de_ReplicaModifications(output[\"ReplicaModifications\"], context);\n }\n return contents;\n};\nconst de_SSEKMS = (output, context) => {\n const contents = {};\n if (output[\"KeyId\"] !== undefined) {\n contents.KeyId = __expectString(output[\"KeyId\"]);\n }\n return contents;\n};\nconst de_SseKmsEncryptedObjects = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_SSES3 = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de_Stats = (output, context) => {\n const contents = {};\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = __strictParseLong(output[\"BytesScanned\"]);\n }\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = __strictParseLong(output[\"BytesProcessed\"]);\n }\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = __strictParseLong(output[\"BytesReturned\"]);\n }\n return contents;\n};\nconst de_StorageClassAnalysis = (output, context) => {\n const contents = {};\n if (output[\"DataExport\"] !== undefined) {\n contents.DataExport = de_StorageClassAnalysisDataExport(output[\"DataExport\"], context);\n }\n return contents;\n};\nconst de_StorageClassAnalysisDataExport = (output, context) => {\n const contents = {};\n if (output[\"OutputSchemaVersion\"] !== undefined) {\n contents.OutputSchemaVersion = __expectString(output[\"OutputSchemaVersion\"]);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = de_AnalyticsExportDestination(output[\"Destination\"], context);\n }\n return contents;\n};\nconst de_Tag = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = __expectString(output[\"Value\"]);\n }\n return contents;\n};\nconst de_TagSet = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Tag(entry, context);\n });\n};\nconst de_TargetGrant = (output, context) => {\n const contents = {};\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = de_Grantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = __expectString(output[\"Permission\"]);\n }\n return contents;\n};\nconst de_TargetGrants = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_TargetGrant(entry, context);\n });\n};\nconst de_Tiering = (output, context) => {\n const contents = {};\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"AccessTier\"] !== undefined) {\n contents.AccessTier = __expectString(output[\"AccessTier\"]);\n }\n return contents;\n};\nconst de_TieringList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Tiering(entry, context);\n });\n};\nconst de_TopicConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"Topic\"] !== undefined) {\n contents.TopicArn = __expectString(output[\"Topic\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = de_EventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_NotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst de_TopicConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_TopicConfiguration(entry, context);\n });\n};\nconst de_Transition = (output, context) => {\n const contents = {};\n if (output[\"Date\"] !== undefined) {\n contents.Date = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"Date\"]));\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n return contents;\n};\nconst de_TransitionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Transition(entry, context);\n });\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst isSerializableHeaderValue = (value) => value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n const parsedObj = parser.parse(encoded);\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return __getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n","import packageInfo from \"../package.json\";\nimport { Sha1 } from \"@aws-crypto/sha1-browser\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@aws-sdk/config-resolver\";\nimport { eventStreamSerdeProvider } from \"@aws-sdk/eventstream-serde-browser\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { blobHasher as streamHasher } from \"@aws-sdk/hash-blob-browser\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { Md5 } from \"@aws-sdk/md5-js\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@aws-sdk/util-retry\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nimport { loadConfigsForDefaultMode } from \"@aws-sdk/smithy-client\";\nimport { resolveDefaultsModeConfig } from \"@aws-sdk/util-defaults-mode-browser\";\nexport const getRuntimeConfig = (config) => {\n const defaultsMode = resolveDefaultsModeConfig(config);\n const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n const clientSharedValues = getSharedRuntimeConfig(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"browser\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error(\"Credential is missing\"))),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,\n md5: config?.md5 ?? Md5,\n region: config?.region ?? invalidProvider(\"Region is missing\"),\n requestHandler: config?.requestHandler ?? new RequestHandler(defaultConfigProvider),\n retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),\n sha1: config?.sha1 ?? Sha1,\n sha256: config?.sha256 ?? Sha256,\n streamCollector: config?.streamCollector ?? streamCollector,\n streamHasher: config?.streamHasher ?? streamHasher,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),\n useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),\n };\n};\n","import { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { NoOpLogger } from \"@aws-sdk/smithy-client\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64\";\nimport { getAwsChunkedEncodingStream, sdkStreamMixin } from \"@aws-sdk/util-stream\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nexport const getRuntimeConfig = (config) => ({\n apiVersion: \"2006-03-01\",\n base64Decoder: config?.base64Decoder ?? fromBase64,\n base64Encoder: config?.base64Encoder ?? toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream,\n logger: config?.logger ?? new NoOpLogger(),\n sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin,\n serviceId: config?.serviceId ?? \"S3\",\n signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,\n signingEscapePath: config?.signingEscapePath ?? false,\n urlParser: config?.urlParser ?? parseUrl,\n useArnRegion: config?.useArnRegion ?? false,\n utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? toUtf8,\n});\n","export * from \"./waitForBucketExists\";\nexport * from \"./waitForBucketNotExists\";\nexport * from \"./waitForObjectExists\";\nexport * from \"./waitForObjectNotExists\";\n","import { checkExceptions, createWaiter, WaiterState } from \"@aws-sdk/util-waiter\";\nimport { HeadBucketCommand } from \"../commands/HeadBucketCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n return { state: WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.RETRY, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForBucketExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilBucketExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","import { checkExceptions, createWaiter, WaiterState } from \"@aws-sdk/util-waiter\";\nimport { HeadBucketCommand } from \"../commands/HeadBucketCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.SUCCESS, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForBucketNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilBucketNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","import { checkExceptions, createWaiter, WaiterState } from \"@aws-sdk/util-waiter\";\nimport { HeadObjectCommand } from \"../commands/HeadObjectCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n return { state: WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.RETRY, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForObjectExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilObjectExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","import { checkExceptions, createWaiter, WaiterState } from \"@aws-sdk/util-waiter\";\nimport { HeadObjectCommand } from \"../commands/HeadObjectCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.SUCCESS, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForObjectNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilObjectNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction quacksLikeAnMsWindow(window) {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\n return msSubtleCryptoMethods\n .map(function (methodName) { return subtle_1[methodName]; })\n .concat(getRandomValues)\n .every(function (method) { return typeof method === \"function\"; });\n }\n return false;\n}\nexports.isMsWindow = isMsWindow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\ntslib_1.__exportStar(require(\"./Key\"), exports);\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = { name: \"SHA-256\" };\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new webCryptoSha256_1.Sha256(secret);\n }\n else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new ie11Sha256_1.Sha256(secret);\n }\n else {\n this.hash = new sha256_js_1.Sha256(secret);\n }\n }\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update((0, util_1.convertToBuffer)(data));\n };\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n Sha256.prototype.reset = function () {\n this.hash.reset();\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.secret = secret;\n this.reset();\n }\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n if ((0, isEmptyData_1.isEmptyData)(toHash)) {\n return;\n }\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () { });\n };\n Sha256.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.finish();\n });\n });\n };\n Sha256.prototype.reset = function () {\n if (this.secret) {\n this.operation = getKeyPromise(this.secret).then(function (keyData) {\n return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () { });\n }\n else {\n this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\"SHA-256\"));\n }\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crossPlatformSha256\"), exports);\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nObject.defineProperty(exports, \"Ie11Sha256\", { enumerable: true, get: function () { return ie11Sha256_1.Sha256; } });\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nObject.defineProperty(exports, \"WebCryptoSha256\", { enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar util_1 = require(\"@aws-crypto/util\");\nvar constants_1 = require(\"./constants\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n this.secret = secret;\n this.reset();\n }\n Sha256.prototype.update = function (data) {\n if ((0, util_1.isEmptyData)(data)) {\n return;\n }\n var update = (0, util_1.convertToBuffer)(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha256.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if ((0, util_1.isEmptyData)(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n return Promise.resolve()\n .then(function () {\n return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n Sha256.prototype.reset = function () {\n var _this = this;\n this.toHash = new Uint8Array(0);\n if (this.secret && this.secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.importKey(\"raw\", (0, util_1.convertToBuffer)(_this.secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.secret = secret;\n this.hash = new RawSha256_1.RawSha256();\n this.reset();\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n Sha256.prototype.reset = function () {\n this.hash = new RawSha256_1.RawSha256();\n if (this.secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(this.secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\nvar tslib_1 = require(\"tslib\");\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexports.supportsWebCrypto = supportsWebCrypto;\nfunction supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexports.supportsSecureRandom = supportsSecureRandom;\nfunction supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n","import { booleanSelector, SelectorType } from \"@aws-sdk/util-config-provider\";\nexport const ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport const CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport const DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","import { booleanSelector, SelectorType } from \"@aws-sdk/util-config-provider\";\nexport const ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport const CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport const DEFAULT_USE_FIPS_ENDPOINT = false;\nexport const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","export * from \"./NodeUseDualstackEndpointConfigOptions\";\nexport * from \"./NodeUseFipsEndpointConfigOptions\";\nexport * from \"./resolveCustomEndpointsConfig\";\nexport * from \"./resolveEndpointsConfig\";\n","import { normalizeProvider } from \"@aws-sdk/util-middleware\";\nexport const resolveCustomEndpointsConfig = (input) => {\n const { endpoint, urlParser } = input;\n return {\n ...input,\n tls: input.tls ?? true,\n endpoint: normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint),\n isCustomEndpoint: true,\n useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n };\n};\n","import { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { getEndpointFromRegion } from \"./utils/getEndpointFromRegion\";\nexport const resolveEndpointsConfig = (input) => {\n const useDualstackEndpoint = normalizeProvider(input.useDualstackEndpoint ?? false);\n const { endpoint, useFipsEndpoint, urlParser } = input;\n return {\n ...input,\n tls: input.tls ?? true,\n endpoint: endpoint\n ? normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }),\n isCustomEndpoint: !!endpoint,\n useDualstackEndpoint,\n };\n};\n","export const getEndpointFromRegion = async (input) => {\n const { tls = true } = input;\n const region = await input.region();\n const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n const useDualstackEndpoint = await input.useDualstackEndpoint();\n const useFipsEndpoint = await input.useFipsEndpoint();\n const { hostname } = (await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint })) ?? {};\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return input.urlParser(`${tls ? \"https:\" : \"http:\"}//${hostname}`);\n};\n","export * from \"./endpointsConfig\";\nexport * from \"./regionConfig\";\nexport * from \"./regionInfo\";\n","export const REGION_ENV_NAME = \"AWS_REGION\";\nexport const REGION_INI_NAME = \"region\";\nexport const NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[REGION_ENV_NAME],\n configFileSelector: (profile) => profile[REGION_INI_NAME],\n default: () => {\n throw new Error(\"Region is missing\");\n },\n};\nexport const NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport const getRealRegion = (region) => isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n","export * from \"./config\";\nexport * from \"./resolveRegionConfig\";\n","export const isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n","import { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport const resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n };\n};\n","export {};\n","export {};\n","export const getHostnameFromVariants = (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find(({ tags }) => useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\"))?.hostname;\n","import { getHostnameFromVariants } from \"./getHostnameFromVariants\";\nimport { getResolvedHostname } from \"./getResolvedHostname\";\nimport { getResolvedPartition } from \"./getResolvedPartition\";\nimport { getResolvedSigningRegion } from \"./getResolvedSigningRegion\";\nexport const getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash, }) => {\n const partition = getResolvedPartition(region, { partitionHash });\n const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region;\n const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint };\n const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions);\n const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions);\n const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname });\n if (hostname === undefined) {\n throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`);\n }\n const signingRegion = getResolvedSigningRegion(hostname, {\n signingRegion: regionHash[resolvedRegion]?.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint,\n });\n return {\n partition,\n signingService,\n hostname,\n ...(signingRegion && { signingRegion }),\n ...(regionHash[resolvedRegion]?.signingService && {\n signingService: regionHash[resolvedRegion].signingService,\n }),\n };\n};\n","export const getResolvedHostname = (resolvedRegion, { regionHostname, partitionHostname }) => regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\n","export const getResolvedPartition = (region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? \"aws\";\n","export const getResolvedSigningRegion = (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => {\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n const regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n const regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\n","export * from \"./PartitionHash\";\nexport * from \"./RegionHash\";\nexport * from \"./getRegionInfo\";\n","import { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nexport class FetchHttpHandler {\n constructor(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then((opts) => opts || {});\n }\n else {\n this.config = options ?? {};\n this.configProvider = Promise.resolve(this.config);\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = this.config.requestTimeout;\n if (abortSignal?.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n let path = request.path;\n const queryString = buildQueryString(request.query || {});\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const { port, method } = request;\n const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions = {\n body,\n headers: new Headers(request.headers),\n method: method,\n };\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n const fetchRequest = new Request(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders = response.headers;\n const transformedHeaders = {};\n for (const pair of fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n const hasReadableStream = response.body != undefined;\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body,\n }),\n }));\n }\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n }\n}\n","export * from \"./fetch-http-handler\";\nexport * from \"./stream-collector\";\n","export function requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { fromBase64 } from \"@aws-sdk/util-base64\";\nexport const streamCollector = (stream) => {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n let res = new Uint8Array(0);\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n const prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n }\n return res;\n}\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\");\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n","export * from \"./invalidFunction\";\nexport * from \"./invalidProvider\";\n","export const invalidFunction = (message) => () => {\n throw new Error(message);\n};\n","export const invalidProvider = (message) => () => Promise.reject(message);\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexport const contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport const getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n","export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n const configProvider = async () => {\n const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n return endpoint;\n};\nexport const resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)();\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n","export * from \"./getEndpointFromInstructions\";\nexport * from \"./toEndpointV1\";\n","import { parseUrl } from \"@aws-sdk/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return parseUrl(endpoint.url);\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n","import { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n }\n return next({\n ...args,\n });\n };\n};\n","import { serializerMiddlewareOption } from \"@aws-sdk/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n","export * from \"./adaptors\";\nexport * from \"./endpointMiddleware\";\nexport * from \"./getEndpointPlugin\";\nexport * from \"./resolveEndpointConfig\";\nexport * from \"./types\";\n","import { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n return {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n useFipsEndpoint: normalizeProvider(input.useFipsEndpoint ?? false),\n };\n};\n","export * from \"./s3\";\n","export const resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const isArnBucketName = (bucketName) => {\n const [arn, partition, service, region, account, typeOrId] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = [arn, partition, service, account, typeOrId].filter(Boolean).length === 5;\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return arn === \"arn\" && !!partition && !!service && !!account && !!typeOrId;\n};\n","export {};\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nexport const hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n","export * from \"./loggerMiddleware\";\n","export const loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nexport const loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n","import { DefaultRateLimiter, RETRY_MODES } from \"@aws-sdk/util-retry\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy extends StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter, ...superOptions } = options ?? {};\n super(maxAttemptsProvider, superOptions);\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.mode = RETRY_MODES.ADAPTIVE;\n }\n async retry(next, args) {\n return super.retry(next, args, {\n beforeRequest: async () => {\n return this.rateLimiter.getSendToken();\n },\n afterRequest: (response) => {\n this.rateLimiter.updateClientSendingRate(response);\n },\n });\n }\n}\n","import { HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, RETRY_MODES, THROTTLING_RETRY_DELAY_BASE, } from \"@aws-sdk/util-retry\";\nimport { v4 } from \"uuid\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\nimport { asSdkError } from \"./util\";\nexport class StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.STANDARD;\n this.retryDecider = options?.retryDecider ?? defaultRetryDecider;\n this.delayDecider = options?.delayDecider ?? defaultDelayDecider;\n this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n shouldRetry(error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n }\n async getMaxAttempts() {\n let maxAttempts;\n try {\n maxAttempts = await this.maxAttemptsProvider();\n }\n catch (error) {\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n }\n return maxAttempts;\n }\n async retry(next, args, options) {\n let retryTokenAmount;\n let attempts = 0;\n let totalDelay = 0;\n const maxAttempts = await this.getMaxAttempts();\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n while (true) {\n try {\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n if (options?.beforeRequest) {\n await options.beforeRequest();\n }\n const { response, output } = await next(args);\n if (options?.afterRequest) {\n options.afterRequest(response);\n }\n this.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return { response, output };\n }\n catch (e) {\n const err = asSdkError(e);\n attempts++;\n if (this.shouldRetry(err, attempts, maxAttempts)) {\n retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\n const delayFromDecider = this.delayDecider(isThrottlingError(err) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n const delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\n const delay = Math.max(delayFromResponse || 0, delayFromDecider);\n totalDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n continue;\n }\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n }\n }\n }\n}\nconst getDelayFromRetryAfterHeader = (response) => {\n if (!HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return retryAfterSeconds * 1000;\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n};\n","import { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { AdaptiveRetryStrategy, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES, StandardRetryStrategy, } from \"@aws-sdk/util-retry\";\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport const resolveRetryConfig = (input) => {\n const { retryStrategy } = input;\n const maxAttempts = normalizeProvider(input.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (retryStrategy) {\n return retryStrategy;\n }\n const retryMode = await normalizeProvider(input.retryMode)();\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return new AdaptiveRetryStrategy(maxAttempts);\n }\n return new StandardRetryStrategy(maxAttempts);\n },\n };\n};\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: DEFAULT_RETRY_MODE,\n};\n","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"@aws-sdk/util-retry\";\nexport const getDefaultRetryQuota = (initialRetryTokens, options) => {\n const MAX_CAPACITY = initialRetryTokens;\n const noRetryIncrement = options?.noRetryIncrement ?? NO_RETRY_INCREMENT;\n const retryCost = options?.retryCost ?? RETRY_COST;\n const timeoutRetryCost = options?.timeoutRetryCost ?? TIMEOUT_RETRY_COST;\n let availableCapacity = initialRetryTokens;\n const getCapacityAmount = (error) => (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost);\n const hasRetryTokens = (error) => getCapacityAmount(error) <= availableCapacity;\n const retrieveRetryTokens = (error) => {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n const releaseRetryTokens = (capacityReleaseAmount) => {\n availableCapacity += capacityReleaseAmount ?? noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens,\n });\n};\n","import { MAXIMUM_RETRY_DELAY } from \"@aws-sdk/util-retry\";\nexport const defaultDelayDecider = (delayBase, attempts) => Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n","export * from \"./AdaptiveRetryStrategy\";\nexport * from \"./StandardRetryStrategy\";\nexport * from \"./configurations\";\nexport * from \"./delayDecider\";\nexport * from \"./omitRetryHeadersMiddleware\";\nexport * from \"./retryDecider\";\nexport * from \"./retryMiddleware\";\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@aws-sdk/util-retry\";\nexport const omitRetryHeadersMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n delete request.headers[INVOCATION_ID_HEADER];\n delete request.headers[REQUEST_HEADER];\n }\n return next(args);\n};\nexport const omitRetryHeadersMiddlewareOptions = {\n name: \"omitRetryHeadersMiddleware\",\n tags: [\"RETRY\", \"HEADERS\", \"OMIT_RETRY_HEADERS\"],\n relation: \"before\",\n toMiddleware: \"awsAuthMiddleware\",\n override: true,\n};\nexport const getOmitRetryHeadersPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions);\n },\n});\n","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError, } from \"@aws-sdk/service-error-classification\";\nexport const defaultRetryDecider = (error) => {\n if (!error) {\n return false;\n }\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n","import { HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { isServerError, isThrottlingError, isTransientError } from \"@aws-sdk/service-error-classification\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@aws-sdk/util-retry\";\nimport { v4 } from \"uuid\";\nimport { asSdkError } from \"./util\";\nexport const retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n while (true) {\n try {\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e);\n lastError = asSdkError(e);\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n }\n};\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error) => {\n const errorInfo = {\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = getRetryAfterHint(error.$response);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if (isThrottlingError(error))\n return \"THROTTLING\";\n if (isTransientError(error))\n return \"TRANSIENT\";\n if (isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nexport const retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport const getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\nexport const getRetryAfterHint = (response) => {\n if (!HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return new Date(retryAfterSeconds * 1000);\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate;\n};\n","export const asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n","export const deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n });\n if (!('$metadata' in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n error.message += \"\\n \" + hint;\n }\n throw error;\n }\n};\n","export * from \"./deserializerMiddleware\";\nexport * from \"./serdePlugin\";\nexport * from \"./serializerMiddleware\";\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport const serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","export const serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpoint = context.endpointV2?.url && options.urlParser\n ? async () => options.urlParser(context.endpointV2.url)\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n","import { memoize } from \"@aws-sdk/property-provider\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nconst CREDENTIAL_EXPIRE_WINDOW = 300000;\nexport const resolveAwsAuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else if (input.regionInfoProvider) {\n signer = () => normalizeProvider(input.region)()\n .then(async (region) => [\n (await input.regionInfoProvider(region, {\n useFipsEndpoint: await input.useFipsEndpoint(),\n useDualstackEndpoint: await input.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n input.signingRegion = input.signingRegion || signingRegion || region;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: input.signingName || input.defaultSigningName,\n signingRegion: await normalizeProvider(input.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n input.signingRegion = input.signingRegion || signingRegion;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n };\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nexport const resolveSigV4AuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else {\n signer = normalizeProvider(new SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n }));\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nconst normalizeCredentialProvider = (credentials) => {\n if (typeof credentials === \"function\") {\n return memoize(credentials, (credentials) => credentials.expiration !== undefined &&\n credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW, (credentials) => credentials.expiration !== undefined);\n }\n return normalizeProvider(credentials);\n};\n","import { HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { getSkewCorrectedDate } from \"./utils/getSkewCorrectedDate\";\nimport { getUpdatedSystemClockOffset } from \"./utils/getUpdatedSystemClockOffset\";\nexport const awsAuthMiddleware = (options) => (next, context) => async function (args) {\n if (!HttpRequest.isInstance(args.request))\n return next(args);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const multiRegionOverride = authScheme?.name === \"sigv4a\" ? authScheme?.signingRegionSet?.join(\",\") : undefined;\n const signer = await options.signer(authScheme);\n const output = await next({\n ...args,\n request: await signer.sign(args.request, {\n signingDate: getSkewCorrectedDate(options.systemClockOffset),\n signingRegion: multiRegionOverride || context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n }),\n }).catch((error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n options.systemClockOffset = getUpdatedSystemClockOffset(serverTime, options.systemClockOffset);\n }\n throw error;\n });\n const dateHeader = getDateHeader(output.response);\n if (dateHeader) {\n options.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, options.systemClockOffset);\n }\n return output;\n};\nconst getDateHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\nexport const awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nexport const getAwsAuthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n },\n});\nexport const getSigV4AuthPlugin = getAwsAuthPlugin;\n","export * from \"./awsAuthConfiguration\";\nexport * from \"./awsAuthMiddleware\";\n","export const getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n","import { isClockSkewed } from \"./isClockSkewed\";\nexport const getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n","import { getSkewCorrectedDate } from \"./getSkewCorrectedDate\";\nexport const isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n","export const constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ${entry.name || \"anonymous\"} middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expendedMiddlewareList) => {\n wholeList.push(...expendedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === name);\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(`\"${name}\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be ` +\n `overridden by same-name middleware with ${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override } = options;\n const entry = {\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === name);\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${name}\" middleware ${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by same-name middleware ${entry.relation} \"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name } = entry;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n return mw.name + \": \" + (mw.tags || []).join(\",\");\n });\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","export * from \"./MiddlewareStack\";\n","export function resolveUserAgentConfig(input) {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\n","export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n","export * from \"./configurations\";\nexport * from \"./user-agent-middleware\";\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { getUserAgentPrefix } from \"@aws-sdk/util-endpoints\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request))\n return next(args);\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const prefix = getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nexport const getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n","import { ProviderError } from \"./ProviderError\";\nexport class CredentialsProviderError extends ProviderError {\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n this.name = \"CredentialsProviderError\";\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\n","export class ProviderError extends Error {\n constructor(message, tryNextLink = true) {\n super(message);\n this.tryNextLink = tryNextLink;\n this.name = \"ProviderError\";\n Object.setPrototypeOf(this, ProviderError.prototype);\n }\n static from(error, tryNextLink = true) {\n return Object.assign(new this(error.message, tryNextLink), error);\n }\n}\n","import { ProviderError } from \"./ProviderError\";\nexport class TokenProviderError extends ProviderError {\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n this.name = \"TokenProviderError\";\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n","import { ProviderError } from \"./ProviderError\";\nexport const chain = (...providers) => async () => {\n if (providers.length === 0) {\n throw new ProviderError(\"No providers in chain\");\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n const credentials = await provider();\n return credentials;\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n","export const fromStatic = (staticValue) => () => Promise.resolve(staticValue);\n","export * from \"./CredentialsProviderError\";\nexport * from \"./ProviderError\";\nexport * from \"./TokenProviderError\";\nexport * from \"./chain\";\nexport * from \"./fromStatic\";\nexport * from \"./memoize\";\n","export const memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n","import { FieldPosition } from \"./FieldPosition\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export class Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n","export {};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export * from \"./Field\";\nexport * from \"./FieldPosition\";\nexport * from \"./Fields\";\nexport * from \"./httpHandler\";\nexport * from \"./httpRequest\";\nexport * from \"./httpResponse\";\nexport * from \"./isValidHostname\";\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","import { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n","export function parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n","export const CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport const THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexport const TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nexport const isTransientError = (error) => TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\nexport const isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\n","import { HeaderMarshaller } from \"@aws-sdk/eventstream-codec\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { fromUtf8, toUint8Array, toUtf8 } from \"@aws-sdk/util-utf8\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nexport class SignatureV4 {\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeProvider(region);\n this.credentialProvider = normalizeProvider(credentials);\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else if (toSign.message) {\n return this.signMessage(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {\n const promise = this.signEvent({\n headers: this.headerMarshaller.format(signableMessage.message.headers),\n payload: signableMessage.message.body,\n }, {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest) {\n const hash = new this.sha256();\n hash.update(toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${toHex(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if (pathSegment?.length === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n const doubleEncoded = encodeURIComponent(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n const hash = new this.sha256(await keyPromise);\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n}\nconst formatDate = (now) => {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\nconst getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(\";\");\n","export const cloneRequest = ({ headers, query, ...rest }) => ({\n ...rest,\n headers: { ...headers },\n query: query ? cloneQuery(query) : undefined,\n});\nexport const cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n}, {});\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport const REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport const PROXY_HEADER_PATTERN = /^proxy-/;\nexport const SEC_HEADER_PATTERN = /^sec-/;\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport const ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { toUint8Array } from \"@aws-sdk/util-utf8\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nconst signingKeyCache = {};\nconst cacheQueue = [];\nexport const createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nexport const getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nexport const clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(toUint8Array(data));\n return hash.digest();\n};\n","import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\n","import { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n keys.push(key);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = `${escapeUri(key)}=${escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce((encoded, value) => encoded.concat([`${escapeUri(key)}=${escapeUri(value)}`]), [])\n .join(\"&\");\n }\n }\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n","import { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { toUint8Array } from \"@aws-sdk/util-utf8\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport const getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(toUint8Array(body));\n return toHex(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n};\n","export const hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexport const getHeaderValue = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n return undefined;\n};\nexport const deleteHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n};\n","export * from \"./SignatureV4\";\nexport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nexport { getCanonicalQuery } from \"./getCanonicalQuery\";\nexport { getPayloadHash } from \"./getPayloadHash\";\nexport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nexport { prepareRequest } from \"./prepareRequest\";\nexport * from \"./credentialDerivation\";\n","import { cloneRequest } from \"./cloneRequest\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n","import { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n","export const iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nexport const toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n","export class NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nexport class Client {\n constructor(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n }\n}\n","import { Uint8ArrayBlobAdapter } from \"@aws-sdk/util-stream\";\nexport const collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nexport class Command {\n constructor() {\n this.middlewareStack = constructStack();\n }\n}\n","export const SENSITIVE_STRING = \"***SensitiveInformation***\";\n","export const createAggregatedClient = (commands, Client) => {\n for (const command of Object.keys(commands)) {\n const CommandCtor = commands[command];\n const methodImpl = async function (args, optionsOrCb, cb) {\n const command = new CommandCtor(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expected http options but got ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n };\n const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, \"\");\n Client.prototype[methodName] = methodImpl;\n }\n};\n","import { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport const parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nexport const parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport const parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport const parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n","import { decorateServiceException } from \"./exceptions\";\nexport const throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nexport const withBaseException = (ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n","export const loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n","let warningEmitted = false;\nexport const emitWarningIfUnsupportedVersion = (version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 14) {\n warningEmitted = true;\n }\n};\n","export class ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n}\nexport const decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n","export function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n","export const getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n","export const getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n","export * from \"./NoOpLogger\";\nexport * from \"./client\";\nexport * from \"./collect-stream-body\";\nexport * from \"./command\";\nexport * from \"./constants\";\nexport * from \"./create-aggregated-client\";\nexport * from \"./date-utils\";\nexport * from \"./default-error-handler\";\nexport * from \"./defaults-mode\";\nexport * from \"./emitWarningIfUnsupportedVersion\";\nexport * from \"./exceptions\";\nexport * from \"./extended-encode-uri-component\";\nexport * from \"./get-array-if-single-item\";\nexport * from \"./get-value-from-text-node\";\nexport * from \"./lazy-json\";\nexport * from \"./object-mapping\";\nexport * from \"./parse-utils\";\nexport * from \"./resolve-path\";\nexport * from \"./ser-utils\";\nexport * from \"./serde-json\";\nexport * from \"./split-every\";\n","export const StringWrapper = function () {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nexport class LazyJsonString extends StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n }\n}\n","export function map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\nexport const convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nexport const take = (source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n }\n else if (customFilterPassed) {\n target[targetKey] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n","export const parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nexport const expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexport const expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nexport const expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nexport const expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nexport const expectInt = expectLong;\nexport const expectInt32 = (value) => expectSizedInt(value, 32);\nexport const expectShort = (value) => expectSizedInt(value, 16);\nexport const expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nexport const expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexport const expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexport const expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexport const expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = Object.entries(asObject)\n .filter(([, v]) => v != null)\n .map(([k]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nexport const strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nexport const strictParseFloat = strictParseDouble;\nexport const strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nexport const limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nexport const handleFloat = limitedParseDouble;\nexport const limitedParseFloat = limitedParseDouble;\nexport const limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nexport const strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nexport const strictParseInt = strictParseLong;\nexport const strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nexport const strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nexport const strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nexport const logger = {\n warn: console.warn,\n};\n","import { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nexport const resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n","export const serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\n","export const _json = (obj) => {\n if (obj == null) {\n return {};\n }\n if (Array.isArray(obj)) {\n return obj.filter((_) => _ != null);\n }\n if (typeof obj === \"object\") {\n const target = {};\n for (const key of Object.keys(obj)) {\n if (obj[key] == null) {\n continue;\n }\n target[key] = _json(obj[key]);\n }\n return target;\n }\n return obj;\n};\n","export function splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n }\n else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\n","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport const parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n","export const calculateBodyLength = (body) => {\n if (typeof body === \"string\") {\n let len = body.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n","export * from \"./calculateBodyLength\";\n","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\nexport const booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\n","export * from \"./booleanSelector\";\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","export * from \"./normalizeProvider\";\n","export const normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n","import { escapeUri } from \"./escape-uri\";\nexport const escapeUriPath = (uri) => uri.split(\"/\").map(escapeUri).join(\"/\");\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","export * from \"./escape-uri\";\nexport * from \"./escape-uri-path\";\n","import bowser from \"bowser\";\nexport const defaultUserAgent = ({ serviceId, clientVersion }) => async () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.0\"],\n [`os/${parsedUA?.os?.name || \"other\"}`, parsedUA?.os?.version],\n [\"lang/js\"],\n [\"md/browser\", `${parsedUA?.browser?.name ?? \"unknown\"}_${parsedUA?.browser?.version ?? \"unknown\"}`],\n ];\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n return sections;\n};\n","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\nexport class EventStreamCodec {\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n}\n","import { fromHex, toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}`,\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n","import { toHex } from \"@aws-sdk/util-hex-encoding\";\nexport class Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9223372036854776000 || number < -9223372036854776000) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n","export {};\n","export class MessageDecoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n}\n","export class MessageEncoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n}\n","export class SmithyMessageDecoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === undefined)\n continue;\n yield deserialized;\n }\n }\n}\n","export class SmithyMessageEncoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n}\n","export * from \"./EventStreamCodec\";\nexport * from \"./HeaderMarshaller\";\nexport * from \"./Int64\";\nexport * from \"./Message\";\nexport * from \"./MessageDecoderStream\";\nexport * from \"./MessageEncoderStream\";\nexport * from \"./SmithyMessageDecoderStream\";\nexport * from \"./SmithyMessageEncoderStream\";\n","import { Crc32 } from \"@aws-crypto/crc32\";\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nexport function splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n AwsCrc32.prototype.reset = function () {\n this.crc32 = new index_1.Crc32();\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","import { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@aws-sdk/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\nexport class EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder,\n utf8Encoder,\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n const serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n }\n}\nconst isReadableStream = (body) => typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n","export * from \"./EventStreamMarshaller\";\nexport * from \"./provider\";\nexport * from \"./utils\";\n","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\nexport const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\n","export const readableStreamtoIterable = (readableStream) => ({\n [Symbol.asyncIterator]: async function* () {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield value;\n }\n }\n finally {\n reader.releaseLock();\n }\n },\n});\nexport const iterableToReadableStream = (asyncIterable) => {\n const iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n return controller.close();\n }\n controller.enqueue(value);\n },\n });\n};\n","export const resolveEventStreamSerdeConfig = (input) => ({\n ...input,\n eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n","export * from \"./EventStreamSerdeConfig\";\n","import { EventStreamCodec, MessageDecoderStream, MessageEncoderStream, SmithyMessageDecoderStream, SmithyMessageEncoderStream, } from \"@aws-sdk/eventstream-codec\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getMessageUnmarshaller } from \"./getUnmarshalledStream\";\nexport class EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new SmithyMessageDecoderStream({\n messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n });\n }\n serialize(inputStream, serializer) {\n return new MessageEncoderStream({\n messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true,\n });\n }\n}\n","export function getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = (size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n };\n const iterator = async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n }\n else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n }\n else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n };\n return {\n [Symbol.asyncIterator]: iterator,\n };\n}\n","export function getUnmarshalledStream(source, options) {\n const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n return {\n [Symbol.asyncIterator]: async function* () {\n for await (const chunk of source) {\n const message = options.eventStreamCodec.decode(chunk);\n const type = await messageUnmarshaller(message);\n if (type === undefined)\n continue;\n yield type;\n }\n },\n };\n}\nexport function getMessageUnmarshaller(deserializer, toUtf8) {\n return async function (message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n }\n else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n }\n else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message,\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n }\n else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n","export * from \"./EventStreamMarshaller\";\nexport * from \"./provider\";\n","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\nexport const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\n","import { blobReader } from \"@aws-sdk/chunked-blob-reader\";\nexport const blobHasher = async function blobHasher(hashCtor, blob) {\n const hash = new hashCtor();\n await blobReader(blob, (chunk) => {\n hash.update(chunk);\n });\n return hash.digest();\n};\n","import { AbortController } from \"@aws-sdk/abort-controller\";\nimport { CompleteMultipartUploadCommand, CreateMultipartUploadCommand, PutObjectCommand, PutObjectTaggingCommand, UploadPartCommand, } from \"@aws-sdk/client-s3\";\nimport { getEndpointFromInstructions, toEndpointV1, } from \"@aws-sdk/middleware-endpoint\";\nimport { extendedEncodeURIComponent } from \"@aws-sdk/smithy-client\";\nimport { EventEmitter } from \"events\";\nimport { byteLength } from \"./bytelength\";\nimport { getChunk } from \"./chunker\";\nconst MIN_PART_SIZE = 1024 * 1024 * 5;\nexport class Upload extends EventEmitter {\n constructor(options) {\n super();\n this.MAX_PARTS = 10000;\n this.queueSize = 4;\n this.partSize = MIN_PART_SIZE;\n this.leavePartsOnError = false;\n this.tags = [];\n this.concurrentUploaders = [];\n this.uploadedParts = [];\n this.isMultiPart = true;\n this.queueSize = options.queueSize || this.queueSize;\n this.partSize = options.partSize || this.partSize;\n this.leavePartsOnError = options.leavePartsOnError || this.leavePartsOnError;\n this.tags = options.tags || this.tags;\n this.client = options.client;\n this.params = options.params;\n this.__validateInput();\n this.totalBytes = byteLength(this.params.Body);\n this.bytesUploadedSoFar = 0;\n this.abortController = options.abortController ?? new AbortController();\n }\n async abort() {\n this.abortController.abort();\n }\n async done() {\n return await Promise.race([this.__doMultipartUpload(), this.__abortTimeout(this.abortController.signal)]);\n }\n on(event, listener) {\n this.uploadEvent = event;\n return super.on(event, listener);\n }\n async __uploadUsingPut(dataPart) {\n this.isMultiPart = false;\n const params = { ...this.params, Body: dataPart.data };\n const clientConfig = this.client.config;\n const requestHandler = clientConfig.requestHandler;\n const eventEmitter = requestHandler instanceof EventEmitter ? requestHandler : null;\n const uploadEventListener = (event) => {\n this.bytesUploadedSoFar = event.loaded;\n this.totalBytes = event.total;\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n };\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n const resolved = await Promise.all([this.client.send(new PutObjectCommand(params)), clientConfig?.endpoint?.()]);\n const putResult = resolved[0];\n let endpoint = resolved[1];\n if (!endpoint) {\n endpoint = toEndpointV1(await getEndpointFromInstructions(params, PutObjectCommand, {\n ...clientConfig,\n }));\n }\n if (!endpoint) {\n throw new Error('Could not resolve endpoint from S3 \"client.config.endpoint()\" nor EndpointsV2.');\n }\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n const locationKey = this.params\n .Key.split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\");\n const locationBucket = extendedEncodeURIComponent(this.params.Bucket);\n const Location = this.client.config.forcePathStyle\n ? `${endpoint.protocol}//${endpoint.hostname}/${locationBucket}/${locationKey}`\n : `${endpoint.protocol}//${locationBucket}.${endpoint.hostname}/${locationKey}`;\n this.singleUploadResult = {\n ...putResult,\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n Location,\n };\n const totalSize = byteLength(dataPart.data);\n this.__notifyProgress({\n loaded: totalSize,\n total: totalSize,\n part: 1,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n }\n async __createMultipartUpload() {\n if (!this.createMultiPartPromise) {\n const createCommandParams = { ...this.params, Body: undefined };\n this.createMultiPartPromise = this.client.send(new CreateMultipartUploadCommand(createCommandParams));\n }\n const createMultipartUploadResult = await this.createMultiPartPromise;\n this.uploadId = createMultipartUploadResult.UploadId;\n }\n async __doConcurrentUpload(dataFeeder) {\n for await (const dataPart of dataFeeder) {\n if (this.uploadedParts.length > this.MAX_PARTS) {\n throw new Error(`Exceeded ${this.MAX_PARTS} as part of the upload to ${this.params.Key} and ${this.params.Bucket}.`);\n }\n try {\n if (this.abortController.signal.aborted) {\n return;\n }\n if (dataPart.partNumber === 1 && dataPart.lastPart) {\n return await this.__uploadUsingPut(dataPart);\n }\n if (!this.uploadId) {\n await this.__createMultipartUpload();\n if (this.abortController.signal.aborted) {\n return;\n }\n }\n const partSize = byteLength(dataPart.data) || 0;\n const requestHandler = this.client.config.requestHandler;\n const eventEmitter = requestHandler instanceof EventEmitter ? requestHandler : null;\n let lastSeenBytes = 0;\n const uploadEventListener = (event, request) => {\n const requestPartSize = Number(request.query[\"partNumber\"]) || -1;\n if (requestPartSize !== dataPart.partNumber) {\n return;\n }\n if (event.total && partSize) {\n this.bytesUploadedSoFar += event.loaded - lastSeenBytes;\n lastSeenBytes = event.loaded;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n };\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n const partResult = await this.client.send(new UploadPartCommand({\n ...this.params,\n UploadId: this.uploadId,\n Body: dataPart.data,\n PartNumber: dataPart.partNumber,\n }));\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n if (this.abortController.signal.aborted) {\n return;\n }\n if (!partResult.ETag) {\n throw new Error(`Part ${dataPart.partNumber} is missing ETag in UploadPart response. Missing Bucket CORS configuration for ETag header?`);\n }\n this.uploadedParts.push({\n PartNumber: dataPart.partNumber,\n ETag: partResult.ETag,\n ...(partResult.ChecksumCRC32 && { ChecksumCRC32: partResult.ChecksumCRC32 }),\n ...(partResult.ChecksumCRC32C && { ChecksumCRC32C: partResult.ChecksumCRC32C }),\n ...(partResult.ChecksumSHA1 && { ChecksumSHA1: partResult.ChecksumSHA1 }),\n ...(partResult.ChecksumSHA256 && { ChecksumSHA256: partResult.ChecksumSHA256 }),\n });\n if (eventEmitter === null) {\n this.bytesUploadedSoFar += partSize;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n }\n catch (e) {\n if (!this.uploadId) {\n throw e;\n }\n if (this.leavePartsOnError) {\n throw e;\n }\n }\n }\n }\n async __doMultipartUpload() {\n const dataFeeder = getChunk(this.params.Body, this.partSize);\n for (let index = 0; index < this.queueSize; index++) {\n const currentUpload = this.__doConcurrentUpload(dataFeeder);\n this.concurrentUploaders.push(currentUpload);\n }\n await Promise.all(this.concurrentUploaders);\n if (this.abortController.signal.aborted) {\n throw Object.assign(new Error(\"Upload aborted.\"), { name: \"AbortError\" });\n }\n let result;\n if (this.isMultiPart) {\n this.uploadedParts.sort((a, b) => a.PartNumber - b.PartNumber);\n const uploadCompleteParams = {\n ...this.params,\n Body: undefined,\n UploadId: this.uploadId,\n MultipartUpload: {\n Parts: this.uploadedParts,\n },\n };\n result = await this.client.send(new CompleteMultipartUploadCommand(uploadCompleteParams));\n }\n else {\n result = this.singleUploadResult;\n }\n if (this.tags.length) {\n await this.client.send(new PutObjectTaggingCommand({\n ...this.params,\n Tagging: {\n TagSet: this.tags,\n },\n }));\n }\n return result;\n }\n __notifyProgress(progress) {\n if (this.uploadEvent) {\n this.emit(this.uploadEvent, progress);\n }\n }\n async __abortTimeout(abortSignal) {\n return new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Upload aborted.\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n });\n }\n __validateInput() {\n if (!this.params) {\n throw new Error(`InputError: Upload requires params to be passed to upload.`);\n }\n if (!this.client) {\n throw new Error(`InputError: Upload requires a AWS client to do uploads with.`);\n }\n if (this.partSize < MIN_PART_SIZE) {\n throw new Error(`EntityTooSmall: Your proposed upload partsize [${this.partSize}] is smaller than the minimum allowed size [${MIN_PART_SIZE}] (5MB)`);\n }\n if (this.queueSize < 1) {\n throw new Error(`Queue size: Must have at least one uploading queue.`);\n }\n }\n}\n","import { ClientDefaultValues } from \"./runtimeConfig\";\nexport const byteLength = (input) => {\n if (input === null || input === undefined)\n return 0;\n if (typeof input === \"string\")\n input = Buffer.from(input);\n if (typeof input.byteLength === \"number\") {\n return input.byteLength;\n }\n else if (typeof input.length === \"number\") {\n return input.length;\n }\n else if (typeof input.size === \"number\") {\n return input.size;\n }\n else if (typeof input.path === \"string\") {\n try {\n return ClientDefaultValues.lstatSync(input.path).size;\n }\n catch (error) {\n return undefined;\n }\n }\n return undefined;\n};\n","import { Buffer } from \"buffer\";\nimport { Readable } from \"stream\";\nimport { getChunkBuffer } from \"./chunks/getChunkBuffer\";\nimport { getChunkStream } from \"./chunks/getChunkStream\";\nimport { getDataReadable } from \"./chunks/getDataReadable\";\nimport { getDataReadableStream } from \"./chunks/getDataReadableStream\";\nexport const getChunk = (data, partSize) => {\n if (data instanceof Buffer) {\n return getChunkBuffer(data, partSize);\n }\n else if (data instanceof Readable) {\n return getChunkStream(data, partSize, getDataReadable);\n }\n else if (data instanceof String || typeof data === \"string\" || data instanceof Uint8Array) {\n return getChunkBuffer(Buffer.from(data), partSize);\n }\n if (typeof data.stream === \"function\") {\n return getChunkStream(data.stream(), partSize, getDataReadableStream);\n }\n else if (data instanceof ReadableStream) {\n return getChunkStream(data, partSize, getDataReadableStream);\n }\n else {\n throw new Error(\"Body Data is unsupported format, expected data to be one of: string | Uint8Array | Buffer | Readable | ReadableStream | Blob;.\");\n }\n};\n","export async function* getChunkBuffer(data, partSize) {\n let partNumber = 1;\n let startByte = 0;\n let endByte = partSize;\n while (endByte < data.byteLength) {\n yield {\n partNumber,\n data: data.slice(startByte, endByte),\n };\n partNumber += 1;\n startByte = endByte;\n endByte = startByte + partSize;\n }\n yield {\n partNumber,\n data: data.slice(startByte),\n lastPart: true,\n };\n}\n","import { Buffer } from \"buffer\";\nexport async function* getChunkStream(data, partSize, getNextData) {\n let partNumber = 1;\n const currentBuffer = { chunks: [], length: 0 };\n for await (const datum of getNextData(data)) {\n currentBuffer.chunks.push(datum);\n currentBuffer.length += datum.length;\n while (currentBuffer.length >= partSize) {\n const dataChunk = currentBuffer.chunks.length > 1 ? Buffer.concat(currentBuffer.chunks) : currentBuffer.chunks[0];\n yield {\n partNumber,\n data: dataChunk.slice(0, partSize),\n };\n currentBuffer.chunks = [dataChunk.slice(partSize)];\n currentBuffer.length = currentBuffer.chunks[0].length;\n partNumber += 1;\n }\n }\n yield {\n partNumber,\n data: Buffer.concat(currentBuffer.chunks),\n lastPart: true,\n };\n}\n","import { Buffer } from \"buffer\";\nexport async function* getDataReadable(data) {\n for await (const chunk of data) {\n yield Buffer.from(chunk);\n }\n}\n","import { Buffer } from \"buffer\";\nexport async function* getDataReadableStream(data) {\n const reader = data.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield Buffer.from(value);\n }\n }\n catch (e) {\n throw e;\n }\n finally {\n reader.releaseLock();\n }\n}\n","export * from \"./Upload\";\nexport * from \"./types\";\n","import { ClientSharedValues } from \"./runtimeConfig.shared\";\nexport const ClientDefaultValues = {\n ...ClientSharedValues,\n runtime: \"browser\",\n};\n","export const ClientSharedValues = {\n lstatSync: () => { },\n};\n","export {};\n","export const constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ${entry.name || \"anonymous\"} middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expendedMiddlewareList) => {\n wholeList.push(...expendedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === name);\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(`\"${name}\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be ` +\n `overridden by same-name middleware with ${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override } = options;\n const entry = {\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === name);\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${name}\" middleware ${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by same-name middleware ${entry.relation} \"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name } = entry;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n return mw.name + \": \" + (mw.tags || []).join(\",\");\n });\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","export * from \"./MiddlewareStack\";\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nexport class Client {\n constructor(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n }\n}\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nexport class Command {\n constructor() {\n this.middlewareStack = constructStack();\n }\n}\n","export const SENSITIVE_STRING = \"***SensitiveInformation***\";\n","import { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport const parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport const parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport const parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n","import { decorateServiceException } from \"./exceptions\";\nexport const throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody.code || parsedBody.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n","export const loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n","let warningEmitted = false;\nexport const emitWarningIfUnsupportedVersion = (version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 14) {\n warningEmitted = true;\n }\n};\n","export class ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n}\nexport const decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n","export function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n","export const getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n","export const getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n","export * from \"./client\";\nexport * from \"./command\";\nexport * from \"./constants\";\nexport * from \"./date-utils\";\nexport * from \"./default-error-handler\";\nexport * from \"./defaults-mode\";\nexport * from \"./emitWarningIfUnsupportedVersion\";\nexport * from \"./exceptions\";\nexport * from \"./extended-encode-uri-component\";\nexport * from \"./get-array-if-single-item\";\nexport * from \"./get-value-from-text-node\";\nexport * from \"./lazy-json\";\nexport * from \"./object-mapping\";\nexport * from \"./parse-utils\";\nexport * from \"./resolve-path\";\nexport * from \"./ser-utils\";\nexport * from \"./split-every\";\n","export const StringWrapper = function () {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nexport class LazyJsonString extends StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n }\n}\n","export function map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n let [filter, value] = instructions[key];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[key] = _value;\n }\n else if (customFilterPassed) {\n target[key] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[key] = value;\n }\n }\n }\n return target;\n}\nexport const convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\n","export const parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nexport const expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexport const expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nexport const expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nexport const expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nexport const expectInt = expectLong;\nexport const expectInt32 = (value) => expectSizedInt(value, 32);\nexport const expectShort = (value) => expectSizedInt(value, 16);\nexport const expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nexport const expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexport const expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexport const expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexport const expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = Object.entries(asObject)\n .filter(([, v]) => v != null)\n .map(([k]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nexport const strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nexport const strictParseFloat = strictParseDouble;\nexport const strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nexport const limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nexport const handleFloat = limitedParseDouble;\nexport const limitedParseFloat = limitedParseDouble;\nexport const limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nexport const strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nexport const strictParseInt = strictParseLong;\nexport const strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nexport const strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nexport const strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nexport const logger = {\n warn: console.warn,\n};\n","import { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nexport const resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n","export const serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\n","export function splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n }\n else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n ? Symbol.for('nodejs.util.inspect.custom')\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","export const BLOCK_SIZE = 64;\nexport const DIGEST_LENGTH = 16;\nexport const INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n","import { fromUtf8 } from \"@aws-sdk/util-utf8\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nexport class Md5 {\n constructor() {\n this.reset();\n }\n update(sourceData) {\n if (isEmptyData(sourceData)) {\n return;\n }\n else if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n const data = convertToBuffer(sourceData);\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n async digest() {\n if (!this.finished) {\n const { buffer, bufferLength: undecoratedLength, bytesHashed } = this;\n const bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 0b10000000);\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n const out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (let i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);\n }\n hashBuffer() {\n const { buffer, state } = this;\n let a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xffffffff;\n state[1] = (b + state[1]) & 0xffffffff;\n state[2] = (c + state[2]) & 0xffffffff;\n state[3] = (d + state[3]) & 0xffffffff;\n }\n reset() {\n this.state = Uint32Array.from(INIT);\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n }\n}\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xffffffff) + ((x + t) & 0xffffffff)) & 0xffffffff;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xffffffff;\n}\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n","export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n const configProvider = async () => {\n const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n return endpoint;\n};\nexport const resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)();\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n","export * from \"./getEndpointFromInstructions\";\nexport * from \"./toEndpointV1\";\n","import { parseUrl } from \"@aws-sdk/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return parseUrl(endpoint.url);\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n","import { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n }\n return next({\n ...args,\n });\n };\n};\n","import { serializerMiddlewareOption } from \"@aws-sdk/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n","export * from \"./adaptors\";\nexport * from \"./endpointMiddleware\";\nexport * from \"./getEndpointPlugin\";\nexport * from \"./resolveEndpointConfig\";\nexport * from \"./types\";\n","import { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n return {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n useFipsEndpoint: normalizeProvider(input.useFipsEndpoint ?? false),\n };\n};\n","export * from \"./s3\";\n","export const resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const isArnBucketName = (bucketName) => {\n const [arn, partition, service, region, account, typeOrId] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = [arn, partition, service, account, typeOrId].filter(Boolean).length === 5;\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return arn === \"arn\" && !!partition && !!service && !!account && !!typeOrId;\n};\n","export {};\n","export const deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n });\n throw error;\n }\n};\n","export * from \"./deserializerMiddleware\";\nexport * from \"./serdePlugin\";\nexport * from \"./serializerMiddleware\";\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport const serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","export const serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpoint = context.endpointV2?.url && options.urlParser\n ? async () => options.urlParser(context.endpointV2.url)\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n","export function parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport const parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n return (next) => async (args) => {\n const { request } = args;\n if (HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n request.headers = {\n ...request.headers,\n Expect: \"100-continue\",\n };\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexport const addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true,\n};\nexport const getAddExpectContinuePlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n },\n});\n","import { FieldPosition } from \"./FieldPosition\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export class Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n","export {};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export * from \"./Field\";\nexport * from \"./FieldPosition\";\nexport * from \"./Fields\";\nexport * from \"./httpHandler\";\nexport * from \"./httpRequest\";\nexport * from \"./httpResponse\";\nexport * from \"./isValidHostname\";\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","export var ChecksumAlgorithm;\n(function (ChecksumAlgorithm) {\n ChecksumAlgorithm[\"MD5\"] = \"MD5\";\n ChecksumAlgorithm[\"CRC32\"] = \"CRC32\";\n ChecksumAlgorithm[\"CRC32C\"] = \"CRC32C\";\n ChecksumAlgorithm[\"SHA1\"] = \"SHA1\";\n ChecksumAlgorithm[\"SHA256\"] = \"SHA256\";\n})(ChecksumAlgorithm || (ChecksumAlgorithm = {}));\nexport var ChecksumLocation;\n(function (ChecksumLocation) {\n ChecksumLocation[\"HEADER\"] = \"header\";\n ChecksumLocation[\"TRAILER\"] = \"trailer\";\n})(ChecksumLocation || (ChecksumLocation = {}));\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { getChecksumAlgorithmForRequest } from \"./getChecksumAlgorithmForRequest\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { hasHeader } from \"./hasHeader\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nimport { stringHasher } from \"./stringHasher\";\nimport { validateChecksumFromResponse } from \"./validateChecksumFromResponse\";\nexport const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const { request } = args;\n const { body: requestBody, headers } = request;\n const { base64Encoder, streamHasher } = config;\n const { input, requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {\n requestChecksumRequired,\n requestAlgorithmMember,\n });\n let updatedBody = requestBody;\n let updatedHeaders = headers;\n if (checksumAlgorithm) {\n const checksumLocationName = getChecksumLocationName(checksumAlgorithm);\n const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);\n if (isStreaming(requestBody)) {\n const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n updatedBody = getAwsChunkedEncodingStream(requestBody, {\n base64Encoder,\n bodyLengthChecker,\n checksumLocationName,\n checksumAlgorithmFn,\n streamHasher,\n });\n updatedHeaders = {\n ...headers,\n \"content-encoding\": headers[\"content-encoding\"]\n ? `${headers[\"content-encoding\"]},aws-chunked`\n : \"aws-chunked\",\n \"transfer-encoding\": \"chunked\",\n \"x-amz-decoded-content-length\": headers[\"content-length\"],\n \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n \"x-amz-trailer\": checksumLocationName,\n };\n delete updatedHeaders[\"content-length\"];\n }\n else if (!hasHeader(checksumLocationName, headers)) {\n const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);\n updatedHeaders = {\n ...headers,\n [checksumLocationName]: base64Encoder(rawChecksum),\n };\n }\n }\n const result = await next({\n ...args,\n request: {\n ...request,\n headers: updatedHeaders,\n body: updatedBody,\n },\n });\n const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n validateChecksumFromResponse(result.response, {\n config,\n responseAlgorithms,\n });\n }\n return result;\n};\n","import { isStreaming } from \"./isStreaming\";\nimport { stringHasher } from \"./stringHasher\";\nexport const getChecksum = async (body, { streamHasher, checksumAlgorithmFn, base64Encoder }) => {\n const digest = isStreaming(body) ? streamHasher(checksumAlgorithmFn, body) : stringHasher(checksumAlgorithmFn, body);\n return base64Encoder(await digest);\n};\n","import { ChecksumAlgorithm } from \"./constants\";\nimport { CLIENT_SUPPORTED_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember }) => {\n if (!requestAlgorithmMember || !input[requestAlgorithmMember]) {\n return requestChecksumRequired ? ChecksumAlgorithm.MD5 : undefined;\n }\n const checksumAlgorithm = input[requestAlgorithmMember];\n if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {\n throw new Error(`The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client.` +\n ` Select one of ${CLIENT_SUPPORTED_ALGORITHMS}.`);\n }\n return checksumAlgorithm;\n};\n","import { CLIENT_SUPPORTED_ALGORITHMS, PRIORITY_ORDER_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmListForResponse = (responseAlgorithms = []) => {\n const validChecksumAlgorithms = [];\n for (const algorithm of PRIORITY_ORDER_ALGORITHMS) {\n if (!responseAlgorithms.includes(algorithm) || !CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {\n continue;\n }\n validChecksumAlgorithms.push(algorithm);\n }\n return validChecksumAlgorithms;\n};\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const getChecksumLocationName = (algorithm) => algorithm === ChecksumAlgorithm.MD5 ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`;\n","import { flexibleChecksumsMiddleware } from \"./flexibleChecksumsMiddleware\";\nexport const flexibleChecksumsMiddlewareOptions = {\n name: \"flexibleChecksumsMiddleware\",\n step: \"build\",\n tags: [\"BODY_CHECKSUM\"],\n override: true,\n};\nexport const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({\n applyToStack: (clientStack) => {\n clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);\n },\n});\n","export const hasHeader = (header, headers) => {\n const soughtHeader = header.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\n","export * from \"./constants\";\nexport * from \"./flexibleChecksumsMiddleware\";\nexport * from \"./getFlexibleChecksumsPlugin\";\n","import { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nexport const isStreaming = (body) => body !== undefined && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !isArrayBuffer(body);\n","import { AwsCrc32 } from \"@aws-crypto/crc32\";\nimport { AwsCrc32c } from \"@aws-crypto/crc32c\";\nimport { ChecksumAlgorithm } from \"./constants\";\nexport const selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => ({\n [ChecksumAlgorithm.MD5]: config.md5,\n [ChecksumAlgorithm.CRC32]: AwsCrc32,\n [ChecksumAlgorithm.CRC32C]: AwsCrc32c,\n [ChecksumAlgorithm.SHA1]: config.sha1,\n [ChecksumAlgorithm.SHA256]: config.sha256,\n}[checksumAlgorithm]);\n","import { toUint8Array } from \"@aws-sdk/util-utf8\";\nexport const stringHasher = (checksumAlgorithmFn, body) => {\n const hash = new checksumAlgorithmFn();\n hash.update(toUint8Array(body || \"\"));\n return hash.digest();\n};\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const CLIENT_SUPPORTED_ALGORITHMS = [\n ChecksumAlgorithm.CRC32,\n ChecksumAlgorithm.CRC32C,\n ChecksumAlgorithm.SHA1,\n ChecksumAlgorithm.SHA256,\n];\nexport const PRIORITY_ORDER_ALGORITHMS = [\n ChecksumAlgorithm.CRC32,\n ChecksumAlgorithm.CRC32C,\n ChecksumAlgorithm.SHA1,\n ChecksumAlgorithm.SHA256,\n];\n","import { getChecksum } from \"./getChecksum\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nexport const validateChecksumFromResponse = async (response, { config, responseAlgorithms }) => {\n const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);\n const { body: responseBody, headers: responseHeaders } = response;\n for (const algorithm of checksumAlgorithms) {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = responseHeaders[responseHeader];\n if (checksumFromResponse) {\n const checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);\n const { streamHasher, base64Encoder } = config;\n const checksum = await getChecksum(responseBody, { streamHasher, checksumAlgorithmFn, base64Encoder });\n if (checksum === checksumFromResponse) {\n break;\n }\n throw new Error(`Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\"` +\n ` in response header \"${responseHeader}\".`);\n }\n }\n};\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n AwsCrc32.prototype.reset = function () {\n this.crc32 = new index_1.Crc32();\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","import { FieldPosition } from \"./FieldPosition\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export class Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n","export {};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export * from \"./Field\";\nexport * from \"./FieldPosition\";\nexport * from \"./Fields\";\nexport * from \"./httpHandler\";\nexport * from \"./httpRequest\";\nexport * from \"./httpResponse\";\nexport * from \"./isValidHostname\";\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","export function locationConstraintMiddleware(options) {\n return (next) => async (args) => {\n const { CreateBucketConfiguration } = args.input;\n const region = await options.region();\n if (!CreateBucketConfiguration || !CreateBucketConfiguration.LocationConstraint) {\n args = {\n ...args,\n input: {\n ...args.input,\n CreateBucketConfiguration: region === \"us-east-1\" ? undefined : { LocationConstraint: region },\n },\n };\n }\n return next(args);\n };\n}\nexport const locationConstraintMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"LOCATION_CONSTRAINT\", \"CREATE_BUCKET_CONFIGURATION\"],\n name: \"locationConstraintMiddleware\",\n override: true,\n};\nexport const getLocationConstraintPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(locationConstraintMiddleware(config), locationConstraintMiddlewareOptions);\n },\n});\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nexport const recursionDetectionMiddleware = (options) => (next) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexport const addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nexport const getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n },\n});\n","import { FieldPosition } from \"./FieldPosition\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export class Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n","export {};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export * from \"./Field\";\nexport * from \"./FieldPosition\";\nexport * from \"./Fields\";\nexport * from \"./httpHandler\";\nexport * from \"./httpRequest\";\nexport * from \"./httpResponse\";\nexport * from \"./isValidHostname\";\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function checkContentLengthHeader() {\n return (next, context) => async (args) => {\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n if (!request.headers[CONTENT_LENGTH_HEADER]) {\n const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;\n if (typeof context?.logger?.warn === \"function\") {\n context.logger.warn(message);\n }\n else {\n console.warn(message);\n }\n }\n }\n return next({ ...args });\n };\n}\nexport const checkContentLengthHeaderMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"CHECK_CONTENT_LENGTH_HEADER\"],\n name: \"getCheckContentLengthHeaderPlugin\",\n override: true,\n};\nexport const getCheckContentLengthHeaderPlugin = (unused) => ({\n applyToStack: (clientStack) => {\n clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);\n },\n});\n","export * from \"./check-content-length-header\";\nexport * from \"./s3Configuration\";\nexport * from \"./throw-200-exceptions\";\nexport * from \"./validate-bucket-name\";\n","export const resolveS3Config = (input) => ({\n ...input,\n forcePathStyle: input.forcePathStyle ?? false,\n useAccelerateEndpoint: input.useAccelerateEndpoint ?? false,\n disableMultiregionAccessPoints: input.disableMultiregionAccessPoints ?? false,\n});\n","import { HttpResponse } from \"@aws-sdk/protocol-http\";\nexport const throw200ExceptionsMiddleware = (config) => (next) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (!HttpResponse.isInstance(response))\n return result;\n const { statusCode, body } = response;\n if (statusCode < 200 || statusCode >= 300)\n return result;\n const bodyBytes = await collectBody(body, config);\n const bodyString = await collectBodyString(bodyBytes, config);\n if (bodyBytes.length === 0) {\n const err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyString && bodyString.match(\"\")) {\n response.statusCode = 400;\n }\n response.body = bodyBytes;\n return result;\n};\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nexport const throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true,\n};\nexport const getThrow200ExceptionsPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n },\n});\n","import { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nexport function validateBucketNameMiddleware() {\n return (next) => async (args) => {\n const { input: { Bucket }, } = args;\n if (typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return next({ ...args });\n };\n}\nexport const validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true,\n};\nexport const getValidateBucketNamePlugin = (unused) => ({\n applyToStack: (clientStack) => {\n clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);\n },\n});\n","import { FieldPosition } from \"./FieldPosition\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export class Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n","export {};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export * from \"./Field\";\nexport * from \"./FieldPosition\";\nexport * from \"./Fields\";\nexport * from \"./httpHandler\";\nexport * from \"./httpRequest\";\nexport * from \"./httpResponse\";\nexport * from \"./isValidHostname\";\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","export function ssecMiddleware(options) {\n return (next) => async (args) => {\n let input = { ...args.input };\n const properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\",\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\",\n },\n ];\n for (const prop of properties) {\n const value = input[prop.target];\n if (value) {\n const valueView = ArrayBuffer.isView(value)\n ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n : typeof value === \"string\"\n ? options.utf8Decoder(value)\n : new Uint8Array(value);\n const encoded = options.base64Encoder(valueView);\n const hash = new options.md5();\n hash.update(valueView);\n input = {\n ...input,\n [prop.target]: encoded,\n [prop.hash]: options.base64Encoder(await hash.digest()),\n };\n }\n }\n return next({\n ...args,\n input,\n });\n };\n}\nexport const ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true,\n};\nexport const getSsecPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n },\n});\n","import { SignatureV4 } from \"@aws-sdk/signature-v4\";\nexport class SignatureV4MultiRegion {\n constructor(options) {\n this.sigv4Signer = new SignatureV4(options);\n this.signerOptions = options;\n }\n async sign(requestToSign, options = {}) {\n if (options.signingRegion === \"*\") {\n if (this.signerOptions.runtime !== \"node\")\n throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n return this.getSigv4aSigner().sign(requestToSign, options);\n }\n return this.sigv4Signer.sign(requestToSign, options);\n }\n async presign(originalRequest, options = {}) {\n if (options.signingRegion === \"*\") {\n if (this.signerOptions.runtime !== \"node\")\n throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n return this.getSigv4aSigner().presign(originalRequest, options);\n }\n return this.sigv4Signer.presign(originalRequest, options);\n }\n getSigv4aSigner() {\n if (!this.sigv4aSigner) {\n let CrtSignerV4;\n try {\n CrtSignerV4 = typeof require === \"function\" && require(\"@aws-sdk/signature-v4-crt\").CrtSignerV4;\n if (typeof CrtSignerV4 !== \"function\")\n throw new Error();\n }\n catch (e) {\n e.message =\n `${e.message}\\nPlease check if you have installed \"@aws-sdk/signature-v4-crt\" package explicitly. \\n` +\n \"For more information please go to \" +\n \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\";\n throw e;\n }\n this.sigv4aSigner = new CrtSignerV4({\n ...this.signerOptions,\n signingAlgorithm: 1,\n });\n }\n return this.sigv4aSigner;\n }\n}\n","export * from \"./SignatureV4MultiRegion\";\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","export const cloneRequest = ({ headers, query, ...rest }) => ({\n ...rest,\n headers: { ...headers },\n query: query ? cloneQuery(query) : undefined,\n});\nexport const cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n}, {});\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport const REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport const PROXY_HEADER_PATTERN = /^proxy-/;\nexport const SEC_HEADER_PATTERN = /^sec-/;\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport const ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\n","import { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n keys.push(key);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = `${escapeUri(key)}=${escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce((encoded, value) => encoded.concat([`${escapeUri(key)}=${escapeUri(value)}`]), [])\n .join(\"&\");\n }\n }\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n","export const hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexport const getHeaderValue = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n return undefined;\n};\nexport const deleteHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n};\n","export * from \"./SignatureV4\";\nexport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nexport { getCanonicalQuery } from \"./getCanonicalQuery\";\nexport { getPayloadHash } from \"./getPayloadHash\";\nexport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nexport { prepareRequest } from \"./prepareRequest\";\nexport * from \"./credentialDerivation\";\n","import { cloneRequest } from \"./cloneRequest\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n","import { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n","export const iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nexport const toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","export * from \"./normalizeProvider\";\n","export const normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n","import { escapeUri } from \"./escape-uri\";\nexport const escapeUriPath = (uri) => uri.split(\"/\").map(escapeUri).join(\"/\");\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","export * from \"./escape-uri\";\nexport * from \"./escape-uri-path\";\n","export const validate = (str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\nexport const parse = (arn) => {\n const segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\")\n throw new Error(\"Malformed ARN\");\n const [, partition, service, region, accountId, ...resource] = segments;\n return {\n partition,\n service,\n region,\n accountId,\n resource: resource.join(\":\"),\n };\n};\nexport const build = (arnObject) => {\n const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n};\n","const alphabetByEncoding = {};\nconst alphabetByValue = new Array(64);\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n const index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (let i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n const char = i.toString(10);\n const index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\nexport { alphabetByEncoding, alphabetByValue, bitsPerLetter, bitsPerByte, maxLetterValue };\n","import { alphabetByEncoding, bitsPerByte, bitsPerLetter } from \"./constants.browser\";\nexport const fromBase64 = (input) => {\n let totalByteLength = (input.length / 4) * 3;\n if (input.slice(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.slice(-1) === \"=\") {\n totalByteLength--;\n }\n const out = new ArrayBuffer(totalByteLength);\n const dataView = new DataView(out);\n for (let i = 0; i < input.length; i += 4) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n if (!(input[j] in alphabetByEncoding)) {\n throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n }\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n const chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n const byteLength = Math.floor(bitLength / bitsPerByte);\n for (let k = 0; k < byteLength; k++) {\n const offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n};\n","export * from \"./fromBase64\";\nexport * from \"./toBase64\";\n","import { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from \"./constants.browser\";\nexport function toBase64(input) {\n let str = \"\";\n for (let i = 0; i < input.length; i += 3) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (let k = 1; k <= bitClusterCount; k++) {\n const offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n","export const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\n","export * from \"./resolveDefaultsModeConfig\";\n","import { memoize } from \"@aws-sdk/property-provider\";\nimport bowser from \"bowser\";\nimport { DEFAULTS_MODE_OPTIONS } from \"./constants\";\nexport const resolveDefaultsModeConfig = ({ defaultsMode, } = {}) => memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return Promise.resolve(isMobileBrowser() ? \"mobile\" : \"standard\");\n case \"mobile\":\n case \"in-region\":\n case \"cross-region\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst isMobileBrowser = () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const platform = parsedUA?.platform?.type;\n return platform === \"tablet\" || platform === \"mobile\";\n};\n","import { ProviderError } from \"./ProviderError\";\nexport class CredentialsProviderError extends ProviderError {\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n this.name = \"CredentialsProviderError\";\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\n","export class ProviderError extends Error {\n constructor(message, tryNextLink = true) {\n super(message);\n this.tryNextLink = tryNextLink;\n this.name = \"ProviderError\";\n Object.setPrototypeOf(this, ProviderError.prototype);\n }\n static from(error, tryNextLink = true) {\n return Object.assign(new this(error.message, tryNextLink), error);\n }\n}\n","import { ProviderError } from \"./ProviderError\";\nexport class TokenProviderError extends ProviderError {\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n this.name = \"TokenProviderError\";\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n","export const fromStatic = (staticValue) => () => Promise.resolve(staticValue);\n","export * from \"./CredentialsProviderError\";\nexport * from \"./ProviderError\";\nexport * from \"./TokenProviderError\";\nexport * from \"./chain\";\nexport * from \"./fromStatic\";\nexport * from \"./memoize\";\n","export const debugId = \"endpoints\";\n","export * from \"./debugId\";\nexport * from \"./toDebugString\";\n","export function toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\n","export * from \"./lib/aws/partition\";\nexport * from \"./resolveEndpoint\";\nexport * from \"./types\";\n","export * from \"./isVirtualHostableS3Bucket\";\nexport * from \"./parseArn\";\nexport * from \"./partition\";\n","import { isIpAddress } from \"../isIpAddress\";\nimport { isValidHostLabel } from \"../isValidHostLabel\";\nexport const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (isIpAddress(value)) {\n return false;\n }\n return true;\n};\n","export const parseArn = (value) => {\n const segments = value.split(\":\");\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourceId] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourceId[0] === \"\")\n return null;\n return {\n partition,\n service,\n region,\n accountId,\n resourceId: resourceId[0].includes(\"/\") ? resourceId[0].split(\"/\") : resourceId,\n };\n};\n","import partitionsInfo from \"./partitions.json\";\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nexport const partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nexport const setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nexport const useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nexport const getUserAgentPrefix = () => selectedUserAgentPrefix;\n","export const booleanEquals = (value1, value2) => value1 === value2;\n","import { EndpointError } from \"../types\";\nimport { getAttrPathList } from \"./getAttrPathList\";\nexport const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n return acc[parseInt(index)];\n }\n return acc[index];\n}, value);\n","import { EndpointError } from \"../types\";\nexport const getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\n","export * as aws from \"./aws\";\nexport * from \"./booleanEquals\";\nexport * from \"./getAttr\";\nexport * from \"./isSet\";\nexport * from \"./isValidHostLabel\";\nexport * from \"./not\";\nexport * from \"./parseURL\";\nexport * from \"./stringEquals\";\nexport * from \"./substring\";\nexport * from \"./uriEncode\";\n","const IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nexport const isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n","export const isSet = (value) => value != null;\n","const VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nexport const isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!isValidHostLabel(label)) {\n return false;\n }\n }\n return true;\n};\n","export const not = (value) => !value;\n","import { EndpointURLScheme } from \"@aws-sdk/types\";\nimport { isIpAddress } from \"./isIpAddress\";\nconst DEFAULT_PORTS = {\n [EndpointURLScheme.HTTP]: 80,\n [EndpointURLScheme.HTTPS]: 443,\n};\nexport const parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = isIpAddress(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\n","export const stringEquals = (value1, value2) => value1 === value2;\n","export const substring = (input, start, stop, reverse) => {\n if (start >= stop || input.length < stop) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\n","export const uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n","import { debugId, toDebugString } from \"./debug\";\nimport { EndpointError } from \"./types\";\nimport { evaluateRules } from \"./utils\";\nexport const resolveEndpoint = (ruleSetObject, options) => {\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n const paramsWithDefault = Object.entries(parameters)\n .filter(([, v]) => v.default != null)\n .map(([k, v]) => [k, v.default]);\n if (paramsWithDefault.length > 0) {\n for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\n }\n }\n const requiredParams = Object.entries(parameters)\n .filter(([, v]) => v.required)\n .map(([k]) => k);\n for (const requiredParam of requiredParams) {\n if (endpointParams[requiredParam] == null) {\n throw new EndpointError(`Missing required parameter: '${requiredParam}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n if (options.endpointParams?.Endpoint) {\n try {\n const givenEndpoint = new URL(options.endpointParams.Endpoint);\n const { protocol, port } = givenEndpoint;\n endpoint.url.protocol = protocol;\n endpoint.url.port = port;\n }\n catch (e) {\n }\n }\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n","export class EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n","export {};\n","export {};\n","export {};\n","export {};\n","export * from \"./EndpointError\";\nexport * from \"./EndpointRuleObject\";\nexport * from \"./ErrorRuleObject\";\nexport * from \"./RuleSetObject\";\nexport * from \"./TreeRuleObject\";\nexport * from \"./shared\";\n","export {};\n","import * as lib from \"../lib\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : evaluateExpression(arg, \"arg\", options));\n return fn.split(\".\").reduce((acc, key) => acc[key], lib)(...evaluatedArgs);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const evaluateCondition = ({ assign, ...fnArgs }, options) => {\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(fnArgs, options);\n options.logger?.debug?.(debugId, `evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);\n return {\n result: value === \"\" ? true : !!value,\n ...(assign != null && { toAssign: { name: assign, value } }),\n };\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateCondition } from \"./evaluateCondition\";\nexport const evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, {\n ...options,\n referenceRecord: {\n ...options.referenceRecord,\n ...conditionsReferenceRecord,\n },\n });\n if (!result) {\n return { result };\n }\n if (toAssign) {\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(debugId, `assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n return { result: true, referenceRecord: conditionsReferenceRecord };\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { getEndpointHeaders } from \"./getEndpointHeaders\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nimport { getEndpointUrl } from \"./getEndpointUrl\";\nexport const evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n };\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(debugId, `Resolving endpoint from template: ${toDebugString(endpoint)}`);\n return {\n ...(headers != undefined && {\n headers: getEndpointHeaders(headers, endpointRuleOptions),\n }),\n ...(properties != undefined && {\n properties: getEndpointProperties(properties, endpointRuleOptions),\n }),\n url: getEndpointUrl(url, endpointRuleOptions),\n };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n throw new EndpointError(evaluateExpression(error, \"Error\", {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }));\n};\n","import { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getReferenceValue } from \"./getReferenceValue\";\nexport const evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return callFunction(obj, options);\n }\n else if (obj[\"ref\"]) {\n return getReferenceValue(obj, options);\n }\n throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateEndpointRule } from \"./evaluateEndpointRule\";\nimport { evaluateErrorRule } from \"./evaluateErrorRule\";\nimport { evaluateTreeRule } from \"./evaluateTreeRule\";\nexport const evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = evaluateEndpointRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n evaluateErrorRule(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = evaluateTreeRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new EndpointError(`Rules evaluation failed`);\n};\n","import { getAttr } from \"../lib\";\nexport const evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const templateContext = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName));\n }\n else {\n evaluatedTemplateArr.push(templateContext[parameterName]);\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n","import { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateRules } from \"./evaluateRules\";\nexport const evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n return evaluateRules(rules, {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n });\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n ...acc,\n [headerKey]: headerVal.map((headerValEntry) => {\n const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n }),\n}), {});\n","import { getEndpointProperty } from \"./getEndpointProperty\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n ...acc,\n [propertyKey]: getEndpointProperty(propertyVal, options),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nexport const getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return evaluateTemplate(property, options);\n case \"object\":\n if (property === null) {\n throw new EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointUrl = (endpointUrl, options) => {\n const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n","export const getReferenceValue = ({ ref }, options) => {\n const referenceRecord = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n return referenceRecord[ref];\n};\n","export * from \"./evaluateRules\";\n","export {};\n","export var HttpAuthLocation;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(HttpAuthLocation || (HttpAuthLocation = {}));\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export * from \"./config\";\nexport * from \"./manager\";\nexport * from \"./pool\";\n","export {};\n","export {};\n","export {};\n","export {};\n","export var HostAddressType;\n(function (HostAddressType) {\n HostAddressType[\"AAAA\"] = \"AAAA\";\n HostAddressType[\"A\"] = \"A\";\n})(HostAddressType || (HostAddressType = {}));\n","export {};\n","export var EndpointURLScheme;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme || (EndpointURLScheme = {}));\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export * from \"./AnonymousIdentity\";\nexport * from \"./AwsCredentialIdentity\";\nexport * from \"./Identity\";\nexport * from \"./LoginIdentity\";\nexport * from \"./TokenIdentity\";\n","export * from \"./abort\";\nexport * from \"./auth\";\nexport * from \"./blob/blob-types\";\nexport * from \"./checksum\";\nexport * from \"./client\";\nexport * from \"./command\";\nexport * from \"./connection\";\nexport * from \"./credentials\";\nexport * from \"./crypto\";\nexport * from \"./dns\";\nexport * from \"./encode\";\nexport * from \"./endpoint\";\nexport * from \"./eventStream\";\nexport * from \"./http\";\nexport * from \"./identity\";\nexport * from \"./logger\";\nexport * from \"./middleware\";\nexport * from \"./pagination\";\nexport * from \"./profile\";\nexport * from \"./request\";\nexport * from \"./response\";\nexport * from \"./retry\";\nexport * from \"./serde\";\nexport * from \"./shapes\";\nexport * from \"./signature\";\nexport * from \"./stream\";\nexport * from \"./token\";\nexport * from \"./transfer\";\nexport * from \"./uri\";\nexport * from \"./util\";\nexport * from \"./waiter\";\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export var RequestHandlerProtocol;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(RequestHandlerProtocol || (RequestHandlerProtocol = {}));\n","export {};\n","export {};\n","export {};\n","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = \"0\" + encodedByte;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n var out = new Uint8Array(encoded.length / 2);\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.substr(i, 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(\"Cannot decode unrecognized sequence \" + encodedByte + \" as hexadecimal\");\n }\n }\n return out;\n}\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport function toHex(bytes) {\n var out = \"\";\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","export * from \"./normalizeProvider\";\n","export const normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n","import { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.ADAPTIVE;\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n}\n","import { DEFAULT_RETRY_DELAY_BASE } from \"./constants\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class ConfiguredRetryStrategy extends StandardRetryStrategy {\n constructor(maxAttempts, computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE) {\n super(typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts);\n if (typeof computeNextBackoffDelay === \"number\") {\n this.computeNextBackoffDelay = () => computeNextBackoffDelay;\n }\n else {\n this.computeNextBackoffDelay = computeNextBackoffDelay;\n }\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount());\n return token;\n }\n}\n","import { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nexport class DefaultRateLimiter {\n constructor(options) {\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = options?.beta ?? 0.7;\n this.minCapacity = options?.minCapacity ?? 1;\n this.minFillRate = options?.minFillRate ?? 0.5;\n this.scaleConstant = options?.scaleConstant ?? 0.4;\n this.smooth = options?.smooth ?? 0.8;\n const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.currentCapacity) {\n const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n this.currentCapacity = this.currentCapacity - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n if (isThrottlingError(response)) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\n","import { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT, RETRY_COST, THROTTLING_RETRY_DELAY_BASE, TIMEOUT_RETRY_COST, } from \"./constants\";\nimport { getDefaultRetryBackoffStrategy } from \"./defaultRetryBackoffStrategy\";\nimport { createDefaultRetryToken } from \"./defaultRetryToken\";\nexport class StandardRetryStrategy {\n constructor(maxAttempts) {\n this.maxAttempts = maxAttempts;\n this.mode = RETRY_MODES.STANDARD;\n this.capacity = INITIAL_RETRY_TOKENS;\n this.retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return createDefaultRetryToken({\n retryDelay: DEFAULT_RETRY_DELAY_BASE,\n retryCount: 0,\n });\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n if (this.shouldRetry(token, errorInfo, maxAttempts)) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n const retryDelay = errorInfo.retryAfterHint\n ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType)\n : delayFromErrorType;\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n return createDefaultRetryToken({\n retryDelay,\n retryCount: token.getRetryCount() + 1,\n retryCost: capacityCost,\n });\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n return DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount();\n return (attempts < maxAttempts &&\n this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n getCapacityCost(errorType) {\n return errorType === \"TRANSIENT\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n}\n","export var RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport const DEFAULT_MAX_ATTEMPTS = 3;\nexport const DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n","export const DEFAULT_RETRY_DELAY_BASE = 100;\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\nexport const INITIAL_RETRY_TOKENS = 500;\nexport const RETRY_COST = 5;\nexport const TIMEOUT_RETRY_COST = 10;\nexport const NO_RETRY_INCREMENT = 1;\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n","import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const getDefaultRetryBackoffStrategy = () => {\n let delayBase = DEFAULT_RETRY_DELAY_BASE;\n const computeNextBackoffDelay = (attempts) => {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n };\n const setDelayBase = (delay) => {\n delayBase = delay;\n };\n return {\n computeNextBackoffDelay,\n setDelayBase,\n };\n};\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const createDefaultRetryToken = ({ retryDelay, retryCount, retryCost, }) => {\n const getRetryCount = () => retryCount;\n const getRetryDelay = () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay);\n const getRetryCost = () => retryCost;\n return {\n getRetryCount,\n getRetryDelay,\n getRetryCost,\n };\n};\n","export * from \"./AdaptiveRetryStrategy\";\nexport * from \"./ConfiguredRetryStrategy\";\nexport * from \"./DefaultRateLimiter\";\nexport * from \"./StandardRetryStrategy\";\nexport * from \"./config\";\nexport * from \"./constants\";\nexport * from \"./types\";\n","export {};\n","export const CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport const THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexport const TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nexport const isTransientError = (error) => TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\nexport const isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\n","import { transformFromString, transformToString } from \"./transforms\";\nexport class Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n switch (typeof source) {\n case \"string\":\n return transformFromString(source, encoding);\n default:\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n return transformToString(this, encoding);\n }\n}\n","import { fromBase64, toBase64 } from \"@aws-sdk/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8\";\nimport { Uint8ArrayBlobAdapter } from \"./Uint8ArrayBlobAdapter\";\nexport function transformToString(payload, encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return toBase64(payload);\n }\n return toUtf8(payload);\n}\nexport function transformFromString(str, encoding) {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(fromBase64(str));\n }\n return Uint8ArrayBlobAdapter.mutate(fromUtf8(str));\n}\n","export const getAwsChunkedEncodingStream = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n bodyLengthChecker !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const reader = readableStream.getReader();\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await reader.read();\n if (done) {\n controller.enqueue(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n controller.enqueue(`\\r\\n`);\n }\n controller.close();\n }\n else {\n controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n }\n },\n });\n};\n","export * from \"./blob/Uint8ArrayBlobAdapter\";\nexport * from \"./getAwsChunkedEncodingStream\";\nexport * from \"./sdk-stream-mixin\";\n","import { streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { toBase64 } from \"@aws-sdk/util-base64\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { toUtf8 } from \"@aws-sdk/util-utf8\";\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nexport const sdkStreamMixin = (stream) => {\n if (!isBlobInstance(stream) && !isReadableStreamInstance(stream)) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await streamCollector(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return toBase64(buf);\n }\n else if (encoding === \"hex\") {\n return toHex(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return toUtf8(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if (isReadableStreamInstance(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\n","export * from \"./fetch-http-handler\";\nexport * from \"./stream-collector\";\n","export function requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { FieldPosition } from \"./FieldPosition\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export class Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n","export {};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export * from \"./Field\";\nexport * from \"./FieldPosition\";\nexport * from \"./Fields\";\nexport * from \"./httpHandler\";\nexport * from \"./httpRequest\";\nexport * from \"./httpResponse\";\nexport * from \"./isValidHostname\";\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","import { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","import { escapeUri } from \"./escape-uri\";\nexport const escapeUriPath = (uri) => uri.split(\"/\").map(escapeUri).join(\"/\");\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","export * from \"./escape-uri\";\nexport * from \"./escape-uri-path\";\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","export * from \"./fromUtf8\";\nexport * from \"./toUint8Array\";\nexport * from \"./toUtf8\";\n","import { fromUtf8 } from \"./fromUtf8\";\nexport const toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n","export const toUtf8 = (input) => new TextDecoder(\"utf-8\").decode(input);\n","import { runPolling } from \"./poller\";\nimport { validateWaiterOptions } from \"./utils\";\nimport { waiterServiceDefaults, WaiterState } from \"./waiter\";\nconst abortTimeout = async (abortSignal) => {\n return new Promise((resolve) => {\n abortSignal.onabort = () => resolve({ state: WaiterState.ABORTED });\n });\n};\nexport const createWaiter = async (options, input, acceptorChecks) => {\n const params = {\n ...waiterServiceDefaults,\n ...options,\n };\n validateWaiterOptions(params);\n const exitConditions = [runPolling(params, input, acceptorChecks)];\n if (options.abortController) {\n exitConditions.push(abortTimeout(options.abortController.signal));\n }\n if (options.abortSignal) {\n exitConditions.push(abortTimeout(options.abortSignal));\n }\n return Promise.race(exitConditions);\n};\n","export * from \"./createWaiter\";\nexport * from \"./waiter\";\n","import { sleep } from \"./utils/sleep\";\nimport { WaiterState } from \"./waiter\";\nconst exponentialBackoffWithJitter = (minDelay, maxDelay, attemptCeiling, attempt) => {\n if (attempt > attemptCeiling)\n return maxDelay;\n const delay = minDelay * 2 ** (attempt - 1);\n return randomInRange(minDelay, delay);\n};\nconst randomInRange = (min, max) => min + Math.random() * (max - min);\nexport const runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => {\n const { state, reason } = await acceptorChecks(client, input);\n if (state !== WaiterState.RETRY) {\n return { state, reason };\n }\n let currentAttempt = 1;\n const waitUntil = Date.now() + maxWaitTime * 1000;\n const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1;\n while (true) {\n if (abortController?.signal?.aborted || abortSignal?.aborted) {\n return { state: WaiterState.ABORTED };\n }\n const delay = exponentialBackoffWithJitter(minDelay, maxDelay, attemptCeiling, currentAttempt);\n if (Date.now() + delay * 1000 > waitUntil) {\n return { state: WaiterState.TIMEOUT };\n }\n await sleep(delay);\n const { state, reason } = await acceptorChecks(client, input);\n if (state !== WaiterState.RETRY) {\n return { state, reason };\n }\n currentAttempt += 1;\n }\n};\n","export * from \"./sleep\";\nexport * from \"./validate\";\n","export const sleep = (seconds) => {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n};\n","export const validateWaiterOptions = (options) => {\n if (options.maxWaitTime < 1) {\n throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`);\n }\n else if (options.minDelay < 1) {\n throw new Error(`WaiterConfiguration.minDelay must be greater than 0`);\n }\n else if (options.maxDelay < 1) {\n throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`);\n }\n else if (options.maxWaitTime <= options.minDelay) {\n throw new Error(`WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n else if (options.maxDelay < options.minDelay) {\n throw new Error(`WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n};\n","export const waiterServiceDefaults = {\n minDelay: 2,\n maxDelay: 120,\n};\nexport var WaiterState;\n(function (WaiterState) {\n WaiterState[\"ABORTED\"] = \"ABORTED\";\n WaiterState[\"FAILURE\"] = \"FAILURE\";\n WaiterState[\"SUCCESS\"] = \"SUCCESS\";\n WaiterState[\"RETRY\"] = \"RETRY\";\n WaiterState[\"TIMEOUT\"] = \"TIMEOUT\";\n})(WaiterState || (WaiterState = {}));\nexport const checkExceptions = (result) => {\n if (result.state === WaiterState.ABORTED) {\n const abortError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Request was aborted\",\n })}`);\n abortError.name = \"AbortError\";\n throw abortError;\n }\n else if (result.state === WaiterState.TIMEOUT) {\n const timeoutError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Waiter has timed out\",\n })}`);\n timeoutError.name = \"TimeoutError\";\n throw timeoutError;\n }\n else if (result.state !== WaiterState.SUCCESS) {\n throw new Error(`${JSON.stringify({ result })}`);\n }\n return result;\n};\n","import { escapeAttribute } from \"./escape-attribute\";\nimport { XmlText } from \"./XmlText\";\nexport class XmlNode {\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`);\n }\n}\n","import { escapeElement } from \"./escape-element\";\nexport class XmlText {\n constructor(value) {\n this.value = value;\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n}\n","export function escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n","export function escapeElement(value) {\n return value\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(//g, \">\")\n .replace(/\\r/g, \" \")\n .replace(/\\n/g, \" \")\n .replace(/\\u0085/g, \"…\")\n .replace(/\\u2028/, \"
\");\n}\n","export * from \"./XmlNode\";\nexport * from \"./XmlText\";\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occured. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis } from \"./Utils\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n }\r\n else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"Content-Type\": \"text/plain;charset=UTF-8\",\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError } from \"./Errors\";\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = options.httpClient || new DefaultHttpClient(this._logger);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new Error(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new Error(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */ || this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n throw new Error(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n if (this._accessTokenFactory) {\r\n const token = await this._accessTokenFactory();\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new Error(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n constructor(connection, logger, protocol, reconnectPolicy) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new Error(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n _invokeClientMethod(invocationMessage) {\r\n const methods = this._methods[invocationMessage.target.toLowerCase()];\r\n if (methods) {\r\n try {\r\n methods.forEach((m) => m.apply(this, invocationMessage.arguments));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `A callback for the method ${invocationMessage.target.toLowerCase()} threw error '${e}'.`);\r\n }\r\n if (invocationMessage.invocationId) {\r\n // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n const message = \"Server requested a response, which is not supported in this version of the client.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We don't want to wait on the stop itself.\r\n this._stopPromise = this._stopInternal(new Error(message));\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${invocationMessage.target}' found.`);\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new Error(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n constructor(httpClient, accessTokenFactory, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n const token = await this._getAccessToken();\r\n this._updateHeaderToken(pollOptions, token);\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _getAccessToken() {\r\n if (this._accessTokenFactory) {\r\n return await this._accessTokenFactory();\r\n }\r\n return null;\r\n }\r\n _updateHeaderToken(request, token) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (token) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n return;\r\n }\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n // We have to get the access token on each poll, in case it changes\r\n const token = await this._getAccessToken();\r\n this._updateHeaderToken(pollOptions, token);\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, this._accessTokenFactory, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n const token = await this._getAccessToken();\r\n this._updateHeaderToken(deleteOptions, token);\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessTokenFactory, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessTokenFactory) {\r\n const token = await this._accessTokenFactory();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, this._accessTokenFactory, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"6.0.9\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, options) {\r\n let headers = {};\r\n if (accessTokenFactory) {\r\n const token = await accessTokenFactory();\r\n if (token) {\r\n headers = {\r\n [\"Authorization\"]: `Bearer ${token}`,\r\n };\r\n }\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n if (this._accessTokenFactory) {\r\n const token = await this._accessTokenFactory();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = `${cookies}`;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content || \"\");\r\n });\r\n }\r\n}\r\n","import { Injectable, EventEmitter, Inject, InjectionToken, ChangeDetectorRef, Directive, ElementRef, Input, Pipe, NgModule } from '@angular/core';\nimport { of, concat, merge, Observable } from 'rxjs';\nimport { map, share, switchMap, take, toArray } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @abstract\n */\nimport * as ɵngcc0 from '@angular/core';\nclass TranslateLoader {\n}\n/**\n * This loader is just a placeholder that does nothing, in case you don't need a loader at all\n */\nclass TranslateFakeLoader extends TranslateLoader {\n /**\n * @param {?} lang\n * @return {?}\n */\n getTranslation(lang) {\n return of({});\n }\n}\nTranslateFakeLoader.ɵfac = /*@__PURE__*/ function () { let ɵTranslateFakeLoader_BaseFactory; return function TranslateFakeLoader_Factory(t) { return (ɵTranslateFakeLoader_BaseFactory || (ɵTranslateFakeLoader_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(TranslateFakeLoader)))(t || TranslateFakeLoader); }; }();\nTranslateFakeLoader.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TranslateFakeLoader, factory: TranslateFakeLoader.ɵfac });\n/** @nocollapse */\nTranslateFakeLoader.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TranslateFakeLoader, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @record\n */\n\n/**\n * @abstract\n */\nclass MissingTranslationHandler {\n}\n/**\n * This handler is just a placeholder that does nothing, in case you don't need a missing translation handler at all\n */\nclass FakeMissingTranslationHandler {\n /**\n * @param {?} params\n * @return {?}\n */\n handle(params) {\n return params.key;\n }\n}\nFakeMissingTranslationHandler.ɵfac = function FakeMissingTranslationHandler_Factory(t) { return new (t || FakeMissingTranslationHandler)(); };\nFakeMissingTranslationHandler.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FakeMissingTranslationHandler, factory: FakeMissingTranslationHandler.ɵfac });\n/** @nocollapse */\nFakeMissingTranslationHandler.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FakeMissingTranslationHandler, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @abstract\n */\nclass TranslateCompiler {\n}\n/**\n * This compiler is just a placeholder that does nothing, in case you don't need a compiler at all\n */\nclass TranslateFakeCompiler extends TranslateCompiler {\n /**\n * @param {?} value\n * @param {?} lang\n * @return {?}\n */\n compile(value, lang) {\n return value;\n }\n /**\n * @param {?} translations\n * @param {?} lang\n * @return {?}\n */\n compileTranslations(translations, lang) {\n return translations;\n }\n}\nTranslateFakeCompiler.ɵfac = /*@__PURE__*/ function () { let ɵTranslateFakeCompiler_BaseFactory; return function TranslateFakeCompiler_Factory(t) { return (ɵTranslateFakeCompiler_BaseFactory || (ɵTranslateFakeCompiler_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(TranslateFakeCompiler)))(t || TranslateFakeCompiler); }; }();\nTranslateFakeCompiler.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TranslateFakeCompiler, factory: TranslateFakeCompiler.ɵfac });\n/** @nocollapse */\nTranslateFakeCompiler.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TranslateFakeCompiler, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Determines if two objects or two values are equivalent.\n *\n * Two objects or values are considered equivalent if at least one of the following is true:\n *\n * * Both objects or values pass `===` comparison.\n * * Both objects or values are of the same type and all of their properties are equal by\n * comparing them with `equals`.\n *\n * @param {?} o1 Object or value to compare.\n * @param {?} o2 Object or value to compare.\n * @return {?} true if arguments are equal.\n */\nfunction equals(o1, o2) {\n if (o1 === o2)\n return true;\n if (o1 === null || o2 === null)\n return false;\n if (o1 !== o1 && o2 !== o2)\n return true; // NaN === NaN\n let /** @type {?} */ t1 = typeof o1, /** @type {?} */ t2 = typeof o2, /** @type {?} */ length, /** @type {?} */ key, /** @type {?} */ keySet;\n if (t1 == t2 && t1 == 'object') {\n if (Array.isArray(o1)) {\n if (!Array.isArray(o2))\n return false;\n if ((length = o1.length) == o2.length) {\n for (key = 0; key < length; key++) {\n if (!equals(o1[key], o2[key]))\n return false;\n }\n return true;\n }\n }\n else {\n if (Array.isArray(o2)) {\n return false;\n }\n keySet = Object.create(null);\n for (key in o1) {\n if (!equals(o1[key], o2[key])) {\n return false;\n }\n keySet[key] = true;\n }\n for (key in o2) {\n if (!(key in keySet) && typeof o2[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isDefined(value) {\n return typeof value !== 'undefined' && value !== null;\n}\n/**\n * @param {?} item\n * @return {?}\n */\nfunction isObject(item) {\n return (item && typeof item === 'object' && !Array.isArray(item));\n}\n/**\n * @param {?} target\n * @param {?} source\n * @return {?}\n */\nfunction mergeDeep(target, source) {\n let /** @type {?} */ output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key) => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] });\n }\n else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n }\n else {\n Object.assign(output, { [key]: source[key] });\n }\n });\n }\n return output;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @abstract\n */\nclass TranslateParser {\n}\nclass TranslateDefaultParser extends TranslateParser {\n constructor() {\n super(...arguments);\n this.templateMatcher = /{{\\s?([^{}\\s]*)\\s?}}/g;\n }\n /**\n * @param {?} expr\n * @param {?=} params\n * @return {?}\n */\n interpolate(expr, params) {\n let /** @type {?} */ result;\n if (typeof expr === 'string') {\n result = this.interpolateString(expr, params);\n }\n else if (typeof expr === 'function') {\n result = this.interpolateFunction(expr, params);\n }\n else {\n // this should not happen, but an unrelated TranslateService test depends on it\n result = /** @type {?} */ (expr);\n }\n return result;\n }\n /**\n * @param {?} target\n * @param {?} key\n * @return {?}\n */\n getValue(target, key) {\n let /** @type {?} */ keys = key.split('.');\n key = '';\n do {\n key += keys.shift();\n if (isDefined(target) && isDefined(target[key]) && (typeof target[key] === 'object' || !keys.length)) {\n target = target[key];\n key = '';\n }\n else if (!keys.length) {\n target = undefined;\n }\n else {\n key += '.';\n }\n } while (keys.length);\n return target;\n }\n /**\n * @param {?} fn\n * @param {?=} params\n * @return {?}\n */\n interpolateFunction(fn, params) {\n return fn(params);\n }\n /**\n * @param {?} expr\n * @param {?=} params\n * @return {?}\n */\n interpolateString(expr, params) {\n if (!params) {\n return expr;\n }\n return expr.replace(this.templateMatcher, (substring, b) => {\n let /** @type {?} */ r = this.getValue(params, b);\n return isDefined(r) ? r : substring;\n });\n }\n}\nTranslateDefaultParser.ɵfac = /*@__PURE__*/ function () { let ɵTranslateDefaultParser_BaseFactory; return function TranslateDefaultParser_Factory(t) { return (ɵTranslateDefaultParser_BaseFactory || (ɵTranslateDefaultParser_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(TranslateDefaultParser)))(t || TranslateDefaultParser); }; }();\nTranslateDefaultParser.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TranslateDefaultParser, factory: TranslateDefaultParser.ɵfac });\n/** @nocollapse */\nTranslateDefaultParser.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TranslateDefaultParser, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nclass TranslateStore {\n constructor() {\n /**\n * The lang currently used\n */\n this.currentLang = this.defaultLang;\n /**\n * a list of translations per lang\n */\n this.translations = {};\n /**\n * an array of langs\n */\n this.langs = [];\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n */\n this.onTranslationChange = new EventEmitter();\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n */\n this.onLangChange = new EventEmitter();\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n */\n this.onDefaultLangChange = new EventEmitter();\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nconst USE_STORE = new InjectionToken('USE_STORE');\nconst USE_DEFAULT_LANG = new InjectionToken('USE_DEFAULT_LANG');\n/**\n * @record\n */\n\n/**\n * @record\n */\n\n/**\n * @record\n */\n\nclass TranslateService {\n /**\n *\n * @param {?} store an instance of the store (that is supposed to be unique)\n * @param {?} currentLoader An instance of the loader currently used\n * @param {?} compiler An instance of the compiler currently used\n * @param {?} parser An instance of the parser currently used\n * @param {?} missingTranslationHandler A handler for missing translations.\n * @param {?=} useDefaultLang whether we should use default language translation when current language translation is missing.\n * @param {?=} isolate whether this service should use the store or not\n */\n constructor(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang = true, isolate = false) {\n this.store = store;\n this.currentLoader = currentLoader;\n this.compiler = compiler;\n this.parser = parser;\n this.missingTranslationHandler = missingTranslationHandler;\n this.useDefaultLang = useDefaultLang;\n this.isolate = isolate;\n this.pending = false;\n this._onTranslationChange = new EventEmitter();\n this._onLangChange = new EventEmitter();\n this._onDefaultLangChange = new EventEmitter();\n this._langs = [];\n this._translations = {};\n this._translationRequests = {};\n }\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n * @return {?}\n */\n get onTranslationChange() {\n return this.isolate ? this._onTranslationChange : this.store.onTranslationChange;\n }\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n * @return {?}\n */\n get onLangChange() {\n return this.isolate ? this._onLangChange : this.store.onLangChange;\n }\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n * @return {?}\n */\n get onDefaultLangChange() {\n return this.isolate ? this._onDefaultLangChange : this.store.onDefaultLangChange;\n }\n /**\n * The default lang to fallback when translations are missing on the current lang\n * @return {?}\n */\n get defaultLang() {\n return this.isolate ? this._defaultLang : this.store.defaultLang;\n }\n /**\n * @param {?} defaultLang\n * @return {?}\n */\n set defaultLang(defaultLang) {\n if (this.isolate) {\n this._defaultLang = defaultLang;\n }\n else {\n this.store.defaultLang = defaultLang;\n }\n }\n /**\n * The lang currently used\n * @return {?}\n */\n get currentLang() {\n return this.isolate ? this._currentLang : this.store.currentLang;\n }\n /**\n * @param {?} currentLang\n * @return {?}\n */\n set currentLang(currentLang) {\n if (this.isolate) {\n this._currentLang = currentLang;\n }\n else {\n this.store.currentLang = currentLang;\n }\n }\n /**\n * an array of langs\n * @return {?}\n */\n get langs() {\n return this.isolate ? this._langs : this.store.langs;\n }\n /**\n * @param {?} langs\n * @return {?}\n */\n set langs(langs) {\n if (this.isolate) {\n this._langs = langs;\n }\n else {\n this.store.langs = langs;\n }\n }\n /**\n * a list of translations per lang\n * @return {?}\n */\n get translations() {\n return this.isolate ? this._translations : this.store.translations;\n }\n /**\n * @param {?} translations\n * @return {?}\n */\n set translations(translations) {\n if (this.isolate) {\n this._translations = translations;\n }\n else {\n this.store.translations = translations;\n }\n }\n /**\n * Sets the default language to use as a fallback\n * @param {?} lang\n * @return {?}\n */\n setDefaultLang(lang) {\n if (lang === this.defaultLang) {\n return;\n }\n let /** @type {?} */ pending = this.retrieveTranslations(lang);\n if (typeof pending !== \"undefined\") {\n // on init set the defaultLang immediately\n if (!this.defaultLang) {\n this.defaultLang = lang;\n }\n pending.pipe(take(1))\n .subscribe((res) => {\n this.changeDefaultLang(lang);\n });\n }\n else {\n // we already have this language\n this.changeDefaultLang(lang);\n }\n }\n /**\n * Gets the default language used\n * @return {?}\n */\n getDefaultLang() {\n return this.defaultLang;\n }\n /**\n * Changes the lang currently used\n * @param {?} lang\n * @return {?}\n */\n use(lang) {\n // don't change the language if the language given is already selected\n if (lang === this.currentLang) {\n return of(this.translations[lang]);\n }\n let /** @type {?} */ pending = this.retrieveTranslations(lang);\n if (typeof pending !== \"undefined\") {\n // on init set the currentLang immediately\n if (!this.currentLang) {\n this.currentLang = lang;\n }\n pending.pipe(take(1))\n .subscribe((res) => {\n this.changeLang(lang);\n });\n return pending;\n }\n else {\n // we have this language, return an Observable\n this.changeLang(lang);\n return of(this.translations[lang]);\n }\n }\n /**\n * Retrieves the given translations\n * @param {?} lang\n * @return {?}\n */\n retrieveTranslations(lang) {\n let /** @type {?} */ pending;\n // if this language is unavailable, ask for it\n if (typeof this.translations[lang] === \"undefined\") {\n this._translationRequests[lang] = this._translationRequests[lang] || this.getTranslation(lang);\n pending = this._translationRequests[lang];\n }\n return pending;\n }\n /**\n * Gets an object of translations for a given language with the current loader\n * and passes it through the compiler\n * @param {?} lang\n * @return {?}\n */\n getTranslation(lang) {\n this.pending = true;\n this.loadingTranslations = this.currentLoader.getTranslation(lang).pipe(share());\n this.loadingTranslations.pipe(take(1))\n .subscribe((res) => {\n this.translations[lang] = this.compiler.compileTranslations(res, lang);\n this.updateLangs();\n this.pending = false;\n }, (err) => {\n this.pending = false;\n });\n return this.loadingTranslations;\n }\n /**\n * Manually sets an object of translations for a given language\n * after passing it through the compiler\n * @param {?} lang\n * @param {?} translations\n * @param {?=} shouldMerge\n * @return {?}\n */\n setTranslation(lang, translations, shouldMerge = false) {\n translations = this.compiler.compileTranslations(translations, lang);\n if (shouldMerge && this.translations[lang]) {\n this.translations[lang] = mergeDeep(this.translations[lang], translations);\n }\n else {\n this.translations[lang] = translations;\n }\n this.updateLangs();\n this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] });\n }\n /**\n * Returns an array of currently available langs\n * @return {?}\n */\n getLangs() {\n return this.langs;\n }\n /**\n * Add available langs\n * @param {?} langs\n * @return {?}\n */\n addLangs(langs) {\n langs.forEach((lang) => {\n if (this.langs.indexOf(lang) === -1) {\n this.langs.push(lang);\n }\n });\n }\n /**\n * Update the list of available langs\n * @return {?}\n */\n updateLangs() {\n this.addLangs(Object.keys(this.translations));\n }\n /**\n * Returns the parsed result of the translations\n * @param {?} translations\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?}\n */\n getParsedResult(translations, key, interpolateParams) {\n let /** @type {?} */ res;\n if (key instanceof Array) {\n let /** @type {?} */ result = {}, /** @type {?} */\n observables = false;\n for (let /** @type {?} */ k of key) {\n result[k] = this.getParsedResult(translations, k, interpolateParams);\n if (typeof result[k].subscribe === \"function\") {\n observables = true;\n }\n }\n if (observables) {\n let /** @type {?} */ mergedObs;\n for (let /** @type {?} */ k of key) {\n let /** @type {?} */ obs = typeof result[k].subscribe === \"function\" ? result[k] : of(/** @type {?} */ (result[k]));\n if (typeof mergedObs === \"undefined\") {\n mergedObs = obs;\n }\n else {\n mergedObs = merge(mergedObs, obs);\n }\n }\n return mergedObs.pipe(toArray(), map((arr) => {\n let /** @type {?} */ obj = {};\n arr.forEach((value, index) => {\n obj[key[index]] = value;\n });\n return obj;\n }));\n }\n return result;\n }\n if (translations) {\n res = this.parser.interpolate(this.parser.getValue(translations, key), interpolateParams);\n }\n if (typeof res === \"undefined\" && this.defaultLang && this.defaultLang !== this.currentLang && this.useDefaultLang) {\n res = this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang], key), interpolateParams);\n }\n if (typeof res === \"undefined\") {\n let /** @type {?} */ params = { key, translateService: this };\n if (typeof interpolateParams !== 'undefined') {\n params.interpolateParams = interpolateParams;\n }\n res = this.missingTranslationHandler.handle(params);\n }\n return typeof res !== \"undefined\" ? res : key;\n }\n /**\n * Gets the translated value of a key (or an array of keys)\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} the translated key, or an object of translated keys\n */\n get(key, interpolateParams) {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n // check if we are loading a new translation to use\n if (this.pending) {\n return Observable.create((observer) => {\n let /** @type {?} */ onComplete = (res) => {\n observer.next(res);\n observer.complete();\n };\n let /** @type {?} */ onError = (err) => {\n observer.error(err);\n };\n this.loadingTranslations.subscribe((res) => {\n res = this.getParsedResult(this.compiler.compileTranslations(res, this.currentLang), key, interpolateParams);\n if (typeof res.subscribe === \"function\") {\n res.subscribe(onComplete, onError);\n }\n else {\n onComplete(res);\n }\n }, onError);\n });\n }\n else {\n let /** @type {?} */ res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\n if (typeof res.subscribe === \"function\") {\n return res;\n }\n else {\n return of(res);\n }\n }\n }\n /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the language changes.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} A stream of the translated key, or an object of translated keys\n */\n stream(key, interpolateParams) {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n return concat(this.get(key, interpolateParams), this.onLangChange.pipe(switchMap((event) => {\n const /** @type {?} */ res = this.getParsedResult(event.translations, key, interpolateParams);\n if (typeof res.subscribe === \"function\") {\n return res;\n }\n else {\n return of(res);\n }\n })));\n }\n /**\n * Returns a translation instantly from the internal state of loaded translation.\n * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?}\n */\n instant(key, interpolateParams) {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n let /** @type {?} */ res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\n if (typeof res.subscribe !== \"undefined\") {\n if (key instanceof Array) {\n let /** @type {?} */ obj = {};\n key.forEach((value, index) => {\n obj[key[index]] = key[index];\n });\n return obj;\n }\n return key;\n }\n else {\n return res;\n }\n }\n /**\n * Sets the translated value of a key, after compiling it\n * @param {?} key\n * @param {?} value\n * @param {?=} lang\n * @return {?}\n */\n set(key, value, lang = this.currentLang) {\n this.translations[lang][key] = this.compiler.compile(value, lang);\n this.updateLangs();\n this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] });\n }\n /**\n * Changes the current lang\n * @param {?} lang\n * @return {?}\n */\n changeLang(lang) {\n this.currentLang = lang;\n this.onLangChange.emit({ lang: lang, translations: this.translations[lang] });\n // if there is no default lang, use the one that we just set\n if (!this.defaultLang) {\n this.changeDefaultLang(lang);\n }\n }\n /**\n * Changes the default lang\n * @param {?} lang\n * @return {?}\n */\n changeDefaultLang(lang) {\n this.defaultLang = lang;\n this.onDefaultLangChange.emit({ lang: lang, translations: this.translations[lang] });\n }\n /**\n * Allows to reload the lang file from the file\n * @param {?} lang\n * @return {?}\n */\n reloadLang(lang) {\n this.resetLang(lang);\n return this.getTranslation(lang);\n }\n /**\n * Deletes inner translation\n * @param {?} lang\n * @return {?}\n */\n resetLang(lang) {\n this._translationRequests[lang] = undefined;\n this.translations[lang] = undefined;\n }\n /**\n * Returns the language code name from the browser, e.g. \"de\"\n * @return {?}\n */\n getBrowserLang() {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n let /** @type {?} */ browserLang = window.navigator.languages ? window.navigator.languages[0] : null;\n browserLang = browserLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n if (browserLang.indexOf('-') !== -1) {\n browserLang = browserLang.split('-')[0];\n }\n if (browserLang.indexOf('_') !== -1) {\n browserLang = browserLang.split('_')[0];\n }\n return browserLang;\n }\n /**\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\n * @return {?}\n */\n getBrowserCultureLang() {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n let /** @type {?} */ browserCultureLang = window.navigator.languages ? window.navigator.languages[0] : null;\n browserCultureLang = browserCultureLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n return browserCultureLang;\n }\n}\nTranslateService.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(ɵngcc0.ɵɵinject(TranslateStore), ɵngcc0.ɵɵinject(TranslateLoader), ɵngcc0.ɵɵinject(TranslateCompiler), ɵngcc0.ɵɵinject(TranslateParser), ɵngcc0.ɵɵinject(MissingTranslationHandler), ɵngcc0.ɵɵinject(USE_DEFAULT_LANG), ɵngcc0.ɵɵinject(USE_STORE)); };\nTranslateService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TranslateService, factory: TranslateService.ɵfac });\n/** @nocollapse */\nTranslateService.ctorParameters = () => [\n { type: TranslateStore, },\n { type: TranslateLoader, },\n { type: TranslateCompiler, },\n { type: TranslateParser, },\n { type: MissingTranslationHandler, },\n { type: undefined, decorators: [{ type: Inject, args: [USE_DEFAULT_LANG,] },] },\n { type: undefined, decorators: [{ type: Inject, args: [USE_STORE,] },] },\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TranslateService, [{\n type: Injectable\n }], function () { return [{ type: TranslateStore }, { type: TranslateLoader }, { type: TranslateCompiler }, { type: TranslateParser }, { type: MissingTranslationHandler }, { type: undefined, decorators: [{\n type: Inject,\n args: [USE_DEFAULT_LANG]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [USE_STORE]\n }] }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nclass TranslateDirective {\n /**\n * @param {?} translateService\n * @param {?} element\n * @param {?} _ref\n */\n constructor(translateService, element, _ref) {\n this.translateService = translateService;\n this.element = element;\n this._ref = _ref;\n // subscribe to onTranslationChange event, in case the translations of the current lang change\n if (!this.onTranslationChangeSub) {\n this.onTranslationChangeSub = this.translateService.onTranslationChange.subscribe((event) => {\n if (event.lang === this.translateService.currentLang) {\n this.checkNodes(true, event.translations);\n }\n });\n }\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChangeSub) {\n this.onLangChangeSub = this.translateService.onLangChange.subscribe((event) => {\n this.checkNodes(true, event.translations);\n });\n }\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub = this.translateService.onDefaultLangChange.subscribe((event) => {\n this.checkNodes(true);\n });\n }\n }\n /**\n * @param {?} key\n * @return {?}\n */\n set translate(key) {\n if (key) {\n this.key = key;\n this.checkNodes();\n }\n }\n /**\n * @param {?} params\n * @return {?}\n */\n set translateParams(params) {\n if (!equals(this.currentParams, params)) {\n this.currentParams = params;\n this.checkNodes(true);\n }\n }\n /**\n * @return {?}\n */\n ngAfterViewChecked() {\n this.checkNodes();\n }\n /**\n * @param {?=} forceUpdate\n * @param {?=} translations\n * @return {?}\n */\n checkNodes(forceUpdate = false, translations) {\n let /** @type {?} */ nodes = this.element.nativeElement.childNodes;\n // if the element is empty\n if (!nodes.length) {\n // we add the key as content\n this.setContent(this.element.nativeElement, this.key);\n nodes = this.element.nativeElement.childNodes;\n }\n for (let /** @type {?} */ i = 0; i < nodes.length; ++i) {\n let /** @type {?} */ node = nodes[i];\n if (node.nodeType === 3) {\n // node type 3 is a text node\n let /** @type {?} */ key;\n if (this.key) {\n key = this.key;\n if (forceUpdate) {\n node.lastKey = null;\n }\n }\n else {\n let /** @type {?} */ content = this.getContent(node);\n let /** @type {?} */ trimmedContent = content.trim();\n if (trimmedContent.length) {\n // we want to use the content as a key, not the translation value\n if (content !== node.currentValue) {\n key = trimmedContent;\n // the content was changed from the user, we'll use it as a reference if needed\n node.originalContent = this.getContent(node);\n }\n else if (node.originalContent && forceUpdate) {\n // the content seems ok, but the lang has changed\n node.lastKey = null;\n // the current content is the translation, not the key, use the last real content as key\n key = node.originalContent.trim();\n }\n }\n }\n this.updateValue(key, node, translations);\n }\n }\n }\n /**\n * @param {?} key\n * @param {?} node\n * @param {?} translations\n * @return {?}\n */\n updateValue(key, node, translations) {\n if (key) {\n if (node.lastKey === key && this.lastParams === this.currentParams) {\n return;\n }\n this.lastParams = this.currentParams;\n let /** @type {?} */ onTranslation = (res) => {\n if (res !== key) {\n node.lastKey = key;\n }\n if (!node.originalContent) {\n node.originalContent = this.getContent(node);\n }\n node.currentValue = isDefined(res) ? res : (node.originalContent || key);\n // we replace in the original content to preserve spaces that we might have trimmed\n this.setContent(node, this.key ? node.currentValue : node.originalContent.replace(key, node.currentValue));\n this._ref.markForCheck();\n };\n if (isDefined(translations)) {\n let /** @type {?} */ res = this.translateService.getParsedResult(translations, key, this.currentParams);\n if (typeof res.subscribe === \"function\") {\n res.subscribe(onTranslation);\n }\n else {\n onTranslation(res);\n }\n }\n else {\n this.translateService.get(key, this.currentParams).subscribe(onTranslation);\n }\n }\n }\n /**\n * @param {?} node\n * @return {?}\n */\n getContent(node) {\n return isDefined(node.textContent) ? node.textContent : node.data;\n }\n /**\n * @param {?} node\n * @param {?} content\n * @return {?}\n */\n setContent(node, content) {\n if (isDefined(node.textContent)) {\n node.textContent = content;\n }\n else {\n node.data = content;\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n if (this.onLangChangeSub) {\n this.onLangChangeSub.unsubscribe();\n }\n if (this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub.unsubscribe();\n }\n if (this.onTranslationChangeSub) {\n this.onTranslationChangeSub.unsubscribe();\n }\n }\n}\nTranslateDirective.ɵfac = function TranslateDirective_Factory(t) { return new (t || TranslateDirective)(ɵngcc0.ɵɵdirectiveInject(TranslateService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nTranslateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TranslateDirective, selectors: [[\"\", \"translate\", \"\"], [\"\", \"ngx-translate\", \"\"]], inputs: { translate: \"translate\", translateParams: \"translateParams\" } });\n/** @nocollapse */\nTranslateDirective.ctorParameters = () => [\n { type: TranslateService, },\n { type: ElementRef, },\n { type: ChangeDetectorRef, },\n];\nTranslateDirective.propDecorators = {\n \"translate\": [{ type: Input },],\n \"translateParams\": [{ type: Input },],\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TranslateDirective, [{\n type: Directive,\n args: [{\n selector: '[translate],[ngx-translate]'\n }]\n }], function () { return [{ type: TranslateService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }]; }, { translate: [{\n type: Input\n }], translateParams: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nclass TranslatePipe {\n /**\n * @param {?} translate\n * @param {?} _ref\n */\n constructor(translate, _ref) {\n this.translate = translate;\n this._ref = _ref;\n this.value = '';\n }\n /**\n * @param {?} key\n * @param {?=} interpolateParams\n * @param {?=} translations\n * @return {?}\n */\n updateValue(key, interpolateParams, translations) {\n let /** @type {?} */ onTranslation = (res) => {\n this.value = res !== undefined ? res : key;\n this.lastKey = key;\n this._ref.markForCheck();\n };\n if (translations) {\n let /** @type {?} */ res = this.translate.getParsedResult(translations, key, interpolateParams);\n if (typeof res.subscribe === 'function') {\n res.subscribe(onTranslation);\n }\n else {\n onTranslation(res);\n }\n }\n this.translate.get(key, interpolateParams).subscribe(onTranslation);\n }\n /**\n * @param {?} query\n * @param {...?} args\n * @return {?}\n */\n transform(query, ...args) {\n if (!query || query.length === 0) {\n return query;\n }\n // if we ask another time for the same key, return the last value\n if (equals(query, this.lastKey) && equals(args, this.lastParams)) {\n return this.value;\n }\n let /** @type {?} */ interpolateParams;\n if (isDefined(args[0]) && args.length) {\n if (typeof args[0] === 'string' && args[0].length) {\n // we accept objects written in the template such as {n:1}, {'n':1}, {n:'v'}\n // which is why we might need to change it to real JSON objects such as {\"n\":1} or {\"n\":\"v\"}\n let /** @type {?} */ validArgs = args[0]\n .replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, '\"$2\":')\n .replace(/:(\\s)?(\\')(.*?)(\\')/g, ':\"$3\"');\n try {\n interpolateParams = JSON.parse(validArgs);\n }\n catch (/** @type {?} */ e) {\n throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);\n }\n }\n else if (typeof args[0] === 'object' && !Array.isArray(args[0])) {\n interpolateParams = args[0];\n }\n }\n // store the query, in case it changes\n this.lastKey = query;\n // store the params, in case they change\n this.lastParams = args;\n // set the value\n this.updateValue(query, interpolateParams);\n // if there is a subscription to onLangChange, clean it\n this._dispose();\n // subscribe to onTranslationChange event, in case the translations change\n if (!this.onTranslationChange) {\n this.onTranslationChange = this.translate.onTranslationChange.subscribe((event) => {\n if (this.lastKey && event.lang === this.translate.currentLang) {\n this.lastKey = null;\n this.updateValue(query, interpolateParams, event.translations);\n }\n });\n }\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChange) {\n this.onLangChange = this.translate.onLangChange.subscribe((event) => {\n if (this.lastKey) {\n this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\n this.updateValue(query, interpolateParams, event.translations);\n }\n });\n }\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChange) {\n this.onDefaultLangChange = this.translate.onDefaultLangChange.subscribe(() => {\n if (this.lastKey) {\n this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\n this.updateValue(query, interpolateParams);\n }\n });\n }\n return this.value;\n }\n /**\n * Clean any existing subscription to change events\n * @return {?}\n */\n _dispose() {\n if (typeof this.onTranslationChange !== 'undefined') {\n this.onTranslationChange.unsubscribe();\n this.onTranslationChange = undefined;\n }\n if (typeof this.onLangChange !== 'undefined') {\n this.onLangChange.unsubscribe();\n this.onLangChange = undefined;\n }\n if (typeof this.onDefaultLangChange !== 'undefined') {\n this.onDefaultLangChange.unsubscribe();\n this.onDefaultLangChange = undefined;\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this._dispose();\n }\n}\nTranslatePipe.ɵfac = function TranslatePipe_Factory(t) { return new (t || TranslatePipe)(ɵngcc0.ɵɵdirectiveInject(TranslateService, 16), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef, 16)); };\nTranslatePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"translate\", type: TranslatePipe, pure: false });\nTranslatePipe.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TranslatePipe, factory: TranslatePipe.ɵfac });\n/** @nocollapse */\nTranslatePipe.ctorParameters = () => [\n { type: TranslateService, },\n { type: ChangeDetectorRef, },\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TranslatePipe, [{\n type: Injectable\n }, {\n type: Pipe,\n args: [{\n name: 'translate',\n pure: false // required to update the value when the promise is resolved\n }]\n }], function () { return [{ type: TranslateService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @record\n */\n\nclass TranslateModule {\n /**\n * Use this method in your root module to provide the TranslateService\n * @param {?=} config\n * @return {?}\n */\n static forRoot(config = {}) {\n return {\n ngModule: TranslateModule,\n providers: [\n config.loader || { provide: TranslateLoader, useClass: TranslateFakeLoader },\n config.compiler || { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\n config.parser || { provide: TranslateParser, useClass: TranslateDefaultParser },\n config.missingTranslationHandler || { provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler },\n TranslateStore,\n { provide: USE_STORE, useValue: config.isolate },\n { provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang },\n TranslateService\n ]\n };\n }\n /**\n * Use this method in your other (non root) modules to import the directive/pipe\n * @param {?=} config\n * @return {?}\n */\n static forChild(config = {}) {\n return {\n ngModule: TranslateModule,\n providers: [\n config.loader || { provide: TranslateLoader, useClass: TranslateFakeLoader },\n config.compiler || { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\n config.parser || { provide: TranslateParser, useClass: TranslateDefaultParser },\n config.missingTranslationHandler || { provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler },\n { provide: USE_STORE, useValue: config.isolate },\n { provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang },\n TranslateService\n ]\n };\n }\n}\nTranslateModule.ɵfac = function TranslateModule_Factory(t) { return new (t || TranslateModule)(); };\nTranslateModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TranslateModule });\nTranslateModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n/** @nocollapse */\nTranslateModule.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TranslateModule, [{\n type: NgModule,\n args: [{\n declarations: [\n TranslatePipe,\n TranslateDirective\n ],\n exports: [\n TranslatePipe,\n TranslateDirective\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TranslateModule, { declarations: [TranslatePipe, TranslateDirective], exports: [TranslatePipe, TranslateDirective] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TranslateModule, TranslateLoader, TranslateFakeLoader, USE_STORE, USE_DEFAULT_LANG, TranslateService, MissingTranslationHandler, FakeMissingTranslationHandler, TranslateParser, TranslateDefaultParser, TranslateCompiler, TranslateFakeCompiler, TranslateDirective, TranslatePipe, TranslateStore as ɵa };\n\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.busy = exports.completeRetry = exports.scheduleRetry = exports.networkStatusChanged = void 0;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _constants = require(\"./constants\");\n\nvar networkStatusChanged = function networkStatusChanged(params) {\n var payload;\n\n if ((0, _typeof2.default)(params) === 'object') {\n payload = params;\n } else {\n payload = {\n online: params\n };\n }\n\n return {\n type: _constants.OFFLINE_STATUS_CHANGED,\n payload: payload\n };\n};\n\nexports.networkStatusChanged = networkStatusChanged;\n\nvar scheduleRetry = function scheduleRetry() {\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return {\n type: _constants.OFFLINE_SCHEDULE_RETRY,\n payload: {\n delay: delay\n }\n };\n};\n\nexports.scheduleRetry = scheduleRetry;\n\nvar completeRetry = function completeRetry(action) {\n return {\n type: _constants.OFFLINE_COMPLETE_RETRY,\n payload: action\n };\n};\n\nexports.completeRetry = completeRetry;\n\nvar busy = function busy(isBusy) {\n return {\n type: _constants.OFFLINE_BUSY,\n payload: {\n busy: isBusy\n }\n };\n};\n\nexports.busy = busy;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.applyDefaults = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _defaults = _interopRequireDefault(require(\"./defaults\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar applyDefaults = function applyDefaults() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread(_objectSpread({}, _defaults.default), config);\n};\n\nexports.applyDefaults = applyDefaults;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEFAULT_ROLLBACK = exports.DEFAULT_COMMIT = exports.JS_ERROR = exports.PERSIST_REHYDRATE = exports.RESET_STATE = exports.OFFLINE_BUSY = exports.OFFLINE_SEND = exports.OFFLINE_COMPLETE_RETRY = exports.OFFLINE_SCHEDULE_RETRY = exports.OFFLINE_STATUS_CHANGED = void 0;\n// Literal ACTION typing allows to ensure a stricter type than string\nvar OFFLINE_STATUS_CHANGED = 'Offline/STATUS_CHANGED';\nexports.OFFLINE_STATUS_CHANGED = OFFLINE_STATUS_CHANGED;\nvar OFFLINE_SCHEDULE_RETRY = 'Offline/SCHEDULE_RETRY';\nexports.OFFLINE_SCHEDULE_RETRY = OFFLINE_SCHEDULE_RETRY;\nvar OFFLINE_COMPLETE_RETRY = 'Offline/COMPLETE_RETRY';\nexports.OFFLINE_COMPLETE_RETRY = OFFLINE_COMPLETE_RETRY;\nvar OFFLINE_SEND = 'Offline/SEND';\nexports.OFFLINE_SEND = OFFLINE_SEND;\nvar OFFLINE_BUSY = 'Offline/BUSY';\nexports.OFFLINE_BUSY = OFFLINE_BUSY;\nvar RESET_STATE = 'Offline/RESET_STATE';\nexports.RESET_STATE = RESET_STATE;\nvar PERSIST_REHYDRATE = 'persist/REHYDRATE';\nexports.PERSIST_REHYDRATE = PERSIST_REHYDRATE;\nvar JS_ERROR = 'Offline/JS_ERROR';\nexports.JS_ERROR = JS_ERROR;\nvar DEFAULT_COMMIT = 'Offline/DEFAULT_COMMIT';\nexports.DEFAULT_COMMIT = DEFAULT_COMMIT;\nvar DEFAULT_ROLLBACK = 'Offline/DEFAULT_ROLLBACK';\nexports.DEFAULT_ROLLBACK = DEFAULT_ROLLBACK;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _constants = require(\"../constants\");\n\nvar defaultCommit = {\n type: _constants.DEFAULT_COMMIT\n};\nvar _default = defaultCommit;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _constants = require(\"../constants\");\n\nvar defaultRollback = {\n type: _constants.DEFAULT_ROLLBACK\n};\nvar _default = defaultRollback;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar handle = function handle(callback, online) {\n // NetInfo is not supported in browsers, hence we only pass online status\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(function () {\n return callback({\n online: online\n });\n });\n } else {\n setTimeout(function () {\n return callback({\n online: online\n });\n }, 0);\n }\n};\n\nvar _default = function _default(callback) {\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('online', function () {\n return handle(callback, true);\n });\n window.addEventListener('offline', function () {\n return handle(callback, false);\n });\n handle(callback, window.navigator.onLine);\n }\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _effect = require(\"./effect\");\n\nvar _default = function _default(error, action) {\n var _retries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n // not a network error -> discard\n if (!('status' in error)) {\n return true;\n } // discard http 4xx errors\n // $FlowFixMe\n\n\n return error.status >= 400 && error.status < 500;\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NetworkError = NetworkError;\nexports.default = exports.getFormData = exports.getHeaders = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction NetworkError(response, status) {\n this.name = 'NetworkError';\n this.status = status;\n this.response = response;\n} // $FlowFixMe\n\n\nNetworkError.prototype = Error.prototype;\n\nvar tryParseJSON = function tryParseJSON(json) {\n if (!json) {\n return null;\n }\n\n try {\n return JSON.parse(json);\n } catch (e) {\n throw new Error(\"Failed to parse unexpected JSON response: \".concat(json));\n }\n};\n\nvar getResponseBody = function getResponseBody(res) {\n var contentType = res.headers.get('content-type') || false;\n\n if (contentType && contentType.indexOf('json') >= 0) {\n return res.text().then(tryParseJSON);\n }\n\n return res.text();\n};\n\nvar getHeaders = function getHeaders(headers) {\n var _ref = headers || {},\n contentTypeCapitalized = _ref['Content-Type'],\n contentTypeLowerCase = _ref['content-type'],\n restOfHeaders = (0, _objectWithoutProperties2.default)(_ref, [\"Content-Type\", \"content-type\"]);\n\n var contentType = contentTypeCapitalized || contentTypeLowerCase || 'application/json';\n return _objectSpread(_objectSpread({}, restOfHeaders), {}, {\n 'content-type': contentType\n });\n};\n\nexports.getHeaders = getHeaders;\n\nvar getFormData = function getFormData(object) {\n var formData = new FormData();\n Object.keys(object).forEach(function (key) {\n Object.keys(object[key]).forEach(function (innerObj) {\n var newObj = object[key][innerObj];\n formData.append(newObj[0], newObj[1]);\n });\n });\n return formData;\n}; // eslint-disable-next-line no-unused-vars\n\n\nexports.getFormData = getFormData;\n\nvar _default = function _default(effect, _action) {\n var url = effect.url,\n json = effect.json,\n options = (0, _objectWithoutProperties2.default)(effect, [\"url\", \"json\"]);\n var headers = getHeaders(options.headers);\n\n if (!(options.body instanceof FormData) && Object.prototype.hasOwnProperty.call(headers, 'content-type') && headers['content-type'].toLowerCase().includes('multipart/form-data')) {\n options.body = getFormData(options.body);\n }\n\n if (json !== null && json !== undefined) {\n try {\n options.body = JSON.stringify(json);\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n return fetch(url, _objectSpread(_objectSpread({}, options), {}, {\n headers: headers\n })).then(function (res) {\n if (res.ok) {\n return getResponseBody(res);\n }\n\n return getResponseBody(res).then(function (body) {\n throw new NetworkError(body || '', res.status);\n });\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _persist = _interopRequireDefault(require(\"./persist\"));\n\nvar _detectNetwork = _interopRequireDefault(require(\"./detectNetwork\"));\n\nvar _effect = _interopRequireDefault(require(\"./effect\"));\n\nvar _retry = _interopRequireDefault(require(\"./retry\"));\n\nvar _discard = _interopRequireDefault(require(\"./discard\"));\n\nvar _defaultCommit = _interopRequireDefault(require(\"./defaultCommit\"));\n\nvar _defaultRollback = _interopRequireDefault(require(\"./defaultRollback\"));\n\nvar _persistAutoRehydrate = _interopRequireDefault(require(\"./persistAutoRehydrate\"));\n\nvar _offlineStateLens = _interopRequireDefault(require(\"./offlineStateLens\"));\n\nvar _queue = _interopRequireDefault(require(\"./queue\"));\n\nvar _default = {\n rehydrate: true,\n // backward compatibility, TODO remove in the next breaking change version\n persist: _persist.default,\n detectNetwork: _detectNetwork.default,\n effect: _effect.default,\n retry: _retry.default,\n discard: _discard.default,\n defaultCommit: _defaultCommit.default,\n defaultRollback: _defaultRollback.default,\n persistAutoRehydrate: _persistAutoRehydrate.default,\n offlineStateLens: _offlineStateLens.default,\n queue: _queue.default,\n returnPromises: false\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar _default = function _default(state) {\n var offline = state.offline,\n rest = (0, _objectWithoutProperties2.default)(state, [\"offline\"]);\n return {\n get: offline,\n set: function set(offlineState) {\n return typeof offlineState === 'undefined' ? rest : _objectSpread({\n offline: offlineState\n }, rest);\n }\n };\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _reduxPersist = require(\"redux-persist\");\n\n// flow\nvar _default = _reduxPersist.persistStore;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _reduxPersist = require(\"redux-persist\");\n\nvar _default = _reduxPersist.autoRehydrate;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toArray\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\n/* eslint-disable no-unused-vars */\nfunction enqueue(array, item, context) {\n return [].concat((0, _toConsumableArray2.default)(array), [item]);\n}\n\nfunction dequeue(array, item, context) {\n var _array = (0, _toArray2.default)(array),\n rest = _array.slice(1);\n\n return rest;\n}\n\nfunction peek(array, item, context) {\n return array[0];\n}\n\nvar _default = {\n enqueue: enqueue,\n dequeue: dequeue,\n peek: peek\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar decaySchedule = [1000, // After 1 seconds\n1000 * 5, // After 5 seconds\n1000 * 15, // After 15 seconds\n1000 * 30, // After 30 seconds\n1000 * 60, // After 1 minute\n1000 * 60 * 3, // After 3 minutes\n1000 * 60 * 5, // After 5 minutes\n1000 * 60 * 10, // After 10 minutes\n1000 * 60 * 30, // After 30 minutes\n1000 * 60 * 60 // After 1 hour\n];\n\nvar _default = function _default(action, retries) {\n return decaySchedule[retries] || null;\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createOffline = exports.offline = void 0;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _redux = require(\"redux\");\n\nvar _middleware = require(\"./middleware\");\n\nvar _updater = require(\"./updater\");\n\nvar _config = require(\"./config\");\n\nvar _actions = require(\"./actions\");\n\nvar _offlineActionTracker = _interopRequireDefault(require(\"./offlineActionTracker\"));\n\n/* global $Shape */\n// @TODO: Take createStore as config?\nvar warnIfNotReduxAction = function warnIfNotReduxAction(config, key) {\n var maybeAction = config[key];\n var isNotReduxAction = maybeAction === null || (0, _typeof2.default)(maybeAction) !== 'object' || typeof maybeAction.type !== 'string' || maybeAction.type === '';\n\n if (isNotReduxAction && console.warn) {\n var msg = \"\".concat(key, \" must be a proper redux action, \") + \"i.e. it must be an object and have a non-empty string type. \" + \"Instead you provided: \".concat(JSON.stringify(maybeAction, null, 2));\n console.warn(msg);\n }\n};\n\nvar offline = function offline() {\n var userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function (createStore) {\n return function (reducer, preloadedState) {\n var enhancer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (x) {\n return x;\n };\n var config = (0, _config.applyDefaults)(userConfig);\n warnIfNotReduxAction(config, 'defaultCommit');\n warnIfNotReduxAction(config, 'defaultRollback'); // toggle experimental returned promises\n\n config.offlineActionTracker = config.returnPromises ? _offlineActionTracker.default.withPromises : _offlineActionTracker.default.withoutPromises;\n delete config.returnPromises; // wraps userland reducer with a top-level\n // reducer that handles offline state updating\n\n var offlineReducer = (0, _updater.enhanceReducer)(reducer, config); // $FlowFixMe\n\n var offlineMiddleware = (0, _redux.applyMiddleware)((0, _middleware.createOfflineMiddleware)(config)); // create autoRehydrate enhancer if required\n\n var offlineEnhancer = config.persist && config.rehydrate && config.persistAutoRehydrate ? (0, _redux.compose)(offlineMiddleware, config.persistAutoRehydrate()) : offlineMiddleware; // create store\n\n var store = offlineEnhancer(createStore)(offlineReducer, preloadedState, enhancer);\n var baseReplaceReducer = store.replaceReducer.bind(store); // $FlowFixMe\n\n store.replaceReducer = function replaceReducer(nextReducer) {\n return baseReplaceReducer((0, _updater.enhanceReducer)(nextReducer, config));\n }; // launch store persistor\n\n\n if (config.persist) {\n config.persist(store, config.persistOptions, config.persistCallback);\n } // launch network detector\n\n\n if (config.detectNetwork) {\n config.detectNetwork(function (online) {\n store.dispatch((0, _actions.networkStatusChanged)(online));\n });\n }\n\n return store;\n };\n };\n};\n\nexports.offline = offline;\n\nvar createOffline = function createOffline() {\n var userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var config = (0, _config.applyDefaults)(userConfig); // toggle experimental returned promises\n\n config.offlineActionTracker = config.returnPromises ? _offlineActionTracker.default.withPromises : _offlineActionTracker.default.withoutPromises;\n delete config.returnPromises;\n warnIfNotReduxAction(config, 'defaultCommit');\n warnIfNotReduxAction(config, 'defaultRollback');\n\n var enhanceStore = function enhanceStore(next) {\n return function (reducer, preloadedState, enhancer) {\n // create autoRehydrate enhancer if required\n var createStore = config.persist && config.rehydrate && config.persistAutoRehydrate ? config.persistAutoRehydrate()(next) : next; // create store\n\n var store = createStore(reducer, preloadedState, enhancer);\n var baseReplaceReducer = store.replaceReducer.bind(store);\n\n store.replaceReducer = function replaceReducer(nextReducer) {\n return baseReplaceReducer((0, _updater.enhanceReducer)(nextReducer, config));\n }; // launch store persistor\n\n\n if (config.persist) {\n config.persist(store, config.persistOptions, config.persistCallback);\n } // launch network detector\n\n\n if (config.detectNetwork) {\n config.detectNetwork(function (online) {\n store.dispatch((0, _actions.networkStatusChanged)(online));\n });\n }\n\n return store;\n };\n };\n\n return {\n middleware: (0, _middleware.createOfflineMiddleware)(config),\n enhanceReducer: function enhanceReducer(reducer) {\n return (0, _updater.enhanceReducer)(reducer, config);\n },\n enhanceStore: enhanceStore\n };\n};\n\nexports.createOffline = createOffline;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createOfflineMiddleware = void 0;\n\nvar _constants = require(\"./constants\");\n\nvar _actions = require(\"./actions\");\n\nvar _send = _interopRequireDefault(require(\"./send\"));\n\nvar after = function after() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n });\n};\n\nvar createOfflineMiddleware = function createOfflineMiddleware(config) {\n return function (store) {\n return function (next) {\n return function (action) {\n // allow other middleware to do their things\n var result = next(action);\n var promise; // find any actions to send, if any\n\n var state = store.getState();\n var offline = config.offlineStateLens(state).get;\n var context = {\n offline: offline\n };\n var offlineAction = config.queue.peek(offline.outbox, action, context); // create promise to return on enqueue offline action\n\n if (action.meta && action.meta.offline) {\n var registerAction = config.offlineActionTracker.registerAction;\n promise = registerAction(offline.lastTransaction);\n } // if there are any actions in the queue that we are not\n // yet processing, send those actions\n\n\n if (offlineAction && !offline.busy && !offline.retryScheduled && offline.online) {\n (0, _send.default)(offlineAction, store.dispatch, config, offline.retryCount);\n }\n\n if (action.type === _constants.OFFLINE_SCHEDULE_RETRY) {\n after(action.payload.delay).then(function () {\n store.dispatch((0, _actions.completeRetry)(offlineAction));\n });\n }\n\n if (action.type === _constants.OFFLINE_SEND && offlineAction && !offline.busy) {\n (0, _send.default)(offlineAction, store.dispatch, config, offline.retryCount);\n }\n\n return promise || result;\n };\n };\n };\n};\n\nexports.createOfflineMiddleware = createOfflineMiddleware;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar subscriptions = {};\n\nfunction registerAction(transaction) {\n return new Promise(function (resolve, reject) {\n subscriptions[transaction] = {\n resolve: resolve,\n reject: reject\n };\n });\n}\n\nfunction resolveAction(transaction, value) {\n var subscription = subscriptions[transaction];\n\n if (subscription) {\n subscription.resolve(value);\n delete subscriptions[transaction];\n }\n}\n\nfunction rejectAction(transaction, error) {\n var subscription = subscriptions[transaction];\n\n if (subscription) {\n subscription.reject(error);\n delete subscriptions[transaction];\n }\n}\n\nvar withPromises = {\n registerAction: registerAction,\n resolveAction: resolveAction,\n rejectAction: rejectAction\n};\nvar withoutPromises = {\n registerAction: function registerAction() {},\n resolveAction: function resolveAction() {},\n rejectAction: function rejectAction() {}\n};\nvar _default = {\n withPromises: withPromises,\n withoutPromises: withoutPromises\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _actions = require(\"./actions\");\n\nvar _constants = require(\"./constants\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar complete = function complete(action, result, offlineAction, config) {\n var _config$offlineAction = config.offlineActionTracker,\n resolveAction = _config$offlineAction.resolveAction,\n rejectAction = _config$offlineAction.rejectAction;\n\n if (result.success) {\n resolveAction(offlineAction.meta.transaction, result.payload);\n } else if (result.payload) {\n rejectAction(offlineAction.meta.transaction, result.payload);\n }\n\n return _objectSpread(_objectSpread({}, action), {}, {\n payload: result.payload,\n meta: _objectSpread(_objectSpread({}, action.meta), {}, {\n success: result.success,\n completed: true\n })\n });\n};\n\nvar handleJsError = function handleJsError(error) {\n return {\n type: _constants.JS_ERROR,\n meta: {\n error: error,\n success: false,\n completed: true\n }\n };\n};\n\nvar send = function send(action, dispatch, config) {\n var retries = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var metadata = action.meta.offline;\n dispatch((0, _actions.busy)(true));\n return config.effect(metadata.effect, action).then(function (result) {\n var commitAction = metadata.commit || _objectSpread(_objectSpread({}, config.defaultCommit), {}, {\n meta: _objectSpread(_objectSpread({}, config.defaultCommit.meta), {}, {\n offlineAction: action\n })\n });\n\n try {\n return dispatch(complete(commitAction, {\n success: true,\n payload: result\n }, action, config));\n } catch (error) {\n return dispatch(handleJsError(error));\n }\n }).catch( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(error) {\n var rollbackAction, mustDiscard, delay;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n rollbackAction = metadata.rollback || _objectSpread(_objectSpread({}, config.defaultRollback), {}, {\n meta: _objectSpread(_objectSpread({}, config.defaultRollback.meta), {}, {\n offlineAction: action\n })\n }); // discard\n\n mustDiscard = true;\n _context.prev = 2;\n _context.next = 5;\n return config.discard(error, action, retries);\n\n case 5:\n mustDiscard = _context.sent;\n _context.next = 11;\n break;\n\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](2);\n console.warn(_context.t0);\n\n case 11:\n if (mustDiscard) {\n _context.next = 15;\n break;\n }\n\n delay = config.retry(action, retries);\n\n if (!(delay != null)) {\n _context.next = 15;\n break;\n }\n\n return _context.abrupt(\"return\", dispatch((0, _actions.scheduleRetry)(delay)));\n\n case 15:\n return _context.abrupt(\"return\", dispatch(complete(rollbackAction, {\n success: false,\n payload: error\n }, action, config)));\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 8]]);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()).finally(function () {\n return dispatch((0, _actions.busy)(false));\n });\n};\n\nvar _default = send;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.enhanceReducer = exports.buildOfflineUpdater = exports.initialState = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _constants = require(\"./constants\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar initialState = {\n busy: false,\n lastTransaction: 0,\n online: false,\n outbox: [],\n retryCount: 0,\n retryScheduled: false,\n netInfo: {\n isConnectionExpensive: null,\n reach: 'NONE'\n }\n};\nexports.initialState = initialState;\n\nvar buildOfflineUpdater = function buildOfflineUpdater(dequeue, enqueue) {\n return function offlineUpdater() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n // Update online/offline status\n if (action.type === _constants.OFFLINE_STATUS_CHANGED && !action.meta) {\n return _objectSpread(_objectSpread({}, state), {}, {\n online: action.payload.online,\n netInfo: action.payload.netInfo\n });\n }\n\n if (action.type === _constants.PERSIST_REHYDRATE && action.payload) {\n return _objectSpread(_objectSpread(_objectSpread({}, state), action.payload.offline || {}), {}, {\n online: state.online,\n netInfo: state.netInfo,\n retryScheduled: initialState.retryScheduled,\n retryCount: initialState.retryCount,\n busy: initialState.busy\n });\n }\n\n if (action.type === _constants.OFFLINE_SCHEDULE_RETRY) {\n return _objectSpread(_objectSpread({}, state), {}, {\n retryScheduled: true,\n retryCount: state.retryCount + 1\n });\n }\n\n if (action.type === _constants.OFFLINE_COMPLETE_RETRY) {\n return _objectSpread(_objectSpread({}, state), {}, {\n retryScheduled: false\n });\n }\n\n if (action.type === _constants.OFFLINE_BUSY && !action.meta && action.payload && typeof action.payload.busy === 'boolean') {\n return _objectSpread(_objectSpread({}, state), {}, {\n busy: action.payload.busy\n });\n } // Add offline actions to queue\n\n\n if (action.meta && action.meta.offline) {\n var transaction = state.lastTransaction + 1;\n\n var stamped = _objectSpread(_objectSpread({}, action), {}, {\n meta: _objectSpread(_objectSpread({}, action.meta), {}, {\n transaction: transaction\n })\n });\n\n var offline = state;\n return _objectSpread(_objectSpread({}, state), {}, {\n lastTransaction: transaction,\n outbox: enqueue(offline.outbox, stamped, {\n offline: offline\n })\n });\n } // Remove completed actions from queue (success or fail)\n\n\n if (action.meta && action.meta.completed === true) {\n var _offline = state;\n return _objectSpread(_objectSpread({}, state), {}, {\n outbox: dequeue(_offline.outbox, action, {\n offline: _offline\n }),\n retryCount: 0\n });\n }\n\n if (action.type === _constants.RESET_STATE) {\n return _objectSpread(_objectSpread({}, initialState), {}, {\n online: state.online,\n netInfo: state.netInfo\n });\n }\n\n return state;\n };\n};\n\nexports.buildOfflineUpdater = buildOfflineUpdater;\n\nvar enhanceReducer = function enhanceReducer(reducer, config) {\n var _config$queue = config.queue,\n dequeue = _config$queue.dequeue,\n enqueue = _config$queue.enqueue;\n var offlineUpdater = buildOfflineUpdater(dequeue, enqueue);\n return function (state, action) {\n var offlineState;\n var restState;\n\n if (typeof state !== 'undefined') {\n offlineState = config.offlineStateLens(state).get;\n restState = config.offlineStateLens(state).set();\n }\n\n return config.offlineStateLens(reducer(restState, action)).set(offlineUpdater(offlineState, action));\n };\n};\n\nexports.enhanceReducer = enhanceReducer;","import { FieldPosition } from \"@smithy/types\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export class Fields {\n constructor({ fields = [], encoding = \"utf-8\" }) {\n this.entries = {};\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n","export {};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export * from \"./Field\";\nexport * from \"./Fields\";\nexport * from \"./httpHandler\";\nexport * from \"./httpRequest\";\nexport * from \"./httpResponse\";\nexport * from \"./isValidHostname\";\nexport * from \"./types\";\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","export {};\n","export {};\n","export var HttpAuthLocation;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(HttpAuthLocation || (HttpAuthLocation = {}));\n","export {};\n","export {};\n","export {};\n","export {};\n","export * from \"./config\";\nexport * from \"./manager\";\nexport * from \"./pool\";\n","export {};\n","export {};\n","export {};\n","export {};\n","export var EndpointURLScheme;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme || (EndpointURLScheme = {}));\n","export {};\n","export {};\n","export {};\n","export {};\n","export * from \"./EndpointRuleObject\";\nexport * from \"./ErrorRuleObject\";\nexport * from \"./RuleSetObject\";\nexport * from \"./shared\";\nexport * from \"./TreeRuleObject\";\n","export {};\n","export {};\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export {};\n","export {};\n","export * from \"./awsCredentialIdentity\";\nexport * from \"./identity\";\n","export * from \"./abort\";\nexport * from \"./auth\";\nexport * from \"./checksum\";\nexport * from \"./client\";\nexport * from \"./command\";\nexport * from \"./connection\";\nexport * from \"./crypto\";\nexport * from \"./encode\";\nexport * from \"./endpoint\";\nexport * from \"./endpoints\";\nexport * from \"./eventStream\";\nexport * from \"./http\";\nexport * from \"./identity\";\nexport * from \"./logger\";\nexport * from \"./middleware\";\nexport * from \"./pagination\";\nexport * from \"./profile\";\nexport * from \"./response\";\nexport * from \"./retry\";\nexport * from \"./serde\";\nexport * from \"./shapes\";\nexport * from \"./signature\";\nexport * from \"./stream\";\nexport * from \"./transfer\";\nexport * from \"./uri\";\nexport * from \"./util\";\nexport * from \"./waiter\";\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","export var RequestHandlerProtocol;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(RequestHandlerProtocol || (RequestHandlerProtocol = {}));\n","export {};\n","export {};\n","export {};\n","var _a = Object.prototype, toString = _a.toString, hasOwnProperty = _a.hasOwnProperty;\r\nvar previousComparisons = new Map();\r\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\r\nfunction equal(a, b) {\r\n try {\r\n return check(a, b);\r\n }\r\n finally {\r\n previousComparisons.clear();\r\n }\r\n}\r\nfunction check(a, b) {\r\n // If the two values are strictly equal, our job is easy.\r\n if (a === b) {\r\n return true;\r\n }\r\n // Object.prototype.toString returns a representation of the runtime type of\r\n // the given value that is considerably more precise than typeof.\r\n var aTag = toString.call(a);\r\n var bTag = toString.call(b);\r\n // If the runtime types of a and b are different, they could maybe be equal\r\n // under some interpretation of equality, but for simplicity and performance\r\n // we just return false instead.\r\n if (aTag !== bTag) {\r\n return false;\r\n }\r\n switch (aTag) {\r\n case '[object Array]':\r\n // Arrays are a lot like other objects, but we can cheaply compare their\r\n // lengths as a short-cut before comparing their elements.\r\n if (a.length !== b.length)\r\n return false;\r\n // Fall through to object case...\r\n case '[object Object]': {\r\n if (previouslyCompared(a, b))\r\n return true;\r\n var aKeys = Object.keys(a);\r\n var bKeys = Object.keys(b);\r\n // If `a` and `b` have a different number of enumerable keys, they\r\n // must be different.\r\n var keyCount = aKeys.length;\r\n if (keyCount !== bKeys.length)\r\n return false;\r\n // Now make sure they have the same keys.\r\n for (var k = 0; k < keyCount; ++k) {\r\n if (!hasOwnProperty.call(b, aKeys[k])) {\r\n return false;\r\n }\r\n }\r\n // Finally, check deep equality of all child properties.\r\n for (var k = 0; k < keyCount; ++k) {\r\n var key = aKeys[k];\r\n if (!check(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n case '[object Error]':\r\n return a.name === b.name && a.message === b.message;\r\n case '[object Number]':\r\n // Handle NaN, which is !== itself.\r\n if (a !== a)\r\n return b !== b;\r\n // Fall through to shared +a === +b case...\r\n case '[object Boolean]':\r\n case '[object Date]':\r\n return +a === +b;\r\n case '[object RegExp]':\r\n case '[object String]':\r\n return a == \"\" + b;\r\n case '[object Map]':\r\n case '[object Set]': {\r\n if (a.size !== b.size)\r\n return false;\r\n if (previouslyCompared(a, b))\r\n return true;\r\n var aIterator = a.entries();\r\n var isMap = aTag === '[object Map]';\r\n while (true) {\r\n var info = aIterator.next();\r\n if (info.done)\r\n break;\r\n // If a instanceof Set, aValue === aKey.\r\n var _a = info.value, aKey = _a[0], aValue = _a[1];\r\n // So this works the same way for both Set and Map.\r\n if (!b.has(aKey)) {\r\n return false;\r\n }\r\n // However, we care about deep equality of values only when dealing\r\n // with Map structures.\r\n if (isMap && !check(aValue, b.get(aKey))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n // Otherwise the values are not equal.\r\n return false;\r\n}\r\nfunction previouslyCompared(a, b) {\r\n // Though cyclic references can make an object graph appear infinite from the\r\n // perspective of a depth-first traversal, the graph still contains a finite\r\n // number of distinct object references. We use the previousComparisons cache\r\n // to avoid comparing the same pair of object references more than once, which\r\n // guarantees termination (even if we end up comparing every object in one\r\n // graph to every object in the other graph, which is extremely unlikely),\r\n // while still allowing weird isomorphic structures (like rings with different\r\n // lengths) a chance to pass the equality test.\r\n var bSet = previousComparisons.get(a);\r\n if (bSet) {\r\n // Return true here because we can be sure false will be returned somewhere\r\n // else if the objects are not equivalent.\r\n if (bSet.has(b))\r\n return true;\r\n }\r\n else {\r\n previousComparisons.set(a, bSet = new Set);\r\n }\r\n bSet.add(b);\r\n return false;\r\n}\n\nexport default equal;\nexport { equal };\n","import { __rest, __decorate, __metadata } from 'tslib';\nimport { ContentChildren, QueryList, Input, Component, NgZone, Injectable, EventEmitter, ElementRef, ViewContainerRef, ComponentFactoryResolver, Output, ViewEncapsulation, ANALYZE_FOR_ENTRY_COMPONENTS, NgModule } from '@angular/core';\nimport { VanillaFrameworkOverrides, AgPromise, BaseComponentWrapper, ComponentUtil, Grid } from 'ag-grid-community';\n\nimport * as ɵngcc0 from '@angular/core';\nvar AgGridColumn_1;\nlet AgGridColumn = AgGridColumn_1 = class AgGridColumn {\n hasChildColumns() {\n if (this.childColumns && this.childColumns.length > 0) {\n // necessary because of https://github.com/angular/angular/issues/10098\n return !(this.childColumns.length === 1 && this.childColumns.first === this);\n }\n return false;\n }\n toColDef() {\n let colDef = this.createColDefFromGridColumn(this);\n if (this.hasChildColumns()) {\n colDef[\"children\"] = this.getChildColDefs(this.childColumns);\n }\n return colDef;\n }\n getChildColDefs(childColumns) {\n return childColumns\n // necessary because of https://github.com/angular/angular/issues/10098\n .filter(column => !column.hasChildColumns())\n .map((column) => {\n return column.toColDef();\n });\n }\n createColDefFromGridColumn(from) {\n let { childColumns } = from, colDef = __rest(from, [\"childColumns\"]);\n return colDef;\n }\n};\nAgGridColumn.ɵfac = function AgGridColumn_Factory(t) { return new (t || AgGridColumn)(); };\nAgGridColumn.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AgGridColumn, selectors: [[\"ag-grid-column\"]], contentQueries: function AgGridColumn_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, AgGridColumn_1, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.childColumns = _t);\n } }, inputs: { filterFramework: \"filterFramework\", filterParams: \"filterParams\", floatingFilterComponent: \"floatingFilterComponent\", floatingFilterComponentParams: \"floatingFilterComponentParams\", floatingFilterComponentFramework: \"floatingFilterComponentFramework\", floatingFilterFramework: \"floatingFilterFramework\", filter: \"filter\", headerName: \"headerName\", headerValueGetter: \"headerValueGetter\", headerTooltip: \"headerTooltip\", headerClass: \"headerClass\", suppressHeaderKeyboardEvent: \"suppressHeaderKeyboardEvent\", columnGroupShow: \"columnGroupShow\", toolPanelClass: \"toolPanelClass\", suppressColumnsToolPanel: \"suppressColumnsToolPanel\", suppressFiltersToolPanel: \"suppressFiltersToolPanel\", tooltipComponent: \"tooltipComponent\", tooltipComponentFramework: \"tooltipComponentFramework\", tooltipComponentParams: \"tooltipComponentParams\", children: \"children\", groupId: \"groupId\", openByDefault: \"openByDefault\", marryChildren: \"marryChildren\", headerGroupComponent: \"headerGroupComponent\", headerGroupComponentFramework: \"headerGroupComponentFramework\", headerGroupComponentParams: \"headerGroupComponentParams\", colId: \"colId\", field: \"field\", type: \"type\", valueGetter: \"valueGetter\", valueFormatter: \"valueFormatter\", refData: \"refData\", keyCreator: \"keyCreator\", equals: \"equals\", tooltipField: \"tooltipField\", tooltipValueGetter: \"tooltipValueGetter\", checkboxSelection: \"checkboxSelection\", icons: \"icons\", suppressNavigable: \"suppressNavigable\", suppressKeyboardEvent: \"suppressKeyboardEvent\", suppressPaste: \"suppressPaste\", suppressFillHandle: \"suppressFillHandle\", hide: \"hide\", initialHide: \"initialHide\", lockVisible: \"lockVisible\", lockPosition: \"lockPosition\", suppressMovable: \"suppressMovable\", editable: \"editable\", valueSetter: \"valueSetter\", valueParser: \"valueParser\", cellEditor: \"cellEditor\", cellEditorFramework: \"cellEditorFramework\", cellEditorParams: \"cellEditorParams\", cellEditorSelector: \"cellEditorSelector\", singleClickEdit: \"singleClickEdit\", newValueHandler: \"newValueHandler\", cellEditorPopup: \"cellEditorPopup\", cellEditorPopupPosition: \"cellEditorPopupPosition\", onCellValueChanged: \"onCellValueChanged\", onCellClicked: \"onCellClicked\", onCellDoubleClicked: \"onCellDoubleClicked\", onCellContextMenu: \"onCellContextMenu\", getQuickFilterText: \"getQuickFilterText\", filterValueGetter: \"filterValueGetter\", floatingFilter: \"floatingFilter\", headerComponent: \"headerComponent\", headerComponentFramework: \"headerComponentFramework\", headerComponentParams: \"headerComponentParams\", menuTabs: \"menuTabs\", columnsMenuParams: \"columnsMenuParams\", suppressMenu: \"suppressMenu\", headerCheckboxSelection: \"headerCheckboxSelection\", headerCheckboxSelectionFilteredOnly: \"headerCheckboxSelectionFilteredOnly\", chartDataType: \"chartDataType\", pinned: \"pinned\", initialPinned: \"initialPinned\", lockPinned: \"lockPinned\", pinnedRowCellRenderer: \"pinnedRowCellRenderer\", pinnedRowCellRendererFramework: \"pinnedRowCellRendererFramework\", pinnedRowCellRendererParams: \"pinnedRowCellRendererParams\", pinnedRowValueFormatter: \"pinnedRowValueFormatter\", pivot: \"pivot\", initialPivot: \"initialPivot\", pivotIndex: \"pivotIndex\", initialPivotIndex: \"initialPivotIndex\", pivotComparator: \"pivotComparator\", enablePivot: \"enablePivot\", cellStyle: \"cellStyle\", cellClass: \"cellClass\", cellClassRules: \"cellClassRules\", cellRenderer: \"cellRenderer\", cellRendererFramework: \"cellRendererFramework\", cellRendererParams: \"cellRendererParams\", cellRendererSelector: \"cellRendererSelector\", autoHeight: \"autoHeight\", wrapText: \"wrapText\", enableCellChangeFlash: \"enableCellChangeFlash\", suppressCellFlash: \"suppressCellFlash\", rowDrag: \"rowDrag\", rowDragText: \"rowDragText\", dndSource: \"dndSource\", dndSourceOnRowDrag: \"dndSourceOnRowDrag\", rowGroup: \"rowGroup\", initialRowGroup: \"initialRowGroup\", rowGroupIndex: \"rowGroupIndex\", initialRowGroupIndex: \"initialRowGroupIndex\", enableRowGroup: \"enableRowGroup\", enableValue: \"enableValue\", aggFunc: \"aggFunc\", initialAggFunc: \"initialAggFunc\", defaultAggFunc: \"defaultAggFunc\", allowedAggFuncs: \"allowedAggFuncs\", showRowGroup: \"showRowGroup\", sortable: \"sortable\", sort: \"sort\", initialSort: \"initialSort\", sortIndex: \"sortIndex\", initialSortIndex: \"initialSortIndex\", sortingOrder: \"sortingOrder\", comparator: \"comparator\", unSortIcon: \"unSortIcon\", sortedAt: \"sortedAt\", colSpan: \"colSpan\", rowSpan: \"rowSpan\", width: \"width\", initialWidth: \"initialWidth\", minWidth: \"minWidth\", maxWidth: \"maxWidth\", flex: \"flex\", initialFlex: \"initialFlex\", resizable: \"resizable\", suppressSizeToFit: \"suppressSizeToFit\", suppressAutoSize: \"suppressAutoSize\" }, decls: 0, vars: 0, template: function AgGridColumn_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChildren(AgGridColumn_1),\n __metadata(\"design:type\", QueryList)\n], AgGridColumn.prototype, \"childColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filterFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filterParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilterComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilterComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilterComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilterFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"headerName\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerValueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"headerTooltip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"suppressHeaderKeyboardEvent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"columnGroupShow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"toolPanelClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressColumnsToolPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressFiltersToolPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridColumn.prototype, \"children\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"groupId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"openByDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"marryChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerGroupComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerGroupComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerGroupComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"colId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueFormatter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"refData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"keyCreator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"equals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"tooltipField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"tooltipValueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"checkboxSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"icons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressNavigable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"suppressKeyboardEvent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressPaste\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressFillHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"hide\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"initialHide\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"lockVisible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"lockPosition\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressMovable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"editable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueSetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueParser\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellEditor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellEditorFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellEditorParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"cellEditorSelector\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"singleClickEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"newValueHandler\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"cellEditorPopup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"cellEditorPopupPosition\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"onCellValueChanged\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"onCellClicked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"onCellDoubleClicked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"onCellContextMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"getQuickFilterText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filterValueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"floatingFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridColumn.prototype, \"menuTabs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"columnsMenuParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerCheckboxSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"headerCheckboxSelectionFilteredOnly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"chartDataType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinned\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialPinned\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"lockPinned\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowValueFormatter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"pivot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"initialPivot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"pivotIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"initialPivotIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"pivotComparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"enablePivot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellClassRules\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"cellRendererSelector\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"autoHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"wrapText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"enableCellChangeFlash\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressCellFlash\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"rowDrag\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"rowDragText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"dndSource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"dndSourceOnRowDrag\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"rowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"initialRowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"rowGroupIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"initialRowGroupIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"enableRowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"enableValue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"aggFunc\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialAggFunc\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"defaultAggFunc\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridColumn.prototype, \"allowedAggFuncs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"showRowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"sort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridColumn.prototype, \"initialSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"sortIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"initialSortIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridColumn.prototype, \"sortingOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"comparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"unSortIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"sortedAt\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"colSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridColumn.prototype, \"rowSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"initialWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"minWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"maxWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"flex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridColumn.prototype, \"initialFlex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressSizeToFit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridColumn.prototype, \"suppressAutoSize\", void 0);\n\nlet AngularFrameworkOverrides = class AngularFrameworkOverrides extends VanillaFrameworkOverrides {\n constructor(_ngZone) {\n super();\n this._ngZone = _ngZone;\n }\n setEmitterUsedCallback(isEmitterUsed) {\n this.isEmitterUsed = isEmitterUsed;\n }\n setTimeout(action, timeout) {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n window.setTimeout(() => {\n action();\n }, timeout);\n });\n }\n else {\n window.setTimeout(() => {\n action();\n }, timeout);\n }\n }\n setInterval(action, interval) {\n return new AgPromise(resolve => {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n resolve(window.setInterval(() => {\n action();\n }, interval));\n });\n }\n else {\n resolve(window.setInterval(() => {\n action();\n }, interval));\n }\n });\n }\n addEventListener(element, eventType, listener, useCapture) {\n if (this.isOutsideAngular(eventType) && this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener(eventType, listener, useCapture);\n });\n }\n else {\n element.addEventListener(eventType, listener, useCapture);\n }\n }\n dispatchEvent(eventType, listener, global = false) {\n if (this.isOutsideAngular(eventType)) {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(listener);\n }\n else {\n listener();\n }\n }\n else if (this.isEmitterUsed(eventType) || global) {\n // only trigger off events (and potentially change detection) if actually used\n if (!NgZone.isInAngularZone() && this._ngZone) {\n this._ngZone.run(listener);\n }\n else {\n listener();\n }\n }\n }\n isFrameworkComponent(comp) {\n if (!comp) {\n return false;\n }\n const prototype = comp.prototype;\n const isAngularComp = prototype && 'agInit' in prototype;\n return isAngularComp;\n }\n};\nAngularFrameworkOverrides.ɵfac = function AngularFrameworkOverrides_Factory(t) { return new (t || AngularFrameworkOverrides)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nAngularFrameworkOverrides.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AngularFrameworkOverrides, factory: function (t) { return AngularFrameworkOverrides.ɵfac(t); } });\nAngularFrameworkOverrides.ctorParameters = () => [\n { type: NgZone }\n];\nAngularFrameworkOverrides = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], AngularFrameworkOverrides);\n\nlet AngularFrameworkComponentWrapper = class AngularFrameworkComponentWrapper extends BaseComponentWrapper {\n setViewContainerRef(viewContainerRef) {\n this.viewContainerRef = viewContainerRef;\n }\n setComponentFactoryResolver(componentFactoryResolver) {\n this.componentFactoryResolver = componentFactoryResolver;\n }\n createWrapper(OriginalConstructor) {\n let that = this;\n class DynamicAgNg2Component extends BaseGuiComponent {\n init(params) {\n super.init(params);\n this._componentRef.changeDetectorRef.detectChanges();\n }\n createComponent() {\n return that.createComponent(OriginalConstructor);\n }\n hasMethod(name) {\n return wrapper.getFrameworkComponentInstance()[name] != null;\n }\n callMethod(name, args) {\n const componentRef = this.getFrameworkComponentInstance();\n return wrapper.getFrameworkComponentInstance()[name].apply(componentRef, args);\n }\n addMethod(name, callback) {\n wrapper[name] = callback;\n }\n }\n let wrapper = new DynamicAgNg2Component();\n return wrapper;\n }\n createComponent(componentType) {\n // used to cache the factory, but this a) caused issues when used with either webpack/angularcli with --prod\n // but more significantly, the underlying implementation of resolveComponentFactory uses a map too, so us\n // caching the factory here yields no performance benefits\n let factory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n return this.viewContainerRef.createComponent(factory);\n }\n};\nAngularFrameworkComponentWrapper.ɵfac = /*@__PURE__*/ function () { let ɵAngularFrameworkComponentWrapper_BaseFactory; return function AngularFrameworkComponentWrapper_Factory(t) { return (ɵAngularFrameworkComponentWrapper_BaseFactory || (ɵAngularFrameworkComponentWrapper_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(AngularFrameworkComponentWrapper)))(t || AngularFrameworkComponentWrapper); }; }();\nAngularFrameworkComponentWrapper.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AngularFrameworkComponentWrapper, factory: function (t) { return AngularFrameworkComponentWrapper.ɵfac(t); } });\nclass BaseGuiComponent {\n init(params) {\n this._params = params;\n this._componentRef = this.createComponent();\n this._agAwareComponent = this._componentRef.instance;\n this._frameworkComponentInstance = this._componentRef.instance;\n this._eGui = this._componentRef.location.nativeElement;\n this._agAwareComponent.agInit(this._params);\n }\n getGui() {\n return this._eGui;\n }\n destroy() {\n if (this._frameworkComponentInstance && typeof this._frameworkComponentInstance.destroy === 'function') {\n this._frameworkComponentInstance.destroy();\n }\n if (this._componentRef) {\n this._componentRef.destroy();\n }\n }\n getFrameworkComponentInstance() {\n return this._frameworkComponentInstance;\n }\n}\n\nlet AgGridAngular = class AgGridAngular {\n constructor(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper, componentFactoryResolver) {\n this.viewContainerRef = viewContainerRef;\n this.angularFrameworkOverrides = angularFrameworkOverrides;\n this.frameworkComponentWrapper = frameworkComponentWrapper;\n this.componentFactoryResolver = componentFactoryResolver;\n this._initialised = false;\n this._destroyed = false;\n // in order to ensure firing of gridReady is deterministic\n this._fullyReady = AgPromise.resolve(true);\n // @START@\n /** Specifies the status bar components to use in the status bar. */\n this.statusBar = undefined;\n /** Specifies the side bar components. */\n this.sideBar = undefined;\n /** Set to `true` to not show the context menu. Use if you don't want to use the default 'right click' context menu. Default: `false` */\n this.suppressContextMenu = undefined;\n /** When using `suppressContextMenu`, you can use the `onCellContextMenu` function to provide your own code to handle cell `contextmenu` events.\n * This flag is useful to prevent the browser from showing its default context menu.\n * Default: `false` */\n this.preventDefaultOnContextMenu = undefined;\n /** Allows context menu to show, even when `Ctrl` key is held down. Default: `false` */\n this.allowContextMenuWithControlKey = undefined;\n /** Set to `true` to always show the column menu button, rather than only showing when the mouse is over the column header. Default: `false` */\n this.suppressMenuHide = undefined;\n /** Set to `true` to use the browser's default tooltip instead of using the grid's Tooltip Component. Default: `false` */\n this.enableBrowserTooltips = undefined;\n /** The delay in milliseconds that it takes for tooltips to show up once an element is hovered over.\n * **Note:** This property does not work if `enableBrowserTooltips` is `true`.\n * Default: `2000` */\n this.tooltipShowDelay = undefined;\n /** The delay in milliseconds that it takes for tooltips to hide once they have been displayed.\n * **Note:** This property does not work if `enableBrowserTooltips` is `true`.\n * Default: `10000` */\n this.tooltipHideDelay = undefined;\n /** Set to `true` to have tooltips follow the cursor once they are displayed. Default: `false` */\n this.tooltipMouseTrack = undefined;\n /** DOM element to use as the popup parent for grid popups (context menu, column menu etc). */\n this.popupParent = undefined;\n /** Set to `true` to also include headers when copying to clipboard using `Ctrl + C` clipboard. Default: `false` */\n this.copyHeadersToClipboard = undefined;\n /** Set to `true` to also include group headers when copying to clipboard using `Ctrl + C` clipboard. Default: `false` */\n this.copyGroupHeadersToClipboard = undefined;\n /** Specify the delimiter to use when copying to clipboard.\n * Default: `\\t` */\n this.clipboardDelimiter = undefined;\n /** Set to `true` to copy the cell range or focused cell to the clipboard and never the selected rows. Default: `false` */\n this.suppressCopyRowsToClipboard = undefined;\n /** Set to `true` to copy rows instead of ranges when a range with only a single cell is selected. Default: `false` */\n this.suppressCopySingleCellRanges = undefined;\n /** Set to `true` to work around a bug with Excel (Windows) that adds an extra empty line at the end of ranges copied to the clipboard. Default: `false` */\n this.suppressLastEmptyLineOnPaste = undefined;\n /** Set to `true` to turn off paste operations within the grid. */\n this.suppressClipboardPaste = undefined;\n /** Set to `true` to stop the grid trying to use the Clipboard API, if it is blocked, and immediately fallback to the workaround. */\n this.suppressClipboardApi = undefined;\n /** Array of Column / Column Group definitions. */\n this.columnDefs = undefined;\n /** A default column definition. Items defined in the actual column definitions get precedence. */\n this.defaultColDef = undefined;\n /** A default column group definition. All column group definitions will use these properties. Items defined in the actual column group definition get precedence. */\n this.defaultColGroupDef = undefined;\n /** An object map of custom column types which contain groups of properties that column definitions can inherit by referencing in their `type` property. */\n this.columnTypes = undefined;\n /** Keeps the order of Columns maintained after new Column Definitions are updated. Default: `false` */\n this.maintainColumnOrder = undefined;\n /** If `true`, then dots in field names (e.g. `'address.firstLine'`) are not treated as deep references. Allows you to use dots in your field name if you prefer. Default: `false` */\n this.suppressFieldDotNotation = undefined;\n /** @deprecated */\n this.deltaColumnMode = undefined;\n /** @deprecated */\n this.applyColumnDefOrder = undefined;\n /** @deprecated */\n this.immutableColumns = undefined;\n /** @deprecated */\n this.suppressSetColumnStateEvents = undefined;\n /** @deprecated */\n this.suppressColumnStateEvents = undefined;\n /** @deprecated Set via `defaultColDef.width`\n */\n this.colWidth = undefined;\n /** @deprecated Set via `defaultColDef.minWidth`\n */\n this.minColWidth = undefined;\n /** @deprecated Set via `defaultColDef.maxWidth`\n */\n this.maxColWidth = undefined;\n /** The height in pixels for the row containing the column label header. If not specified, it uses the theme value of `header-height`. */\n this.headerHeight = undefined;\n /** The height in pixels for the rows containing header column groups. If not specified, it uses `headerHeight`. */\n this.groupHeaderHeight = undefined;\n /** The height in pixels for the row containing the floating filters. If not specified, it uses the theme value of `header-height`. */\n this.floatingFiltersHeight = undefined;\n /** The height in pixels for the row containing the columns when in pivot mode. If not specified, it uses `headerHeight`. */\n this.pivotHeaderHeight = undefined;\n /** The height in pixels for the row containing header column groups when in pivot mode. If not specified, it uses `groupHeaderHeight`. */\n this.pivotGroupHeaderHeight = undefined;\n /** Allow reordering and pinning columns by dragging columns from the Columns Tool Panel to the grid. Default: `false` */\n this.allowDragFromColumnsToolPanel = undefined;\n /** Set to `true` to suppress column moving, i.e. to make the columns fixed position. Default: `false` */\n this.suppressMovableColumns = undefined;\n /** If `true`, the `ag-column-moving` class is not added to the grid while columns are moving. In the default themes, this results in no animation when moving columns. Default: `false` */\n this.suppressColumnMoveAnimation = undefined;\n /** If `true`, when you drag a column out of the grid (e.g. to the group zone) the column is not hidden. Default: `false` */\n this.suppressDragLeaveHidesColumns = undefined;\n /** Set to `'shift'` to have shift-resize as the default resize operation (same as user holding down `Shift` while resizing). */\n this.colResizeDefault = undefined;\n /** Suppresses auto-sizing columns for columns. In other words, double clicking a column's header's edge will not auto-size. Default: `false` */\n this.suppressAutoSize = undefined;\n /** Number of pixels to add to a column width after the [auto-sizing](/column-sizing/#auto-size-columns) calculation.\n * Set this if you want to add extra room to accommodate (for example) sort icons, or some other dynamic nature of the header.\n * Default: `4` */\n this.autoSizePadding = undefined;\n /** Set this to `true` to skip the `headerName` when `autoSize` is called by default. Default: `false` */\n this.skipHeaderOnAutoSize = undefined;\n /** A map of component names to components. */\n this.components = undefined;\n /** @deprecated As of v27, use `components` for framework components too.\n */\n this.frameworkComponents = undefined;\n /** Set to `'fullRow'` to enable Full Row Editing. Otherwise leave blank to edit one cell at a time. */\n this.editType = undefined;\n /** Set to `true` to enable Single Click Editing for cells, to start editing with a single click. Default: `false` */\n this.singleClickEdit = undefined;\n /** Set to `true` so that neither single nor double click starts editing. Default: `false` */\n this.suppressClickEdit = undefined;\n /** Set to `true` so stop the grid updating data after and edit. When this is set, it is intended the application will update the data, eg in an external immutable store, and then pass the new dataset to the grid. */\n this.readOnlyEdit = undefined;\n /** Set this to `true` to stop cell editing when grid loses focus.\n * The default is that the grid stays editing until focus goes onto another cell. For inline (non-popup) editors only.\n * Default: `false` */\n this.stopEditingWhenCellsLoseFocus = undefined;\n /** Set to `true` along with `enterMovesDownAfterEdit` to have Excel-style behaviour for the `Enter` key.\n * i.e. pressing the `Enter` key will move down to the cell beneath.\n * Default: `false` */\n this.enterMovesDown = undefined;\n /** Set to `true` along with `enterMovesDown` to have Excel-style behaviour for the 'Enter' key.\n * i.e. pressing the Enter key will move down to the cell beneath.\n * Default: `false` */\n this.enterMovesDownAfterEdit = undefined;\n /** Set to `true` to enable Undo / Redo while editing. */\n this.undoRedoCellEditing = undefined;\n /** Set the size of the undo / redo stack. Default: `10` */\n this.undoRedoCellEditingLimit = undefined;\n /** @deprecated Use stopEditingWhenCellsLoseFocus instead\n */\n this.stopEditingWhenGridLosesFocus = undefined;\n /** A default configuration object used to export to CSV. */\n this.defaultCsvExportParams = undefined;\n /** Prevents the user from exporting the grid to CSV. Default: `false` */\n this.suppressCsvExport = undefined;\n /** A default configuration object used to export to Excel. */\n this.defaultExcelExportParams = undefined;\n /** Prevents the user from exporting the grid to Excel. Default: `false` */\n this.suppressExcelExport = undefined;\n /** A list (array) of Excel styles to be used when exporting to Excel with styles. */\n this.excelStyles = undefined;\n /** @deprecated Use defaultCsvExportParams or defaultExcelExportParams\n */\n this.defaultExportParams = undefined;\n /** Rows are filtered using this text as a quick filter. */\n this.quickFilterText = undefined;\n /** Set to `true` to turn on the quick filter cache, used to improve performance when using the quick filter. Default: `false` */\n this.cacheQuickFilter = undefined;\n /** Set to `true` to override the default tree data filtering behaviour to instead exclude child nodes from filter results. Default: `false` */\n this.excludeChildrenWhenTreeDataFiltering = undefined;\n /** Set to `true` to Enable Charts. Default: `false` */\n this.enableCharts = undefined;\n /** The list of chart themes to be used. */\n this.chartThemes = undefined;\n /** A map containing custom chart themes. */\n this.customChartThemes = undefined;\n /** Chart theme overrides applied to all themes. */\n this.chartThemeOverrides = undefined;\n /** Provide your own loading cell renderer to use when data is loading via a DataSource.\n * See [Loading Cell Renderer](https://www.ag-grid.com/javascript-data-grid/component-loading-cell-renderer/) for framework specific implementation details. */\n this.loadingCellRenderer = undefined;\n /** @deprecated As of v27, use `loadingCellRenderer` for framework components too.\n */\n this.loadingCellRendererFramework = undefined;\n /** Params to be passed to the `loadingCellRenderer` component. */\n this.loadingCellRendererParams = undefined;\n /** Callback to select which loading cell renderer to be used when data is loading via a DataSource. */\n this.loadingCellRendererSelector = undefined;\n /** A map of key->value pairs for localising text within the grid. */\n this.localeText = undefined;\n /** Set to `true` to enable Master Detail. Default: `false` */\n this.masterDetail = undefined;\n /** Set to `true` to keep detail rows for when they are displayed again. Default: `false` */\n this.keepDetailRows = undefined;\n /** Sets the number of details rows to keep. Default: `10` */\n this.keepDetailRowsCount = undefined;\n /** Provide a custom `detailCellRenderer` to use when a master row is expanded.\n * See [Detail Cell Renderer](https://www.ag-grid.com/javascript-data-grid/master-detail-custom-detail/) for framework specific implementation details. */\n this.detailCellRenderer = undefined;\n /** @deprecated As of v27, use `detailCellRenderer` for framework components too.\n */\n this.detailCellRendererFramework = undefined;\n /** Specifies the params to be used by the Detail Cell Renderer. Can also be a function that provides the params to enable dynamic definitions of the params. */\n this.detailCellRendererParams = undefined;\n /** Set fixed height in pixels for each detail row. */\n this.detailRowHeight = undefined;\n /** Set to `true` to have the detail grid dynamically change it's height to fit it's rows. */\n this.detailRowAutoHeight = undefined;\n /** Provides a context object that is provided to different callbacks the grid uses. Used for passing additional information to the callbacks by your application. */\n this.context = undefined;\n /** A list of grids to treat as Aligned Grids. If grids are aligned then the columns and horizontal scrolling will be kept in sync. */\n this.alignedGrids = undefined;\n /** Change this value to set the tabIndex order of the Grid within your application. Default: `0` */\n this.tabIndex = undefined;\n /** The number of rows rendered outside the viewable area the grid renders.\n * Having a buffer means the grid will have rows ready to show as the user slowly scrolls vertically.\n * Default: `10` */\n this.rowBuffer = undefined;\n /** Set to `true` to turn on the value cache. Default: `false` */\n this.valueCache = undefined;\n /** Set to `true` to configure the value cache to not expire after data updates. Default: `false` */\n this.valueCacheNeverExpires = undefined;\n /** Set to `true` to allow cell expressions. Default: `false` */\n this.enableCellExpressions = undefined;\n /** If `true`, row nodes do not have their parents set.\n * The grid doesn't use the parent reference, but it is included to help the client code navigate the node tree if it wants by providing bi-direction navigation up and down the tree.\n * If this is a problem (e.g. if you need to convert the tree to JSON, which does not allow cyclic dependencies) then set this to `true`.\n * Default: `false` */\n this.suppressParentsInRowNodes = undefined;\n /** Disables touch support (but does not remove the browser's efforts to simulate mouse events on touch). Default: `false` */\n this.suppressTouch = undefined;\n /** Set to `true` to not set focus back on the grid after a refresh. This can avoid issues where you want to keep the focus on another part of the browser. Default: `false` */\n this.suppressFocusAfterRefresh = undefined;\n /** Disables the asynchronous nature of the events introduced in v10, and makes them synchronous. This property only exists for the purpose of supporting legacy code which has a dependency on synchronous events from earlier versions (v9 or earlier) of AG Grid. **It is strongly recommended that you do not change this property unless you have legacy issues.** Default: `false` */\n this.suppressAsyncEvents = undefined;\n /** The grid will check for `ResizeObserver` and use it if it exists in the browser, otherwise it will use the grid's alternative implementation. Some users reported issues with Chrome's `ResizeObserver`. Use this property to always use the grid's alternative implementation should such problems exist. Default: `false` */\n this.suppressBrowserResizeObserver = undefined;\n /** Disables showing a warning message in the console if using a `gridOptions` or `colDef` property that doesn't exist. Default: `false` */\n this.suppressPropertyNamesCheck = undefined;\n /** Disables change detection. Default: `false` */\n this.suppressChangeDetection = undefined;\n /** Set this to `true` to enable debug information from the grid and related components. Will result in additional logging being output, but very useful when investigating problems. Default: `false` */\n this.debug = undefined;\n /** Provide a template for 'loading' overlay. */\n this.overlayLoadingTemplate = undefined;\n /** Provide a custom loading overlay component.\n * See [Loading Overlay Component](https://www.ag-grid.com/javascript-data-grid/component-overlay/#simple-loading-overlay-component) for framework specific implementation details. */\n this.loadingOverlayComponent = undefined;\n /** @deprecated As of v27, use `loadingOverlayComponent` for framework components too.\n */\n this.loadingOverlayComponentFramework = undefined;\n /** Customise the parameters provided to the loading overlay component. */\n this.loadingOverlayComponentParams = undefined;\n /** Disables the 'loading' overlay. Default: `false` */\n this.suppressLoadingOverlay = undefined;\n /** Provide a template for 'no rows' overlay. */\n this.overlayNoRowsTemplate = undefined;\n /** Provide a custom no rows overlay component.\n * See [No Rows Overlay Component](https://www.ag-grid.com/javascript-data-grid/component-overlay/#simple-no-rows-overlay-component) for framework specific implementation details. */\n this.noRowsOverlayComponent = undefined;\n /** @deprecated As of v27, use `noRowsOverlayComponent` for framework components too.\n */\n this.noRowsOverlayComponentFramework = undefined;\n /** Customise the parameters provided to the no rows overlay component. */\n this.noRowsOverlayComponentParams = undefined;\n /** Disables the 'no rows' overlay. Default: `false` */\n this.suppressNoRowsOverlay = undefined;\n /** Set whether pagination is enabled. Default: `false` */\n this.pagination = undefined;\n /** How many rows to load per page. If `paginationAutoPageSize` is specified, this property is ignored. Default: `100` */\n this.paginationPageSize = undefined;\n /** Set to `true` so that the number of rows to load per page is automatically adjusted by the grid so each page shows enough rows to just fill the area designated for the grid. If `false`, `paginationPageSize` is used. Default: `false` */\n this.paginationAutoPageSize = undefined;\n /** Set to `true` to have pages split children of groups when using Row Grouping or detail rows with Master Detail. Default: `false` */\n this.paginateChildRows = undefined;\n /** If `true`, the default grid controls for navigation are hidden.\n * This is useful if `pagination=true` and you want to provide your own pagination controls.\n * Otherwise, when `pagination=true` the grid automatically shows the necessary controls at the bottom so that the user can navigate through the different pages.\n * Default: `false` */\n this.suppressPaginationPanel = undefined;\n /** Set to `true` to enable pivot mode. Default: `false` */\n this.pivotMode = undefined;\n /** When to show the 'pivot panel' (where you drag rows to pivot) at the top. Note that the pivot panel will never show if `pivotMode` is off. Default: `never` */\n this.pivotPanelShow = undefined;\n /** When set and the grid is in pivot mode, automatically calculated totals will appear within the Pivot Column Groups, in the position specified. */\n this.pivotColumnGroupTotals = undefined;\n /** When set and the grid is in pivot mode, automatically calculated totals will appear for each value column in the position specified. */\n this.pivotRowTotals = undefined;\n /** If `true`, the grid will not swap in the grouping column when pivoting. Useful if pivoting using Server Side Row Model or Viewport Row Model and you want full control of all columns including the group column. Default: `false` */\n this.pivotSuppressAutoColumn = undefined;\n /** When enabled, pivot column groups will appear 'fixed', without the ability to expand and collapse the column groups. Default: `false` */\n this.suppressExpandablePivotGroups = undefined;\n /** If `true`, then row group, pivot and value aggregation will be read-only from the GUI. The grid will display what values are used for each, but will not allow the user to change the selection. Default: `false` */\n this.functionsReadOnly = undefined;\n /** A map of 'function name' to 'function' for custom aggregation functions. */\n this.aggFuncs = undefined;\n /** When `true`, column headers won't include the `aggFunc` name, e.g. `'sum(Bank Balance)`' will just be `'Bank Balance'`. Default: `false` */\n this.suppressAggFuncInHeader = undefined;\n /** When `true`, the aggregations won't be computed for the root node of the grid. Default: `false` */\n this.suppressAggAtRootLevel = undefined;\n /** When using change detection, only the updated column will be re-aggregated. Default: `false` */\n this.aggregateOnlyChangedColumns = undefined;\n /** Set to `true` so that aggregations are not impacted by filtering. Default: `false` */\n this.suppressAggFilteredOnly = undefined;\n /** Set to `true` to omit the value Column header when there is only a single value column. Default: `false` */\n this.removePivotHeaderRowWhenSingleValueColumn = undefined;\n /** Set to `true` to enable Row Animation. Default: `false` */\n this.animateRows = undefined;\n /** Set to `true` to have cells flash after data changes. Default: `false` */\n this.enableCellChangeFlash = undefined;\n /** To be used in combination with `enableCellChangeFlash`, this configuration will set the delay in milliseconds of how long a cell should remain in its \"flashed\" state.\n * Default: `500` */\n this.cellFlashDelay = undefined;\n /** To be used in combination with `enableCellChangeFlash`, this configuration will set the delay in milliseconds of how long the \"flashed\" state animation takes to fade away after the timer set by `cellFlashDelay` has completed.\n * Default: `1000` */\n this.cellFadeDelay = undefined;\n /** Switch between layout options: `normal`, `autoHeight`, `print`.\n * Default: `normal` */\n this.domLayout = undefined;\n /** When `true`, the order of rows and columns in the DOM are consistent with what is on screen. Default: `false` */\n this.ensureDomOrder = undefined;\n /** Set to `true` to operate the grid in RTL (Right to Left) mode. Default: `false` */\n this.enableRtl = undefined;\n /** Set to `true` so that the grid doesn't virtualise the columns. For example, if you have 100 columns, but only 10 visible due to scrolling, all 100 will always be rendered. Default: `false` */\n this.suppressColumnVirtualisation = undefined;\n /** By default the grid has a limit of rendering a maximum of 500 rows at once (remember the grid only renders rows you can see, so unless your display shows more than 500 rows without vertically scrolling this will never be an issue).\n *
**This is only relevant if you are manually setting `rowBuffer` to a high value (rendering more rows than can be seen) or if your grid height is able to display more than 500 rows at once.**\n * Default: `false` */\n this.suppressMaxRenderedRowRestriction = undefined;\n /** Set to `true` so that the grid doesn't virtualise the rows. For example, if you have 100 rows, but only 10 visible due to scrolling, all 100 will always be rendered. Default: `false` */\n this.suppressRowVirtualisation = undefined;\n /** Set to `true` to enable Managed Row Dragging. Default: `false` */\n this.rowDragManaged = undefined;\n /** Set to `true` to suppress row dragging. Default: `false` */\n this.suppressRowDrag = undefined;\n /** Set to `true` to suppress moving rows while dragging the `rowDrag` waffle. This option highlights the position where the row will be placed and it will only move the row on mouse up. Default: `false` */\n this.suppressMoveWhenRowDragging = undefined;\n /** Set to `true` to enable clicking and dragging anywhere on the row without the need for a drag handle. Default: `false` */\n this.rowDragEntireRow = undefined;\n /** Set to `true` to enable dragging multiple rows at the same time. Default: `false` */\n this.rowDragMultiRow = undefined;\n /** Provide your own cell renderer component to use for full width rows.\n * See [Full Width Rows](https://www.ag-grid.com/javascript-data-grid/full-width-rows/) for framework specific implementation details. */\n this.fullWidthCellRenderer = undefined;\n /** @deprecated As of v27, use `fullWidthCellRenderer` for framework components too.\n */\n this.fullWidthCellRendererFramework = undefined;\n /** Customise the parameters provided to the `fullWidthCellRenderer` component. */\n this.fullWidthCellRendererParams = undefined;\n /** Set to `true` to have the detail grid embedded in the master grid's container and so link their horizontal scrolling. */\n this.embedFullWidthRows = undefined;\n /** @deprecated */\n this.deprecatedEmbedFullWidthRows = undefined;\n /** Specifies how the results of row grouping should be displayed.\n *\n * The options are:\n *\n * - `'singleColumn'`: single group column automatically added by the grid.\n * - `'multipleColumns'`: a group column per row group is added automatically.\n * - `'groupRows'`: group rows are automatically added instead of group columns.\n * - `'custom'`: informs the grid that group columns will be provided. */\n this.groupDisplayType = undefined;\n /** If grouping, set to the number of levels to expand by default, e.g. `0` for none, `1` for first level only, etc. Set to `-1` to expand everything. Default: `0` */\n this.groupDefaultExpanded = undefined;\n /** Allows specifying the group 'auto column' if you are not happy with the default. If grouping, this column definition is included as the first column in the grid. If not grouping, this column is not included. */\n this.autoGroupColumnDef = undefined;\n /** When `true`, preserves the current group order when sorting on non-group columns. Default: `false` */\n this.groupMaintainOrder = undefined;\n /** When `true`, if you select a group, the children of the group will also be selected. Default: `false` */\n this.groupSelectsChildren = undefined;\n /** Set to determine whether filters should be applied on aggregated group values. Default: `false` */\n this.groupAggFiltering = undefined;\n /** If grouping, this controls whether to show a group footer when the group is expanded.\n * If `true`, then by default, the footer will contain aggregate data (if any) when shown and the header will be blank.\n * When closed, the header will contain the aggregate data regardless of this setting (as the footer is hidden anyway).\n * This is handy for 'total' rows, that are displayed below the data when the group is open, and alongside the group when it is closed.\n * Default: `false` */\n this.groupIncludeFooter = undefined;\n /** Set to `true` to show a 'grand total' group footer across all groups. Default: `false` */\n this.groupIncludeTotalFooter = undefined;\n /** If `true`, and showing footer, aggregate data will always be displayed at both the header and footer levels. This stops the possibly undesirable behaviour of the header details 'jumping' to the footer on expand. Default: `false` */\n this.groupSuppressBlankHeader = undefined;\n /** If using `groupSelectsChildren`, then only the children that pass the current filter will get selected. Default: `false` */\n this.groupSelectsFiltered = undefined;\n /** Shows the open group in the group column for non-group rows. Default: `false` */\n this.showOpenedGroup = undefined;\n /** Set to `true` to collapse groups that only have one child. */\n this.groupRemoveSingleChildren = undefined;\n /** Set to `true` to collapse lowest level groups that only have one child. Default: `false` */\n this.groupRemoveLowestSingleChildren = undefined;\n /** Set to `true` to hide parents that are open. When used with multiple columns for showing groups, it can give a more pleasing user experience. Default: `false` */\n this.groupHideOpenParents = undefined;\n /** When to show the 'row group panel' (where you drag rows to group) at the top. Default: `never` */\n this.rowGroupPanelShow = undefined;\n /** Provide the Cell Renderer to use when `groupDisplayType = 'groupRows'`.\n * See [Group Row Cell Renderer](https://www.ag-grid.com/javascript-data-grid/grouping-group-rows/#providing-cell-renderer) for framework specific implementation details. */\n this.groupRowRenderer = undefined;\n /** @deprecated As of v27, use `groupRowRenderer` for framework components too.\n */\n this.groupRowRendererFramework = undefined;\n /** Customise the parameters provided to the `groupRowRenderer` component. */\n this.groupRowRendererParams = undefined;\n /** By default, when a column is un-grouped, i.e. using the Row Group Panel, it is made visible in the grid. This property stops the column becoming visible again when un-grouping. Default: `false` */\n this.suppressMakeColumnVisibleAfterUnGroup = undefined;\n /** Set to `true` to enable the Grid to work with Tree Data. You must also implement the `getDataPath(data)` callback. */\n this.treeData = undefined;\n /** @deprecated - this is now groupRowRendererParams.innerRenderer\n */\n this.groupRowInnerRenderer = undefined;\n /** @deprecated - this is now groupRowRendererParams.innerRenderer\n */\n this.groupRowInnerRendererFramework = undefined;\n /** @deprecated - Use groupDisplayType = 'multipleColumns' instead\n */\n this.groupMultiAutoColumn = undefined;\n /** @deprecated - Use groupDisplayType = 'groupRows' instead\n */\n this.groupUseEntireRow = undefined;\n /** @deprecated - Use groupDisplayType = 'custom' instead\n */\n this.groupSuppressAutoColumn = undefined;\n /** @deprecated - no longer needed, transaction updates keep group state\n */\n this.rememberGroupStateWhenNewData = undefined;\n /** Data to be displayed as pinned top rows in the grid. */\n this.pinnedTopRowData = undefined;\n /** Data to be displayed as pinned bottom rows in the grid. */\n this.pinnedBottomRowData = undefined;\n /** Sets the row model type. Default: `clientSide` */\n this.rowModelType = undefined;\n /** Set the data to be displayed as rows in the grid. */\n this.rowData = undefined;\n /** @deprecated Immutable Data is on by default when grid callback getRowId() is implemented\n Enables Immutable Data mode, for compatibility with immutable stores. Default: `false`\n */\n this.immutableData = undefined;\n /** How many milliseconds to wait before executing a batch of async transactions. */\n this.asyncTransactionWaitMillis = undefined;\n /** Prevents Transactions changing sort, filter, group or pivot state when transaction only contains updates. Default: `false` */\n this.suppressModelUpdateAfterUpdateTransaction = undefined;\n /** @deprecated */\n this.deltaRowDataMode = undefined;\n /** @deprecated use asyncTransactionWaitMillis instead\n */\n this.batchUpdateWaitMillis = undefined;\n /** Provide the datasource for infinite scrolling. */\n this.datasource = undefined;\n /** How many extra blank rows to display to the user at the end of the dataset, which sets the vertical scroll and then allows the grid to request viewing more rows of data.\n * Default: `1` */\n this.cacheOverflowSize = undefined;\n /** How many extra blank rows to display to the user at the end of the dataset, which sets the vertical scroll and then allows the grid to request viewing more rows of data.\n * Default: `1` */\n this.infiniteInitialRowCount = undefined;\n /** Whether to use Full Store or Partial Store for storing rows. Default: `full` */\n this.serverSideStoreType = undefined;\n /** How many rows for each block in the store, i.e. how many rows returned from the server at a time.\n * Default: `100` */\n this.cacheBlockSize = undefined;\n /** How many blocks to keep in the store. Default is no limit, so every requested block is kept. Use this if you have memory concerns, and blocks that were least recently viewed will be purged when the limit is hit. The grid will additionally make sure it has all the blocks needed to display what is currently visible, in case this property is set to a low value. */\n this.maxBlocksInCache = undefined;\n /** How many requests to hit the server with concurrently. If the max is reached, requests are queued.\n * Set to `-1` for no maximum restriction on requests.\n * Default: `2` */\n this.maxConcurrentDatasourceRequests = undefined;\n /** How many milliseconds to wait before loading a block. Useful when scrolling over many rows, spanning many Partial Store blocks, as it prevents blocks loading until scrolling has settled. */\n this.blockLoadDebounceMillis = undefined;\n /** When enabled, closing group rows will remove children of that row. Next time the row is opened, child rows will be read from the datasource again. This property only applies when there is Row Grouping. Default: `false` */\n this.purgeClosedRowNodes = undefined;\n /** Provide the `serverSideDatasource` for server side row model. */\n this.serverSideDatasource = undefined;\n /** When enabled, always refreshes top level groups regardless of which column was sorted. This property only applies when there is Row Grouping. Default: `false` */\n this.serverSideSortingAlwaysResets = undefined;\n /** When enabled, always refreshes stores after filter has changed. Used by Full Store only, to allow Server-Side Filtering. Default: `false` */\n this.serverSideFilteringAlwaysResets = undefined;\n /** @deprecated */\n this.suppressEnterpriseResetOnNewColumns = undefined;\n /** To use the viewport row model you need to provide the grid with a `viewportDatasource`. */\n this.viewportDatasource = undefined;\n /** When using viewport row model, sets the page size for the viewport. */\n this.viewportRowModelPageSize = undefined;\n /** When using viewport row model, sets the buffer size for the viewport. */\n this.viewportRowModelBufferSize = undefined;\n /** Set to `true` to always show the horizontal scrollbar. Default: `false` */\n this.alwaysShowHorizontalScroll = undefined;\n /** Set to `true` to always show the vertical scrollbar. Default: `false` */\n this.alwaysShowVerticalScroll = undefined;\n /** Set to `true` to debounce the vertical scrollbar. Can provide smoother scrolling on slow machines. Default: `false` */\n this.debounceVerticalScrollbar = undefined;\n /** Set to `true` to never show the horizontal scroll. This is useful if the grid is aligned with another grid and will scroll when the other grid scrolls. (Should not be used in combination with `alwaysShowHorizontalScroll`.) Default: `false` */\n this.suppressHorizontalScroll = undefined;\n /** When `true`, the grid will not scroll to the top when new row data is provided. Use this if you don't want the default behaviour of scrolling to the top every time you load new data. Default: `false` */\n this.suppressScrollOnNewData = undefined;\n /** When `true`, the grid will not allow mousewheel / touchpad scroll when popup elements are present. Default: `false` */\n this.suppressScrollWhenPopupsAreOpen = undefined;\n /** When `true`, the grid will not use animation frames when drawing rows while scrolling. Use this if the grid is working fast enough that you don't need animation frames and you don't want the grid to flicker. Default: `false` */\n this.suppressAnimationFrame = undefined;\n /** If `true`, middle clicks will result in `click` events for cells and rows. Otherwise the browser will use middle click to scroll the grid.
**Note:** Not all browsers fire `click` events with the middle button. Most will fire only `mousedown` and `mouseup` events, which can be used to focus a cell, but will not work to call the `onCellClicked` function. Default: `false` */\n this.suppressMiddleClickScrolls = undefined;\n /** If `true`, mouse wheel events will be passed to the browser. Useful if your grid has no vertical scrolls and you want the mouse to scroll the browser page. Default: `false` */\n this.suppressPreventDefaultOnMouseWheel = undefined;\n /** Tell the grid how wide in pixels the scrollbar is, which is used in grid width calculations. Set only if using non-standard browser-provided scrollbars, so the grid can use the non-standard size in its calculations. */\n this.scrollbarWidth = undefined;\n /** Type of Row Selection: `single`, `multiple`. */\n this.rowSelection = undefined;\n /** Set to `true` to allow multiple rows to be selected using single click. Default: `false` */\n this.rowMultiSelectWithClick = undefined;\n /** If `true`, rows will not be deselected if you hold down `Ctrl` and click the row or press `Space`. Default: `false` */\n this.suppressRowDeselection = undefined;\n /** If `true`, row selection won't happen when rows are clicked. Use when you only want checkbox selection. Default: `false` */\n this.suppressRowClickSelection = undefined;\n /** @deprecated This property has been deprecated. Use `suppressCellFocus` instead.\n */\n this.suppressCellSelection = undefined;\n /** If `true`, cells won't be focusable. This means keyboard navigation will be disabled for grid cells, but remain enabled in other elements of the grid such as column headers, floating filters, tool panels. Default: `false` */\n this.suppressCellFocus = undefined;\n /** If `true`, only a single range can be selected. Default: `false` */\n this.suppressMultiRangeSelection = undefined;\n /** Set to `true` to be able to select the text within cells.\n *\n * **Note:** When this is set to `true`, the clipboard service is disabled.\n * Default: `false` */\n this.enableCellTextSelection = undefined;\n /** Set to `true` to enable Range Selection. Default: `false` */\n this.enableRangeSelection = undefined;\n /** Set to `true` to enable the Range Handle. Default: `false` */\n this.enableRangeHandle = undefined;\n /** Set to `true` to enable the Fill Handle. Default: `false` */\n this.enableFillHandle = undefined;\n /** Set to `'x'` to force the fill handle direction to horizontal, or set to `'y'` to force the fill handle direction to vertical. Default: `xy` */\n this.fillHandleDirection = undefined;\n /** Set this to `true` to prevent cell values from being cleared when the Range Selection is reduced by the Fill Handle. Default: `false` */\n this.suppressClearOnFillReduction = undefined;\n /** Array defining the order in which sorting occurs (if sorting is enabled). Values can be `'asc'`, `'desc'` or `null`. For example: `sortingOrder: ['asc', 'desc']`. Default: `[null, 'asc', 'desc']` */\n this.sortingOrder = undefined;\n /** Set to `true` to specify that the sort should take accented characters into account. If this feature is turned on the sort will be slower. Default: `false` */\n this.accentedSort = undefined;\n /** Set to `true` to show the 'no sort' icon. Default: `false` */\n this.unSortIcon = undefined;\n /** Set to `true` to suppress multi-sort when the user shift-clicks a column header. Default: `false` */\n this.suppressMultiSort = undefined;\n /** Set to `true` to always multi-sort when the user clicks a column header, regardless of key presses. Default: `false` */\n this.alwaysMultiSort = undefined;\n /** Set to `'ctrl'` to have multi sorting work using the `Ctrl` (or `Command ⌘` for Mac) key. */\n this.multiSortKey = undefined;\n /** Set to `true` to suppress sorting of un-sorted data to match original row data. Default: `false` */\n this.suppressMaintainUnsortedOrder = undefined;\n /** Icons to use inside the grid instead of the grid's default icons. */\n this.icons = undefined;\n /** Default row height in pixels. Default: `25` */\n this.rowHeight = undefined;\n /** The style properties to apply to all rows. Set to an object of key (style names) and values (style values) */\n this.rowStyle = undefined;\n /** CSS class(es) for all rows. Provide either a string (class name) or array of strings (array of class names). */\n this.rowClass = undefined;\n /** Rules which can be applied to include certain CSS classes. */\n this.rowClassRules = undefined;\n /** Set to `true` to not highlight rows by adding the `ag-row-hover` CSS class. Default: `false` */\n this.suppressRowHoverHighlight = undefined;\n /** Uses CSS `top` instead of CSS `transform` for positioning rows. Useful if the transform function is causing issues such as used in row spanning. Default: `false` */\n this.suppressRowTransform = undefined;\n /** Set to `true` to highlight columns by adding the `ag-column-hover` CSS class. Default: `false` */\n this.columnHoverHighlight = undefined;\n this.deltaSort = undefined;\n this.treeDataDisplayType = undefined;\n this.angularCompileRows = undefined;\n this.angularCompileFilters = undefined;\n this.functionsPassive = undefined;\n this.enableGroupEdit = undefined;\n /** For customising the context menu. */\n this.getContextMenuItems = undefined;\n /** For customising the main 'column header' menu. */\n this.getMainMenuItems = undefined;\n /** Allows user to process popups after they are created. Applications can use this if they want to, for example, reposition the popup. */\n this.postProcessPopup = undefined;\n /** Allows you to process cells for the clipboard. Handy if for example you have `Date` objects that need to have a particular format if importing into Excel. */\n this.processCellForClipboard = undefined;\n /** Allows you to process header values for the clipboard. */\n this.processHeaderForClipboard = undefined;\n /** Allows you to process group header values for the clipboard. */\n this.processGroupHeaderForClipboard = undefined;\n /** Allows you to process cells from the clipboard. Handy if for example you have number fields, and want to block non-numbers from getting into the grid. */\n this.processCellFromClipboard = undefined;\n /** Allows you to get the data that would otherwise go to the clipboard. To be used when you want to control the 'copy to clipboard' operation yourself. */\n this.sendToClipboard = undefined;\n /** Allows complete control of the paste operation, including cancelling the operation (so nothing happens) or replacing the data with other data. */\n this.processDataFromClipboard = undefined;\n /** Grid calls this method to know if an external filter is present. */\n this.isExternalFilterPresent = undefined;\n /** Should return `true` if external filter passes, otherwise `false`. */\n this.doesExternalFilterPass = undefined;\n /** Callback to be used to customise the chart toolbar items. */\n this.getChartToolbarItems = undefined;\n /** Callback to enable displaying the chart in an alternative chart container. */\n this.createChartContainer = undefined;\n /** Allows overriding the default behaviour for when user hits navigation (arrow) key when a header is focused. Return the next Header position to navigate to or `null` to stay on current header. */\n this.navigateToNextHeader = undefined;\n /** Allows overriding the default behaviour for when user hits `Tab` key when a header is focused. Return the next Header position to navigate to or `null` to stay on current header. */\n this.tabToNextHeader = undefined;\n /** Allows overriding the default behaviour for when user hits navigation (arrow) key when a cell is focused. Return the next Cell position to navigate to or `null` to stay on current cell. */\n this.navigateToNextCell = undefined;\n /** Allows overriding the default behaviour for when user hits `Tab` key when a cell is focused. Return the next Cell position to navigate to or null to stay on current cell. */\n this.tabToNextCell = undefined;\n /** @deprecated - Set via `colDef.suppressKeyboardEvent`. If you need this to be set for every column set via the `defaultColDef.suppressKeyboardEvent` property.\n */\n this.suppressKeyboardEvent = undefined;\n /** @deprecated - Use `getLocaleText` instead.\n */\n this.localeTextFunc = undefined;\n /** A callback for localising text within the grid. */\n this.getLocaleText = undefined;\n /** Allows overriding what `document` is used. Currently used by Drag and Drop (may extend to other places in the future). Use this when you want the grid to use a different `document` than the one available on the global scope. This can happen if docking out components (something which Electron supports) */\n this.getDocument = undefined;\n /** Allows user to format the numbers in the pagination panel, i.e. 'row count' and 'page number' labels. This is for pagination panel only, to format numbers inside the grid's cells (i.e. your data), then use `valueFormatter` in the column definitions. */\n this.paginationNumberFormatter = undefined;\n /** @deprecated - Use `getGroupRowAgg` instead.\n */\n this.groupRowAggNodes = undefined;\n /** Callback to use when you need access to more then the current column for aggregation. */\n this.getGroupRowAgg = undefined;\n /** (Client-side Row Model only) Allows groups to be open by default. */\n this.isGroupOpenByDefault = undefined;\n /** Allows default sorting of groups. */\n this.initialGroupOrderComparator = undefined;\n /** @deprecated - Use `initialGroupOrderComparator` instead\n */\n this.defaultGroupOrderComparator = undefined;\n /** Callback to be used with pivoting, to allow changing the second column definition. */\n this.processSecondaryColDef = undefined;\n /** Callback to be used with pivoting, to allow changing the second column group definition. */\n this.processSecondaryColGroupDef = undefined;\n /** Callback to be used when working with Tree Data when `treeData = true`. */\n this.getDataPath = undefined;\n /** @deprecated - Use initialGroupOrderComparator instead\n */\n this.defaultGroupSortComparator = undefined;\n /** Allows setting the child count for a group row. */\n this.getChildCount = undefined;\n /** Allows providing different params for different levels of grouping. */\n this.getServerSideStoreParams = undefined;\n /** Allows groups to be open by default. */\n this.isServerSideGroupOpenByDefault = undefined;\n /** Allows cancelling transactions. */\n this.isApplyServerSideTransaction = undefined;\n /** SSRM Tree Data: Allows specifying which rows are expandable. */\n this.isServerSideGroup = undefined;\n /** SSRM Tree Data: Allows specifying group keys. */\n this.getServerSideGroupKey = undefined;\n /** Return a business key for the node. If implemented, each row in the DOM will have an attribute `row-id='abc'` where `abc` is what you return as the business key.\n * This is useful for automated testing, as it provides a way for your tool to identify rows based on unique business keys. */\n this.getBusinessKeyForNode = undefined;\n /** @deprecated Use `getRowId` instead - however be aware, `getRowId()` will also set grid option `immutableData=true`\n Allows you to set the ID for a particular row node based on the data.\n */\n this.getRowNodeId = undefined;\n /** Allows setting the ID for a particular row node based on the data. */\n this.getRowId = undefined;\n /** When enabled, getRowId() callback is implemented and new Row Data is set, the grid will disregard all previous rows and treat the new Row Data as new data. As a consequence, all Row State (eg selection, rendered rows) will be reset. Default: `false` */\n this.resetRowDataOnUpdate = undefined;\n /** Allows you to process rows after they are created, so you can do final adding of custom attributes etc. */\n this.processRowPostCreate = undefined;\n /** Callback to be used to determine which rows are selectable. By default rows are selectable, so return `false` to make a row un-selectable. */\n this.isRowSelectable = undefined;\n /** Callback to be used with Master Detail to determine if a row should be a master row. If `false` is returned no detail row will exist for this row. */\n this.isRowMaster = undefined;\n /** Callback to fill values instead of simply copying values or increasing number values using linear progression. */\n this.fillOperation = undefined;\n /** @deprecated Use `postSortRows` instead\n */\n this.postSort = undefined;\n /** Callback to perform additional sorting after the grid has sorted the rows. */\n this.postSortRows = undefined;\n /** Callback version of property `rowStyle` to set style for each row individually. Function should return an object of CSS values or undefined for no styles. */\n this.getRowStyle = undefined;\n /** Callback version of property `rowClass` to set class(es) for each row individually. Function should return either a string (class name), array of strings (array of class names) or undefined for no class. */\n this.getRowClass = undefined;\n /** Callback version of property `rowHeight` to set height for each row individually. Function should return a positive number of pixels, or return `null`/`undefined` to use the default row height. */\n this.getRowHeight = undefined;\n /** @deprecated Use `isFullWidthRow` instead.\n */\n this.isFullWidthCell = undefined;\n /** Tells the grid if this row should be rendered as full width. */\n this.isFullWidthRow = undefined;\n /** The tool panel was hidden or shown. Use `api.isToolPanelShowing()` to get status. */\n this.toolPanelVisibleChanged = new EventEmitter();\n /** Paste operation has started. */\n this.pasteStart = new EventEmitter();\n /** Paste operation has ended. */\n this.pasteEnd = new EventEmitter();\n /** A column, or group of columns, was hidden / shown. */\n this.columnVisible = new EventEmitter();\n /** A column, or group of columns, was pinned / unpinned. */\n this.columnPinned = new EventEmitter();\n /** A column was resized. */\n this.columnResized = new EventEmitter();\n /** A column was moved. To find out when the column move is finished you can use the `dragStopped` event below. */\n this.columnMoved = new EventEmitter();\n /** A value column was added or removed. */\n this.columnValueChanged = new EventEmitter();\n /** The pivot mode flag was changed. */\n this.columnPivotModeChanged = new EventEmitter();\n /** A pivot column was added, removed or order changed. */\n this.columnPivotChanged = new EventEmitter();\n /** A column group was opened / closed. */\n this.columnGroupOpened = new EventEmitter();\n /** User set new columns. */\n this.newColumnsLoaded = new EventEmitter();\n /** The list of grid columns changed. */\n this.gridColumnsChanged = new EventEmitter();\n /** The list of displayed columns changed. This can result from columns open / close, column move, pivot, group, etc. */\n this.displayedColumnsChanged = new EventEmitter();\n /** The list of rendered columns changed (only columns in the visible scrolled viewport are rendered by default). */\n this.virtualColumnsChanged = new EventEmitter();\n /** Shotgun - gets called when either a) new columns are set or b) `columnApi.setState()` is used, so everything has changed. */\n this.columnEverythingChanged = new EventEmitter();\n /** Only used by Angular, React and VueJS AG Grid components (not used if doing plain JavaScript).\n * If the grid receives changes due to bound properties, this event fires after the grid has finished processing the change. */\n this.componentStateChanged = new EventEmitter();\n /** Value has changed after editing. This event will not fire if editing was cancelled (eg ESC was pressed). */\n this.cellValueChanged = new EventEmitter();\n /** Value has changed after editing. Only fires when doing Read Only Edits, ie `readOnlyEdit=true`. */\n this.cellEditRequest = new EventEmitter();\n /** A cell's value within a row has changed. This event corresponds to Full Row Editing only. */\n this.rowValueChanged = new EventEmitter();\n /** Editing a cell has started. */\n this.cellEditingStarted = new EventEmitter();\n /** Editing a cell has stopped. */\n this.cellEditingStopped = new EventEmitter();\n /** Editing a row has started (when row editing is enabled). When row editing, this event will be fired once and `cellEditingStarted` will be fired for each individual cell. Only fires when doing Full Row Editing. */\n this.rowEditingStarted = new EventEmitter();\n /** Editing a row has stopped (when row editing is enabled). When row editing, this event will be fired once and `cellEditingStopped` will be fired for each individual cell. Only fires when doing Full Row Editing. */\n this.rowEditingStopped = new EventEmitter();\n /** Filter has been opened. */\n this.filterOpened = new EventEmitter();\n /** Filter has been modified and applied. */\n this.filterChanged = new EventEmitter();\n /** Filter was modified but not applied. Used when filters have 'Apply' buttons. */\n this.filterModified = new EventEmitter();\n /** A chart has been created. */\n this.chartCreated = new EventEmitter();\n /** The data range for the chart has been changed. */\n this.chartRangeSelectionChanged = new EventEmitter();\n /** Formatting changes have been made by users through the Format Panel. */\n this.chartOptionsChanged = new EventEmitter();\n /** A chart has been destroyed. */\n this.chartDestroyed = new EventEmitter();\n /** DOM event `keyDown` happened on a cell. */\n this.cellKeyDown = new EventEmitter();\n /** DOM event `keyPress` happened on a cell. */\n this.cellKeyPress = new EventEmitter();\n /** The grid has initialised and is ready for most api calls, but may not be fully rendered yet */\n this.gridReady = new EventEmitter();\n /** Fired the first time data is rendered into the grid. Use this event if you want to auto resize columns based on their contents */\n this.firstDataRendered = new EventEmitter();\n /** The size of the grid `div` has changed. In other words, the grid was resized. */\n this.gridSizeChanged = new EventEmitter();\n /** Displayed rows have changed. Triggered after sort, filter or tree expand / collapse events. */\n this.modelUpdated = new EventEmitter();\n /** A row was removed from the DOM, for any reason. Use to clean up resources (if any) used by the row. */\n this.virtualRowRemoved = new EventEmitter();\n /** Which rows are rendered in the DOM has changed. */\n this.viewportChanged = new EventEmitter();\n /** The body was scrolled horizontally or vertically. */\n this.bodyScroll = new EventEmitter();\n /** Main body of the grid has stopped scrolling, either horizontally or vertically. */\n this.bodyScrollEnd = new EventEmitter();\n /** When dragging starts. This could be any action that uses the grid's Drag and Drop service, e.g. Column Moving, Column Resizing, Range Selection, Fill Handle, etc. */\n this.dragStarted = new EventEmitter();\n /** When dragging stops. This could be any action that uses the grid's Drag and Drop service, e.g. Column Moving, Column Resizing, Range Selection, Fill Handle, etc. */\n this.dragStopped = new EventEmitter();\n /** Triggered every time the paging state changes. Some of the most common scenarios for this event to be triggered are:\n *\n * - The page size changes.\n * - The current shown page is changed.\n * - New data is loaded onto the grid. */\n this.paginationChanged = new EventEmitter();\n /** A drag has started, or dragging was already started and the mouse has re-entered the grid having previously left the grid. */\n this.rowDragEnter = new EventEmitter();\n /** The mouse has moved while dragging. */\n this.rowDragMove = new EventEmitter();\n /** The mouse has left the grid while dragging. */\n this.rowDragLeave = new EventEmitter();\n /** The drag has finished over the grid. */\n this.rowDragEnd = new EventEmitter();\n /** A row group column was added or removed. */\n this.columnRowGroupChanged = new EventEmitter();\n /** A row group was opened or closed. */\n this.rowGroupOpened = new EventEmitter();\n /** Fired when calling either of the API methods `expandAll()` or `collapseAll()`. */\n this.expandOrCollapseAll = new EventEmitter();\n /** The client has set new pinned row data into the grid. */\n this.pinnedRowDataChanged = new EventEmitter();\n /** The client has set new data into the grid using `api.setRowData()` or by changing the `rowData` bound property. */\n this.rowDataChanged = new EventEmitter();\n /** The client has updated data for the grid using `api.applyTransaction(transaction)` or by setting new Row Data and Row ID's are provided (as this results in a transaction underneath the hood). */\n this.rowDataUpdated = new EventEmitter();\n /** Async transactions have been applied. Contains a list of all transaction results. */\n this.asyncTransactionsFlushed = new EventEmitter();\n /** Cell is clicked. */\n this.cellClicked = new EventEmitter();\n /** Cell is double clicked. */\n this.cellDoubleClicked = new EventEmitter();\n /** Cell is focused. */\n this.cellFocused = new EventEmitter();\n /** Mouse entered cell. */\n this.cellMouseOver = new EventEmitter();\n /** Mouse left cell. */\n this.cellMouseOut = new EventEmitter();\n /** Mouse down on cell. */\n this.cellMouseDown = new EventEmitter();\n /** Row is clicked. */\n this.rowClicked = new EventEmitter();\n /** Row is double clicked. */\n this.rowDoubleClicked = new EventEmitter();\n /** Row is selected or deselected. The event contains the node in question, so call the node's `isSelected()` method to see if it was just selected or deselected. */\n this.rowSelected = new EventEmitter();\n /** Row selection is changed. Use the grid API `getSelectedNodes()` to get the new list of selected nodes. */\n this.selectionChanged = new EventEmitter();\n /** Cell is right clicked. */\n this.cellContextMenu = new EventEmitter();\n /** A change to range selection has occurred. */\n this.rangeSelectionChanged = new EventEmitter();\n /** Sort has changed. The grid also listens for this and updates the model. */\n this.sortChanged = new EventEmitter();\n this.columnRowGroupChangeRequest = new EventEmitter();\n this.columnPivotChangeRequest = new EventEmitter();\n this.columnValueChangeRequest = new EventEmitter();\n this.columnAggFuncChangeRequest = new EventEmitter();\n this._nativeElement = elementDef.nativeElement;\n }\n ngAfterViewInit() {\n this.frameworkComponentWrapper.setViewContainerRef(this.viewContainerRef);\n this.frameworkComponentWrapper.setComponentFactoryResolver(this.componentFactoryResolver);\n this.angularFrameworkOverrides.setEmitterUsedCallback(this.isEmitterUsed.bind(this));\n this.gridOptions = ComponentUtil.copyAttributesToGridOptions(this.gridOptions, this, true);\n this.gridParams = {\n globalEventListener: this.globalEventListener.bind(this),\n frameworkOverrides: this.angularFrameworkOverrides,\n providedBeanInstances: {\n frameworkComponentWrapper: this.frameworkComponentWrapper\n },\n modules: (this.modules || [])\n };\n if (this.columns && this.columns.length > 0) {\n this.gridOptions.columnDefs = this.columns\n .map((column) => {\n return column.toColDef();\n });\n }\n new Grid(this._nativeElement, this.gridOptions, this.gridParams);\n if (this.gridOptions.api) {\n this.api = this.gridOptions.api;\n }\n if (this.gridOptions.columnApi) {\n this.columnApi = this.gridOptions.columnApi;\n }\n this._initialised = true;\n // sometimes, especially in large client apps gridReady can fire before ngAfterViewInit\n // this ties these together so that gridReady will always fire after agGridAngular's ngAfterViewInit\n // the actual containing component's ngAfterViewInit will fire just after agGridAngular's\n this._fullyReady.resolveNow(null, resolve => resolve);\n }\n ngOnChanges(changes) {\n if (this._initialised) {\n ComponentUtil.processOnChange(changes, this.gridOptions, this.api, this.columnApi);\n }\n }\n ngOnDestroy() {\n if (this._initialised) {\n // need to do this before the destroy, so we know not to emit any events\n // while tearing down the grid.\n this._destroyed = true;\n if (this.api) {\n this.api.destroy();\n }\n }\n }\n // we'll emit the emit if a user is listening for a given event either on the component via normal angular binding\n // or via gridOptions\n isEmitterUsed(eventType) {\n const emitter = this[eventType];\n const hasEmitter = !!emitter && emitter.observers && emitter.observers.length > 0;\n // gridReady => onGridReady\n const asEventName = `on${eventType.charAt(0).toUpperCase()}${eventType.substring(1)}`;\n const hasGridOptionListener = !!this.gridOptions && !!this.gridOptions[asEventName];\n return hasEmitter || hasGridOptionListener;\n }\n globalEventListener(eventType, event) {\n // if we are tearing down, don't emit angular events, as this causes\n // problems with the angular router\n if (this._destroyed) {\n return;\n }\n // generically look up the eventType\n const emitter = this[eventType];\n if (emitter && this.isEmitterUsed(eventType)) {\n if (eventType === 'gridReady') {\n // if the user is listening for gridReady, wait for ngAfterViewInit to fire first, then emit the\n // gridReady event\n this._fullyReady.then((result => {\n emitter.emit(event);\n }));\n }\n else {\n emitter.emit(event);\n }\n }\n }\n};\nAgGridAngular.ɵfac = function AgGridAngular_Factory(t) { return new (t || AgGridAngular)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(AngularFrameworkOverrides), ɵngcc0.ɵɵdirectiveInject(AngularFrameworkComponentWrapper), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver)); };\nAgGridAngular.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AgGridAngular, selectors: [[\"ag-grid-angular\"]], contentQueries: function AgGridAngular_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, AgGridColumn, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, inputs: { statusBar: \"statusBar\", sideBar: \"sideBar\", suppressContextMenu: \"suppressContextMenu\", preventDefaultOnContextMenu: \"preventDefaultOnContextMenu\", allowContextMenuWithControlKey: \"allowContextMenuWithControlKey\", suppressMenuHide: \"suppressMenuHide\", enableBrowserTooltips: \"enableBrowserTooltips\", tooltipShowDelay: \"tooltipShowDelay\", tooltipHideDelay: \"tooltipHideDelay\", tooltipMouseTrack: \"tooltipMouseTrack\", popupParent: \"popupParent\", copyHeadersToClipboard: \"copyHeadersToClipboard\", copyGroupHeadersToClipboard: \"copyGroupHeadersToClipboard\", clipboardDelimiter: \"clipboardDelimiter\", suppressCopyRowsToClipboard: \"suppressCopyRowsToClipboard\", suppressCopySingleCellRanges: \"suppressCopySingleCellRanges\", suppressLastEmptyLineOnPaste: \"suppressLastEmptyLineOnPaste\", suppressClipboardPaste: \"suppressClipboardPaste\", suppressClipboardApi: \"suppressClipboardApi\", columnDefs: \"columnDefs\", defaultColDef: \"defaultColDef\", defaultColGroupDef: \"defaultColGroupDef\", columnTypes: \"columnTypes\", maintainColumnOrder: \"maintainColumnOrder\", suppressFieldDotNotation: \"suppressFieldDotNotation\", deltaColumnMode: \"deltaColumnMode\", applyColumnDefOrder: \"applyColumnDefOrder\", immutableColumns: \"immutableColumns\", suppressSetColumnStateEvents: \"suppressSetColumnStateEvents\", suppressColumnStateEvents: \"suppressColumnStateEvents\", colWidth: \"colWidth\", minColWidth: \"minColWidth\", maxColWidth: \"maxColWidth\", headerHeight: \"headerHeight\", groupHeaderHeight: \"groupHeaderHeight\", floatingFiltersHeight: \"floatingFiltersHeight\", pivotHeaderHeight: \"pivotHeaderHeight\", pivotGroupHeaderHeight: \"pivotGroupHeaderHeight\", allowDragFromColumnsToolPanel: \"allowDragFromColumnsToolPanel\", suppressMovableColumns: \"suppressMovableColumns\", suppressColumnMoveAnimation: \"suppressColumnMoveAnimation\", suppressDragLeaveHidesColumns: \"suppressDragLeaveHidesColumns\", colResizeDefault: \"colResizeDefault\", suppressAutoSize: \"suppressAutoSize\", autoSizePadding: \"autoSizePadding\", skipHeaderOnAutoSize: \"skipHeaderOnAutoSize\", components: \"components\", frameworkComponents: \"frameworkComponents\", editType: \"editType\", singleClickEdit: \"singleClickEdit\", suppressClickEdit: \"suppressClickEdit\", readOnlyEdit: \"readOnlyEdit\", stopEditingWhenCellsLoseFocus: \"stopEditingWhenCellsLoseFocus\", enterMovesDown: \"enterMovesDown\", enterMovesDownAfterEdit: \"enterMovesDownAfterEdit\", undoRedoCellEditing: \"undoRedoCellEditing\", undoRedoCellEditingLimit: \"undoRedoCellEditingLimit\", stopEditingWhenGridLosesFocus: \"stopEditingWhenGridLosesFocus\", defaultCsvExportParams: \"defaultCsvExportParams\", suppressCsvExport: \"suppressCsvExport\", defaultExcelExportParams: \"defaultExcelExportParams\", suppressExcelExport: \"suppressExcelExport\", excelStyles: \"excelStyles\", defaultExportParams: \"defaultExportParams\", quickFilterText: \"quickFilterText\", cacheQuickFilter: \"cacheQuickFilter\", excludeChildrenWhenTreeDataFiltering: \"excludeChildrenWhenTreeDataFiltering\", enableCharts: \"enableCharts\", chartThemes: \"chartThemes\", customChartThemes: \"customChartThemes\", chartThemeOverrides: \"chartThemeOverrides\", loadingCellRenderer: \"loadingCellRenderer\", loadingCellRendererFramework: \"loadingCellRendererFramework\", loadingCellRendererParams: \"loadingCellRendererParams\", loadingCellRendererSelector: \"loadingCellRendererSelector\", localeText: \"localeText\", masterDetail: \"masterDetail\", keepDetailRows: \"keepDetailRows\", keepDetailRowsCount: \"keepDetailRowsCount\", detailCellRenderer: \"detailCellRenderer\", detailCellRendererFramework: \"detailCellRendererFramework\", detailCellRendererParams: \"detailCellRendererParams\", detailRowHeight: \"detailRowHeight\", detailRowAutoHeight: \"detailRowAutoHeight\", context: \"context\", alignedGrids: \"alignedGrids\", tabIndex: \"tabIndex\", rowBuffer: \"rowBuffer\", valueCache: \"valueCache\", valueCacheNeverExpires: \"valueCacheNeverExpires\", enableCellExpressions: \"enableCellExpressions\", suppressParentsInRowNodes: \"suppressParentsInRowNodes\", suppressTouch: \"suppressTouch\", suppressFocusAfterRefresh: \"suppressFocusAfterRefresh\", suppressAsyncEvents: \"suppressAsyncEvents\", suppressBrowserResizeObserver: \"suppressBrowserResizeObserver\", suppressPropertyNamesCheck: \"suppressPropertyNamesCheck\", suppressChangeDetection: \"suppressChangeDetection\", debug: \"debug\", overlayLoadingTemplate: \"overlayLoadingTemplate\", loadingOverlayComponent: \"loadingOverlayComponent\", loadingOverlayComponentFramework: \"loadingOverlayComponentFramework\", loadingOverlayComponentParams: \"loadingOverlayComponentParams\", suppressLoadingOverlay: \"suppressLoadingOverlay\", overlayNoRowsTemplate: \"overlayNoRowsTemplate\", noRowsOverlayComponent: \"noRowsOverlayComponent\", noRowsOverlayComponentFramework: \"noRowsOverlayComponentFramework\", noRowsOverlayComponentParams: \"noRowsOverlayComponentParams\", suppressNoRowsOverlay: \"suppressNoRowsOverlay\", pagination: \"pagination\", paginationPageSize: \"paginationPageSize\", paginationAutoPageSize: \"paginationAutoPageSize\", paginateChildRows: \"paginateChildRows\", suppressPaginationPanel: \"suppressPaginationPanel\", pivotMode: \"pivotMode\", pivotPanelShow: \"pivotPanelShow\", pivotColumnGroupTotals: \"pivotColumnGroupTotals\", pivotRowTotals: \"pivotRowTotals\", pivotSuppressAutoColumn: \"pivotSuppressAutoColumn\", suppressExpandablePivotGroups: \"suppressExpandablePivotGroups\", functionsReadOnly: \"functionsReadOnly\", aggFuncs: \"aggFuncs\", suppressAggFuncInHeader: \"suppressAggFuncInHeader\", suppressAggAtRootLevel: \"suppressAggAtRootLevel\", aggregateOnlyChangedColumns: \"aggregateOnlyChangedColumns\", suppressAggFilteredOnly: \"suppressAggFilteredOnly\", removePivotHeaderRowWhenSingleValueColumn: \"removePivotHeaderRowWhenSingleValueColumn\", animateRows: \"animateRows\", enableCellChangeFlash: \"enableCellChangeFlash\", cellFlashDelay: \"cellFlashDelay\", cellFadeDelay: \"cellFadeDelay\", domLayout: \"domLayout\", ensureDomOrder: \"ensureDomOrder\", enableRtl: \"enableRtl\", suppressColumnVirtualisation: \"suppressColumnVirtualisation\", suppressMaxRenderedRowRestriction: \"suppressMaxRenderedRowRestriction\", suppressRowVirtualisation: \"suppressRowVirtualisation\", rowDragManaged: \"rowDragManaged\", suppressRowDrag: \"suppressRowDrag\", suppressMoveWhenRowDragging: \"suppressMoveWhenRowDragging\", rowDragEntireRow: \"rowDragEntireRow\", rowDragMultiRow: \"rowDragMultiRow\", fullWidthCellRenderer: \"fullWidthCellRenderer\", fullWidthCellRendererFramework: \"fullWidthCellRendererFramework\", fullWidthCellRendererParams: \"fullWidthCellRendererParams\", embedFullWidthRows: \"embedFullWidthRows\", deprecatedEmbedFullWidthRows: \"deprecatedEmbedFullWidthRows\", groupDisplayType: \"groupDisplayType\", groupDefaultExpanded: \"groupDefaultExpanded\", autoGroupColumnDef: \"autoGroupColumnDef\", groupMaintainOrder: \"groupMaintainOrder\", groupSelectsChildren: \"groupSelectsChildren\", groupAggFiltering: \"groupAggFiltering\", groupIncludeFooter: \"groupIncludeFooter\", groupIncludeTotalFooter: \"groupIncludeTotalFooter\", groupSuppressBlankHeader: \"groupSuppressBlankHeader\", groupSelectsFiltered: \"groupSelectsFiltered\", showOpenedGroup: \"showOpenedGroup\", groupRemoveSingleChildren: \"groupRemoveSingleChildren\", groupRemoveLowestSingleChildren: \"groupRemoveLowestSingleChildren\", groupHideOpenParents: \"groupHideOpenParents\", rowGroupPanelShow: \"rowGroupPanelShow\", groupRowRenderer: \"groupRowRenderer\", groupRowRendererFramework: \"groupRowRendererFramework\", groupRowRendererParams: \"groupRowRendererParams\", suppressMakeColumnVisibleAfterUnGroup: \"suppressMakeColumnVisibleAfterUnGroup\", treeData: \"treeData\", groupRowInnerRenderer: \"groupRowInnerRenderer\", groupRowInnerRendererFramework: \"groupRowInnerRendererFramework\", groupMultiAutoColumn: \"groupMultiAutoColumn\", groupUseEntireRow: \"groupUseEntireRow\", groupSuppressAutoColumn: \"groupSuppressAutoColumn\", rememberGroupStateWhenNewData: \"rememberGroupStateWhenNewData\", pinnedTopRowData: \"pinnedTopRowData\", pinnedBottomRowData: \"pinnedBottomRowData\", rowModelType: \"rowModelType\", rowData: \"rowData\", immutableData: \"immutableData\", asyncTransactionWaitMillis: \"asyncTransactionWaitMillis\", suppressModelUpdateAfterUpdateTransaction: \"suppressModelUpdateAfterUpdateTransaction\", deltaRowDataMode: \"deltaRowDataMode\", batchUpdateWaitMillis: \"batchUpdateWaitMillis\", datasource: \"datasource\", cacheOverflowSize: \"cacheOverflowSize\", infiniteInitialRowCount: \"infiniteInitialRowCount\", serverSideStoreType: \"serverSideStoreType\", cacheBlockSize: \"cacheBlockSize\", maxBlocksInCache: \"maxBlocksInCache\", maxConcurrentDatasourceRequests: \"maxConcurrentDatasourceRequests\", blockLoadDebounceMillis: \"blockLoadDebounceMillis\", purgeClosedRowNodes: \"purgeClosedRowNodes\", serverSideDatasource: \"serverSideDatasource\", serverSideSortingAlwaysResets: \"serverSideSortingAlwaysResets\", serverSideFilteringAlwaysResets: \"serverSideFilteringAlwaysResets\", suppressEnterpriseResetOnNewColumns: \"suppressEnterpriseResetOnNewColumns\", viewportDatasource: \"viewportDatasource\", viewportRowModelPageSize: \"viewportRowModelPageSize\", viewportRowModelBufferSize: \"viewportRowModelBufferSize\", alwaysShowHorizontalScroll: \"alwaysShowHorizontalScroll\", alwaysShowVerticalScroll: \"alwaysShowVerticalScroll\", debounceVerticalScrollbar: \"debounceVerticalScrollbar\", suppressHorizontalScroll: \"suppressHorizontalScroll\", suppressScrollOnNewData: \"suppressScrollOnNewData\", suppressScrollWhenPopupsAreOpen: \"suppressScrollWhenPopupsAreOpen\", suppressAnimationFrame: \"suppressAnimationFrame\", suppressMiddleClickScrolls: \"suppressMiddleClickScrolls\", suppressPreventDefaultOnMouseWheel: \"suppressPreventDefaultOnMouseWheel\", scrollbarWidth: \"scrollbarWidth\", rowSelection: \"rowSelection\", rowMultiSelectWithClick: \"rowMultiSelectWithClick\", suppressRowDeselection: \"suppressRowDeselection\", suppressRowClickSelection: \"suppressRowClickSelection\", suppressCellSelection: \"suppressCellSelection\", suppressCellFocus: \"suppressCellFocus\", suppressMultiRangeSelection: \"suppressMultiRangeSelection\", enableCellTextSelection: \"enableCellTextSelection\", enableRangeSelection: \"enableRangeSelection\", enableRangeHandle: \"enableRangeHandle\", enableFillHandle: \"enableFillHandle\", fillHandleDirection: \"fillHandleDirection\", suppressClearOnFillReduction: \"suppressClearOnFillReduction\", sortingOrder: \"sortingOrder\", accentedSort: \"accentedSort\", unSortIcon: \"unSortIcon\", suppressMultiSort: \"suppressMultiSort\", alwaysMultiSort: \"alwaysMultiSort\", multiSortKey: \"multiSortKey\", suppressMaintainUnsortedOrder: \"suppressMaintainUnsortedOrder\", icons: \"icons\", rowHeight: \"rowHeight\", rowStyle: \"rowStyle\", rowClass: \"rowClass\", rowClassRules: \"rowClassRules\", suppressRowHoverHighlight: \"suppressRowHoverHighlight\", suppressRowTransform: \"suppressRowTransform\", columnHoverHighlight: \"columnHoverHighlight\", deltaSort: \"deltaSort\", treeDataDisplayType: \"treeDataDisplayType\", angularCompileRows: \"angularCompileRows\", angularCompileFilters: \"angularCompileFilters\", functionsPassive: \"functionsPassive\", enableGroupEdit: \"enableGroupEdit\", getContextMenuItems: \"getContextMenuItems\", getMainMenuItems: \"getMainMenuItems\", postProcessPopup: \"postProcessPopup\", processCellForClipboard: \"processCellForClipboard\", processHeaderForClipboard: \"processHeaderForClipboard\", processGroupHeaderForClipboard: \"processGroupHeaderForClipboard\", processCellFromClipboard: \"processCellFromClipboard\", sendToClipboard: \"sendToClipboard\", processDataFromClipboard: \"processDataFromClipboard\", isExternalFilterPresent: \"isExternalFilterPresent\", doesExternalFilterPass: \"doesExternalFilterPass\", getChartToolbarItems: \"getChartToolbarItems\", createChartContainer: \"createChartContainer\", navigateToNextHeader: \"navigateToNextHeader\", tabToNextHeader: \"tabToNextHeader\", navigateToNextCell: \"navigateToNextCell\", tabToNextCell: \"tabToNextCell\", suppressKeyboardEvent: \"suppressKeyboardEvent\", localeTextFunc: \"localeTextFunc\", getLocaleText: \"getLocaleText\", getDocument: \"getDocument\", paginationNumberFormatter: \"paginationNumberFormatter\", groupRowAggNodes: \"groupRowAggNodes\", getGroupRowAgg: \"getGroupRowAgg\", isGroupOpenByDefault: \"isGroupOpenByDefault\", initialGroupOrderComparator: \"initialGroupOrderComparator\", defaultGroupOrderComparator: \"defaultGroupOrderComparator\", processSecondaryColDef: \"processSecondaryColDef\", processSecondaryColGroupDef: \"processSecondaryColGroupDef\", getDataPath: \"getDataPath\", defaultGroupSortComparator: \"defaultGroupSortComparator\", getChildCount: \"getChildCount\", getServerSideStoreParams: \"getServerSideStoreParams\", isServerSideGroupOpenByDefault: \"isServerSideGroupOpenByDefault\", isApplyServerSideTransaction: \"isApplyServerSideTransaction\", isServerSideGroup: \"isServerSideGroup\", getServerSideGroupKey: \"getServerSideGroupKey\", getBusinessKeyForNode: \"getBusinessKeyForNode\", getRowNodeId: \"getRowNodeId\", getRowId: \"getRowId\", resetRowDataOnUpdate: \"resetRowDataOnUpdate\", processRowPostCreate: \"processRowPostCreate\", isRowSelectable: \"isRowSelectable\", isRowMaster: \"isRowMaster\", fillOperation: \"fillOperation\", postSort: \"postSort\", postSortRows: \"postSortRows\", getRowStyle: \"getRowStyle\", getRowClass: \"getRowClass\", getRowHeight: \"getRowHeight\", isFullWidthCell: \"isFullWidthCell\", isFullWidthRow: \"isFullWidthRow\", gridOptions: \"gridOptions\", modules: \"modules\" }, outputs: { toolPanelVisibleChanged: \"toolPanelVisibleChanged\", pasteStart: \"pasteStart\", pasteEnd: \"pasteEnd\", columnVisible: \"columnVisible\", columnPinned: \"columnPinned\", columnResized: \"columnResized\", columnMoved: \"columnMoved\", columnValueChanged: \"columnValueChanged\", columnPivotModeChanged: \"columnPivotModeChanged\", columnPivotChanged: \"columnPivotChanged\", columnGroupOpened: \"columnGroupOpened\", newColumnsLoaded: \"newColumnsLoaded\", gridColumnsChanged: \"gridColumnsChanged\", displayedColumnsChanged: \"displayedColumnsChanged\", virtualColumnsChanged: \"virtualColumnsChanged\", columnEverythingChanged: \"columnEverythingChanged\", componentStateChanged: \"componentStateChanged\", cellValueChanged: \"cellValueChanged\", cellEditRequest: \"cellEditRequest\", rowValueChanged: \"rowValueChanged\", cellEditingStarted: \"cellEditingStarted\", cellEditingStopped: \"cellEditingStopped\", rowEditingStarted: \"rowEditingStarted\", rowEditingStopped: \"rowEditingStopped\", filterOpened: \"filterOpened\", filterChanged: \"filterChanged\", filterModified: \"filterModified\", chartCreated: \"chartCreated\", chartRangeSelectionChanged: \"chartRangeSelectionChanged\", chartOptionsChanged: \"chartOptionsChanged\", chartDestroyed: \"chartDestroyed\", cellKeyDown: \"cellKeyDown\", cellKeyPress: \"cellKeyPress\", gridReady: \"gridReady\", firstDataRendered: \"firstDataRendered\", gridSizeChanged: \"gridSizeChanged\", modelUpdated: \"modelUpdated\", virtualRowRemoved: \"virtualRowRemoved\", viewportChanged: \"viewportChanged\", bodyScroll: \"bodyScroll\", bodyScrollEnd: \"bodyScrollEnd\", dragStarted: \"dragStarted\", dragStopped: \"dragStopped\", paginationChanged: \"paginationChanged\", rowDragEnter: \"rowDragEnter\", rowDragMove: \"rowDragMove\", rowDragLeave: \"rowDragLeave\", rowDragEnd: \"rowDragEnd\", columnRowGroupChanged: \"columnRowGroupChanged\", rowGroupOpened: \"rowGroupOpened\", expandOrCollapseAll: \"expandOrCollapseAll\", pinnedRowDataChanged: \"pinnedRowDataChanged\", rowDataChanged: \"rowDataChanged\", rowDataUpdated: \"rowDataUpdated\", asyncTransactionsFlushed: \"asyncTransactionsFlushed\", cellClicked: \"cellClicked\", cellDoubleClicked: \"cellDoubleClicked\", cellFocused: \"cellFocused\", cellMouseOver: \"cellMouseOver\", cellMouseOut: \"cellMouseOut\", cellMouseDown: \"cellMouseDown\", rowClicked: \"rowClicked\", rowDoubleClicked: \"rowDoubleClicked\", rowSelected: \"rowSelected\", selectionChanged: \"selectionChanged\", cellContextMenu: \"cellContextMenu\", rangeSelectionChanged: \"rangeSelectionChanged\", sortChanged: \"sortChanged\", columnRowGroupChangeRequest: \"columnRowGroupChangeRequest\", columnPivotChangeRequest: \"columnPivotChangeRequest\", columnValueChangeRequest: \"columnValueChangeRequest\", columnAggFuncChangeRequest: \"columnAggFuncChangeRequest\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function AgGridAngular_Template(rf, ctx) { }, encapsulation: 2 });\nAgGridAngular.ctorParameters = () => [\n { type: ElementRef },\n { type: ViewContainerRef },\n { type: AngularFrameworkOverrides },\n { type: AngularFrameworkComponentWrapper },\n { type: ComponentFactoryResolver }\n];\n__decorate([\n ContentChildren(AgGridColumn),\n __metadata(\"design:type\", QueryList)\n], AgGridAngular.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"gridOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"modules\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"statusBar\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"sideBar\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressContextMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"preventDefaultOnContextMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"allowContextMenuWithControlKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMenuHide\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableBrowserTooltips\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"tooltipShowDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"tooltipHideDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"tooltipMouseTrack\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", HTMLElement)\n], AgGridAngular.prototype, \"popupParent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"copyHeadersToClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"copyGroupHeadersToClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"clipboardDelimiter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressCopyRowsToClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressCopySingleCellRanges\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressLastEmptyLineOnPaste\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressClipboardPaste\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressClipboardApi\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"columnDefs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultColDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultColGroupDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"columnTypes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"maintainColumnOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressFieldDotNotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"deltaColumnMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"applyColumnDefOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"immutableColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressSetColumnStateEvents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressColumnStateEvents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"colWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"minColWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"maxColWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"headerHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"groupHeaderHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"floatingFiltersHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"pivotHeaderHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"pivotGroupHeaderHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"allowDragFromColumnsToolPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMovableColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressColumnMoveAnimation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressDragLeaveHidesColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"colResizeDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressAutoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"autoSizePadding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"skipHeaderOnAutoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"components\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"frameworkComponents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"editType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"singleClickEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressClickEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"readOnlyEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"stopEditingWhenCellsLoseFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enterMovesDown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enterMovesDownAfterEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"undoRedoCellEditing\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"undoRedoCellEditingLimit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"stopEditingWhenGridLosesFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultCsvExportParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressCsvExport\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultExcelExportParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressExcelExport\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"excelStyles\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultExportParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"quickFilterText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"cacheQuickFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"excludeChildrenWhenTreeDataFiltering\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableCharts\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"chartThemes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"customChartThemes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"chartThemeOverrides\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"loadingCellRendererSelector\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"localeText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"masterDetail\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"keepDetailRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"keepDetailRowsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"detailRowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"detailRowAutoHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"context\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"alignedGrids\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"tabIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"rowBuffer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"valueCache\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"valueCacheNeverExpires\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableCellExpressions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressParentsInRowNodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressTouch\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressFocusAfterRefresh\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressAsyncEvents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressBrowserResizeObserver\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressPropertyNamesCheck\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressChangeDetection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"debug\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"overlayLoadingTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingOverlayComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingOverlayComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingOverlayComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressLoadingOverlay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"overlayNoRowsTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"noRowsOverlayComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"noRowsOverlayComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"noRowsOverlayComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressNoRowsOverlay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"pagination\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"paginationPageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"paginationAutoPageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"paginateChildRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressPaginationPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"pivotMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"pivotPanelShow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"pivotColumnGroupTotals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"pivotRowTotals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"pivotSuppressAutoColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressExpandablePivotGroups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"functionsReadOnly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"aggFuncs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressAggFuncInHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressAggAtRootLevel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"aggregateOnlyChangedColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressAggFilteredOnly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"removePivotHeaderRowWhenSingleValueColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"animateRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableCellChangeFlash\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"cellFlashDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"cellFadeDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"domLayout\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"ensureDomOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableRtl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressColumnVirtualisation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMaxRenderedRowRestriction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressRowVirtualisation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"rowDragManaged\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressRowDrag\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMoveWhenRowDragging\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"rowDragEntireRow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"rowDragMultiRow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fullWidthCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fullWidthCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fullWidthCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"embedFullWidthRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"deprecatedEmbedFullWidthRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"groupDisplayType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"groupDefaultExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"autoGroupColumnDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupMaintainOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupSelectsChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupAggFiltering\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupIncludeFooter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupIncludeTotalFooter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupSuppressBlankHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupSelectsFiltered\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"showOpenedGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupRemoveSingleChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupRemoveLowestSingleChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupHideOpenParents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"rowGroupPanelShow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMakeColumnVisibleAfterUnGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"treeData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowInnerRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowInnerRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupMultiAutoColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupUseEntireRow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"groupSuppressAutoColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"rememberGroupStateWhenNewData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"pinnedTopRowData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"pinnedBottomRowData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"rowModelType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"rowData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"immutableData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"asyncTransactionWaitMillis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressModelUpdateAfterUpdateTransaction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"deltaRowDataMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"batchUpdateWaitMillis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"datasource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"cacheOverflowSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"infiniteInitialRowCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"serverSideStoreType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"cacheBlockSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"maxBlocksInCache\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"maxConcurrentDatasourceRequests\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"blockLoadDebounceMillis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"purgeClosedRowNodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"serverSideDatasource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"serverSideSortingAlwaysResets\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"serverSideFilteringAlwaysResets\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressEnterpriseResetOnNewColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"viewportDatasource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"viewportRowModelPageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"viewportRowModelBufferSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"alwaysShowHorizontalScroll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"alwaysShowVerticalScroll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"debounceVerticalScrollbar\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressHorizontalScroll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressScrollOnNewData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressScrollWhenPopupsAreOpen\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressAnimationFrame\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMiddleClickScrolls\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressPreventDefaultOnMouseWheel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"scrollbarWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"rowSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"rowMultiSelectWithClick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressRowDeselection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressRowClickSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressCellSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressCellFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMultiRangeSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableCellTextSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableRangeSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableRangeHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableFillHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"fillHandleDirection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressClearOnFillReduction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"sortingOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"accentedSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"unSortIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMultiSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"alwaysMultiSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"multiSortKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressMaintainUnsortedOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"icons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgGridAngular.prototype, \"rowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowClassRules\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressRowHoverHighlight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"suppressRowTransform\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"columnHoverHighlight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"deltaSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgGridAngular.prototype, \"treeDataDisplayType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"angularCompileRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"angularCompileFilters\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"functionsPassive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"enableGroupEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getContextMenuItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getMainMenuItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"postProcessPopup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processCellForClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processHeaderForClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processGroupHeaderForClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processCellFromClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"sendToClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processDataFromClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isExternalFilterPresent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"doesExternalFilterPass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getChartToolbarItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"createChartContainer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"navigateToNextHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"tabToNextHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"navigateToNextCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"tabToNextCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"suppressKeyboardEvent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"localeTextFunc\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getLocaleText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getDocument\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"paginationNumberFormatter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"groupRowAggNodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getGroupRowAgg\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isGroupOpenByDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"initialGroupOrderComparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"defaultGroupOrderComparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processSecondaryColDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processSecondaryColGroupDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getDataPath\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"defaultGroupSortComparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getChildCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getServerSideStoreParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isServerSideGroupOpenByDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isApplyServerSideTransaction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isServerSideGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getServerSideGroupKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getBusinessKeyForNode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getRowNodeId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getRowId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgGridAngular.prototype, \"resetRowDataOnUpdate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"processRowPostCreate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isRowSelectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isRowMaster\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"fillOperation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"postSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"postSortRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getRowStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getRowClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"getRowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isFullWidthCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgGridAngular.prototype, \"isFullWidthRow\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"toolPanelVisibleChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"pasteStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"pasteEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnVisible\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPinned\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnResized\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnMoved\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnValueChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPivotModeChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPivotChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnGroupOpened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"newColumnsLoaded\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"gridColumnsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"displayedColumnsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"virtualColumnsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnEverythingChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"componentStateChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellValueChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellEditRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowValueChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellEditingStarted\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellEditingStopped\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowEditingStarted\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowEditingStopped\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"filterOpened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"filterChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"filterModified\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartCreated\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartRangeSelectionChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartOptionsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartDestroyed\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellKeyDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellKeyPress\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"gridReady\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"firstDataRendered\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"gridSizeChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"modelUpdated\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"virtualRowRemoved\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"viewportChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"bodyScroll\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"bodyScrollEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"dragStarted\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"dragStopped\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"paginationChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragEnter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragMove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnRowGroupChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowGroupOpened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"expandOrCollapseAll\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"pinnedRowDataChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDataChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDataUpdated\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"asyncTransactionsFlushed\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellDoubleClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellFocused\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellMouseOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellMouseOut\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellMouseDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDoubleClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowSelected\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"selectionChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellContextMenu\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rangeSelectionChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"sortChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnRowGroupChangeRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPivotChangeRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnValueChangeRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnAggFuncChangeRequest\", void 0);\nAgGridAngular = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n ViewContainerRef,\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper,\n ComponentFactoryResolver])\n], AgGridAngular);\n\nvar AgGridModule_1;\nlet AgGridModule = AgGridModule_1 = class AgGridModule {\n /**\n * If you are using Angular v9+, with Ivy enabled, you **do not** need to pass your components to the `AgGridModules` via this method.\n * They will automatically be resolved by Angular.\n */\n static withComponents(components) {\n return {\n ngModule: AgGridModule_1,\n providers: [\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: components, multi: true }\n ],\n };\n }\n /**\n * If you are using Angular v9+, with Ivy enabled, you **do not** need to pass your components to the `AgGridModules` via this method.\n * They will automatically be resolved by Angular.\n */\n static forRoot(components) {\n return {\n ngModule: AgGridModule_1,\n providers: [\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: components, multi: true }\n ],\n };\n }\n};\nAgGridModule.ɵfac = function AgGridModule_Factory(t) { return new (t || AgGridModule)(); };\nAgGridModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: AgGridModule });\nAgGridModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AgGridColumn, [{\n type: Component,\n args: [{\n selector: 'ag-grid-column',\n template: ''\n }]\n }], null, { childColumns: [{\n type: ContentChildren,\n args: [AgGridColumn_1]\n }], filterFramework: [{\n type: Input\n }], filterParams: [{\n type: Input\n }], floatingFilterComponent: [{\n type: Input\n }], floatingFilterComponentParams: [{\n type: Input\n }], floatingFilterComponentFramework: [{\n type: Input\n }], floatingFilterFramework: [{\n type: Input\n }], filter: [{\n type: Input\n }], headerName: [{\n type: Input\n }], headerValueGetter: [{\n type: Input\n }], headerTooltip: [{\n type: Input\n }], headerClass: [{\n type: Input\n }], suppressHeaderKeyboardEvent: [{\n type: Input\n }], columnGroupShow: [{\n type: Input\n }], toolPanelClass: [{\n type: Input\n }], suppressColumnsToolPanel: [{\n type: Input\n }], suppressFiltersToolPanel: [{\n type: Input\n }], tooltipComponent: [{\n type: Input\n }], tooltipComponentFramework: [{\n type: Input\n }], tooltipComponentParams: [{\n type: Input\n }], children: [{\n type: Input\n }], groupId: [{\n type: Input\n }], openByDefault: [{\n type: Input\n }], marryChildren: [{\n type: Input\n }], headerGroupComponent: [{\n type: Input\n }], headerGroupComponentFramework: [{\n type: Input\n }], headerGroupComponentParams: [{\n type: Input\n }], colId: [{\n type: Input\n }], field: [{\n type: Input\n }], type: [{\n type: Input\n }], valueGetter: [{\n type: Input\n }], valueFormatter: [{\n type: Input\n }], refData: [{\n type: Input\n }], keyCreator: [{\n type: Input\n }], equals: [{\n type: Input\n }], tooltipField: [{\n type: Input\n }], tooltipValueGetter: [{\n type: Input\n }], checkboxSelection: [{\n type: Input\n }], icons: [{\n type: Input\n }], suppressNavigable: [{\n type: Input\n }], suppressKeyboardEvent: [{\n type: Input\n }], suppressPaste: [{\n type: Input\n }], suppressFillHandle: [{\n type: Input\n }], hide: [{\n type: Input\n }], initialHide: [{\n type: Input\n }], lockVisible: [{\n type: Input\n }], lockPosition: [{\n type: Input\n }], suppressMovable: [{\n type: Input\n }], editable: [{\n type: Input\n }], valueSetter: [{\n type: Input\n }], valueParser: [{\n type: Input\n }], cellEditor: [{\n type: Input\n }], cellEditorFramework: [{\n type: Input\n }], cellEditorParams: [{\n type: Input\n }], cellEditorSelector: [{\n type: Input\n }], singleClickEdit: [{\n type: Input\n }], newValueHandler: [{\n type: Input\n }], cellEditorPopup: [{\n type: Input\n }], cellEditorPopupPosition: [{\n type: Input\n }], onCellValueChanged: [{\n type: Input\n }], onCellClicked: [{\n type: Input\n }], onCellDoubleClicked: [{\n type: Input\n }], onCellContextMenu: [{\n type: Input\n }], getQuickFilterText: [{\n type: Input\n }], filterValueGetter: [{\n type: Input\n }], floatingFilter: [{\n type: Input\n }], headerComponent: [{\n type: Input\n }], headerComponentFramework: [{\n type: Input\n }], headerComponentParams: [{\n type: Input\n }], menuTabs: [{\n type: Input\n }], columnsMenuParams: [{\n type: Input\n }], suppressMenu: [{\n type: Input\n }], headerCheckboxSelection: [{\n type: Input\n }], headerCheckboxSelectionFilteredOnly: [{\n type: Input\n }], chartDataType: [{\n type: Input\n }], pinned: [{\n type: Input\n }], initialPinned: [{\n type: Input\n }], lockPinned: [{\n type: Input\n }], pinnedRowCellRenderer: [{\n type: Input\n }], pinnedRowCellRendererFramework: [{\n type: Input\n }], pinnedRowCellRendererParams: [{\n type: Input\n }], pinnedRowValueFormatter: [{\n type: Input\n }], pivot: [{\n type: Input\n }], initialPivot: [{\n type: Input\n }], pivotIndex: [{\n type: Input\n }], initialPivotIndex: [{\n type: Input\n }], pivotComparator: [{\n type: Input\n }], enablePivot: [{\n type: Input\n }], cellStyle: [{\n type: Input\n }], cellClass: [{\n type: Input\n }], cellClassRules: [{\n type: Input\n }], cellRenderer: [{\n type: Input\n }], cellRendererFramework: [{\n type: Input\n }], cellRendererParams: [{\n type: Input\n }], cellRendererSelector: [{\n type: Input\n }], autoHeight: [{\n type: Input\n }], wrapText: [{\n type: Input\n }], enableCellChangeFlash: [{\n type: Input\n }], suppressCellFlash: [{\n type: Input\n }], rowDrag: [{\n type: Input\n }], rowDragText: [{\n type: Input\n }], dndSource: [{\n type: Input\n }], dndSourceOnRowDrag: [{\n type: Input\n }], rowGroup: [{\n type: Input\n }], initialRowGroup: [{\n type: Input\n }], rowGroupIndex: [{\n type: Input\n }], initialRowGroupIndex: [{\n type: Input\n }], enableRowGroup: [{\n type: Input\n }], enableValue: [{\n type: Input\n }], aggFunc: [{\n type: Input\n }], initialAggFunc: [{\n type: Input\n }], defaultAggFunc: [{\n type: Input\n }], allowedAggFuncs: [{\n type: Input\n }], showRowGroup: [{\n type: Input\n }], sortable: [{\n type: Input\n }], sort: [{\n type: Input\n }], initialSort: [{\n type: Input\n }], sortIndex: [{\n type: Input\n }], initialSortIndex: [{\n type: Input\n }], sortingOrder: [{\n type: Input\n }], comparator: [{\n type: Input\n }], unSortIcon: [{\n type: Input\n }], sortedAt: [{\n type: Input\n }], colSpan: [{\n type: Input\n }], rowSpan: [{\n type: Input\n }], width: [{\n type: Input\n }], initialWidth: [{\n type: Input\n }], minWidth: [{\n type: Input\n }], maxWidth: [{\n type: Input\n }], flex: [{\n type: Input\n }], initialFlex: [{\n type: Input\n }], resizable: [{\n type: Input\n }], suppressSizeToFit: [{\n type: Input\n }], suppressAutoSize: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AngularFrameworkOverrides, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AngularFrameworkComponentWrapper, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AgGridAngular, [{\n type: Component,\n args: [{\n selector: 'ag-grid-angular',\n template: '',\n providers: [\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper\n ],\n // tell angular we don't want view encapsulation, we don't want a shadow root\n encapsulation: ViewEncapsulation.None\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ViewContainerRef }, { type: AngularFrameworkOverrides }, { type: AngularFrameworkComponentWrapper }, { type: ɵngcc0.ComponentFactoryResolver }]; }, { statusBar: [{\n type: Input\n }], sideBar: [{\n type: Input\n }], suppressContextMenu: [{\n type: Input\n }], preventDefaultOnContextMenu: [{\n type: Input\n }], allowContextMenuWithControlKey: [{\n type: Input\n }], suppressMenuHide: [{\n type: Input\n }], enableBrowserTooltips: [{\n type: Input\n }], tooltipShowDelay: [{\n type: Input\n }], tooltipHideDelay: [{\n type: Input\n }], tooltipMouseTrack: [{\n type: Input\n }], popupParent: [{\n type: Input\n }], copyHeadersToClipboard: [{\n type: Input\n }], copyGroupHeadersToClipboard: [{\n type: Input\n }], clipboardDelimiter: [{\n type: Input\n }], suppressCopyRowsToClipboard: [{\n type: Input\n }], suppressCopySingleCellRanges: [{\n type: Input\n }], suppressLastEmptyLineOnPaste: [{\n type: Input\n }], suppressClipboardPaste: [{\n type: Input\n }], suppressClipboardApi: [{\n type: Input\n }], columnDefs: [{\n type: Input\n }], defaultColDef: [{\n type: Input\n }], defaultColGroupDef: [{\n type: Input\n }], columnTypes: [{\n type: Input\n }], maintainColumnOrder: [{\n type: Input\n }], suppressFieldDotNotation: [{\n type: Input\n }], deltaColumnMode: [{\n type: Input\n }], applyColumnDefOrder: [{\n type: Input\n }], immutableColumns: [{\n type: Input\n }], suppressSetColumnStateEvents: [{\n type: Input\n }], suppressColumnStateEvents: [{\n type: Input\n }], colWidth: [{\n type: Input\n }], minColWidth: [{\n type: Input\n }], maxColWidth: [{\n type: Input\n }], headerHeight: [{\n type: Input\n }], groupHeaderHeight: [{\n type: Input\n }], floatingFiltersHeight: [{\n type: Input\n }], pivotHeaderHeight: [{\n type: Input\n }], pivotGroupHeaderHeight: [{\n type: Input\n }], allowDragFromColumnsToolPanel: [{\n type: Input\n }], suppressMovableColumns: [{\n type: Input\n }], suppressColumnMoveAnimation: [{\n type: Input\n }], suppressDragLeaveHidesColumns: [{\n type: Input\n }], colResizeDefault: [{\n type: Input\n }], suppressAutoSize: [{\n type: Input\n }], autoSizePadding: [{\n type: Input\n }], skipHeaderOnAutoSize: [{\n type: Input\n }], components: [{\n type: Input\n }], frameworkComponents: [{\n type: Input\n }], editType: [{\n type: Input\n }], singleClickEdit: [{\n type: Input\n }], suppressClickEdit: [{\n type: Input\n }], readOnlyEdit: [{\n type: Input\n }], stopEditingWhenCellsLoseFocus: [{\n type: Input\n }], enterMovesDown: [{\n type: Input\n }], enterMovesDownAfterEdit: [{\n type: Input\n }], undoRedoCellEditing: [{\n type: Input\n }], undoRedoCellEditingLimit: [{\n type: Input\n }], stopEditingWhenGridLosesFocus: [{\n type: Input\n }], defaultCsvExportParams: [{\n type: Input\n }], suppressCsvExport: [{\n type: Input\n }], defaultExcelExportParams: [{\n type: Input\n }], suppressExcelExport: [{\n type: Input\n }], excelStyles: [{\n type: Input\n }], defaultExportParams: [{\n type: Input\n }], quickFilterText: [{\n type: Input\n }], cacheQuickFilter: [{\n type: Input\n }], excludeChildrenWhenTreeDataFiltering: [{\n type: Input\n }], enableCharts: [{\n type: Input\n }], chartThemes: [{\n type: Input\n }], customChartThemes: [{\n type: Input\n }], chartThemeOverrides: [{\n type: Input\n }], loadingCellRenderer: [{\n type: Input\n }], loadingCellRendererFramework: [{\n type: Input\n }], loadingCellRendererParams: [{\n type: Input\n }], loadingCellRendererSelector: [{\n type: Input\n }], localeText: [{\n type: Input\n }], masterDetail: [{\n type: Input\n }], keepDetailRows: [{\n type: Input\n }], keepDetailRowsCount: [{\n type: Input\n }], detailCellRenderer: [{\n type: Input\n }], detailCellRendererFramework: [{\n type: Input\n }], detailCellRendererParams: [{\n type: Input\n }], detailRowHeight: [{\n type: Input\n }], detailRowAutoHeight: [{\n type: Input\n }], context: [{\n type: Input\n }], alignedGrids: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], rowBuffer: [{\n type: Input\n }], valueCache: [{\n type: Input\n }], valueCacheNeverExpires: [{\n type: Input\n }], enableCellExpressions: [{\n type: Input\n }], suppressParentsInRowNodes: [{\n type: Input\n }], suppressTouch: [{\n type: Input\n }], suppressFocusAfterRefresh: [{\n type: Input\n }], suppressAsyncEvents: [{\n type: Input\n }], suppressBrowserResizeObserver: [{\n type: Input\n }], suppressPropertyNamesCheck: [{\n type: Input\n }], suppressChangeDetection: [{\n type: Input\n }], debug: [{\n type: Input\n }], overlayLoadingTemplate: [{\n type: Input\n }], loadingOverlayComponent: [{\n type: Input\n }], loadingOverlayComponentFramework: [{\n type: Input\n }], loadingOverlayComponentParams: [{\n type: Input\n }], suppressLoadingOverlay: [{\n type: Input\n }], overlayNoRowsTemplate: [{\n type: Input\n }], noRowsOverlayComponent: [{\n type: Input\n }], noRowsOverlayComponentFramework: [{\n type: Input\n }], noRowsOverlayComponentParams: [{\n type: Input\n }], suppressNoRowsOverlay: [{\n type: Input\n }], pagination: [{\n type: Input\n }], paginationPageSize: [{\n type: Input\n }], paginationAutoPageSize: [{\n type: Input\n }], paginateChildRows: [{\n type: Input\n }], suppressPaginationPanel: [{\n type: Input\n }], pivotMode: [{\n type: Input\n }], pivotPanelShow: [{\n type: Input\n }], pivotColumnGroupTotals: [{\n type: Input\n }], pivotRowTotals: [{\n type: Input\n }], pivotSuppressAutoColumn: [{\n type: Input\n }], suppressExpandablePivotGroups: [{\n type: Input\n }], functionsReadOnly: [{\n type: Input\n }], aggFuncs: [{\n type: Input\n }], suppressAggFuncInHeader: [{\n type: Input\n }], suppressAggAtRootLevel: [{\n type: Input\n }], aggregateOnlyChangedColumns: [{\n type: Input\n }], suppressAggFilteredOnly: [{\n type: Input\n }], removePivotHeaderRowWhenSingleValueColumn: [{\n type: Input\n }], animateRows: [{\n type: Input\n }], enableCellChangeFlash: [{\n type: Input\n }], cellFlashDelay: [{\n type: Input\n }], cellFadeDelay: [{\n type: Input\n }], domLayout: [{\n type: Input\n }], ensureDomOrder: [{\n type: Input\n }], enableRtl: [{\n type: Input\n }], suppressColumnVirtualisation: [{\n type: Input\n }], suppressMaxRenderedRowRestriction: [{\n type: Input\n }], suppressRowVirtualisation: [{\n type: Input\n }], rowDragManaged: [{\n type: Input\n }], suppressRowDrag: [{\n type: Input\n }], suppressMoveWhenRowDragging: [{\n type: Input\n }], rowDragEntireRow: [{\n type: Input\n }], rowDragMultiRow: [{\n type: Input\n }], fullWidthCellRenderer: [{\n type: Input\n }], fullWidthCellRendererFramework: [{\n type: Input\n }], fullWidthCellRendererParams: [{\n type: Input\n }], embedFullWidthRows: [{\n type: Input\n }], deprecatedEmbedFullWidthRows: [{\n type: Input\n }], groupDisplayType: [{\n type: Input\n }], groupDefaultExpanded: [{\n type: Input\n }], autoGroupColumnDef: [{\n type: Input\n }], groupMaintainOrder: [{\n type: Input\n }], groupSelectsChildren: [{\n type: Input\n }], groupAggFiltering: [{\n type: Input\n }], groupIncludeFooter: [{\n type: Input\n }], groupIncludeTotalFooter: [{\n type: Input\n }], groupSuppressBlankHeader: [{\n type: Input\n }], groupSelectsFiltered: [{\n type: Input\n }], showOpenedGroup: [{\n type: Input\n }], groupRemoveSingleChildren: [{\n type: Input\n }], groupRemoveLowestSingleChildren: [{\n type: Input\n }], groupHideOpenParents: [{\n type: Input\n }], rowGroupPanelShow: [{\n type: Input\n }], groupRowRenderer: [{\n type: Input\n }], groupRowRendererFramework: [{\n type: Input\n }], groupRowRendererParams: [{\n type: Input\n }], suppressMakeColumnVisibleAfterUnGroup: [{\n type: Input\n }], treeData: [{\n type: Input\n }], groupRowInnerRenderer: [{\n type: Input\n }], groupRowInnerRendererFramework: [{\n type: Input\n }], groupMultiAutoColumn: [{\n type: Input\n }], groupUseEntireRow: [{\n type: Input\n }], groupSuppressAutoColumn: [{\n type: Input\n }], rememberGroupStateWhenNewData: [{\n type: Input\n }], pinnedTopRowData: [{\n type: Input\n }], pinnedBottomRowData: [{\n type: Input\n }], rowModelType: [{\n type: Input\n }], rowData: [{\n type: Input\n }], immutableData: [{\n type: Input\n }], asyncTransactionWaitMillis: [{\n type: Input\n }], suppressModelUpdateAfterUpdateTransaction: [{\n type: Input\n }], deltaRowDataMode: [{\n type: Input\n }], batchUpdateWaitMillis: [{\n type: Input\n }], datasource: [{\n type: Input\n }], cacheOverflowSize: [{\n type: Input\n }], infiniteInitialRowCount: [{\n type: Input\n }], serverSideStoreType: [{\n type: Input\n }], cacheBlockSize: [{\n type: Input\n }], maxBlocksInCache: [{\n type: Input\n }], maxConcurrentDatasourceRequests: [{\n type: Input\n }], blockLoadDebounceMillis: [{\n type: Input\n }], purgeClosedRowNodes: [{\n type: Input\n }], serverSideDatasource: [{\n type: Input\n }], serverSideSortingAlwaysResets: [{\n type: Input\n }], serverSideFilteringAlwaysResets: [{\n type: Input\n }], suppressEnterpriseResetOnNewColumns: [{\n type: Input\n }], viewportDatasource: [{\n type: Input\n }], viewportRowModelPageSize: [{\n type: Input\n }], viewportRowModelBufferSize: [{\n type: Input\n }], alwaysShowHorizontalScroll: [{\n type: Input\n }], alwaysShowVerticalScroll: [{\n type: Input\n }], debounceVerticalScrollbar: [{\n type: Input\n }], suppressHorizontalScroll: [{\n type: Input\n }], suppressScrollOnNewData: [{\n type: Input\n }], suppressScrollWhenPopupsAreOpen: [{\n type: Input\n }], suppressAnimationFrame: [{\n type: Input\n }], suppressMiddleClickScrolls: [{\n type: Input\n }], suppressPreventDefaultOnMouseWheel: [{\n type: Input\n }], scrollbarWidth: [{\n type: Input\n }], rowSelection: [{\n type: Input\n }], rowMultiSelectWithClick: [{\n type: Input\n }], suppressRowDeselection: [{\n type: Input\n }], suppressRowClickSelection: [{\n type: Input\n }], suppressCellSelection: [{\n type: Input\n }], suppressCellFocus: [{\n type: Input\n }], suppressMultiRangeSelection: [{\n type: Input\n }], enableCellTextSelection: [{\n type: Input\n }], enableRangeSelection: [{\n type: Input\n }], enableRangeHandle: [{\n type: Input\n }], enableFillHandle: [{\n type: Input\n }], fillHandleDirection: [{\n type: Input\n }], suppressClearOnFillReduction: [{\n type: Input\n }], sortingOrder: [{\n type: Input\n }], accentedSort: [{\n type: Input\n }], unSortIcon: [{\n type: Input\n }], suppressMultiSort: [{\n type: Input\n }], alwaysMultiSort: [{\n type: Input\n }], multiSortKey: [{\n type: Input\n }], suppressMaintainUnsortedOrder: [{\n type: Input\n }], icons: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], rowStyle: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], rowClassRules: [{\n type: Input\n }], suppressRowHoverHighlight: [{\n type: Input\n }], suppressRowTransform: [{\n type: Input\n }], columnHoverHighlight: [{\n type: Input\n }], deltaSort: [{\n type: Input\n }], treeDataDisplayType: [{\n type: Input\n }], angularCompileRows: [{\n type: Input\n }], angularCompileFilters: [{\n type: Input\n }], functionsPassive: [{\n type: Input\n }], enableGroupEdit: [{\n type: Input\n }], getContextMenuItems: [{\n type: Input\n }], getMainMenuItems: [{\n type: Input\n }], postProcessPopup: [{\n type: Input\n }], processCellForClipboard: [{\n type: Input\n }], processHeaderForClipboard: [{\n type: Input\n }], processGroupHeaderForClipboard: [{\n type: Input\n }], processCellFromClipboard: [{\n type: Input\n }], sendToClipboard: [{\n type: Input\n }], processDataFromClipboard: [{\n type: Input\n }], isExternalFilterPresent: [{\n type: Input\n }], doesExternalFilterPass: [{\n type: Input\n }], getChartToolbarItems: [{\n type: Input\n }], createChartContainer: [{\n type: Input\n }], navigateToNextHeader: [{\n type: Input\n }], tabToNextHeader: [{\n type: Input\n }], navigateToNextCell: [{\n type: Input\n }], tabToNextCell: [{\n type: Input\n }], suppressKeyboardEvent: [{\n type: Input\n }], localeTextFunc: [{\n type: Input\n }], getLocaleText: [{\n type: Input\n }], getDocument: [{\n type: Input\n }], paginationNumberFormatter: [{\n type: Input\n }], groupRowAggNodes: [{\n type: Input\n }], getGroupRowAgg: [{\n type: Input\n }], isGroupOpenByDefault: [{\n type: Input\n }], initialGroupOrderComparator: [{\n type: Input\n }], defaultGroupOrderComparator: [{\n type: Input\n }], processSecondaryColDef: [{\n type: Input\n }], processSecondaryColGroupDef: [{\n type: Input\n }], getDataPath: [{\n type: Input\n }], defaultGroupSortComparator: [{\n type: Input\n }], getChildCount: [{\n type: Input\n }], getServerSideStoreParams: [{\n type: Input\n }], isServerSideGroupOpenByDefault: [{\n type: Input\n }], isApplyServerSideTransaction: [{\n type: Input\n }], isServerSideGroup: [{\n type: Input\n }], getServerSideGroupKey: [{\n type: Input\n }], getBusinessKeyForNode: [{\n type: Input\n }], getRowNodeId: [{\n type: Input\n }], getRowId: [{\n type: Input\n }], resetRowDataOnUpdate: [{\n type: Input\n }], processRowPostCreate: [{\n type: Input\n }], isRowSelectable: [{\n type: Input\n }], isRowMaster: [{\n type: Input\n }], fillOperation: [{\n type: Input\n }], postSort: [{\n type: Input\n }], postSortRows: [{\n type: Input\n }], getRowStyle: [{\n type: Input\n }], getRowClass: [{\n type: Input\n }], getRowHeight: [{\n type: Input\n }], isFullWidthCell: [{\n type: Input\n }], isFullWidthRow: [{\n type: Input\n }], toolPanelVisibleChanged: [{\n type: Output\n }], pasteStart: [{\n type: Output\n }], pasteEnd: [{\n type: Output\n }], columnVisible: [{\n type: Output\n }], columnPinned: [{\n type: Output\n }], columnResized: [{\n type: Output\n }], columnMoved: [{\n type: Output\n }], columnValueChanged: [{\n type: Output\n }], columnPivotModeChanged: [{\n type: Output\n }], columnPivotChanged: [{\n type: Output\n }], columnGroupOpened: [{\n type: Output\n }], newColumnsLoaded: [{\n type: Output\n }], gridColumnsChanged: [{\n type: Output\n }], displayedColumnsChanged: [{\n type: Output\n }], virtualColumnsChanged: [{\n type: Output\n }], columnEverythingChanged: [{\n type: Output\n }], componentStateChanged: [{\n type: Output\n }], cellValueChanged: [{\n type: Output\n }], cellEditRequest: [{\n type: Output\n }], rowValueChanged: [{\n type: Output\n }], cellEditingStarted: [{\n type: Output\n }], cellEditingStopped: [{\n type: Output\n }], rowEditingStarted: [{\n type: Output\n }], rowEditingStopped: [{\n type: Output\n }], filterOpened: [{\n type: Output\n }], filterChanged: [{\n type: Output\n }], filterModified: [{\n type: Output\n }], chartCreated: [{\n type: Output\n }], chartRangeSelectionChanged: [{\n type: Output\n }], chartOptionsChanged: [{\n type: Output\n }], chartDestroyed: [{\n type: Output\n }], cellKeyDown: [{\n type: Output\n }], cellKeyPress: [{\n type: Output\n }], gridReady: [{\n type: Output\n }], firstDataRendered: [{\n type: Output\n }], gridSizeChanged: [{\n type: Output\n }], modelUpdated: [{\n type: Output\n }], virtualRowRemoved: [{\n type: Output\n }], viewportChanged: [{\n type: Output\n }], bodyScroll: [{\n type: Output\n }], bodyScrollEnd: [{\n type: Output\n }], dragStarted: [{\n type: Output\n }], dragStopped: [{\n type: Output\n }], paginationChanged: [{\n type: Output\n }], rowDragEnter: [{\n type: Output\n }], rowDragMove: [{\n type: Output\n }], rowDragLeave: [{\n type: Output\n }], rowDragEnd: [{\n type: Output\n }], columnRowGroupChanged: [{\n type: Output\n }], rowGroupOpened: [{\n type: Output\n }], expandOrCollapseAll: [{\n type: Output\n }], pinnedRowDataChanged: [{\n type: Output\n }], rowDataChanged: [{\n type: Output\n }], rowDataUpdated: [{\n type: Output\n }], asyncTransactionsFlushed: [{\n type: Output\n }], cellClicked: [{\n type: Output\n }], cellDoubleClicked: [{\n type: Output\n }], cellFocused: [{\n type: Output\n }], cellMouseOver: [{\n type: Output\n }], cellMouseOut: [{\n type: Output\n }], cellMouseDown: [{\n type: Output\n }], rowClicked: [{\n type: Output\n }], rowDoubleClicked: [{\n type: Output\n }], rowSelected: [{\n type: Output\n }], selectionChanged: [{\n type: Output\n }], cellContextMenu: [{\n type: Output\n }], rangeSelectionChanged: [{\n type: Output\n }], sortChanged: [{\n type: Output\n }], columnRowGroupChangeRequest: [{\n type: Output\n }], columnPivotChangeRequest: [{\n type: Output\n }], columnValueChangeRequest: [{\n type: Output\n }], columnAggFuncChangeRequest: [{\n type: Output\n }], gridOptions: [{\n type: Input\n }], columns: [{\n type: ContentChildren,\n args: [AgGridColumn]\n }], modules: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AgGridModule, [{\n type: NgModule,\n args: [{\n declarations: [AgGridAngular, AgGridColumn],\n imports: [],\n exports: [AgGridAngular, AgGridColumn]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AgGridModule, { declarations: [AgGridAngular, AgGridColumn], exports: [AgGridAngular, AgGridColumn] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AgGridAngular, AgGridColumn, AgGridModule, AngularFrameworkComponentWrapper, AngularFrameworkOverrides };\n\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue * @version v27.3.0\n * @link https://www.ag-grid.com/\n' * @license MIT\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * If value is undefined, null or blank, returns null, otherwise returns the value\n * @param {T} value\n * @returns {T | null}\n */\nfunction makeNull(value) {\n if (value == null || value === '') {\n return null;\n }\n return value;\n}\nfunction exists(value, allowEmptyString) {\n if (allowEmptyString === void 0) { allowEmptyString = false; }\n return value != null && (value !== '' || allowEmptyString);\n}\nfunction missing(value) {\n return !exists(value);\n}\nfunction missingOrEmpty(value) {\n return value == null || value.length === 0;\n}\nfunction toStringOrNull(value) {\n return value != null && typeof value.toString === 'function' ? value.toString() : null;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToNumber(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null or blank means clear\n return null;\n }\n if (typeof value === 'number') {\n return isNaN(value) ? undefined : value;\n }\n var valueParsed = parseInt(value, 10);\n return isNaN(valueParsed) ? undefined : valueParsed;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToBoolean(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null means clear\n return false;\n }\n if (typeof value === 'boolean') {\n // if simple boolean, return the boolean\n return value;\n }\n // if equal to the string 'true' (ignoring case) then return true\n return (/true/i).test(value);\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToString(value) {\n if (value == null || value === '') {\n return;\n }\n return value;\n}\n/** @deprecated */\nfunction referenceCompare(left, right) {\n if (left == null && right == null) {\n return true;\n }\n if (left == null && right != null) {\n return false;\n }\n if (left != null && right == null) {\n return false;\n }\n return left === right;\n}\nfunction jsonEquals(val1, val2) {\n var val1Json = val1 ? JSON.stringify(val1) : null;\n var val2Json = val2 ? JSON.stringify(val2) : null;\n return val1Json === val2Json;\n}\nfunction defaultComparator(valueA, valueB, accentedCompare) {\n if (accentedCompare === void 0) { accentedCompare = false; }\n var valueAMissing = valueA == null;\n var valueBMissing = valueB == null;\n // this is for aggregations sum and avg, where the result can be a number that is wrapped.\n // if we didn't do this, then the toString() value would be used, which would result in\n // the strings getting used instead of the numbers.\n if (valueA && valueA.toNumber) {\n valueA = valueA.toNumber();\n }\n if (valueB && valueB.toNumber) {\n valueB = valueB.toNumber();\n }\n if (valueAMissing && valueBMissing) {\n return 0;\n }\n if (valueAMissing) {\n return -1;\n }\n if (valueBMissing) {\n return 1;\n }\n function doQuickCompare(a, b) {\n return (a > b ? 1 : (a < b ? -1 : 0));\n }\n if (typeof valueA !== 'string') {\n return doQuickCompare(valueA, valueB);\n }\n if (!accentedCompare) {\n return doQuickCompare(valueA, valueB);\n }\n try {\n // using local compare also allows chinese comparisons\n return valueA.localeCompare(valueB);\n }\n catch (e) {\n // if something wrong with localeCompare, eg not supported\n // by browser, then just continue with the quick one\n return doQuickCompare(valueA, valueB);\n }\n}\nfunction values(object) {\n if (object instanceof Set || object instanceof Map) {\n var arr_1 = [];\n object.forEach(function (value) { return arr_1.push(value); });\n return arr_1;\n }\n return Object.values(object);\n}\n\nvar GenericUtils = /*#__PURE__*/Object.freeze({\n makeNull: makeNull,\n exists: exists,\n missing: missing,\n missingOrEmpty: missingOrEmpty,\n toStringOrNull: toStringOrNull,\n attrToNumber: attrToNumber,\n attrToBoolean: attrToBoolean,\n attrToString: attrToString,\n referenceCompare: referenceCompare,\n jsonEquals: jsonEquals,\n defaultComparator: defaultComparator,\n values: values\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ColumnKeyCreator = /** @class */ (function () {\n function ColumnKeyCreator() {\n this.existingKeys = {};\n }\n ColumnKeyCreator.prototype.addExistingKeys = function (keys) {\n for (var i = 0; i < keys.length; i++) {\n this.existingKeys[keys[i]] = true;\n }\n };\n ColumnKeyCreator.prototype.getUniqueKey = function (colId, colField) {\n // in case user passed in number for colId, convert to string\n colId = toStringOrNull(colId);\n var count = 0;\n while (true) {\n var idToTry = void 0;\n if (colId) {\n idToTry = colId;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else if (colField) {\n idToTry = colField;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else {\n idToTry = '' + count;\n }\n if (!this.existingKeys[idToTry]) {\n this.existingKeys[idToTry] = true;\n return idToTry;\n }\n count++;\n }\n };\n return ColumnKeyCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction iterateObject(object, callback) {\n if (object == null) {\n return;\n }\n if (Array.isArray(object)) {\n object.forEach(function (value, index) { return callback(\"\" + index, value); });\n }\n else {\n Object.keys(object).forEach(function (key) { return callback(key, object[key]); });\n }\n}\nfunction cloneObject(object) {\n var copy = {};\n var keys = Object.keys(object);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = object[key];\n copy[key] = value;\n }\n return copy;\n}\nfunction deepCloneObject(object) {\n return JSON.parse(JSON.stringify(object));\n}\n// returns copy of an object, doing a deep clone of any objects with that object.\n// this is used for eg creating copies of Column Definitions, where we want to\n// deep copy all objects, but do not want to deep copy functions (eg when user provides\n// a function or class for colDef.cellRenderer)\nfunction deepCloneDefinition(object, keysToSkip) {\n if (!object) {\n return;\n }\n var obj = object;\n var res = {};\n Object.keys(obj).forEach(function (key) {\n if (keysToSkip && keysToSkip.indexOf(key) >= 0) {\n return;\n }\n var value = obj[key];\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}. it does\n // NOT include the following:\n // 1) arrays\n // 2) functions or classes (eg ColumnAPI instance)\n var sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object;\n if (sourceIsSimpleObject) {\n res[key] = deepCloneDefinition(value);\n }\n else {\n res[key] = value;\n }\n });\n return res;\n}\nfunction getProperty(object, key) {\n return object[key];\n}\nfunction setProperty(object, key, value) {\n object[key] = value;\n}\n/**\n * Will copy the specified properties from `source` into the equivalent properties on `target`, ignoring properties with\n * a value of `undefined`.\n */\nfunction copyPropertiesIfPresent(source, target) {\n var properties = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n properties[_i - 2] = arguments[_i];\n }\n properties.forEach(function (p) { return copyPropertyIfPresent(source, target, p); });\n}\n/**\n * Will copy the specified property from `source` into the equivalent property on `target`, unless the property has a\n * value of `undefined`. If a transformation is provided, it will be applied to the value before being set on `target`.\n */\nfunction copyPropertyIfPresent(source, target, property, transform) {\n var value = getProperty(source, property);\n if (value !== undefined) {\n setProperty(target, property, transform ? transform(value) : value);\n }\n}\nfunction getAllKeysInObjects(objects) {\n var allValues = {};\n objects.filter(function (obj) { return obj != null; }).forEach(function (obj) {\n Object.keys(obj).forEach(function (key) { return allValues[key] = null; });\n });\n return Object.keys(allValues);\n}\nfunction getAllValuesInObject(obj) {\n if (!obj) {\n return [];\n }\n var anyObject = Object;\n if (typeof anyObject.values === 'function') {\n return anyObject.values(obj);\n }\n var ret = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) {\n ret.push(obj[key]);\n }\n }\n return ret;\n}\nfunction mergeDeep(dest, source, copyUndefined, makeCopyOfSimpleObjects) {\n if (copyUndefined === void 0) { copyUndefined = true; }\n if (makeCopyOfSimpleObjects === void 0) { makeCopyOfSimpleObjects = false; }\n if (!exists(source)) {\n return;\n }\n iterateObject(source, function (key, sourceValue) {\n var destValue = dest[key];\n if (destValue === sourceValue) {\n return;\n }\n // when creating params, we don't want to just copy objects over. otherwise merging ColDefs (eg DefaultColDef\n // and Column Types) would result in params getting shared between objects.\n // by putting an empty value into destValue first, it means we end up copying over values from\n // the source object, rather than just copying in the source object in it's entirety.\n if (makeCopyOfSimpleObjects) {\n var objectIsDueToBeCopied = destValue == null && sourceValue != null;\n if (objectIsDueToBeCopied) {\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}, as opposed\n // to a Class instance (such as ColumnAPI instance).\n var sourceIsSimpleObject = typeof sourceValue === 'object' && sourceValue.constructor === Object;\n var dontCopy = sourceIsSimpleObject;\n if (dontCopy) {\n destValue = {};\n dest[key] = destValue;\n }\n }\n }\n if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) {\n mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects);\n }\n else if (copyUndefined || sourceValue !== undefined) {\n dest[key] = sourceValue;\n }\n });\n}\nfunction missingOrEmptyObject(value) {\n return missing(value) || Object.keys(value).length === 0;\n}\nfunction get(source, expression, defaultValue) {\n if (source == null) {\n return defaultValue;\n }\n var keys = expression.split('.');\n var objectToRead = source;\n while (keys.length > 1) {\n objectToRead = objectToRead[keys.shift()];\n if (objectToRead == null) {\n return defaultValue;\n }\n }\n var value = objectToRead[keys[0]];\n return value != null ? value : defaultValue;\n}\nfunction set(target, expression, value) {\n if (target == null) {\n return;\n }\n var keys = expression.split('.');\n var objectToUpdate = target;\n while (keys.length > 1) {\n objectToUpdate = objectToUpdate[keys.shift()];\n if (objectToUpdate == null) {\n return;\n }\n }\n objectToUpdate[keys[0]] = value;\n}\nfunction deepFreeze(object) {\n Object.freeze(object);\n values(object).forEach(function (v) {\n if (isNonNullObject(v) || typeof v === 'function') {\n deepFreeze(v);\n }\n });\n return object;\n}\nfunction getValueUsingField(data, field, fieldContainsDots) {\n if (!field || !data) {\n return;\n }\n // if no '.', then it's not a deep value\n if (!fieldContainsDots) {\n return data[field];\n }\n // otherwise it is a deep value, so need to dig for it\n var fields = field.split('.');\n var currentObject = data;\n for (var i = 0; i < fields.length; i++) {\n if (currentObject == null) {\n return undefined;\n }\n currentObject = currentObject[fields[i]];\n }\n return currentObject;\n}\n// used by ColumnAPI and GridAPI to remove all references, so keeping grid in memory resulting in a\n// memory leak if user is not disposing of the GridAPI or ColumnApi references\nfunction removeAllReferences(obj, objectName) {\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n // we want to replace all the @autowired services, which are objects. any simple types (boolean, string etc)\n // we don't care about\n if (typeof value === 'object') {\n obj[key] = undefined;\n }\n });\n var proto = Object.getPrototypeOf(obj);\n var properties = {};\n Object.keys(proto).forEach(function (key) {\n var value = proto[key];\n // leave all basic types - this is needed for GridAPI to leave the \"destroyed: boolean\" attribute alone\n if (typeof value === 'function') {\n var func = function () {\n console.warn(\"AG Grid: \" + objectName + \" function \" + key + \"() cannot be called as the grid has been destroyed.\\n Please don't call grid API functions on destroyed grids - as a matter of fact you shouldn't\\n be keeping the API reference, your application has a memory leak! Remove the API reference\\n when the grid is destroyed.\");\n };\n properties[key] = { value: func, writable: true };\n }\n });\n Object.defineProperties(obj, properties);\n}\nfunction isNonNullObject(value) {\n return typeof value === 'object' && value !== null;\n}\n\nvar ObjectUtils = /*#__PURE__*/Object.freeze({\n iterateObject: iterateObject,\n cloneObject: cloneObject,\n deepCloneObject: deepCloneObject,\n deepCloneDefinition: deepCloneDefinition,\n getProperty: getProperty,\n setProperty: setProperty,\n copyPropertiesIfPresent: copyPropertiesIfPresent,\n copyPropertyIfPresent: copyPropertyIfPresent,\n getAllKeysInObjects: getAllKeysInObjects,\n getAllValuesInObject: getAllValuesInObject,\n mergeDeep: mergeDeep,\n missingOrEmptyObject: missingOrEmptyObject,\n get: get,\n set: set,\n deepFreeze: deepFreeze,\n getValueUsingField: getValueUsingField,\n removeAllReferences: removeAllReferences,\n isNonNullObject: isNonNullObject\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar FUNCTION_STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nvar FUNCTION_ARGUMENT_NAMES = /([^\\s,]+)/g;\nvar doOnceFlags = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce(func, key) {\n if (doOnceFlags[key]) {\n return;\n }\n func();\n doOnceFlags[key] = true;\n}\nfunction getFunctionName(funcConstructor) {\n // for every other browser in the world\n if (funcConstructor.name) {\n return funcConstructor.name;\n }\n // for the pestilence that is ie11\n var matches = /function\\s+([^\\(]+)/.exec(funcConstructor.toString());\n return matches && matches.length === 2 ? matches[1].trim() : null;\n}\n/** @deprecated */\nfunction getFunctionParameters(func) {\n var fnStr = func.toString().replace(FUNCTION_STRIP_COMMENTS, '');\n return fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(FUNCTION_ARGUMENT_NAMES) || [];\n}\nfunction isFunction(val) {\n return !!(val && val.constructor && val.call && val.apply);\n}\nfunction executeInAWhile(funcs) {\n executeAfter(funcs, 400);\n}\nvar executeNextVMTurnFuncs = [];\nvar executeNextVMTurnPending = false;\nfunction executeNextVMTurn(func) {\n executeNextVMTurnFuncs.push(func);\n if (executeNextVMTurnPending) {\n return;\n }\n executeNextVMTurnPending = true;\n window.setTimeout(function () {\n var funcsCopy = executeNextVMTurnFuncs.slice();\n executeNextVMTurnFuncs.length = 0;\n executeNextVMTurnPending = false;\n funcsCopy.forEach(function (func) { return func(); });\n }, 0);\n}\nfunction executeAfter(funcs, milliseconds) {\n if (milliseconds === void 0) { milliseconds = 0; }\n if (funcs.length > 0) {\n window.setTimeout(function () { return funcs.forEach(function (func) { return func(); }); }, milliseconds);\n }\n}\n/**\n * from https://stackoverflow.com/questions/24004791/can-someone-explain-the-debounce-function-in-javascript\n * @param {Function} func The function to be debounced\n * @param {number} wait The time in ms to debounce\n * @param {boolean} immediate If it should run immediately or wait for the initial debounce delay\n * @return {Function} The debounced function\n */\nfunction debounce(func, wait, immediate) {\n if (immediate === void 0) { immediate = false; }\n // 'private' variable for instance\n // The returned function will be able to reference this due to closure.\n // Each call to the returned function will share this common timer.\n var timeout;\n // Calling debounce returns a new anonymous function\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // reference the context and args for the setTimeout function\n var context = this;\n // Should the function be called now? If immediate is true\n // and not already in a timeout then the answer is: Yes\n var callNow = immediate && !timeout;\n // This is the basic debounce behaviour where you can call this\n // function several times, but it will only execute once\n // [before or after imposing a delay].\n // Each time the returned function is called, the timer starts over.\n window.clearTimeout(timeout);\n // Set the new timeout\n timeout = window.setTimeout(function () {\n // Inside the timeout function, clear the timeout variable\n // which will let the next execution run when in 'immediate' mode\n timeout = null;\n // Check if the function already ran with the immediate flag\n if (!immediate) {\n // Call the original function with apply\n // apply lets you define the 'this' object as well as the arguments\n // (both captured before setTimeout)\n func.apply(context, args);\n }\n }, wait);\n // Immediate mode and no wait timer? Execute the function..\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\n/**\n * @param {Function} func The function to be throttled\n * @param {number} wait The time in ms to throttle\n * @return {Function} The throttled function\n */\nfunction throttle(func, wait) {\n var previousCall = 0;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var currentCall = new Date().getTime();\n if (currentCall - previousCall < wait) {\n return;\n }\n previousCall = currentCall;\n func.apply(context, args);\n };\n}\nfunction waitUntil(condition, callback, timeout, timeoutMessage) {\n if (timeout === void 0) { timeout = 100; }\n var timeStamp = new Date().getTime();\n var interval = null;\n var executed = false;\n var internalCallback = function () {\n var reachedTimeout = ((new Date().getTime()) - timeStamp) > timeout;\n if (condition() || reachedTimeout) {\n callback();\n executed = true;\n if (interval != null) {\n window.clearInterval(interval);\n interval = null;\n }\n if (reachedTimeout && timeoutMessage) {\n console.warn(timeoutMessage);\n }\n }\n };\n internalCallback();\n if (!executed) {\n interval = window.setInterval(internalCallback, 10);\n }\n}\nfunction compose() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return function (arg) { return fns.reduce(function (composed, f) { return f(composed); }, arg); };\n}\nfunction callIfPresent(func) {\n if (func) {\n func();\n }\n}\n\nvar FunctionUtils = /*#__PURE__*/Object.freeze({\n doOnce: doOnce,\n getFunctionName: getFunctionName,\n getFunctionParameters: getFunctionParameters,\n isFunction: isFunction,\n executeInAWhile: executeInAWhile,\n executeNextVMTurn: executeNextVMTurn,\n executeAfter: executeAfter,\n debounce: debounce,\n throttle: throttle,\n waitUntil: waitUntil,\n compose: compose,\n callIfPresent: callIfPresent\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar Context = /** @class */ (function () {\n function Context(params, logger) {\n this.beanWrappers = {};\n this.destroyed = false;\n if (!params || !params.beanClasses) {\n return;\n }\n this.contextParams = params;\n this.logger = logger;\n this.logger.log(\">> creating ag-Application Context\");\n this.createBeans();\n var beanInstances = this.getBeanInstances();\n this.wireBeans(beanInstances);\n this.logger.log(\">> ag-Application Context ready - component is alive\");\n }\n Context.prototype.getBeanInstances = function () {\n return values(this.beanWrappers).map(function (beanEntry) { return beanEntry.beanInstance; });\n };\n Context.prototype.createBean = function (bean, afterPreCreateCallback) {\n if (!bean) {\n throw Error(\"Can't wire to bean since it is null\");\n }\n this.wireBeans([bean], afterPreCreateCallback);\n return bean;\n };\n Context.prototype.wireBeans = function (beanInstances, afterPreCreateCallback) {\n this.autoWireBeans(beanInstances);\n this.methodWireBeans(beanInstances);\n this.callLifeCycleMethods(beanInstances, 'preConstructMethods');\n // the callback sets the attributes, so the component has access to attributes\n // before postConstruct methods in the component are executed\n if (exists(afterPreCreateCallback)) {\n beanInstances.forEach(afterPreCreateCallback);\n }\n this.callLifeCycleMethods(beanInstances, 'postConstructMethods');\n };\n Context.prototype.createBeans = function () {\n var _this = this;\n // register all normal beans\n this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));\n // register override beans, these will overwrite beans above of same name\n // instantiate all beans - overridden beans will be left out\n iterateObject(this.beanWrappers, function (key, beanEntry) {\n var constructorParamsMeta;\n if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {\n constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;\n }\n var constructorParams = _this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);\n var newInstance = applyToConstructor(beanEntry.bean, constructorParams);\n beanEntry.beanInstance = newInstance;\n });\n var createdBeanNames = Object.keys(this.beanWrappers).join(', ');\n this.logger.log(\"created beans: \" + createdBeanNames);\n };\n // tslint:disable-next-line\n Context.prototype.createBeanWrapper = function (BeanClass) {\n var metaData = BeanClass.__agBeanMetaData;\n if (!metaData) {\n var beanName = void 0;\n if (BeanClass.prototype.constructor) {\n beanName = getFunctionName(BeanClass.prototype.constructor);\n }\n else {\n beanName = \"\" + BeanClass;\n }\n console.error(\"Context item \" + beanName + \" is not a bean\");\n return;\n }\n var beanEntry = {\n bean: BeanClass,\n beanInstance: null,\n beanName: metaData.beanName\n };\n this.beanWrappers[metaData.beanName] = beanEntry;\n };\n Context.prototype.autoWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n var attributes = metaData.agClassAttributes;\n if (!attributes) {\n return;\n }\n attributes.forEach(function (attribute) {\n var otherBean = _this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);\n beanInstance[attribute.attributeName] = otherBean;\n });\n });\n });\n };\n Context.prototype.methodWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n iterateObject(metaData.autowireMethods, function (methodName, wireParams) {\n // skip constructor, as this is dealt with elsewhere\n if (methodName === \"agConstructor\") {\n return;\n }\n var initParams = _this.getBeansForParameters(wireParams, beanName);\n beanInstance[methodName].apply(beanInstance, initParams);\n });\n });\n });\n };\n Context.prototype.forEachMetaDataInHierarchy = function (beanInstance, callback) {\n var prototype = Object.getPrototypeOf(beanInstance);\n while (prototype != null) {\n var constructor = prototype.constructor;\n if (constructor.hasOwnProperty('__agBeanMetaData')) {\n var metaData = constructor.__agBeanMetaData;\n var beanName = this.getBeanName(constructor);\n callback(metaData, beanName);\n }\n prototype = Object.getPrototypeOf(prototype);\n }\n };\n Context.prototype.getBeanName = function (constructor) {\n if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {\n return constructor.__agBeanMetaData.beanName;\n }\n var constructorString = constructor.toString();\n var beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n return beanName;\n };\n Context.prototype.getBeansForParameters = function (parameters, beanName) {\n var _this = this;\n var beansList = [];\n if (parameters) {\n iterateObject(parameters, function (paramIndex, otherBeanName) {\n var otherBean = _this.lookupBeanInstance(beanName, otherBeanName);\n beansList[Number(paramIndex)] = otherBean;\n });\n }\n return beansList;\n };\n Context.prototype.lookupBeanInstance = function (wiringBean, beanName, optional) {\n if (optional === void 0) { optional = false; }\n if (beanName === \"context\") {\n return this;\n }\n if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {\n return this.contextParams.providedBeanInstances[beanName];\n }\n var beanEntry = this.beanWrappers[beanName];\n if (beanEntry) {\n return beanEntry.beanInstance;\n }\n if (!optional) {\n console.error(\"AG Grid: unable to find bean reference \" + beanName + \" while initialising \" + wiringBean);\n }\n return null;\n };\n Context.prototype.callLifeCycleMethods = function (beanInstances, lifeCycleMethod) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) { return _this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod); });\n };\n Context.prototype.callLifeCycleMethodsOnBean = function (beanInstance, lifeCycleMethod, methodToIgnore) {\n // putting all methods into a map removes duplicates\n var allMethods = {};\n // dump methods from each level of the metadata hierarchy\n this.forEachMetaDataInHierarchy(beanInstance, function (metaData) {\n var methods = metaData[lifeCycleMethod];\n if (methods) {\n methods.forEach(function (methodName) {\n if (methodName != methodToIgnore) {\n allMethods[methodName] = true;\n }\n });\n }\n });\n var allMethodsList = Object.keys(allMethods);\n allMethodsList.forEach(function (methodName) { return beanInstance[methodName](); });\n };\n Context.prototype.getBean = function (name) {\n return this.lookupBeanInstance(\"getBean\", name, true);\n };\n Context.prototype.destroy = function () {\n if (this.destroyed) {\n return;\n }\n this.logger.log(\">> Shutting down ag-Application Context\");\n var beanInstances = this.getBeanInstances();\n this.destroyBeans(beanInstances);\n this.contextParams.providedBeanInstances = null;\n this.destroyed = true;\n this.logger.log(\">> ag-Application Context shut down - component is dead\");\n };\n Context.prototype.destroyBean = function (bean) {\n if (!bean) {\n return;\n }\n this.destroyBeans([bean]);\n };\n Context.prototype.destroyBeans = function (beans) {\n var _this = this;\n if (!beans) {\n return [];\n }\n beans.forEach(function (bean) {\n _this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');\n // call destroy() explicitly if it exists\n var beanAny = bean;\n if (typeof beanAny.destroy === 'function') {\n beanAny.destroy();\n }\n });\n return [];\n };\n return Context;\n}());\n// taken from: http://stackoverflow.com/questions/3362471/how-can-i-call-a-javascript-constructor-using-call-or-apply\n// allows calling 'apply' on a constructor\nfunction applyToConstructor(constructor, argArray) {\n var args = [null].concat(argArray);\n var factoryFunction = constructor.bind.apply(constructor, args);\n return new factoryFunction();\n}\nfunction PreConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps(target.constructor);\n if (!props.preConstructMethods) {\n props.preConstructMethods = [];\n }\n props.preConstructMethods.push(methodName);\n}\nfunction PostConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps(target.constructor);\n if (!props.postConstructMethods) {\n props.postConstructMethods = [];\n }\n props.postConstructMethods.push(methodName);\n}\nfunction PreDestroy(target, methodName, descriptor) {\n var props = getOrCreateProps(target.constructor);\n if (!props.preDestroyMethods) {\n props.preDestroyMethods = [];\n }\n props.preDestroyMethods.push(methodName);\n}\nfunction Bean(beanName) {\n return function (classConstructor) {\n var props = getOrCreateProps(classConstructor);\n props.beanName = beanName;\n };\n}\nfunction Autowired(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, false, target, propertyKey, null);\n };\n}\nfunction Optional(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, true, target, propertyKey, null);\n };\n}\nfunction autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {\n if (name === null) {\n console.error(\"AG Grid: Autowired name should not be null\");\n return;\n }\n if (typeof index === \"number\") {\n console.error(\"AG Grid: Autowired should be on an attribute\");\n return;\n }\n // it's an attribute on the class\n var props = getOrCreateProps(target.constructor);\n if (!props.agClassAttributes) {\n props.agClassAttributes = [];\n }\n props.agClassAttributes.push({\n attributeName: methodOrAttributeName,\n beanName: name,\n optional: optional\n });\n}\nfunction Qualifier(name) {\n return function (classPrototype, methodOrAttributeName, index) {\n var constructor = typeof classPrototype == \"function\" ? classPrototype : classPrototype.constructor;\n var props;\n if (typeof index === \"number\") {\n // it's a parameter on a method\n var methodName = void 0;\n if (methodOrAttributeName) {\n props = getOrCreateProps(constructor);\n methodName = methodOrAttributeName;\n }\n else {\n props = getOrCreateProps(constructor);\n methodName = \"agConstructor\";\n }\n if (!props.autowireMethods) {\n props.autowireMethods = {};\n }\n if (!props.autowireMethods[methodName]) {\n props.autowireMethods[methodName] = {};\n }\n props.autowireMethods[methodName][index] = name;\n }\n };\n}\nfunction getOrCreateProps(target) {\n if (!target.hasOwnProperty(\"__agBeanMetaData\")) {\n target.__agBeanMetaData = {};\n }\n return target.__agBeanMetaData;\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar EventService = /** @class */ (function () {\n function EventService() {\n this.allSyncListeners = new Map();\n this.allAsyncListeners = new Map();\n this.globalSyncListeners = new Set();\n this.globalAsyncListeners = new Set();\n this.asyncFunctionsQueue = [];\n this.scheduled = false;\n // using an object performs better than a Set for the number of different events we have\n this.firedEvents = {};\n }\n // because this class is used both inside the context and outside the context, we do not\n // use autowired attributes, as that would be confusing, as sometimes the attributes\n // would be wired, and sometimes not.\n //\n // the global event servers used by AG Grid is autowired by the context once, and this\n // setBeans method gets called once.\n //\n // the times when this class is used outside of the context (eg RowNode has an instance of this\n // class) then it is not a bean, and this setBeans method is not called.\n EventService.prototype.setBeans = function (loggerFactory, gridOptionsWrapper, frameworkOverrides, globalEventListener) {\n if (globalEventListener === void 0) { globalEventListener = null; }\n this.frameworkOverrides = frameworkOverrides;\n if (globalEventListener) {\n var async = gridOptionsWrapper.useAsyncEvents();\n this.addGlobalListener(globalEventListener, async);\n }\n };\n EventService.prototype.getListeners = function (eventType, async, autoCreateListenerCollection) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n var listeners = listenerMap.get(eventType);\n // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance\n // getListeners() is also called during event dispatch even though no listeners are added. This measure protects\n // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after\n // the RowComp is destroyed, see noRegisteredListenersExist() below.\n if (!listeners && autoCreateListenerCollection) {\n listeners = new Set();\n listenerMap.set(eventType, listeners);\n }\n return listeners;\n };\n EventService.prototype.noRegisteredListenersExist = function () {\n return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&\n this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;\n };\n EventService.prototype.addEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n this.getListeners(eventType, async, true).add(listener);\n };\n EventService.prototype.removeEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n var listeners = this.getListeners(eventType, async, false);\n if (!listeners) {\n return;\n }\n listeners.delete(listener);\n if (listeners.size === 0) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n listenerMap.delete(eventType);\n }\n };\n EventService.prototype.addGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);\n };\n EventService.prototype.removeGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);\n };\n EventService.prototype.dispatchEvent = function (event) {\n this.dispatchToListeners(event, true);\n this.dispatchToListeners(event, false);\n this.firedEvents[event.type] = true;\n };\n EventService.prototype.dispatchEventOnce = function (event) {\n if (!this.firedEvents[event.type]) {\n this.dispatchEvent(event);\n }\n };\n EventService.prototype.dispatchToListeners = function (event, async) {\n var _this = this;\n var eventType = event.type;\n var processEventListeners = function (listeners) { return listeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return listener(event); });\n }\n else {\n listener(event);\n }\n }); };\n var listeners = this.getListeners(eventType, async, false);\n if (listeners) {\n processEventListeners(listeners);\n }\n var globalListeners = async ? this.globalAsyncListeners : this.globalSyncListeners;\n globalListeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true); });\n }\n else {\n _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true);\n }\n });\n };\n // this gets called inside the grid's thread, for each event that it\n // wants to set async. the grid then batches the events into one setTimeout()\n // because setTimeout() is an expensive operation. ideally we would have\n // each event in it's own setTimeout(), but we batch for performance.\n EventService.prototype.dispatchAsync = function (func) {\n // add to the queue for executing later in the next VM turn\n this.asyncFunctionsQueue.push(func);\n // check if timeout is already scheduled. the first time the grid calls\n // this within it's thread turn, this should be false, so it will schedule\n // the 'flush queue' method the first time it comes here. then the flag is\n // set to 'true' so it will know it's already scheduled for subsequent calls.\n if (!this.scheduled) {\n // if not scheduled, schedule one\n window.setTimeout(this.flushAsyncQueue.bind(this), 0);\n // mark that it is scheduled\n this.scheduled = true;\n }\n };\n // this happens in the next VM turn only, and empties the queue of events\n EventService.prototype.flushAsyncQueue = function () {\n this.scheduled = false;\n // we take a copy, because the event listener could be using\n // the grid, which would cause more events, which would be potentially\n // added to the queue, so safe to take a copy, the new events will\n // get executed in a later VM turn rather than risk updating the\n // queue as we are flushing it.\n var queueCopy = this.asyncFunctionsQueue.slice();\n this.asyncFunctionsQueue = [];\n // execute the queue\n queueCopy.forEach(function (func) { return func(); });\n };\n __decorate([\n __param(0, Qualifier('loggerFactory')),\n __param(1, Qualifier('gridOptionsWrapper')),\n __param(2, Qualifier('frameworkOverrides')),\n __param(3, Qualifier('globalEventListener'))\n ], EventService.prototype, \"setBeans\", null);\n EventService = __decorate([\n Bean('eventService')\n ], EventService);\n return EventService;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar Constants = /** @class */ (function () {\n function Constants() {\n }\n Constants.ROW_BUFFER_SIZE = 10;\n Constants.LAYOUT_INTERVAL = 500;\n Constants.BATCH_WAIT_MILLIS = 50;\n Constants.EXPORT_TYPE_DRAG_COPY = 'dragCopy';\n Constants.EXPORT_TYPE_CLIPBOARD = 'clipboard';\n Constants.EXPORT_TYPE_EXCEL = 'excel';\n Constants.EXPORT_TYPE_CSV = 'csv';\n Constants.ROW_MODEL_TYPE_INFINITE = 'infinite';\n Constants.ROW_MODEL_TYPE_VIEWPORT = 'viewport';\n Constants.ROW_MODEL_TYPE_CLIENT_SIDE = 'clientSide';\n Constants.ROW_MODEL_TYPE_SERVER_SIDE = 'serverSide';\n Constants.ALWAYS = 'always';\n Constants.ONLY_WHEN_GROUPING = 'onlyWhenGrouping';\n Constants.PINNED_TOP = 'top';\n Constants.PINNED_BOTTOM = 'bottom';\n Constants.DOM_LAYOUT_NORMAL = 'normal';\n Constants.DOM_LAYOUT_PRINT = 'print';\n Constants.DOM_LAYOUT_AUTO_HEIGHT = 'autoHeight';\n Constants.GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';\n Constants.SOURCE_PASTE = 'paste';\n Constants.PINNED_RIGHT = 'right';\n Constants.PINNED_LEFT = 'left';\n Constants.SORT_ASC = 'asc';\n Constants.SORT_DESC = 'desc';\n Constants.INPUT_SELECTOR = 'input, select, button, textarea';\n Constants.FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea';\n Constants.FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled, .ag-disabled *';\n return Constants;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (ModuleNames) {\n // when using modules, user references this\n ModuleNames[\"CommunityCoreModule\"] = \"@ag-grid-community/core\";\n // when not using modules, user references this\n ModuleNames[\"CommunityAllModules\"] = \"@ag-grid-community/all\";\n // community modules\n ModuleNames[\"InfiniteRowModelModule\"] = \"@ag-grid-community/infinite-row-model\";\n ModuleNames[\"ClientSideRowModelModule\"] = \"@ag-grid-community/client-side-row-model\";\n ModuleNames[\"CsvExportModule\"] = \"@ag-grid-community/csv-export\";\n // enterprise core - users never import on this, but other enterprise modules do\n ModuleNames[\"EnterpriseCoreModule\"] = \"@ag-grid-enterprise/core\";\n // when not using modules, user references this\n ModuleNames[\"EnterpriseAllModules\"] = \"@ag-grid-enterprise/all\";\n // enterprise modules\n ModuleNames[\"RowGroupingModule\"] = \"@ag-grid-enterprise/row-grouping\";\n ModuleNames[\"ColumnToolPanelModule\"] = \"@ag-grid-enterprise/column-tool-panel\";\n ModuleNames[\"FiltersToolPanelModule\"] = \"@ag-grid-enterprise/filter-tool-panel\";\n ModuleNames[\"MenuModule\"] = \"@ag-grid-enterprise/menu\";\n ModuleNames[\"SetFilterModule\"] = \"@ag-grid-enterprise/set-filter\";\n ModuleNames[\"MultiFilterModule\"] = \"@ag-grid-enterprise/multi-filter\";\n ModuleNames[\"StatusBarModule\"] = \"@ag-grid-enterprise/status-bar\";\n ModuleNames[\"SideBarModule\"] = \"@ag-grid-enterprise/side-bar\";\n ModuleNames[\"RangeSelectionModule\"] = \"@ag-grid-enterprise/range-selection\";\n ModuleNames[\"MasterDetailModule\"] = \"@ag-grid-enterprise/master-detail\";\n ModuleNames[\"RichSelectModule\"] = \"@ag-grid-enterprise/rich-select\";\n ModuleNames[\"GridChartsModule\"] = \"@ag-grid-enterprise/charts\";\n ModuleNames[\"ViewportRowModelModule\"] = \"@ag-grid-enterprise/viewport-row-model\";\n ModuleNames[\"ServerSideRowModelModule\"] = \"@ag-grid-enterprise/server-side-row-model\";\n ModuleNames[\"ExcelExportModule\"] = \"@ag-grid-enterprise/excel-export\";\n ModuleNames[\"ClipboardModule\"] = \"@ag-grid-enterprise/clipboard\";\n ModuleNames[\"SparklinesModule\"] = \"@ag-grid-enterprise/sparklines\";\n // framework wrappers currently don't provide beans, comps etc, so no need to be modules,\n // however i argue they should be as in theory they 'could' provide beans etc\n ModuleNames[\"AngularModule\"] = \"@ag-grid-community/angular\";\n ModuleNames[\"ReactModule\"] = \"@ag-grid-community/react\";\n ModuleNames[\"VueModule\"] = \"@ag-grid-community/vue\";\n ModuleNames[\"PolymerModule\"] = \"@ag-grid-community/polymer\";\n // and then this, which is definitely not a grid module, as it should not have any dependency\n // on the grid (ie shouldn't even reference the Module interface)\n // ChartsModule = \"@ag-grid-community/charts-core\",\n})(exports.ModuleNames || (exports.ModuleNames = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ModuleRegistry = /** @class */ (function () {\n function ModuleRegistry() {\n }\n ModuleRegistry.register = function (module, moduleBased) {\n if (moduleBased === void 0) { moduleBased = true; }\n ModuleRegistry.modulesMap[module.moduleName] = module;\n if (ModuleRegistry.moduleBased === undefined) {\n ModuleRegistry.moduleBased = moduleBased;\n }\n else {\n if (ModuleRegistry.moduleBased !== moduleBased) {\n doOnce(function () {\n console.warn(\"AG Grid: You are mixing modules (i.e. @ag-grid-community/core) and packages (ag-grid-community) - you can only use one or the other of these mechanisms.\");\n console.warn('Please see https://www.ag-grid.com/javascript-grid/packages-modules/ for more information.');\n }, 'ModulePackageCheck');\n }\n }\n };\n // noinspection JSUnusedGlobalSymbols\n ModuleRegistry.registerModules = function (modules, moduleBased) {\n if (moduleBased === void 0) { moduleBased = true; }\n if (!modules) {\n return;\n }\n modules.forEach(function (module) { return ModuleRegistry.register(module, moduleBased); });\n };\n ModuleRegistry.assertRegistered = function (moduleName, reason) {\n if (this.isRegistered(moduleName)) {\n return true;\n }\n var warningKey = reason + moduleName;\n var warningMessage;\n if (ModuleRegistry.moduleBased) {\n warningMessage = \"AG Grid: unable to use \" + reason + \" as module \" + moduleName + \" is not present. Please see: https://www.ag-grid.com/javascript-grid/modules/\";\n }\n else {\n warningMessage = \"AG Grid: unable to use \" + reason + \" as package 'ag-grid-enterprise' is not present. Please see: https://www.ag-grid.com/javascript-grid/packages/\";\n }\n doOnce(function () {\n console.warn(warningMessage);\n }, warningKey);\n return false;\n };\n ModuleRegistry.isRegistered = function (moduleName) {\n return !!ModuleRegistry.modulesMap[moduleName];\n };\n ModuleRegistry.getRegisteredModules = function () {\n return values(ModuleRegistry.modulesMap);\n };\n ModuleRegistry.isPackageBased = function () {\n return !ModuleRegistry.moduleBased;\n };\n // having in a map a) removes duplicates and b) allows fast lookup\n ModuleRegistry.modulesMap = {};\n return ModuleRegistry;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence = 0;\n// Wrapper around a user provide column definition. The grid treats the column definition as ready only.\n// This class contains all the runtime information about a column, plus some logic (the definition has no logic).\n// This class implements both interfaces ColumnGroupChild and ProvidedColumnGroupChild as the class can\n// appear as a child of either the original tree or the displayed tree. However the relevant group classes\n// for each type only implements one, as each group can only appear in it's associated tree (eg ProvidedColumnGroup\n// can only appear in OriginalColumn tree).\nvar Column = /** @class */ (function () {\n function Column(colDef, userProvidedColDef, colId, primary) {\n // used by React (and possibly other frameworks) as key for rendering\n this.instanceId = instanceIdSequence++;\n this.moving = false;\n this.menuVisible = false;\n this.filterActive = false;\n this.eventService = new EventService();\n this.rowGroupActive = false;\n this.pivotActive = false;\n this.aggregationActive = false;\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.colId = colId;\n this.primary = primary;\n this.setState(colDef);\n }\n Column.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n Column.prototype.setState = function (colDef) {\n // sort\n if (colDef.sort !== undefined) {\n if (colDef.sort === Constants.SORT_ASC || colDef.sort === Constants.SORT_DESC) {\n this.sort = colDef.sort;\n }\n }\n else {\n if (colDef.initialSort === Constants.SORT_ASC || colDef.initialSort === Constants.SORT_DESC) {\n this.sort = colDef.initialSort;\n }\n }\n // sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n var initialSortIndex = attrToNumber(colDef.initialSortIndex);\n if (sortIndex !== undefined) {\n if (sortIndex !== null) {\n this.sortIndex = sortIndex;\n }\n }\n else {\n if (initialSortIndex !== null) {\n this.sortIndex = initialSortIndex;\n }\n }\n // hide\n var hide = attrToBoolean(colDef.hide);\n var initialHide = attrToBoolean(colDef.initialHide);\n if (hide !== undefined) {\n this.visible = !hide;\n }\n else {\n this.visible = !initialHide;\n }\n // pinned\n if (colDef.pinned !== undefined) {\n this.setPinned(colDef.pinned);\n }\n else {\n this.setPinned(colDef.initialPinned);\n }\n // flex\n var flex = attrToNumber(colDef.flex);\n var initialFlex = attrToNumber(colDef.initialFlex);\n if (flex !== undefined) {\n this.flex = flex;\n }\n else if (initialFlex !== undefined) {\n this.flex = initialFlex;\n }\n };\n // gets called when user provides an alternative colDef, eg\n Column.prototype.setColDef = function (colDef, userProvidedColDef) {\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.initMinAndMaxWidths();\n this.initDotNotation();\n };\n /**\n * Returns the column definition provided by the application.\n * This may not be correct, as items can be superseded by default column options.\n * However it's useful for comparison, eg to know which application column definition matches that column.\n */\n Column.prototype.getUserProvidedColDef = function () {\n return this.userProvidedColDef;\n };\n Column.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n /** Returns the parent column group, if column grouping is active. */\n Column.prototype.getParent = function () {\n return this.parent;\n };\n Column.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n Column.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n // this is done after constructor as it uses gridOptionsWrapper\n Column.prototype.initialise = function () {\n this.initMinAndMaxWidths();\n this.resetActualWidth('gridInitializing');\n this.initDotNotation();\n this.validate();\n };\n Column.prototype.initDotNotation = function () {\n var suppressDotNotation = this.gridOptionsWrapper.isSuppressFieldDotNotation();\n this.fieldContainsDots = exists(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;\n this.tooltipFieldContainsDots = exists(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;\n };\n Column.prototype.initMinAndMaxWidths = function () {\n var colDef = this.colDef;\n this.minWidth = this.columnUtils.calculateColMinWidth(colDef);\n this.maxWidth = this.columnUtils.calculateColMaxWidth(colDef);\n };\n Column.prototype.resetActualWidth = function (source) {\n if (source === void 0) { source = 'api'; }\n var initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);\n this.setActualWidth(initialWidth, source, true);\n };\n Column.prototype.isEmptyGroup = function () {\n return false;\n };\n Column.prototype.isRowGroupDisplayed = function (colId) {\n if (missing(this.colDef) || missing(this.colDef.showRowGroup)) {\n return false;\n }\n var showingAllGroups = this.colDef.showRowGroup === true;\n var showingThisGroup = this.colDef.showRowGroup === colId;\n return showingAllGroups || showingThisGroup;\n };\n /** Returns `true` if column is a primary column, `false` if secondary. Secondary columns are used for pivoting. */\n Column.prototype.isPrimary = function () {\n return this.primary;\n };\n /** Returns `true` if column filtering is allowed. */\n Column.prototype.isFilterAllowed = function () {\n // filter defined means it's a string, class or true.\n // if its false, null or undefined then it's false.\n var filterDefined = !!this.colDef.filter || !!this.colDef.filterFramework;\n return filterDefined;\n };\n Column.prototype.isFieldContainsDots = function () {\n return this.fieldContainsDots;\n };\n Column.prototype.isTooltipFieldContainsDots = function () {\n return this.tooltipFieldContainsDots;\n };\n Column.prototype.validate = function () {\n var colDefAny = this.colDef;\n function warnOnce(msg, key, obj) {\n doOnce(function () {\n if (obj) {\n console.warn(msg, obj);\n }\n else {\n doOnce(function () { return console.warn(msg); }, key);\n }\n }, key);\n }\n var usingCSRM = this.gridOptionsWrapper.isRowModelDefault();\n if (usingCSRM && !ModuleRegistry.isRegistered(exports.ModuleNames.RowGroupingModule)) {\n var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];\n rowGroupingItems.forEach(function (item) {\n if (exists(colDefAny[item])) {\n if (ModuleRegistry.isPackageBased()) {\n warnOnce(\"AG Grid: \" + item + \" is only valid in ag-grid-enterprise, your column definition should not have \" + item, 'ColumnRowGroupingMissing' + item);\n }\n else {\n warnOnce(\"AG Grid: \" + item + \" is only valid with AG Grid Enterprise Module \" + exports.ModuleNames.RowGroupingModule + \" - your column definition should not have \" + item, 'ColumnRowGroupingMissing' + item);\n }\n }\n });\n }\n if (!ModuleRegistry.isRegistered(exports.ModuleNames.RichSelectModule)) {\n if (this.colDef.cellEditor === 'agRichSelect') {\n if (ModuleRegistry.isPackageBased()) {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with ag-grid-enterprise\", 'ColumnRichSelectMissing');\n }\n else {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with AG Grid Enterprise Module \" + exports.ModuleNames.RichSelectModule, 'ColumnRichSelectMissing');\n }\n }\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];\n itemsNotAllowedWithTreeData.forEach(function (item) {\n if (exists(colDefAny[item])) {\n warnOnce(\"AG Grid: \" + item + \" is not possible when doing tree data, your column definition should not have \" + item, 'TreeDataCannotRowGroup');\n }\n });\n }\n if (exists(this.colDef.width) && typeof this.colDef.width !== 'number') {\n warnOnce('AG Grid: colDef.width should be a number, not ' + typeof this.colDef.width, 'ColumnCheck_asdfawef');\n }\n if (colDefAny.pinnedRowCellRenderer) {\n warnOnce('AG Grid: pinnedRowCellRenderer no longer exists, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue. See https://www.ag-grid.com/javascript-grid/cell-rendering/#many-renderers-one-column', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n if (colDefAny.pinnedRowCellRendererParams) {\n warnOnce('AG Grid: pinnedRowCellRenderer no longer exists, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue. See https://www.ag-grid.com/javascript-grid/cell-rendering/#many-renderers-one-column', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n if (colDefAny.pinnedRowCellRendererFramework) {\n warnOnce('AG Grid: pinnedRowCellRenderer no longer exists, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue. See https://www.ag-grid.com/javascript-grid/cell-rendering/#many-renderers-one-column', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n if (colDefAny.pinnedRowValueGetter) {\n warnOnce('AG Grid: pinnedRowCellRenderer is deprecated, use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned. This was an unfortunate (but necessary) change we had to do to allow future plans we have of re-skinng the data grid in frameworks such as React, Angular and Vue.', 'colDef.pinnedRowCellRenderer-deprecated');\n }\n };\n /** Add an event listener to the column. */\n Column.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n /** Remove event listener from the column. */\n Column.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n Column.prototype.createColumnFunctionCallbackParams = function (rowNode) {\n return {\n node: rowNode,\n data: rowNode.data,\n column: this,\n colDef: this.colDef,\n context: this.gridOptionsWrapper.getContext(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n };\n Column.prototype.isSuppressNavigable = function (rowNode) {\n // if boolean set, then just use it\n if (typeof this.colDef.suppressNavigable === 'boolean') {\n return this.colDef.suppressNavigable;\n }\n // if function, then call the function to find out\n if (typeof this.colDef.suppressNavigable === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var userFunc = this.colDef.suppressNavigable;\n return userFunc(params);\n }\n return false;\n };\n Column.prototype.isCellEditable = function (rowNode) {\n // only allow editing of groups if the user has this option enabled\n if (rowNode.group && !this.gridOptionsWrapper.isEnableGroupEdit()) {\n return false;\n }\n return this.isColumnFunc(rowNode, this.colDef.editable);\n };\n Column.prototype.isSuppressFillHandle = function () {\n return !!attrToBoolean(this.colDef.suppressFillHandle);\n };\n Column.prototype.isAutoHeight = function () {\n return !!attrToBoolean(this.colDef.autoHeight);\n };\n Column.prototype.isRowDrag = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.rowDrag);\n };\n Column.prototype.isDndSource = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.dndSource);\n };\n Column.prototype.isCellCheckboxSelection = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);\n };\n Column.prototype.isSuppressPaste = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);\n };\n Column.prototype.isResizable = function () {\n return !!attrToBoolean(this.colDef.resizable);\n };\n Column.prototype.isColumnFunc = function (rowNode, value) {\n // if boolean set, then just use it\n if (typeof value === 'boolean') {\n return value;\n }\n // if function, then call the function to find out\n if (typeof value === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var editableFunc = value;\n return editableFunc(params);\n }\n return false;\n };\n Column.prototype.setMoving = function (moving, source) {\n if (source === void 0) { source = \"api\"; }\n this.moving = moving;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MOVING_CHANGED, source));\n };\n Column.prototype.createColumnEvent = function (type, source) {\n return {\n api: this.gridApi,\n columnApi: this.columnApi,\n type: type,\n column: this,\n columns: [this],\n source: source\n };\n };\n Column.prototype.isMoving = function () {\n return this.moving;\n };\n /** If sorting is active, returns the sort direction e.g. `'asc'` or `'desc'`. */\n Column.prototype.getSort = function () {\n return this.sort;\n };\n Column.prototype.setSort = function (sort, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.sort !== sort) {\n this.sort = sort;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_SORT_CHANGED, source));\n }\n };\n Column.prototype.setMenuVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.menuVisible !== visible) {\n this.menuVisible = visible;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MENU_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isMenuVisible = function () {\n return this.menuVisible;\n };\n Column.prototype.isSortAscending = function () {\n return this.sort === Constants.SORT_ASC;\n };\n Column.prototype.isSortDescending = function () {\n return this.sort === Constants.SORT_DESC;\n };\n Column.prototype.isSortNone = function () {\n return missing(this.sort);\n };\n Column.prototype.isSorting = function () {\n return exists(this.sort);\n };\n Column.prototype.getSortIndex = function () {\n return this.sortIndex;\n };\n Column.prototype.setSortIndex = function (sortOrder) {\n this.sortIndex = sortOrder;\n };\n Column.prototype.setAggFunc = function (aggFunc) {\n this.aggFunc = aggFunc;\n };\n /** If aggregation is set for the column, returns the aggregation function. */\n Column.prototype.getAggFunc = function () {\n return this.aggFunc;\n };\n Column.prototype.getLeft = function () {\n return this.left;\n };\n Column.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n Column.prototype.getRight = function () {\n return this.left + this.actualWidth;\n };\n Column.prototype.setLeft = function (left, source) {\n if (source === void 0) { source = \"api\"; }\n this.oldLeft = this.left;\n if (this.left !== left) {\n this.left = left;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LEFT_CHANGED, source));\n }\n };\n /** Returns `true` if filter is active on the column. */\n Column.prototype.isFilterActive = function () {\n return this.filterActive;\n };\n // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event\n Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {\n if (source === void 0) { source = \"api\"; }\n if (this.filterActive !== active) {\n this.filterActive = active;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FILTER_ACTIVE_CHANGED, source));\n }\n var filterChangedEvent = this.createColumnEvent(Column.EVENT_FILTER_CHANGED, source);\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n this.eventService.dispatchEvent(filterChangedEvent);\n };\n Column.prototype.setPinned = function (pinned) {\n if (pinned === true || pinned === Constants.PINNED_LEFT) {\n this.pinned = Constants.PINNED_LEFT;\n }\n else if (pinned === Constants.PINNED_RIGHT) {\n this.pinned = Constants.PINNED_RIGHT;\n }\n else {\n this.pinned = null;\n }\n };\n Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LAST_LEFT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.isFirstRightPinned = function () {\n return this.firstRightPinned;\n };\n Column.prototype.isLastLeftPinned = function () {\n return this.lastLeftPinned;\n };\n Column.prototype.isPinned = function () {\n return this.pinned === Constants.PINNED_LEFT || this.pinned === Constants.PINNED_RIGHT;\n };\n Column.prototype.isPinnedLeft = function () {\n return this.pinned === Constants.PINNED_LEFT;\n };\n Column.prototype.isPinnedRight = function () {\n return this.pinned === Constants.PINNED_RIGHT;\n };\n Column.prototype.getPinned = function () {\n return this.pinned;\n };\n Column.prototype.setVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n var newValue = visible === true;\n if (this.visible !== newValue) {\n this.visible = newValue;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isVisible = function () {\n return this.visible;\n };\n /** Returns the column definition for this column.\n * The column definition will be the result of merging the application provided column definition with any provided defaults\n * (e.g. `defaultColDef` grid option, or column types.\n *\n * Equivalent: `getDefinition` */\n Column.prototype.getColDef = function () {\n return this.colDef;\n };\n Column.prototype.getColumnGroupShow = function () {\n return this.colDef.columnGroupShow;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getId`, `getUniqueId` */\n Column.prototype.getColId = function () {\n return this.colId;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getUniqueId` */\n Column.prototype.getId = function () {\n return this.getColId();\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getId` */\n Column.prototype.getUniqueId = function () {\n return this.getId();\n };\n Column.prototype.getDefinition = function () {\n return this.colDef;\n };\n /** Returns the current width of the column. If the column is resized, the actual width is the new size. */\n Column.prototype.getActualWidth = function () {\n return this.actualWidth;\n };\n Column.prototype.createBaseColDefParams = function (rowNode) {\n var params = {\n node: rowNode,\n data: rowNode.data,\n colDef: this.colDef,\n column: this,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n return params;\n };\n Column.prototype.getColSpan = function (rowNode) {\n if (missing(this.colDef.colSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var colSpan = this.colDef.colSpan(params);\n // colSpan must be number equal to or greater than 1\n return Math.max(colSpan, 1);\n };\n Column.prototype.getRowSpan = function (rowNode) {\n if (missing(this.colDef.rowSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var rowSpan = this.colDef.rowSpan(params);\n // rowSpan must be number equal to or greater than 1\n return Math.max(rowSpan, 1);\n };\n Column.prototype.setActualWidth = function (actualWidth, source, silent) {\n if (source === void 0) { source = \"api\"; }\n if (silent === void 0) { silent = false; }\n if (this.minWidth != null) {\n actualWidth = Math.max(actualWidth, this.minWidth);\n }\n if (this.maxWidth != null) {\n actualWidth = Math.min(actualWidth, this.maxWidth);\n }\n if (this.actualWidth !== actualWidth) {\n // disable flex for this column if it was manually resized.\n this.actualWidth = actualWidth;\n if (this.flex && source !== 'flex' && source !== 'gridInitializing') {\n this.flex = null;\n }\n if (!silent) {\n this.fireColumnWidthChangedEvent(source);\n }\n }\n };\n Column.prototype.fireColumnWidthChangedEvent = function (source) {\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_WIDTH_CHANGED, source));\n };\n Column.prototype.isGreaterThanMax = function (width) {\n if (this.maxWidth != null) {\n return width > this.maxWidth;\n }\n return false;\n };\n Column.prototype.getMinWidth = function () {\n return this.minWidth;\n };\n Column.prototype.getMaxWidth = function () {\n return this.maxWidth;\n };\n Column.prototype.getFlex = function () {\n return this.flex || 0;\n };\n // this method should only be used by the columnModel to\n // change flex when required by the setColumnState method.\n Column.prototype.setFlex = function (flex) {\n if (this.flex !== flex) {\n this.flex = flex;\n }\n };\n Column.prototype.setMinimum = function (source) {\n if (source === void 0) { source = \"api\"; }\n if (exists(this.minWidth)) {\n this.setActualWidth(this.minWidth, source);\n }\n };\n Column.prototype.setRowGroupActive = function (rowGroup, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.rowGroupActive !== rowGroup) {\n this.rowGroupActive = rowGroup;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_ROW_GROUP_CHANGED, source));\n }\n };\n /** Returns `true` if row group is currently active for this column. */\n Column.prototype.isRowGroupActive = function () {\n return this.rowGroupActive;\n };\n Column.prototype.setPivotActive = function (pivot, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.pivotActive !== pivot) {\n this.pivotActive = pivot;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_PIVOT_CHANGED, source));\n }\n };\n /** Returns `true` if pivot is currently active for this column. */\n Column.prototype.isPivotActive = function () {\n return this.pivotActive;\n };\n Column.prototype.isAnyFunctionActive = function () {\n return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();\n };\n Column.prototype.isAnyFunctionAllowed = function () {\n return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();\n };\n Column.prototype.setValueActive = function (value, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.aggregationActive !== value) {\n this.aggregationActive = value;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VALUE_CHANGED, source));\n }\n };\n /** Returns `true` if value (aggregation) is currently active for this column. */\n Column.prototype.isValueActive = function () {\n return this.aggregationActive;\n };\n Column.prototype.isAllowPivot = function () {\n return this.colDef.enablePivot === true;\n };\n Column.prototype.isAllowValue = function () {\n return this.colDef.enableValue === true;\n };\n Column.prototype.isAllowRowGroup = function () {\n return this.colDef.enableRowGroup === true;\n };\n Column.prototype.getMenuTabs = function (defaultValues) {\n var menuTabs = this.getColDef().menuTabs;\n if (menuTabs == null) {\n menuTabs = defaultValues;\n }\n return menuTabs;\n };\n // this used to be needed, as previous version of ag-grid had lockPosition as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPosition = function () {\n console.warn('AG Grid: since v21, col.isLockPosition() should not be used, please use col.getColDef().lockPosition instead.');\n return this.colDef ? !!this.colDef.lockPosition : false;\n };\n // this used to be needed, as previous version of ag-grid had lockVisible as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockVisible = function () {\n console.warn('AG Grid: since v21, col.isLockVisible() should not be used, please use col.getColDef().lockVisible instead.');\n return this.colDef ? !!this.colDef.lockVisible : false;\n };\n // this used to be needed, as previous version of ag-grid had lockPinned as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPinned = function () {\n console.warn('AG Grid: since v21, col.isLockPinned() should not be used, please use col.getColDef().lockPinned instead.');\n return this.colDef ? !!this.colDef.lockPinned : false;\n };\n // + renderedHeaderCell - for making header cell transparent when moving\n Column.EVENT_MOVING_CHANGED = 'movingChanged';\n // + renderedCell - changing left position\n Column.EVENT_LEFT_CHANGED = 'leftChanged';\n // + renderedCell - changing width\n Column.EVENT_WIDTH_CHANGED = 'widthChanged';\n // + renderedCell - for changing pinned classes\n Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';\n Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';\n // + renderedColumn - for changing visibility icon\n Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';\n // + every time the filter changes, used in the floating filters\n Column.EVENT_FILTER_CHANGED = 'filterChanged';\n // + renderedHeaderCell - marks the header with filter icon\n Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';\n // + renderedHeaderCell - marks the header with sort icon\n Column.EVENT_SORT_CHANGED = 'sortChanged';\n Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';\n // + toolpanel, for gui updates\n Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n // + toolpanel, for gui updates\n Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';\n // + toolpanel, for gui updates\n Column.EVENT_VALUE_CHANGED = 'columnValueChanged';\n __decorate$1([\n Autowired('gridOptionsWrapper')\n ], Column.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1([\n Autowired('columnUtils')\n ], Column.prototype, \"columnUtils\", void 0);\n __decorate$1([\n Autowired('columnApi')\n ], Column.prototype, \"columnApi\", void 0);\n __decorate$1([\n Autowired('gridApi')\n ], Column.prototype, \"gridApi\", void 0);\n __decorate$1([\n Autowired('context')\n ], Column.prototype, \"context\", void 0);\n __decorate$1([\n PostConstruct\n ], Column.prototype, \"initialise\", null);\n return Column;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction firstExistingValue() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (exists(value)) {\n return value;\n }\n }\n return null;\n}\nfunction existsAndNotEmpty(value) {\n return value != null && value.length > 0;\n}\nfunction last(arr) {\n if (!arr || !arr.length) {\n return;\n }\n return arr[arr.length - 1];\n}\nfunction areEqual(a, b, comparator) {\n if (a == null && b == null) {\n return true;\n }\n return a != null &&\n b != null &&\n a.length === b.length &&\n a.every(function (value, index) { return comparator ? comparator(value, b[index]) : b[index] === value; });\n}\n/** @deprecated */\nfunction compareArrays(array1, array2) {\n return areEqual(array1, array2);\n}\n/** @deprecated */\nfunction shallowCompare(arr1, arr2) {\n return areEqual(arr1, arr2);\n}\nfunction sortNumerically(array) {\n return array.sort(function (a, b) { return a - b; });\n}\nfunction removeRepeatsFromArray(array, object) {\n if (!array) {\n return;\n }\n for (var index = array.length - 2; index >= 0; index--) {\n var thisOneMatches = array[index] === object;\n var nextOneMatches = array[index + 1] === object;\n if (thisOneMatches && nextOneMatches) {\n array.splice(index + 1, 1);\n }\n }\n}\nfunction removeFromArray(array, object) {\n var index = array.indexOf(object);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction removeAllFromArray(array, toRemove) {\n toRemove.forEach(function (item) { return removeFromArray(array, item); });\n}\nfunction insertIntoArray(array, object, toIndex) {\n array.splice(toIndex, 0, object);\n}\nfunction insertArrayIntoArray(dest, src, toIndex) {\n if (dest == null || src == null) {\n return;\n }\n // put items in backwards, otherwise inserted items end up in reverse order\n for (var i = src.length - 1; i >= 0; i--) {\n var item = src[i];\n insertIntoArray(dest, item, toIndex);\n }\n}\nfunction moveInArray(array, objectsToMove, toIndex) {\n // first take out items from the array\n removeAllFromArray(array, objectsToMove);\n // now add the objects, in same order as provided to us, that means we start at the end\n // as the objects will be pushed to the right as they are inserted\n objectsToMove.slice().reverse().forEach(function (obj) { return insertIntoArray(array, obj, toIndex); });\n}\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\nfunction flatten(arrayOfArrays) {\n return [].concat.apply([], arrayOfArrays);\n}\nfunction pushAll(target, source) {\n if (source == null || target == null) {\n return;\n }\n source.forEach(function (value) { return target.push(value); });\n}\nfunction toStrings(array) {\n return array.map(toStringOrNull);\n}\nfunction forEachReverse(list, action) {\n if (list == null) {\n return;\n }\n for (var i = list.length - 1; i >= 0; i--) {\n action(list[i], i);\n }\n}\n\nvar ArrayUtils = /*#__PURE__*/Object.freeze({\n firstExistingValue: firstExistingValue,\n existsAndNotEmpty: existsAndNotEmpty,\n last: last,\n areEqual: areEqual,\n compareArrays: compareArrays,\n shallowCompare: shallowCompare,\n sortNumerically: sortNumerically,\n removeRepeatsFromArray: removeRepeatsFromArray,\n removeFromArray: removeFromArray,\n removeAllFromArray: removeAllFromArray,\n insertIntoArray: insertIntoArray,\n insertArrayIntoArray: insertArrayIntoArray,\n moveInArray: moveInArray,\n includes: includes,\n flatten: flatten,\n pushAll: pushAll,\n toStrings: toStrings,\n forEachReverse: forEachReverse\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnGroup = /** @class */ (function () {\n function ColumnGroup(providedColumnGroup, groupId, instanceId, pinned) {\n // depends on the open/closed state of the group, only displaying columns are stored here\n this.displayedChildren = [];\n this.localEventService = new EventService();\n this.groupId = groupId;\n this.instanceId = instanceId;\n this.providedColumnGroup = providedColumnGroup;\n this.pinned = pinned;\n }\n // this is static, a it is used outside of this class\n ColumnGroup.createUniqueId = function (groupId, instanceId) {\n return groupId + '_' + instanceId;\n };\n // as the user is adding and removing columns, the groups are recalculated.\n // this reset clears out all children, ready for children to be added again\n ColumnGroup.prototype.reset = function () {\n this.parent = null;\n this.children = null;\n this.displayedChildren = null;\n };\n ColumnGroup.prototype.getParent = function () {\n return this.parent;\n };\n ColumnGroup.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n ColumnGroup.prototype.getUniqueId = function () {\n return ColumnGroup.createUniqueId(this.groupId, this.instanceId);\n };\n ColumnGroup.prototype.isEmptyGroup = function () {\n return this.displayedChildren.length === 0;\n };\n ColumnGroup.prototype.isMoving = function () {\n var allLeafColumns = this.getProvidedColumnGroup().getLeafColumns();\n if (!allLeafColumns || allLeafColumns.length === 0) {\n return false;\n }\n return allLeafColumns.every(function (col) { return col.isMoving(); });\n };\n ColumnGroup.prototype.checkLeft = function () {\n // first get all children to setLeft, as it impacts our decision below\n this.displayedChildren.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n child.checkLeft();\n }\n });\n // set our left based on first displayed column\n if (this.displayedChildren.length > 0) {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n var lastChild = last(this.displayedChildren);\n var lastChildLeft = lastChild.getLeft();\n this.setLeft(lastChildLeft);\n }\n else {\n var firstChildLeft = this.displayedChildren[0].getLeft();\n this.setLeft(firstChildLeft);\n }\n }\n else {\n // this should never happen, as if we have no displayed columns, then\n // this groups should not even exist.\n this.setLeft(null);\n }\n };\n ColumnGroup.prototype.getLeft = function () {\n return this.left;\n };\n ColumnGroup.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n ColumnGroup.prototype.setLeft = function (left) {\n this.oldLeft = left;\n if (this.left !== left) {\n this.left = left;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));\n }\n };\n ColumnGroup.prototype.getPinned = function () {\n return this.pinned;\n };\n ColumnGroup.prototype.createAgEvent = function (type) {\n return { type: type };\n };\n ColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ColumnGroup.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {\n var result = false;\n this.children.forEach(function (foundChild) {\n if (wantedChild === foundChild) {\n result = true;\n }\n if (foundChild instanceof ColumnGroup) {\n if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {\n result = true;\n }\n }\n });\n return result;\n };\n ColumnGroup.prototype.getActualWidth = function () {\n var groupActualWidth = 0;\n if (this.displayedChildren) {\n this.displayedChildren.forEach(function (child) {\n groupActualWidth += child.getActualWidth();\n });\n }\n return groupActualWidth;\n };\n ColumnGroup.prototype.isResizable = function () {\n if (!this.displayedChildren) {\n return false;\n }\n // if at least one child is resizable, then the group is resizable\n var result = false;\n this.displayedChildren.forEach(function (child) {\n if (child.isResizable()) {\n result = true;\n }\n });\n return result;\n };\n ColumnGroup.prototype.getMinWidth = function () {\n var result = 0;\n this.displayedChildren.forEach(function (groupChild) {\n result += groupChild.getMinWidth() || 0;\n });\n return result;\n };\n ColumnGroup.prototype.addChild = function (child) {\n if (!this.children) {\n this.children = [];\n }\n this.children.push(child);\n };\n ColumnGroup.prototype.getDisplayedChildren = function () {\n return this.displayedChildren;\n };\n ColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ColumnGroup.prototype.getDisplayedLeafColumns = function () {\n var result = [];\n this.addDisplayedLeafColumns(result);\n return result;\n };\n // why two methods here doing the same thing?\n ColumnGroup.prototype.getDefinition = function () {\n return this.providedColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.getColGroupDef = function () {\n return this.providedColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.isPadding = function () {\n return this.providedColumnGroup.isPadding();\n };\n ColumnGroup.prototype.isExpandable = function () {\n return this.providedColumnGroup.isExpandable();\n };\n ColumnGroup.prototype.isExpanded = function () {\n return this.providedColumnGroup.isExpanded();\n };\n ColumnGroup.prototype.setExpanded = function (expanded) {\n this.providedColumnGroup.setExpanded(expanded);\n };\n ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {\n this.displayedChildren.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addDisplayedLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ColumnGroup.prototype.getColumnGroupShow = function () {\n return this.providedColumnGroup.getColumnGroupShow();\n };\n ColumnGroup.prototype.getProvidedColumnGroup = function () {\n return this.providedColumnGroup;\n };\n /** @deprecated getOriginalColumnGroup is deprecated, use getOriginalColumnGroup. */\n ColumnGroup.prototype.getOriginalColumnGroup = function () {\n console.warn('AG Grid: columnGroup.getOriginalColumnGroup() is deprecated due to a method rename, use columnGroup.getProvidedColumnGroup() instead');\n return this.getProvidedColumnGroup();\n };\n ColumnGroup.prototype.getPaddingLevel = function () {\n var parent = this.getParent();\n if (!this.isPadding() || !parent || !parent.isPadding()) {\n return 0;\n }\n return 1 + parent.getPaddingLevel();\n };\n ColumnGroup.prototype.calculateDisplayedColumns = function () {\n var _this = this;\n // clear out last time we calculated\n this.displayedChildren = [];\n // find the column group that is controlling expandable. this is relevant when we have padding (empty)\n // groups, where the expandable is actually the first parent that is not a padding group.\n var parentWithExpansion = this;\n while (parentWithExpansion != null && parentWithExpansion.isPadding()) {\n parentWithExpansion = parentWithExpansion.getParent();\n }\n var isExpandable = parentWithExpansion ? parentWithExpansion.providedColumnGroup.isExpandable() : false;\n // it not expandable, everything is visible\n if (!isExpandable) {\n this.displayedChildren = this.children;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n return;\n }\n // Add cols based on columnGroupShow\n // Note - the below also adds padding groups, these are always added because they never have\n // colDef.columnGroupShow set.\n this.children.forEach(function (child) {\n // never add empty groups\n var emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);\n if (emptyGroup) {\n return;\n }\n var headerGroupShow = child.getColumnGroupShow();\n switch (headerGroupShow) {\n case ColumnGroup.HEADER_GROUP_SHOW_OPEN:\n // when set to open, only show col if group is open\n if (parentWithExpansion.providedColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n case ColumnGroup.HEADER_GROUP_SHOW_CLOSED:\n // when set to open, only show col if group is open\n if (!parentWithExpansion.providedColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n default:\n _this.displayedChildren.push(child);\n break;\n }\n });\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n };\n ColumnGroup.HEADER_GROUP_SHOW_OPEN = 'open';\n ColumnGroup.HEADER_GROUP_SHOW_CLOSED = 'closed';\n ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';\n ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';\n __decorate$2([\n Autowired('gridOptionsWrapper')\n ], ColumnGroup.prototype, \"gridOptionsWrapper\", void 0);\n return ColumnGroup;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar ProvidedColumnGroup = /** @class */ (function () {\n function ProvidedColumnGroup(colGroupDef, groupId, padding, level) {\n this.localEventService = new EventService();\n this.expandable = false;\n this.colGroupDef = colGroupDef;\n this.groupId = groupId;\n this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;\n this.padding = padding;\n this.level = level;\n }\n ProvidedColumnGroup.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n ProvidedColumnGroup.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n ProvidedColumnGroup.prototype.getLevel = function () {\n return this.level;\n };\n ProvidedColumnGroup.prototype.isVisible = function () {\n // return true if at least one child is visible\n if (this.children) {\n return this.children.some(function (child) { return child.isVisible(); });\n }\n return false;\n };\n ProvidedColumnGroup.prototype.isPadding = function () {\n return this.padding;\n };\n ProvidedColumnGroup.prototype.setExpanded = function (expanded) {\n this.expanded = expanded === undefined ? false : expanded;\n var event = {\n type: ProvidedColumnGroup.EVENT_EXPANDED_CHANGED\n };\n this.localEventService.dispatchEvent(event);\n };\n ProvidedColumnGroup.prototype.isExpandable = function () {\n return this.expandable;\n };\n ProvidedColumnGroup.prototype.isExpanded = function () {\n return this.expanded;\n };\n ProvidedColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ProvidedColumnGroup.prototype.getId = function () {\n return this.getGroupId();\n };\n ProvidedColumnGroup.prototype.setChildren = function (children) {\n this.children = children;\n };\n ProvidedColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ProvidedColumnGroup.prototype.getColGroupDef = function () {\n return this.colGroupDef;\n };\n ProvidedColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ProvidedColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n if (!this.children) {\n return;\n }\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ProvidedColumnGroup.prototype.getColumnGroupShow = function () {\n var colGroupDef = this.colGroupDef;\n if (!colGroupDef) {\n return;\n }\n return colGroupDef.columnGroupShow;\n };\n // need to check that this group has at least one col showing when both expanded and contracted.\n // if not, then we don't allow expanding and contracting on this group\n ProvidedColumnGroup.prototype.setupExpandable = function () {\n var _this = this;\n this.setExpandable();\n // note - we should be removing this event listener\n this.getLeafColumns().forEach(function (col) { return col.addEventListener(Column.EVENT_VISIBLE_CHANGED, _this.onColumnVisibilityChanged.bind(_this)); });\n };\n ProvidedColumnGroup.prototype.setExpandable = function () {\n if (this.isPadding()) {\n return;\n }\n // want to make sure the group doesn't disappear when it's open\n var atLeastOneShowingWhenOpen = false;\n // want to make sure the group doesn't disappear when it's closed\n var atLeastOneShowingWhenClosed = false;\n // want to make sure the group has something to show / hide\n var atLeastOneChangeable = false;\n var children = this.findChildrenRemovingPadding();\n for (var i = 0, j = children.length; i < j; i++) {\n var abstractColumn = children[i];\n if (!abstractColumn.isVisible()) {\n continue;\n }\n // if the abstractColumn is a grid generated group, there will be no colDef\n var headerGroupShow = abstractColumn.getColumnGroupShow();\n if (headerGroupShow === ColumnGroup.HEADER_GROUP_SHOW_OPEN) {\n atLeastOneShowingWhenOpen = true;\n atLeastOneChangeable = true;\n }\n else if (headerGroupShow === ColumnGroup.HEADER_GROUP_SHOW_CLOSED) {\n atLeastOneShowingWhenClosed = true;\n atLeastOneChangeable = true;\n }\n else {\n atLeastOneShowingWhenOpen = true;\n atLeastOneShowingWhenClosed = true;\n }\n }\n var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;\n if (this.expandable !== expandable) {\n this.expandable = expandable;\n var event_1 = {\n type: ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED\n };\n this.localEventService.dispatchEvent(event_1);\n }\n };\n ProvidedColumnGroup.prototype.findChildrenRemovingPadding = function () {\n var res = [];\n var process = function (items) {\n items.forEach(function (item) {\n // if padding, we add this children instead of the padding\n var skipBecausePadding = item instanceof ProvidedColumnGroup && item.isPadding();\n if (skipBecausePadding) {\n process(item.children);\n }\n else {\n res.push(item);\n }\n });\n };\n process(this.children);\n return res;\n };\n ProvidedColumnGroup.prototype.onColumnVisibilityChanged = function () {\n this.setExpandable();\n };\n ProvidedColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ProvidedColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ProvidedColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';\n return ProvidedColumnGroup;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar DefaultColumnTypes = {\n numericColumn: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n },\n rightAligned: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n }\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';\nvar PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];\nvar supports = {};\n/**\n * a user once raised an issue - they said that when you opened a popup (eg context menu)\n * and then clicked on a selection checkbox, the popup wasn't closed. this is because the\n * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the\n * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).\n * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,\n * but we still let the event pass back to the body.\n * @param {Event} event\n */\nfunction stopPropagationForAgGrid(event) {\n event[AG_GRID_STOP_PROPAGATION] = true;\n}\nfunction isStopPropagationForAgGrid(event) {\n return event[AG_GRID_STOP_PROPAGATION] === true;\n}\nvar isEventSupported = (function () {\n var tags = {\n select: 'input',\n change: 'input',\n submit: 'form',\n reset: 'form',\n error: 'img',\n load: 'img',\n abort: 'img'\n };\n var eventChecker = function (eventName) {\n if (typeof supports[eventName] === 'boolean') {\n return supports[eventName];\n }\n var el = document.createElement(tags[eventName] || 'div');\n eventName = 'on' + eventName;\n return supports[eventName] = (eventName in el);\n };\n return eventChecker;\n})();\nfunction getCtrlForEvent(gridOptionsWrapper, event, type) {\n var sourceElement = event.target;\n while (sourceElement) {\n var renderedComp = gridOptionsWrapper.getDomData(sourceElement, type);\n if (renderedComp) {\n return renderedComp;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n}\n/**\n * @deprecated\n * Adds all type of change listeners to an element, intended to be a text field\n * @param {HTMLElement} element\n * @param {EventListener} listener\n */\nfunction addChangeListener(element, listener) {\n element.addEventListener('changed', listener);\n element.addEventListener('paste', listener);\n element.addEventListener('input', listener);\n}\nfunction isElementInEventPath(element, event) {\n if (!event || !element) {\n return false;\n }\n return getEventPath(event).indexOf(element) >= 0;\n}\nfunction createEventPath(event) {\n var res = [];\n var pointer = event.target;\n while (pointer) {\n res.push(pointer);\n pointer = pointer.parentElement;\n }\n return res;\n}\n/**\n * firefox doesn't have event.path set, or any alternative to it, so we hack\n * it in. this is needed as it's to late to work out the path when the item is\n * removed from the dom. used by MouseEventService, where it works out if a click\n * was from the current grid, or a detail grid (master / detail).\n * @param {Event} event\n */\nfunction addAgGridEventPath(event) {\n event.__agGridEventPath = getEventPath(event);\n}\n/**\n * Gets the path for an Event.\n * https://stackoverflow.com/questions/39245488/event-path-undefined-with-firefox-and-vue-js\n * https://developer.mozilla.org/en-US/docs/Web/API/Event\n * @param {Event} event\n * @returns {EventTarget[]}\n */\nfunction getEventPath(event) {\n var eventNoType = event;\n if (eventNoType.path) {\n // Chrome supports path\n return eventNoType.path;\n }\n if (eventNoType.composedPath) {\n // Firefox supports composePath\n return eventNoType.composedPath();\n }\n if (eventNoType.__agGridEventPath) {\n // Firefox supports composePath\n return eventNoType.__agGridEventPath;\n }\n // and finally, if none of the above worked,\n // we create the path ourselves\n return createEventPath(event);\n}\nfunction addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {\n var isPassive = includes(PASSIVE_EVENTS, event);\n var options = isPassive ? { passive: true } : undefined;\n // this check is here for certain scenarios where I believe the user must be destroying\n // the grid somehow but continuing for it to be used\n if (frameworkOverrides && frameworkOverrides.addEventListener) {\n frameworkOverrides.addEventListener(eElement, event, listener, options);\n }\n}\n\nvar EventUtils = /*#__PURE__*/Object.freeze({\n stopPropagationForAgGrid: stopPropagationForAgGrid,\n isStopPropagationForAgGrid: isStopPropagationForAgGrid,\n isEventSupported: isEventSupported,\n getCtrlForEvent: getCtrlForEvent,\n addChangeListener: addChangeListener,\n isElementInEventPath: isElementInEventPath,\n createEventPath: createEventPath,\n addAgGridEventPath: addAgGridEventPath,\n getEventPath: getEventPath,\n addSafePassiveEventListener: addSafePassiveEventListener\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BeanStub = /** @class */ (function () {\n function BeanStub() {\n var _this = this;\n this.destroyFunctions = [];\n this.destroyed = false;\n // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive\n // prevents vue from creating proxies for created objects and prevents identity related issues\n this.__v_skip = true;\n this.isAlive = function () { return !_this.destroyed; };\n }\n // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are\n // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed\n // points to a bean or component that was not properly disposed of.\n // constructor() {\n // setTimeout(()=> {\n // if (this.isAlive()) {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n // console.log('is alive ' + beanName);\n // }\n // }, 5000);\n // }\n // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean\n BeanStub.prototype.getFrameworkOverrides = function () {\n return this.frameworkOverrides;\n };\n BeanStub.prototype.getContext = function () {\n return this.context;\n };\n BeanStub.prototype.destroy = function () {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n this.destroyFunctions.forEach(function (func) { return func(); });\n this.destroyFunctions.length = 0;\n this.destroyed = true;\n this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });\n };\n BeanStub.prototype.addEventListener = function (eventType, listener) {\n if (!this.localEventService) {\n this.localEventService = new EventService();\n }\n this.localEventService.addEventListener(eventType, listener);\n };\n BeanStub.prototype.removeEventListener = function (eventType, listener) {\n if (this.localEventService) {\n this.localEventService.removeEventListener(eventType, listener);\n }\n };\n BeanStub.prototype.dispatchEventAsync = function (event) {\n var _this = this;\n window.setTimeout(function () { return _this.dispatchEvent(event); }, 0);\n };\n BeanStub.prototype.dispatchEvent = function (event) {\n if (this.localEventService) {\n this.localEventService.dispatchEvent(event);\n }\n };\n BeanStub.prototype.addManagedListener = function (object, event, listener) {\n var _this = this;\n if (this.destroyed) {\n return;\n }\n if (object instanceof HTMLElement) {\n addSafePassiveEventListener(this.getFrameworkOverrides(), object, event, listener);\n }\n else {\n object.addEventListener(event, listener);\n }\n var destroyFunc = function () {\n object.removeEventListener(event, listener);\n _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n return destroyFunc;\n };\n BeanStub.prototype.addDestroyFunc = function (func) {\n // if we are already destroyed, we execute the func now\n if (this.isAlive()) {\n this.destroyFunctions.push(func);\n }\n else {\n func();\n }\n };\n BeanStub.prototype.createManagedBean = function (bean, context) {\n var res = this.createBean(bean, context);\n this.addDestroyFunc(this.destroyBean.bind(this, bean, context));\n return res;\n };\n BeanStub.prototype.createBean = function (bean, context, afterPreCreateCallback) {\n return (context || this.getContext()).createBean(bean, afterPreCreateCallback);\n };\n BeanStub.prototype.destroyBean = function (bean, context) {\n return (context || this.getContext()).destroyBean(bean);\n };\n BeanStub.prototype.destroyBeans = function (beans, context) {\n var _this = this;\n if (beans) {\n beans.forEach(function (bean) { return _this.destroyBean(bean, context); });\n }\n return [];\n };\n BeanStub.EVENT_DESTROYED = 'destroyed';\n __decorate$3([\n Autowired('frameworkOverrides')\n ], BeanStub.prototype, \"frameworkOverrides\", void 0);\n __decorate$3([\n Autowired('context')\n ], BeanStub.prototype, \"context\", void 0);\n __decorate$3([\n Autowired('eventService')\n ], BeanStub.prototype, \"eventService\", void 0);\n __decorate$3([\n Autowired('gridOptionsWrapper')\n ], BeanStub.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$3([\n PreDestroy\n ], BeanStub.prototype, \"destroy\", null);\n return BeanStub;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$1 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups\nvar ColumnFactory = /** @class */ (function (_super) {\n __extends(ColumnFactory, _super);\n function ColumnFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnFactory.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ColumnFactory');\n };\n ColumnFactory.prototype.createColumnTree = function (defs, primaryColumns, existingTree) {\n // column key creator dishes out unique column id's in a deterministic way,\n // so if we have two grids (that could be master/slave) with same column definitions,\n // then this ensures the two grids use identical id's.\n var columnKeyCreator = new ColumnKeyCreator();\n var _a = this.extractExistingTreeData(existingTree), existingCols = _a.existingCols, existingGroups = _a.existingGroups, existingColKeys = _a.existingColKeys;\n columnKeyCreator.addExistingKeys(existingColKeys);\n // create am unbalanced tree that maps the provided definitions\n var unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups);\n var treeDept = this.findMaxDept(unbalancedTree, 0);\n this.logger.log('Number of levels for grouped columns is ' + treeDept);\n var columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);\n var deptFirstCallback = function (child, parent) {\n if (child instanceof ProvidedColumnGroup) {\n child.setupExpandable();\n }\n // we set the original parents at the end, rather than when we go along, as balancing the tree\n // adds extra levels into the tree. so we can only set parents when balancing is done.\n child.setOriginalParent(parent);\n };\n this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);\n return {\n columnTree: columnTree,\n treeDept: treeDept\n };\n };\n ColumnFactory.prototype.extractExistingTreeData = function (existingTree) {\n var existingCols = [];\n var existingGroups = [];\n var existingColKeys = [];\n if (existingTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, function (item) {\n if (item instanceof ProvidedColumnGroup) {\n var group = item;\n existingGroups.push(group);\n }\n else {\n var col = item;\n existingColKeys.push(col.getId());\n existingCols.push(col);\n }\n });\n }\n return { existingCols: existingCols, existingGroups: existingGroups, existingColKeys: existingColKeys };\n };\n ColumnFactory.prototype.createForAutoGroups = function (autoGroupCols, gridBalancedTree) {\n var _this = this;\n return autoGroupCols.map(function (col) { return _this.createAutoGroupTreeItem(gridBalancedTree, col); });\n };\n ColumnFactory.prototype.createAutoGroupTreeItem = function (balancedColumnTree, column) {\n var dept = this.findDepth(balancedColumnTree);\n // at the end, this will be the top of the tree item.\n var nextChild = column;\n for (var i = dept - 1; i >= 0; i--) {\n var autoGroup = new ProvidedColumnGroup(null, \"FAKE_PATH_\" + column.getId() + \"}_\" + i, true, i);\n this.context.createBean(autoGroup);\n autoGroup.setChildren([nextChild]);\n nextChild.setOriginalParent(autoGroup);\n nextChild = autoGroup;\n }\n // at this point, the nextChild is the top most item in the tree\n return nextChild;\n };\n ColumnFactory.prototype.findDepth = function (balancedColumnTree) {\n var dept = 0;\n var pointer = balancedColumnTree;\n while (pointer && pointer[0] && pointer[0] instanceof ProvidedColumnGroup) {\n dept++;\n pointer = pointer[0].getChildren();\n }\n return dept;\n };\n ColumnFactory.prototype.balanceColumnTree = function (unbalancedTree, currentDept, columnDept, columnKeyCreator) {\n var result = [];\n // go through each child, for groups, recurse a level deeper,\n // for columns we need to pad\n for (var i = 0; i < unbalancedTree.length; i++) {\n var child = unbalancedTree[i];\n if (child instanceof ProvidedColumnGroup) {\n // child is a group, all we do is go to the next level of recursion\n var originalGroup = child;\n var newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);\n originalGroup.setChildren(newChildren);\n result.push(originalGroup);\n }\n else {\n // child is a column - so here we add in the padded column groups if needed\n var firstPaddedGroup = void 0;\n var currentPaddedGroup = void 0;\n // this for loop will NOT run any loops if no padded column groups are needed\n for (var j = columnDept - 1; j >= currentDept; j--) {\n var newColId = columnKeyCreator.getUniqueKey(null, null);\n var colGroupDefMerged = this.createMergedColGroupDef(null);\n var paddedGroup = new ProvidedColumnGroup(colGroupDefMerged, newColId, true, currentDept);\n this.context.createBean(paddedGroup);\n if (currentPaddedGroup) {\n currentPaddedGroup.setChildren([paddedGroup]);\n }\n currentPaddedGroup = paddedGroup;\n if (!firstPaddedGroup) {\n firstPaddedGroup = currentPaddedGroup;\n }\n }\n // likewise this if statement will not run if no padded groups\n if (firstPaddedGroup && currentPaddedGroup) {\n result.push(firstPaddedGroup);\n var hasGroups = unbalancedTree.some(function (leaf) { return leaf instanceof ProvidedColumnGroup; });\n if (hasGroups) {\n currentPaddedGroup.setChildren([child]);\n continue;\n }\n else {\n currentPaddedGroup.setChildren(unbalancedTree);\n break;\n }\n }\n result.push(child);\n }\n }\n return result;\n };\n ColumnFactory.prototype.findMaxDept = function (treeChildren, dept) {\n var maxDeptThisLevel = dept;\n for (var i = 0; i < treeChildren.length; i++) {\n var abstractColumn = treeChildren[i];\n if (abstractColumn instanceof ProvidedColumnGroup) {\n var originalGroup = abstractColumn;\n var newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);\n if (maxDeptThisLevel < newDept) {\n maxDeptThisLevel = newDept;\n }\n }\n }\n return maxDeptThisLevel;\n };\n ColumnFactory.prototype.recursivelyCreateColumns = function (defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups) {\n var _this = this;\n return (defs || []).map(function (def) {\n if (_this.isColumnGroup(def)) {\n return _this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);\n }\n else {\n return _this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);\n }\n });\n };\n ColumnFactory.prototype.createColumnGroup = function (primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups) {\n var colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);\n var groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);\n var providedGroup = new ProvidedColumnGroup(colGroupDefMerged, groupId, false, level);\n this.context.createBean(providedGroup);\n var existingGroup = this.findExistingGroup(colGroupDef, existingGroups);\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingGroup) {\n removeFromArray(existingGroups, existingGroup);\n }\n if (existingGroup && existingGroup.isExpanded()) {\n providedGroup.setExpanded(true);\n }\n var children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups);\n providedGroup.setChildren(children);\n return providedGroup;\n };\n ColumnFactory.prototype.createMergedColGroupDef = function (colGroupDef) {\n var colGroupDefMerged = {};\n Object.assign(colGroupDefMerged, this.gridOptionsWrapper.getDefaultColGroupDef());\n Object.assign(colGroupDefMerged, colGroupDef);\n this.checkForDeprecatedItems(colGroupDefMerged);\n return colGroupDefMerged;\n };\n ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {\n var colDefMerged = this.mergeColDefs(colDef);\n this.checkForDeprecatedItems(colDefMerged);\n // see if column already exists\n var column = this.findExistingColumn(colDef, existingColsCopy);\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingColsCopy && column) {\n removeFromArray(existingColsCopy, column);\n }\n if (!column) {\n // no existing column, need to create one\n var colId = columnKeyCreator.getUniqueKey(colDefMerged.colId, colDefMerged.field);\n column = new Column(colDefMerged, colDef, colId, primaryColumns);\n this.context.createBean(column);\n }\n else {\n column.setColDef(colDefMerged, colDef);\n this.applyColumnState(column, colDefMerged);\n }\n return column;\n };\n ColumnFactory.prototype.applyColumnState = function (column, colDef) {\n // flex\n var flex = attrToNumber(colDef.flex);\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = attrToNumber(colDef.width);\n if (width != null) {\n column.setActualWidth(width);\n }\n else {\n // otherwise set the width again, in case min or max width has changed,\n // and width needs to be adjusted.\n var widthBeforeUpdate = column.getActualWidth();\n column.setActualWidth(widthBeforeUpdate);\n }\n }\n // sort - anything but undefined will set sort, thus null or empty string will clear the sort\n if (colDef.sort !== undefined) {\n if (colDef.sort == Constants.SORT_ASC || colDef.sort == Constants.SORT_DESC) {\n column.setSort(colDef.sort);\n }\n else {\n column.setSort(undefined);\n }\n }\n // sorted at - anything but undefined, thus null will clear the sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // hide - anything but undefined, thus null will clear the hide\n var hide = attrToBoolean(colDef.hide);\n if (hide !== undefined) {\n column.setVisible(!hide);\n }\n // pinned - anything but undefined, thus null or empty string will remove pinned\n if (colDef.pinned !== undefined) {\n column.setPinned(colDef.pinned);\n }\n };\n ColumnFactory.prototype.findExistingColumn = function (newColDef, existingColsCopy) {\n return (existingColsCopy || []).find(function (existingCol) {\n var existingColDef = existingCol.getUserProvidedColDef();\n if (!existingColDef) {\n return false;\n }\n var newHasId = newColDef.colId != null;\n var newHasField = newColDef.field != null;\n if (newHasId) {\n return existingCol.getId() === newColDef.colId;\n }\n if (newHasField) {\n return existingColDef.field === newColDef.field;\n }\n // if no id or field present, then try object equivalence.\n if (existingColDef === newColDef) {\n return true;\n }\n return false;\n });\n };\n ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {\n return existingGroups.find(function (existingGroup) {\n var existingDef = existingGroup.getColGroupDef();\n if (!existingDef) {\n return false;\n }\n var newHasId = newGroupDef.groupId != null;\n if (newHasId) {\n return existingGroup.getId() === newGroupDef.groupId;\n }\n return false;\n });\n };\n ColumnFactory.prototype.mergeColDefs = function (colDef) {\n // start with empty merged definition\n var colDefMerged = {};\n // merge properties from default column definitions\n var defaultColDef = this.gridOptionsWrapper.getDefaultColDef();\n mergeDeep(colDefMerged, defaultColDef, false, true);\n // merge properties from column type properties\n var columnType = colDef.type;\n if (!columnType) {\n columnType = defaultColDef && defaultColDef.type;\n }\n // if type of both colDef and defaultColDef, then colDef gets preference\n if (columnType) {\n this.assignColumnTypes(columnType, colDefMerged);\n }\n // merge properties from column definitions\n mergeDeep(colDefMerged, colDef, false, true);\n return colDefMerged;\n };\n ColumnFactory.prototype.assignColumnTypes = function (type, colDefMerged) {\n var typeKeys = [];\n if (type instanceof Array) {\n var invalidArray = type.some(function (a) { return typeof a !== 'string'; });\n if (invalidArray) {\n console.warn(\"AG Grid: if colDef.type is supplied an array it should be of type 'string[]'\");\n }\n else {\n typeKeys = type;\n }\n }\n else if (typeof type === 'string') {\n typeKeys = type.split(',');\n }\n else {\n console.warn(\"AG Grid: colDef.type should be of type 'string' | 'string[]'\");\n return;\n }\n // merge user defined with default column types\n var allColumnTypes = Object.assign({}, DefaultColumnTypes);\n var userTypes = this.gridOptionsWrapper.getColumnTypes() || {};\n iterateObject(userTypes, function (key, value) {\n if (key in allColumnTypes) {\n console.warn(\"AG Grid: the column type '\" + key + \"' is a default column type and cannot be overridden.\");\n }\n else {\n allColumnTypes[key] = value;\n }\n });\n typeKeys.forEach(function (t) {\n var typeColDef = allColumnTypes[t.trim()];\n if (typeColDef) {\n mergeDeep(colDefMerged, typeColDef, false, true);\n }\n else {\n console.warn(\"AG Grid: colDef.type '\" + t + \"' does not correspond to defined gridOptions.columnTypes\");\n }\n });\n };\n ColumnFactory.prototype.checkForDeprecatedItems = function (colDef) {\n if (colDef) {\n var colDefNoType = colDef; // take out the type, so we can access attributes not defined in the type\n if (colDefNoType.group !== undefined) {\n console.warn('AG Grid: colDef.group is invalid, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.headerGroup !== undefined) {\n console.warn('AG Grid: colDef.headerGroup is invalid, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.headerGroupShow !== undefined) {\n console.warn('AG Grid: colDef.headerGroupShow is invalid, should be columnGroupShow, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.suppressRowGroup !== undefined) {\n console.warn('AG Grid: colDef.suppressRowGroup is deprecated, please use colDef.type instead');\n }\n if (colDefNoType.suppressAggregation !== undefined) {\n console.warn('AG Grid: colDef.suppressAggregation is deprecated, please use colDef.type instead');\n }\n if (colDefNoType.suppressRowGroup || colDefNoType.suppressAggregation) {\n console.warn('AG Grid: colDef.suppressAggregation and colDef.suppressRowGroup are deprecated, use allowRowGroup, allowPivot and allowValue instead');\n }\n if (colDefNoType.displayName) {\n console.warn(\"AG Grid: Found displayName \" + colDefNoType.displayName + \", please use headerName instead, displayName is deprecated.\");\n colDefNoType.headerName = colDefNoType.displayName;\n }\n }\n };\n // if object has children, we assume it's a group\n ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {\n return abstractColDef.children !== undefined;\n };\n __decorate$4([\n Autowired('columnUtils')\n ], ColumnFactory.prototype, \"columnUtils\", void 0);\n __decorate$4([\n __param$1(0, Qualifier('loggerFactory'))\n ], ColumnFactory.prototype, \"setBeans\", null);\n ColumnFactory = __decorate$4([\n Bean('columnFactory')\n ], ColumnFactory);\n return ColumnFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar Events = /** @class */ (function () {\n function Events() {\n }\n /** Everything has changed with the columns. Either complete new set of columns set, or user called setState() */\n /** @deprecated - grid no longer uses this, and setSate() also fires individual events */\n Events.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';\n /** User has set in new columns. */\n Events.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';\n /** The pivot mode flag was changed */\n Events.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';\n /** A row group column was added, removed or order changed. */\n Events.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n /** expandAll / collapseAll was called from the api. */\n Events.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';\n /** A pivot column was added, removed or order changed. */\n Events.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';\n /** The list of grid columns has changed. */\n Events.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';\n /** A value column was added, removed or agg function was changed. */\n Events.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';\n /** A column was moved */\n Events.EVENT_COLUMN_MOVED = 'columnMoved';\n /** One or more columns was shown / hidden */\n Events.EVENT_COLUMN_VISIBLE = 'columnVisible';\n /** One or more columns was pinned / unpinned*/\n Events.EVENT_COLUMN_PINNED = 'columnPinned';\n /** A column group was opened / closed */\n Events.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';\n /** One or more columns was resized. If just one, the column in the event is set. */\n Events.EVENT_COLUMN_RESIZED = 'columnResized';\n /** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */\n Events.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';\n /** The list of virtual columns has changed, results from viewport changing */\n Events.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';\n /** Async Transactions Executed */\n Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';\n /** A row group was opened / closed */\n Events.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';\n /** The client has set new data into the grid */\n Events.EVENT_ROW_DATA_CHANGED = 'rowDataChanged';\n /** The client has updated data for the grid */\n Events.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';\n /** The client has set new floating data into the grid */\n Events.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';\n /** Range selection has changed */\n Events.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';\n /** Chart was created */\n Events.EVENT_CHART_CREATED = 'chartCreated';\n /** Chart Range selection has changed */\n Events.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';\n /** Chart Options have changed */\n Events.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';\n /** Chart was destroyed */\n Events.EVENT_CHART_DESTROYED = 'chartDestroyed';\n /** For when the tool panel is shown / hidden */\n Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START = 'columnPanelItemDragStart';\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END = 'columnPanelItemDragEnd';\n /** Model was updated - grid updates the drawn rows when this happens */\n Events.EVENT_MODEL_UPDATED = 'modelUpdated';\n Events.EVENT_PASTE_START = 'pasteStart';\n Events.EVENT_PASTE_END = 'pasteEnd';\n Events.EVENT_FILL_START = 'fillStart';\n Events.EVENT_FILL_END = 'fillEnd';\n Events.EVENT_CELL_CLICKED = 'cellClicked';\n Events.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';\n Events.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';\n Events.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';\n Events.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';\n Events.EVENT_CELL_EDIT_REQUEST = 'cellEditRequest';\n Events.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';\n Events.EVENT_CELL_FOCUSED = 'cellFocused';\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED = 'fullWidthRowFocused';\n Events.EVENT_ROW_SELECTED = 'rowSelected';\n Events.EVENT_SELECTION_CHANGED = 'selectionChanged';\n Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';\n Events.EVENT_CELL_KEY_PRESS = 'cellKeyPress';\n Events.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';\n Events.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';\n /** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */\n Events.EVENT_FILTER_CHANGED = 'filterChanged';\n /** Filter was change but not applied. Only useful if apply buttons are used in filters. */\n Events.EVENT_FILTER_MODIFIED = 'filterModified';\n Events.EVENT_FILTER_OPENED = 'filterOpened';\n Events.EVENT_SORT_CHANGED = 'sortChanged';\n /** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */\n Events.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';\n Events.EVENT_ROW_CLICKED = 'rowClicked';\n Events.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';\n /** Gets called once after the grid has finished initialising. */\n Events.EVENT_GRID_READY = 'gridReady';\n /** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's\n * changed, so always filling the space it was given. */\n Events.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';\n /** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */\n Events.EVENT_VIEWPORT_CHANGED = 'viewportChanged';\n /* The width of the scrollbar has been calculated */\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';\n /** Rows were rendered for the first time (ie on async data load). */\n Events.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';\n /** A column drag has started, either resizing a column or moving a column. */\n Events.EVENT_DRAG_STARTED = 'dragStarted';\n /** A column drag has stopped */\n Events.EVENT_DRAG_STOPPED = 'dragStopped';\n Events.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';\n Events.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';\n Events.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';\n Events.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';\n Events.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';\n /** Main body of grid has scrolled, either horizontally or vertically */\n Events.EVENT_BODY_SCROLL = 'bodyScroll';\n /** Main body of the grid has stopped scrolling, either horizontally or vertically */\n Events.EVENT_BODY_SCROLL_END = 'bodyScrollEnd';\n Events.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';\n /** The displayed page for pagination has changed. For example the data was filtered or sorted,\n * or the user has moved to a different page. */\n Events.EVENT_PAGINATION_CHANGED = 'paginationChanged';\n /** Only used by React, Angular, Web Components and VueJS AG Grid components\n * (not used if doing plain JavaScript). If the grid receives changes due\n * to bound properties, this event fires after the grid has finished processing the change. */\n Events.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';\n /***************************** INTERNAL EVENTS: START ******************************************* */\n /** Please remember to add to ComponentUtil.EXCLUDED_INTERNAL_EVENTS to not have these events exposed to framework components. */\n /** All items from here down are used internally by the grid, not intended for external use. */\n // not documented, either experimental, or we just don't want users using an depending on them\n Events.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';\n Events.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';\n Events.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';\n Events.EVENT_FLASH_CELLS = 'flashCells';\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';\n Events.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';\n Events.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';\n Events.EVENT_ROW_DRAG_MOVE = 'rowDragMove';\n Events.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';\n Events.EVENT_ROW_DRAG_END = 'rowDragEnd';\n // primarily for charts\n Events.EVENT_POPUP_TO_FRONT = 'popupToFront';\n // these are used for server side group and agg - only used by CS with Viewport Row Model - intention is\n // to design these better around server side functions and then release to general public when fully working with\n // all the row models.\n Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';\n Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';\n Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';\n Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';\n Events.EVENT_KEYBOARD_FOCUS = 'keyboardFocus';\n Events.EVENT_MOUSE_FOCUS = 'mouseFocus';\n Events.EVENT_STORE_UPDATED = 'storeUpdated';\n return Events;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// class returns unique instance id's for columns.\n// eg, the following calls (in this order) will result in:\n//\n// getInstanceIdForKey('country') => 0\n// getInstanceIdForKey('country') => 1\n// getInstanceIdForKey('country') => 2\n// getInstanceIdForKey('country') => 3\n// getInstanceIdForKey('age') => 0\n// getInstanceIdForKey('age') => 1\n// getInstanceIdForKey('country') => 4\nvar GroupInstanceIdCreator = /** @class */ (function () {\n function GroupInstanceIdCreator() {\n // this map contains keys to numbers, so we remember what the last call was\n this.existingIds = {};\n }\n GroupInstanceIdCreator.prototype.getInstanceIdForKey = function (key) {\n var lastResult = this.existingIds[key];\n var result;\n if (typeof lastResult !== 'number') {\n // first time this key\n result = 0;\n }\n else {\n result = lastResult + 1;\n }\n this.existingIds[key] = result;\n return result;\n };\n return GroupInstanceIdCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar reUnescapedHtml = /[&<>\"']/g;\n/**\n * HTML Escapes.\n */\nvar HTML_ESCAPES = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n/**\n * It encodes any string in UTF-8 format\n * taken from https://github.com/mathiasbynens/utf8.js\n * @param {string} s\n * @returns {string}\n */\nfunction utf8_encode(s) {\n var stringFromCharCode = String.fromCharCode;\n function ucs2decode(string) {\n var output = [];\n if (!string) {\n return [];\n }\n var len = string.length;\n var counter = 0;\n var value;\n var extra;\n while (counter < len) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < len) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n }\n else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n }\n else {\n output.push(value);\n }\n }\n return output;\n }\n function checkScalarValue(point) {\n if (point >= 0xD800 && point <= 0xDFFF) {\n throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +\n ' is not a scalar value');\n }\n }\n function createByte(point, shift) {\n return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);\n }\n function encodeCodePoint(point) {\n if ((point >= 0 && point <= 31 && point !== 10)) {\n var convertedCode = point.toString(16).toUpperCase();\n var paddedCode = convertedCode.padStart(4, '0');\n return \"_x\" + paddedCode + \"_\";\n }\n if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence\n return stringFromCharCode(point);\n }\n var symbol = '';\n if ((point & 0xFFFFF800) == 0) { // 2-byte sequence\n symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);\n }\n else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence\n checkScalarValue(point);\n symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);\n symbol += createByte(point, 6);\n }\n else if ((point & 0xFFE00000) == 0) { // 4-byte sequence\n symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);\n symbol += createByte(point, 12);\n symbol += createByte(point, 6);\n }\n symbol += stringFromCharCode((point & 0x3F) | 0x80);\n return symbol;\n }\n var codePoints = ucs2decode(s);\n var length = codePoints.length;\n var index = -1;\n var codePoint;\n var byteString = '';\n while (++index < length) {\n codePoint = codePoints[index];\n byteString += encodeCodePoint(codePoint);\n }\n return byteString;\n}\n/**\n * Converts a camelCase string into hyphenated string\n * from https://gist.github.com/youssman/745578062609e8acac9f\n * @param {string} str\n * @return {string}\n */\nfunction camelCaseToHyphen(str) {\n if (str === null || str === undefined) {\n return null;\n }\n return str.replace(/([A-Z])/g, function (g) { return '-' + g[0].toLowerCase(); });\n}\n/**\n * Converts a hyphenated string into camelCase string\n * from https://stackoverflow.com/questions/6660977/convert-hyphens-to-camel-case-camelcase\n * @param {string} str\n * @return {string}\n */\nfunction hyphenToCamelCase(str) {\n if (str === null || str === undefined) {\n return null;\n }\n return str.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\n}\nfunction capitalise(str) {\n return str[0].toUpperCase() + str.substr(1).toLowerCase();\n}\nfunction escapeString(toEscape) {\n // we call toString() twice, in case value is an object, where user provides\n // a toString() method, and first call to toString() returns back something other\n // than a string (eg a number to render)\n return toEscape == null ? null : toEscape.toString().toString().replace(reUnescapedHtml, function (chr) { return HTML_ESCAPES[chr]; });\n}\n/**\n * Converts a camelCase string into regular text\n * from: https://stackoverflow.com/questions/15369566/putting-space-in-camel-case-string-using-regular-expression\n * @param {string} camelCase\n * @return {string}\n */\nfunction camelCaseToHumanText(camelCase) {\n if (!camelCase || camelCase == null) {\n return null;\n }\n var rex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;\n var words = camelCase.replace(rex, '$1$4 $2$3$5').replace('.', ' ').split(' ');\n return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');\n}\n\nvar StringUtils = /*#__PURE__*/Object.freeze({\n utf8_encode: utf8_encode,\n camelCaseToHyphen: camelCaseToHyphen,\n hyphenToCamelCase: hyphenToCamelCase,\n capitalise: capitalise,\n escapeString: escapeString,\n camelCaseToHumanText: camelCaseToHumanText\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction convertToMap(arr) {\n var map = new Map();\n arr.forEach(function (pair) { return map.set(pair[0], pair[1]); });\n return map;\n}\n// handy for organising a list into a map, where each item is mapped by an attribute, eg mapping Columns by ID\nfunction mapById(arr, callback) {\n var map = new Map();\n arr.forEach(function (item) { return map.set(callback(item), item); });\n return map;\n}\nfunction keys(map) {\n var arr = [];\n map.forEach(function (_, key) { return arr.push(key); });\n return arr;\n}\n\nvar MapUtils = /*#__PURE__*/Object.freeze({\n convertToMap: convertToMap,\n mapById: mapById,\n keys: keys\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$2 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __values = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nvar ColumnModel = /** @class */ (function (_super) {\n __extends$1(ColumnModel, _super);\n function ColumnModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // header row count, based on user provided columns\n _this.primaryHeaderRowCount = 0;\n _this.secondaryHeaderRowCount = 0;\n // header row count, either above, or based on pivoting if we are pivoting\n _this.gridHeaderRowCount = 0;\n // leave level columns of the displayed trees\n _this.displayedColumnsLeft = [];\n _this.displayedColumnsRight = [];\n _this.displayedColumnsCenter = [];\n // all three lists above combined\n _this.displayedColumns = [];\n // for fast lookup, to see if a column or group is still displayed\n _this.displayedColumnsAndGroupsMap = {};\n // all columns to be rendered\n _this.viewportColumns = [];\n // all columns to be rendered in the centre\n _this.viewportColumnsCenter = [];\n _this.autoHeightActiveAtLeastOnce = false;\n _this.rowGroupColumns = [];\n _this.valueColumns = [];\n _this.pivotColumns = [];\n _this.ready = false;\n _this.autoGroupsNeedBuilding = false;\n _this.forceRecreateAutoGroups = false;\n _this.pivotMode = false;\n _this.bodyWidth = 0;\n _this.leftWidth = 0;\n _this.rightWidth = 0;\n _this.bodyWidthDirty = true;\n _this.colDefVersion = 0;\n _this.flexColsCalculatedAtLestOnce = false;\n return _this;\n }\n ColumnModel.prototype.init = function () {\n var _this = this;\n this.suppressColumnVirtualisation = this.gridOptionsWrapper.isSuppressColumnVirtualisation();\n var pivotMode = this.gridOptionsWrapper.isPivotMode();\n if (this.isPivotSettingAllowed(pivotMode)) {\n this.pivotMode = pivotMode;\n }\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n this.addManagedListener(this.gridOptionsWrapper, 'autoGroupColumnDef', function () { return _this.onAutoGroupColumnDefChanged(); });\n this.addManagedListener(this.gridOptionsWrapper, 'defaultColDef', function () { return _this.onDefaultColDefChanged(); });\n };\n ColumnModel.prototype.onAutoGroupColumnDefChanged = function () {\n this.autoGroupsNeedBuilding = true;\n this.forceRecreateAutoGroups = true;\n this.updateGridColumns();\n this.updateDisplayedColumns('gridOptionsChanged');\n };\n ColumnModel.prototype.onDefaultColDefChanged = function () {\n // col def's should get revisited, even if specific column hasn't changed,\n // as the defaultColDef impacts all columns, so each column should assume it's Col Def has changed.\n this.colDefVersion++;\n // likewise for autoGroupCol, the default col def impacts this\n this.forceRecreateAutoGroups = true;\n this.createColumnsFromColumnDefs(true);\n };\n ColumnModel.prototype.getColDefVersion = function () {\n return this.colDefVersion;\n };\n ColumnModel.prototype.setColumnDefs = function (columnDefs, source) {\n if (source === void 0) { source = 'api'; }\n var colsPreviouslyExisted = !!this.columnDefs;\n this.colDefVersion++;\n this.columnDefs = columnDefs;\n this.createColumnsFromColumnDefs(colsPreviouslyExisted, source);\n };\n ColumnModel.prototype.createColumnsFromColumnDefs = function (colsPreviouslyExisted, source) {\n var _this = this;\n if (source === void 0) { source = 'api'; }\n // only need to raise before/after events if updating columns, never if setting columns for first time\n var raiseEventsFunc = colsPreviouslyExisted ? this.compareColumnStatesAndRaiseEvents(source) : undefined;\n // always invalidate cache on changing columns, as the column id's for the new columns\n // could overlap with the old id's, so the cache would return old values for new columns.\n this.valueCache.expire();\n // NOTE ==================\n // we should be destroying the existing columns and groups if they exist, for example, the original column\n // group adds a listener to the columns, it should be also removing the listeners\n this.autoGroupsNeedBuilding = true;\n var oldPrimaryColumns = this.primaryColumns;\n var oldPrimaryTree = this.primaryColumnTree;\n var balancedTreeResult = this.columnFactory.createColumnTree(this.columnDefs, true, oldPrimaryTree);\n this.primaryColumnTree = balancedTreeResult.columnTree;\n this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n this.primaryColumnsMap = {};\n this.primaryColumns.forEach(function (col) { return _this.primaryColumnsMap[col.getId()] = col; });\n this.extractRowGroupColumns(source, oldPrimaryColumns);\n this.extractPivotColumns(source, oldPrimaryColumns);\n this.extractValueColumns(source, oldPrimaryColumns);\n this.ready = true;\n // if we are showing secondary columns, then no need to update grid columns\n // at this point, as it's the pivot service responsibility to change these\n // if we are no longer pivoting (ie and need to revert back to primary, otherwise\n // we shouldn't be touching the primary).\n var gridColsNotProcessed = this.gridColsArePrimary === undefined;\n var processGridCols = this.gridColsArePrimary || gridColsNotProcessed;\n if (processGridCols) {\n this.updateGridColumns();\n if (colsPreviouslyExisted && !this.gridOptionsWrapper.isMaintainColumnOrder()) {\n this.orderGridColumnsLikePrimary();\n }\n this.updateDisplayedColumns(source);\n this.checkViewportColumns();\n }\n // this event is not used by AG Grid, but left here for backwards compatibility,\n // in case applications use it\n this.dispatchEverythingChanged(source);\n raiseEventsFunc && raiseEventsFunc();\n this.dispatchNewColumnsLoaded();\n };\n ColumnModel.prototype.dispatchNewColumnsLoaded = function () {\n var newColumnsLoadedEvent = {\n type: Events.EVENT_NEW_COLUMNS_LOADED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(newColumnsLoadedEvent);\n };\n // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded\n ColumnModel.prototype.dispatchEverythingChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n var eventEverythingChanged = {\n type: Events.EVENT_COLUMN_EVERYTHING_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(eventEverythingChanged);\n };\n ColumnModel.prototype.orderGridColumnsLikePrimary = function () {\n var _this = this;\n var primaryColumns = this.primaryColumns;\n if (!primaryColumns) {\n return;\n }\n this.gridColumns.sort(function (colA, colB) {\n var primaryIndexA = primaryColumns.indexOf(colA);\n var primaryIndexB = primaryColumns.indexOf(colB);\n // if both cols are present in primary, then we just return the position,\n // so position is maintained.\n var indexAPresent = primaryIndexA >= 0;\n var indexBPresent = primaryIndexB >= 0;\n if (indexAPresent && indexBPresent) {\n return primaryIndexA - primaryIndexB;\n }\n if (indexAPresent) {\n // B is auto group column, so put B first\n return 1;\n }\n if (indexBPresent) {\n // A is auto group column, so put A first\n return -1;\n }\n // otherwise both A and B are auto-group columns. so we just keep the order\n // as they were already in.\n var gridIndexA = _this.gridColumns.indexOf(colA);\n var gridIndexB = _this.gridColumns.indexOf(colB);\n return gridIndexA - gridIndexB;\n });\n };\n ColumnModel.prototype.getAllDisplayedAutoHeightCols = function () {\n return this.displayedAutoHeightCols;\n };\n ColumnModel.prototype.setViewport = function () {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;\n this.viewportRight = this.bodyWidth - this.scrollPosition;\n }\n else {\n this.viewportLeft = this.scrollPosition;\n this.viewportRight = this.scrollWidth + this.scrollPosition;\n }\n };\n // used by clipboard service, to know what columns to paste into\n ColumnModel.prototype.getDisplayedColumnsStartingAt = function (column) {\n var currentColumn = column;\n var columns = [];\n while (currentColumn != null) {\n columns.push(currentColumn);\n currentColumn = this.getDisplayedColAfter(currentColumn);\n }\n return columns;\n };\n // checks what columns are currently displayed due to column virtualisation. fires an event\n // if the list of columns has changed.\n // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()\n ColumnModel.prototype.checkViewportColumns = function () {\n // check displayCenterColumnTree exists first, as it won't exist when grid is initialising\n if (this.displayedColumnsCenter == null) {\n return;\n }\n var hashBefore = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');\n this.extractViewport();\n var hashAfter = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');\n if (hashBefore !== hashAfter) {\n var event_1 = {\n type: Events.EVENT_VIRTUAL_COLUMNS_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ColumnModel.prototype.setViewportPosition = function (scrollWidth, scrollPosition) {\n if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {\n this.scrollWidth = scrollWidth;\n this.scrollPosition = scrollPosition;\n // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,\n // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the\n // virtual columns again\n this.bodyWidthDirty = true;\n this.setViewport();\n if (this.ready) {\n this.checkViewportColumns();\n }\n }\n };\n ColumnModel.prototype.isPivotMode = function () {\n return this.pivotMode;\n };\n ColumnModel.prototype.isPivotSettingAllowed = function (pivot) {\n if (pivot && this.gridOptionsWrapper.isTreeData()) {\n console.warn(\"AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'\");\n return false;\n }\n return true;\n };\n ColumnModel.prototype.setPivotMode = function (pivotMode, source) {\n if (source === void 0) { source = 'api'; }\n if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {\n return;\n }\n this.pivotMode = pivotMode;\n // we need to update grid columns to cover the scenario where user has groupSuppressAutoColumn=true, as\n // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),\n // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed\n this.autoGroupsNeedBuilding = true;\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n var event = {\n type: Events.EVENT_COLUMN_PIVOT_MODE_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {\n if (missing(this.secondaryColumns)) {\n return null;\n }\n var valueColumnToFind = this.getPrimaryColumn(valueColKey);\n var foundColumn = null;\n this.secondaryColumns.forEach(function (column) {\n var thisPivotKeys = column.getColDef().pivotKeys;\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotKeyMatches = areEqual(thisPivotKeys, pivotKeys);\n var pivotValueMatches = pivotValueColumn === valueColumnToFind;\n if (pivotKeyMatches && pivotValueMatches) {\n foundColumn = column;\n }\n });\n return foundColumn;\n };\n ColumnModel.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('columnModel');\n };\n ColumnModel.prototype.setFirstRightAndLastLeftPinned = function (source) {\n var lastLeft;\n var firstRight;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;\n firstRight = this.displayedColumnsRight ? last(this.displayedColumnsRight) : null;\n }\n else {\n lastLeft = this.displayedColumnsLeft ? last(this.displayedColumnsLeft) : null;\n firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;\n }\n this.gridColumns.forEach(function (column) {\n column.setLastLeftPinned(column === lastLeft, source);\n column.setFirstRightPinned(column === firstRight, source);\n });\n };\n ColumnModel.prototype.autoSizeColumns = function (params) {\n var _this = this;\n var columns = params.columns, skipHeader = params.skipHeader, skipHeaderGroups = params.skipHeaderGroups, stopAtGroup = params.stopAtGroup, _a = params.source, source = _a === void 0 ? 'api' : _a;\n // because of column virtualisation, we can only do this function on columns that are\n // actually rendered, as non-rendered columns (outside the viewport and not rendered\n // due to column virtualisation) are not present. this can result in all rendered columns\n // getting narrowed, which in turn introduces more rendered columns on the RHS which\n // did not get autosized in the original run, leaving the visible grid with columns on\n // the LHS sized, but RHS no. so we keep looping through the visible columns until\n // no more cols are available (rendered) to be resized\n // we autosize after animation frames finish in case any cell renderers need to complete first. this can\n // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid\n // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).\n this.animationFrameService.flushAllFrames();\n // keep track of which cols we have resized in here\n var columnsAutosized = [];\n // initialise with anything except 0 so that while loop executes at least once\n var changesThisTimeAround = -1;\n var shouldSkipHeader = skipHeader != null ? skipHeader : this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n var shouldSkipHeaderGroups = skipHeaderGroups != null ? skipHeaderGroups : shouldSkipHeader;\n while (changesThisTimeAround !== 0) {\n changesThisTimeAround = 0;\n this.actionOnGridColumns(columns, function (column) {\n // if already autosized, skip it\n if (columnsAutosized.indexOf(column) >= 0) {\n return false;\n }\n // get how wide this col should be\n var preferredWidth = _this.autoWidthCalculator.getPreferredWidthForColumn(column, shouldSkipHeader);\n // preferredWidth = -1 if this col is not on the screen\n if (preferredWidth > 0) {\n var newWidth = _this.normaliseColumnWidth(column, preferredWidth);\n column.setActualWidth(newWidth, source);\n columnsAutosized.push(column);\n changesThisTimeAround++;\n }\n return true;\n }, source);\n }\n if (!shouldSkipHeaderGroups) {\n this.autoSizeColumnGroupsByColumns(columns, stopAtGroup);\n }\n this.fireColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');\n };\n ColumnModel.prototype.fireColumnResizedEvent = function (columns, finished, source, flexColumns) {\n if (flexColumns === void 0) { flexColumns = null; }\n if (columns && columns.length) {\n var event_2 = {\n type: Events.EVENT_COLUMN_RESIZED,\n columns: columns,\n column: columns.length === 1 ? columns[0] : null,\n flexColumns: flexColumns,\n finished: finished,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event_2);\n }\n };\n ColumnModel.prototype.autoSizeColumn = function (key, skipHeader, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.autoSizeColumns({ columns: [key], skipHeader: skipHeader, skipHeaderGroups: true, source: source });\n }\n };\n ColumnModel.prototype.autoSizeColumnGroupsByColumns = function (keys, stopAtGroup) {\n var e_1, _a, e_2, _b;\n var columnGroups = new Set();\n var columns = this.getGridColumns(keys);\n columns.forEach(function (col) {\n var parent = col.getParent();\n while (parent && parent != stopAtGroup) {\n if (!parent.isPadding()) {\n columnGroups.add(parent);\n }\n parent = parent.getParent();\n }\n });\n var headerGroupCtrl;\n var resizedColumns = [];\n try {\n for (var columnGroups_1 = __values(columnGroups), columnGroups_1_1 = columnGroups_1.next(); !columnGroups_1_1.done; columnGroups_1_1 = columnGroups_1.next()) {\n var columnGroup = columnGroups_1_1.value;\n try {\n for (var _c = (e_2 = void 0, __values(this.ctrlsService.getHeaderRowContainerCtrls())), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerContainerCtrl = _d.value;\n headerGroupCtrl = headerContainerCtrl.getHeaderCtrlForColumn(columnGroup);\n if (headerGroupCtrl) {\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (headerGroupCtrl) {\n headerGroupCtrl.resizeLeafColumnsToFit();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (columnGroups_1_1 && !columnGroups_1_1.done && (_a = columnGroups_1.return)) _a.call(columnGroups_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return resizedColumns;\n };\n ColumnModel.prototype.autoSizeAllColumns = function (skipHeader, source) {\n if (source === void 0) { source = \"api\"; }\n var allDisplayedColumns = this.getAllDisplayedColumns();\n this.autoSizeColumns({ columns: allDisplayedColumns, skipHeader: skipHeader, source: source });\n };\n // Possible candidate for reuse (alot of recursive traversal duplication)\n ColumnModel.prototype.getColumnsFromTree = function (rootColumns) {\n var result = [];\n var recursiveFindColumns = function (childColumns) {\n for (var i = 0; i < childColumns.length; i++) {\n var child = childColumns[i];\n if (child instanceof Column) {\n result.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n recursiveFindColumns(child.getChildren());\n }\n }\n };\n recursiveFindColumns(rootColumns);\n return result;\n };\n ColumnModel.prototype.getAllDisplayedTrees = function () {\n if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {\n return this.displayedTreeLeft\n .concat(this.displayedTreeCentre)\n .concat(this.displayedTreeRight);\n }\n return null;\n };\n // + columnSelectPanel\n ColumnModel.prototype.getPrimaryColumnTree = function () {\n return this.primaryColumnTree;\n };\n // + gridPanel -> for resizing the body and setting top margin\n ColumnModel.prototype.getHeaderRowCount = function () {\n return this.gridHeaderRowCount;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeLeft = function () {\n return this.displayedTreeLeft;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeRight = function () {\n return this.displayedTreeRight;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeCentre = function () {\n return this.displayedTreeCentre;\n };\n // gridPanel -> ensureColumnVisible\n ColumnModel.prototype.isColumnDisplayed = function (column) {\n return this.getAllDisplayedColumns().indexOf(column) >= 0;\n };\n // + csvCreator\n ColumnModel.prototype.getAllDisplayedColumns = function () {\n return this.displayedColumns;\n };\n ColumnModel.prototype.getViewportColumns = function () {\n return this.viewportColumns;\n };\n ColumnModel.prototype.getDisplayedLeftColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsLeft;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);\n };\n ColumnModel.prototype.getDisplayedRightColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsRight;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);\n };\n ColumnModel.prototype.getDisplayedColumnsForRow = function (rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {\n var result = [];\n var lastConsideredCol = null;\n var _loop_1 = function (i) {\n var col = displayedColumns[i];\n var maxAllowedColSpan = displayedColumns.length - i;\n var colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);\n var columnsToCheckFilter = [col];\n if (colSpan > 1) {\n var colsToRemove = colSpan - 1;\n for (var j = 1; j <= colsToRemove; j++) {\n columnsToCheckFilter.push(displayedColumns[i + j]);\n }\n i += colsToRemove;\n }\n // see which cols we should take out for column virtualisation\n var filterPasses;\n if (filterCallback) {\n // if user provided a callback, means some columns may not be in the viewport.\n // the user will NOT provide a callback if we are talking about pinned areas,\n // as pinned areas have no horizontal scroll and do not virtualise the columns.\n // if lots of columns, that means column spanning, and we set filterPasses = true\n // if one or more of the columns spanned pass the filter.\n filterPasses = false;\n columnsToCheckFilter.forEach(function (colForFilter) {\n if (filterCallback(colForFilter)) {\n filterPasses = true;\n }\n });\n }\n else {\n filterPasses = true;\n }\n if (filterPasses) {\n if (result.length === 0 && lastConsideredCol) {\n var gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;\n if (gapBeforeColumn) {\n result.push(lastConsideredCol);\n }\n }\n result.push(col);\n }\n lastConsideredCol = col;\n out_i_1 = i;\n };\n var out_i_1;\n for (var i = 0; i < displayedColumns.length; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n return result;\n };\n // + rowRenderer\n // if we are not column spanning, this just returns back the virtual centre columns,\n // however if we are column spanning, then different rows can have different virtual\n // columns, so we have to work out the list for each individual row.\n ColumnModel.prototype.getViewportCenterColumnsForRow = function (rowNode) {\n var _this = this;\n if (!this.colSpanActive) {\n return this.viewportColumnsCenter;\n }\n var emptySpaceBeforeColumn = function (col) {\n var left = col.getLeft();\n return exists(left) && left > _this.viewportLeft;\n };\n // if doing column virtualisation, then we filter based on the viewport.\n var filterCallback = this.suppressColumnVirtualisation ? null : this.isColumnInViewport.bind(this);\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);\n };\n ColumnModel.prototype.getAriaColumnIndex = function (col) {\n return this.getAllGridColumns().indexOf(col) + 1;\n };\n ColumnModel.prototype.isColumnInViewport = function (col) {\n // we never filter out autoHeight columns, as we need them in the DOM for calculating Auto Height\n if (col.isAutoHeight()) {\n return true;\n }\n var columnLeft = col.getLeft() || 0;\n var columnRight = columnLeft + col.getActualWidth();\n // adding 200 for buffer size, so some cols off viewport are rendered.\n // this helps horizontal scrolling so user rarely sees white space (unless\n // they scroll horizontally fast). however we are conservative, as the more\n // buffer the slower the vertical redraw speed\n var leftBounds = this.viewportLeft - 200;\n var rightBounds = this.viewportRight + 200;\n var columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;\n var columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;\n return !columnToMuchLeft && !columnToMuchRight;\n };\n // used by:\n // + angularGrid -> setting pinned body width\n // note: this should be cached\n ColumnModel.prototype.getDisplayedColumnsLeftWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsLeft);\n };\n // note: this should be cached\n ColumnModel.prototype.getDisplayedColumnsRightWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsRight);\n };\n ColumnModel.prototype.updatePrimaryColumnList = function (keys, masterList, actionIsAdd, columnCallback, eventType, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (!keys || missingOrEmpty(keys)) {\n return;\n }\n var atLeastOne = false;\n keys.forEach(function (key) {\n var columnToAdd = _this.getPrimaryColumn(key);\n if (!columnToAdd) {\n return;\n }\n if (actionIsAdd) {\n if (masterList.indexOf(columnToAdd) >= 0) {\n return;\n }\n masterList.push(columnToAdd);\n }\n else {\n if (masterList.indexOf(columnToAdd) < 0) {\n return;\n }\n removeFromArray(masterList, columnToAdd);\n }\n columnCallback(columnToAdd);\n atLeastOne = true;\n });\n if (!atLeastOne) {\n return;\n }\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n var event = {\n type: eventType,\n columns: masterList,\n column: masterList.length === 1 ? masterList[0] : null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.setRowGroupColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.setPrimaryColumnList(colKeys, this.rowGroupColumns, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.setRowGroupActive.bind(this), source);\n };\n ColumnModel.prototype.setRowGroupActive = function (active, column, source) {\n if (active === column.isRowGroupActive()) {\n return;\n }\n column.setRowGroupActive(active, source);\n if (!active && !this.gridOptionsWrapper.isSuppressMakeColumnVisibleAfterUnGroup()) {\n column.setVisible(true, source);\n }\n };\n ColumnModel.prototype.addRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.addRowGroupColumns([key], source);\n }\n };\n ColumnModel.prototype.addRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnModel.prototype.removeRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnModel.prototype.removeRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.removeRowGroupColumns([key], source);\n }\n };\n ColumnModel.prototype.addPivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, true, function (column) { return column.setPivotActive(true, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnModel.prototype.setPivotColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.pivotColumns, Events.EVENT_COLUMN_PIVOT_CHANGED, function (added, column) {\n column.setPivotActive(added, source);\n }, source);\n };\n ColumnModel.prototype.addPivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.addPivotColumns([key], source);\n };\n ColumnModel.prototype.removePivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, false, function (column) { return column.setPivotActive(false, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnModel.prototype.removePivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.removePivotColumns([key], source);\n };\n ColumnModel.prototype.setPrimaryColumnList = function (colKeys, masterList, eventName, columnCallback, source) {\n var _this = this;\n masterList.length = 0;\n if (exists(colKeys)) {\n colKeys.forEach(function (key) {\n var column = _this.getPrimaryColumn(key);\n if (column) {\n masterList.push(column);\n }\n });\n }\n (this.primaryColumns || []).forEach(function (column) {\n var added = masterList.indexOf(column) >= 0;\n columnCallback(added, column);\n });\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n this.fireColumnEvent(eventName, masterList, source);\n };\n ColumnModel.prototype.setValueColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.valueColumns, Events.EVENT_COLUMN_VALUE_CHANGED, this.setValueActive.bind(this), source);\n };\n ColumnModel.prototype.setValueActive = function (active, column, source) {\n if (active === column.isValueActive()) {\n return;\n }\n column.setValueActive(active, source);\n if (active && !column.getAggFunc()) {\n var initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);\n column.setAggFunc(initialAggFunc);\n }\n };\n ColumnModel.prototype.addValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n ColumnModel.prototype.addValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n if (colKey) {\n this.addValueColumns([colKey], source);\n }\n };\n ColumnModel.prototype.removeValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n this.removeValueColumns([colKey], source);\n };\n ColumnModel.prototype.removeValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n // returns the width we can set to this col, taking into consideration min and max widths\n ColumnModel.prototype.normaliseColumnWidth = function (column, newWidth) {\n var minWidth = column.getMinWidth();\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n }\n var maxWidth = column.getMaxWidth();\n if (exists(maxWidth) && column.isGreaterThanMax(newWidth)) {\n newWidth = maxWidth;\n }\n return newWidth;\n };\n ColumnModel.prototype.getPrimaryOrGridColumn = function (key) {\n var column = this.getPrimaryColumn(key);\n return column || this.getGridColumn(key);\n };\n ColumnModel.prototype.setColumnWidths = function (columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column\n finished, // @finished - ends up in the event, tells the user if more events are to come\n source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n var sets = [];\n columnWidths.forEach(function (columnWidth) {\n var col = _this.getPrimaryOrGridColumn(columnWidth.key);\n if (!col) {\n return;\n }\n sets.push({\n width: columnWidth.newWidth,\n ratios: [1],\n columns: [col]\n });\n // if user wants to do shift resize by default, then we invert the shift operation\n var defaultIsShift = _this.gridOptionsWrapper.getColResizeDefault() === 'shift';\n if (defaultIsShift) {\n shiftKey = !shiftKey;\n }\n if (shiftKey) {\n var otherCol = _this.getDisplayedColAfter(col);\n if (!otherCol) {\n return;\n }\n var widthDiff = col.getActualWidth() - columnWidth.newWidth;\n var otherColWidth = otherCol.getActualWidth() + widthDiff;\n sets.push({\n width: otherColWidth,\n ratios: [1],\n columns: [otherCol]\n });\n }\n });\n if (sets.length === 0) {\n return;\n }\n this.resizeColumnSets({\n resizeSets: sets,\n finished: finished,\n source: source\n });\n };\n ColumnModel.prototype.checkMinAndMaxWidthsForSet = function (columnResizeSet) {\n var columns = columnResizeSet.columns, width = columnResizeSet.width;\n // every col has a min width, so sum them all up and see if we have enough room\n // for all the min widths\n var minWidthAccumulated = 0;\n var maxWidthAccumulated = 0;\n var maxWidthActive = true;\n columns.forEach(function (col) {\n var minWidth = col.getMinWidth();\n minWidthAccumulated += minWidth || 0;\n var maxWidth = col.getMaxWidth();\n if (exists(maxWidth) && maxWidth > 0) {\n maxWidthAccumulated += maxWidth;\n }\n else {\n // if at least one columns has no max width, it means the group of columns\n // then has no max width, as at least one column can take as much width as possible\n maxWidthActive = false;\n }\n });\n var minWidthPasses = width >= minWidthAccumulated;\n var maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);\n return minWidthPasses && maxWidthPasses;\n };\n // method takes sets of columns and resizes them. either all sets will be resized, or nothing\n // be resized. this is used for example when user tries to resize a group and holds shift key,\n // then both the current group (grows), and the adjacent group (shrinks), will get resized,\n // so that's two sets for this method.\n ColumnModel.prototype.resizeColumnSets = function (params) {\n var _this = this;\n var resizeSets = params.resizeSets, finished = params.finished, source = params.source;\n var passMinMaxCheck = !resizeSets || resizeSets.every(function (columnResizeSet) { return _this.checkMinAndMaxWidthsForSet(columnResizeSet); });\n if (!passMinMaxCheck) {\n // even though we are not going to resize beyond min/max size, we still need to raise event when finished\n if (finished) {\n var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;\n this.fireColumnResizedEvent(columns, finished, source);\n }\n return; // don't resize!\n }\n var changedCols = [];\n var allResizedCols = [];\n resizeSets.forEach(function (set) {\n var width = set.width, columns = set.columns, ratios = set.ratios;\n // keep track of pixels used, and last column gets the remaining,\n // to cater for rounding errors, and min width adjustments\n var newWidths = {};\n var finishedCols = {};\n columns.forEach(function (col) { return allResizedCols.push(col); });\n // the loop below goes through each col. if a col exceeds it's min/max width,\n // it then gets set to its min/max width and the column is removed marked as 'finished'\n // and the calculation is done again leaving this column out. take for example columns\n // {A, width: 50, maxWidth: 100}\n // {B, width: 50}\n // {C, width: 50}\n // and then the set is set to width 600 - on the first pass the grid tries to set each column\n // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked\n // as 'finished' and the calculation is done again with the remaining cols B and C, which end up\n // splitting the remaining 500 pixels.\n var finishedColsGrew = true;\n var loopCount = 0;\n var _loop_2 = function () {\n loopCount++;\n if (loopCount > 1000) {\n // this should never happen, but in the future, someone might introduce a bug here,\n // so we stop the browser from hanging and report bug properly\n console.error('AG Grid: infinite loop in resizeColumnSets');\n return \"break\";\n }\n finishedColsGrew = false;\n var subsetCols = [];\n var subsetRatioTotal = 0;\n var pixelsToDistribute = width;\n columns.forEach(function (col, index) {\n var thisColFinished = finishedCols[col.getId()];\n if (thisColFinished) {\n pixelsToDistribute -= newWidths[col.getId()];\n }\n else {\n subsetCols.push(col);\n var ratioThisCol = ratios[index];\n subsetRatioTotal += ratioThisCol;\n }\n });\n // because we are not using all of the ratios (cols can be missing),\n // we scale the ratio. if all columns are included, then subsetRatioTotal=1,\n // and so the ratioScale will be 1.\n var ratioScale = 1 / subsetRatioTotal;\n subsetCols.forEach(function (col, index) {\n var lastCol = index === (subsetCols.length - 1);\n var colNewWidth;\n if (lastCol) {\n colNewWidth = pixelsToDistribute;\n }\n else {\n colNewWidth = Math.round(ratios[index] * width * ratioScale);\n pixelsToDistribute -= colNewWidth;\n }\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && colNewWidth < minWidth) {\n colNewWidth = minWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n else if (exists(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {\n colNewWidth = maxWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n newWidths[col.getId()] = colNewWidth;\n });\n };\n while (finishedColsGrew) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n columns.forEach(function (col) {\n var newWidth = newWidths[col.getId()];\n var actualWidth = col.getActualWidth();\n if (actualWidth !== newWidth) {\n col.setActualWidth(newWidth, source);\n changedCols.push(col);\n }\n });\n });\n // if no cols changed, then no need to update more or send event.\n var atLeastOneColChanged = changedCols.length > 0;\n var flexedCols = [];\n if (atLeastOneColChanged) {\n flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });\n this.setLeftValues(source);\n this.updateBodyWidths();\n this.checkViewportColumns();\n }\n // check for change first, to avoid unnecessary firing of events\n // however we always fire 'finished' events. this is important\n // when groups are resized, as if the group is changing slowly,\n // eg 1 pixel at a time, then each change will fire change events\n // in all the columns in the group, but only one with get the pixel.\n var colsForEvent = allResizedCols.concat(flexedCols);\n if (atLeastOneColChanged || finished) {\n this.fireColumnResizedEvent(colsForEvent, finished, source, flexedCols);\n }\n };\n ColumnModel.prototype.setColumnAggFunc = function (key, aggFunc, source) {\n if (source === void 0) { source = \"api\"; }\n if (!key) {\n return;\n }\n var column = this.getPrimaryColumn(key);\n if (!column) {\n return;\n }\n column.setAggFunc(aggFunc);\n this.fireColumnEvent(Events.EVENT_COLUMN_VALUE_CHANGED, [column], source);\n };\n ColumnModel.prototype.fireColumnEvent = function (type, columns, source) {\n var event = {\n type: type,\n columns: columns,\n column: (columns && columns.length == 1) ? columns[0] : null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.rowGroupColumns[fromIndex];\n this.rowGroupColumns.splice(fromIndex, 1);\n this.rowGroupColumns.splice(toIndex, 0, column);\n var event = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n columns: this.rowGroupColumns,\n column: this.rowGroupColumns.length === 1 ? this.rowGroupColumns[0] : null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {\n console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);\n console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');\n return;\n }\n // we want to pull all the columns out first and put them into an ordered list\n var columnsToMove = this.getGridColumns(columnsToMoveKeys);\n var failedRules = !this.doesMovePassRules(columnsToMove, toIndex);\n if (failedRules) {\n return;\n }\n moveInArray(this.gridColumns, columnsToMove, toIndex);\n this.updateDisplayedColumns(source);\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: columnsToMove,\n column: columnsToMove.length === 1 ? columnsToMove[0] : null,\n toIndex: toIndex,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n this.columnAnimationService.finish();\n };\n ColumnModel.prototype.doesMovePassRules = function (columnsToMove, toIndex) {\n // make a copy of what the grid columns would look like after the move\n var proposedColumnOrder = this.gridColumns.slice();\n moveInArray(proposedColumnOrder, columnsToMove, toIndex);\n // then check that the new proposed order of the columns passes all rules\n if (!this.doesMovePassMarryChildren(proposedColumnOrder)) {\n return false;\n }\n if (!this.doesMovePassLockedPositions(proposedColumnOrder)) {\n return false;\n }\n return true;\n };\n // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns\n // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]\n ColumnModel.prototype.sortColumnsLikeGridColumns = function (cols) {\n var _this = this;\n if (!cols || cols.length <= 1) {\n return;\n }\n var notAllColsInGridColumns = cols.filter(function (c) { return _this.gridColumns.indexOf(c) < 0; }).length > 0;\n if (notAllColsInGridColumns) {\n return;\n }\n cols.sort(function (a, b) {\n var indexA = _this.gridColumns.indexOf(a);\n var indexB = _this.gridColumns.indexOf(b);\n return indexA - indexB;\n });\n };\n ColumnModel.prototype.doesMovePassLockedPositions = function (proposedColumnOrder) {\n // Placement is a number indicating 'left' 'center' or 'right' as 0 1 2\n var lastPlacement = 0;\n var rulePassed = true;\n var lockPositionToPlacement = function (position) {\n if (!position) { // false or undefined\n return 1;\n }\n if (position === true) {\n return 0;\n }\n return position === 'left' ? 0 : 2; // Otherwise 'right'\n };\n proposedColumnOrder.forEach(function (col) {\n var placement = lockPositionToPlacement(col.getColDef().lockPosition);\n if (placement < lastPlacement) { // If placement goes down, we're not in the correct order\n rulePassed = false;\n }\n lastPlacement = placement;\n });\n return rulePassed;\n };\n ColumnModel.prototype.doesMovePassMarryChildren = function (allColumnsCopy) {\n var rulePassed = true;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (child) {\n if (!(child instanceof ProvidedColumnGroup)) {\n return;\n }\n var columnGroup = child;\n var colGroupDef = columnGroup.getColGroupDef();\n var marryChildren = colGroupDef && colGroupDef.marryChildren;\n if (!marryChildren) {\n return;\n }\n var newIndexes = [];\n columnGroup.getLeafColumns().forEach(function (col) {\n var newColIndex = allColumnsCopy.indexOf(col);\n newIndexes.push(newColIndex);\n });\n var maxIndex = Math.max.apply(Math, newIndexes);\n var minIndex = Math.min.apply(Math, newIndexes);\n // spread is how far the first column in this group is away from the last column\n var spread = maxIndex - minIndex;\n var maxSpread = columnGroup.getLeafColumns().length - 1;\n // if the columns\n if (spread > maxSpread) {\n rulePassed = false;\n }\n // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)\n // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));\n });\n return rulePassed;\n };\n ColumnModel.prototype.moveColumn = function (key, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n this.moveColumns([key], toIndex, source);\n };\n ColumnModel.prototype.moveColumnByIndex = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.gridColumns[fromIndex];\n this.moveColumn(column, toIndex, source);\n };\n ColumnModel.prototype.getColumnDefs = function () {\n var _this = this;\n if (!this.primaryColumns) {\n return;\n }\n var cols = this.primaryColumns.slice();\n if (this.gridColsArePrimary) {\n cols.sort(function (a, b) { return _this.gridColumns.indexOf(a) - _this.gridColumns.indexOf(b); });\n }\n else if (this.lastPrimaryOrder) {\n cols.sort(function (a, b) { return _this.lastPrimaryOrder.indexOf(a) - _this.lastPrimaryOrder.indexOf(b); });\n }\n return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);\n };\n // used by:\n // + angularGrid -> for setting body width\n // + rowController -> setting main row widths (when inserting and resizing)\n // need to cache this\n ColumnModel.prototype.getBodyContainerWidth = function () {\n return this.bodyWidth;\n };\n ColumnModel.prototype.getContainerWidth = function (pinned) {\n switch (pinned) {\n case Constants.PINNED_LEFT:\n return this.leftWidth;\n case Constants.PINNED_RIGHT:\n return this.rightWidth;\n default:\n return this.bodyWidth;\n }\n };\n // after setColumnWidth or updateGroupsAndDisplayedColumns\n ColumnModel.prototype.updateBodyWidths = function () {\n var newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);\n var newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);\n var newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);\n // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed\n // columns, due to RTL inverting the y coordinates\n this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;\n var atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;\n if (atLeastOneChanged) {\n this.bodyWidth = newBodyWidth;\n this.leftWidth = newLeftWidth;\n this.rightWidth = newRightWidth;\n // when this fires, it is picked up by the gridPanel, which ends up in\n // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()\n var event_3 = {\n type: Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_3);\n }\n };\n // + rowController\n ColumnModel.prototype.getValueColumns = function () {\n return this.valueColumns ? this.valueColumns : [];\n };\n // + rowController\n ColumnModel.prototype.getPivotColumns = function () {\n return this.pivotColumns ? this.pivotColumns : [];\n };\n // + clientSideRowModel\n ColumnModel.prototype.isPivotActive = function () {\n return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;\n };\n // + toolPanel\n ColumnModel.prototype.getRowGroupColumns = function () {\n return this.rowGroupColumns ? this.rowGroupColumns : [];\n };\n // + rowController -> while inserting rows\n ColumnModel.prototype.getDisplayedCenterColumns = function () {\n return this.displayedColumnsCenter;\n };\n // + rowController -> while inserting rows\n ColumnModel.prototype.getDisplayedLeftColumns = function () {\n return this.displayedColumnsLeft;\n };\n ColumnModel.prototype.getDisplayedRightColumns = function () {\n return this.displayedColumnsRight;\n };\n ColumnModel.prototype.getDisplayedColumns = function (type) {\n switch (type) {\n case Constants.PINNED_LEFT:\n return this.getDisplayedLeftColumns();\n case Constants.PINNED_RIGHT:\n return this.getDisplayedRightColumns();\n default:\n return this.getDisplayedCenterColumns();\n }\n };\n // used by:\n // + clientSideRowController -> sorting, building quick filter text\n // + headerRenderer -> sorting (clearing icon)\n ColumnModel.prototype.getAllPrimaryColumns = function () {\n return this.primaryColumns ? this.primaryColumns.slice() : null;\n };\n ColumnModel.prototype.getSecondaryColumns = function () {\n return this.secondaryColumns ? this.secondaryColumns.slice() : null;\n };\n ColumnModel.prototype.getAllColumnsForQuickFilter = function () {\n return this.columnsForQuickFilter;\n };\n // + moveColumnController\n ColumnModel.prototype.getAllGridColumns = function () {\n return this.gridColumns;\n };\n ColumnModel.prototype.isEmpty = function () {\n return missingOrEmpty(this.gridColumns);\n };\n ColumnModel.prototype.isRowGroupEmpty = function () {\n return missingOrEmpty(this.rowGroupColumns);\n };\n ColumnModel.prototype.setColumnVisible = function (key, visible, source) {\n if (source === void 0) { source = \"api\"; }\n this.setColumnsVisible([key], visible, source);\n };\n ColumnModel.prototype.setColumnsVisible = function (keys, visible, source) {\n var _this = this;\n if (visible === void 0) { visible = false; }\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n this.actionOnGridColumns(keys, function (column) {\n if (column.isVisible() !== visible) {\n column.setVisible(visible, source);\n return true;\n }\n return false;\n }, source, function () {\n var event = {\n type: Events.EVENT_COLUMN_VISIBLE,\n visible: visible,\n column: null,\n columns: null,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n source: source\n };\n return event;\n });\n this.columnAnimationService.finish();\n };\n ColumnModel.prototype.setColumnPinned = function (key, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.setColumnsPinned([key], pinned, source);\n }\n };\n ColumnModel.prototype.setColumnsPinned = function (keys, pinned, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (this.gridOptionsWrapper.getDomLayout() === 'print') {\n console.warn(\"Changing the column pinning status is not allowed with domLayout='print'\");\n return;\n }\n this.columnAnimationService.start();\n var actualPinned;\n if (pinned === true || pinned === Constants.PINNED_LEFT) {\n actualPinned = Constants.PINNED_LEFT;\n }\n else if (pinned === Constants.PINNED_RIGHT) {\n actualPinned = Constants.PINNED_RIGHT;\n }\n else {\n actualPinned = null;\n }\n this.actionOnGridColumns(keys, function (col) {\n if (col.getPinned() !== actualPinned) {\n col.setPinned(actualPinned);\n return true;\n }\n return false;\n }, source, function () {\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n pinned: actualPinned,\n column: null,\n columns: null,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n source: source\n };\n return event;\n });\n this.columnAnimationService.finish();\n };\n // does an action on a set of columns. provides common functionality for looking up the\n // columns based on key, getting a list of effected columns, and then updated the event\n // with either one column (if it was just one col) or a list of columns\n // used by: autoResize, setVisible, setPinned\n ColumnModel.prototype.actionOnGridColumns = function (// the column keys this action will be on\n keys, \n // the action to do - if this returns false, the column was skipped\n // and won't be included in the event\n action, \n // should return back a column event of the right type\n source, createEvent) {\n var _this = this;\n if (missingOrEmpty(keys)) {\n return;\n }\n var updatedColumns = [];\n keys.forEach(function (key) {\n var column = _this.getGridColumn(key);\n if (!column) {\n return;\n }\n // need to check for false with type (ie !== instead of !=)\n // as not returning anything (undefined) would also be false\n var resultOfAction = action(column);\n if (resultOfAction !== false) {\n updatedColumns.push(column);\n }\n });\n if (!updatedColumns.length) {\n return;\n }\n this.updateDisplayedColumns(source);\n if (exists(createEvent) && createEvent) {\n var event_4 = createEvent();\n event_4.columns = updatedColumns;\n event_4.column = updatedColumns.length === 1 ? updatedColumns[0] : null;\n this.eventService.dispatchEvent(event_4);\n }\n };\n ColumnModel.prototype.getDisplayedColBefore = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex > 0) {\n return allDisplayedColumns[oldIndex - 1];\n }\n return null;\n };\n // used by:\n // + rowRenderer -> for navigation\n ColumnModel.prototype.getDisplayedColAfter = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex < (allDisplayedColumns.length - 1)) {\n return allDisplayedColumns[oldIndex + 1];\n }\n return null;\n };\n ColumnModel.prototype.getDisplayedGroupAfter = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'After');\n };\n ColumnModel.prototype.getDisplayedGroupBefore = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'Before');\n };\n ColumnModel.prototype.getDisplayedGroupAtDirection = function (columnGroup, direction) {\n // pick the last displayed column in this group\n var requiredLevel = columnGroup.getProvidedColumnGroup().getLevel() + columnGroup.getPaddingLevel();\n var colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();\n var col = direction === 'After' ? last(colGroupLeafColumns) : colGroupLeafColumns[0];\n var getDisplayColMethod = \"getDisplayedCol\" + direction;\n while (true) {\n // keep moving to the next col, until we get to another group\n var column = this[getDisplayColMethod](col);\n if (!column) {\n return null;\n }\n var groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);\n if (groupPointer !== columnGroup) {\n return groupPointer;\n }\n }\n };\n ColumnModel.prototype.getColumnGroupAtLevel = function (column, level) {\n // get group at same level as the one we are looking for\n var groupPointer = column.getParent();\n var originalGroupLevel;\n var groupPointerLevel;\n while (true) {\n var groupPointerProvidedColumnGroup = groupPointer.getProvidedColumnGroup();\n originalGroupLevel = groupPointerProvidedColumnGroup.getLevel();\n groupPointerLevel = groupPointer.getPaddingLevel();\n if (originalGroupLevel + groupPointerLevel <= level) {\n break;\n }\n groupPointer = groupPointer.getParent();\n }\n return groupPointer;\n };\n ColumnModel.prototype.isPinningLeft = function () {\n return this.displayedColumnsLeft.length > 0;\n };\n ColumnModel.prototype.isPinningRight = function () {\n return this.displayedColumnsRight.length > 0;\n };\n ColumnModel.prototype.getPrimaryAndSecondaryAndAutoColumns = function () {\n var _a;\n return (_a = []).concat.apply(_a, __spread([\n this.primaryColumns || [],\n this.groupAutoColumns || [],\n this.secondaryColumns || [],\n ]));\n };\n ColumnModel.prototype.getPrimaryAndAutoGroupCols = function () {\n var _a;\n return (_a = []).concat.apply(_a, __spread([\n this.primaryColumns || [],\n this.groupAutoColumns || [],\n ]));\n };\n ColumnModel.prototype.getPrimaryAndSecondaryColumns = function () {\n var _a;\n return (_a = []).concat.apply(_a, __spread([\n this.primaryColumns || [],\n this.secondaryColumns || [],\n ]));\n };\n ColumnModel.prototype.createStateItemFromColumn = function (column) {\n var rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;\n var pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;\n var aggFunc = column.isValueActive() ? column.getAggFunc() : null;\n var sort = column.getSort() != null ? column.getSort() : null;\n var sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;\n var flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;\n var res = {\n colId: column.getColId(),\n width: column.getActualWidth(),\n hide: !column.isVisible(),\n pinned: column.getPinned(),\n sort: sort,\n sortIndex: sortIndex,\n aggFunc: aggFunc,\n rowGroup: column.isRowGroupActive(),\n rowGroupIndex: rowGroupIndex,\n pivot: column.isPivotActive(),\n pivotIndex: pivotIndex,\n flex: flex\n };\n return res;\n };\n ColumnModel.prototype.getColumnState = function () {\n if (missing(this.primaryColumns) || !this.isAlive()) {\n return [];\n }\n var colsForState = this.getPrimaryAndSecondaryAndAutoColumns();\n var res = colsForState.map(this.createStateItemFromColumn.bind(this));\n this.orderColumnStateList(res);\n return res;\n };\n ColumnModel.prototype.orderColumnStateList = function (columnStateList) {\n // for fast looking, store the index of each column\n var colIdToGridIndexMap = convertToMap(this.gridColumns.map(function (col, index) { return [col.getColId(), index]; }));\n columnStateList.sort(function (itemA, itemB) {\n var posA = colIdToGridIndexMap.has(itemA.colId) ? colIdToGridIndexMap.get(itemA.colId) : -1;\n var posB = colIdToGridIndexMap.has(itemB.colId) ? colIdToGridIndexMap.get(itemB.colId) : -1;\n return posA - posB;\n });\n };\n ColumnModel.prototype.resetColumnState = function (source) {\n // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,\n // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.\n // As a work around, developers should just put lockPosition columns first in their colDef list.\n if (source === void 0) { source = \"api\"; }\n // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list\n var primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n var columnStates = [];\n // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.\n // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,\n // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000\n var letRowGroupIndex = 1000;\n var letPivotIndex = 1000;\n var colsToProcess = [];\n if (this.groupAutoColumns) {\n colsToProcess = colsToProcess.concat(this.groupAutoColumns);\n }\n if (primaryColumns) {\n colsToProcess = colsToProcess.concat(primaryColumns);\n }\n colsToProcess.forEach(function (column) {\n var getValueOrNull = function (a, b) { return a != null ? a : b != null ? b : null; };\n var colDef = column.getColDef();\n var sort = getValueOrNull(colDef.sort, colDef.initialSort);\n var sortIndex = getValueOrNull(colDef.sortIndex, colDef.initialSortIndex);\n var hide = getValueOrNull(colDef.hide, colDef.initialHide);\n var pinned = getValueOrNull(colDef.pinned, colDef.initialPinned);\n var width = getValueOrNull(colDef.width, colDef.initialWidth);\n var flex = getValueOrNull(colDef.flex, colDef.initialFlex);\n var rowGroupIndex = getValueOrNull(colDef.rowGroupIndex, colDef.initialRowGroupIndex);\n var rowGroup = getValueOrNull(colDef.rowGroup, colDef.initialRowGroup);\n if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {\n rowGroupIndex = null;\n rowGroup = null;\n }\n var pivotIndex = getValueOrNull(colDef.pivotIndex, colDef.initialPivotIndex);\n var pivot = getValueOrNull(colDef.pivot, colDef.initialPivot);\n if (pivotIndex == null && (pivot == null || pivot == false)) {\n pivotIndex = null;\n pivot = null;\n }\n var aggFunc = getValueOrNull(colDef.aggFunc, colDef.initialAggFunc);\n var stateItem = {\n colId: column.getColId(),\n sort: sort,\n sortIndex: sortIndex,\n hide: hide,\n pinned: pinned,\n width: width,\n flex: flex,\n rowGroup: rowGroup,\n rowGroupIndex: rowGroupIndex,\n pivot: pivot,\n pivotIndex: pivotIndex,\n aggFunc: aggFunc,\n };\n if (missing(rowGroupIndex) && rowGroup) {\n stateItem.rowGroupIndex = letRowGroupIndex++;\n }\n if (missing(pivotIndex) && pivot) {\n stateItem.pivotIndex = letPivotIndex++;\n }\n columnStates.push(stateItem);\n });\n this.applyColumnState({ state: columnStates, applyOrder: true }, source);\n };\n ColumnModel.prototype.applyColumnState = function (params, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (missingOrEmpty(this.primaryColumns)) {\n return false;\n }\n if (params && params.state && !params.state.forEach) {\n console.warn('AG Grid: applyColumnState() - the state attribute should be an array, however an array was not found. Please provide an array of items (one for each col you want to change) for state.');\n return false;\n }\n var applyStates = function (states, existingColumns, getById) {\n var raiseEventsFunc = _this.compareColumnStatesAndRaiseEvents(source);\n _this.autoGroupsNeedBuilding = true;\n // at the end below, this list will have all columns we got no state for\n var columnsWithNoState = existingColumns.slice();\n var rowGroupIndexes = {};\n var pivotIndexes = {};\n var autoGroupColumnStates = [];\n // If pivoting is modified, these are the states we try to reapply after\n // the secondary columns are re-generated\n var unmatchedAndAutoStates = [];\n var unmatchedCount = 0;\n var previousRowGroupCols = _this.rowGroupColumns.slice();\n var previousPivotCols = _this.pivotColumns.slice();\n states.forEach(function (state) {\n var colId = state.colId || '';\n // auto group columns are re-created so deferring syncing with ColumnState\n var isAutoGroupColumn = colId.startsWith(Constants.GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupColumn) {\n autoGroupColumnStates.push(state);\n unmatchedAndAutoStates.push(state);\n return;\n }\n var column = getById(colId);\n if (!column) {\n unmatchedAndAutoStates.push(state);\n unmatchedCount += 1;\n }\n else {\n _this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n removeFromArray(columnsWithNoState, column);\n }\n });\n // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden\n var applyDefaultsFunc = function (col) {\n return _this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n };\n columnsWithNoState.forEach(applyDefaultsFunc);\n // sort the lists according to the indexes that were provided\n var comparator = function (indexes, oldList, colA, colB) {\n var indexA = indexes[colA.getId()];\n var indexB = indexes[colB.getId()];\n var aHasIndex = indexA != null;\n var bHasIndex = indexB != null;\n if (aHasIndex && bHasIndex) {\n // both a and b are new cols with index, so sort on index\n return indexA - indexB;\n }\n if (aHasIndex) {\n // a has an index, so it should be before a\n return -1;\n }\n if (bHasIndex) {\n // b has an index, so it should be before a\n return 1;\n }\n var oldIndexA = oldList.indexOf(colA);\n var oldIndexB = oldList.indexOf(colB);\n var aHasOldIndex = oldIndexA >= 0;\n var bHasOldIndex = oldIndexB >= 0;\n if (aHasOldIndex && bHasOldIndex) {\n // both a and b are old cols, so sort based on last order\n return oldIndexA - oldIndexB;\n }\n if (aHasOldIndex) {\n // a is old, b is new, so b is first\n return -1;\n }\n // this bit does matter, means both are new cols\n // but without index or that b is old and a is new\n return 1;\n };\n _this.rowGroupColumns.sort(comparator.bind(_this, rowGroupIndexes, previousRowGroupCols));\n _this.pivotColumns.sort(comparator.bind(_this, pivotIndexes, previousPivotCols));\n _this.updateGridColumns();\n // sync newly created auto group columns with ColumnState\n var autoGroupColsCopy = _this.groupAutoColumns ? _this.groupAutoColumns.slice() : [];\n autoGroupColumnStates.forEach(function (stateItem) {\n var autoCol = _this.getAutoColumn(stateItem.colId);\n removeFromArray(autoGroupColsCopy, autoCol);\n _this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);\n });\n // autogroup cols with nothing else, apply the default\n autoGroupColsCopy.forEach(applyDefaultsFunc);\n _this.applyOrderAfterApplyState(params);\n _this.updateDisplayedColumns(source);\n _this.dispatchEverythingChanged(source);\n raiseEventsFunc(); // Will trigger secondary column changes if pivoting modified\n return { unmatchedAndAutoStates: unmatchedAndAutoStates, unmatchedCount: unmatchedCount };\n };\n this.columnAnimationService.start();\n var _a = applyStates(params.state || [], this.primaryColumns || [], function (id) { return _this.getPrimaryColumn(id); }), unmatchedAndAutoStates = _a.unmatchedAndAutoStates, unmatchedCount = _a.unmatchedCount;\n // If there are still states left over, see if we can apply them to newly generated\n // secondary or auto columns. Also if defaults exist, ensure they are applied to secondary cols\n if (unmatchedAndAutoStates.length > 0 || exists(params.defaultState)) {\n unmatchedCount = applyStates(unmatchedAndAutoStates, this.secondaryColumns || [], function (id) { return _this.getSecondaryColumn(id); }).unmatchedCount;\n }\n this.columnAnimationService.finish();\n return unmatchedCount === 0; // Successful if no states unaccounted for\n };\n ColumnModel.prototype.applyOrderAfterApplyState = function (params) {\n var _this = this;\n if (!params.applyOrder || !params.state) {\n return;\n }\n var newOrder = [];\n var processedColIds = {};\n params.state.forEach(function (item) {\n if (!item.colId || processedColIds[item.colId]) {\n return;\n }\n var col = _this.gridColumnsMap[item.colId];\n if (col) {\n newOrder.push(col);\n processedColIds[item.colId] = true;\n }\n });\n // add in all other columns\n var autoGroupInsertIndex = 0;\n this.gridColumns.forEach(function (col) {\n var colId = col.getColId();\n var alreadyProcessed = processedColIds[colId] != null;\n if (alreadyProcessed) {\n return;\n }\n var isAutoGroupCol = colId.startsWith(Constants.GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupCol) {\n // auto group columns, if missing from state list, are added to the start.\n // it's common to have autoGroup missing, as grouping could be on by default\n // on a column, but the user could of since removed the grouping via the UI.\n // if we don't inc the insert index, autoGroups will be inserted in reverse order\n insertIntoArray(newOrder, col, autoGroupInsertIndex++);\n }\n else {\n // normal columns, if missing from state list, are added at the end\n newOrder.push(col);\n }\n });\n // this is already done in updateGridColumns, however we changed the order above (to match the order of the state\n // columns) so we need to do it again. we could of put logic into the order above to take into account fixed\n // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here\n // is less sexy for the code here, but it keeps consistency.\n newOrder = this.placeLockedColumns(newOrder);\n if (!this.doesMovePassMarryChildren(newOrder)) {\n console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');\n return;\n }\n this.gridColumns = newOrder;\n };\n ColumnModel.prototype.compareColumnStatesAndRaiseEvents = function (source) {\n var _this = this;\n var startState = {\n rowGroupColumns: this.rowGroupColumns.slice(),\n pivotColumns: this.pivotColumns.slice(),\n valueColumns: this.valueColumns.slice()\n };\n var columnStateBefore = this.getColumnState();\n var columnStateBeforeMap = {};\n columnStateBefore.forEach(function (col) {\n columnStateBeforeMap[col.colId] = col;\n });\n return function () {\n if (_this.gridOptionsWrapper.isSuppressColumnStateEvents()) {\n return;\n }\n var colsForState = _this.getPrimaryAndSecondaryAndAutoColumns();\n // raises generic ColumnEvents where all columns are returned rather than what has changed\n var raiseWhenListsDifferent = function (eventType, colsBefore, colsAfter, idMapper) {\n var beforeList = colsBefore.map(idMapper);\n var afterList = colsAfter.map(idMapper);\n var unchanged = areEqual(beforeList, afterList);\n if (unchanged) {\n return;\n }\n // returning all columns rather than what has changed!\n var event = {\n type: eventType,\n columns: colsAfter,\n column: colsAfter.length === 1 ? colsAfter[0] : null,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n source: source\n };\n _this.eventService.dispatchEvent(event);\n };\n // determines which columns have changed according to supplied predicate\n var getChangedColumns = function (changedPredicate) {\n var changedColumns = [];\n colsForState.forEach(function (column) {\n var colStateBefore = columnStateBeforeMap[column.getColId()];\n if (colStateBefore && changedPredicate(colStateBefore, column)) {\n changedColumns.push(column);\n }\n });\n return changedColumns;\n };\n var columnIdMapper = function (c) { return c.getColId(); };\n raiseWhenListsDifferent(Events.EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);\n raiseWhenListsDifferent(Events.EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, _this.pivotColumns, columnIdMapper);\n var valueChangePredicate = function (cs, c) {\n var oldActive = cs.aggFunc != null;\n var activeChanged = oldActive != c.isValueActive();\n // we only check aggFunc if the agg is active\n var aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();\n return activeChanged || aggFuncChanged;\n };\n var changedValues = getChangedColumns(valueChangePredicate);\n if (changedValues.length > 0) {\n // we pass all value columns, now the ones that changed. this is the same\n // as pivot and rowGroup cols, but different to all other properties below.\n // this is more for backwards compatibility, as it's always been this way.\n // really it should be the other way, as the order of the cols makes no difference\n // for valueColumns (apart from displaying them in the tool panel).\n _this.fireColumnEvent(Events.EVENT_COLUMN_VALUE_CHANGED, _this.valueColumns, source);\n }\n var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };\n _this.fireColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);\n var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };\n _this.raiseColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);\n var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };\n _this.raiseColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);\n var sortChangePredicate = function (cs, c) { return cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex(); };\n if (getChangedColumns(sortChangePredicate).length > 0) {\n _this.sortController.dispatchSortChangedEvents(source);\n }\n // special handling for moved column events\n _this.raiseColumnMovedEvent(columnStateBefore, source);\n };\n };\n ColumnModel.prototype.raiseColumnPinnedEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var pinned = this.getCommonValue(changedColumns, function (col) { return col.getPinned(); });\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'\n pinned: pinned != null ? pinned : null,\n columns: changedColumns,\n column: column,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.getCommonValue = function (cols, valueGetter) {\n if (!cols || cols.length == 0) {\n return undefined;\n }\n // compare each value to the first value. if nothing differs, then value is common so return it.\n var firstValue = valueGetter(cols[0]);\n for (var i = 1; i < cols.length; i++) {\n if (firstValue !== valueGetter(cols[i])) {\n // values differ, no common value\n return undefined;\n }\n }\n return firstValue;\n };\n ColumnModel.prototype.raiseColumnVisibleEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var visible = this.getCommonValue(changedColumns, function (col) { return col.isVisible(); });\n var event = {\n type: Events.EVENT_COLUMN_VISIBLE,\n visible: visible,\n columns: changedColumns,\n column: column,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.raiseColumnMovedEvent = function (colStateBefore, source) {\n // we are only interested in columns that were both present and visible before and after\n var _this = this;\n var colStateAfter = this.getColumnState();\n var colStateAfterMapped = {};\n colStateAfter.forEach(function (s) { return colStateAfterMapped[s.colId] = s; });\n // get id's of cols in both before and after lists\n var colsIntersectIds = {};\n colStateBefore.forEach(function (s) {\n if (colStateAfterMapped[s.colId]) {\n colsIntersectIds[s.colId] = true;\n }\n });\n // filter state lists, so we only have cols that were present before and after\n var beforeFiltered = colStateBefore.filter(function (c) { return colsIntersectIds[c.colId]; });\n var afterFiltered = colStateAfter.filter(function (c) { return colsIntersectIds[c.colId]; });\n // see if any cols are in a different location\n var movedColumns = [];\n afterFiltered.forEach(function (csAfter, index) {\n var csBefore = beforeFiltered && beforeFiltered[index];\n if (csBefore && csBefore.colId !== csAfter.colId) {\n var gridCol = _this.getGridColumn(csBefore.colId);\n if (gridCol) {\n movedColumns.push(gridCol);\n }\n }\n });\n if (!movedColumns.length) {\n return;\n }\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: movedColumns,\n column: null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.syncColumnWithStateItem = function (column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {\n if (!column) {\n return;\n }\n var getValue = function (key1, key2) {\n var obj = { value1: undefined, value2: undefined };\n var calculated = false;\n if (stateItem) {\n if (stateItem[key1] !== undefined) {\n obj.value1 = stateItem[key1];\n calculated = true;\n }\n if (exists(key2) && stateItem[key2] !== undefined) {\n obj.value2 = stateItem[key2];\n calculated = true;\n }\n }\n if (!calculated && defaultState) {\n if (defaultState[key1] !== undefined) {\n obj.value1 = defaultState[key1];\n }\n if (exists(key2) && defaultState[key2] !== undefined) {\n obj.value2 = defaultState[key2];\n }\n }\n return obj;\n };\n // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true\n var hide = getValue('hide').value1;\n if (hide !== undefined) {\n column.setVisible(!hide, source);\n }\n // sets pinned to 'left' or 'right'\n var pinned = getValue('pinned').value1;\n if (pinned !== undefined) {\n column.setPinned(pinned);\n }\n // if width provided and valid, use it, otherwise stick with the old width\n var minColWidth = this.columnUtils.calculateColMinWidth(column.getColDef());\n // flex\n var flex = getValue('flex').value1;\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = getValue('width').value1;\n if (width != null) {\n if (minColWidth != null && width >= minColWidth) {\n column.setActualWidth(width, source);\n }\n }\n }\n var sort = getValue('sort').value1;\n if (sort !== undefined) {\n if (sort === Constants.SORT_DESC || sort === Constants.SORT_ASC) {\n column.setSort(sort, source);\n }\n else {\n column.setSort(undefined, source);\n }\n }\n var sortIndex = getValue('sortIndex').value1;\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // we do not do aggFunc, rowGroup or pivot for auto cols or secondary cols\n if (autoCol || !column.isPrimary()) {\n return;\n }\n var aggFunc = getValue('aggFunc').value1;\n if (aggFunc !== undefined) {\n if (typeof aggFunc === 'string') {\n column.setAggFunc(aggFunc);\n if (!column.isValueActive()) {\n column.setValueActive(true, source);\n this.valueColumns.push(column);\n }\n }\n else {\n if (exists(aggFunc)) {\n console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +\n 'functions, register the functions first before using them in get/set state. This is because it is ' +\n 'intended for the column state to be stored and retrieved as simple JSON.');\n }\n // Note: we do not call column.setAggFunc(null), so that next time we aggregate\n // by this column (eg drag the column to the agg section int he toolpanel) it will\n // default to the last aggregation function.\n if (column.isValueActive()) {\n column.setValueActive(false, source);\n removeFromArray(this.valueColumns, column);\n }\n }\n }\n var _a = getValue('rowGroup', 'rowGroupIndex'), rowGroup = _a.value1, rowGroupIndex = _a.value2;\n if (rowGroup !== undefined || rowGroupIndex !== undefined) {\n if (typeof rowGroupIndex === 'number' || rowGroup) {\n if (!column.isRowGroupActive()) {\n column.setRowGroupActive(true, source);\n this.rowGroupColumns.push(column);\n }\n if (rowGroupIndexes && typeof rowGroupIndex === 'number') {\n rowGroupIndexes[column.getId()] = rowGroupIndex;\n }\n }\n else {\n if (column.isRowGroupActive()) {\n column.setRowGroupActive(false, source);\n removeFromArray(this.rowGroupColumns, column);\n }\n }\n }\n var _b = getValue('pivot', 'pivotIndex'), pivot = _b.value1, pivotIndex = _b.value2;\n if (pivot !== undefined || pivotIndex !== undefined) {\n if (typeof pivotIndex === 'number' || pivot) {\n if (!column.isPivotActive()) {\n column.setPivotActive(true, source);\n this.pivotColumns.push(column);\n }\n if (pivotIndexes && typeof pivotIndex === 'number') {\n pivotIndexes[column.getId()] = pivotIndex;\n }\n }\n else {\n if (column.isPivotActive()) {\n column.setPivotActive(false, source);\n removeFromArray(this.pivotColumns, column);\n }\n }\n }\n };\n ColumnModel.prototype.getGridColumns = function (keys) {\n return this.getColumns(keys, this.getGridColumn.bind(this));\n };\n ColumnModel.prototype.getColumns = function (keys, columnLookupCallback) {\n var foundColumns = [];\n if (keys) {\n keys.forEach(function (key) {\n var column = columnLookupCallback(key);\n if (column) {\n foundColumns.push(column);\n }\n });\n }\n return foundColumns;\n };\n // used by growGroupPanel\n ColumnModel.prototype.getColumnWithValidation = function (key) {\n if (key == null) {\n return null;\n }\n var column = this.getGridColumn(key);\n if (!column) {\n console.warn('AG Grid: could not find column ' + key);\n }\n return column;\n };\n ColumnModel.prototype.getPrimaryColumn = function (key) {\n if (!this.primaryColumns) {\n return null;\n }\n return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);\n };\n ColumnModel.prototype.getGridColumn = function (key) {\n return this.getColumn(key, this.gridColumns, this.gridColumnsMap);\n };\n ColumnModel.prototype.getSecondaryColumn = function (key) {\n if (!this.secondaryColumns) {\n return null;\n }\n return this.getColumn(key, this.secondaryColumns, this.secondaryColumnsMap);\n };\n ColumnModel.prototype.getColumn = function (key, columnList, columnMap) {\n if (!key) {\n return null;\n }\n // most of the time this method gets called the key is a string, so we put this shortcut in\n // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)\n if (typeof key == 'string' && columnMap[key]) {\n return columnMap[key];\n }\n for (var i = 0; i < columnList.length; i++) {\n if (this.columnsMatch(columnList[i], key)) {\n return columnList[i];\n }\n }\n return this.getAutoColumn(key);\n };\n ColumnModel.prototype.getAutoColumn = function (key) {\n var _this = this;\n if (!this.groupAutoColumns ||\n !exists(this.groupAutoColumns) ||\n missing(this.groupAutoColumns)) {\n return null;\n }\n return this.groupAutoColumns.find(function (groupCol) { return _this.columnsMatch(groupCol, key); }) || null;\n };\n ColumnModel.prototype.columnsMatch = function (column, key) {\n var columnMatches = column === key;\n var colDefMatches = column.getColDef() === key;\n var idMatches = column.getColId() == key;\n return columnMatches || colDefMatches || idMatches;\n };\n ColumnModel.prototype.getDisplayNameForColumn = function (column, location, includeAggFunc) {\n if (includeAggFunc === void 0) { includeAggFunc = false; }\n if (!column) {\n return null;\n }\n var headerName = this.getHeaderName(column.getColDef(), column, null, null, location);\n if (includeAggFunc) {\n return this.wrapHeaderNameWithAggFunc(column, headerName);\n }\n return headerName;\n };\n ColumnModel.prototype.getDisplayNameForProvidedColumnGroup = function (columnGroup, providedColumnGroup, location) {\n var colGroupDef = providedColumnGroup ? providedColumnGroup.getColGroupDef() : null;\n if (colGroupDef) {\n return this.getHeaderName(colGroupDef, null, columnGroup, providedColumnGroup, location);\n }\n return null;\n };\n ColumnModel.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) {\n return this.getDisplayNameForProvidedColumnGroup(columnGroup, columnGroup.getProvidedColumnGroup(), location);\n };\n // location is where the column is going to appear, ie who is calling us\n ColumnModel.prototype.getHeaderName = function (colDef, column, columnGroup, providedColumnGroup, location) {\n var headerValueGetter = colDef.headerValueGetter;\n if (headerValueGetter) {\n var params = {\n colDef: colDef,\n column: column,\n columnGroup: columnGroup,\n providedColumnGroup: providedColumnGroup,\n location: location,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n if (typeof headerValueGetter === 'function') {\n // valueGetter is a function, so just call it\n return headerValueGetter(params);\n }\n else if (typeof headerValueGetter === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.expressionService.evaluate(headerValueGetter, params);\n }\n console.warn('ag-grid: headerValueGetter must be a function or a string');\n return '';\n }\n else if (colDef.headerName != null) {\n return colDef.headerName;\n }\n else if (colDef.field) {\n return camelCaseToHumanText(colDef.field);\n }\n return '';\n };\n ColumnModel.prototype.wrapHeaderNameWithAggFunc = function (column, headerName) {\n if (this.gridOptionsWrapper.isSuppressAggFuncInHeader()) {\n return headerName;\n }\n // only columns with aggregation active can have aggregations\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotActiveOnThisColumn = exists(pivotValueColumn);\n var aggFunc = null;\n var aggFuncFound;\n // otherwise we have a measure that is active, and we are doing aggregation on it\n if (pivotActiveOnThisColumn) {\n var isCollapsedHeaderEnabled = this.gridOptionsWrapper.isRemovePivotHeaderRowWhenSingleValueColumn() && this.valueColumns.length === 1;\n var isTotalColumn = column.getColDef().pivotTotalColumnIds !== undefined;\n if (isCollapsedHeaderEnabled && !isTotalColumn) {\n return headerName; // Skip decorating the header - in this case the label is the pivot key, not the value col\n }\n aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;\n aggFuncFound = true;\n }\n else {\n var measureActive = column.isValueActive();\n var aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();\n if (measureActive && aggregationPresent) {\n aggFunc = column.getAggFunc();\n aggFuncFound = true;\n }\n else {\n aggFuncFound = false;\n }\n }\n if (aggFuncFound) {\n var aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n return aggFuncStringTranslated + \"(\" + headerName + \")\";\n }\n return headerName;\n };\n // returns the group with matching colId and instanceId. If instanceId is missing,\n // matches only on the colId.\n ColumnModel.prototype.getColumnGroup = function (colId, instanceId) {\n if (!colId) {\n return null;\n }\n if (colId instanceof ColumnGroup) {\n return colId;\n }\n var allColumnGroups = this.getAllDisplayedTrees();\n var checkInstanceId = typeof instanceId === 'number';\n var result = null;\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n var columnGroup = child;\n var matched = void 0;\n if (checkInstanceId) {\n matched = colId === columnGroup.getGroupId() && instanceId === columnGroup.getInstanceId();\n }\n else {\n matched = colId === columnGroup.getGroupId();\n }\n if (matched) {\n result = columnGroup;\n }\n }\n });\n return result;\n };\n ColumnModel.prototype.isReady = function () {\n return this.ready;\n };\n ColumnModel.prototype.extractValueColumns = function (source, oldPrimaryColumns) {\n this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, function (col, flag) { return col.setValueActive(flag, source); }, \n // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null\n function () { return undefined; }, function () { return undefined; }, \n // aggFunc is a string, so return it's existence\n function (colDef) {\n var aggFunc = colDef.aggFunc;\n // null or empty string means clear\n if (aggFunc === null || aggFunc === '') {\n return null;\n }\n if (aggFunc === undefined) {\n return;\n }\n return !!aggFunc;\n }, function (colDef) {\n // return false if any of the following: null, undefined, empty string\n return colDef.initialAggFunc != null && colDef.initialAggFunc != '';\n });\n // all new columns added will have aggFunc missing, so set it to what is in the colDef\n this.valueColumns.forEach(function (col) {\n var colDef = col.getColDef();\n // if aggFunc provided, we always override, as reactive property\n if (colDef.aggFunc != null && colDef.aggFunc != '') {\n col.setAggFunc(colDef.aggFunc);\n }\n else {\n // otherwise we use initialAggFunc only if no agg func set - which happens when new column only\n if (!col.getAggFunc()) {\n col.setAggFunc(colDef.initialAggFunc);\n }\n }\n });\n };\n ColumnModel.prototype.extractRowGroupColumns = function (source, oldPrimaryColumns) {\n this.rowGroupColumns = this.extractColumns(oldPrimaryColumns, this.rowGroupColumns, function (col, flag) { return col.setRowGroupActive(flag, source); }, function (colDef) { return colDef.rowGroupIndex; }, function (colDef) { return colDef.initialRowGroupIndex; }, function (colDef) { return colDef.rowGroup; }, function (colDef) { return colDef.initialRowGroup; });\n };\n ColumnModel.prototype.extractColumns = function (oldPrimaryColumns, previousCols, setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {\n if (oldPrimaryColumns === void 0) { oldPrimaryColumns = []; }\n if (previousCols === void 0) { previousCols = []; }\n var colsWithIndex = [];\n var colsWithValue = [];\n // go though all cols.\n // if value, change\n // if default only, change only if new\n (this.primaryColumns || []).forEach(function (col) {\n var colIsNew = oldPrimaryColumns.indexOf(col) < 0;\n var colDef = col.getColDef();\n var value = attrToBoolean(getValueFunc(colDef));\n var initialValue = attrToBoolean(getInitialValueFunc(colDef));\n var index = attrToNumber(getIndexFunc(colDef));\n var initialIndex = attrToNumber(getInitialIndexFunc(colDef));\n var include;\n var valuePresent = value !== undefined;\n var indexPresent = index !== undefined;\n var initialValuePresent = initialValue !== undefined;\n var initialIndexPresent = initialIndex !== undefined;\n if (valuePresent) {\n include = value; // boolean value is guaranteed as attrToBoolean() is used above\n }\n else if (indexPresent) {\n if (index === null) {\n // if col is new we don't want to use the default / initial if index is set to null. Similarly,\n // we don't want to include the property for existing columns, i.e. we want to 'clear' it.\n include = false;\n }\n else {\n // note that 'null >= 0' evaluates to true which means 'rowGroupIndex = null' would enable row\n // grouping if the null check didn't exist above.\n include = index >= 0;\n }\n }\n else {\n if (colIsNew) {\n // as no value or index is 'present' we use the default / initial when col is new\n if (initialValuePresent) {\n include = initialValue;\n }\n else if (initialIndexPresent) {\n include = initialIndex != null && initialIndex >= 0;\n }\n else {\n include = false;\n }\n }\n else {\n // otherwise include it if included last time, e.g. if we are extracting row group cols and this col\n // is an existing row group col (i.e. it exists in 'previousCols') then we should include it.\n include = previousCols.indexOf(col) >= 0;\n }\n }\n if (include) {\n var useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;\n useIndex ? colsWithIndex.push(col) : colsWithValue.push(col);\n }\n });\n var getIndexForCol = function (col) {\n var index = getIndexFunc(col.getColDef());\n var defaultIndex = getInitialIndexFunc(col.getColDef());\n return index != null ? index : defaultIndex;\n };\n // sort cols with index, and add these first\n colsWithIndex.sort(function (colA, colB) {\n var indexA = getIndexForCol(colA);\n var indexB = getIndexForCol(colB);\n if (indexA === indexB) {\n return 0;\n }\n if (indexA < indexB) {\n return -1;\n }\n return 1;\n });\n var res = [].concat(colsWithIndex);\n // second add columns that were there before and in the same order as they were before,\n // so we are preserving order of current grouping of columns that simply have rowGroup=true\n previousCols.forEach(function (col) {\n if (colsWithValue.indexOf(col) >= 0) {\n res.push(col);\n }\n });\n // lastly put in all remaining cols\n colsWithValue.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n res.push(col);\n }\n });\n // set flag=false for removed cols\n previousCols.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n setFlagFunc(col, false);\n }\n });\n // set flag=true for newly added cols\n res.forEach(function (col) {\n if (previousCols.indexOf(col) < 0) {\n setFlagFunc(col, true);\n }\n });\n return res;\n };\n ColumnModel.prototype.extractPivotColumns = function (source, oldPrimaryColumns) {\n this.pivotColumns = this.extractColumns(oldPrimaryColumns, this.pivotColumns, function (col, flag) { return col.setPivotActive(flag, source); }, function (colDef) { return colDef.pivotIndex; }, function (colDef) { return colDef.initialPivotIndex; }, function (colDef) { return colDef.pivot; }, function (colDef) { return colDef.initialPivot; });\n };\n ColumnModel.prototype.resetColumnGroupState = function (source) {\n if (source === void 0) { source = \"api\"; }\n var stateItems = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, function (child) {\n if (child instanceof ProvidedColumnGroup) {\n var colGroupDef = child.getColGroupDef();\n var groupState = {\n groupId: child.getGroupId(),\n open: !colGroupDef ? undefined : colGroupDef.openByDefault\n };\n stateItems.push(groupState);\n }\n });\n this.setColumnGroupState(stateItems, source);\n };\n ColumnModel.prototype.getColumnGroupState = function () {\n var columnGroupState = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof ProvidedColumnGroup) {\n columnGroupState.push({\n groupId: node.getGroupId(),\n open: node.isExpanded()\n });\n }\n });\n return columnGroupState;\n };\n ColumnModel.prototype.setColumnGroupState = function (stateItems, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n var impactedGroups = [];\n stateItems.forEach(function (stateItem) {\n var groupKey = stateItem.groupId;\n var newValue = stateItem.open;\n var providedColumnGroup = _this.getProvidedColumnGroup(groupKey);\n if (!providedColumnGroup) {\n return;\n }\n if (providedColumnGroup.isExpanded() === newValue) {\n return;\n }\n _this.logger.log('columnGroupOpened(' + providedColumnGroup.getGroupId() + ',' + newValue + ')');\n providedColumnGroup.setExpanded(newValue);\n impactedGroups.push(providedColumnGroup);\n });\n this.updateGroupsAndDisplayedColumns(source);\n this.setFirstRightAndLastLeftPinned(source);\n impactedGroups.forEach(function (providedColumnGroup) {\n var event = {\n type: Events.EVENT_COLUMN_GROUP_OPENED,\n columnGroup: providedColumnGroup,\n api: _this.gridApi,\n columnApi: _this.columnApi\n };\n _this.eventService.dispatchEvent(event);\n });\n this.columnAnimationService.finish();\n };\n // called by headerRenderer - when a header is opened or closed\n ColumnModel.prototype.setColumnGroupOpened = function (key, newValue, source) {\n if (source === void 0) { source = \"api\"; }\n var keyAsString;\n if (key instanceof ProvidedColumnGroup) {\n keyAsString = key.getId();\n }\n else {\n keyAsString = key || '';\n }\n this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);\n };\n ColumnModel.prototype.getProvidedColumnGroup = function (key) {\n // if (key instanceof ProvidedColumnGroup) { return key; }\n if (typeof key !== 'string') {\n console.error('AG Grid: group key must be a string');\n }\n // otherwise, search for the column group by id\n var res = null;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof ProvidedColumnGroup) {\n if (node.getId() === key) {\n res = node;\n }\n }\n });\n return res;\n };\n ColumnModel.prototype.calculateColumnsForDisplay = function () {\n var _this = this;\n var columnsForDisplay;\n if (this.pivotMode && missing(this.secondaryColumns)) {\n // pivot mode is on, but we are not pivoting, so we only\n // show columns we are aggregating on\n columnsForDisplay = this.gridColumns.filter(function (column) {\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n var isValueCol = _this.valueColumns && includes(_this.valueColumns, column);\n return isAutoGroupCol || isValueCol;\n });\n }\n else {\n // otherwise continue as normal. this can be working on the primary\n // or secondary columns, whatever the gridColumns are set to\n columnsForDisplay = this.gridColumns.filter(function (column) {\n // keep col if a) it's auto-group or b) it's visible\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n return isAutoGroupCol || column.isVisible();\n });\n }\n return columnsForDisplay;\n };\n ColumnModel.prototype.checkColSpanActiveInCols = function (columns) {\n var result = false;\n columns.forEach(function (col) {\n if (exists(col.getColDef().colSpan)) {\n result = true;\n }\n });\n return result;\n };\n ColumnModel.prototype.calculateColumnsForGroupDisplay = function () {\n var _this = this;\n this.groupDisplayColumns = [];\n var checkFunc = function (col) {\n var colDef = col.getColDef();\n if (colDef && exists(colDef.showRowGroup)) {\n _this.groupDisplayColumns.push(col);\n }\n };\n this.gridColumns.forEach(checkFunc);\n if (this.groupAutoColumns) {\n this.groupAutoColumns.forEach(checkFunc);\n }\n };\n ColumnModel.prototype.getGroupDisplayColumns = function () {\n return this.groupDisplayColumns;\n };\n ColumnModel.prototype.updateDisplayedColumns = function (source) {\n var columnsForDisplay = this.calculateColumnsForDisplay();\n this.buildDisplayedTrees(columnsForDisplay);\n this.calculateColumnsForGroupDisplay();\n // also called when group opened/closed\n this.updateGroupsAndDisplayedColumns(source);\n // also called when group opened/closed\n this.setFirstRightAndLastLeftPinned(source);\n };\n ColumnModel.prototype.isSecondaryColumnsPresent = function () {\n return exists(this.secondaryColumns);\n };\n ColumnModel.prototype.setSecondaryColumns = function (colDefs, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n var newColsPresent = colDefs && colDefs.length > 0;\n // if not cols passed, and we had no cols anyway, then do nothing\n if (!newColsPresent && missing(this.secondaryColumns)) {\n return;\n }\n if (newColsPresent) {\n this.processSecondaryColumnDefinitions(colDefs);\n var balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false, this.secondaryBalancedTree || this.previousSecondaryColumns || undefined);\n this.secondaryBalancedTree = balancedTreeResult.columnTree;\n this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);\n this.secondaryColumnsMap = {};\n this.secondaryColumns.forEach(function (col) { return _this.secondaryColumnsMap[col.getId()] = col; });\n this.previousSecondaryColumns = null;\n }\n else {\n this.previousSecondaryColumns = this.secondaryBalancedTree;\n this.secondaryBalancedTree = null;\n this.secondaryHeaderRowCount = -1;\n this.secondaryColumns = null;\n this.secondaryColumnsMap = {};\n }\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n };\n ColumnModel.prototype.processSecondaryColumnDefinitions = function (colDefs) {\n var columnCallback = this.gridOptionsWrapper.getProcessSecondaryColDefFunc();\n var groupCallback = this.gridOptionsWrapper.getProcessSecondaryColGroupDefFunc();\n if (!columnCallback && !groupCallback) {\n return undefined;\n }\n var searchForColDefs = function (colDefs2) {\n colDefs2.forEach(function (abstractColDef) {\n var isGroup = exists(abstractColDef.children);\n if (isGroup) {\n var colGroupDef = abstractColDef;\n if (groupCallback) {\n groupCallback(colGroupDef);\n }\n searchForColDefs(colGroupDef.children);\n }\n else {\n var colDef = abstractColDef;\n if (columnCallback) {\n columnCallback(colDef);\n }\n }\n });\n };\n if (colDefs) {\n searchForColDefs(colDefs);\n }\n };\n // called from: setColumnState, setColumnDefs, setSecondaryColumns\n ColumnModel.prototype.updateGridColumns = function () {\n var _this = this;\n if (this.gridColsArePrimary) {\n this.lastPrimaryOrder = this.gridColumns;\n }\n else {\n this.lastSecondaryOrder = this.gridColumns;\n }\n if (this.secondaryColumns && this.secondaryBalancedTree) {\n var hasSameColumns = this.secondaryColumns.every(function (col) {\n return _this.gridColumnsMap[col.getColId()] !== undefined;\n });\n this.gridBalancedTree = this.secondaryBalancedTree.slice();\n this.gridHeaderRowCount = this.secondaryHeaderRowCount;\n this.gridColumns = this.secondaryColumns.slice();\n this.gridColsArePrimary = false;\n // If the current columns are the same or a subset of the previous\n // we keep the previous order, otherwise we go back to the order the pivot\n // cols are generated in\n if (hasSameColumns) {\n this.orderGridColsLike(this.lastSecondaryOrder);\n }\n }\n else if (this.primaryColumns) {\n this.gridBalancedTree = this.primaryColumnTree.slice();\n this.gridHeaderRowCount = this.primaryHeaderRowCount;\n this.gridColumns = this.primaryColumns.slice();\n this.gridColsArePrimary = true;\n // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns\n // when this happens (eg if user moved a column) rather than revert back to the original column order.\n // likewise if changing in/out of pivot mode, we want to maintain the order of the cols\n this.orderGridColsLike(this.lastPrimaryOrder);\n }\n this.addAutoGroupToGridColumns();\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n this.setupQuickFilterColumns();\n this.clearDisplayedAndViewportColumns();\n this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);\n this.gridColumnsMap = {};\n this.gridColumns.forEach(function (col) { return _this.gridColumnsMap[col.getId()] = col; });\n this.setAutoHeightActive();\n var event = {\n type: Events.EVENT_GRID_COLUMNS_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.setAutoHeightActive = function () {\n this.autoHeightActive = this.gridColumns.filter(function (col) { return col.isAutoHeight(); }).length > 0;\n if (this.autoHeightActive) {\n this.autoHeightActiveAtLeastOnce = true;\n var rowModelType = this.rowModel.getType();\n var supportedRowModel = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE || rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n if (!supportedRowModel) {\n var message_1 = 'AG Grid - autoHeight columns only work with Client Side Row Model and Server Side Row Model.';\n doOnce(function () { return console.warn(message_1); }, 'autoHeightActive.wrongRowModel');\n }\n }\n };\n ColumnModel.prototype.orderGridColsLike = function (colsOrder) {\n if (missing(colsOrder)) {\n return;\n }\n var lastOrderMapped = convertToMap(colsOrder.map(function (col, index) { return [col, index]; }));\n // only do the sort if at least one column is accounted for. columns will be not accounted for\n // if changing from secondary to primary columns\n var noColsFound = true;\n this.gridColumns.forEach(function (col) {\n if (lastOrderMapped.has(col)) {\n noColsFound = false;\n }\n });\n if (noColsFound) {\n return;\n }\n // order cols in the same order as before. we need to make sure that all\n // cols still exists, so filter out any that no longer exist.\n var gridColsMap = convertToMap(this.gridColumns.map(function (col) { return [col, true]; }));\n var oldColsOrdered = colsOrder.filter(function (col) { return gridColsMap.has(col); });\n var oldColsMap = convertToMap(oldColsOrdered.map(function (col) { return [col, true]; }));\n var newColsOrdered = this.gridColumns.filter(function (col) { return !oldColsMap.has(col); });\n // add in the new columns, at the end (if no group), or at the end of the group (if a group)\n var newGridColumns = oldColsOrdered.slice();\n newColsOrdered.forEach(function (newCol) {\n var parent = newCol.getOriginalParent();\n // if no parent, means we are not grouping, so just add the column to the end\n if (!parent) {\n newGridColumns.push(newCol);\n return;\n }\n // find the group the column belongs to. if no siblings at the current level (eg col in group on it's\n // own) then go up one level and look for siblings there.\n var siblings = [];\n while (!siblings.length && parent) {\n var leafCols = parent.getLeafColumns();\n leafCols.forEach(function (leafCol) {\n var presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;\n var noYetInSiblings = siblings.indexOf(leafCol) < 0;\n if (presentInNewGriColumns && noYetInSiblings) {\n siblings.push(leafCol);\n }\n });\n parent = parent.getOriginalParent();\n }\n // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own\n if (!siblings.length) {\n newGridColumns.push(newCol);\n return;\n }\n // find index of last column in the group\n var indexes = siblings.map(function (col) { return newGridColumns.indexOf(col); });\n var lastIndex = Math.max.apply(Math, __spread(indexes));\n insertIntoArray(newGridColumns, newCol, lastIndex + 1);\n });\n this.gridColumns = newGridColumns;\n };\n ColumnModel.prototype.isPrimaryColumnGroupsPresent = function () {\n return this.primaryHeaderRowCount > 1;\n };\n // if we are using autoGroupCols, then they should be included for quick filter. this covers the\n // following scenarios:\n // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on\n // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this\n // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)\n ColumnModel.prototype.setupQuickFilterColumns = function () {\n if (this.groupAutoColumns) {\n this.columnsForQuickFilter = (this.primaryColumns || []).concat(this.groupAutoColumns);\n }\n else if (this.primaryColumns) {\n this.columnsForQuickFilter = this.primaryColumns;\n }\n };\n ColumnModel.prototype.placeLockedColumns = function (cols) {\n var left = [];\n var normal = [];\n var right = [];\n cols.forEach(function (col) {\n var position = col.getColDef().lockPosition;\n if (position === 'right') {\n right.push(col);\n }\n else if (position === 'left' || position === true) {\n left.push(col);\n }\n else {\n normal.push(col);\n }\n });\n return __spread(left, normal, right);\n };\n ColumnModel.prototype.addAutoGroupToGridColumns = function () {\n // add in auto-group here\n this.createGroupAutoColumnsIfNeeded();\n if (missing(this.groupAutoColumns)) {\n return;\n }\n this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;\n var autoColBalancedTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);\n this.gridBalancedTree = autoColBalancedTree.concat(this.gridBalancedTree);\n };\n // gets called after we copy down grid columns, to make sure any part of the gui\n // that tries to draw, eg the header, it will get empty lists of columns rather\n // than stale columns. for example, the header will received gridColumnsChanged\n // event, so will try and draw, but it will draw successfully when it acts on the\n // virtualColumnsChanged event\n ColumnModel.prototype.clearDisplayedAndViewportColumns = function () {\n this.displayedTreeLeft = [];\n this.displayedTreeRight = [];\n this.displayedTreeCentre = [];\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n this.displayedColumnsLeft = [];\n this.displayedColumnsRight = [];\n this.displayedColumnsCenter = [];\n this.displayedColumns = [];\n this.viewportColumns = [];\n };\n ColumnModel.prototype.updateGroupsAndDisplayedColumns = function (source) {\n this.updateOpenClosedVisibilityInColumnGroups();\n this.deriveDisplayedColumns(source);\n this.refreshFlexedColumns();\n this.extractViewport();\n this.updateBodyWidths();\n // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display\n var event = {\n type: Events.EVENT_DISPLAYED_COLUMNS_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.deriveDisplayedColumns = function (source) {\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);\n this.joinDisplayedColumns();\n this.setLeftValues(source);\n this.displayedAutoHeightCols = this.displayedColumns.filter(function (col) { return col.isAutoHeight(); });\n };\n ColumnModel.prototype.isAutoRowHeightActive = function () {\n return this.autoHeightActive;\n };\n ColumnModel.prototype.wasAutoRowHeightEverActive = function () {\n return this.autoHeightActiveAtLeastOnce;\n };\n ColumnModel.prototype.joinDisplayedColumns = function () {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.displayedColumns = this.displayedColumnsRight\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsLeft);\n }\n else {\n this.displayedColumns = this.displayedColumnsLeft\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsRight);\n }\n };\n // sets the left pixel position of each column\n ColumnModel.prototype.setLeftValues = function (source) {\n this.setLeftValuesOfColumns(source);\n this.setLeftValuesOfGroups();\n };\n ColumnModel.prototype.setLeftValuesOfColumns = function (source) {\n var _this = this;\n if (!this.primaryColumns) {\n return;\n }\n // go through each list of displayed columns\n var allColumns = this.primaryColumns.slice(0);\n // let totalColumnWidth = this.getWidthOfColsInList()\n var doingRtl = this.gridOptionsWrapper.isEnableRtl();\n [\n this.displayedColumnsLeft,\n this.displayedColumnsRight,\n this.displayedColumnsCenter\n ].forEach(function (columns) {\n if (doingRtl) {\n // when doing RTL, we start at the top most pixel (ie RHS) and work backwards\n var left_1 = _this.getWidthOfColsInList(columns);\n columns.forEach(function (column) {\n left_1 -= column.getActualWidth();\n column.setLeft(left_1, source);\n });\n }\n else {\n // otherwise normal LTR, we start at zero\n var left_2 = 0;\n columns.forEach(function (column) {\n column.setLeft(left_2, source);\n left_2 += column.getActualWidth();\n });\n }\n removeAllFromArray(allColumns, columns);\n });\n // items left in allColumns are columns not displayed, so remove the left position. this is\n // important for the rows, as if a col is made visible, then taken out, then made visible again,\n // we don't want the animation of the cell floating in from the old position, whatever that was.\n allColumns.forEach(function (column) {\n column.setLeft(null, source);\n });\n };\n ColumnModel.prototype.setLeftValuesOfGroups = function () {\n // a groups left value is the lest left value of it's children\n [\n this.displayedTreeLeft,\n this.displayedTreeRight,\n this.displayedTreeCentre\n ].forEach(function (columns) {\n columns.forEach(function (column) {\n if (column instanceof ColumnGroup) {\n var columnGroup = column;\n columnGroup.checkLeft();\n }\n });\n });\n };\n ColumnModel.prototype.derivedDisplayedColumnsFromDisplayedTree = function (tree, columns) {\n columns.length = 0;\n this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, function (child) {\n if (child instanceof Column) {\n columns.push(child);\n }\n });\n };\n ColumnModel.prototype.extractViewportColumns = function () {\n if (this.suppressColumnVirtualisation) {\n // no virtualisation, so don't filter\n this.viewportColumnsCenter = this.displayedColumnsCenter;\n }\n else {\n // filter out what should be visible\n this.viewportColumnsCenter = this.filterOutColumnsWithinViewport();\n }\n this.viewportColumns = this.viewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n };\n ColumnModel.prototype.getVirtualHeaderGroupRow = function (type, dept) {\n var result;\n switch (type) {\n case Constants.PINNED_LEFT:\n result = this.viewportRowLeft[dept];\n break;\n case Constants.PINNED_RIGHT:\n result = this.viewportRowRight[dept];\n break;\n default:\n result = this.viewportRowCenter[dept];\n break;\n }\n if (missing(result)) {\n result = [];\n }\n return result;\n };\n ColumnModel.prototype.extractViewportRows = function () {\n // go through each group, see if any of it's cols are displayed, and if yes,\n // then this group is included\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n // for easy lookup when building the groups.\n var virtualColIds = {};\n this.viewportColumns.forEach(function (col) { return virtualColIds[col.getId()] = true; });\n var testGroup = function (children, result, dept) {\n var returnValue = false;\n for (var i = 0; i < children.length; i++) {\n // see if this item is within viewport\n var child = children[i];\n var addThisItem = false;\n if (child instanceof Column) {\n // for column, test if column is included\n addThisItem = virtualColIds[child.getId()] === true;\n }\n else {\n // if group, base decision on children\n var columnGroup = child;\n var displayedChildren = columnGroup.getDisplayedChildren();\n if (displayedChildren) {\n addThisItem = testGroup(displayedChildren, result, dept + 1);\n }\n }\n if (addThisItem) {\n returnValue = true;\n if (!result[dept]) {\n result[dept] = [];\n }\n result[dept].push(child);\n }\n }\n return returnValue;\n };\n testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);\n testGroup(this.displayedTreeRight, this.viewportRowRight, 0);\n testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);\n };\n ColumnModel.prototype.extractViewport = function () {\n this.extractViewportColumns();\n this.extractViewportRows();\n };\n ColumnModel.prototype.filterOutColumnsWithinViewport = function () {\n return this.displayedColumnsCenter.filter(this.isColumnInViewport.bind(this));\n };\n ColumnModel.prototype.refreshFlexedColumns = function (params) {\n var _this = this;\n if (params === void 0) { params = {}; }\n var source = params.source ? params.source : 'flex';\n if (params.viewportWidth != null) {\n this.flexViewportWidth = params.viewportWidth;\n }\n if (!this.flexViewportWidth) {\n return [];\n }\n // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.\n // A \"flexing column\" is one that has a 'flex' value set and is not currently being constrained by its\n // minWidth or maxWidth rules.\n var flexAfterDisplayIndex = -1;\n if (params.resizingCols) {\n params.resizingCols.forEach(function (col) {\n var indexOfCol = _this.displayedColumnsCenter.indexOf(col);\n if (flexAfterDisplayIndex < indexOfCol) {\n flexAfterDisplayIndex = indexOfCol;\n }\n });\n }\n var isColFlex = function (col) {\n var afterResizingCols = _this.displayedColumnsCenter.indexOf(col) > flexAfterDisplayIndex;\n return col.getFlex() && afterResizingCols;\n };\n var knownWidthColumns = this.displayedColumnsCenter.filter(function (col) { return !isColFlex(col); });\n var flexingColumns = this.displayedColumnsCenter.filter(function (col) { return isColFlex(col); });\n var changedColumns = [];\n if (!flexingColumns.length) {\n return [];\n }\n var flexingColumnSizes = [];\n var spaceForFlexingColumns;\n outer: while (true) {\n var totalFlex = flexingColumns.reduce(function (count, col) { return count + col.getFlex(); }, 0);\n spaceForFlexingColumns = this.flexViewportWidth - this.getWidthOfColsInList(knownWidthColumns);\n for (var i = 0; i < flexingColumns.length; i++) {\n var col = flexingColumns[i];\n var widthByFlexRule = spaceForFlexingColumns * col.getFlex() / totalFlex;\n var constrainedWidth = 0;\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && widthByFlexRule < minWidth) {\n constrainedWidth = minWidth;\n }\n else if (exists(maxWidth) && widthByFlexRule > maxWidth) {\n constrainedWidth = maxWidth;\n }\n if (constrainedWidth) {\n // This column is not in fact flexing as it is being constrained to a specific size\n // so remove it from the list of flexing columns and start again\n col.setActualWidth(constrainedWidth, source);\n removeFromArray(flexingColumns, col);\n changedColumns.push(col);\n knownWidthColumns.push(col);\n continue outer;\n }\n flexingColumnSizes[i] = Math.round(widthByFlexRule);\n }\n break;\n }\n var remainingSpace = spaceForFlexingColumns;\n flexingColumns.forEach(function (col, i) {\n col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);\n changedColumns.push(col);\n remainingSpace -= flexingColumnSizes[i];\n });\n if (!params.skipSetLeft) {\n this.setLeftValues(source);\n }\n if (params.updateBodyWidths) {\n this.updateBodyWidths();\n }\n if (params.fireResizedEvent) {\n this.fireColumnResizedEvent(changedColumns, true, source, flexingColumns);\n }\n // if the user sets rowData directly into GridOptions, then the row data is set before\n // grid is attached to the DOM. this means the columns are not flexed, and then the rows\n // have the wrong height (as they depend on column widths). so once the columns have\n // been flexed for the first time (only happens once grid is attached to DOM, as dependency\n // on getting the grid width, which only happens after attached after ResizeObserver fires)\n // we get get rows to re-calc their heights.\n if (!this.flexColsCalculatedAtLestOnce) {\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.rowModel.resetRowHeights();\n }\n this.flexColsCalculatedAtLestOnce = true;\n }\n return flexingColumns;\n };\n // called from api\n ColumnModel.prototype.sizeColumnsToFit = function (gridWidth, source, silent) {\n if (source === void 0) { source = \"sizeColumnsToFit\"; }\n // avoid divide by zero\n var allDisplayedColumns = this.getAllDisplayedColumns();\n if (gridWidth <= 0 || !allDisplayedColumns.length) {\n return;\n }\n var colsToSpread = [];\n var colsToNotSpread = [];\n allDisplayedColumns.forEach(function (column) {\n if (column.getColDef().suppressSizeToFit === true) {\n colsToNotSpread.push(column);\n }\n else {\n colsToSpread.push(column);\n }\n });\n // make a copy of the cols that are going to be resized\n var colsToFireEventFor = colsToSpread.slice(0);\n var finishedResizing = false;\n var moveToNotSpread = function (column) {\n removeFromArray(colsToSpread, column);\n colsToNotSpread.push(column);\n };\n // resetting cols to their original width makes the sizeColumnsToFit more deterministic,\n // rather than depending on the current size of the columns. most users call sizeColumnsToFit\n // immediately after grid is created, so will make no difference. however if application is calling\n // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want\n // the columns to start shrinking / growing over time.\n //\n // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events\n // for this reason we need to manually fire resize events after the resize has been done for each column.\n colsToSpread.forEach(function (column) { return column.resetActualWidth(source); });\n while (!finishedResizing) {\n finishedResizing = true;\n var availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);\n if (availablePixels <= 0) {\n // no width, set everything to minimum\n colsToSpread.forEach(function (column) {\n column.setMinimum(source);\n });\n }\n else {\n var scale = availablePixels / this.getWidthOfColsInList(colsToSpread);\n // we set the pixels for the last col based on what's left, as otherwise\n // we could be a pixel or two short or extra because of rounding errors.\n var pixelsForLastCol = availablePixels;\n // backwards through loop, as we are removing items as we go\n for (var i = colsToSpread.length - 1; i >= 0; i--) {\n var column = colsToSpread[i];\n var minWidth = column.getMinWidth();\n var maxWidth = column.getMaxWidth();\n var newWidth = Math.round(column.getActualWidth() * scale);\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (exists(maxWidth) && column.isGreaterThanMax(newWidth)) {\n newWidth = maxWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (i === 0) { // if this is the last column\n newWidth = pixelsForLastCol;\n }\n column.setActualWidth(newWidth, source, true);\n pixelsForLastCol -= newWidth;\n }\n }\n }\n // see notes above\n colsToFireEventFor.forEach(function (col) {\n col.fireColumnWidthChangedEvent(source);\n });\n this.setLeftValues(source);\n this.updateBodyWidths();\n if (silent) {\n return;\n }\n this.fireColumnResizedEvent(colsToFireEventFor, true, source);\n };\n ColumnModel.prototype.buildDisplayedTrees = function (visibleColumns) {\n var leftVisibleColumns = [];\n var rightVisibleColumns = [];\n var centerVisibleColumns = [];\n visibleColumns.forEach(function (column) {\n switch (column.getPinned()) {\n case \"left\":\n leftVisibleColumns.push(column);\n break;\n case \"right\":\n rightVisibleColumns.push(column);\n break;\n default:\n centerVisibleColumns.push(column);\n break;\n }\n });\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, Constants.PINNED_LEFT, this.displayedTreeLeft);\n this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, Constants.PINNED_RIGHT, this.displayedTreeRight);\n this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, null, this.displayedTreeCentre);\n this.updateDisplayedMap();\n };\n ColumnModel.prototype.updateDisplayedMap = function () {\n var _this = this;\n this.displayedColumnsAndGroupsMap = {};\n var func = function (child) {\n _this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;\n };\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);\n };\n ColumnModel.prototype.isDisplayed = function (item) {\n var fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];\n // check for reference, in case new column / group with same id is now present\n return fromMap === item;\n };\n ColumnModel.prototype.updateOpenClosedVisibilityInColumnGroups = function () {\n var allColumnGroups = this.getAllDisplayedTrees();\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n var columnGroup = child;\n columnGroup.calculateDisplayedColumns();\n }\n });\n };\n ColumnModel.prototype.getGroupAutoColumns = function () {\n return this.groupAutoColumns;\n };\n ColumnModel.prototype.createGroupAutoColumnsIfNeeded = function () {\n if (!this.autoGroupsNeedBuilding) {\n return;\n }\n this.autoGroupsNeedBuilding = false;\n var groupFullWidthRow = this.gridOptionsWrapper.isGroupUseEntireRow(this.pivotMode);\n // we need to allow suppressing auto-column separately for group and pivot as the normal situation\n // is CSRM and user provides group column themselves for normal view, but when they go into pivot the\n // columns are generated by the grid so no opportunity for user to provide group column. so need a way\n // to suppress auto-col for grouping only, and not pivot.\n // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control\n // of the group column in this instance.\n var suppressAutoColumn = this.pivotMode ?\n this.gridOptionsWrapper.isPivotSuppressAutoColumn() : this.gridOptionsWrapper.isGroupSuppressAutoColumn();\n var groupingActive = this.rowGroupColumns.length > 0 || this.usingTreeData;\n var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;\n if (needAutoColumns) {\n var existingCols = this.groupAutoColumns || [];\n var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(existingCols, this.rowGroupColumns);\n var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);\n // we force recreate when suppressColumnStateEvents changes, so new group cols pick up the new\n // definitions. otherwise we could ignore the new cols because they appear to be the same.\n if (autoColsDifferent || this.forceRecreateAutoGroups) {\n this.groupAutoColumns = newAutoGroupCols;\n }\n }\n else {\n this.groupAutoColumns = null;\n }\n };\n ColumnModel.prototype.autoColsEqual = function (colsA, colsB) {\n return areEqual(colsA, colsB, function (a, b) { return a.getColId() === b.getColId(); });\n };\n ColumnModel.prototype.getWidthOfColsInList = function (columnList) {\n return columnList.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n ColumnModel.prototype.getGridBalancedTree = function () {\n return this.gridBalancedTree;\n };\n ColumnModel.prototype.hasFloatingFilters = function () {\n if (!this.gridColumns) {\n return false;\n }\n var res = this.gridColumns.some(function (col) { return col.getColDef().floatingFilter; });\n return res;\n };\n ColumnModel.prototype.getFirstDisplayedColumn = function () {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var queryOrder = [\n 'getDisplayedLeftColumns',\n 'getDisplayedCenterColumns',\n 'getDisplayedRightColumns'\n ];\n if (isRtl) {\n queryOrder.reverse();\n }\n for (var i = 0; i < queryOrder.length; i++) {\n var container = this[queryOrder[i]]();\n if (container.length) {\n return isRtl ? last(container) : container[0];\n }\n }\n return null;\n };\n __decorate$5([\n Autowired('expressionService')\n ], ColumnModel.prototype, \"expressionService\", void 0);\n __decorate$5([\n Autowired('columnFactory')\n ], ColumnModel.prototype, \"columnFactory\", void 0);\n __decorate$5([\n Autowired('displayedGroupCreator')\n ], ColumnModel.prototype, \"displayedGroupCreator\", void 0);\n __decorate$5([\n Autowired('ctrlsService')\n ], ColumnModel.prototype, \"ctrlsService\", void 0);\n __decorate$5([\n Autowired('autoWidthCalculator')\n ], ColumnModel.prototype, \"autoWidthCalculator\", void 0);\n __decorate$5([\n Autowired('columnUtils')\n ], ColumnModel.prototype, \"columnUtils\", void 0);\n __decorate$5([\n Autowired('columnAnimationService')\n ], ColumnModel.prototype, \"columnAnimationService\", void 0);\n __decorate$5([\n Autowired('autoGroupColService')\n ], ColumnModel.prototype, \"autoGroupColService\", void 0);\n __decorate$5([\n Optional('aggFuncService')\n ], ColumnModel.prototype, \"aggFuncService\", void 0);\n __decorate$5([\n Optional('valueCache')\n ], ColumnModel.prototype, \"valueCache\", void 0);\n __decorate$5([\n Optional('animationFrameService')\n ], ColumnModel.prototype, \"animationFrameService\", void 0);\n __decorate$5([\n Autowired('rowModel')\n ], ColumnModel.prototype, \"rowModel\", void 0);\n __decorate$5([\n Autowired('columnApi')\n ], ColumnModel.prototype, \"columnApi\", void 0);\n __decorate$5([\n Autowired('gridApi')\n ], ColumnModel.prototype, \"gridApi\", void 0);\n __decorate$5([\n Autowired('sortController')\n ], ColumnModel.prototype, \"sortController\", void 0);\n __decorate$5([\n Autowired('columnDefFactory')\n ], ColumnModel.prototype, \"columnDefFactory\", void 0);\n __decorate$5([\n PostConstruct\n ], ColumnModel.prototype, \"init\", null);\n __decorate$5([\n __param$2(0, Qualifier('loggerFactory'))\n ], ColumnModel.prototype, \"setBeans\", null);\n ColumnModel = __decorate$5([\n Bean('columnModel')\n ], ColumnModel);\n return ColumnModel;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar ColumnUtils = /** @class */ (function (_super) {\n __extends$2(ColumnUtils, _super);\n function ColumnUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnUtils.prototype.calculateColMinWidth = function (colDef) {\n return colDef.minWidth != null ? colDef.minWidth : this.gridOptionsWrapper.getMinColWidth();\n };\n ColumnUtils.prototype.calculateColMaxWidth = function (colDef) {\n return colDef.maxWidth != null ? colDef.maxWidth : (this.gridOptionsWrapper.getMaxColWidth() || Number.MAX_SAFE_INTEGER);\n };\n ColumnUtils.prototype.calculateColInitialWidth = function (colDef) {\n var minColWidth = this.calculateColMinWidth(colDef);\n var maxColWidth = this.calculateColMaxWidth(colDef);\n var width;\n var colDefWidth = attrToNumber(colDef.width);\n var colDefInitialWidth = attrToNumber(colDef.initialWidth);\n if (colDefWidth != null) {\n width = colDefWidth;\n }\n else if (colDefInitialWidth != null) {\n width = colDefInitialWidth;\n }\n else {\n width = this.gridOptionsWrapper.getColWidth();\n }\n return Math.max(Math.min(width, maxColWidth), minColWidth);\n };\n ColumnUtils.prototype.getOriginalPathForColumn = function (column, originalBalancedTree) {\n var result = [];\n var found = false;\n var recursePath = function (balancedColumnTree, dept) {\n for (var i = 0; i < balancedColumnTree.length; i++) {\n if (found) {\n return;\n }\n // quit the search, so 'result' is kept with the found result\n var node = balancedColumnTree[i];\n if (node instanceof ProvidedColumnGroup) {\n var nextNode = node;\n recursePath(nextNode.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(originalBalancedTree, 0);\n // we should always find the path, but in case there is a bug somewhere, returning null\n // will make it fail rather than provide a 'hard to track down' bug\n return found ? result : null;\n };\n ColumnUtils.prototype.depthFirstOriginalTreeSearch = function (parent, tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n _this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);\n }\n callback(child, parent);\n });\n };\n ColumnUtils.prototype.depthFirstAllColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils.prototype.depthFirstDisplayedColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils = __decorate$6([\n Bean('columnUtils')\n ], ColumnUtils);\n return ColumnUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$3 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar DisplayedGroupCreator = /** @class */ (function (_super) {\n __extends$3(DisplayedGroupCreator, _super);\n function DisplayedGroupCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DisplayedGroupCreator.prototype.createDisplayedGroups = function (\n // all displayed columns sorted - this is the columns the grid should show\n sortedVisibleColumns, \n // the tree of columns, as provided by the users, used to know what groups columns roll up into\n balancedColumnTree, \n // creates unique id's for the group\n groupInstanceIdCreator, \n // whether it's left, right or center col\n pinned, \n // we try to reuse old groups if we can, to allow gui to do animation\n oldDisplayedGroups) {\n var _this = this;\n var result = [];\n var previousRealPath;\n var previousOriginalPath;\n var oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);\n // go through each column, then do a bottom up comparison to the previous column, and start\n // to share groups if they converge at any point.\n sortedVisibleColumns.forEach(function (currentColumn) {\n var currentOriginalPath = _this.getOriginalPathForColumn(balancedColumnTree, currentColumn);\n var currentRealPath = [];\n var firstColumn = !previousOriginalPath;\n for (var i = 0; i < currentOriginalPath.length; i++) {\n if (firstColumn || currentOriginalPath[i] !== previousOriginalPath[i]) {\n // new group needed\n var newGroup = _this.createColumnGroup(currentOriginalPath[i], groupInstanceIdCreator, oldColumnsMapped, pinned);\n currentRealPath[i] = newGroup;\n // if top level, add to result, otherwise add to parent\n if (i == 0) {\n result.push(newGroup);\n }\n else {\n currentRealPath[i - 1].addChild(newGroup);\n }\n }\n else {\n // reuse old group\n currentRealPath[i] = previousRealPath[i];\n }\n }\n var noColumnGroups = currentRealPath.length === 0;\n if (noColumnGroups) {\n // if we are not grouping, then the result of the above is an empty\n // path (no groups), and we just add the column to the root list.\n result.push(currentColumn);\n }\n else {\n var leafGroup = last(currentRealPath);\n leafGroup.addChild(currentColumn);\n }\n previousRealPath = currentRealPath;\n previousOriginalPath = currentOriginalPath;\n });\n this.setupParentsIntoColumns(result, null);\n return result;\n };\n DisplayedGroupCreator.prototype.createColumnGroup = function (providedGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {\n var groupId = providedGroup.getGroupId();\n var instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);\n var uniqueId = ColumnGroup.createUniqueId(groupId, instanceId);\n var columnGroup = oldColumnsMapped[uniqueId];\n // if the user is setting new colDefs, it is possible that the id's overlap, and we\n // would have a false match from above. so we double check we are talking about the\n // same original column group.\n if (columnGroup && columnGroup.getProvidedColumnGroup() !== providedGroup) {\n columnGroup = null;\n }\n if (exists(columnGroup)) {\n // clean out the old column group here, as we will be adding children into it again\n columnGroup.reset();\n }\n else {\n columnGroup = new ColumnGroup(providedGroup, groupId, instanceId, pinned);\n this.context.createBean(columnGroup);\n }\n return columnGroup;\n };\n // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup\n DisplayedGroupCreator.prototype.mapOldGroupsById = function (displayedGroups) {\n var result = {};\n var recursive = function (columnsOrGroups) {\n columnsOrGroups.forEach(function (columnOrGroup) {\n if (columnOrGroup instanceof ColumnGroup) {\n var columnGroup = columnOrGroup;\n result[columnOrGroup.getUniqueId()] = columnGroup;\n recursive(columnGroup.getChildren());\n }\n });\n };\n if (displayedGroups) {\n recursive(displayedGroups);\n }\n return result;\n };\n DisplayedGroupCreator.prototype.setupParentsIntoColumns = function (columnsOrGroups, parent) {\n var _this = this;\n columnsOrGroups.forEach(function (columnsOrGroup) {\n columnsOrGroup.setParent(parent);\n if (columnsOrGroup instanceof ColumnGroup) {\n var columnGroup = columnsOrGroup;\n _this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);\n }\n });\n };\n DisplayedGroupCreator.prototype.getOriginalPathForColumn = function (balancedColumnTree, column) {\n var result = [];\n var found = false;\n var recursePath = function (columnTree, dept) {\n for (var i = 0; i < columnTree.length; i++) {\n // quit the search, so 'result' is kept with the found result\n if (found) {\n return;\n }\n var node = columnTree[i];\n if (node instanceof ProvidedColumnGroup) {\n recursePath(node.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(balancedColumnTree, 0);\n // it's possible we didn't find a path. this happens if the column is generated\n // by the grid (auto-group), in that the definition didn't come from the client. in this case,\n // we create a fake original path.\n if (found) {\n return result;\n }\n console.warn('AG Grid: could not get path');\n return null;\n };\n DisplayedGroupCreator = __decorate$7([\n Bean('displayedGroupCreator')\n ], DisplayedGroupCreator);\n return DisplayedGroupCreator;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$1 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$1 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$1(arguments[i]));\n return ar;\n};\n/**\n * These keys are used for validating properties supplied on a gridOptions object, and for code generation.\n * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.\n */\nvar PropertyKeys = /** @class */ (function () {\n function PropertyKeys() {\n }\n PropertyKeys.STRING_PROPERTIES = [\n 'sortingOrder', 'rowClass', 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate',\n 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDelimiter', 'rowGroupPanelShow',\n 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',\n 'serverSideStoreType', 'groupDisplayType', 'treeDataDisplayType'\n ];\n PropertyKeys.OBJECT_PROPERTIES = [\n 'components', 'frameworkComponents', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',\n 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',\n 'defaultColGroupDef', 'defaultColDef', 'defaultExportParams', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',\n 'rowClassRules', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',\n 'noRowsOverlayComponentParams', 'popupParent', 'colResizeDefault', 'statusBar', 'sideBar', 'chartThemeOverrides',\n 'customChartThemes'\n ];\n PropertyKeys.ARRAY_PROPERTIES = [\n 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes'\n ];\n PropertyKeys.NUMBER_PROPERTIES = [\n 'rowHeight', 'detailRowHeight', 'rowBuffer', 'colWidth', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',\n 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'minColWidth', 'maxColWidth', 'viewportRowModelPageSize',\n 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',\n 'tooltipHideDelay', 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'scrollbarWidth',\n 'batchUpdateWaitMillis', 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',\n 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'\n ];\n PropertyKeys.BOOLEAN_PROPERTIES = [\n 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellSelection', 'suppressCellFocus', 'suppressHorizontalScroll',\n 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions',\n 'angularCompileRows', 'angularCompileFilters', 'groupSuppressAutoColumn', 'groupSelectsChildren', 'groupIncludeFooter',\n 'groupIncludeTotalFooter', 'groupUseEntireRow', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection',\n 'unSortIcon', 'suppressMultiSort', 'alwaysMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',\n 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns',\n 'suppressFieldDotNotation', 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction',\n 'deltaSort', 'suppressTouch', 'suppressAsyncEvents', 'allowContextMenuWithControlKey', 'suppressContextMenu',\n 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns', 'suppressMiddleClickScrolls',\n 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard', 'copyGroupHeadersToClipboard',\n 'pivotMode', 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh',\n 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren',\n 'groupRemoveLowestSingleChildren', 'enableRtl', 'suppressClickEdit', 'rowDragEntireRow', 'rowDragManaged', 'suppressRowDrag',\n 'suppressMoveWhenRowDragging', 'rowDragMultiRow', 'enableGroupEdit', 'embedFullWidthRows', 'deprecatedEmbedFullWidthRows',\n 'suppressPaginationPanel', 'groupHideOpenParents', 'groupMultiAutoColumn', 'pagination',\n 'stopEditingWhenGridLosesFocus', 'paginationAutoPageSize', 'suppressScrollOnNewData', 'suppressScrollWhenPopupsAreOpen',\n 'purgeClosedRowNodes', 'cacheQuickFilter', 'deltaRowDataMode', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection',\n 'valueCache', 'valueCacheNeverExpires', 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport',\n 'suppressCsvExport', 'treeData', 'masterDetail', 'suppressMultiRangeSelection', 'enterMovesDownAfterEdit', 'enterMovesDown',\n 'suppressPropertyNamesCheck', 'rowMultiSelectWithClick', 'suppressEnterpriseResetOnNewColumns',\n 'suppressRowHoverHighlight', 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste',\n 'serverSideSortingAlwaysResets', 'suppressSetColumnStateEvents', 'suppressColumnStateEvents', 'enableCharts', 'deltaColumnMode',\n 'suppressMaintainUnsortedOrder', 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction',\n 'excludeChildrenWhenTreeDataFiltering', 'tooltipMouseTrack', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu',\n 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'immutableData', 'immutableColumns', 'pivotSuppressAutoColumn',\n 'suppressExpandablePivotGroups', 'applyColumnDefOrder', 'debounceVerticalScrollbar', 'detailRowAutoHeight',\n 'serverSideFilteringAlwaysResets', 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi',\n 'suppressModelUpdateAfterUpdateTransaction', 'stopEditingWhenCellsLoseFocus', 'maintainColumnOrder', 'groupMaintainOrder',\n 'columnHoverHighlight', 'reactUi', 'suppressReactUi', 'readOnlyEdit', 'suppressRowVirtualisation',\n 'resetRowDataOnUpdate', 'removePivotHeaderRowWhenSingleValueColumn', 'suppressCopySingleCellRanges'\n ];\n /** You do not need to include event callbacks in this list, as they are generated automatically. */\n PropertyKeys.FUNCTION_PROPERTIES = [\n 'localeTextFunc', 'getLocaleText', 'groupRowInnerRenderer', 'groupRowInnerRendererFramework',\n 'groupRowRenderer', 'groupRowRendererFramework', 'isExternalFilterPresent', 'getRowHeight', 'doesExternalFilterPass',\n 'getRowClass', 'getRowStyle', 'getContextMenuItems', 'getMainMenuItems', 'processRowPostCreate', 'processCellForClipboard',\n 'groupRowAggNodes', 'getGroupRowAgg', 'getRowNodeId', 'isFullWidthCell', 'isFullWidthRow', 'fullWidthCellRenderer', 'fullWidthCellRendererFramework',\n 'processSecondaryColDef', 'processSecondaryColGroupDef',\n 'getBusinessKeyForNode', 'sendToClipboard', 'navigateToNextHeader',\n 'tabToNextHeader', 'navigateToNextCell', 'tabToNextCell', 'processCellFromClipboard', 'getDocument', 'postProcessPopup',\n 'getChildCount', 'getDataPath', 'loadingCellRenderer', 'loadingCellRendererFramework', 'loadingOverlayComponent',\n 'loadingOverlayComponentFramework', 'noRowsOverlayComponent', 'noRowsOverlayComponentFramework', 'detailCellRenderer',\n 'detailCellRendererFramework', 'isRowMaster', 'isRowSelectable', 'postSort', 'postSortRows', 'processHeaderForClipboard', 'processGroupHeaderForClipboard',\n 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey', 'isServerSideGroup', 'suppressKeyboardEvent',\n 'createChartContainer', 'getChartToolbarItems', 'fillOperation', 'isApplyServerSideTransaction', 'getServerSideStoreParams',\n 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault', 'defaultGroupSortComparator', 'defaultGroupOrderComparator', 'initialGroupOrderComparator',\n 'loadingCellRendererSelector', 'getRowId', 'groupAggFiltering'\n ];\n PropertyKeys.ALL_PROPERTIES = __spread$1(PropertyKeys.ARRAY_PROPERTIES, PropertyKeys.OBJECT_PROPERTIES, PropertyKeys.STRING_PROPERTIES, PropertyKeys.NUMBER_PROPERTIES, PropertyKeys.FUNCTION_PROPERTIES, PropertyKeys.BOOLEAN_PROPERTIES);\n /**\n * Used when performing property checks. This avoids noise caused when using frameworks, which can add their own\n * framework-specific properties to colDefs, gridOptions etc.\n */\n PropertyKeys.FRAMEWORK_PROPERTIES = [\n '__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns', 'toColDef', 'createColDefFromGridColumn'\n ];\n return PropertyKeys;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read$2 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$2 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$2(arguments[i]));\n return ar;\n};\nvar ComponentUtil = /** @class */ (function () {\n function ComponentUtil() {\n }\n ComponentUtil.getEventCallbacks = function () {\n if (!ComponentUtil.EVENT_CALLBACKS) {\n ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });\n }\n return ComponentUtil.EVENT_CALLBACKS;\n };\n ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, skipEventDeprecationCheck) {\n // create empty grid options if none were passed\n if (typeof gridOptions !== 'object') {\n gridOptions = {};\n }\n // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'\n var pGridOptions = gridOptions;\n var keyExists = function (key) { return typeof component[key] !== 'undefined'; };\n // if groupAggFiltering exists and isn't a function, handle as a boolean.\n if (keyExists('groupAggFiltering') && typeof component.groupAggFiltering !== 'function') {\n pGridOptions.groupAggFiltering = ComponentUtil.toBoolean(component.groupAggFiltering);\n delete component.groupAggFiltering;\n }\n // add in all the simple properties\n __spread$2(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.FUNCTION_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = component[key]; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(component[key]); });\n ComponentUtil.NUMBER_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(component[key]); });\n return gridOptions;\n };\n ComponentUtil.getCallbackForEvent = function (eventName) {\n if (!eventName || eventName.length < 2) {\n return eventName;\n }\n return 'on' + eventName[0].toUpperCase() + eventName.substr(1);\n };\n ComponentUtil.processOnChange = function (changes, gridOptions, api, columnApi) {\n if (!changes) {\n return;\n }\n var changesToApply = __assign({}, changes);\n // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'\n var pGridOptions = gridOptions;\n var keyExists = function (key) { return changesToApply[key]; };\n // if groupAggFiltering exists and isn't a function, handle as a boolean.\n if (keyExists('groupAggFiltering')) {\n if (typeof changesToApply.groupAggFiltering === 'function') {\n pGridOptions.groupAggFiltering = changesToApply.groupAggFiltering;\n }\n else {\n pGridOptions.groupAggFiltering = ComponentUtil.toBoolean(changesToApply.groupAggFiltering);\n }\n delete changesToApply.groupAggFiltering;\n }\n // we need to do this before the generic handling, otherwise value gets set before we\n // try to set it, and the grid then doesn't refresh the rows as it doesn't see any change.\n // also it's possible we use the generic code setXXX below and put it up there instead,\n // cover all cases.\n if (changesToApply.rowClass) {\n api.setRowClass(changesToApply.rowClass.currentValue);\n delete changesToApply.rowClass;\n }\n // check if any change for the simple types, and if so, then just copy in the new value\n __spread$2(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = changesToApply[key].currentValue; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(changesToApply[key].currentValue); });\n ComponentUtil.NUMBER_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(changesToApply[key].currentValue); });\n if (changesToApply.enableCellTextSelection) {\n api.setEnableCellTextSelection(ComponentUtil.toBoolean(changesToApply.enableCellTextSelection.currentValue));\n delete changesToApply.enableCellTextSelection;\n }\n if (changesToApply.quickFilterText) {\n api.setQuickFilter(changesToApply.quickFilterText.currentValue);\n delete changesToApply.quickFilterText;\n }\n if (changesToApply.autoGroupColumnDef) {\n api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.autoGroupColumnDef;\n }\n if (changesToApply.columnDefs) {\n api.setColumnDefs(changesToApply.columnDefs.currentValue, \"gridOptionsChanged\");\n delete changesToApply.columnDefs;\n }\n if (changesToApply.defaultColDef) {\n api.setDefaultColDef(changesToApply.defaultColDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.defaultColDef;\n }\n if (changesToApply.paginationPageSize) {\n api.paginationSetPageSize(ComponentUtil.toNumber(changesToApply.paginationPageSize.currentValue));\n delete changesToApply.paginationPageSize;\n }\n if (changesToApply.pivotMode) {\n columnApi.setPivotMode(ComponentUtil.toBoolean(changesToApply.pivotMode.currentValue));\n delete changesToApply.pivotMode;\n }\n if (changesToApply.groupRemoveSingleChildren) {\n api.setGroupRemoveSingleChildren(ComponentUtil.toBoolean(changesToApply.groupRemoveSingleChildren.currentValue));\n delete changesToApply.groupRemoveSingleChildren;\n }\n if (changesToApply.suppressRowDrag) {\n api.setSuppressRowDrag(ComponentUtil.toBoolean(changesToApply.suppressRowDrag.currentValue));\n delete changesToApply.suppressRowDrag;\n }\n if (changesToApply.suppressMoveWhenRowDragging) {\n api.setSuppressMoveWhenRowDragging(ComponentUtil.toBoolean(changesToApply.suppressMoveWhenRowDragging.currentValue));\n delete changesToApply.suppressMoveWhenRowDragging;\n }\n if (changesToApply.suppressRowClickSelection) {\n api.setSuppressRowClickSelection(ComponentUtil.toBoolean(changesToApply.suppressRowClickSelection.currentValue));\n delete changesToApply.suppressRowClickSelection;\n }\n if (changesToApply.suppressClipboardPaste) {\n api.setSuppressClipboardPaste(ComponentUtil.toBoolean(changesToApply.suppressClipboardPaste.currentValue));\n delete changesToApply.suppressClipboardPaste;\n }\n if (changesToApply.headerHeight) {\n api.setHeaderHeight(ComponentUtil.toNumber(changesToApply.headerHeight.currentValue));\n delete changesToApply.headerHeight;\n }\n // any remaining properties can be set in a generic way\n // ie the setter takes the form of setXXX and the argument requires no formatting/translation first\n var dynamicApi = api;\n Object.keys(changesToApply)\n .forEach(function (property) {\n var setterName = \"set\" + property.charAt(0).toUpperCase() + property.substring(1);\n if (dynamicApi[setterName]) {\n dynamicApi[setterName](changes[property].currentValue);\n }\n });\n // copy changes into an event for dispatch\n var event = {\n type: Events.EVENT_COMPONENT_STATE_CHANGED,\n api: gridOptions.api,\n columnApi: gridOptions.columnApi\n };\n iterateObject(changes, function (key, value) {\n event[key] = value;\n });\n api.dispatchEvent(event);\n };\n ComponentUtil.toBoolean = function (value) {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n // for boolean, compare to empty String to allow attributes appearing with\n // no value to be treated as 'true'\n return value.toUpperCase() === 'TRUE' || value == '';\n }\n return false;\n };\n ComponentUtil.toNumber = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n };\n // all the events are populated in here AFTER this class (at the bottom of the file).\n ComponentUtil.EVENTS = [];\n // events that are available for use by users of AG Grid and so should be documented\n ComponentUtil.PUBLIC_EVENTS = [];\n // events that are internal to AG Grid and should not be exposed to users via documentation or generated framework components\n ComponentUtil.EXCLUDED_INTERNAL_EVENTS = [];\n ComponentUtil.STRING_PROPERTIES = PropertyKeys.STRING_PROPERTIES;\n ComponentUtil.OBJECT_PROPERTIES = PropertyKeys.OBJECT_PROPERTIES;\n ComponentUtil.ARRAY_PROPERTIES = PropertyKeys.ARRAY_PROPERTIES;\n ComponentUtil.NUMBER_PROPERTIES = PropertyKeys.NUMBER_PROPERTIES;\n ComponentUtil.BOOLEAN_PROPERTIES = PropertyKeys.BOOLEAN_PROPERTIES;\n ComponentUtil.FUNCTION_PROPERTIES = PropertyKeys.FUNCTION_PROPERTIES;\n ComponentUtil.ALL_PROPERTIES = PropertyKeys.ALL_PROPERTIES;\n return ComponentUtil;\n}());\nComponentUtil.EVENTS = values(Events);\n/** Exclude the following internal events from code generation to prevent exposing these events via framework components */\nComponentUtil.EXCLUDED_INTERNAL_EVENTS = [\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED,\n Events.EVENT_CHECKBOX_CHANGED,\n Events.EVENT_HEIGHT_SCALE_CHANGED,\n Events.EVENT_BODY_HEIGHT_CHANGED,\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n Events.EVENT_SCROLL_VISIBILITY_CHANGED,\n Events.EVENT_COLUMN_HOVER_CHANGED,\n Events.EVENT_FLASH_CELLS,\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED,\n Events.EVENT_DISPLAYED_ROWS_CHANGED,\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED,\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED,\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED,\n Events.EVENT_POPUP_TO_FRONT,\n Events.EVENT_KEYBOARD_FOCUS,\n Events.EVENT_MOUSE_FOCUS,\n Events.EVENT_STORE_UPDATED,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END,\n Events.EVENT_FILL_START,\n Events.EVENT_FILL_END,\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED\n];\n/** EVENTS that should be exposed via code generation for the framework components. */\nComponentUtil.PUBLIC_EVENTS = ComponentUtil.EVENTS.filter(function (e) { return !includes(ComponentUtil.EXCLUDED_INTERNAL_EVENTS, e); });\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$4 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgStackComponentsRegistry = /** @class */ (function (_super) {\n __extends$4(AgStackComponentsRegistry, _super);\n function AgStackComponentsRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.componentsMappedByName = {};\n return _this;\n }\n AgStackComponentsRegistry.prototype.setupComponents = function (components) {\n var _this = this;\n if (components) {\n components.forEach(function (componentMeta) { return _this.addComponent(componentMeta); });\n }\n };\n AgStackComponentsRegistry.prototype.addComponent = function (componentMeta) {\n // get name of the class as a string\n // let className = getNameOfClass(ComponentClass);\n // insert a dash after every capital letter\n // let classEscaped = className.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n var classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n // put all to upper case\n var classUpperCase = classEscaped.toUpperCase();\n // finally store\n this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;\n };\n AgStackComponentsRegistry.prototype.getComponentClass = function (htmlTag) {\n return this.componentsMappedByName[htmlTag];\n };\n AgStackComponentsRegistry = __decorate$8([\n Bean('agStackComponentsRegistry')\n ], AgStackComponentsRegistry);\n return AgStackComponentsRegistry;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$3 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$3 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$3(arguments[i]));\n return ar;\n};\nvar ColDefUtil = /** @class */ (function () {\n function ColDefUtil() {\n }\n ColDefUtil.STRING_PROPERTIES = [\n 'headerName',\n 'columnGroupShow',\n 'headerClass',\n 'toolPanelClass',\n 'headerValueGetter',\n 'pivotKeys',\n 'groupId',\n 'colId',\n 'sort',\n 'initialSort',\n 'field',\n 'type',\n 'tooltipComponent',\n 'tooltipField',\n 'headerTooltip',\n 'cellClass',\n 'showRowGroup',\n 'filter',\n 'initialAggFunc',\n 'defaultAggFunc',\n 'aggFunc',\n 'pinned',\n 'initialPinned',\n 'chartDataType',\n 'cellEditorPopupPosition'\n ];\n ColDefUtil.OBJECT_PROPERTIES = [\n 'headerGroupComponent',\n 'headerGroupComponentFramework',\n 'headerGroupComponentParams',\n 'cellStyle',\n 'cellRenderer',\n 'cellRendererParams',\n 'cellRendererFramework',\n 'cellEditor',\n 'cellEditorFramework',\n 'cellEditorParams',\n 'pinnedRowCellRendererFramework',\n 'pinnedRowCellRendererParams',\n 'filterFramework',\n 'filterParams',\n 'pivotValueColumn',\n 'headerComponent',\n 'headerComponentFramework',\n 'headerComponentParams',\n 'floatingFilterComponent',\n 'floatingFilterComponentParams',\n 'floatingFilterComponentFramework',\n 'floatingFilterFramework',\n 'tooltipComponent',\n 'tooltipComponentParams',\n 'tooltipComponentFramework',\n 'refData',\n 'columnsMenuParams'\n ];\n ColDefUtil.ARRAY_PROPERTIES = [\n 'children',\n 'sortingOrder',\n 'allowedAggFuncs',\n 'menuTabs',\n 'pivotTotalColumnIds',\n 'cellClassRules',\n 'icons'\n ];\n ColDefUtil.NUMBER_PROPERTIES = [\n 'sortedAt',\n 'sortIndex',\n 'initialSortIndex',\n 'flex',\n 'initialFlex',\n 'width',\n 'initialWidth',\n 'minWidth',\n 'maxWidth',\n 'rowGroupIndex',\n 'initialRowGroupIndex',\n 'pivotIndex',\n 'initialPivotIndex'\n ];\n ColDefUtil.BOOLEAN_PROPERTIES = [\n 'suppressCellFlash',\n 'suppressColumnsToolPanel',\n 'suppressFiltersToolPanel',\n 'openByDefault',\n 'marryChildren',\n 'hide',\n 'initialHide',\n 'rowGroup',\n 'initialRowGroup',\n 'pivot',\n 'initialPivot',\n 'checkboxSelection',\n 'headerCheckboxSelection',\n 'headerCheckboxSelectionFilteredOnly',\n 'suppressMenu',\n 'suppressMovable',\n 'lockPosition',\n 'lockVisible',\n 'lockPinned',\n 'unSortIcon',\n 'suppressSizeToFit',\n 'suppressAutoSize',\n 'enableRowGroup',\n 'enablePivot',\n 'enableValue',\n 'editable',\n 'suppressPaste',\n 'suppressNavigable',\n 'enableCellChangeFlash',\n 'rowDrag',\n 'dndSource',\n 'autoHeight',\n 'wrapText',\n 'sortable',\n 'resizable',\n 'singleClickEdit',\n 'floatingFilter',\n 'cellEditorPopup',\n 'suppressFillHandle'\n ];\n ColDefUtil.FUNCTION_PROPERTIES = [\n 'dndSourceOnRowDrag',\n 'valueGetter',\n 'valueSetter',\n 'filterValueGetter',\n 'keyCreator',\n 'pinnedRowCellRenderer',\n 'valueFormatter',\n 'pinnedRowValueFormatter',\n 'valueParser',\n 'comparator',\n 'equals',\n 'pivotComparator',\n 'suppressKeyboardEvent',\n 'suppressHeaderKeyboardEvent',\n 'colSpan',\n 'rowSpan',\n 'getQuickFilterText',\n 'newValueHandler',\n 'onCellValueChanged',\n 'onCellClicked',\n 'onCellDoubleClicked',\n 'onCellContextMenu',\n 'rowDragText',\n 'tooltipValueGetter',\n 'tooltipComponent',\n 'tooltipComponentFramework',\n 'cellRendererSelector',\n 'cellEditorSelector'\n ];\n ColDefUtil.ALL_PROPERTIES = __spread$3(ColDefUtil.ARRAY_PROPERTIES, ColDefUtil.OBJECT_PROPERTIES, ColDefUtil.STRING_PROPERTIES, ColDefUtil.NUMBER_PROPERTIES, ColDefUtil.FUNCTION_PROPERTIES, ColDefUtil.BOOLEAN_PROPERTIES);\n // used when doing property checks - this causes noise when using frameworks which can add their own fw specific\n // properties to colDefs, gridOptions etc\n ColDefUtil.FRAMEWORK_PROPERTIES = [\n '__ob__',\n '__v_skip',\n '__metadata__',\n 'mappedColumnProperties',\n 'hasChildColumns',\n 'toColDef',\n 'createColDefFromGridColumn'\n ];\n return ColDefUtil;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$4 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Color = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) { // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.parseHex = function (input) {\n input = input.replace(/ /g, '').slice(1);\n var parts;\n switch (input.length) {\n case 6:\n case 8:\n parts = [];\n for (var i = 0; i < input.length; i += 2) {\n parts.push(parseInt(\"\" + input[i] + input[i + 1], 16));\n }\n break;\n case 3:\n case 4:\n parts = input.split('').map(function (p) { return parseInt(p, 16); }).map(function (p) { return p + p * 16; });\n break;\n }\n if (parts.length >= 3) {\n if (parts.every(function (p) { return p >= 0; })) {\n if (parts.length === 3) {\n parts.push(255);\n }\n return parts;\n }\n }\n };\n Color.fromHexString = function (str) {\n var values = Color.parseHex(str);\n if (values) {\n var _a = __read$4(values, 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.stringToRgba = function (str) {\n // Find positions of opening and closing parentheses.\n var _a = __read$4([NaN, NaN], 2), po = _a[0], pc = _a[1];\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n if (!po && c === '(') {\n po = i;\n }\n else if (c === ')') {\n pc = i;\n break;\n }\n }\n var contents = po && pc && str.substring(po + 1, pc);\n if (!contents) {\n return;\n }\n var parts = contents.split(',');\n var rgba = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n var value = parseFloat(part);\n if (isNaN(value)) {\n return;\n }\n if (part.indexOf('%') >= 0) { // percentage r, g, or b value\n value = Math.max(0, Math.min(100, value));\n value /= 100;\n }\n else {\n if (i === 3) { // alpha component\n value = Math.max(0, Math.min(1, value));\n }\n else { // absolute r, g, or b value\n value = Math.max(0, Math.min(255, value));\n value /= 255;\n }\n }\n rgba.push(value);\n }\n return rgba;\n };\n Color.fromRgbaString = function (str) {\n var rgba = Color.stringToRgba(str);\n if (rgba) {\n if (rgba.length === 3) {\n return new Color(rgba[0], rgba[1], rgba[2]);\n }\n else if (rgba.length === 4) {\n return new Color(rgba[0], rgba[1], rgba[2], rgba[3]);\n }\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#'\n + Color.padHex(Math.round(this.r * 255).toString(16))\n + Color.padHex(Math.round(this.g * 255).toString(16))\n + Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [\n Math.round(this.r * 255),\n Math.round(this.g * 255),\n Math.round(this.b * 255)\n ];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - (S * (1 - f)));\n switch (h >> 0) { // discard the floating point part of the number\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32'\n });\n return Color;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// Based on https://stackoverflow.com/a/14991797\n// This will parse a delimited string into an array of arrays.\nfunction stringToArray(strData, delimiter) {\n if (delimiter === void 0) { delimiter = ','; }\n var data = [];\n var isNewline = function (char) { return char === '\\r' || char === '\\n'; };\n var insideQuotedField = false;\n if (strData === '') {\n return [['']];\n }\n var _loop_1 = function (row, column, position) {\n var previousChar = strData[position - 1];\n var currentChar = strData[position];\n var nextChar = strData[position + 1];\n var ensureDataExists = function () {\n if (!data[row]) {\n // create row if it doesn't exist\n data[row] = [];\n }\n if (!data[row][column]) {\n // create column if it doesn't exist\n data[row][column] = '';\n }\n };\n ensureDataExists();\n if (currentChar === '\"') {\n if (insideQuotedField) {\n if (nextChar === '\"') {\n // unescape double quote\n data[row][column] += '\"';\n position++;\n }\n else {\n // exit quoted field\n insideQuotedField = false;\n }\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n else if (previousChar === undefined || previousChar === delimiter || isNewline(previousChar)) {\n // enter quoted field\n insideQuotedField = true;\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n }\n if (!insideQuotedField) {\n if (currentChar === delimiter) {\n // move to next column\n column++;\n ensureDataExists();\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n else if (isNewline(currentChar)) {\n // move to next row\n column = 0;\n row++;\n ensureDataExists();\n if (currentChar === '\\r' && nextChar === '\\n') {\n // skip over second newline character if it exists\n position++;\n }\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n }\n // add current character to current column\n data[row][column] += currentChar;\n out_row_1 = row;\n out_column_1 = column;\n out_position_1 = position;\n };\n var out_row_1, out_column_1, out_position_1;\n // iterate over each character, keep track of current row and column (of the returned array)\n for (var row = 0, column = 0, position = 0; position < strData.length; position++) {\n _loop_1(row, column, position);\n row = out_row_1;\n column = out_column_1;\n position = out_position_1;\n }\n return data;\n}\n\nvar CsvUtils = /*#__PURE__*/Object.freeze({\n stringToArray: stringToArray\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __values$1 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * These variables are lazy loaded, as otherwise they try and get initialised when we are loading\n * unit tests and we don't have references to window or document in the unit tests\n * from http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n */\nvar isSafari;\nvar isIE;\nvar isEdge;\nvar isChrome;\nvar isFirefox;\nvar isIOS;\nvar invisibleScrollbar;\nvar browserScrollbarWidth;\nfunction isBrowserIE() {\n if (isIE === undefined) {\n isIE = /*@cc_on!@*/ !!document.documentMode; // At least IE6\n }\n return isIE;\n}\nfunction isBrowserEdge() {\n if (isEdge === undefined) {\n isEdge = !isBrowserIE() && !!window.StyleMedia;\n }\n return isEdge;\n}\nfunction isBrowserSafari() {\n if (isSafari === undefined) {\n // taken from https://stackoverflow.com/a/23522755/1388233\n isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n return isSafari;\n}\nfunction isBrowserChrome() {\n if (isChrome === undefined) {\n var win = window;\n isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||\n (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));\n }\n return isChrome;\n}\nfunction isBrowserFirefox() {\n if (isFirefox === undefined) {\n var win = window;\n isFirefox = typeof win.InstallTrigger !== 'undefined';\n }\n return isFirefox;\n}\nfunction isIOSUserAgent() {\n if (isIOS === undefined) {\n // taken from https://stackoverflow.com/a/58064481/1388233\n isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n // eslint-disable-next-line\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n // @ts-ignore\n !window.MSStream;\n }\n return isIOS;\n}\nfunction getTabIndex(el) {\n if (!el) {\n return null;\n }\n var numberTabIndex = el.tabIndex;\n var tabIndex = el.getAttribute('tabIndex');\n if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {\n return null;\n }\n return numberTabIndex.toString();\n}\nfunction getMaxDivHeight() {\n if (!document.body) {\n return -1;\n }\n var res = 1000000;\n // FF reports the height back but still renders blank after ~6M px\n var testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;\n var div = document.createElement('div');\n document.body.appendChild(div);\n while (true) {\n var test = res * 2;\n div.style.height = test + 'px';\n if (test > testUpTo || div.clientHeight !== test) {\n break;\n }\n else {\n res = test;\n }\n }\n document.body.removeChild(div);\n return res;\n}\nfunction getScrollbarWidth() {\n if (browserScrollbarWidth == null) {\n initScrollbarWidthAndVisibility();\n }\n return browserScrollbarWidth;\n}\nfunction initScrollbarWidthAndVisibility() {\n var body = document.body;\n var div = document.createElement('div');\n div.style.width = div.style.height = '100px';\n div.style.opacity = '0';\n div.style.overflow = 'scroll';\n div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n div.style.position = 'absolute';\n body.appendChild(div);\n var width = div.offsetWidth - div.clientWidth;\n // if width is 0 and client width is 0, means the DOM isn't ready\n if (width === 0 && div.clientWidth === 0) {\n width = null;\n }\n // remove div\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n if (width != null) {\n browserScrollbarWidth = width;\n invisibleScrollbar = width === 0;\n }\n}\nfunction isInvisibleScrollbar() {\n if (invisibleScrollbar == null) {\n initScrollbarWidthAndVisibility();\n }\n return invisibleScrollbar;\n}\n/** @deprecated */\nfunction hasOverflowScrolling() {\n var e_1, _a;\n var prefixes = ['webkit', 'moz', 'o', 'ms'];\n var div = document.createElement('div');\n var body = document.getElementsByTagName('body')[0];\n var found = false;\n var p;\n body.appendChild(div);\n div.setAttribute('style', prefixes.map(function (prefix) { return \"-\" + prefix + \"-overflow-scrolling: touch\"; }).concat('overflow-scrolling: touch').join(';'));\n var computedStyle = window.getComputedStyle(div);\n if (computedStyle.overflowScrolling === 'touch') {\n found = true;\n }\n if (!found) {\n try {\n for (var prefixes_1 = __values$1(prefixes), prefixes_1_1 = prefixes_1.next(); !prefixes_1_1.done; prefixes_1_1 = prefixes_1.next()) {\n p = prefixes_1_1.value;\n if (computedStyle[p + \"OverflowScrolling\"] === 'touch') {\n found = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (prefixes_1_1 && !prefixes_1_1.done && (_a = prefixes_1.return)) _a.call(prefixes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n return found;\n}\n/**\n * Gets the document body width\n * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code\n * @returns {number}\n */\nfunction getBodyWidth() {\n if (document.body) {\n return document.body.clientWidth;\n }\n if (window.innerHeight) {\n return window.innerWidth;\n }\n if (document.documentElement && document.documentElement.clientWidth) {\n return document.documentElement.clientWidth;\n }\n return -1;\n}\n/**\n * Gets the body height\n * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code\n * @returns {number}\n */\nfunction getBodyHeight() {\n if (document.body) {\n return document.body.clientHeight;\n }\n if (window.innerHeight) {\n return window.innerHeight;\n }\n if (document.documentElement && document.documentElement.clientHeight) {\n return document.documentElement.clientHeight;\n }\n return -1;\n}\n\nvar BrowserUtils = /*#__PURE__*/Object.freeze({\n isBrowserEdge: isBrowserEdge,\n isBrowserSafari: isBrowserSafari,\n isBrowserChrome: isBrowserChrome,\n isBrowserFirefox: isBrowserFirefox,\n isIOSUserAgent: isIOSUserAgent,\n getTabIndex: getTabIndex,\n getMaxDivHeight: getMaxDivHeight,\n getScrollbarWidth: getScrollbarWidth,\n isInvisibleScrollbar: isInvisibleScrollbar,\n hasOverflowScrolling: hasOverflowScrolling,\n getBodyWidth: getBodyWidth,\n getBodyHeight: getBodyHeight\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar rtlNegativeScroll;\n/**\n * This method adds a class to an element and remove that class from all siblings.\n * Useful for toggling state.\n * @param {HTMLElement} element The element to receive the class\n * @param {string} elementClass The class to be assigned to the element\n * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself\n */\nfunction radioCssClass(element, elementClass, otherElementClass) {\n var parent = element.parentElement;\n var sibling = parent && parent.firstChild;\n while (sibling) {\n if (elementClass) {\n sibling.classList.toggle(elementClass, sibling === element);\n }\n if (otherElementClass) {\n sibling.classList.toggle(otherElementClass, sibling !== element);\n }\n sibling = sibling.nextSibling;\n }\n}\nfunction isFocusableFormField(element) {\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n var isFocusable = matches.call(element, Constants.INPUT_SELECTOR);\n var isNotFocusable = matches.call(element, Constants.FOCUSABLE_EXCLUDE);\n var isElementVisible = isVisible(element);\n var focusable = isFocusable && !isNotFocusable && isElementVisible;\n return focusable;\n}\nfunction setDisplayed(element, displayed) {\n element.classList.toggle('ag-hidden', !displayed);\n}\nfunction setVisible(element, visible) {\n element.classList.toggle('ag-invisible', !visible);\n}\nfunction setDisabled(element, disabled) {\n var attributeName = 'disabled';\n var addOrRemoveDisabledAttribute = disabled ?\n function (e) { return e.setAttribute(attributeName, ''); } :\n function (e) { return e.removeAttribute(attributeName); };\n addOrRemoveDisabledAttribute(element);\n nodeListForEach(element.querySelectorAll('input'), function (input) { return addOrRemoveDisabledAttribute(input); });\n}\nfunction isElementChildOfClass(element, cls, maxNest) {\n var counter = 0;\n while (element) {\n if (element.classList.contains(cls)) {\n return true;\n }\n element = element.parentElement;\n if (maxNest && ++counter > maxNest) {\n break;\n }\n }\n return false;\n}\n// returns back sizes as doubles instead of strings. similar to\n// getBoundingClientRect, however getBoundingClientRect does not:\n// a) work with fractions (eg browser is zooming)\n// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values\nfunction getElementSize(el) {\n var _a = window.getComputedStyle(el), height = _a.height, width = _a.width, paddingTop = _a.paddingTop, paddingRight = _a.paddingRight, paddingBottom = _a.paddingBottom, paddingLeft = _a.paddingLeft, marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, boxSizing = _a.boxSizing;\n return {\n height: parseFloat(height),\n width: parseFloat(width),\n paddingTop: parseFloat(paddingTop),\n paddingRight: parseFloat(paddingRight),\n paddingBottom: parseFloat(paddingBottom),\n paddingLeft: parseFloat(paddingLeft),\n marginTop: parseFloat(marginTop),\n marginRight: parseFloat(marginRight),\n marginBottom: parseFloat(marginBottom),\n marginLeft: parseFloat(marginLeft),\n boxSizing: boxSizing\n };\n}\nfunction getInnerHeight(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.height - size.paddingTop - size.paddingBottom;\n }\n return size.height;\n}\nfunction getInnerWidth(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.width - size.paddingLeft - size.paddingRight;\n }\n return size.width;\n}\nfunction getAbsoluteHeight(el) {\n var size = getElementSize(el);\n var marginRight = size.marginBottom + size.marginTop;\n return Math.ceil(el.offsetHeight + marginRight);\n}\nfunction getAbsoluteWidth(el) {\n var size = getElementSize(el);\n var marginWidth = size.marginLeft + size.marginRight;\n return Math.ceil(el.offsetWidth + marginWidth);\n}\nfunction isRtlNegativeScroll() {\n if (typeof rtlNegativeScroll === \"boolean\") {\n return rtlNegativeScroll;\n }\n var template = document.createElement('div');\n template.style.direction = 'rtl';\n template.style.width = '1px';\n template.style.height = '1px';\n template.style.position = 'fixed';\n template.style.top = '0px';\n template.style.overflow = 'hidden';\n template.dir = 'rtl';\n template.innerHTML = /* html */\n \"
\\n \\n \\n
\";\n document.body.appendChild(template);\n template.scrollLeft = 1;\n rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;\n document.body.removeChild(template);\n return rtlNegativeScroll;\n}\nfunction getScrollLeft(element, rtl) {\n var scrollLeft = element.scrollLeft;\n if (rtl) {\n // Absolute value - for FF that reports RTL scrolls in negative numbers\n scrollLeft = Math.abs(scrollLeft);\n if (isBrowserChrome() && !isRtlNegativeScroll()) {\n scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;\n }\n }\n return scrollLeft;\n}\nfunction setScrollLeft(element, value, rtl) {\n if (rtl) {\n // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start\n if (isRtlNegativeScroll()) {\n value *= -1;\n }\n else if (isBrowserSafari() || isBrowserChrome()) {\n value = element.scrollWidth - element.clientWidth - value;\n }\n }\n element.scrollLeft = value;\n}\nfunction clearElement(el) {\n while (el && el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n/** @deprecated */\nfunction removeElement(parent, cssSelector) {\n removeFromParent(parent.querySelector(cssSelector));\n}\nfunction removeFromParent(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction isVisible(element) {\n return element.offsetParent !== null;\n}\n/**\n * Loads the template and returns it as an element. makes up for no simple way in\n * the dom api to load html directly, eg we cannot do this: document.createElement(template)\n * @param {string} template\n * @returns {HTMLElement}\n */\nfunction loadTemplate(template) {\n // we try the DOMParser first, as SalesForce doesn't like using innerHTML on a div\n if (DOMParser !== null) {\n var parser = new DOMParser();\n var doc = parser.parseFromString(template, \"text/html\");\n return doc.body.firstChild;\n }\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = (template || '').trim();\n return tempDiv.firstChild;\n}\nfunction appendHtml(eContainer, htmlTemplate) {\n if (eContainer.lastChild) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML\n // we put the items at the start, so new items appear underneath old items,\n // so when expanding/collapsing groups, the new rows don't go on top of the\n // rows below that are moving our of the way\n eContainer.insertAdjacentHTML('afterbegin', htmlTemplate);\n }\n else {\n eContainer.innerHTML = htmlTemplate;\n }\n}\n/** @deprecated */\nfunction getElementAttribute(element, attributeName) {\n if (element.attributes && element.attributes[attributeName]) {\n var attribute = element.attributes[attributeName];\n return attribute.value;\n }\n return null;\n}\nfunction offsetHeight(element) {\n return element && element.clientHeight ? element.clientHeight : 0;\n}\nfunction offsetWidth(element) {\n return element && element.clientWidth ? element.clientWidth : 0;\n}\nfunction ensureDomOrder(eContainer, eChild, eChildBefore) {\n // if already in right order, do nothing\n if (eChildBefore && eChildBefore.nextSibling === eChild) {\n return;\n }\n if (eChildBefore) {\n if (eChildBefore.nextSibling) {\n // insert between the eRowBefore and the row after it\n eContainer.insertBefore(eChild, eChildBefore.nextSibling);\n }\n else {\n // if nextSibling is missing, means other row is at end, so just append new row at the end\n eContainer.appendChild(eChild);\n }\n }\n else {\n // otherwise put at start\n if (eContainer.firstChild && eContainer.firstChild !== eChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eChild);\n }\n }\n}\nfunction setDomChildOrder(eContainer, orderedChildren) {\n for (var i = 0; i < orderedChildren.length; i++) {\n var correctCellAtIndex = orderedChildren[i];\n var actualCellAtIndex = eContainer.children[i];\n if (actualCellAtIndex !== correctCellAtIndex) {\n eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);\n }\n }\n}\nfunction insertWithDomOrder(eContainer, eToInsert, eChildBefore) {\n if (eChildBefore) {\n // if previous element exists, just slot in after the previous element\n eChildBefore.insertAdjacentElement('afterend', eToInsert);\n }\n else {\n if (eContainer.firstChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eToInsert);\n }\n else {\n // otherwise eContainer is empty, so just append it\n eContainer.appendChild(eToInsert);\n }\n }\n}\n/** @deprecated */\nfunction prependDC(parent, documentFragment) {\n if (exists(parent.firstChild)) {\n parent.insertBefore(documentFragment, parent.firstChild);\n }\n else {\n parent.appendChild(documentFragment);\n }\n}\nfunction addStylesToElement(eElement, styles) {\n if (!styles) {\n return;\n }\n Object.keys(styles).forEach(function (key) {\n var keyCamelCase = hyphenToCamelCase(key);\n if (keyCamelCase) {\n eElement.style[keyCamelCase] = styles[key];\n }\n });\n}\nfunction isHorizontalScrollShowing(element) {\n return element.clientWidth < element.scrollWidth;\n}\nfunction isVerticalScrollShowing(element) {\n return element.clientHeight < element.scrollHeight;\n}\nfunction setElementWidth(element, width) {\n if (width === 'flex') {\n element.style.removeProperty('width');\n element.style.removeProperty('minWidth');\n element.style.removeProperty('maxWidth');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedWidth(element, width);\n }\n}\nfunction setFixedWidth(element, width) {\n width = formatSize(width);\n element.style.width = width.toString();\n element.style.maxWidth = width.toString();\n element.style.minWidth = width.toString();\n}\nfunction setElementHeight(element, height) {\n if (height === 'flex') {\n element.style.removeProperty('height');\n element.style.removeProperty('minHeight');\n element.style.removeProperty('maxHeight');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedHeight(element, height);\n }\n}\nfunction setFixedHeight(element, height) {\n height = formatSize(height);\n element.style.height = height.toString();\n element.style.maxHeight = height.toString();\n element.style.minHeight = height.toString();\n}\nfunction formatSize(size) {\n if (typeof size === 'number') {\n return size + \"px\";\n }\n return size;\n}\n/**\n * Returns true if it is a DOM node\n * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n * @param {any} o\n * @return {boolean}\n */\nfunction isNode(o) {\n return (typeof Node === 'function'\n ? o instanceof Node\n : o && typeof o === 'object' && typeof o.nodeType === 'number' && typeof o.nodeName === 'string');\n}\n//\n/**\n * Returns true if it is a DOM element\n * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n * @param {any} o\n * @returns {boolean}\n */\nfunction isElement(o) {\n return (typeof HTMLElement === 'function'\n ? o instanceof HTMLElement //DOM2\n : o && isNonNullObject(o) && o.nodeType === 1 && typeof o.nodeName === 'string');\n}\nfunction isNodeOrElement(o) {\n return isNode(o) || isElement(o);\n}\n/**\n * Makes a copy of a node list into a list\n * @param {NodeList} nodeList\n * @returns {Node[]}\n */\nfunction copyNodeList(nodeList) {\n if (nodeList == null) {\n return [];\n }\n var result = [];\n nodeListForEach(nodeList, function (node) { return result.push(node); });\n return result;\n}\nfunction iterateNamedNodeMap(map, callback) {\n if (!map) {\n return;\n }\n for (var i = 0; i < map.length; i++) {\n var attr = map[i];\n callback(attr.name, attr.value);\n }\n}\n/** @deprecated */\nfunction setCheckboxState(eCheckbox, state) {\n if (typeof state === 'boolean') {\n eCheckbox.checked = state;\n eCheckbox.indeterminate = false;\n }\n else {\n // isNodeSelected returns back undefined if it's a group and the children\n // are a mix of selected and unselected\n eCheckbox.indeterminate = true;\n }\n}\nfunction addOrRemoveAttribute(element, name, value) {\n if (value == null) {\n element.removeAttribute(name);\n }\n else {\n element.setAttribute(name, value.toString());\n }\n}\nfunction nodeListForEach(nodeList, action) {\n if (nodeList == null) {\n return;\n }\n for (var i = 0; i < nodeList.length; i++) {\n action(nodeList[i]);\n }\n}\n\nvar DomUtils = /*#__PURE__*/Object.freeze({\n radioCssClass: radioCssClass,\n isFocusableFormField: isFocusableFormField,\n setDisplayed: setDisplayed,\n setVisible: setVisible,\n setDisabled: setDisabled,\n isElementChildOfClass: isElementChildOfClass,\n getElementSize: getElementSize,\n getInnerHeight: getInnerHeight,\n getInnerWidth: getInnerWidth,\n getAbsoluteHeight: getAbsoluteHeight,\n getAbsoluteWidth: getAbsoluteWidth,\n isRtlNegativeScroll: isRtlNegativeScroll,\n getScrollLeft: getScrollLeft,\n setScrollLeft: setScrollLeft,\n clearElement: clearElement,\n removeElement: removeElement,\n removeFromParent: removeFromParent,\n isVisible: isVisible,\n loadTemplate: loadTemplate,\n appendHtml: appendHtml,\n getElementAttribute: getElementAttribute,\n offsetHeight: offsetHeight,\n offsetWidth: offsetWidth,\n ensureDomOrder: ensureDomOrder,\n setDomChildOrder: setDomChildOrder,\n insertWithDomOrder: insertWithDomOrder,\n prependDC: prependDC,\n addStylesToElement: addStylesToElement,\n isHorizontalScrollShowing: isHorizontalScrollShowing,\n isVerticalScrollShowing: isVerticalScrollShowing,\n setElementWidth: setElementWidth,\n setFixedWidth: setFixedWidth,\n setElementHeight: setElementHeight,\n setFixedHeight: setFixedHeight,\n formatSize: formatSize,\n isNode: isNode,\n isElement: isElement,\n isNodeOrElement: isNodeOrElement,\n copyNodeList: copyNodeList,\n iterateNamedNodeMap: iterateNamedNodeMap,\n setCheckboxState: setCheckboxState,\n addOrRemoveAttribute: addOrRemoveAttribute,\n nodeListForEach: nodeListForEach\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/** @deprecated */\nfunction getNameOfClass(theClass) {\n var funcNameRegex = /function (.{1,})\\(/;\n var funcAsString = theClass.toString();\n var results = funcNameRegex.exec(funcAsString);\n return results && results.length > 1 ? results[1] : \"\";\n}\nfunction findLineByLeastSquares(values) {\n var len = values.length;\n var maxDecimals = 0;\n if (len <= 1) {\n return values;\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n var splitExponent = value.toString().split('e-');\n if (splitExponent.length > 1) {\n maxDecimals = Math.max(maxDecimals, parseInt(splitExponent[1], 10));\n continue;\n }\n if (Math.floor(value) === value) {\n continue;\n }\n maxDecimals = Math.max(maxDecimals, value.toString().split('.')[1].length);\n }\n var sum_x = 0;\n var sum_y = 0;\n var sum_xy = 0;\n var sum_xx = 0;\n var y = 0;\n for (var x = 0; x < len; x++) {\n y = values[x];\n sum_x += x;\n sum_y += y;\n sum_xx += x * x;\n sum_xy += x * y;\n }\n var m = (len * sum_xy - sum_x * sum_y) / (len * sum_xx - sum_x * sum_x);\n var b = (sum_y / len) - (m * sum_x) / len;\n var result = [];\n for (var x = 0; x <= len; x++) {\n result.push(parseFloat((x * m + b).toFixed(maxDecimals)));\n }\n return result;\n}\n/**\n * Converts a CSS object into string\n * @param {Object} stylesToUse an object eg: {color: 'black', top: '25px'}\n * @return {string} A string like \"color: black; top: 25px;\" for html\n */\nfunction cssStyleObjectToMarkup(stylesToUse) {\n if (!stylesToUse) {\n return '';\n }\n var resParts = [];\n iterateObject(stylesToUse, function (styleKey, styleValue) {\n var styleKeyDashed = camelCaseToHyphen(styleKey);\n resParts.push(styleKeyDashed + \": \" + styleValue + \";\");\n });\n return resParts.join(' ');\n}\n/**\n * Displays a message to the browser. this is useful in iPad, where you can't easily see the console.\n * so the javascript code can use this to give feedback. this is NOT intended to be called in production.\n * it is intended the AG Grid developer calls this to troubleshoot, but then takes out the calls before\n * checking in.\n * @param {string} msg\n */\nfunction message(msg) {\n var eMessage = document.createElement('div');\n var eBox = document.querySelector('#__ag__message');\n eMessage.innerHTML = msg;\n if (!eBox) {\n var template = \"
\";\n eBox = loadTemplate(template);\n if (document.body) {\n document.body.appendChild(eBox);\n }\n }\n eBox.insertBefore(eMessage, eBox.children[0]);\n}\n/**\n * cell renderers are used in a few places. they bind to dom slightly differently to other cell renderes as they\n * can return back strings (instead of html elemnt) in the getGui() method. common code placed here to handle that.\n * @param {AgPromise} cellRendererPromise\n * @param {HTMLElement} eTarget\n */\nfunction bindCellRendererToHtmlElement(cellRendererPromise, eTarget) {\n cellRendererPromise.then(function (cellRenderer) {\n var gui = cellRenderer.getGui();\n if (gui != null) {\n if (typeof gui === 'object') {\n eTarget.appendChild(gui);\n }\n else {\n eTarget.innerHTML = gui;\n }\n }\n });\n}\n\nvar GeneralUtils = /*#__PURE__*/Object.freeze({\n getNameOfClass: getNameOfClass,\n findLineByLeastSquares: findLineByLeastSquares,\n cssStyleObjectToMarkup: cssStyleObjectToMarkup,\n message: message,\n bindCellRendererToHtmlElement: bindCellRendererToHtmlElement\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// ARIA HELPER FUNCTIONS\nfunction setAriaAttribute(element, attribute, value) {\n element.setAttribute(ariaAttributeName(attribute), value.toString());\n}\nfunction removeAriaAttribute(element, attribute) {\n element.removeAttribute(ariaAttributeName(attribute));\n}\nfunction ariaAttributeName(attribute) {\n return \"aria-\" + attribute;\n}\nfunction setAriaRole(element, role) {\n if (role) {\n element.setAttribute('role', role);\n }\n else {\n element.removeAttribute('role');\n }\n}\nfunction getAriaSortState(column) {\n var sort;\n if (column.isSortAscending()) {\n sort = 'ascending';\n }\n else if (column.isSortDescending()) {\n sort = 'descending';\n }\n else {\n sort = 'none';\n }\n return sort;\n}\n// ARIA ATTRIBUTE GETTERS\nfunction getAriaLevel(element) {\n return parseInt(element.getAttribute('aria-level'), 10);\n}\nfunction getAriaPosInSet(element) {\n return parseInt(element.getAttribute('aria-posinset'), 10);\n}\nfunction getAriaDescribedBy(element) {\n return element.getAttribute('aria-describedby') || '';\n}\n// ARIA ATTRIBUTE SETTERS\nfunction setAriaLabel(element, label) {\n var key = 'label';\n if (label) {\n setAriaAttribute(element, key, label);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaLabelledBy(element, labelledBy) {\n var key = 'labelledby';\n if (labelledBy) {\n setAriaAttribute(element, key, labelledBy);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaDescription(element, description) {\n var key = 'description';\n if (description) {\n setAriaAttribute(element, key, description);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaDescribedBy(element, describedby) {\n var key = 'describedby';\n if (describedby) {\n setAriaAttribute(element, key, describedby);\n }\n else {\n removeAriaAttribute(element, key);\n }\n}\nfunction setAriaLevel(element, level) {\n setAriaAttribute(element, 'level', level);\n}\nfunction setAriaDisabled(element, disabled) {\n setAriaAttribute(element, 'disabled', disabled);\n}\nfunction setAriaExpanded(element, expanded) {\n setAriaAttribute(element, 'expanded', expanded);\n}\nfunction removeAriaExpanded(element) {\n removeAriaAttribute(element, 'expanded');\n}\nfunction setAriaSetSize(element, setsize) {\n setAriaAttribute(element, 'setsize', setsize);\n}\nfunction setAriaPosInSet(element, position) {\n setAriaAttribute(element, 'posinset', position);\n}\nfunction setAriaMultiSelectable(element, multiSelectable) {\n setAriaAttribute(element, 'multiselectable', multiSelectable);\n}\nfunction setAriaRowCount(element, rowCount) {\n setAriaAttribute(element, 'rowcount', rowCount);\n}\nfunction setAriaRowIndex(element, rowIndex) {\n setAriaAttribute(element, 'rowindex', rowIndex);\n}\nfunction setAriaColCount(element, colCount) {\n setAriaAttribute(element, 'colcount', colCount);\n}\nfunction setAriaColIndex(element, colIndex) {\n setAriaAttribute(element, 'colindex', colIndex);\n}\nfunction setAriaColSpan(element, colSpan) {\n setAriaAttribute(element, 'colspan', colSpan);\n}\nfunction setAriaSort(element, sort) {\n setAriaAttribute(element, 'sort', sort);\n}\nfunction removeAriaSort(element) {\n removeAriaAttribute(element, 'sort');\n}\nfunction setAriaSelected(element, selected) {\n var attributeName = 'selected';\n if (selected) {\n setAriaAttribute(element, attributeName, selected);\n }\n else {\n removeAriaAttribute(element, attributeName);\n }\n}\nfunction setAriaChecked(element, checked) {\n setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);\n}\n\nvar AriaUtils = /*#__PURE__*/Object.freeze({\n setAriaRole: setAriaRole,\n getAriaSortState: getAriaSortState,\n getAriaLevel: getAriaLevel,\n getAriaPosInSet: getAriaPosInSet,\n getAriaDescribedBy: getAriaDescribedBy,\n setAriaLabel: setAriaLabel,\n setAriaLabelledBy: setAriaLabelledBy,\n setAriaDescription: setAriaDescription,\n setAriaDescribedBy: setAriaDescribedBy,\n setAriaLevel: setAriaLevel,\n setAriaDisabled: setAriaDisabled,\n setAriaExpanded: setAriaExpanded,\n removeAriaExpanded: removeAriaExpanded,\n setAriaSetSize: setAriaSetSize,\n setAriaPosInSet: setAriaPosInSet,\n setAriaMultiSelectable: setAriaMultiSelectable,\n setAriaRowCount: setAriaRowCount,\n setAriaRowIndex: setAriaRowIndex,\n setAriaColCount: setAriaColCount,\n setAriaColIndex: setAriaColIndex,\n setAriaColSpan: setAriaColSpan,\n setAriaSort: setAriaSort,\n removeAriaSort: removeAriaSort,\n setAriaSelected: setAriaSelected,\n setAriaChecked: setAriaChecked\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction padStartWidthZeros(value, totalStringSize) {\n return value.toString().padStart(totalStringSize, '0');\n}\nfunction createArrayOfNumbers(first, last) {\n var result = [];\n for (var i = first; i <= last; i++) {\n result.push(i);\n }\n return result;\n}\n/**\n * Check if a value is numeric\n * from http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers\n * @param {any} value\n * @return {boolean}\n */\nfunction isNumeric(value) {\n return value !== '' && !isNaN(parseFloat(value)) && isFinite(value);\n}\nfunction cleanNumber(value) {\n if (typeof value === 'string') {\n value = parseInt(value, 10);\n }\n if (typeof value === 'number') {\n return Math.floor(value);\n }\n return null;\n}\nfunction decToHex(number, bytes) {\n var hex = '';\n for (var i = 0; i < bytes; i++) {\n hex += String.fromCharCode(number & 0xff);\n number >>>= 8;\n }\n return hex;\n}\nfunction formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return formatNumberCommas(Math.round(value * 100) / 100, thousandSeparator, decimalSeparator);\n}\n/**\n * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})\n * puts in decimal places in IE, so we use this method instead\n * from: http://blog.tompawlak.org/number-currency-formatting-javascript\n * @param {number} value\n * @returns {string}\n */\nfunction formatNumberCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return value.toString().replace('.', decimalSeparator).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1\" + thousandSeparator);\n}\nfunction sum(values) {\n return values == null ? null : values.reduce(function (total, value) { return total + value; }, 0);\n}\n\nvar NumberUtils = /*#__PURE__*/Object.freeze({\n padStartWidthZeros: padStartWidthZeros,\n createArrayOfNumbers: createArrayOfNumbers,\n isNumeric: isNumeric,\n cleanNumber: cleanNumber,\n decToHex: decToHex,\n formatNumberTwoDecimalPlacesAndCommas: formatNumberTwoDecimalPlacesAndCommas,\n formatNumberCommas: formatNumberCommas,\n sum: sum\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$5 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.\n * An alternative separator can be provided to be used instead of hyphens.\n * @param date The date to serialise\n * @param includeTime Whether to include the time in the serialised string\n * @param separator The separator to use between date parts\n */\nfunction serialiseDate(date, includeTime, separator) {\n if (includeTime === void 0) { includeTime = true; }\n if (separator === void 0) { separator = '-'; }\n if (!date) {\n return null;\n }\n var serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(function (part) { return padStartWidthZeros(part, 2); }).join(separator);\n if (includeTime) {\n serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(function (part) { return padStartWidthZeros(part, 2); }).join(':');\n }\n return serialised;\n}\n/**\n * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`\n */\nfunction parseDateTimeFromString(value) {\n if (!value) {\n return null;\n }\n var _a = __read$5(value.split(' '), 2), dateStr = _a[0], timeStr = _a[1];\n if (!dateStr) {\n return null;\n }\n var fields = dateStr.split('-').map(function (f) { return parseInt(f, 10); });\n if (fields.filter(function (f) { return !isNaN(f); }).length !== 3) {\n return null;\n }\n var _b = __read$5(fields, 3), year = _b[0], month = _b[1], day = _b[2];\n var date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day) {\n // date was not parsed as expected so must have been invalid\n return null;\n }\n if (!timeStr || timeStr === '00:00:00') {\n return date;\n }\n var _c = __read$5(timeStr.split(':').map(function (part) { return parseInt(part, 10); }), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];\n if (hours >= 0 && hours < 24) {\n date.setHours(hours);\n }\n if (minutes >= 0 && minutes < 60) {\n date.setMinutes(minutes);\n }\n if (seconds >= 0 && seconds < 60) {\n date.setSeconds(seconds);\n }\n return date;\n}\n\nvar DateUtils = /*#__PURE__*/Object.freeze({\n serialiseDate: serialiseDate,\n parseDateTimeFromString: parseDateTimeFromString\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction fuzzyCheckStrings(inputValues, validValues, allSuggestions) {\n var fuzzyMatches = {};\n var invalidInputs = inputValues.filter(function (inputValue) {\n return !validValues.some(function (validValue) { return validValue === inputValue; });\n });\n if (invalidInputs.length > 0) {\n invalidInputs.forEach(function (invalidInput) {\n return fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions);\n });\n }\n return fuzzyMatches;\n}\n/**\n *\n * @param {String} inputValue The value to be compared against a list of strings\n * @param allSuggestions The list of strings to be compared against\n * @param hideIrrelevant By default, fuzzy suggestions will just sort the allSuggestions list, set this to true\n * to filter out the irrelevant values\n * @param weighted Set this to true, to make letters matched in the order they were typed have priority in the results.\n */\nfunction fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, weighted) {\n var search = weighted ? string_weighted_distances : string_distances;\n var thisSuggestions = allSuggestions.map(function (text) { return ({\n value: text,\n relevance: search(inputValue.toLowerCase(), text.toLocaleLowerCase())\n }); });\n thisSuggestions.sort(function (a, b) { return b.relevance - a.relevance; });\n if (hideIrrelevant) {\n thisSuggestions = thisSuggestions.filter(function (suggestion) { return suggestion.relevance !== 0; });\n }\n return thisSuggestions.map(function (suggestion) { return suggestion.value; });\n}\n/**\n * Algorithm to do fuzzy search\n * from https://stackoverflow.com/questions/23305000/javascript-fuzzy-search-that-makes-sense\n * @param {string} from\n * @return {[]}\n */\nfunction get_bigrams(from) {\n var s = from.toLowerCase();\n var v = new Array(s.length - 1);\n var i;\n var j;\n var ref;\n for (i = j = 0, ref = v.length; j <= ref; i = j += 1) {\n v[i] = s.slice(i, i + 2);\n }\n return v;\n}\nfunction string_distances(str1, str2) {\n if (str1.length === 0 && str2.length === 0) {\n return 0;\n }\n var pairs1 = get_bigrams(str1);\n var pairs2 = get_bigrams(str2);\n var union = pairs1.length + pairs2.length;\n var hit_count = 0;\n var j;\n var len;\n for (j = 0, len = pairs1.length; j < len; j++) {\n var x = pairs1[j];\n var k = void 0;\n var len1 = void 0;\n for (k = 0, len1 = pairs2.length; k < len1; k++) {\n var y = pairs2[k];\n if (x === y) {\n hit_count++;\n }\n }\n }\n return hit_count > 0 ? (2 * hit_count) / union : 0;\n}\nfunction string_weighted_distances(str1, str2) {\n var a = str1.replace(/\\s/g, '');\n var b = str2.replace(/\\s/g, '');\n var weight = 0;\n var lastIndex = 0;\n for (var i = 0; i < a.length; i++) {\n var idx = b.indexOf(a[i], lastIndex);\n if (idx === -1) {\n continue;\n }\n lastIndex = idx;\n weight += (100 - (lastIndex * 100 / 10000) * 100);\n }\n return weight;\n}\n\nvar FuzzyMatchUtils = /*#__PURE__*/Object.freeze({\n fuzzyCheckStrings: fuzzyCheckStrings,\n fuzzySuggestions: fuzzySuggestions,\n get_bigrams: get_bigrams,\n string_distances: string_distances,\n string_weighted_distances: string_weighted_distances\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n//\n// IMPORTANT NOTE!\n//\n// If you change the list below, copy/paste the new content into the docs page javascript-grid-icons\n//\nvar iconNameClassMap = {\n // header column group shown when expanded (click to contract)\n columnGroupOpened: 'expanded',\n // header column group shown when contracted (click to expand)\n columnGroupClosed: 'contracted',\n // tool panel column group contracted (click to expand)\n columnSelectClosed: 'tree-closed',\n // tool panel column group expanded (click to contract)\n columnSelectOpen: 'tree-open',\n // column tool panel header expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n columnSelectIndeterminate: 'tree-indeterminate',\n // shown on ghost icon while dragging column to the side of the grid to pin\n columnMovePin: 'pin',\n // shown on ghost icon while dragging over part of the page that is not a drop zone\n columnMoveHide: 'eye-slash',\n // shown on ghost icon while dragging columns to reorder\n columnMoveMove: 'arrows',\n // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling\n columnMoveLeft: 'left',\n // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling\n columnMoveRight: 'right',\n // shown on ghost icon while dragging over Row Groups drop zone\n columnMoveGroup: 'group',\n // shown on ghost icon while dragging over Values drop zone\n columnMoveValue: 'aggregation',\n // shown on ghost icon while dragging over pivot drop zone\n columnMovePivot: 'pivot',\n // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.\n // string column over aggregation drop zone\n dropNotAllowed: 'not-allowed',\n // shown on row group when contracted (click to expand)\n groupContracted: 'tree-closed',\n // shown on row group when expanded (click to contract)\n groupExpanded: 'tree-open',\n // context menu chart item\n chart: 'chart',\n // chart window title bar\n close: 'cross',\n // X (remove) on column 'pill' after adding it to a drop zone list\n cancel: 'cancel',\n // indicates the currently active pin state in the \"Pin column\" sub-menu of the column menu\n check: 'tick',\n // \"go to first\" button in pagination controls\n first: 'first',\n // \"go to previous\" button in pagination controls\n previous: 'previous',\n // \"go to next\" button in pagination controls\n next: 'next',\n // \"go to last\" button in pagination controls\n last: 'last',\n // shown on top right of chart when chart is linked to range data (click to unlink)\n linked: 'linked',\n // shown on top right of chart when chart is not linked to range data (click to link)\n unlinked: 'unlinked',\n // \"Choose colour\" button on chart settings tab\n colorPicker: 'color-picker',\n // rotating spinner shown by the loading cell renderer\n groupLoading: 'loading',\n // button to launch enterprise column menu\n menu: 'menu',\n // filter tool panel tab\n filter: 'filter',\n // column tool panel tab\n columns: 'columns',\n // button in chart regular size window title bar (click to maximise)\n maximize: 'maximize',\n // button in chart maximised window title bar (click to make regular size)\n minimize: 'minimize',\n // \"Pin column\" item in column header menu\n menuPin: 'pin',\n // \"Value aggregation\" column menu item (shown on numeric columns when grouping is active)\"\n menuValue: 'aggregation',\n // \"Group by {column-name}\" item in column header menu\n menuAddRowGroup: 'group',\n // \"Un-Group by {column-name}\" item in column header menu\n menuRemoveRowGroup: 'group',\n // context menu copy item\n clipboardCopy: 'copy',\n // context menu paste item\n clipboardPaste: 'paste',\n // identifies the pivot drop zone\n pivotPanel: 'pivot',\n // \"Row groups\" drop zone in column tool panel\n rowGroupPanel: 'group',\n // columns tool panel Values drop zone\n valuePanel: 'aggregation',\n // drag handle used to pick up draggable columns\n columnDrag: 'grip',\n // drag handle used to pick up draggable rows\n rowDrag: 'grip',\n // context menu export item\n save: 'save',\n // csv export\n csvExport: 'csv',\n // excel export,\n excelExport: 'excel',\n // icon on dropdown editors\n smallDown: 'small-down',\n // version of small-right used in RTL mode\n smallLeft: 'small-left',\n // separater between column 'pills' when you add multiple columns to the header drop zone\n smallRight: 'small-right',\n smallUp: 'small-up',\n // show on column header when column is sorted ascending\n sortAscending: 'asc',\n // show on column header when column is sorted descending\n sortDescending: 'desc',\n // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true\n sortUnSort: 'none'\n};\n/**\n * If icon provided, use this (either a string, or a function callback).\n * if not, then use the default icon from the theme\n * @param {string} iconName\n * @param {GridOptionsWrapper} gridOptionsWrapper\n * @param {Column | null} [column]\n * @returns {HTMLElement}\n */\nfunction createIcon(iconName, gridOptionsWrapper, column) {\n var iconContents = createIconNoSpan(iconName, gridOptionsWrapper, column);\n if (iconContents && iconContents.className.indexOf('ag-icon') > -1) {\n return iconContents;\n }\n var eResult = document.createElement('span');\n eResult.appendChild(iconContents);\n return eResult;\n}\nfunction createIconNoSpan(iconName, gridOptionsWrapper, column, forceCreate) {\n var userProvidedIcon = null;\n // check col for icon first\n var icons = column && column.getColDef().icons;\n if (icons) {\n userProvidedIcon = icons[iconName];\n }\n // if not in col, try grid options\n if (gridOptionsWrapper && !userProvidedIcon) {\n var optionsIcons = gridOptionsWrapper.getIcons();\n if (optionsIcons) {\n userProvidedIcon = optionsIcons[iconName];\n }\n }\n // now if user provided, use it\n if (userProvidedIcon) {\n var rendererResult = void 0;\n if (typeof userProvidedIcon === 'function') {\n rendererResult = userProvidedIcon();\n }\n else if (typeof userProvidedIcon === 'string') {\n rendererResult = userProvidedIcon;\n }\n else {\n throw new Error('icon from grid options needs to be a string or a function');\n }\n if (typeof rendererResult === 'string') {\n return loadTemplate(rendererResult);\n }\n if (isNodeOrElement(rendererResult)) {\n return rendererResult;\n }\n console.warn('AG Grid: iconRenderer should return back a string or a dom object');\n }\n else {\n var span = document.createElement('span');\n var cssClass = iconNameClassMap[iconName];\n if (!cssClass) {\n if (!forceCreate) {\n console.warn(\"AG Grid: Did not find icon \" + iconName);\n cssClass = '';\n }\n else {\n cssClass = iconName;\n }\n }\n span.setAttribute('class', \"ag-icon ag-icon-\" + cssClass);\n span.setAttribute('unselectable', 'on');\n setAriaRole(span, 'presentation');\n return span;\n }\n}\n\nvar IconUtils = /*#__PURE__*/Object.freeze({\n iconNameClassMap: iconNameClassMap,\n createIcon: createIcon,\n createIconNoSpan: createIconNoSpan\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar NUMPAD_DEL_NUMLOCK_ON_KEY = 'Del';\nvar NUMPAD_DEL_NUMLOCK_ON_CHARCODE = 46;\nfunction isEventFromPrintableCharacter(event) {\n // no allowed printable chars have alt or ctrl key combinations\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return false;\n }\n // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.\n // non-printable characters have names, eg 'Enter' or 'Backspace'.\n var printableCharacter = event.key.length === 1;\n // IE11 & Edge treat the numpad del key differently - with numlock on we get \"Del\" for key,\n // so this addition checks if its IE11/Edge and handles that specific case the same was as all other browsers\n var numpadDelWithNumlockOnForEdgeOrIe = isNumpadDelWithNumLockOnForEdge(event);\n return printableCharacter || numpadDelWithNumlockOnForEdgeOrIe;\n}\n/**\n * Allows user to tell the grid to skip specific keyboard events\n * @param {GridOptionsWrapper} gridOptionsWrapper\n * @param {KeyboardEvent} keyboardEvent\n * @param {RowNode} rowNode\n * @param {Column} column\n * @param {boolean} editing\n * @returns {boolean}\n */\nfunction isUserSuppressingKeyboardEvent(gridOptionsWrapper, keyboardEvent, rowNode, column, editing) {\n var gridOptionsFunc = gridOptionsWrapper.getSuppressKeyboardEventFunc();\n var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;\n // if no callbacks provided by user, then do nothing\n if (!gridOptionsFunc && !colDefFunc) {\n return false;\n }\n var params = {\n event: keyboardEvent,\n editing: editing,\n column: column,\n api: gridOptionsWrapper.getApi(),\n node: rowNode,\n data: rowNode.data,\n colDef: column.getColDef(),\n context: gridOptionsWrapper.getContext(),\n columnApi: gridOptionsWrapper.getColumnApi()\n };\n // colDef get first preference on suppressing events\n if (colDefFunc) {\n var colDefFuncResult = colDefFunc(params);\n // if colDef func suppressed, then return now, no need to call gridOption func\n if (colDefFuncResult) {\n return true;\n }\n }\n if (gridOptionsFunc) {\n // if gridOption func, return the result\n return gridOptionsFunc(params);\n }\n // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions\n return false;\n}\nfunction isUserSuppressingHeaderKeyboardEvent(gridOptionsWrapper, keyboardEvent, headerRowIndex, column) {\n var colDef = column.getDefinition();\n var colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;\n if (!exists(colDefFunc)) {\n return false;\n }\n var params = {\n api: gridOptionsWrapper.getApi(),\n columnApi: gridOptionsWrapper.getColumnApi(),\n context: gridOptionsWrapper.getContext(),\n colDef: colDef,\n column: column,\n headerRowIndex: headerRowIndex,\n event: keyboardEvent\n };\n return !!colDefFunc(params);\n}\nfunction isNumpadDelWithNumLockOnForEdge(event) {\n return (isBrowserEdge()) &&\n event.key === NUMPAD_DEL_NUMLOCK_ON_KEY &&\n event.charCode === NUMPAD_DEL_NUMLOCK_ON_CHARCODE;\n}\n\nvar KeyboardUtils = /*#__PURE__*/Object.freeze({\n isEventFromPrintableCharacter: isEventFromPrintableCharacter,\n isUserSuppressingKeyboardEvent: isUserSuppressingKeyboardEvent,\n isUserSuppressingHeaderKeyboardEvent: isUserSuppressingHeaderKeyboardEvent\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * `True` if the event is close to the original event by X pixels either vertically or horizontally.\n * we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n * @param {MouseEvent | TouchEvent} e1\n * @param {MouseEvent | TouchEvent} e2\n * @param {number} pixelCount\n * @returns {boolean}\n */\nfunction areEventsNear(e1, e2, pixelCount) {\n // by default, we wait 4 pixels before starting the drag\n if (pixelCount === 0) {\n return false;\n }\n var diffX = Math.abs(e1.clientX - e2.clientX);\n var diffY = Math.abs(e1.clientY - e2.clientY);\n return Math.max(diffX, diffY) <= pixelCount;\n}\n\nvar MouseUtils = /*#__PURE__*/Object.freeze({\n areEventsNear: areEventsNear\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.\n * when in ClientSideNodeManager we always have indexes (as this sorts the items the\n * user provided) but when in GroupStage, the nodes can contain filler nodes that\n * don't have order id's\n * @param {RowNode[]} rowNodes\n * @param {Object} rowNodeOrder\n */\nfunction sortRowNodesByOrder(rowNodes, rowNodeOrder) {\n if (!rowNodes) {\n return;\n }\n var comparator = function (nodeA, nodeB) {\n var positionA = rowNodeOrder[nodeA.id];\n var positionB = rowNodeOrder[nodeB.id];\n var aHasIndex = positionA !== undefined;\n var bHasIndex = positionB !== undefined;\n var bothNodesAreUserNodes = aHasIndex && bHasIndex;\n var bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;\n if (bothNodesAreUserNodes) {\n // when comparing two nodes the user has provided, they always\n // have indexes\n return positionA - positionB;\n }\n if (bothNodesAreFillerNodes) {\n // when comparing two filler nodes, we have no index to compare them\n // against, however we want this sorting to be deterministic, so that\n // the rows don't jump around as the user does delta updates. so we\n // want the same sort result. so we use the __objectId - which doesn't make sense\n // from a sorting point of view, but does give consistent behaviour between\n // calls. otherwise groups jump around as delta updates are done.\n // note: previously here we used nodeId, however this gave a strange order\n // as string ordering of numbers is wrong, so using id based on creation order\n // as least gives better looking order.\n return nodeA.__objectId - nodeB.__objectId;\n }\n if (aHasIndex) {\n return 1;\n }\n return -1;\n };\n // check if the list first needs sorting\n var rowNodeA;\n var rowNodeB;\n var atLeastOneOutOfOrder = false;\n for (var i = 0; i < rowNodes.length - 1; i++) {\n rowNodeA = rowNodes[i];\n rowNodeB = rowNodes[i + 1];\n if (comparator(rowNodeA, rowNodeB) > 0) {\n atLeastOneOutOfOrder = true;\n break;\n }\n }\n if (atLeastOneOutOfOrder) {\n rowNodes.sort(comparator);\n }\n}\nfunction traverseNodesWithKey(nodes, callback) {\n var keyParts = [];\n recursiveSearchNodes(nodes);\n function recursiveSearchNodes(currentNodes) {\n if (!currentNodes) {\n return;\n }\n currentNodes.forEach(function (node) {\n // also checking for children for tree data\n if (node.group || node.hasChildren()) {\n keyParts.push(node.key);\n var key = keyParts.join('|');\n callback(node, key);\n recursiveSearchNodes(node.childrenAfterGroup);\n keyParts.pop();\n }\n });\n }\n}\n\nvar RowNodeUtils = /*#__PURE__*/Object.freeze({\n sortRowNodesByOrder: sortRowNodesByOrder,\n traverseNodesWithKey: traverseNodesWithKey\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction convertToSet(list) {\n var set = new Set();\n list.forEach(function (x) { return set.add(x); });\n return set;\n}\n\nvar SetUtils = /*#__PURE__*/Object.freeze({\n convertToSet: convertToSet\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\nvar utils = __assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1({}, GeneralUtils), AriaUtils), ArrayUtils), BrowserUtils), CsvUtils), DateUtils), DomUtils), EventUtils), FunctionUtils), FuzzyMatchUtils), GenericUtils), IconUtils), KeyboardUtils), MapUtils), MouseUtils), NumberUtils), ObjectUtils), RowNodeUtils), SetUtils), StringUtils);\nvar _ = utils;\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar NumberSequence = /** @class */ (function () {\n function NumberSequence(initValue, step) {\n if (initValue === void 0) { initValue = 0; }\n if (step === void 0) { step = 1; }\n this.nextValue = initValue;\n this.step = step;\n }\n NumberSequence.prototype.next = function () {\n var valToReturn = this.nextValue;\n this.nextValue += this.step;\n return valToReturn;\n };\n NumberSequence.prototype.peek = function () {\n return this.nextValue;\n };\n NumberSequence.prototype.skip = function (count) {\n this.nextValue += count;\n };\n return NumberSequence;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (AgPromiseStatus) {\n AgPromiseStatus[AgPromiseStatus[\"IN_PROGRESS\"] = 0] = \"IN_PROGRESS\";\n AgPromiseStatus[AgPromiseStatus[\"RESOLVED\"] = 1] = \"RESOLVED\";\n})(exports.AgPromiseStatus || (exports.AgPromiseStatus = {}));\nvar AgPromise = /** @class */ (function () {\n function AgPromise(callback) {\n var _this = this;\n this.status = exports.AgPromiseStatus.IN_PROGRESS;\n this.resolution = null;\n this.waiters = [];\n callback(function (value) { return _this.onDone(value); }, function (params) { return _this.onReject(params); });\n }\n AgPromise.all = function (promises) {\n return new AgPromise(function (resolve) {\n var remainingToResolve = promises.length;\n var combinedValues = new Array(remainingToResolve);\n promises.forEach(function (promise, index) {\n promise.then(function (value) {\n combinedValues[index] = value;\n remainingToResolve--;\n if (remainingToResolve === 0) {\n resolve(combinedValues);\n }\n });\n });\n });\n };\n AgPromise.resolve = function (value) {\n if (value === void 0) { value = null; }\n return new AgPromise(function (resolve) { return resolve(value); });\n };\n AgPromise.prototype.then = function (func) {\n var _this = this;\n return new AgPromise(function (resolve) {\n if (_this.status === exports.AgPromiseStatus.RESOLVED) {\n resolve(func(_this.resolution));\n }\n else {\n _this.waiters.push(function (value) { return resolve(func(value)); });\n }\n });\n };\n AgPromise.prototype.resolveNow = function (ifNotResolvedValue, ifResolved) {\n return this.status === exports.AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;\n };\n AgPromise.prototype.onDone = function (value) {\n this.status = exports.AgPromiseStatus.RESOLVED;\n this.resolution = value;\n this.waiters.forEach(function (waiter) { return waiter(value); });\n };\n AgPromise.prototype.onReject = function (params) {\n console.warn('TBI');\n };\n return AgPromise;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * A Util Class only used when debugging for printing time to console\n */\nvar Timer = /** @class */ (function () {\n function Timer() {\n this.timestamp = new Date().getTime();\n }\n Timer.prototype.print = function (msg) {\n var duration = (new Date().getTime()) - this.timestamp;\n console.info(msg + \" = \" + duration);\n this.timestamp = new Date().getTime();\n };\n return Timer;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$5 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\nvar __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TooltipStates;\n(function (TooltipStates) {\n TooltipStates[TooltipStates[\"NOTHING\"] = 0] = \"NOTHING\";\n TooltipStates[TooltipStates[\"WAITING_TO_SHOW\"] = 1] = \"WAITING_TO_SHOW\";\n TooltipStates[TooltipStates[\"SHOWING\"] = 2] = \"SHOWING\";\n})(TooltipStates || (TooltipStates = {}));\nvar CustomTooltipFeature = /** @class */ (function (_super) {\n __extends$5(CustomTooltipFeature, _super);\n function CustomTooltipFeature(parentComp) {\n var _this = _super.call(this) || this;\n _this.DEFAULT_SHOW_TOOLTIP_DELAY = 2000;\n _this.DEFAULT_HIDE_TOOLTIP_DELAY = 10000;\n _this.SHOW_QUICK_TOOLTIP_DIFF = 1000;\n _this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;\n _this.state = TooltipStates.NOTHING;\n // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to\n // async we could request two tooltips before the first instance returns, in which case we should\n // disregard the second instance.\n _this.tooltipInstanceCount = 0;\n _this.tooltipMouseTrack = false;\n _this.parentComp = parentComp;\n return _this;\n }\n CustomTooltipFeature.prototype.postConstruct = function () {\n this.tooltipShowDelay = this.gridOptionsWrapper.getTooltipDelay('show') || this.DEFAULT_SHOW_TOOLTIP_DELAY;\n this.tooltipHideDelay = this.gridOptionsWrapper.getTooltipDelay('hide') || this.DEFAULT_HIDE_TOOLTIP_DELAY;\n this.tooltipMouseTrack = this.gridOptionsWrapper.isTooltipMouseTrack();\n var el = this.parentComp.getGui();\n this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));\n this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));\n this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));\n this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));\n this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));\n };\n CustomTooltipFeature.prototype.destroy = function () {\n // if this component gets destroyed while tooltip is showing, need to make sure\n // we don't end with no mouseLeave event resulting in zombie tooltip\n this.setToDoNothing();\n _super.prototype.destroy.call(this);\n };\n CustomTooltipFeature.prototype.onMouseEnter = function (e) {\n if (isIOSUserAgent()) {\n return;\n }\n // every mouseenter should be following by a mouseleave, however for some unkonwn, it's possible for\n // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported\n // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if\n // state is !=nothing, then we know mouseenter was already received.\n if (this.state != TooltipStates.NOTHING) {\n return;\n }\n // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time\n var delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;\n this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);\n this.lastMouseEvent = e;\n this.state = TooltipStates.WAITING_TO_SHOW;\n };\n CustomTooltipFeature.prototype.onMouseLeave = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.onKeyDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.setToDoNothing = function () {\n if (this.state === TooltipStates.SHOWING) {\n this.hideTooltip();\n }\n this.clearTimeouts();\n this.state = TooltipStates.NOTHING;\n };\n CustomTooltipFeature.prototype.onMouseMove = function (e) {\n // there is a delay from the time we mouseOver a component and the time the\n // tooltip is displayed, so we need to track mousemove to be able to correctly\n // position the tooltip when showTooltip is called.\n this.lastMouseEvent = e;\n if (this.tooltipMouseTrack &&\n this.state === TooltipStates.SHOWING &&\n this.tooltipComp) {\n this.positionTooltipUnderLastMouseEvent();\n }\n };\n CustomTooltipFeature.prototype.onMouseDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.hideTooltip = function () {\n // check if comp exists - due to async, although we asked for\n // one, the instance may not be back yet\n if (this.tooltipComp) {\n this.destroyTooltipComp();\n CustomTooltipFeature.lastTooltipHideTime = new Date().getTime();\n }\n this.state = TooltipStates.NOTHING;\n };\n CustomTooltipFeature.prototype.destroyTooltipComp = function () {\n var _this = this;\n // add class to fade out the tooltip\n this.tooltipComp.getGui().classList.add('ag-tooltip-hiding');\n // make local copies of these variables, as we use them in the async function below,\n // and we clear then to 'undefined' later, so need to take a copy before they are undefined.\n var tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;\n var tooltipComp = this.tooltipComp;\n window.setTimeout(function () {\n tooltipPopupDestroyFunc();\n _this.getContext().destroyBean(tooltipComp);\n }, this.FADE_OUT_TOOLTIP_TIMEOUT);\n this.tooltipPopupDestroyFunc = undefined;\n this.tooltipComp = undefined;\n };\n CustomTooltipFeature.prototype.isLastTooltipHiddenRecently = function () {\n // return true if <1000ms since last time we hid a tooltip\n var now = new Date().getTime();\n var then = CustomTooltipFeature.lastTooltipHideTime;\n return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;\n };\n CustomTooltipFeature.prototype.showTooltip = function () {\n var params = __assign$2({}, this.parentComp.getTooltipParams());\n if (!exists(params.value)) {\n this.setToDoNothing();\n return;\n }\n this.state = TooltipStates.SHOWING;\n this.tooltipInstanceCount++;\n // we pass in tooltipInstanceCount so the callback knows what the count was when\n // we requested the tooltip, so if another tooltip was requested in the mean time\n // we disregard it\n var callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);\n var userDetails = this.userComponentFactory.getTooltipCompDetails(params);\n userDetails.newAgStackInstance().then(callback);\n };\n CustomTooltipFeature.prototype.newTooltipComponentCallback = function (tooltipInstanceCopy, tooltipComp) {\n var compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;\n if (compNoLongerNeeded) {\n this.getContext().destroyBean(tooltipComp);\n return;\n }\n var eGui = tooltipComp.getGui();\n this.tooltipComp = tooltipComp;\n if (!eGui.classList.contains('ag-tooltip')) {\n eGui.classList.add('ag-tooltip-custom');\n }\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n eChild: eGui,\n ariaLabel: translate('ariaLabelTooltip', 'Tooltip')\n });\n if (addPopupRes) {\n this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;\n }\n // this.tooltipPopupDestroyFunc = this.popupService.addPopup(false, eGui, false);\n this.positionTooltipUnderLastMouseEvent();\n this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.tooltipHideDelay);\n };\n CustomTooltipFeature.prototype.positionTooltipUnderLastMouseEvent = function () {\n this.popupService.positionPopupUnderMouseEvent({\n type: 'tooltip',\n mouseEvent: this.lastMouseEvent,\n ePopup: this.tooltipComp.getGui(),\n nudgeY: 18\n });\n };\n CustomTooltipFeature.prototype.clearTimeouts = function () {\n if (this.showTooltipTimeoutId) {\n window.clearTimeout(this.showTooltipTimeoutId);\n this.showTooltipTimeoutId = undefined;\n }\n if (this.hideTooltipTimeoutId) {\n window.clearTimeout(this.hideTooltipTimeoutId);\n this.hideTooltipTimeoutId = undefined;\n }\n };\n __decorate$9([\n Autowired('popupService')\n ], CustomTooltipFeature.prototype, \"popupService\", void 0);\n __decorate$9([\n Autowired('userComponentFactory')\n ], CustomTooltipFeature.prototype, \"userComponentFactory\", void 0);\n __decorate$9([\n Autowired('columnApi')\n ], CustomTooltipFeature.prototype, \"columnApi\", void 0);\n __decorate$9([\n Autowired('gridApi')\n ], CustomTooltipFeature.prototype, \"gridApi\", void 0);\n __decorate$9([\n PostConstruct\n ], CustomTooltipFeature.prototype, \"postConstruct\", null);\n return CustomTooltipFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$6 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar compIdSequence = new NumberSequence();\nvar CssClassManager = /** @class */ (function () {\n function CssClassManager(getGui) {\n // to minimise DOM hits, we only apply CSS classes if they have changed. as adding a CSS class that is already\n // there, or removing one that wasn't present, all takes CPU.\n this.cssClassStates = {};\n this.getGui = getGui;\n }\n CssClassManager.prototype.addCssClass = function (className) {\n var _this = this;\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.addCssClass(cls); });\n return;\n }\n var updateNeeded = this.cssClassStates[className] !== true;\n if (updateNeeded && className.length) {\n this.getGui().classList.add(className);\n this.cssClassStates[className] = true;\n }\n };\n CssClassManager.prototype.removeCssClass = function (className) {\n var _this = this;\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.removeCssClass(cls); });\n return;\n }\n var updateNeeded = this.cssClassStates[className] !== false;\n if (updateNeeded && className.length) {\n this.getGui().classList.remove(className);\n this.cssClassStates[className] = false;\n }\n };\n CssClassManager.prototype.containsCssClass = function (className) {\n return this.getGui().classList.contains(className);\n };\n CssClassManager.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n var _this = this;\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.addOrRemoveCssClass(cls, addOrRemove); });\n return;\n }\n var updateNeeded = this.cssClassStates[className] !== addOrRemove;\n if (updateNeeded && className.length) {\n this.getGui().classList.toggle(className, addOrRemove);\n this.cssClassStates[className] = addOrRemove;\n }\n };\n return CssClassManager;\n}());\nvar Component = /** @class */ (function (_super) {\n __extends$6(Component, _super);\n function Component(template) {\n var _this = _super.call(this) || this;\n // if false, then CSS class \"ag-hidden\" is applied, which sets \"display: none\"\n _this.displayed = true;\n // if false, then CSS class \"ag-invisible\" is applied, which sets \"visibility: hidden\"\n _this.visible = true;\n // unique id for this row component. this is used for getting a reference to the HTML dom.\n // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying\n // around as we create a new rowComp instance for the same row node).\n _this.compId = compIdSequence.next();\n _this.cssClassManager = new CssClassManager(function () { return _this.eGui; });\n if (template) {\n _this.setTemplate(template);\n }\n return _this;\n }\n Component.prototype.preConstructOnComponent = function () {\n this.usingBrowserTooltips = this.gridOptionsWrapper.isEnableBrowserTooltips();\n };\n Component.prototype.getCompId = function () {\n return this.compId;\n };\n Component.prototype.getTooltipParams = function () {\n return {\n value: this.tooltipText,\n location: 'UNKNOWN'\n };\n };\n Component.prototype.setTooltip = function (newTooltipText) {\n var _this = this;\n var removeTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().removeAttribute('title');\n }\n else {\n _this.tooltipFeature = _this.destroyBean(_this.tooltipFeature);\n }\n };\n var addTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().setAttribute('title', _this.tooltipText);\n }\n else {\n _this.tooltipFeature = _this.createBean(new CustomTooltipFeature(_this));\n }\n };\n if (this.tooltipText != newTooltipText) {\n if (this.tooltipText) {\n removeTooltip();\n }\n if (newTooltipText != null) {\n this.tooltipText = newTooltipText;\n if (this.tooltipText) {\n addTooltip();\n }\n }\n }\n };\n // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag\n Component.prototype.createChildComponentsFromTags = function (parentNode, paramsMap) {\n var _this = this;\n // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM\n // which messes up the traversal order of the children.\n var childNodeList = copyNodeList(parentNode.childNodes);\n childNodeList.forEach(function (childNode) {\n if (!(childNode instanceof HTMLElement)) {\n return;\n }\n var childComp = _this.createComponentFromElement(childNode, function (childComp) {\n // copy over all attributes, including css classes, so any attributes user put on the tag\n // wll be carried across\n var childGui = childComp.getGui();\n if (childGui) {\n _this.copyAttributesFromNode(childNode, childComp.getGui());\n }\n }, paramsMap);\n if (childComp) {\n if (childComp.addItems && childNode.children.length) {\n _this.createChildComponentsFromTags(childNode, paramsMap);\n // converting from HTMLCollection to Array\n var items = Array.prototype.slice.call(childNode.children);\n childComp.addItems(items);\n }\n // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom\n _this.swapComponentForNode(childComp, parentNode, childNode);\n }\n else if (childNode.childNodes) {\n _this.createChildComponentsFromTags(childNode, paramsMap);\n }\n });\n };\n Component.prototype.createComponentFromElement = function (element, afterPreCreateCallback, paramsMap) {\n var key = element.nodeName;\n var componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;\n var ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);\n if (ComponentClass) {\n Component.elementGettingCreated = element;\n var newComponent = new ComponentClass(componentParams);\n newComponent.setParentComponent(this);\n this.createBean(newComponent, null, afterPreCreateCallback);\n return newComponent;\n }\n return null;\n };\n Component.prototype.copyAttributesFromNode = function (source, dest) {\n iterateNamedNodeMap(source.attributes, function (name, value) { return dest.setAttribute(name, value); });\n };\n Component.prototype.swapComponentForNode = function (newComponent, parentNode, childNode) {\n var eComponent = newComponent.getGui();\n parentNode.replaceChild(eComponent, childNode);\n parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);\n this.addDestroyFunc(this.destroyBean.bind(this, newComponent));\n this.swapInComponentForQuerySelectors(newComponent, childNode);\n };\n Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {\n var thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n if (thisNoType[querySelector.attributeName] === childNode) {\n thisNoType[querySelector.attributeName] = newComponent;\n }\n });\n };\n Component.prototype.iterateOverQuerySelectors = function (action) {\n var thisPrototype = Object.getPrototypeOf(this);\n while (thisPrototype != null) {\n var metaData = thisPrototype.__agComponentMetaData;\n var currentProtoName = getFunctionName(thisPrototype.constructor);\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {\n metaData[currentProtoName].querySelectors.forEach(function (querySelector) { return action(querySelector); });\n }\n thisPrototype = Object.getPrototypeOf(thisPrototype);\n }\n };\n Component.prototype.setTemplate = function (template, paramsMap) {\n var eGui = loadTemplate(template);\n this.setTemplateFromElement(eGui, paramsMap);\n };\n Component.prototype.setTemplateFromElement = function (element, paramsMap) {\n this.eGui = element;\n this.eGui.__agComponent = this;\n this.wireQuerySelectors();\n // context will not be available when user sets template in constructor\n if (!!this.getContext()) {\n this.createChildComponentsFromTags(this.getGui(), paramsMap);\n }\n };\n Component.prototype.createChildComponentsPreConstruct = function () {\n // ui exists if user sets template in constructor. when this happens, we have to wait for the context\n // to be autoWired first before we can create child components.\n if (!!this.getGui()) {\n this.createChildComponentsFromTags(this.getGui());\n }\n };\n Component.prototype.wireQuerySelectors = function () {\n var _this = this;\n if (!this.eGui) {\n return;\n }\n var thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n var setResult = function (result) { return thisNoType[querySelector.attributeName] = result; };\n // if it's a ref selector, and match is on top level component, we return\n // the element. otherwise no way of components putting ref=xxx on the top\n // level element as querySelector only looks at children.\n var topLevelRefMatch = querySelector.refSelector\n && _this.eGui.getAttribute('ref') === querySelector.refSelector;\n if (topLevelRefMatch) {\n setResult(_this.eGui);\n }\n else {\n // otherwise use querySelector, which looks at children\n var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);\n if (resultOfQuery) {\n setResult(resultOfQuery.__agComponent || resultOfQuery);\n }\n }\n });\n };\n Component.prototype.getGui = function () {\n return this.eGui;\n };\n Component.prototype.getFocusableElement = function () {\n return this.eGui;\n };\n Component.prototype.setParentComponent = function (component) {\n this.parentComponent = component;\n };\n Component.prototype.getParentComponent = function () {\n return this.parentComponent;\n };\n // this method is for older code, that wants to provide the gui element,\n // it is not intended for this to be in ag-Stack\n Component.prototype.setGui = function (eGui) {\n this.eGui = eGui;\n };\n Component.prototype.queryForHtmlElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.queryForHtmlInputElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.appendChild = function (newChild, container) {\n if (!container) {\n container = this.eGui;\n }\n if (newChild == null) {\n return;\n }\n if (isNodeOrElement(newChild)) {\n container.appendChild(newChild);\n }\n else {\n var childComponent = newChild;\n container.appendChild(childComponent.getGui());\n this.addDestroyFunc(this.destroyBean.bind(this, childComponent));\n }\n };\n Component.prototype.isDisplayed = function () {\n return this.displayed;\n };\n Component.prototype.setVisible = function (visible) {\n if (visible !== this.visible) {\n this.visible = visible;\n setVisible(this.eGui, visible);\n }\n };\n Component.prototype.setDisplayed = function (displayed) {\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n setDisplayed(this.eGui, displayed);\n var event_1 = {\n type: Component.EVENT_DISPLAYED_CHANGED,\n visible: this.displayed\n };\n this.dispatchEvent(event_1);\n }\n };\n Component.prototype.destroy = function () {\n if (this.tooltipFeature) {\n this.tooltipFeature = this.destroyBean(this.tooltipFeature);\n }\n _super.prototype.destroy.call(this);\n };\n Component.prototype.addGuiEventListener = function (event, listener) {\n var _this = this;\n this.eGui.addEventListener(event, listener);\n this.addDestroyFunc(function () { return _this.eGui.removeEventListener(event, listener); });\n };\n Component.prototype.addCssClass = function (className) {\n this.cssClassManager.addCssClass(className);\n };\n Component.prototype.removeCssClass = function (className) {\n this.cssClassManager.removeCssClass(className);\n };\n Component.prototype.containsCssClass = function (className) {\n return this.cssClassManager.containsCssClass(className);\n };\n Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n this.cssClassManager.addOrRemoveCssClass(className, addOrRemove);\n };\n Component.prototype.getAttribute = function (key) {\n var eGui = this.eGui;\n return eGui ? eGui.getAttribute(key) : null;\n };\n Component.prototype.getRefElement = function (refName) {\n return this.queryForHtmlElement(\"[ref=\\\"\" + refName + \"\\\"]\");\n };\n Component.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n __decorate$a([\n Autowired('agStackComponentsRegistry')\n ], Component.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$a([\n PreConstruct\n ], Component.prototype, \"preConstructOnComponent\", null);\n __decorate$a([\n PreConstruct\n ], Component.prototype, \"createChildComponentsPreConstruct\", null);\n return Component;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction QuerySelector(selector) {\n return querySelectorFunc.bind(this, selector, undefined);\n}\nfunction RefSelector(ref) {\n return querySelectorFunc.bind(this, \"[ref=\" + ref + \"]\", ref);\n}\nfunction querySelectorFunc(selector, refSelector, classPrototype, methodOrAttributeName, index) {\n if (selector === null) {\n console.error('AG Grid: QuerySelector selector should not be null');\n return;\n }\n if (typeof index === 'number') {\n console.error('AG Grid: QuerySelector should be on an attribute');\n return;\n }\n addToObjectProps(classPrototype, 'querySelectors', {\n attributeName: methodOrAttributeName,\n querySelector: selector,\n refSelector: refSelector\n });\n}\n// // think we should take this out, put property bindings on the\n// export function Method(eventName?: string): Function {\n// return methodFunc.bind(this, eventName);\n// }\n//\n// function methodFunc(alias: string, target: Object, methodName: string) {\n// if (alias === null) {\n// console.error(\"AG Grid: EventListener eventName should not be null\");\n// return;\n// }\n//\n// addToObjectProps(target, 'methods', {\n// methodName: methodName,\n// alias: alias\n// });\n// }\nfunction addToObjectProps(target, key, value) {\n // it's an attribute on the class\n var props = getOrCreateProps$1(target, getFunctionName(target.constructor));\n if (!props[key]) {\n props[key] = [];\n }\n props[key].push(value);\n}\nfunction getOrCreateProps$1(target, instanceName) {\n if (!target.__agComponentMetaData) {\n target.__agComponentMetaData = {};\n }\n if (!target.__agComponentMetaData[instanceName]) {\n target.__agComponentMetaData[instanceName] = {};\n }\n return target.__agComponentMetaData[instanceName];\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$7 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// optional floating filter for user provided filters - instead of providing a floating filter,\n// they can provide a getModelAsString() method on the filter instead. this class just displays\n// the string returned from getModelAsString()\nvar ReadOnlyFloatingFilter = /** @class */ (function (_super) {\n __extends$7(ReadOnlyFloatingFilter, _super);\n function ReadOnlyFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n ReadOnlyFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n ReadOnlyFloatingFilter.prototype.init = function (params) {\n this.params = params;\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterText\n .setDisabled(true)\n .setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n ReadOnlyFloatingFilter.prototype.onParentModelChanged = function (parentModel) {\n var _this = this;\n if (!parentModel) {\n this.eFloatingFilterText.setValue('');\n return;\n }\n this.params.parentFilterInstance(function (filterInstance) {\n // it would be nice to check if getModelAsString was present before creating this component,\n // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until\n // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns\n // are drawn, but the parent filters are only created when needed).\n if (filterInstance.getModelAsString) {\n var modelAsString = filterInstance.getModelAsString(parentModel);\n _this.eFloatingFilterText.setValue(modelAsString);\n }\n });\n };\n __decorate$b([\n RefSelector('eFloatingFilterText')\n ], ReadOnlyFloatingFilter.prototype, \"eFloatingFilterText\", void 0);\n __decorate$b([\n Autowired('columnModel')\n ], ReadOnlyFloatingFilter.prototype, \"columnModel\", void 0);\n return ReadOnlyFloatingFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/** Provides sync access to async component. Date component can be lazy created - this class encapsulates\n * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */\nvar DateCompWrapper = /** @class */ (function () {\n function DateCompWrapper(context, userComponentFactory, dateComponentParams, eParent) {\n var _this = this;\n this.alive = true;\n this.context = context;\n this.eParent = eParent;\n var compDetails = userComponentFactory.getDateCompDetails(dateComponentParams);\n var promise = compDetails.newAgStackInstance();\n promise.then(function (dateComp) {\n // because async, check the filter still exists after component comes back\n if (!_this.alive) {\n context.destroyBean(dateComp);\n return;\n }\n _this.dateComp = dateComp;\n if (!dateComp) {\n return;\n }\n eParent.appendChild(dateComp.getGui());\n if (dateComp.afterGuiAttached) {\n dateComp.afterGuiAttached();\n }\n if (_this.tempValue) {\n dateComp.setDate(_this.tempValue);\n }\n if (_this.disabled != null) {\n _this.setDateCompDisabled(_this.disabled);\n }\n });\n }\n DateCompWrapper.prototype.destroy = function () {\n this.alive = false;\n this.dateComp = this.context.destroyBean(this.dateComp);\n };\n DateCompWrapper.prototype.getDate = function () {\n return this.dateComp ? this.dateComp.getDate() : this.tempValue;\n };\n DateCompWrapper.prototype.setDate = function (value) {\n if (this.dateComp) {\n this.dateComp.setDate(value);\n }\n else {\n this.tempValue = value;\n }\n };\n DateCompWrapper.prototype.setDisabled = function (disabled) {\n if (this.dateComp) {\n this.setDateCompDisabled(disabled);\n }\n else {\n this.disabled = disabled;\n }\n };\n DateCompWrapper.prototype.setDisplayed = function (displayed) {\n setDisplayed(this.eParent, displayed);\n };\n DateCompWrapper.prototype.setInputPlaceholder = function (placeholder) {\n if (this.dateComp && this.dateComp.setInputPlaceholder) {\n this.dateComp.setInputPlaceholder(placeholder);\n }\n };\n DateCompWrapper.prototype.setInputAriaLabel = function (label) {\n if (this.dateComp && this.dateComp.setInputAriaLabel) {\n this.dateComp.setInputAriaLabel(label);\n }\n };\n DateCompWrapper.prototype.afterGuiAttached = function (params) {\n if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {\n this.dateComp.afterGuiAttached(params);\n }\n };\n DateCompWrapper.prototype.setDateCompDisabled = function (disabled) {\n if (this.dateComp == null) {\n return;\n }\n if (this.dateComp.setDisabled == null) {\n return;\n }\n this.dateComp.setDisabled(disabled);\n };\n return DateCompWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\n/* Common logic for options, used by both filters and floating filters. */\nvar OptionsFactory = /** @class */ (function () {\n function OptionsFactory() {\n this.customFilterOptions = {};\n }\n OptionsFactory.prototype.init = function (params, defaultOptions) {\n this.filterOptions = params.filterOptions || defaultOptions;\n this.mapCustomOptions();\n this.selectDefaultItem(params);\n this.checkForDeprecatedParams();\n };\n OptionsFactory.prototype.checkForDeprecatedParams = function () {\n if (this.filterOptions.some(function (opt) { return typeof opt != 'string' && opt.test != null; })) {\n console.warn(\"AG Grid: [IFilterOptionDef] since v26.2.0, test() has been replaced with predicate().\");\n }\n if (this.filterOptions.some(function (opt) { return typeof opt != 'string' && opt.hideFilterInput != null; })) {\n console.warn(\"AG Grid: [IFilterOptionDef] since v26.2.0, useOfHideFilterInput has been replaced with numberOfInputs.\");\n }\n };\n OptionsFactory.prototype.getFilterOptions = function () {\n return this.filterOptions;\n };\n OptionsFactory.prototype.mapCustomOptions = function () {\n var _this = this;\n if (!this.filterOptions) {\n return;\n }\n this.filterOptions.forEach(function (filterOption) {\n if (typeof filterOption === 'string') {\n return;\n }\n var requiredProperties = [['displayKey'], ['displayName'], ['predicate', 'test']];\n var propertyCheck = function (keys) {\n if (!keys.some(function (key) { return filterOption[key] != null; })) {\n console.warn(\"AG Grid: ignoring FilterOptionDef as it doesn't contain one of '\" + keys + \"'\");\n return false;\n }\n return true;\n };\n if (!requiredProperties.every(propertyCheck)) {\n _this.filterOptions = _this.filterOptions.filter(function (v) { return v === filterOption; }) || [];\n return;\n }\n var test = filterOption.test;\n var mutatedFilterOptions = __assign$3({}, filterOption);\n if (test != null && filterOption.predicate == null) {\n mutatedFilterOptions.predicate = function (v, cv) { return test(v[0], cv); };\n delete mutatedFilterOptions.test;\n }\n if (mutatedFilterOptions.hideFilterInput && mutatedFilterOptions.numberOfInputs == null) {\n mutatedFilterOptions.numberOfInputs = 0;\n delete mutatedFilterOptions.hideFilterInput;\n }\n _this.customFilterOptions[filterOption.displayKey] = mutatedFilterOptions;\n });\n };\n OptionsFactory.prototype.selectDefaultItem = function (params) {\n if (params.defaultOption) {\n this.defaultOption = params.defaultOption;\n }\n else if (this.filterOptions.length >= 1) {\n var firstFilterOption = this.filterOptions[0];\n if (typeof firstFilterOption === 'string') {\n this.defaultOption = firstFilterOption;\n }\n else if (firstFilterOption.displayKey) {\n this.defaultOption = firstFilterOption.displayKey;\n }\n else {\n console.warn(\"AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'\");\n }\n }\n else {\n console.warn('AG Grid: no filter options for filter');\n }\n };\n OptionsFactory.prototype.getDefaultOption = function () {\n return this.defaultOption;\n };\n OptionsFactory.prototype.getCustomOption = function (name) {\n return this.customFilterOptions[name];\n };\n return OptionsFactory;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar DEFAULT_FILTER_LOCALE_TEXT = {\n applyFilter: 'Apply',\n clearFilter: 'Clear',\n resetFilter: 'Reset',\n cancelFilter: 'Cancel',\n textFilter: 'Text Filter',\n numberFilter: 'Number Filter',\n dateFilter: 'Date Filter',\n setFilter: 'Set Filter',\n filterOoo: 'Filter...',\n empty: 'Choose One',\n equals: 'Equals',\n notEqual: 'Not equal',\n lessThan: 'Less than',\n greaterThan: 'Greater than',\n inRange: 'In range',\n inRangeStart: 'From',\n inRangeEnd: 'To',\n lessThanOrEqual: 'Less than or equals',\n greaterThanOrEqual: 'Greater than or equals',\n contains: 'Contains',\n notContains: 'Not contains',\n startsWith: 'Starts with',\n endsWith: 'Ends with',\n blank: 'Blank',\n notBlank: 'Not blank',\n andCondition: 'AND',\n orCondition: 'OR',\n dateFormatOoo: 'yyyy-mm-dd',\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar KeyCode = /** @class */ (function () {\n function KeyCode() {\n }\n KeyCode.BACKSPACE = 'Backspace';\n KeyCode.TAB = 'Tab';\n KeyCode.ENTER = 'Enter';\n KeyCode.ESCAPE = 'Escape';\n KeyCode.SPACE = ' ';\n KeyCode.LEFT = 'ArrowLeft';\n KeyCode.UP = 'ArrowUp';\n KeyCode.RIGHT = 'ArrowRight';\n KeyCode.DOWN = 'ArrowDown';\n KeyCode.DELETE = 'Delete';\n KeyCode.F2 = 'F2';\n KeyCode.PAGE_UP = 'PageUp';\n KeyCode.PAGE_DOWN = 'PageDown';\n KeyCode.PAGE_HOME = 'Home';\n KeyCode.PAGE_END = 'End';\n // these should be used with `event.code` instead of `event.key`\n // as `event.key` changes when non-latin keyboards are used\n KeyCode.A = 'KeyA';\n KeyCode.C = 'KeyC';\n KeyCode.V = 'KeyV';\n KeyCode.D = 'KeyD';\n KeyCode.Z = 'KeyZ';\n KeyCode.Y = 'KeyY';\n return KeyCode;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$8 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$4 = (undefined && undefined.__assign) || function () {\n __assign$4 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$4.apply(this, arguments);\n};\nvar __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ManagedFocusFeature = /** @class */ (function (_super) {\n __extends$8(ManagedFocusFeature, _super);\n function ManagedFocusFeature(eFocusableElement, callbacks) {\n if (callbacks === void 0) { callbacks = {}; }\n var _this = _super.call(this) || this;\n _this.eFocusableElement = eFocusableElement;\n _this.callbacks = callbacks;\n _this.callbacks = __assign$4({ shouldStopEventPropagation: function () { return false; }, onTabKeyDown: function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var nextRoot = _this.focusService.findNextFocusableElement(_this.eFocusableElement, false, e.shiftKey);\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n } }, callbacks);\n return _this;\n }\n ManagedFocusFeature.prototype.postConstruct = function () {\n this.eFocusableElement.classList.add(ManagedFocusFeature.FOCUS_MANAGED_CLASS);\n this.addKeyDownListeners(this.eFocusableElement);\n if (this.callbacks.onFocusIn) {\n this.addManagedListener(this.eFocusableElement, 'focusin', this.callbacks.onFocusIn);\n }\n if (this.callbacks.onFocusOut) {\n this.addManagedListener(this.eFocusableElement, 'focusout', this.callbacks.onFocusOut);\n }\n };\n ManagedFocusFeature.prototype.addKeyDownListeners = function (eGui) {\n var _this = this;\n this.addManagedListener(eGui, 'keydown', function (e) {\n if (e.defaultPrevented || isStopPropagationForAgGrid(e)) {\n return;\n }\n if (_this.callbacks.shouldStopEventPropagation(e)) {\n stopPropagationForAgGrid(e);\n return;\n }\n if (e.key === KeyCode.TAB) {\n _this.callbacks.onTabKeyDown(e);\n }\n else if (_this.callbacks.handleKeyDown) {\n _this.callbacks.handleKeyDown(e);\n }\n });\n };\n ManagedFocusFeature.FOCUS_MANAGED_CLASS = 'ag-focus-managed';\n __decorate$c([\n Autowired('focusService')\n ], ManagedFocusFeature.prototype, \"focusService\", void 0);\n __decorate$c([\n PostConstruct\n ], ManagedFocusFeature.prototype, \"postConstruct\", null);\n return ManagedFocusFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$9 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * Contains common logic to all provided filters (apply button, clear button, etc).\n * All the filters that come with AG Grid extend this class. User filters do not\n * extend this class.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n */\nvar ProvidedFilter = /** @class */ (function (_super) {\n __extends$9(ProvidedFilter, _super);\n function ProvidedFilter(filterNameKey) {\n var _this = _super.call(this) || this;\n _this.filterNameKey = filterNameKey;\n _this.applyActive = false;\n _this.hidePopup = null;\n // after the user hits 'apply' the model gets copied to here. this is then the model that we use for\n // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.\n // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is\n // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter\n // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter\n // not active) then this appliedModel will be null/undefined.\n _this.appliedModel = null;\n return _this;\n }\n ProvidedFilter.prototype.postConstruct = function () {\n this.resetTemplate(); // do this first to create the DOM\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n };\n // override\n ProvidedFilter.prototype.handleKeyDown = function (e) { };\n ProvidedFilter.prototype.getFilterTitle = function () {\n return this.translate(this.filterNameKey);\n };\n ProvidedFilter.prototype.isFilterActive = function () {\n // filter is active if we have a valid applied model\n return !!this.appliedModel;\n };\n ProvidedFilter.prototype.resetTemplate = function (paramsMap) {\n var templateString = /* html */ \"\\n
\\n
\\n \" + this.createBodyTemplate() + \"\\n
\\n
\";\n this.setTemplate(templateString, paramsMap);\n };\n ProvidedFilter.prototype.isReadOnly = function () {\n return !!this.providedFilterParams.readOnly;\n };\n ProvidedFilter.prototype.init = function (params) {\n var _this = this;\n this.setParams(params);\n this.resetUiToDefaults(true).then(function () {\n _this.updateUiVisibility();\n _this.setupOnBtApplyDebounce();\n });\n };\n ProvidedFilter.prototype.setParams = function (params) {\n this.providedFilterParams = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(params);\n this.createButtonPanel();\n };\n ProvidedFilter.prototype.createButtonPanel = function () {\n var _this = this;\n var buttons = this.providedFilterParams.buttons;\n if (!buttons || buttons.length < 1 || this.isReadOnly()) {\n return;\n }\n var eButtonsPanel = document.createElement('div');\n eButtonsPanel.classList.add('ag-filter-apply-panel');\n var addButton = function (type) {\n var text;\n var clickListener;\n switch (type) {\n case 'apply':\n text = _this.translate('applyFilter');\n clickListener = function (e) { return _this.onBtApply(false, false, e); };\n break;\n case 'clear':\n text = _this.translate('clearFilter');\n clickListener = function () { return _this.onBtClear(); };\n break;\n case 'reset':\n text = _this.translate('resetFilter');\n clickListener = function () { return _this.onBtReset(); };\n break;\n case 'cancel':\n text = _this.translate('cancelFilter');\n clickListener = function (e) { _this.onBtCancel(e); };\n break;\n default:\n console.warn('AG Grid: Unknown button type specified');\n return;\n }\n var button = loadTemplate(\n /* html */\n \"\" + text + \"\\n \");\n eButtonsPanel.appendChild(button);\n _this.addManagedListener(button, 'click', clickListener);\n };\n convertToSet(buttons).forEach(function (type) { return addButton(type); });\n this.getGui().appendChild(eButtonsPanel);\n };\n // subclasses can override this to provide alternative debounce defaults\n ProvidedFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n ProvidedFilter.prototype.setupOnBtApplyDebounce = function () {\n var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());\n this.onBtApplyDebounce = debounce(this.onBtApply.bind(this), debounceMs);\n };\n ProvidedFilter.prototype.getModel = function () {\n return this.appliedModel ? this.appliedModel : null;\n };\n ProvidedFilter.prototype.setModel = function (model) {\n var _this = this;\n var promise = model != null ? this.setModelIntoUi(model) : this.resetUiToDefaults();\n return promise.then(function () {\n _this.updateUiVisibility();\n // we set the model from the GUI, rather than the provided model,\n // so the model is consistent, e.g. handling of null/undefined will be the same,\n // or if model is case insensitive, then casing is removed.\n _this.applyModel();\n });\n };\n ProvidedFilter.prototype.onBtCancel = function (e) {\n var _this = this;\n var currentModel = this.getModel();\n var afterAppliedFunc = function () {\n _this.onUiChanged(false, 'prevent');\n if (_this.providedFilterParams.closeOnApply) {\n _this.close(e);\n }\n };\n if (currentModel != null) {\n this.setModelIntoUi(currentModel).then(afterAppliedFunc);\n }\n else {\n this.resetUiToDefaults().then(afterAppliedFunc);\n }\n };\n ProvidedFilter.prototype.onBtClear = function () {\n var _this = this;\n this.resetUiToDefaults().then(function () { return _this.onUiChanged(); });\n };\n ProvidedFilter.prototype.onBtReset = function () {\n this.onBtClear();\n this.onBtApply();\n };\n /**\n * Applies changes made in the UI to the filter, and returns true if the model has changed.\n */\n ProvidedFilter.prototype.applyModel = function () {\n var newModel = this.getModelFromUi();\n if (!this.isModelValid(newModel)) {\n return false;\n }\n var previousModel = this.appliedModel;\n this.appliedModel = newModel;\n // models can be same if user pasted same content into text field, or maybe just changed the case\n // and it's a case insensitive filter\n return !this.areModelsEqual(previousModel, newModel);\n };\n ProvidedFilter.prototype.isModelValid = function (model) {\n return true;\n };\n ProvidedFilter.prototype.onBtApply = function (afterFloatingFilter, afterDataChange, e) {\n if (afterFloatingFilter === void 0) { afterFloatingFilter = false; }\n if (afterDataChange === void 0) { afterDataChange = false; }\n if (this.applyModel()) {\n // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change\n // came from floating filter\n this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange });\n }\n var closeOnApply = this.providedFilterParams.closeOnApply;\n // only close if an apply button is visible, otherwise we'd be closing every time a change was made!\n if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {\n this.close(e);\n }\n };\n ProvidedFilter.prototype.onNewRowsLoaded = function () {\n };\n ProvidedFilter.prototype.close = function (e) {\n if (!this.hidePopup) {\n return;\n }\n var keyboardEvent = e;\n var key = keyboardEvent && keyboardEvent.key;\n var params;\n if (key === 'Enter' || key === 'Space') {\n params = { keyboardEvent: keyboardEvent };\n }\n this.hidePopup(params);\n this.hidePopup = null;\n };\n /**\n * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no\n * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can\n * be adjusted by using the apply parameter.\n */\n ProvidedFilter.prototype.onUiChanged = function (fromFloatingFilter, apply) {\n if (fromFloatingFilter === void 0) { fromFloatingFilter = false; }\n this.updateUiVisibility();\n this.providedFilterParams.filterModifiedCallback();\n if (this.applyActive && !this.isReadOnly) {\n var isValid = this.isModelValid(this.getModelFromUi());\n setDisabled(this.getRefElement('applyFilterButton'), !isValid);\n }\n if ((fromFloatingFilter && !apply) || apply === 'immediately') {\n this.onBtApply(fromFloatingFilter);\n }\n else if ((!this.applyActive && !apply) || apply === 'debounce') {\n this.onBtApplyDebounce();\n }\n };\n ProvidedFilter.prototype.afterGuiAttached = function (params) {\n if (params == null) {\n return;\n }\n this.hidePopup = params.hidePopup;\n };\n // static, as used by floating filter also\n ProvidedFilter.getDebounceMs = function (params, debounceDefault) {\n if (ProvidedFilter.isUseApplyButton(params)) {\n if (params.debounceMs != null) {\n console.warn('AG Grid: debounceMs is ignored when apply button is present');\n }\n return 0;\n }\n return params.debounceMs != null ? params.debounceMs : debounceDefault;\n };\n // static, as used by floating filter also\n ProvidedFilter.isUseApplyButton = function (params) {\n return !!params.buttons && params.buttons.indexOf('apply') >= 0;\n };\n ProvidedFilter.prototype.destroy = function () {\n this.hidePopup = null;\n _super.prototype.destroy.call(this);\n };\n ProvidedFilter.prototype.translate = function (key) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n return translate(key, DEFAULT_FILTER_LOCALE_TEXT[key]);\n };\n ProvidedFilter.prototype.getCellValue = function (rowNode) {\n var _a = this.providedFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n return this.providedFilterParams.valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: rowNode.data,\n getValue: function (field) { return rowNode.data[field]; },\n node: rowNode,\n });\n };\n __decorate$d([\n Autowired('rowModel')\n ], ProvidedFilter.prototype, \"rowModel\", void 0);\n __decorate$d([\n Autowired('valueService')\n ], ProvidedFilter.prototype, \"valueService\", void 0);\n __decorate$d([\n PostConstruct\n ], ProvidedFilter.prototype, \"postConstruct\", null);\n return ProvidedFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAbstractLabel = /** @class */ (function (_super) {\n __extends$a(AgAbstractLabel, _super);\n function AgAbstractLabel(config, template) {\n var _this = _super.call(this, template) || this;\n _this.labelSeparator = '';\n _this.labelAlignment = 'left';\n _this.label = '';\n _this.config = config || {};\n return _this;\n }\n AgAbstractLabel.prototype.postConstruct = function () {\n this.addCssClass('ag-labeled');\n this.eLabel.classList.add('ag-label');\n var _a = this.config, labelSeparator = _a.labelSeparator, label = _a.label, labelWidth = _a.labelWidth, labelAlignment = _a.labelAlignment;\n if (labelSeparator != null) {\n this.setLabelSeparator(labelSeparator);\n }\n if (label != null) {\n this.setLabel(label);\n }\n if (labelWidth != null) {\n this.setLabelWidth(labelWidth);\n }\n this.setLabelAlignment(labelAlignment || this.labelAlignment);\n this.refreshLabel();\n };\n AgAbstractLabel.prototype.refreshLabel = function () {\n clearElement(this.eLabel);\n if (typeof this.label === 'string') {\n this.eLabel.innerText = this.label + this.labelSeparator;\n }\n else if (this.label) {\n this.eLabel.appendChild(this.label);\n }\n if (this.label === '') {\n this.eLabel.classList.add('ag-hidden');\n setAriaRole(this.eLabel, 'presentation');\n }\n else {\n this.eLabel.classList.remove('ag-hidden');\n setAriaRole(this.eLabel, null);\n }\n };\n AgAbstractLabel.prototype.setLabelSeparator = function (labelSeparator) {\n if (this.labelSeparator === labelSeparator) {\n return this;\n }\n this.labelSeparator = labelSeparator;\n if (this.label != null) {\n this.refreshLabel();\n }\n return this;\n };\n AgAbstractLabel.prototype.getLabelId = function () {\n this.eLabel.id = this.eLabel.id || \"ag-\" + this.getCompId() + \"-label\";\n return this.eLabel.id;\n };\n AgAbstractLabel.prototype.getLabel = function () {\n return this.label;\n };\n AgAbstractLabel.prototype.setLabel = function (label) {\n if (this.label === label) {\n return this;\n }\n this.label = label;\n this.refreshLabel();\n return this;\n };\n AgAbstractLabel.prototype.setLabelAlignment = function (alignment) {\n var eGui = this.getGui();\n var eGuiClassList = eGui.classList;\n eGuiClassList.toggle('ag-label-align-left', alignment === 'left');\n eGuiClassList.toggle('ag-label-align-right', alignment === 'right');\n eGuiClassList.toggle('ag-label-align-top', alignment === 'top');\n return this;\n };\n AgAbstractLabel.prototype.setLabelWidth = function (width) {\n if (this.label == null) {\n return this;\n }\n setElementWidth(this.eLabel, width);\n return this;\n };\n __decorate$e([\n PostConstruct\n ], AgAbstractLabel.prototype, \"postConstruct\", null);\n return AgAbstractLabel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgAbstractField = /** @class */ (function (_super) {\n __extends$b(AgAbstractField, _super);\n function AgAbstractField(config, template, className) {\n var _this = _super.call(this, config, template) || this;\n _this.className = className;\n _this.disabled = false;\n return _this;\n }\n AgAbstractField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.className) {\n this.addCssClass(this.className);\n }\n };\n AgAbstractField.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () { return callbackFn(_this.getValue()); });\n return this;\n };\n AgAbstractField.prototype.getWidth = function () {\n return this.getGui().clientWidth;\n };\n AgAbstractField.prototype.setWidth = function (width) {\n setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAbstractField.prototype.getPreviousValue = function () {\n return this.previousValue;\n };\n AgAbstractField.prototype.getValue = function () {\n return this.value;\n };\n AgAbstractField.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n return this;\n }\n this.previousValue = this.value;\n this.value = value;\n if (!silent) {\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n }\n return this;\n };\n AgAbstractField.prototype.setDisabled = function (disabled) {\n disabled = !!disabled;\n var element = this.getGui();\n setDisabled(element, disabled);\n element.classList.toggle('ag-disabled', disabled);\n this.disabled = disabled;\n return this;\n };\n AgAbstractField.prototype.isDisabled = function () {\n return !!this.disabled;\n };\n AgAbstractField.EVENT_CHANGED = 'valueChange';\n return AgAbstractField;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgPickerField = /** @class */ (function (_super) {\n __extends$c(AgPickerField, _super);\n function AgPickerField(config, className, pickerIcon, ariaRole) {\n var _this = _super.call(this, config, \n /* html */ \"
\\n
\\n
\\n
\\n
\\n
\\n
\", className) || this;\n _this.pickerIcon = pickerIcon;\n _this.isPickerDisplayed = false;\n _this.isDestroyingPicker = false;\n _this.skipClick = false;\n return _this;\n }\n AgPickerField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n var displayId = this.getCompId() + \"-display\";\n this.eDisplayField.setAttribute('id', displayId);\n setAriaDescribedBy(this.eWrapper, displayId);\n var clickHandler = function () {\n if (_this.skipClick) {\n _this.skipClick = false;\n return;\n }\n if (_this.isDisabled()) {\n return;\n }\n _this.pickerComponent = _this.showPicker();\n };\n var eGui = this.getGui();\n this.addManagedListener(eGui, 'mousedown', function (e) {\n if (!_this.skipClick &&\n _this.pickerComponent &&\n _this.pickerComponent.isAlive() &&\n isVisible(_this.pickerComponent.getGui()) &&\n eGui.contains(e.target)) {\n _this.skipClick = true;\n }\n });\n this.addManagedListener(eGui, 'keydown', function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n clickHandler();\n case KeyCode.ESCAPE:\n if (_this.isPickerDisplayed) {\n e.preventDefault();\n }\n break;\n }\n });\n this.addManagedListener(this.eWrapper, 'click', clickHandler);\n this.addManagedListener(this.eLabel, 'click', clickHandler);\n if (this.pickerIcon) {\n var icon = createIconNoSpan(this.pickerIcon, this.gridOptionsWrapper);\n if (icon) {\n this.eIcon.appendChild(icon);\n }\n }\n };\n AgPickerField.prototype.refreshLabel = function () {\n if (exists(this.getLabel())) {\n setAriaLabelledBy(this.eWrapper, this.getLabelId());\n }\n else {\n this.eWrapper.removeAttribute('aria-labelledby');\n }\n _super.prototype.refreshLabel.call(this);\n };\n AgPickerField.prototype.setAriaLabel = function (label) {\n setAriaLabel(this.eWrapper, label);\n return this;\n };\n AgPickerField.prototype.setInputWidth = function (width) {\n setElementWidth(this.eWrapper, width);\n return this;\n };\n AgPickerField.prototype.getFocusableElement = function () {\n return this.eWrapper;\n };\n __decorate$f([\n RefSelector('eLabel')\n ], AgPickerField.prototype, \"eLabel\", void 0);\n __decorate$f([\n RefSelector('eWrapper')\n ], AgPickerField.prototype, \"eWrapper\", void 0);\n __decorate$f([\n RefSelector('eDisplayField')\n ], AgPickerField.prototype, \"eDisplayField\", void 0);\n __decorate$f([\n RefSelector('eIcon')\n ], AgPickerField.prototype, \"eIcon\", void 0);\n return AgPickerField;\n}(AgAbstractField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgList = /** @class */ (function (_super) {\n __extends$d(AgList, _super);\n function AgList(cssIdentifier) {\n if (cssIdentifier === void 0) { cssIdentifier = 'default'; }\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.cssIdentifier = cssIdentifier;\n _this.options = [];\n _this.itemEls = [];\n return _this;\n }\n AgList.prototype.init = function () {\n this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));\n };\n AgList.prototype.handleKeyDown = function (e) {\n var key = e.key;\n switch (key) {\n case KeyCode.ENTER:\n if (!this.highlightedEl) {\n this.setValue(this.getValue());\n }\n else {\n var pos = this.itemEls.indexOf(this.highlightedEl);\n this.setValueByIndex(pos);\n }\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n var isDown = key === KeyCode.DOWN;\n var itemToHighlight = void 0;\n e.preventDefault();\n if (!this.highlightedEl) {\n itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];\n }\n else {\n var currentIdx = this.itemEls.indexOf(this.highlightedEl);\n var nextPos = currentIdx + (isDown ? 1 : -1);\n nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);\n itemToHighlight = this.itemEls[nextPos];\n }\n this.highlightItem(itemToHighlight);\n break;\n }\n };\n AgList.prototype.addOptions = function (listOptions) {\n var _this = this;\n listOptions.forEach(function (listOption) { return _this.addOption(listOption); });\n return this;\n };\n AgList.prototype.addOption = function (listOption) {\n var value = listOption.value, text = listOption.text;\n var sanitisedText = escapeString(text || value);\n this.options.push({ value: value, text: sanitisedText });\n this.renderOption(value, sanitisedText);\n this.updateIndices();\n return this;\n };\n AgList.prototype.updateIndices = function () {\n var options = this.getGui().querySelectorAll('.ag-list-item');\n options.forEach(function (option, idx) {\n setAriaPosInSet(option, idx + 1);\n setAriaSetSize(option, options.length);\n });\n };\n AgList.prototype.renderOption = function (value, text) {\n var _this = this;\n var itemEl = document.createElement('div');\n setAriaRole(itemEl, 'option');\n itemEl.classList.add('ag-list-item', \"ag-\" + this.cssIdentifier + \"-list-item\");\n itemEl.innerHTML = \"\" + text + \"\";\n itemEl.tabIndex = -1;\n this.itemEls.push(itemEl);\n this.addManagedListener(itemEl, 'mouseover', function () { return _this.highlightItem(itemEl); });\n this.addManagedListener(itemEl, 'mouseleave', function () { return _this.clearHighlighted(); });\n this.addManagedListener(itemEl, 'click', function () { return _this.setValue(value); });\n this.getGui().appendChild(itemEl);\n };\n AgList.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n this.fireItemSelected();\n return this;\n }\n if (value == null) {\n this.reset();\n return this;\n }\n var idx = this.options.findIndex(function (option) { return option.value === value; });\n if (idx !== -1) {\n var option = this.options[idx];\n this.value = option.value;\n this.displayValue = option.text != null ? option.text : option.value;\n this.highlightItem(this.itemEls[idx]);\n if (!silent) {\n this.fireChangeEvent();\n }\n }\n return this;\n };\n AgList.prototype.setValueByIndex = function (idx) {\n return this.setValue(this.options[idx].value);\n };\n AgList.prototype.getValue = function () {\n return this.value;\n };\n AgList.prototype.getDisplayValue = function () {\n return this.displayValue;\n };\n AgList.prototype.refreshHighlighted = function () {\n var _this = this;\n this.clearHighlighted();\n var idx = this.options.findIndex(function (option) { return option.value === _this.value; });\n if (idx !== -1) {\n this.highlightItem(this.itemEls[idx]);\n }\n };\n AgList.prototype.reset = function () {\n this.value = null;\n this.displayValue = null;\n this.clearHighlighted();\n this.fireChangeEvent();\n };\n AgList.prototype.highlightItem = function (el) {\n if (!el.offsetParent) {\n return;\n }\n this.clearHighlighted();\n this.highlightedEl = el;\n this.highlightedEl.classList.add(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, true);\n this.highlightedEl.focus();\n };\n AgList.prototype.clearHighlighted = function () {\n if (!this.highlightedEl || !this.highlightedEl.offsetParent) {\n return;\n }\n this.highlightedEl.classList.remove(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, false);\n this.highlightedEl = null;\n };\n AgList.prototype.fireChangeEvent = function () {\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n this.fireItemSelected();\n };\n AgList.prototype.fireItemSelected = function () {\n this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });\n };\n AgList.EVENT_ITEM_SELECTED = 'selectedItem';\n AgList.ACTIVE_CLASS = 'ag-active-item';\n __decorate$g([\n PostConstruct\n ], AgList.prototype, \"init\", null);\n return AgList;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgSelect = /** @class */ (function (_super) {\n __extends$e(AgSelect, _super);\n function AgSelect(config) {\n return _super.call(this, config, 'ag-select', 'smallDown', 'listbox') || this;\n }\n AgSelect.prototype.init = function () {\n var _this = this;\n this.listComponent = this.createBean(new AgList('select'));\n this.listComponent.setParentComponent(this);\n this.eWrapper.tabIndex = 0;\n this.listComponent.addManagedListener(this.listComponent, AgList.EVENT_ITEM_SELECTED, function () { if (_this.hideList) {\n _this.hideList();\n } });\n this.listComponent.addManagedListener(this.listComponent, AgAbstractField.EVENT_CHANGED, function () {\n _this.setValue(_this.listComponent.getValue(), false, true);\n if (_this.hideList) {\n _this.hideList();\n }\n });\n };\n AgSelect.prototype.showPicker = function () {\n var _this = this;\n var listGui = this.listComponent.getGui();\n var eDocument = this.gridOptionsWrapper.getDocument();\n var destroyMouseWheelFunc = this.addManagedListener(eDocument.body, 'wheel', function (e) {\n if (!listGui.contains(e.target) && _this.hideList) {\n _this.hideList();\n }\n });\n var destroyFocusOutFunc = this.addManagedListener(listGui, 'focusout', function (e) {\n if (!listGui.contains(e.relatedTarget) && _this.hideList) {\n _this.hideList();\n }\n });\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: listGui,\n closeOnEsc: true,\n closedCallback: function () {\n _this.hideList = null;\n _this.isPickerDisplayed = false;\n destroyFocusOutFunc();\n destroyMouseWheelFunc();\n if (_this.isAlive()) {\n setAriaExpanded(_this.eWrapper, false);\n _this.getFocusableElement().focus();\n }\n },\n ariaLabel: translate('ariaLabelSelectField', 'Select Field')\n });\n if (addPopupRes) {\n this.hideList = addPopupRes.hideFunc;\n }\n this.isPickerDisplayed = true;\n setElementWidth(listGui, getAbsoluteWidth(this.eWrapper));\n setAriaExpanded(this.eWrapper, true);\n listGui.style.maxHeight = getInnerHeight(this.popupService.getPopupParent()) + 'px';\n listGui.style.position = 'absolute';\n this.popupService.positionPopupUnderComponent({\n type: 'ag-list',\n eventSource: this.eWrapper,\n ePopup: listGui,\n keepWithinBounds: true\n });\n this.listComponent.refreshHighlighted();\n return this.listComponent;\n };\n AgSelect.prototype.addOptions = function (options) {\n var _this = this;\n options.forEach(function (option) { return _this.addOption(option); });\n return this;\n };\n AgSelect.prototype.addOption = function (option) {\n this.listComponent.addOption(option);\n return this;\n };\n AgSelect.prototype.setValue = function (value, silent, fromPicker) {\n if (this.value === value) {\n return this;\n }\n if (!fromPicker) {\n this.listComponent.setValue(value, true);\n }\n var newValue = this.listComponent.getValue();\n if (newValue === this.getValue()) {\n return this;\n }\n this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();\n return _super.prototype.setValue.call(this, value, silent);\n };\n AgSelect.prototype.destroy = function () {\n if (this.hideList) {\n this.hideList();\n }\n this.destroyBean(this.listComponent);\n _super.prototype.destroy.call(this);\n };\n __decorate$h([\n Autowired('popupService')\n ], AgSelect.prototype, \"popupService\", void 0);\n __decorate$h([\n PostConstruct\n ], AgSelect.prototype, \"init\", null);\n return AgSelect;\n}(AgPickerField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAbstractInputField = /** @class */ (function (_super) {\n __extends$f(AgAbstractInputField, _super);\n function AgAbstractInputField(config, className, inputType, displayFieldTag) {\n if (inputType === void 0) { inputType = 'text'; }\n if (displayFieldTag === void 0) { displayFieldTag = 'input'; }\n var _this = _super.call(this, config, /* html */ \"\\n
\\n
\\n
\\n <\" + displayFieldTag + \" ref=\\\"eInput\\\" class=\\\"ag-input-field-input\\\">\\n
\\n
\", className) || this;\n _this.inputType = inputType;\n _this.displayFieldTag = displayFieldTag;\n return _this;\n }\n AgAbstractInputField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setInputType();\n this.eLabel.classList.add(this.className + \"-label\");\n this.eWrapper.classList.add(this.className + \"-input-wrapper\");\n this.eInput.classList.add(this.className + \"-input\");\n this.addCssClass('ag-input-field');\n this.eInput.id = this.eInput.id || \"ag-\" + this.getCompId() + \"-input\";\n var _a = this.config, width = _a.width, value = _a.value;\n if (width != null) {\n this.setWidth(width);\n }\n if (value != null) {\n this.setValue(value);\n }\n this.addInputListeners();\n };\n AgAbstractInputField.prototype.refreshLabel = function () {\n if (exists(this.getLabel())) {\n setAriaLabelledBy(this.eInput, this.getLabelId());\n }\n else {\n this.eInput.removeAttribute('aria-labelledby');\n }\n _super.prototype.refreshLabel.call(this);\n };\n AgAbstractInputField.prototype.addInputListeners = function () {\n var _this = this;\n this.addManagedListener(this.eInput, 'input', function (e) { return _this.setValue(e.target.value); });\n };\n AgAbstractInputField.prototype.setInputType = function () {\n if (this.displayFieldTag === 'input') {\n this.eInput.setAttribute('type', this.inputType);\n }\n };\n AgAbstractInputField.prototype.getInputElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setInputWidth = function (width) {\n setElementWidth(this.eWrapper, width);\n return this;\n };\n AgAbstractInputField.prototype.setInputName = function (name) {\n this.getInputElement().setAttribute('name', name);\n return this;\n };\n AgAbstractInputField.prototype.getFocusableElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setMaxLength = function (length) {\n var eInput = this.eInput;\n eInput.maxLength = length;\n return this;\n };\n AgAbstractInputField.prototype.setInputPlaceholder = function (placeholder) {\n addOrRemoveAttribute(this.eInput, 'placeholder', placeholder);\n return this;\n };\n AgAbstractInputField.prototype.setInputAriaLabel = function (label) {\n setAriaLabel(this.eInput, label);\n return this;\n };\n AgAbstractInputField.prototype.setDisabled = function (disabled) {\n setDisabled(this.eInput, disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n __decorate$i([\n RefSelector('eLabel')\n ], AgAbstractInputField.prototype, \"eLabel\", void 0);\n __decorate$i([\n RefSelector('eWrapper')\n ], AgAbstractInputField.prototype, \"eWrapper\", void 0);\n __decorate$i([\n RefSelector('eInput')\n ], AgAbstractInputField.prototype, \"eInput\", void 0);\n return AgAbstractInputField;\n}(AgAbstractField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ConditionPosition;\n(function (ConditionPosition) {\n ConditionPosition[ConditionPosition[\"One\"] = 0] = \"One\";\n ConditionPosition[ConditionPosition[\"Two\"] = 1] = \"Two\";\n})(ConditionPosition || (ConditionPosition = {}));\n/**\n * Every filter with a dropdown where the user can specify a comparing type against the filter values.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n * @param E type of UI element used for collecting user-input\n */\nvar SimpleFilter = /** @class */ (function (_super) {\n __extends$g(SimpleFilter, _super);\n function SimpleFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleFilter.prototype.getNumberOfInputs = function (type) {\n var customOpts = this.optionsFactory.getCustomOption(type);\n if (customOpts) {\n var numberOfInputs = customOpts.numberOfInputs;\n return numberOfInputs != null ? numberOfInputs : 1;\n }\n var zeroInputTypes = [\n SimpleFilter.EMPTY, SimpleFilter.NOT_BLANK, SimpleFilter.BLANK,\n ];\n if (type && zeroInputTypes.indexOf(type) >= 0) {\n return 0;\n }\n else if (type === SimpleFilter.IN_RANGE) {\n return 2;\n }\n return 1;\n };\n // floating filter calls this when user applies filter from floating filter\n SimpleFilter.prototype.onFloatingFilterChanged = function (type, value) {\n this.setTypeFromFloatingFilter(type);\n this.setValueFromFloatingFilter(value);\n this.onUiChanged(true);\n };\n SimpleFilter.prototype.setTypeFromFloatingFilter = function (type) {\n this.eType1.setValue(type);\n this.eType2.setValue(this.optionsFactory.getDefaultOption());\n (this.isDefaultOperator('AND') ? this.eJoinOperatorAnd : this.eJoinOperatorOr).setValue(true);\n };\n SimpleFilter.prototype.getModelFromUi = function () {\n if (!this.isConditionUiComplete(ConditionPosition.One)) {\n return null;\n }\n if (this.isAllowTwoConditions() && this.isConditionUiComplete(ConditionPosition.Two)) {\n return {\n filterType: this.getFilterType(),\n operator: this.getJoinOperator(),\n condition1: this.createCondition(ConditionPosition.One),\n condition2: this.createCondition(ConditionPosition.Two)\n };\n }\n return this.createCondition(ConditionPosition.One);\n };\n SimpleFilter.prototype.getConditionTypes = function () {\n return [\n this.eType1.getValue(),\n this.eType2.getValue(),\n ];\n };\n SimpleFilter.prototype.getJoinOperator = function () {\n return this.eJoinOperatorOr.getValue() === true ? 'OR' : 'AND';\n };\n SimpleFilter.prototype.areModelsEqual = function (a, b) {\n // both are missing\n if (!a && !b) {\n return true;\n }\n // one is missing, other present\n if ((!a && b) || (a && !b)) {\n return false;\n }\n // one is combined, the other is not\n var aIsSimple = !a.operator;\n var bIsSimple = !b.operator;\n var oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);\n if (oneSimpleOneCombined) {\n return false;\n }\n var res;\n // otherwise both present, so compare\n if (aIsSimple) {\n var aSimple = a;\n var bSimple = b;\n res = this.areSimpleModelsEqual(aSimple, bSimple);\n }\n else {\n var aCombined = a;\n var bCombined = b;\n res = aCombined.operator === bCombined.operator\n && this.areSimpleModelsEqual(aCombined.condition1, bCombined.condition1)\n && this.areSimpleModelsEqual(aCombined.condition2, bCombined.condition2);\n }\n return res;\n };\n SimpleFilter.prototype.setModelIntoUi = function (model) {\n var isCombined = model.operator;\n if (isCombined) {\n var combinedModel = model;\n var orChecked = combinedModel.operator === 'OR';\n this.eJoinOperatorAnd.setValue(!orChecked);\n this.eJoinOperatorOr.setValue(orChecked);\n this.eType1.setValue(combinedModel.condition1.type);\n this.eType2.setValue(combinedModel.condition2.type);\n this.setConditionIntoUi(combinedModel.condition1, ConditionPosition.One);\n this.setConditionIntoUi(combinedModel.condition2, ConditionPosition.Two);\n }\n else {\n var simpleModel = model;\n this.eJoinOperatorAnd.setValue(this.isDefaultOperator('AND'));\n this.eJoinOperatorOr.setValue(this.isDefaultOperator('OR'));\n this.eType1.setValue(simpleModel.type);\n this.eType2.setValue(this.optionsFactory.getDefaultOption());\n this.setConditionIntoUi(simpleModel, ConditionPosition.One);\n this.setConditionIntoUi(null, ConditionPosition.Two);\n }\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n var model = this.getModel();\n if (model == null) {\n return true;\n }\n var operator = model.operator;\n var models = [];\n if (operator) {\n var combinedModel = model;\n models.push(combinedModel.condition1, combinedModel.condition2);\n }\n else {\n models.push(model);\n }\n var combineFunction = operator && operator === 'OR' ? 'some' : 'every';\n return models[combineFunction](function (m) { return _this.individualConditionPasses(params, m); });\n };\n SimpleFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params, this.getDefaultFilterOptions());\n this.allowTwoConditions = !params.suppressAndOrCondition;\n this.alwaysShowBothConditions = !!params.alwaysShowBothConditions;\n this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);\n this.putOptionsIntoDropdown();\n this.addChangedListeners();\n };\n SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {\n return includes(['AND', 'OR'], defaultJoinOperator) ? defaultJoinOperator : 'AND';\n };\n SimpleFilter.prototype.putOptionsIntoDropdown = function () {\n var _this = this;\n var filterOptions = this.optionsFactory.getFilterOptions();\n var eTypes = [this.eType1, this.eType2];\n // Add specified options to all condition drop-downs.\n filterOptions.forEach(function (option) {\n var listOption = typeof option === 'string' ?\n _this.createBoilerplateListOption(option) :\n _this.createCustomListOption(option);\n eTypes.forEach(function (eType) { return eType.addOption(listOption); });\n });\n // Make drop-downs read-only if there is only one option.\n eTypes.forEach(function (eType) { return eType.setDisabled(filterOptions.length <= 1); });\n };\n SimpleFilter.prototype.createBoilerplateListOption = function (option) {\n return { value: option, text: this.translate(option) };\n };\n SimpleFilter.prototype.createCustomListOption = function (option) {\n var displayKey = option.displayKey;\n var customOption = this.optionsFactory.getCustomOption(option.displayKey);\n return {\n value: displayKey,\n text: customOption ?\n this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :\n this.translate(displayKey),\n };\n };\n SimpleFilter.prototype.isAllowTwoConditions = function () {\n return this.allowTwoConditions;\n };\n SimpleFilter.prototype.createBodyTemplate = function () {\n return /* html */ \"\\n \\n \" + this.createValueTemplate(ConditionPosition.One) + \"\\n
\\n \\n \\n
\\n \\n \" + this.createValueTemplate(ConditionPosition.Two);\n };\n SimpleFilter.prototype.getCssIdentifier = function () {\n return 'simple-filter';\n };\n SimpleFilter.prototype.updateUiVisibility = function () {\n var _this = this;\n var elementConditionGroups = [\n [this.eType1],\n [this.eType2, this.eJoinOperatorPanel, this.eJoinOperatorAnd, this.eJoinOperatorOr],\n ];\n var elementBodies = [this.eCondition1Body, this.eCondition2Body];\n elementConditionGroups.forEach(function (group, position) {\n var visible = _this.isConditionVisible(position);\n var disabled = _this.isConditionDisabled(position);\n group.forEach(function (element) {\n if (element instanceof AgAbstractInputField || element instanceof AgSelect) {\n element.setDisabled(disabled);\n element.setDisplayed(visible);\n }\n else {\n setDisabled(element, disabled);\n setDisplayed(element, visible);\n }\n });\n });\n elementBodies.forEach(function (element, index) {\n setDisplayed(element, _this.isConditionBodyVisible(index));\n });\n this.forEachInput(function (element, index, position, numberOfInputs) {\n _this.setElementDisplayed(element, index < numberOfInputs);\n _this.setElementDisabled(element, _this.isConditionDisabled(position));\n });\n this.resetPlaceholder();\n };\n SimpleFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.resetPlaceholder();\n if (!params || (!params.suppressFocus && !this.isReadOnly())) {\n var firstInput = this.getInputs()[0][0];\n if (!firstInput) {\n return;\n }\n if (firstInput instanceof AgAbstractInputField) {\n firstInput.getInputElement().focus();\n }\n }\n };\n // allow sub-classes to reset HTML placeholders after UI update.\n SimpleFilter.prototype.resetPlaceholder = function () {\n var _this = this;\n var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.forEachInput(function (element, index, _, numberOfInputs) {\n if (!(element instanceof AgAbstractInputField)) {\n return;\n }\n var placeholder = index === 0 && numberOfInputs > 1 ? 'inRangeStart' :\n index === 0 ? 'filterOoo' :\n 'inRangeEnd';\n var ariaLabel = index === 0 && numberOfInputs > 1 ? globalTranslate('ariaFilterFromValue', 'Filter from value') :\n index === 0 ? globalTranslate('ariaFilterValue', 'Filter Value') :\n globalTranslate('ariaFilterToValue', 'Filter to Value');\n element.setInputPlaceholder(_this.translate(placeholder));\n element.setInputAriaLabel(ariaLabel);\n });\n };\n SimpleFilter.prototype.setElementValue = function (element, value, silent) {\n if (element instanceof AgAbstractInputField) {\n element.setValue(value != null ? String(value) : null, silent);\n }\n };\n SimpleFilter.prototype.setElementDisplayed = function (element, displayed) {\n if (element instanceof Component) {\n setDisplayed(element.getGui(), displayed);\n }\n };\n SimpleFilter.prototype.setElementDisabled = function (element, disabled) {\n if (element instanceof Component) {\n setDisabled(element.getGui(), disabled);\n }\n };\n SimpleFilter.prototype.attachElementOnChange = function (element, listener) {\n if (element instanceof AgAbstractInputField) {\n element.onValueChange(listener);\n }\n };\n SimpleFilter.prototype.forEachInput = function (cb) {\n var _this = this;\n var inputs = this.getInputs();\n this.getConditionTypes().forEach(function (type, position) {\n var numberOfInputs = _this.getNumberOfInputs(type);\n for (var index = 0; index < inputs[position].length; index++) {\n var input = inputs[position][index];\n if (input != null) {\n cb(input, index, position, numberOfInputs);\n }\n }\n });\n };\n SimpleFilter.prototype.isConditionVisible = function (position) {\n if (position === 0) {\n return true;\n } // Position 0 should always be visible.\n if (!this.allowTwoConditions) {\n return false;\n } // Short-circuit if no tail conditions.\n if (this.isReadOnly()) {\n // Only display a condition when read-only if the condition is complete.\n return this.isConditionUiComplete(position);\n }\n if (this.alwaysShowBothConditions) {\n return true;\n }\n // Only display a 2nd or later condition when the previous condition is complete.\n return this.isConditionUiComplete(position - 1);\n };\n SimpleFilter.prototype.isConditionDisabled = function (position) {\n if (this.isReadOnly()) {\n return true;\n } // Read-only mode trumps everything.\n if (!this.isConditionVisible(position)) {\n return true;\n } // Invisible implies disabled.\n if (position === 0) {\n return false;\n } // Position 0 should typically be editable.\n // Only allow editing of a 2nd or later condition if the previous condition is complete.\n return !this.isConditionUiComplete(position - 1);\n };\n SimpleFilter.prototype.isConditionBodyVisible = function (position) {\n if (!this.isConditionVisible(position)) {\n return false;\n }\n // Check that the condition needs inputs.\n var type = this.getConditionTypes()[position];\n var numberOfInputs = this.getNumberOfInputs(type);\n return numberOfInputs > 0;\n };\n // returns true if the UI represents a working filter, eg all parts are filled out.\n // eg if text filter and textfield blank then returns false.\n SimpleFilter.prototype.isConditionUiComplete = function (position) {\n var type = this.getConditionTypes()[position];\n if (type === SimpleFilter.EMPTY) {\n return false;\n }\n if (this.getValues(position).some(function (v) { return v == null; })) {\n return false;\n }\n return true;\n };\n SimpleFilter.prototype.resetUiToDefaults = function (silent) {\n var _this = this;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');\n var uniqueGroupId = 'ag-simple-filter-and-or-' + this.getCompId();\n var defaultOption = this.optionsFactory.getDefaultOption();\n this.eType1\n .setValue(defaultOption, silent)\n .setAriaLabel(filteringLabel)\n .setDisabled(this.isReadOnly());\n this.eType2\n .setValue(this.optionsFactory.getDefaultOption(), silent)\n .setAriaLabel(filteringLabel)\n .setDisabled(this.isReadOnly());\n this.eJoinOperatorAnd\n .setValue(this.isDefaultOperator('AND'), silent)\n .setName(uniqueGroupId)\n .setLabel(this.translate('andCondition'))\n .setDisabled(this.isReadOnly());\n this.eJoinOperatorOr\n .setValue(this.isDefaultOperator('OR'), silent)\n .setName(uniqueGroupId)\n .setLabel(this.translate('orCondition'))\n .setDisabled(this.isReadOnly());\n this.forEachInput(function (element) {\n _this.setElementValue(element, null, silent);\n _this.setElementDisabled(element, _this.isReadOnly());\n });\n this.resetPlaceholder();\n return AgPromise.resolve();\n };\n // puts model values into the UI\n SimpleFilter.prototype.setConditionIntoUi = function (model, position) {\n var _this = this;\n var values = this.mapValuesFromModel(model);\n this.forEachInput(function (element, index, elPosition, _) {\n if (elPosition !== position) {\n return;\n }\n _this.setElementValue(element, values[index] != null ? values[index] : null);\n });\n };\n // after floating filter changes, this sets the 'value' section. this is implemented by the base class\n // (as that's where value is controlled), the 'type' part from the floating filter is dealt with in this class.\n SimpleFilter.prototype.setValueFromFloatingFilter = function (value) {\n var _this = this;\n this.forEachInput(function (element, index, position, _) {\n _this.setElementValue(element, index === 0 && position === 0 ? value : null);\n });\n };\n SimpleFilter.prototype.isDefaultOperator = function (operator) {\n return operator === this.defaultJoinOperator;\n };\n SimpleFilter.prototype.addChangedListeners = function () {\n var _this = this;\n if (this.isReadOnly()) {\n return;\n }\n var listener = function () { return _this.onUiChanged(); };\n this.eType1.onValueChange(listener);\n this.eType2.onValueChange(listener);\n this.eJoinOperatorOr.onValueChange(listener);\n this.eJoinOperatorAnd.onValueChange(listener);\n this.forEachInput(function (element) {\n _this.attachElementOnChange(element, listener);\n });\n };\n /** returns true if the row passes the said condition */\n SimpleFilter.prototype.individualConditionPasses = function (params, filterModel) {\n var cellValue = this.getCellValue(params.node);\n var values = this.mapValuesFromModel(filterModel);\n var customFilterOption = this.optionsFactory.getCustomOption(filterModel.type);\n var customFilterResult = this.evaluateCustomFilter(customFilterOption, values, cellValue);\n if (customFilterResult != null) {\n return customFilterResult;\n }\n if (cellValue == null) {\n return this.evaluateNullValue(filterModel.type);\n }\n return this.evaluateNonNullValue(values, cellValue, filterModel, params);\n };\n SimpleFilter.prototype.evaluateCustomFilter = function (customFilterOption, values, cellValue) {\n if (customFilterOption == null) {\n return;\n }\n var predicate = customFilterOption.predicate;\n // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden\n if (predicate != null && !values.some(function (v) { return v == null; })) {\n return predicate(values, cellValue);\n }\n // No custom filter invocation, indicate that to the caller.\n return;\n };\n SimpleFilter.prototype.isBlank = function (cellValue) {\n return cellValue == null ||\n (typeof cellValue === 'string' && cellValue.trim().length === 0);\n };\n SimpleFilter.EMPTY = 'empty';\n SimpleFilter.BLANK = 'blank';\n SimpleFilter.NOT_BLANK = 'notBlank';\n SimpleFilter.EQUALS = 'equals';\n SimpleFilter.NOT_EQUAL = 'notEqual';\n SimpleFilter.LESS_THAN = 'lessThan';\n SimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';\n SimpleFilter.GREATER_THAN = 'greaterThan';\n SimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';\n SimpleFilter.IN_RANGE = 'inRange';\n SimpleFilter.CONTAINS = 'contains';\n SimpleFilter.NOT_CONTAINS = 'notContains';\n SimpleFilter.STARTS_WITH = 'startsWith';\n SimpleFilter.ENDS_WITH = 'endsWith';\n __decorate$j([\n RefSelector('eOptions1')\n ], SimpleFilter.prototype, \"eType1\", void 0);\n __decorate$j([\n RefSelector('eOptions2')\n ], SimpleFilter.prototype, \"eType2\", void 0);\n __decorate$j([\n RefSelector('eJoinOperatorPanel')\n ], SimpleFilter.prototype, \"eJoinOperatorPanel\", void 0);\n __decorate$j([\n RefSelector('eJoinOperatorAnd')\n ], SimpleFilter.prototype, \"eJoinOperatorAnd\", void 0);\n __decorate$j([\n RefSelector('eJoinOperatorOr')\n ], SimpleFilter.prototype, \"eJoinOperatorOr\", void 0);\n __decorate$j([\n RefSelector('eCondition1Body')\n ], SimpleFilter.prototype, \"eCondition1Body\", void 0);\n __decorate$j([\n RefSelector('eCondition2Body')\n ], SimpleFilter.prototype, \"eCondition2Body\", void 0);\n return SimpleFilter;\n}(ProvidedFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ScalarFilter = /** @class */ (function (_super) {\n __extends$h(ScalarFilter, _super);\n function ScalarFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScalarFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.scalarFilterParams = params;\n };\n ScalarFilter.prototype.evaluateNullValue = function (filterType) {\n switch (filterType) {\n case ScalarFilter.EQUALS:\n case ScalarFilter.NOT_EQUAL:\n if (this.scalarFilterParams.includeBlanksInEquals) {\n return true;\n }\n break;\n case ScalarFilter.GREATER_THAN:\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInGreaterThan) {\n return true;\n }\n break;\n case ScalarFilter.LESS_THAN:\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInLessThan) {\n return true;\n }\n break;\n case ScalarFilter.IN_RANGE:\n if (this.scalarFilterParams.includeBlanksInRange) {\n return true;\n }\n break;\n case ScalarFilter.BLANK:\n return true;\n case ScalarFilter.NOT_BLANK:\n return false;\n }\n return false;\n };\n ScalarFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel) {\n var comparator = this.comparator();\n var compareResult = values[0] != null ? comparator(values[0], cellValue) : 0;\n switch (filterModel.type) {\n case ScalarFilter.EQUALS:\n return compareResult === 0;\n case ScalarFilter.NOT_EQUAL:\n return compareResult !== 0;\n case ScalarFilter.GREATER_THAN:\n return compareResult > 0;\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n return compareResult >= 0;\n case ScalarFilter.LESS_THAN:\n return compareResult < 0;\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n return compareResult <= 0;\n case ScalarFilter.IN_RANGE: {\n var compareToResult = comparator(values[1], cellValue);\n return this.scalarFilterParams.inRangeInclusive ?\n compareResult >= 0 && compareToResult <= 0 :\n compareResult > 0 && compareToResult < 0;\n }\n case ScalarFilter.BLANK:\n return this.isBlank(cellValue);\n case ScalarFilter.NOT_BLANK:\n return !this.isBlank(cellValue);\n default:\n console.warn('AG Grid: Unexpected type of filter \"' + filterModel.type + '\", it looks like the filter was configured with incorrect Filter Options');\n return true;\n }\n };\n return ScalarFilter;\n}(SimpleFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$5 = (undefined && undefined.__assign) || function () {\n __assign$5 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$5.apply(this, arguments);\n};\nvar __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEFAULT_MIN_YEAR = 1000;\nvar DEFAULT_MAX_YEAR = Infinity;\nvar DateFilter = /** @class */ (function (_super) {\n __extends$i(DateFilter, _super);\n function DateFilter() {\n var _this = _super.call(this, 'dateFilter') || this;\n _this.minValidYear = DEFAULT_MIN_YEAR;\n _this.maxValidYear = DEFAULT_MAX_YEAR;\n return _this;\n }\n DateFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.dateCondition1FromComp.afterGuiAttached(params);\n };\n DateFilter.prototype.mapValuesFromModel = function (filterModel) {\n // unlike the other filters, we do two things here:\n // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'\n // are in different locations in Date and Number filter models)\n // 2) convert the type (because Date filter uses Dates, however model is 'string')\n //\n // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks\n // a date from the UI, it will have timezone info in it. This is lost when creating\n // the model. When we recreate the date again here, it's without a timezone.\n var _a = filterModel || {}, dateFrom = _a.dateFrom, dateTo = _a.dateTo, type = _a.type;\n return [\n dateFrom && parseDateTimeFromString(dateFrom) || null,\n dateTo && parseDateTimeFromString(dateTo) || null,\n ].slice(0, this.getNumberOfInputs(type));\n };\n DateFilter.prototype.comparator = function () {\n return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);\n };\n DateFilter.prototype.defaultComparator = function (filterDate, cellValue) {\n // The default comparator assumes that the cellValue is a date\n var cellAsDate = cellValue;\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n };\n DateFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.dateFilterParams = params;\n var yearParser = function (param, fallback) {\n if (params[param] != null) {\n if (!isNaN(params[param])) {\n return params[param] == null ? fallback : Number(params[param]);\n }\n else {\n console.warn(\"AG Grid: DateFilter \" + param + \" is not a number\");\n }\n }\n return fallback;\n };\n this.minValidYear = yearParser('minValidYear', DEFAULT_MIN_YEAR);\n this.maxValidYear = yearParser('maxValidYear', DEFAULT_MAX_YEAR);\n if (this.minValidYear > this.maxValidYear) {\n console.warn(\"AG Grid: DateFilter minValidYear should be <= maxValidYear\");\n }\n this.createDateComponents();\n };\n DateFilter.prototype.createDateComponents = function () {\n var _this = this;\n var createDateCompWrapper = function (element) {\n return new DateCompWrapper(_this.getContext(), _this.userComponentFactory, {\n onDateChanged: function () { return _this.onUiChanged(); },\n filterParams: _this.dateFilterParams\n }, element);\n };\n this.dateCondition1FromComp = createDateCompWrapper(this.eCondition1PanelFrom);\n this.dateCondition1ToComp = createDateCompWrapper(this.eCondition1PanelTo);\n this.dateCondition2FromComp = createDateCompWrapper(this.eCondition2PanelFrom);\n this.dateCondition2ToComp = createDateCompWrapper(this.eCondition2PanelTo);\n this.addDestroyFunc(function () {\n _this.forEachInput(function (element) { return element.destroy(); });\n });\n };\n DateFilter.prototype.setElementValue = function (element, value, silent) {\n element.setDate(value);\n };\n DateFilter.prototype.setElementDisplayed = function (element, displayed) {\n element.setDisplayed(displayed);\n };\n DateFilter.prototype.setElementDisabled = function (element, disabled) {\n element.setDisabled(disabled);\n };\n DateFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n return /* html */ \"\\n
\\n
\\n
\\n
\";\n };\n DateFilter.prototype.isConditionUiComplete = function (position) {\n var _this = this;\n if (!_super.prototype.isConditionUiComplete.call(this, position)) {\n return false;\n }\n var isValidDate = function (value) { return value != null\n && value.getUTCFullYear() >= _this.minValidYear\n && value.getUTCFullYear() <= _this.maxValidYear; };\n var valid = true;\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (elPosition !== position || !valid || index >= numberOfInputs) {\n return;\n }\n valid = valid && isValidDate(element.getDate());\n });\n return valid;\n };\n DateFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.dateFrom === bSimple.dateFrom\n && aSimple.dateTo === bSimple.dateTo\n && aSimple.type === bSimple.type;\n };\n DateFilter.prototype.getFilterType = function () {\n return 'date';\n };\n DateFilter.prototype.createCondition = function (position) {\n var type = this.getConditionTypes()[position];\n var model = {};\n var values = this.getValues(position);\n if (values.length > 0) {\n model.dateFrom = serialiseDate(values[0]);\n }\n if (values.length > 1) {\n model.dateTo = serialiseDate(values[1]);\n }\n return __assign$5({ dateFrom: null, dateTo: null, filterType: this.getFilterType(), type: type }, model);\n };\n DateFilter.prototype.resetPlaceholder = function () {\n var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();\n var placeholder = this.translate('dateFormatOoo');\n var ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');\n this.forEachInput(function (element) {\n element.setInputPlaceholder(placeholder);\n element.setInputAriaLabel(ariaLabel);\n });\n };\n DateFilter.prototype.getInputs = function () {\n return [\n [this.dateCondition1FromComp, this.dateCondition1ToComp],\n [this.dateCondition2FromComp, this.dateCondition2ToComp],\n ];\n };\n DateFilter.prototype.getValues = function (position) {\n var result = [];\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (position === elPosition && index < numberOfInputs) {\n result.push(element.getDate());\n }\n });\n return result;\n };\n DateFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.LESS_THAN,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n ];\n __decorate$k([\n RefSelector('eCondition1PanelFrom')\n ], DateFilter.prototype, \"eCondition1PanelFrom\", void 0);\n __decorate$k([\n RefSelector('eCondition1PanelTo')\n ], DateFilter.prototype, \"eCondition1PanelTo\", void 0);\n __decorate$k([\n RefSelector('eCondition2PanelFrom')\n ], DateFilter.prototype, \"eCondition2PanelFrom\", void 0);\n __decorate$k([\n RefSelector('eCondition2PanelTo')\n ], DateFilter.prototype, \"eCondition2PanelTo\", void 0);\n __decorate$k([\n Autowired('userComponentFactory')\n ], DateFilter.prototype, \"userComponentFactory\", void 0);\n return DateFilter;\n}(ScalarFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar SimpleFloatingFilter = /** @class */ (function (_super) {\n __extends$j(SimpleFloatingFilter, _super);\n function SimpleFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SimpleFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n // used by:\n // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.\n // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)\n SimpleFloatingFilter.prototype.getTextFromModel = function (model) {\n if (!model) {\n return null;\n }\n var isCombined = model.operator != null;\n if (isCombined) {\n var combinedModel = model;\n var _a = combinedModel || {}, condition1 = _a.condition1, condition2 = _a.condition2;\n var customOption1 = this.optionsFactory.getCustomOption(condition1.type);\n var customOption2 = this.optionsFactory.getCustomOption(condition2.type);\n return [\n this.conditionToString(condition1, customOption1),\n combinedModel.operator,\n this.conditionToString(condition2, customOption2),\n ].join(' ');\n }\n else {\n var condition = model;\n var customOption = this.optionsFactory.getCustomOption(condition.type);\n // For custom filter options we display the Name of the filter instead\n // of displaying the `from` value, as it wouldn't be relevant\n var _b = customOption || {}, displayKey = _b.displayKey, displayName = _b.displayName, numberOfInputs = _b.numberOfInputs;\n if (displayKey && displayName && numberOfInputs === 0) {\n this.gridOptionsWrapper.getLocaleTextFunc()(displayKey, displayName);\n return displayName;\n }\n return this.conditionToString(condition, customOption);\n }\n };\n SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {\n return event && event.afterFloatingFilter;\n };\n SimpleFloatingFilter.prototype.getLastType = function () {\n return this.lastType;\n };\n SimpleFloatingFilter.prototype.isReadOnly = function () {\n return this.readOnly;\n };\n SimpleFloatingFilter.prototype.setLastTypeFromModel = function (model) {\n // if no model provided by the parent filter use default\n if (!model) {\n this.lastType = this.optionsFactory.getDefaultOption();\n return;\n }\n var isCombined = model.operator;\n var condition;\n if (isCombined) {\n var combinedModel = model;\n condition = combinedModel.condition1;\n }\n else {\n condition = model;\n }\n this.lastType = condition.type;\n };\n SimpleFloatingFilter.prototype.canWeEditAfterModelFromParentFilter = function (model) {\n if (!model) {\n // if no model, then we can edit as long as the lastType is something we can edit, as this\n // is the type we will provide to the parent filter if the user decides to use the floating filter.\n return this.isTypeEditable(this.lastType);\n }\n // never allow editing if the filter is combined (ie has two parts)\n var isCombined = model.operator;\n if (isCombined) {\n return false;\n }\n var simpleModel = model;\n return this.isTypeEditable(simpleModel.type);\n };\n SimpleFloatingFilter.prototype.init = function (params) {\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());\n this.lastType = this.optionsFactory.getDefaultOption();\n // readOnly is a property of IProvidedFilterParams - we need to find a better (type-safe)\n // way to support reading this in the future.\n this.readOnly = !!params.filterParams.readOnly;\n // we are editable if:\n // 1) there is a type (user has configured filter wrong if not type)\n // AND\n // 2) the default type is not 'in range'\n var editable = this.isTypeEditable(this.lastType);\n this.setEditable(editable);\n };\n SimpleFloatingFilter.prototype.doesFilterHaveSingleInput = function (filterType) {\n var customFilterOption = this.optionsFactory.getCustomOption(filterType);\n var numberOfInputs = (customFilterOption || {}).numberOfInputs;\n return numberOfInputs == null || numberOfInputs == 1;\n };\n SimpleFloatingFilter.prototype.isTypeEditable = function (type) {\n var uneditableTypes = [\n SimpleFilter.IN_RANGE, SimpleFilter.EMPTY, SimpleFilter.BLANK, SimpleFilter.NOT_BLANK,\n ];\n return !!type &&\n !this.isReadOnly() &&\n this.doesFilterHaveSingleInput(type) &&\n uneditableTypes.indexOf(type) < 0;\n };\n return SimpleFloatingFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DateFloatingFilter = /** @class */ (function (_super) {\n __extends$k(DateFloatingFilter, _super);\n function DateFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\\n
\") || this;\n }\n DateFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFloatingFilter.prototype.conditionToString = function (condition, options) {\n var type = condition.type;\n var numberOfInputs = (options || {}).numberOfInputs;\n var isRange = type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n var dateFrom = parseDateTimeFromString(condition.dateFrom);\n var dateTo = parseDateTimeFromString(condition.dateTo);\n if (isRange) {\n return serialiseDate(dateFrom, false) + \"-\" + serialiseDate(dateTo, false);\n }\n if (dateFrom != null) {\n return \"\" + serialiseDate(dateFrom, false);\n }\n // cater for when the type doesn't need a value\n return \"\" + type;\n };\n DateFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.createDateComponent();\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eReadOnlyText\n .setDisabled(true)\n .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));\n };\n DateFloatingFilter.prototype.setEditable = function (editable) {\n setDisplayed(this.eDateWrapper, editable);\n setDisplayed(this.eReadOnlyText.getGui(), !editable);\n };\n DateFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing\n if (this.isEventFromFloatingFilter(event)) {\n return;\n }\n _super.prototype.setLastTypeFromModel.call(this, model);\n var allowEditing = !this.isReadOnly() &&\n this.canWeEditAfterModelFromParentFilter(model);\n this.setEditable(allowEditing);\n if (allowEditing) {\n if (model) {\n var dateModel = model;\n this.dateComp.setDate(parseDateTimeFromString(dateModel.dateFrom));\n }\n else {\n this.dateComp.setDate(null);\n }\n this.eReadOnlyText.setValue('');\n }\n else {\n this.eReadOnlyText.setValue(this.getTextFromModel(model));\n this.dateComp.setDate(null);\n }\n };\n DateFloatingFilter.prototype.onDateChanged = function () {\n var _this = this;\n var filterValueDate = this.dateComp.getDate();\n var filterValueText = serialiseDate(filterValueDate);\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n var date = parseDateTimeFromString(filterValueText);\n filterInstance.onFloatingFilterChanged(_this.getLastType() || null, date);\n }\n });\n };\n DateFloatingFilter.prototype.createDateComponent = function () {\n var _this = this;\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var dateComponentParams = {\n onDateChanged: debounce(this.onDateChanged.bind(this), debounceMs),\n filterParams: this.params.column.getColDef().filterParams\n };\n this.dateComp = new DateCompWrapper(this.getContext(), this.userComponentFactory, dateComponentParams, this.eDateWrapper);\n this.addDestroyFunc(function () { return _this.dateComp.destroy(); });\n };\n __decorate$l([\n Autowired('userComponentFactory')\n ], DateFloatingFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$l([\n RefSelector('eReadOnlyText')\n ], DateFloatingFilter.prototype, \"eReadOnlyText\", void 0);\n __decorate$l([\n RefSelector('eDateWrapper')\n ], DateFloatingFilter.prototype, \"eDateWrapper\", void 0);\n return DateFloatingFilter;\n}(SimpleFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DefaultDateComponent = /** @class */ (function (_super) {\n __extends$l(DefaultDateComponent, _super);\n function DefaultDateComponent() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n DefaultDateComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n DefaultDateComponent.prototype.init = function (params) {\n var _this = this;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var inputElement = this.eDateInput.getInputElement();\n if (this.shouldUseBrowserDatePicker(params)) {\n inputElement.type = 'date';\n }\n // ensures that the input element is focussed when a clear button is clicked\n this.addManagedListener(inputElement, 'mousedown', function () {\n if (_this.eDateInput.isDisabled()) {\n return;\n }\n inputElement.focus();\n });\n this.addManagedListener(inputElement, 'input', function (e) {\n if (e.target !== eDocument.activeElement) {\n return;\n }\n if (_this.eDateInput.isDisabled()) {\n return;\n }\n params.onDateChanged();\n });\n var _a = params.filterParams || {}, minValidYear = _a.minValidYear, maxValidYear = _a.maxValidYear;\n if (minValidYear) {\n inputElement.min = minValidYear + \"-01-01\";\n }\n if (maxValidYear) {\n inputElement.max = maxValidYear + \"-12-31\";\n }\n };\n DefaultDateComponent.prototype.getDate = function () {\n return parseDateTimeFromString(this.eDateInput.getValue());\n };\n DefaultDateComponent.prototype.setDate = function (date) {\n this.eDateInput.setValue(serialiseDate(date, false));\n };\n DefaultDateComponent.prototype.setInputPlaceholder = function (placeholder) {\n this.eDateInput.setInputPlaceholder(placeholder);\n };\n DefaultDateComponent.prototype.setDisabled = function (disabled) {\n this.eDateInput.setDisabled(disabled);\n };\n DefaultDateComponent.prototype.afterGuiAttached = function (params) {\n if (!params || !params.suppressFocus) {\n this.eDateInput.getInputElement().focus();\n }\n };\n DefaultDateComponent.prototype.shouldUseBrowserDatePicker = function (params) {\n if (params.filterParams && params.filterParams.browserDatePicker != null) {\n return params.filterParams.browserDatePicker;\n }\n return isBrowserChrome() || isBrowserFirefox();\n };\n __decorate$m([\n RefSelector('eDateInput')\n ], DefaultDateComponent.prototype, \"eDateInput\", void 0);\n return DefaultDateComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NumberFilter = /** @class */ (function (_super) {\n __extends$m(NumberFilter, _super);\n function NumberFilter() {\n return _super.call(this, 'numberFilter') || this;\n }\n NumberFilter.prototype.mapValuesFromModel = function (filterModel) {\n var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;\n return [\n filter == null ? null : filter,\n filterTo == null ? null : filterTo,\n ].slice(0, this.getNumberOfInputs(type));\n };\n NumberFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n NumberFilter.prototype.comparator = function () {\n return function (left, right) {\n if (left === right) {\n return 0;\n }\n return left < right ? 1 : -1;\n };\n };\n NumberFilter.prototype.setParams = function (params) {\n this.numberFilterParams = params;\n var allowedCharPattern = this.getAllowedCharPattern();\n if (allowedCharPattern) {\n var config = { allowedCharPattern: allowedCharPattern };\n this.resetTemplate({\n 'eValue-index0-1': config,\n 'eValue-index1-1': config,\n 'eValue-index0-2': config,\n 'eValue-index1-2': config,\n });\n }\n _super.prototype.setParams.call(this, params);\n };\n NumberFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n var allowedCharPattern = this.getAllowedCharPattern();\n var agElementTag = allowedCharPattern ? 'ag-input-text-field' : 'ag-input-number-field';\n return /* html */ \"\\n
\\n <\" + agElementTag + \" class=\\\"ag-filter-from ag-filter-filter\\\" ref=\\\"eValue-index0-\" + pos + \"\\\">\\n <\" + agElementTag + \" class=\\\"ag-filter-to ag-filter-filter\\\" ref=\\\"eValue-index1-\" + pos + \"\\\">\\n
\";\n };\n NumberFilter.prototype.getValues = function (position) {\n var _this = this;\n var result = [];\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (position === elPosition && index < numberOfInputs) {\n result.push(_this.stringToFloat(element.getValue()));\n }\n });\n return result;\n };\n NumberFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter\n && aSimple.filterTo === bSimple.filterTo\n && aSimple.type === bSimple.type;\n };\n NumberFilter.prototype.getFilterType = function () {\n return 'number';\n };\n NumberFilter.prototype.stringToFloat = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n var filterText = makeNull(value);\n if (filterText != null && filterText.trim() === '') {\n filterText = null;\n }\n if (this.numberFilterParams.numberParser) {\n return this.numberFilterParams.numberParser(filterText);\n }\n return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);\n };\n NumberFilter.prototype.createCondition = function (position) {\n var type = this.getConditionTypes()[position];\n var model = {\n filterType: this.getFilterType(),\n type: type\n };\n var values = this.getValues(position);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n };\n NumberFilter.prototype.getInputs = function () {\n return [\n [this.eValueFrom1, this.eValueTo1],\n [this.eValueFrom2, this.eValueTo2],\n ];\n };\n NumberFilter.prototype.getAllowedCharPattern = function () {\n var allowedCharPattern = (this.numberFilterParams || {}).allowedCharPattern;\n if (allowedCharPattern) {\n return allowedCharPattern;\n }\n if (!isBrowserChrome() && !isBrowserEdge()) {\n // only Chrome and Edge support the HTML5 number field, so for other browsers we provide an equivalent\n // constraint instead\n return '\\\\d\\\\-\\\\.';\n }\n return null;\n };\n NumberFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.LESS_THAN,\n ScalarFilter.LESS_THAN_OR_EQUAL,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.GREATER_THAN_OR_EQUAL,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n ];\n __decorate$n([\n RefSelector('eValue-index0-1')\n ], NumberFilter.prototype, \"eValueFrom1\", void 0);\n __decorate$n([\n RefSelector('eValue-index1-1')\n ], NumberFilter.prototype, \"eValueTo1\", void 0);\n __decorate$n([\n RefSelector('eValue-index0-2')\n ], NumberFilter.prototype, \"eValueFrom2\", void 0);\n __decorate$n([\n RefSelector('eValue-index1-2')\n ], NumberFilter.prototype, \"eValueTo2\", void 0);\n return NumberFilter;\n}(ScalarFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$6 = (undefined && undefined.__assign) || function () {\n __assign$6 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$6.apply(this, arguments);\n};\nvar __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TextFilter = /** @class */ (function (_super) {\n __extends$n(TextFilter, _super);\n function TextFilter() {\n return _super.call(this, 'textFilter') || this;\n }\n TextFilter.trimInput = function (value) {\n var trimmedInput = value && value.trim();\n // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)\n return trimmedInput === '' ? value : trimmedInput;\n };\n TextFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.textFilterParams = params;\n this.matcher = this.getTextMatcher();\n this.formatter = this.textFilterParams.textFormatter ||\n (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);\n };\n TextFilter.prototype.getTextMatcher = function () {\n var legacyComparator = this.textFilterParams.textCustomComparator;\n if (legacyComparator) {\n _.doOnce(function () { return console.warn('AG Grid - textCustomComparator is deprecated, use textMatcher instead.'); }, 'textCustomComparator.deprecated');\n return function (_a) {\n var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;\n return legacyComparator(filterOption, value, filterText);\n };\n }\n return this.textFilterParams.textMatcher || TextFilter.DEFAULT_MATCHER;\n };\n TextFilter.prototype.createCondition = function (position) {\n var type = this.getConditionTypes()[position];\n var model = {\n filterType: this.getFilterType(),\n type: type,\n };\n var values = this.getValues(position);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n };\n TextFilter.prototype.getFilterType = function () {\n return 'text';\n };\n TextFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter &&\n aSimple.filterTo === bSimple.filterTo &&\n aSimple.type === bSimple.type;\n };\n TextFilter.prototype.getInputs = function () {\n return [\n [this.eValueFrom1, this.eValueTo1],\n [this.eValueFrom2, this.eValueTo2],\n ];\n };\n TextFilter.prototype.getValues = function (position) {\n var _this = this;\n var result = [];\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (position === elPosition && index < numberOfInputs) {\n var value = makeNull(element.getValue());\n var cleanValue = (_this.textFilterParams.trimInput ? TextFilter.trimInput(value) : value) || null;\n result.push(cleanValue);\n element.setValue(cleanValue, true); // ensure clean value is visible\n }\n });\n return result;\n };\n TextFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n TextFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n return /* html */ \"\\n
\\n \\n \\n
\";\n };\n TextFilter.prototype.mapValuesFromModel = function (filterModel) {\n var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;\n return [\n filter || null,\n filterTo || null,\n ].slice(0, this.getNumberOfInputs(type));\n };\n TextFilter.prototype.evaluateNullValue = function (filterType) {\n var filterTypesAllowNulls = [\n SimpleFilter.NOT_EQUAL, SimpleFilter.NOT_CONTAINS, SimpleFilter.BLANK,\n ];\n return filterType ? filterTypesAllowNulls.indexOf(filterType) >= 0 : false;\n };\n TextFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel, params) {\n var _this = this;\n var formattedValues = values.map(function (v) { return _this.formatter(v); }) || [];\n var cellValueFormatted = this.formatter(cellValue);\n var _a = this.textFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context, textFormatter = _a.textFormatter;\n if (filterModel.type === SimpleFilter.BLANK) {\n return this.isBlank(cellValue);\n }\n else if (filterModel.type === SimpleFilter.NOT_BLANK) {\n return !this.isBlank(cellValue);\n }\n var matcherParams = {\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n node: params.node,\n data: params.data,\n filterOption: filterModel.type,\n value: cellValueFormatted,\n textFormatter: textFormatter,\n };\n return formattedValues.some(function (v) { return _this.matcher(__assign$6(__assign$6({}, matcherParams), { filterText: v })); });\n };\n TextFilter.DEFAULT_FILTER_OPTIONS = [\n SimpleFilter.CONTAINS,\n SimpleFilter.NOT_CONTAINS,\n SimpleFilter.EQUALS,\n SimpleFilter.NOT_EQUAL,\n SimpleFilter.STARTS_WITH,\n SimpleFilter.ENDS_WITH,\n SimpleFilter.BLANK,\n SimpleFilter.NOT_BLANK,\n ];\n TextFilter.DEFAULT_FORMATTER = function (from) { return from; };\n TextFilter.DEFAULT_LOWERCASE_FORMATTER = function (from) { return from == null ? null : from.toString().toLowerCase(); };\n TextFilter.DEFAULT_MATCHER = function (_a) {\n var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;\n if (filterText == null) {\n return false;\n }\n switch (filterOption) {\n case TextFilter.CONTAINS:\n return value.indexOf(filterText) >= 0;\n case TextFilter.NOT_CONTAINS:\n return value.indexOf(filterText) < 0;\n case TextFilter.EQUALS:\n return value === filterText;\n case TextFilter.NOT_EQUAL:\n return value != filterText;\n case TextFilter.STARTS_WITH:\n return value.indexOf(filterText) === 0;\n case TextFilter.ENDS_WITH:\n var index = value.lastIndexOf(filterText);\n return index >= 0 && index === (value.length - filterText.length);\n default:\n return false;\n }\n };\n __decorate$o([\n RefSelector('eValue-index0-1')\n ], TextFilter.prototype, \"eValueFrom1\", void 0);\n __decorate$o([\n RefSelector('eValue-index1-1')\n ], TextFilter.prototype, \"eValueTo1\", void 0);\n __decorate$o([\n RefSelector('eValue-index0-2')\n ], TextFilter.prototype, \"eValueFrom2\", void 0);\n __decorate$o([\n RefSelector('eValue-index1-2')\n ], TextFilter.prototype, \"eValueTo2\", void 0);\n return TextFilter;\n}(SimpleFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TextInputFloatingFilter = /** @class */ (function (_super) {\n __extends$o(TextInputFloatingFilter, _super);\n function TextInputFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextInputFloatingFilter.prototype.postConstruct = function () {\n this.resetTemplate();\n };\n TextInputFloatingFilter.prototype.resetTemplate = function (paramsMap) {\n this.setTemplate(/* html */ \"\\n
\\n \\n
\\n \", paramsMap);\n };\n TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n if (this.isEventFromFloatingFilter(event)) {\n // if the floating filter triggered the change, it is already in sync\n return;\n }\n this.setLastTypeFromModel(model);\n this.eFloatingFilterInput.setValue(this.getTextFromModel(model));\n this.setEditable(this.canWeEditAfterModelFromParentFilter(model));\n };\n TextInputFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(this.params.filterParams);\n var allowedCharPattern = this.params.filterParams.allowedCharPattern;\n if (allowedCharPattern != null) {\n this.resetTemplate({ eFloatingFilterInput: { allowedCharPattern: allowedCharPattern } });\n }\n if (!this.isReadOnly()) {\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var toDebounce = debounce(this.syncUpWithParentFilter.bind(this), debounceMs);\n var filterGui = this.eFloatingFilterInput.getGui();\n this.addManagedListener(filterGui, 'input', toDebounce);\n this.addManagedListener(filterGui, 'keypress', toDebounce);\n this.addManagedListener(filterGui, 'keydown', toDebounce);\n }\n var columnDef = params.column.getDefinition();\n if (this.isReadOnly() || (columnDef.filterParams &&\n columnDef.filterParams.filterOptions &&\n columnDef.filterParams.filterOptions.length === 1 &&\n columnDef.filterParams.filterOptions[0] === 'inRange')) {\n this.eFloatingFilterInput.setDisabled(true);\n }\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterInput.setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {\n var _this = this;\n var enterKeyPressed = e.key === KeyCode.ENTER;\n if (this.applyActive && !enterKeyPressed) {\n return;\n }\n var value = this.eFloatingFilterInput.getValue();\n if (this.params.filterParams.trimInput) {\n value = TextFilter.trimInput(value);\n this.eFloatingFilterInput.setValue(value, true); // ensure visible value is trimmed\n }\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n filterInstance.onFloatingFilterChanged(_this.getLastType() || null, value || null);\n }\n });\n };\n TextInputFloatingFilter.prototype.conditionToString = function (condition, options) {\n var numberOfInputs = (options || {}).numberOfInputs;\n var isRange = condition.type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n if (isRange) {\n return condition.filter + \"-\" + condition.filterTo;\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return \"\" + condition.filter;\n }\n return \"\" + condition.type;\n };\n TextInputFloatingFilter.prototype.setEditable = function (editable) {\n this.eFloatingFilterInput.setDisabled(!editable);\n };\n __decorate$p([\n Autowired('columnModel')\n ], TextInputFloatingFilter.prototype, \"columnModel\", void 0);\n __decorate$p([\n RefSelector('eFloatingFilterInput')\n ], TextInputFloatingFilter.prototype, \"eFloatingFilterInput\", void 0);\n __decorate$p([\n PostConstruct\n ], TextInputFloatingFilter.prototype, \"postConstruct\", null);\n return TextInputFloatingFilter;\n}(SimpleFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NumberFloatingFilter = /** @class */ (function (_super) {\n __extends$p(NumberFloatingFilter, _super);\n function NumberFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n return NumberFloatingFilter;\n}(TextInputFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TextFloatingFilter = /** @class */ (function (_super) {\n __extends$q(TextFloatingFilter, _super);\n function TextFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n return TextFloatingFilter;\n}(TextInputFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar TouchListener = /** @class */ (function () {\n function TouchListener(eElement, preventMouseClick) {\n var _this = this;\n if (preventMouseClick === void 0) { preventMouseClick = false; }\n this.destroyFuncs = [];\n this.touching = false;\n this.eventService = new EventService();\n this.eElement = eElement;\n this.preventMouseClick = preventMouseClick;\n var startListener = this.onTouchStart.bind(this);\n var moveListener = this.onTouchMove.bind(this);\n var endListener = this.onTouchEnd.bind(this);\n this.eElement.addEventListener(\"touchstart\", startListener, { passive: true });\n this.eElement.addEventListener(\"touchmove\", moveListener, { passive: true });\n // we set passive=false, as we want to prevent default on this event\n this.eElement.addEventListener(\"touchend\", endListener, { passive: false });\n this.destroyFuncs.push(function () {\n _this.eElement.removeEventListener(\"touchstart\", startListener, { passive: true });\n _this.eElement.removeEventListener(\"touchmove\", moveListener, { passive: true });\n _this.eElement.removeEventListener(\"touchend\", endListener, { passive: false });\n });\n }\n TouchListener.prototype.getActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n var matches = touchList[i].identifier === this.touchStart.identifier;\n if (matches) {\n return touchList[i];\n }\n }\n return null;\n };\n TouchListener.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n TouchListener.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n TouchListener.prototype.onTouchStart = function (touchEvent) {\n var _this = this;\n // only looking at one touch point at any time\n if (this.touching) {\n return;\n }\n this.touchStart = touchEvent.touches[0];\n this.touching = true;\n this.moved = false;\n var touchStartCopy = this.touchStart;\n window.setTimeout(function () {\n var touchesMatch = _this.touchStart === touchStartCopy;\n if (_this.touching && touchesMatch && !_this.moved) {\n _this.moved = true;\n var event_1 = {\n type: TouchListener.EVENT_LONG_TAP,\n touchStart: _this.touchStart,\n touchEvent: touchEvent\n };\n _this.eventService.dispatchEvent(event_1);\n }\n }, 500);\n };\n TouchListener.prototype.onTouchMove = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n var touch = this.getActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n var eventIsFarAway = !areEventsNear(touch, this.touchStart, 4);\n if (eventIsFarAway) {\n this.moved = true;\n }\n };\n TouchListener.prototype.onTouchEnd = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n if (!this.moved) {\n var event_2 = {\n type: TouchListener.EVENT_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_2);\n this.checkForDoubleTap();\n }\n // stops the tap from also been processed as a mouse click\n if (this.preventMouseClick) {\n touchEvent.preventDefault();\n }\n this.touching = false;\n };\n TouchListener.prototype.checkForDoubleTap = function () {\n var now = new Date().getTime();\n if (this.lastTapTime && this.lastTapTime > 0) {\n // if previous tap, see if duration is short enough to be considered double tap\n var interval = now - this.lastTapTime;\n if (interval > TouchListener.DOUBLE_TAP_MILLIS) {\n // dispatch double tap event\n var event_3 = {\n type: TouchListener.EVENT_DOUBLE_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_3);\n // this stops a tripple tap ending up as two double taps\n this.lastTapTime = null;\n }\n else {\n this.lastTapTime = now;\n }\n }\n else {\n this.lastTapTime = now;\n }\n };\n TouchListener.prototype.destroy = function () {\n this.destroyFuncs.forEach(function (func) { return func(); });\n };\n TouchListener.EVENT_TAP = \"tap\";\n TouchListener.EVENT_DOUBLE_TAP = \"doubleTap\";\n TouchListener.EVENT_LONG_TAP = \"longTap\";\n TouchListener.DOUBLE_TAP_MILLIS = 500;\n return TouchListener;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderComp = /** @class */ (function (_super) {\n __extends$r(HeaderComp, _super);\n function HeaderComp() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastMovingChanged = 0;\n return _this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderComp.prototype.refresh = function (params) {\n this.params = params;\n // if template changed, then recreate the whole comp, the code required to manage\n // a changing template is to difficult for what it's worth.\n if (this.workOutTemplate() != this.currentTemplate) {\n return false;\n }\n if (this.workOutShowMenu() != this.currentShowMenu) {\n return false;\n }\n if (this.workOutSort() != this.currentSort) {\n return false;\n }\n this.setDisplayName(params);\n return true;\n };\n HeaderComp.prototype.workOutTemplate = function () {\n var template = firstExistingValue(this.params.template, HeaderComp.TEMPLATE);\n // take account of any newlines & whitespace before/after the actual template\n template = template && template.trim ? template.trim() : template;\n return template;\n };\n HeaderComp.prototype.init = function (params) {\n this.params = params;\n this.currentTemplate = this.workOutTemplate();\n this.setTemplate(this.currentTemplate);\n this.setupTap();\n this.setupIcons(params.column);\n this.setMenu();\n this.setupSort();\n this.setupFilterIcon();\n this.setDisplayName(params);\n };\n HeaderComp.prototype.setDisplayName = function (params) {\n if (this.currentDisplayName != params.displayName) {\n this.currentDisplayName = params.displayName;\n var displayNameSanitised = escapeString(this.currentDisplayName);\n if (this.eText) {\n this.eText.innerHTML = displayNameSanitised;\n }\n }\n };\n HeaderComp.prototype.setupIcons = function (column) {\n this.addInIcon('sortAscending', this.eSortAsc, column);\n this.addInIcon('sortDescending', this.eSortDesc, column);\n this.addInIcon('sortUnSort', this.eSortNone, column);\n this.addInIcon('menu', this.eMenu, column);\n this.addInIcon('filter', this.eFilter, column);\n };\n HeaderComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = createIconNoSpan(iconName, this.gridOptionsWrapper, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n };\n HeaderComp.prototype.setupTap = function () {\n var _this = this;\n var options = this.gridOptionsWrapper;\n if (options.isSuppressTouch()) {\n return;\n }\n var touchListener = new TouchListener(this.getGui(), true);\n var suppressMenuHide = options.isSuppressMenuHide();\n var tapMenuButton = suppressMenuHide && exists(this.eMenu);\n var menuTouchListener = tapMenuButton ? new TouchListener(this.eMenu, true) : touchListener;\n if (this.params.enableMenu) {\n var eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';\n var showMenuFn = function (event) {\n options.getApi().showColumnMenuAfterMouseClick(_this.params.column, event.touchStart);\n };\n this.addManagedListener(menuTouchListener, TouchListener[eventType], showMenuFn);\n }\n if (this.params.enableSorting) {\n var tapListener = function (event) {\n var target = event.touchStart.target;\n // When suppressMenuHide is true, a tap on the menu icon will bubble up\n // to the header container, in that case we should not sort\n if (suppressMenuHide && _this.eMenu.contains(target)) {\n return;\n }\n _this.sortController.progressSort(_this.params.column, false, \"uiColumnSorted\");\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, tapListener);\n }\n // if tapMenuButton is true `touchListener` and `menuTouchListener` are different\n // so we need to make sure to destroy both listeners here\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n if (tapMenuButton) {\n this.addDestroyFunc(function () { return menuTouchListener.destroy(); });\n }\n };\n HeaderComp.prototype.workOutShowMenu = function () {\n // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/\n // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok\n // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide\n // is false (default) user will need to use longpress to display the menu.\n var menuHides = !this.gridOptionsWrapper.isSuppressMenuHide();\n var onIpadAndMenuHides = isIOSUserAgent() && menuHides;\n var showMenu = this.params.enableMenu && !onIpadAndMenuHides;\n return showMenu;\n };\n HeaderComp.prototype.setMenu = function () {\n var _this = this;\n // if no menu provided in template, do nothing\n if (!this.eMenu) {\n return;\n }\n this.currentShowMenu = this.workOutShowMenu();\n if (!this.currentShowMenu) {\n removeFromParent(this.eMenu);\n return;\n }\n var suppressMenuHide = this.gridOptionsWrapper.isSuppressMenuHide();\n this.addManagedListener(this.eMenu, 'click', function () { return _this.showMenu(_this.eMenu); });\n this.eMenu.classList.toggle('ag-header-menu-always-show', suppressMenuHide);\n };\n HeaderComp.prototype.showMenu = function (eventSource) {\n if (!eventSource) {\n eventSource = this.eMenu;\n }\n this.menuFactory.showMenuAfterButtonClick(this.params.column, eventSource, 'columnMenu');\n };\n HeaderComp.prototype.removeSortIcons = function () {\n removeFromParent(this.eSortAsc);\n removeFromParent(this.eSortDesc);\n removeFromParent(this.eSortNone);\n removeFromParent(this.eSortOrder);\n };\n HeaderComp.prototype.workOutSort = function () {\n return this.params.enableSorting;\n };\n HeaderComp.prototype.setupSort = function () {\n var _this = this;\n this.currentSort = this.params.enableSorting;\n if (!this.currentSort) {\n this.removeSortIcons();\n return;\n }\n var sortUsingCtrl = this.gridOptionsWrapper.isMultiSortKeyCtrl();\n // keep track of last time the moving changed flag was set\n this.addManagedListener(this.params.column, Column.EVENT_MOVING_CHANGED, function () {\n _this.lastMovingChanged = new Date().getTime();\n });\n // add the event on the header, so when clicked, we do sorting\n if (this.eLabel) {\n this.addManagedListener(this.eLabel, 'click', function (event) {\n // sometimes when moving a column via dragging, this was also firing a clicked event.\n // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076\n // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)\n var moving = _this.params.column.isMoving();\n var nowTime = new Date().getTime();\n // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn\n var movedRecently = (nowTime - _this.lastMovingChanged) < 50;\n var columnMoving = moving || movedRecently;\n if (!columnMoving) {\n var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;\n _this.params.progressSort(multiSort);\n }\n });\n }\n this.addManagedListener(this.params.column, Column.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.onSortChanged();\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.setMultiSortOrder.bind(this));\n this.setMultiSortOrder();\n };\n HeaderComp.prototype.onSortChanged = function () {\n this.addOrRemoveCssClass('ag-header-cell-sorted-asc', this.params.column.isSortAscending());\n this.addOrRemoveCssClass('ag-header-cell-sorted-desc', this.params.column.isSortDescending());\n this.addOrRemoveCssClass('ag-header-cell-sorted-none', this.params.column.isSortNone());\n if (this.eSortAsc) {\n this.eSortAsc.classList.toggle('ag-hidden', !this.params.column.isSortAscending());\n }\n if (this.eSortDesc) {\n this.eSortDesc.classList.toggle('ag-hidden', !this.params.column.isSortDescending());\n }\n if (this.eSortNone) {\n var alwaysHideNoSort = !this.params.column.getColDef().unSortIcon && !this.gridOptionsWrapper.isUnSortIcon();\n this.eSortNone.classList.toggle('ag-hidden', alwaysHideNoSort || !this.params.column.isSortNone());\n }\n };\n // we listen here for global sort events, NOT column sort events, as we want to do this\n // when sorting has been set on all column (if we listened just for our col (where we\n // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.\n HeaderComp.prototype.setMultiSortOrder = function () {\n if (!this.eSortOrder) {\n return;\n }\n var col = this.params.column;\n var allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();\n var indexThisCol = allColumnsWithSorting.indexOf(col);\n var moreThanOneColSorting = allColumnsWithSorting.length > 1;\n var showIndex = col.isSorting() && moreThanOneColSorting;\n setDisplayed(this.eSortOrder, showIndex);\n if (indexThisCol >= 0) {\n this.eSortOrder.innerHTML = (indexThisCol + 1).toString();\n }\n else {\n clearElement(this.eSortOrder);\n }\n };\n HeaderComp.prototype.setupFilterIcon = function () {\n if (!this.eFilter) {\n return;\n }\n this.addManagedListener(this.params.column, Column.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.onFilterChanged();\n };\n HeaderComp.prototype.onFilterChanged = function () {\n var filterPresent = this.params.column.isFilterActive();\n this.eFilter.classList.toggle('ag-hidden', !filterPresent);\n };\n HeaderComp.TEMPLATE = \"
\\n \\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\";\n __decorate$q([\n Autowired('sortController')\n ], HeaderComp.prototype, \"sortController\", void 0);\n __decorate$q([\n Autowired('menuFactory')\n ], HeaderComp.prototype, \"menuFactory\", void 0);\n __decorate$q([\n RefSelector('eFilter')\n ], HeaderComp.prototype, \"eFilter\", void 0);\n __decorate$q([\n RefSelector('eSortAsc')\n ], HeaderComp.prototype, \"eSortAsc\", void 0);\n __decorate$q([\n RefSelector('eSortDesc')\n ], HeaderComp.prototype, \"eSortDesc\", void 0);\n __decorate$q([\n RefSelector('eSortNone')\n ], HeaderComp.prototype, \"eSortNone\", void 0);\n __decorate$q([\n RefSelector('eSortOrder')\n ], HeaderComp.prototype, \"eSortOrder\", void 0);\n __decorate$q([\n RefSelector('eMenu')\n ], HeaderComp.prototype, \"eMenu\", void 0);\n __decorate$q([\n RefSelector('eLabel')\n ], HeaderComp.prototype, \"eLabel\", void 0);\n __decorate$q([\n RefSelector('eText')\n ], HeaderComp.prototype, \"eText\", void 0);\n return HeaderComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupComp = /** @class */ (function (_super) {\n __extends$s(HeaderGroupComp, _super);\n function HeaderGroupComp() {\n return _super.call(this, HeaderGroupComp.TEMPLATE) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderGroupComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderGroupComp.prototype.init = function (params) {\n this.params = params;\n this.checkWarnings();\n this.setupLabel();\n this.addGroupExpandIcon();\n this.setupExpandIcons();\n };\n HeaderGroupComp.prototype.checkWarnings = function () {\n var paramsAny = this.params;\n if (paramsAny.template) {\n var message_1 = \"AG Grid: A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)\";\n doOnce(function () { return console.warn(message_1); }, 'HeaderGroupComp.templateNotSupported');\n }\n };\n HeaderGroupComp.prototype.setupExpandIcons = function () {\n var _this = this;\n this.addInIcon(\"columnGroupOpened\", \"agOpened\");\n this.addInIcon(\"columnGroupClosed\", \"agClosed\");\n var expandAction = function (event) {\n if (isStopPropagationForAgGrid(event)) {\n return;\n }\n var newExpandedValue = !_this.params.columnGroup.isExpanded();\n _this.columnModel.setColumnGroupOpened(_this.params.columnGroup.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n };\n this.addTouchAndClickListeners(this.eCloseIcon, expandAction);\n this.addTouchAndClickListeners(this.eOpenIcon, expandAction);\n var stopPropagationAction = function (event) {\n stopPropagationForAgGrid(event);\n };\n // adding stopPropagation to the double click for the icons prevents double click action happening\n // when the icons are clicked. if the icons are double clicked, then the groups should open and\n // then close again straight away. if we also listened to double click, then the group would open,\n // close, then open, which is not what we want. double click should only action if the user double\n // clicks outside of the icons.\n this.addManagedListener(this.eCloseIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.eOpenIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.getGui(), \"dblclick\", expandAction);\n this.updateIconVisibility();\n var providedColumnGroup = this.params.columnGroup.getProvidedColumnGroup();\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));\n };\n HeaderGroupComp.prototype.addTouchAndClickListeners = function (eElement, action) {\n var touchListener = new TouchListener(eElement, true);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, action);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n this.addManagedListener(eElement, \"click\", action);\n };\n HeaderGroupComp.prototype.updateIconVisibility = function () {\n var columnGroup = this.params.columnGroup;\n if (columnGroup.isExpandable()) {\n var expanded = this.params.columnGroup.isExpanded();\n setDisplayed(this.eOpenIcon, expanded);\n setDisplayed(this.eCloseIcon, !expanded);\n }\n else {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n }\n };\n HeaderGroupComp.prototype.addInIcon = function (iconName, refName) {\n var eIcon = createIconNoSpan(iconName, this.gridOptionsWrapper, null);\n if (eIcon) {\n this.getRefElement(refName).appendChild(eIcon);\n }\n };\n HeaderGroupComp.prototype.addGroupExpandIcon = function () {\n if (!this.params.columnGroup.isExpandable()) {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n return;\n }\n };\n HeaderGroupComp.prototype.setupLabel = function () {\n // no renderer, default text render\n var displayName = this.params.displayName;\n if (exists(displayName)) {\n var displayNameSanitised = escapeString(displayName);\n this.getRefElement('agLabel').innerHTML = displayNameSanitised;\n }\n };\n HeaderGroupComp.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$r([\n Autowired(\"columnModel\")\n ], HeaderGroupComp.prototype, \"columnModel\", void 0);\n __decorate$r([\n RefSelector(\"agOpened\")\n ], HeaderGroupComp.prototype, \"eOpenIcon\", void 0);\n __decorate$r([\n RefSelector(\"agClosed\")\n ], HeaderGroupComp.prototype, \"eCloseIcon\", void 0);\n return HeaderGroupComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PopupComponent = /** @class */ (function (_super) {\n __extends$t(PopupComponent, _super);\n function PopupComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PopupComponent.prototype.isPopup = function () {\n return true;\n };\n PopupComponent.prototype.setParentComponent = function (container) {\n container.addCssClass('ag-has-popup');\n _super.prototype.setParentComponent.call(this, container);\n };\n PopupComponent.prototype.destroy = function () {\n var parentComp = this.parentComponent;\n var hasParent = parentComp && parentComp.isAlive();\n if (hasParent) {\n parentComp.getGui().classList.remove('ag-has-popup');\n }\n _super.prototype.destroy.call(this);\n };\n return PopupComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LargeTextCellEditor = /** @class */ (function (_super) {\n __extends$u(LargeTextCellEditor, _super);\n function LargeTextCellEditor() {\n return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;\n }\n LargeTextCellEditor.prototype.init = function (params) {\n this.params = params;\n this.focusAfterAttached = params.cellStartedEdit;\n this.eTextArea\n .setMaxLength(params.maxLength || 200)\n .setCols(params.cols || 60)\n .setRows(params.rows || 10);\n if (exists(params.value)) {\n this.eTextArea.setValue(params.value.toString(), true);\n }\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n };\n LargeTextCellEditor.prototype.onKeyDown = function (event) {\n var key = event.key;\n if (key === KeyCode.LEFT ||\n key === KeyCode.UP ||\n key === KeyCode.RIGHT ||\n key === KeyCode.DOWN ||\n (event.shiftKey && key === KeyCode.ENTER)) { // shift+enter allows for newlines\n event.stopPropagation();\n }\n };\n LargeTextCellEditor.prototype.afterGuiAttached = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (this.focusAfterAttached) {\n this.eTextArea.getFocusableElement().focus();\n }\n };\n LargeTextCellEditor.prototype.getValue = function () {\n return this.params.parseValue(this.eTextArea.getValue());\n };\n LargeTextCellEditor.TEMPLATE = \"
\\n \\n
\";\n __decorate$s([\n RefSelector(\"eTextArea\")\n ], LargeTextCellEditor.prototype, \"eTextArea\", void 0);\n return LargeTextCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectCellEditor = /** @class */ (function (_super) {\n __extends$v(SelectCellEditor, _super);\n function SelectCellEditor() {\n var _this = _super.call(this, '
') || this;\n _this.startedByEnter = false;\n return _this;\n }\n SelectCellEditor.prototype.init = function (params) {\n var _this = this;\n this.focusAfterAttached = params.cellStartedEdit;\n if (missing(params.values)) {\n console.warn('AG Grid: no values found for select cellEditor');\n return;\n }\n this.startedByEnter = params.eventKey != null ? params.eventKey === KeyCode.ENTER : false;\n var hasValue = false;\n params.values.forEach(function (value) {\n var option = { value: value };\n var valueFormatted = _this.valueFormatterService.formatValue(params.column, null, null, value);\n var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n option.text = valueFormattedExits ? valueFormatted : value;\n _this.eSelect.addOption(option);\n hasValue = hasValue || params.value === value;\n });\n if (hasValue) {\n this.eSelect.setValue(params.value, true);\n }\n else if (params.values.length) {\n this.eSelect.setValue(params.values[0], true);\n }\n // we don't want to add this if full row editing, otherwise selecting will stop the\n // full row editing.\n if (!this.gridOptionsWrapper.isFullRowEdit()) {\n this.eSelect.onValueChange(function () { return params.stopEditing(); });\n }\n };\n SelectCellEditor.prototype.afterGuiAttached = function () {\n if (this.focusAfterAttached) {\n this.eSelect.getFocusableElement().focus();\n }\n if (this.startedByEnter) {\n this.eSelect.showPicker();\n }\n };\n SelectCellEditor.prototype.focusIn = function () {\n this.eSelect.getFocusableElement().focus();\n };\n SelectCellEditor.prototype.getValue = function () {\n return this.eSelect.getValue();\n };\n SelectCellEditor.prototype.isPopup = function () {\n return false;\n };\n __decorate$t([\n Autowired('valueFormatterService')\n ], SelectCellEditor.prototype, \"valueFormatterService\", void 0);\n __decorate$t([\n RefSelector('eSelect')\n ], SelectCellEditor.prototype, \"eSelect\", void 0);\n return SelectCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PopupSelectCellEditor = /** @class */ (function (_super) {\n __extends$w(PopupSelectCellEditor, _super);\n function PopupSelectCellEditor() {\n var _this = _super.call(this) || this;\n doOnce(function () { return console.warn('AG Grid: The PopupSelectCellEditor (agPopupSelectCellEditor) is deprecated. Instead use {cellEditor: \"agSelectCellEditor\", cellEditorPopup: true} '); }, 'PopupSelectCellEditor.deprecated');\n return _this;\n }\n PopupSelectCellEditor.prototype.isPopup = function () {\n return true;\n };\n return PopupSelectCellEditor;\n}(SelectCellEditor));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TextCellEditor = /** @class */ (function (_super) {\n __extends$x(TextCellEditor, _super);\n function TextCellEditor() {\n return _super.call(this, TextCellEditor.TEMPLATE) || this;\n }\n TextCellEditor.prototype.init = function (params) {\n this.params = params;\n var eInput = this.eInput;\n var startValue;\n // cellStartedEdit is only false if we are doing fullRow editing\n if (params.cellStartedEdit) {\n this.focusAfterAttached = true;\n if (params.eventKey === KeyCode.BACKSPACE || params.eventKey === KeyCode.DELETE) {\n startValue = '';\n }\n else if (params.charPress) {\n startValue = params.charPress;\n }\n else {\n startValue = this.getStartValue(params);\n if (params.eventKey !== KeyCode.F2) {\n this.highlightAllOnFocus = true;\n }\n }\n }\n else {\n this.focusAfterAttached = false;\n startValue = this.getStartValue(params);\n }\n if (startValue != null) {\n eInput.setValue(startValue, true);\n }\n this.addManagedListener(eInput.getGui(), 'keydown', function (event) {\n var key = event.key;\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n event.preventDefault();\n }\n });\n };\n TextCellEditor.prototype.afterGuiAttached = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var eInput = this.eInput;\n eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (!this.focusAfterAttached) {\n return;\n }\n // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input\n // to be focused before setSelectionRange will work. But it triggers a bug in Safari where\n // explicitly focusing then blurring an empty field will cause the parent container to scroll.\n if (!isBrowserSafari()) {\n eInput.getFocusableElement().focus();\n }\n var inputEl = eInput.getInputElement();\n if (this.highlightAllOnFocus) {\n inputEl.select();\n }\n else {\n // when we started editing, we want the caret at the end, not the start.\n // this comes into play in two scenarios:\n // a) when user hits F2\n // b) when user hits a printable character\n var value = eInput.getValue();\n var len = (exists(value) && value.length) || 0;\n if (len) {\n inputEl.setSelectionRange(len, len);\n }\n }\n };\n // gets called when tabbing trough cells and in full row edit mode\n TextCellEditor.prototype.focusIn = function () {\n var eInput = this.eInput;\n var focusEl = eInput.getFocusableElement();\n var inputEl = eInput.getInputElement();\n focusEl.focus();\n inputEl.select();\n };\n TextCellEditor.prototype.getValue = function () {\n var eInput = this.eInput;\n return this.params.parseValue(eInput.getValue());\n };\n TextCellEditor.prototype.getStartValue = function (params) {\n var formatValue = params.useFormatter || params.column.getColDef().refData;\n return formatValue ? params.formatValue(params.value) : params.value;\n };\n TextCellEditor.prototype.isPopup = function () {\n return false;\n };\n TextCellEditor.TEMPLATE = '
';\n __decorate$u([\n RefSelector('eInput')\n ], TextCellEditor.prototype, \"eInput\", void 0);\n return TextCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PopupTextCellEditor = /** @class */ (function (_super) {\n __extends$y(PopupTextCellEditor, _super);\n function PopupTextCellEditor() {\n var _this = _super.call(this) || this;\n doOnce(function () { return console.warn('AG Grid: The PopupTextCellEditor (agPopupTextCellEditor) is deprecated. Instead use {cellEditor: \"agTextCellEditor\", cellEditorPopup: true} '); }, 'PopupTextCellEditor.deprecated');\n return _this;\n }\n PopupTextCellEditor.prototype.isPopup = function () {\n return true;\n };\n return PopupTextCellEditor;\n}(TextCellEditor));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ARROW_UP = '\\u2191';\nvar ARROW_DOWN = '\\u2193';\nvar AnimateShowChangeCellRenderer = /** @class */ (function (_super) {\n __extends$z(AnimateShowChangeCellRenderer, _super);\n function AnimateShowChangeCellRenderer() {\n var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n return _this;\n }\n AnimateShowChangeCellRenderer.prototype.init = function (params) {\n // this.params = params;\n this.eValue = this.queryForHtmlElement('.ag-value-change-value');\n this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');\n this.refresh(params);\n };\n AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {\n var absDelta = Math.abs(delta);\n var valueFormatted = params.formatValue(absDelta);\n var valueToUse = exists(valueFormatted) ? valueFormatted : absDelta;\n var deltaUp = (delta >= 0);\n if (deltaUp) {\n this.eDelta.innerHTML = ARROW_UP + valueToUse;\n }\n else {\n // because negative, use ABS to remove sign\n this.eDelta.innerHTML = ARROW_DOWN + valueToUse;\n }\n this.eDelta.classList.toggle('ag-value-change-delta-up', deltaUp);\n this.eDelta.classList.toggle('ag-value-change-delta-down', !deltaUp);\n };\n AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {\n var _this = this;\n // the refreshCount makes sure that if the value updates again while\n // the below timer is waiting, then the below timer will realise it\n // is not the most recent and will not try to remove the delta value.\n this.refreshCount++;\n var refreshCountCopy = this.refreshCount;\n window.setTimeout(function () {\n if (refreshCountCopy === _this.refreshCount) {\n _this.hideDeltaValue();\n }\n }, 2000);\n };\n AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {\n this.eValue.classList.remove('ag-value-change-value-highlight');\n clearElement(this.eDelta);\n };\n AnimateShowChangeCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (value === this.lastValue) {\n return false;\n }\n if (exists(params.valueFormatted)) {\n this.eValue.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eValue.innerHTML = value;\n }\n else {\n clearElement(this.eValue);\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n if (typeof value === 'number' && typeof this.lastValue === 'number') {\n var delta = value - this.lastValue;\n this.showDelta(params, delta);\n }\n // highlight the current value, but only if it's not new, otherwise it\n // would get highlighted first time the value is shown\n if (this.lastValue) {\n this.eValue.classList.add('ag-value-change-value-highlight');\n }\n this.setTimerToRemoveDelta();\n this.lastValue = value;\n return true;\n };\n AnimateShowChangeCellRenderer.TEMPLATE = '' +\n '' +\n '' +\n '';\n __decorate$v([\n Autowired('filterManager')\n ], AnimateShowChangeCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateShowChangeCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AnimateSlideCellRenderer = /** @class */ (function (_super) {\n __extends$A(AnimateSlideCellRenderer, _super);\n function AnimateSlideCellRenderer() {\n var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');\n return _this;\n }\n AnimateSlideCellRenderer.prototype.init = function (params) {\n this.refresh(params);\n };\n AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {\n var _this = this;\n this.refreshCount++;\n // below we keep checking this, and stop working on the animation\n // if it no longer matches - this means another animation has started\n // and this one is stale.\n var refreshCountCopy = this.refreshCount;\n // if old animation, remove it\n if (this.ePrevious) {\n this.getGui().removeChild(this.ePrevious);\n }\n this.ePrevious = loadTemplate('');\n this.ePrevious.innerHTML = this.eCurrent.innerHTML;\n this.getGui().insertBefore(this.ePrevious, this.eCurrent);\n // having timeout of 0 allows use to skip to the next css turn,\n // so we know the previous css classes have been applied. so the\n // complex set of setTimeout below creates the animation\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.ePrevious.classList.add('ag-value-slide-out-end');\n }, 50);\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.getGui().removeChild(_this.ePrevious);\n _this.ePrevious = null;\n }, 3000);\n };\n AnimateSlideCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (missing(value)) {\n value = '';\n }\n if (value === this.lastValue) {\n return false;\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n this.addSlideAnimation();\n this.lastValue = value;\n if (exists(params.valueFormatted)) {\n this.eCurrent.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eCurrent.innerHTML = value;\n }\n else {\n clearElement(this.eCurrent);\n }\n return true;\n };\n AnimateSlideCellRenderer.TEMPLATE = \"\\n \\n \";\n __decorate$w([\n Autowired('filterManager')\n ], AnimateSlideCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateSlideCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (RowHighlightPosition) {\n RowHighlightPosition[RowHighlightPosition[\"Above\"] = 0] = \"Above\";\n RowHighlightPosition[RowHighlightPosition[\"Below\"] = 1] = \"Below\";\n})(exports.RowHighlightPosition || (exports.RowHighlightPosition = {}));\nvar RowNode = /** @class */ (function () {\n function RowNode(beans) {\n /** The current row index. If the row is filtered out or in a collapsed group, this value will be `null`. */\n this.rowIndex = null;\n /** The key for the group eg Ireland, UK, USA */\n this.key = null;\n /** Children mapped by the pivot columns. */\n this.childrenMapped = {};\n /**\n * This will be `true` if it has a rowIndex assigned, otherwise `false`.\n */\n this.displayed = false;\n /** The row top position in pixels. */\n this.rowTop = null;\n /** The top pixel for this row last time, makes sense if data set was ordered or filtered,\n * it is used so new rows can animate in from their old position. */\n this.oldRowTop = null;\n /** `true` by default - can be overridden via gridOptions.isRowSelectable(rowNode) */\n this.selectable = true;\n /** Used by sorting service - to give deterministic sort to groups. Previously we\n * just id for this, however id is a string and had slower sorting compared to numbers. */\n this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;\n /** When one or more Columns are using autoHeight, this keeps track of height of each autoHeight Cell,\n * indexed by the Column ID. */\n this.__autoHeights = {};\n /** `true` when nodes with the same id are being removed and added as part of the same batch transaction */\n this.alreadyRendered = false;\n this.highlighted = null;\n this.selected = false;\n this.onRowHeightChangedDebounced = debounce(this.onRowHeightChanged.bind(this), 100);\n this.beans = beans;\n }\n /** Replaces the data on the `rowNode`. When complete, the grid will refresh the the entire rendered row if it is showing. */\n RowNode.prototype.setData = function (data) {\n this.setDataCommon(data, false);\n };\n // similar to setRowData, however it is expected that the data is the same data item. this\n // is intended to be used with Redux type stores, where the whole data can be changed. we are\n // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the\n // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving\n // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).\n RowNode.prototype.updateData = function (data) {\n this.setDataCommon(data, true);\n };\n RowNode.prototype.setDataCommon = function (data, update) {\n var oldData = this.data;\n this.data = data;\n this.beans.valueCache.onDataChanged();\n this.updateDataOnDetailNode();\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, update);\n this.dispatchLocalEvent(event);\n };\n // when we are doing master / detail, the detail node is lazy created, but then kept around.\n // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data\n // in sync, otherwise expand/collapse of the detail would still show the old values.\n RowNode.prototype.updateDataOnDetailNode = function () {\n if (this.detailNode) {\n this.detailNode.data = this.data;\n }\n };\n RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {\n return {\n type: RowNode.EVENT_DATA_CHANGED,\n node: this,\n oldData: oldData,\n newData: newData,\n update: update\n };\n };\n RowNode.prototype.createLocalRowEvent = function (type) {\n return {\n type: type,\n node: this\n };\n };\n RowNode.prototype.getRowIndexString = function () {\n if (this.rowPinned === Constants.PINNED_TOP) {\n return 't-' + this.rowIndex;\n }\n if (this.rowPinned === Constants.PINNED_BOTTOM) {\n return 'b-' + this.rowIndex;\n }\n return this.rowIndex.toString();\n };\n RowNode.prototype.createDaemonNode = function () {\n var oldNode = new RowNode(this.beans);\n // just copy the id and data, this is enough for the node to be used\n // in the selection controller (the selection controller is the only\n // place where daemon nodes can live).\n oldNode.id = this.id;\n oldNode.data = this.data;\n oldNode.daemon = true;\n oldNode.selected = this.selected;\n oldNode.level = this.level;\n return oldNode;\n };\n RowNode.prototype.setDataAndId = function (data, id) {\n var oldNode = exists(this.id) ? this.createDaemonNode() : null;\n var oldData = this.data;\n this.data = data;\n this.updateDataOnDetailNode();\n this.setId(id);\n this.beans.selectionService.syncInRowNode(this, oldNode);\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n };\n RowNode.prototype.checkRowSelectable = function () {\n var isRowSelectableFunc = this.beans.gridOptionsWrapper.getIsRowSelectableFunc();\n this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);\n };\n RowNode.prototype.setRowSelectable = function (newVal) {\n if (this.selectable !== newVal) {\n this.selectable = newVal;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));\n }\n }\n };\n RowNode.prototype.setId = function (id) {\n // see if user is providing the id's\n var getRowIdFunc = this.beans.gridOptionsWrapper.getRowIdFunc();\n if (getRowIdFunc) {\n // if user is providing the id's, then we set the id only after the data has been set.\n // this is important for virtual pagination and viewport, where empty rows exist.\n if (this.data) {\n // we pass 'true' as we skip this level when generating keys,\n // as we don't always have the key for this level (eg when updating\n // data via transaction on SSRM, we are getting key to look up the\n // RowNode, don't have the RowNode yet, thus no way to get the current key)\n var parentKeys = this.getGroupKeys(true);\n this.id = getRowIdFunc({\n data: this.data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: this.level\n });\n // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that\n // it has 'startsWith' in case the user provided a number.\n if (this.id !== null && typeof this.id === 'string' && this.id.startsWith(RowNode.ID_PREFIX_ROW_GROUP)) {\n console.error(\"AG Grid: Row IDs cannot start with \" + RowNode.ID_PREFIX_ROW_GROUP + \", this is a reserved prefix for AG Grid's row grouping feature.\");\n }\n // force id to be a string\n if (this.id !== null && typeof this.id !== 'string') {\n this.id = '' + this.id;\n }\n }\n else {\n // this can happen if user has set blank into the rowNode after the row previously\n // having data. this happens in virtual page row model, when data is delete and\n // the page is refreshed.\n this.id = undefined;\n }\n }\n else {\n this.id = id;\n }\n };\n RowNode.prototype.getGroupKeys = function (excludeSelf) {\n if (excludeSelf === void 0) { excludeSelf = false; }\n var keys = [];\n var pointer = this;\n if (excludeSelf) {\n pointer = pointer.parent;\n }\n while (pointer && pointer.level >= 0) {\n keys.push(pointer.key);\n pointer = pointer.parent;\n }\n keys.reverse();\n return keys;\n };\n RowNode.prototype.isPixelInRange = function (pixel) {\n if (!exists(this.rowTop) || !exists(this.rowHeight)) {\n return false;\n }\n return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);\n };\n RowNode.prototype.setFirstChild = function (firstChild) {\n if (this.firstChild === firstChild) {\n return;\n }\n this.firstChild = firstChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setLastChild = function (lastChild) {\n if (this.lastChild === lastChild) {\n return;\n }\n this.lastChild = lastChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setChildIndex = function (childIndex) {\n if (this.childIndex === childIndex) {\n return;\n }\n this.childIndex = childIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setRowTop = function (rowTop) {\n this.oldRowTop = this.rowTop;\n if (this.rowTop === rowTop) {\n return;\n }\n this.rowTop = rowTop;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));\n }\n this.setDisplayed(rowTop !== null);\n };\n RowNode.prototype.clearRowTopAndRowIndex = function () {\n this.oldRowTop = null;\n this.setRowTop(null);\n this.setRowIndex(null);\n };\n RowNode.prototype.setDisplayed = function (displayed) {\n if (this.displayed === displayed) {\n return;\n }\n this.displayed = displayed;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));\n }\n };\n RowNode.prototype.setDragging = function (dragging) {\n if (this.dragging === dragging) {\n return;\n }\n this.dragging = dragging;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));\n }\n };\n RowNode.prototype.setHighlighted = function (highlighted) {\n if (highlighted === this.highlighted) {\n return;\n }\n this.highlighted = highlighted;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));\n }\n };\n RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {\n if (this.allChildrenCount === allChildrenCount) {\n return;\n }\n this.allChildrenCount = allChildrenCount;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));\n }\n };\n RowNode.prototype.setMaster = function (master) {\n if (this.master === master) {\n return;\n }\n // if changing AWAY from master, then unexpand, otherwise\n // next time it's shown it is expanded again\n if (this.master && !master) {\n this.expanded = false;\n }\n this.master = master;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));\n }\n };\n RowNode.prototype.setGroup = function (group) {\n if (this.group === group) {\n return;\n }\n // if we used to be a group, and no longer, then close the node\n if (this.group && !group) {\n this.expanded = false;\n }\n this.group = group;\n this.updateHasChildren();\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_GROUP_CHANGED));\n }\n };\n /**\n * Sets the row height.\n * Call if you want to change the height initially assigned to the row.\n * After calling, you must call `api.onRowHeightChanged()` so the grid knows it needs to work out the placement of the rows. */\n RowNode.prototype.setRowHeight = function (rowHeight, estimated) {\n if (estimated === void 0) { estimated = false; }\n this.rowHeight = rowHeight;\n this.rowHeightEstimated = estimated;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));\n }\n };\n RowNode.prototype.setRowAutoHeight = function (cellHeight, column) {\n if (!this.__autoHeights) {\n this.__autoHeights = {};\n }\n var autoHeights = this.__autoHeights;\n autoHeights[column.getId()] = cellHeight;\n if (cellHeight != null) {\n if (this.checkAutoHeightsDebounced == null) {\n this.checkAutoHeightsDebounced = debounce(this.checkAutoHeights.bind(this), 1);\n }\n this.checkAutoHeightsDebounced();\n }\n };\n RowNode.prototype.checkAutoHeights = function () {\n var notAllPresent = false;\n var nonePresent = true;\n var newRowHeight = 0;\n var autoHeights = this.__autoHeights;\n if (autoHeights == null) {\n return;\n }\n var displayedAutoHeightCols = this.beans.columnModel.getAllDisplayedAutoHeightCols();\n displayedAutoHeightCols.forEach(function (col) {\n var cellHeight = autoHeights[col.getId()];\n if (cellHeight == null) {\n notAllPresent = true;\n return;\n }\n nonePresent = false;\n if (cellHeight > newRowHeight) {\n newRowHeight = cellHeight;\n }\n });\n if (notAllPresent) {\n return;\n }\n // we take min of 10, so we don't adjust for empty rows. if <10, we put to default.\n // this prevents the row starting very small when waiting for async components,\n // which would then mean the grid squashes in far to many rows (as small heights\n // means more rows fit in) which looks crap. so best ignore small values and assume\n // we are still waiting for values to render.\n if (nonePresent || newRowHeight < 10) {\n newRowHeight = this.beans.gridOptionsWrapper.getRowHeightForNode(this).height;\n }\n if (newRowHeight == this.rowHeight) {\n return;\n }\n this.setRowHeight(newRowHeight);\n this.onRowHeightChangedDebounced();\n };\n /** This method is debounced. It is used for row auto-height. If we don't debounce,\n * then the Row Models will end up recalculating each row position\n * for each row height change and result in the Row Renderer laying out rows.\n * This is particularly bad if using print layout, and showing eg 1,000 rows,\n * each row will change it's height, causing Row Model to update 1,000 times.\n */\n RowNode.prototype.onRowHeightChanged = function () {\n var rowModel = this.beans.rowModel;\n if (rowModel.onRowHeightChanged) {\n rowModel.onRowHeightChanged();\n }\n };\n RowNode.prototype.setRowIndex = function (rowIndex) {\n if (this.rowIndex === rowIndex) {\n return;\n }\n this.rowIndex = rowIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setUiLevel = function (uiLevel) {\n if (this.uiLevel === uiLevel) {\n return;\n }\n this.uiLevel = uiLevel;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));\n }\n };\n RowNode.prototype.setExpanded = function (expanded, e) {\n if (this.expanded === expanded) {\n return;\n }\n this.expanded = expanded;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));\n }\n var event = Object.assign({}, this.createGlobalRowEvent(Events.EVENT_ROW_GROUP_OPENED), {\n expanded: expanded,\n event: e || null\n });\n this.beans.rowNodeEventThrottle.dispatchExpanded(event);\n // when using footers we need to refresh the group row, as the aggregation\n // values jump between group and footer\n if (this.beans.gridOptionsWrapper.isGroupIncludeFooter()) {\n this.beans.rowRenderer.refreshCells({ rowNodes: [this] });\n }\n };\n RowNode.prototype.createGlobalRowEvent = function (type) {\n return {\n type: type,\n node: this,\n data: this.data,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi()\n };\n };\n RowNode.prototype.dispatchLocalEvent = function (event) {\n if (this.eventService) {\n this.eventService.dispatchEvent(event);\n }\n };\n /**\n * Replaces the value on the `rowNode` for the specified column. When complete,\n * the grid will refresh the rendered cell on the required row only.\n *\n * @param colKey The column where the value should be updated\n * @param newValue The new value\n * @param eventSource The source of the event\n * @returns `True` if the value was changed, otherwise `False`.\n */\n RowNode.prototype.setDataValue = function (colKey, newValue, eventSource) {\n // When it is done via the editors, no 'cell changed' event gets fired, as it's assumed that\n // the cell knows about the change given it's in charge of the editing.\n // this method is for the client to call, so the cell listens for the change\n // event, and also flashes the cell when the change occurs.\n var column = this.beans.columnModel.getPrimaryColumn(colKey);\n var oldValue = this.beans.valueService.getValue(column, this);\n var valueChanged = this.beans.valueService.setValue(this, column, newValue, eventSource);\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n return valueChanged;\n };\n RowNode.prototype.setGroupValue = function (colKey, newValue) {\n var column = this.beans.columnModel.getGridColumn(colKey);\n if (missing(this.groupData)) {\n this.groupData = {};\n }\n var columnId = column.getColId();\n var oldValue = this.groupData[columnId];\n if (oldValue === newValue) {\n return;\n }\n this.groupData[columnId] = newValue;\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n };\n // sets the data for an aggregation\n RowNode.prototype.setAggData = function (newAggData) {\n var _this = this;\n // find out all keys that could potentially change\n var colIds = getAllKeysInObjects([this.aggData, newAggData]);\n var oldAggData = this.aggData;\n this.aggData = newAggData;\n // if no event service, nobody has registered for events, so no need fire event\n if (this.eventService) {\n colIds.forEach(function (colId) {\n var column = _this.beans.columnModel.getGridColumn(colId);\n var value = _this.aggData ? _this.aggData[colId] : undefined;\n var oldValue = oldAggData ? oldAggData[colId] : undefined;\n _this.dispatchCellChangedEvent(column, value, oldValue);\n });\n }\n };\n RowNode.prototype.updateHasChildren = function () {\n // we need to return true when this.group=true, as this is used by server side row model\n // (as children are lazy loaded and stored in a cache anyway). otherwise we return true\n // if children exist.\n var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);\n if (newValue !== this.__hasChildren) {\n this.__hasChildren = !!newValue;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));\n }\n }\n };\n RowNode.prototype.hasChildren = function () {\n if (this.__hasChildren == null) {\n this.updateHasChildren();\n }\n return this.__hasChildren;\n };\n RowNode.prototype.isEmptyRowGroupNode = function () {\n return this.group && missingOrEmpty(this.childrenAfterGroup);\n };\n RowNode.prototype.dispatchCellChangedEvent = function (column, newValue, oldValue) {\n var cellChangedEvent = {\n type: RowNode.EVENT_CELL_CHANGED,\n node: this,\n column: column,\n newValue: newValue,\n oldValue: oldValue\n };\n this.dispatchLocalEvent(cellChangedEvent);\n };\n /**\n * The first time `quickFilter` runs, the grid creates a one-off string representation of the row.\n * This string is then used for the quick filter instead of hitting each column separately.\n * When you edit, using grid editing, this string gets cleared down.\n * However if you edit without using grid editing, you will need to clear this string down for the row to be updated with the new values.\n * Otherwise new values will not work with the `quickFilter`. */\n RowNode.prototype.resetQuickFilterAggregateText = function () {\n this.quickFilterAggregateText = null;\n };\n RowNode.prototype.isExpandable = function () {\n return (this.hasChildren() && !this.footer) || this.master ? true : false;\n };\n /** Returns:\n * - `true` if node is selected,\n * - `false` if the node isn't selected\n * - `undefined` if it's partially selected (group where not all children are selected). */\n RowNode.prototype.isSelected = function () {\n // for footers, we just return what our sibling selected state is, as cannot select a footer\n if (this.footer) {\n return this.sibling.isSelected();\n }\n return this.selected;\n };\n /** Perform a depth-first search of this node and its children. */\n RowNode.prototype.depthFirstSearch = function (callback) {\n if (this.childrenAfterGroup) {\n this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });\n }\n callback(this);\n };\n // + rowController.updateGroupsInSelection()\n // + selectionController.calculatedSelectedForAllGroupNodes()\n RowNode.prototype.calculateSelectedFromChildren = function () {\n var _a;\n var atLeastOneSelected = false;\n var atLeastOneDeSelected = false;\n var atLeastOneMixed = false;\n var newSelectedValue;\n if (!((_a = this.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n for (var i = 0; i < this.childrenAfterGroup.length; i++) {\n var child = this.childrenAfterGroup[i];\n // skip non-selectable nodes to prevent inconsistent selection values\n if (!child.selectable) {\n continue;\n }\n var childState = child.isSelected();\n switch (childState) {\n case true:\n atLeastOneSelected = true;\n break;\n case false:\n atLeastOneDeSelected = true;\n break;\n default:\n atLeastOneMixed = true;\n break;\n }\n }\n if (atLeastOneMixed) {\n newSelectedValue = undefined;\n }\n else if (atLeastOneSelected && !atLeastOneDeSelected) {\n newSelectedValue = true;\n }\n else if (!atLeastOneSelected && atLeastOneDeSelected) {\n newSelectedValue = false;\n }\n else {\n newSelectedValue = undefined;\n }\n this.selectThisNode(newSelectedValue);\n };\n RowNode.prototype.setSelectedInitialValue = function (selected) {\n this.selected = selected;\n };\n /**\n * Select (or deselect) the node.\n * @param newValue -`true` for selection, `false` for deselection.\n * @param clearSelection - If selecting, then passing `true` will select the node exclusively (i.e. NOT do multi select). If doing deselection, `clearSelection` has no impact.\n * @param suppressFinishActions - Pass `true` to prevent the `selectionChanged` from being fired. Note that the `rowSelected` event will still be fired.\n */\n RowNode.prototype.setSelected = function (newValue, clearSelection, suppressFinishActions) {\n if (clearSelection === void 0) { clearSelection = false; }\n if (suppressFinishActions === void 0) { suppressFinishActions = false; }\n this.setSelectedParams({\n newValue: newValue,\n clearSelection: clearSelection,\n suppressFinishActions: suppressFinishActions,\n rangeSelect: false\n });\n };\n RowNode.prototype.isRowPinned = function () {\n return this.rowPinned === Constants.PINNED_TOP || this.rowPinned === Constants.PINNED_BOTTOM;\n };\n // to make calling code more readable, this is the same method as setSelected except it takes names parameters\n RowNode.prototype.setSelectedParams = function (params) {\n var _a;\n var groupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n var newValue = params.newValue === true;\n var clearSelection = params.clearSelection === true;\n var suppressFinishActions = params.suppressFinishActions === true;\n var rangeSelect = params.rangeSelect === true;\n // groupSelectsFiltered only makes sense when group selects children\n var groupSelectsFiltered = groupSelectsChildren && (params.groupSelectsFiltered === true);\n if (this.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return 0;\n }\n if (this.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return 0;\n }\n // if we are a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n if (this.footer) {\n return this.sibling.setSelectedParams(params);\n }\n if (rangeSelect && this.beans.selectionService.getLastSelectedNode()) {\n var newRowClicked = this.beans.selectionService.getLastSelectedNode() !== this;\n var allowMultiSelect = this.beans.gridOptionsWrapper.isRowSelectionMulti();\n if (newRowClicked && allowMultiSelect) {\n var nodesChanged = this.doRowRangeSelection(params.newValue);\n this.beans.selectionService.setLastSelectedNode(this);\n return nodesChanged;\n }\n }\n var updatedCount = 0;\n // when groupSelectsFiltered, then this node may end up intermediate despite\n // trying to set it to true / false. this group will be calculated further on\n // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it\n // here, otherwise the updatedCount would include it.\n var skipThisNode = groupSelectsFiltered && this.group;\n if (!skipThisNode) {\n var thisNodeWasSelected = this.selectThisNode(newValue);\n if (thisNodeWasSelected) {\n updatedCount++;\n }\n }\n if (groupSelectsChildren && ((_a = this.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n updatedCount += this.selectChildNodes(newValue, groupSelectsFiltered);\n }\n // clear other nodes if not doing multi select\n if (!suppressFinishActions) {\n var clearOtherNodes = newValue && (clearSelection || !this.beans.gridOptionsWrapper.isRowSelectionMulti());\n if (clearOtherNodes) {\n updatedCount += this.beans.selectionService.clearOtherNodes(this);\n }\n // only if we selected something, then update groups and fire events\n if (updatedCount > 0) {\n this.beans.selectionService.updateGroupsFromChildrenSelections();\n // this is the very end of the 'action node', so we are finished all the updates,\n // include any parent / child changes that this method caused\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi\n };\n this.beans.eventService.dispatchEvent(event_1);\n }\n // so if user next does shift-select, we know where to start the selection from\n if (newValue) {\n this.beans.selectionService.setLastSelectedNode(this);\n }\n }\n return updatedCount;\n };\n // selects all rows between this node and the last selected node (or the top if this is the first selection).\n // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by\n // holding down 'shift'.\n RowNode.prototype.doRowRangeSelection = function (value) {\n var _this = this;\n if (value === void 0) { value = true; }\n var groupsSelectChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n var lastSelectedNode = this.beans.selectionService.getLastSelectedNode();\n var nodesToSelect = this.beans.rowModel.getNodesInRangeForSelection(this, lastSelectedNode);\n var updatedCount = 0;\n nodesToSelect.forEach(function (rowNode) {\n if (rowNode.group && groupsSelectChildren || (value === false && _this === rowNode)) {\n return;\n }\n var nodeWasSelected = rowNode.selectThisNode(value);\n if (nodeWasSelected) {\n updatedCount++;\n }\n });\n this.beans.selectionService.updateGroupsFromChildrenSelections();\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi\n };\n this.beans.eventService.dispatchEvent(event);\n return updatedCount;\n };\n RowNode.prototype.isParentOfNode = function (potentialParent) {\n var parentNode = this.parent;\n while (parentNode) {\n if (parentNode === potentialParent) {\n return true;\n }\n parentNode = parentNode.parent;\n }\n return false;\n };\n RowNode.prototype.selectThisNode = function (newValue) {\n // we only check selectable when newValue=true (ie selecting) to allow unselecting values,\n // as selectable is dynamic, need a way to unselect rows when selectable becomes false.\n var selectionNotAllowed = !this.selectable && newValue;\n var selectionNotChanged = this.selected === newValue;\n if (selectionNotAllowed || selectionNotChanged) {\n return false;\n }\n this.selected = newValue;\n if (this.eventService) {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n }\n var event = this.createGlobalRowEvent(Events.EVENT_ROW_SELECTED);\n this.beans.eventService.dispatchEvent(event);\n return true;\n };\n RowNode.prototype.selectChildNodes = function (newValue, groupSelectsFiltered) {\n var children = groupSelectsFiltered ? this.childrenAfterAggFilter : this.childrenAfterGroup;\n if (missing(children)) {\n return 0;\n }\n var updatedCount = 0;\n for (var i = 0; i < children.length; i++) {\n updatedCount += children[i].setSelectedParams({\n newValue: newValue,\n clearSelection: false,\n suppressFinishActions: true,\n groupSelectsFiltered: groupSelectsFiltered\n });\n }\n return updatedCount;\n };\n /** Add an event listener. */\n RowNode.prototype.addEventListener = function (eventType, listener) {\n if (!this.eventService) {\n this.eventService = new EventService();\n }\n this.eventService.addEventListener(eventType, listener);\n };\n /** Remove event listener. */\n RowNode.prototype.removeEventListener = function (eventType, listener) {\n if (!this.eventService) {\n return;\n }\n this.eventService.removeEventListener(eventType, listener);\n if (this.eventService.noRegisteredListenersExist()) {\n this.eventService = null;\n }\n };\n RowNode.prototype.onMouseEnter = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));\n };\n RowNode.prototype.onMouseLeave = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));\n };\n RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {\n var currentRowNode = this;\n var isCandidate = true;\n var foundFirstChildPath = false;\n var nodeToSwapIn = null;\n // if we are hiding groups, then if we are the first child, of the first child,\n // all the way up to the column we are interested in, then we show the group cell.\n while (isCandidate && !foundFirstChildPath) {\n var parentRowNode = currentRowNode.parent;\n var firstChild = exists(parentRowNode) && currentRowNode.firstChild;\n if (firstChild) {\n if (parentRowNode.rowGroupColumn === rowGroupColumn) {\n foundFirstChildPath = true;\n nodeToSwapIn = parentRowNode;\n }\n }\n else {\n isCandidate = false;\n }\n currentRowNode = parentRowNode;\n }\n return foundFirstChildPath ? nodeToSwapIn : null;\n };\n RowNode.prototype.isFullWidthCell = function () {\n var isFullWidthCellFunc = this.beans.gridOptionsWrapper.getIsFullWidthCellFunc();\n return isFullWidthCellFunc ? isFullWidthCellFunc({ rowNode: this }) : false;\n };\n /**\n * Returns the route of the row node. If the Row Node is a group, it returns the route to that Row Node.\n * If the Row Node is not a group, it returns `undefined`.\n */\n RowNode.prototype.getRoute = function () {\n if (this.key == null) {\n return;\n }\n var res = [];\n var pointer = this;\n while (pointer.key != null) {\n res.push(pointer.key);\n pointer = pointer.parent;\n }\n return res.reverse();\n };\n RowNode.ID_PREFIX_ROW_GROUP = 'row-group-';\n RowNode.ID_PREFIX_TOP_PINNED = 't-';\n RowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';\n RowNode.OBJECT_ID_SEQUENCE = 0;\n RowNode.EVENT_ROW_SELECTED = 'rowSelected';\n RowNode.EVENT_DATA_CHANGED = 'dataChanged';\n RowNode.EVENT_CELL_CHANGED = 'cellChanged';\n RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';\n RowNode.EVENT_MASTER_CHANGED = 'masterChanged';\n RowNode.EVENT_GROUP_CHANGED = 'groupChanged';\n RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';\n RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';\n RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';\n RowNode.EVENT_TOP_CHANGED = 'topChanged';\n RowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';\n RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';\n RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';\n RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';\n RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n RowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';\n RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';\n RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';\n RowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';\n RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';\n return RowNode;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CheckboxSelectionComponent = /** @class */ (function (_super) {\n __extends$B(CheckboxSelectionComponent, _super);\n function CheckboxSelectionComponent() {\n return _super.call(this, /* html*/ \"\\n
\\n \\n
\") || this;\n }\n CheckboxSelectionComponent.prototype.postConstruct = function () {\n this.eCheckbox.setPassive(true);\n };\n CheckboxSelectionComponent.prototype.getCheckboxId = function () {\n return this.eCheckbox.getInputElement().id;\n };\n CheckboxSelectionComponent.prototype.onDataChanged = function () {\n // when rows are loaded for the second time, this can impact the selection, as a row\n // could be loaded as already selected (if user scrolls down, and then up again).\n this.onSelectionChanged();\n };\n CheckboxSelectionComponent.prototype.onSelectableChanged = function () {\n this.showOrHideSelect();\n };\n CheckboxSelectionComponent.prototype.onSelectionChanged = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var state = this.rowNode.isSelected();\n var stateName = state === undefined\n ? translate('ariaIndeterminate', 'indeterminate')\n : (state === true\n ? translate('ariaChecked', 'checked')\n : translate('ariaUnchecked', 'unchecked'));\n var ariaLabel = translate('ariaRowToggleSelection', 'Press Space to toggle row selection');\n this.eCheckbox.setValue(state, true);\n this.eCheckbox.setInputAriaLabel(ariaLabel + \" (\" + stateName + \")\");\n };\n CheckboxSelectionComponent.prototype.onCheckedClicked = function (event) {\n var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({ newValue: false, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });\n return updatedCount;\n };\n CheckboxSelectionComponent.prototype.onUncheckedClicked = function (event) {\n var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({ newValue: true, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });\n return updatedCount;\n };\n CheckboxSelectionComponent.prototype.init = function (params) {\n var _this = this;\n this.rowNode = params.rowNode;\n this.column = params.column;\n this.onSelectionChanged();\n // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row\n // would possibly get selected twice\n this.addGuiEventListener('click', function (event) { return stopPropagationForAgGrid(event); });\n // likewise we don't want double click on this icon to open a group\n this.addGuiEventListener('dblclick', function (event) { return stopPropagationForAgGrid(event); });\n this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {\n var isSelected = _this.eCheckbox.getValue();\n var previousValue = _this.eCheckbox.getPreviousValue();\n if (previousValue === undefined || isSelected === undefined) {\n // Indeterminate state - try toggling children to determine action.\n var result = _this.onUncheckedClicked(event || {});\n if (result === 0) {\n _this.onCheckedClicked(event);\n }\n }\n else if (isSelected) {\n _this.onCheckedClicked(event);\n }\n else {\n _this.onUncheckedClicked(event || {});\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));\n var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n var checkboxVisibleIsDynamic = isRowSelectableFunc || this.checkboxCallbackExists();\n if (checkboxVisibleIsDynamic) {\n var showOrHideSelectListener = this.showOrHideSelect.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, showOrHideSelectListener);\n this.showOrHideSelect();\n }\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n };\n CheckboxSelectionComponent.prototype.showOrHideSelect = function () {\n // if the isRowSelectable() is not provided the row node is selectable by default\n var selectable = this.rowNode.selectable;\n // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.\n // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need\n // to call the colDef callback.\n if (selectable && this.checkboxCallbackExists()) {\n selectable = this.column.isCellCheckboxSelection(this.rowNode);\n }\n // show checkbox if both conditions are true\n this.setVisible(selectable);\n };\n CheckboxSelectionComponent.prototype.checkboxCallbackExists = function () {\n // column will be missing if groupUseEntireRow=true\n var colDef = this.column ? this.column.getColDef() : null;\n return !!colDef && typeof colDef.checkboxSelection === 'function';\n };\n __decorate$x([\n RefSelector('eCheckbox')\n ], CheckboxSelectionComponent.prototype, \"eCheckbox\", void 0);\n __decorate$x([\n PostConstruct\n ], CheckboxSelectionComponent.prototype, \"postConstruct\", null);\n return CheckboxSelectionComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$2 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n(function (DragSourceType) {\n DragSourceType[DragSourceType[\"ToolPanel\"] = 0] = \"ToolPanel\";\n DragSourceType[DragSourceType[\"HeaderCell\"] = 1] = \"HeaderCell\";\n DragSourceType[DragSourceType[\"RowDrag\"] = 2] = \"RowDrag\";\n DragSourceType[DragSourceType[\"ChartPanel\"] = 3] = \"ChartPanel\";\n})(exports.DragSourceType || (exports.DragSourceType = {}));\n(function (VerticalDirection) {\n VerticalDirection[VerticalDirection[\"Up\"] = 0] = \"Up\";\n VerticalDirection[VerticalDirection[\"Down\"] = 1] = \"Down\";\n})(exports.VerticalDirection || (exports.VerticalDirection = {}));\n(function (HorizontalDirection) {\n HorizontalDirection[HorizontalDirection[\"Left\"] = 0] = \"Left\";\n HorizontalDirection[HorizontalDirection[\"Right\"] = 1] = \"Right\";\n})(exports.HorizontalDirection || (exports.HorizontalDirection = {}));\nvar DragAndDropService = /** @class */ (function (_super) {\n __extends$C(DragAndDropService, _super);\n function DragAndDropService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragSourceAndParamsList = [];\n _this.dropTargets = [];\n return _this;\n }\n DragAndDropService_1 = DragAndDropService;\n DragAndDropService.prototype.init = function () {\n this.ePinnedIcon = createIcon('columnMovePin', this.gridOptionsWrapper, null);\n this.eHideIcon = createIcon('columnMoveHide', this.gridOptionsWrapper, null);\n this.eMoveIcon = createIcon('columnMoveMove', this.gridOptionsWrapper, null);\n this.eLeftIcon = createIcon('columnMoveLeft', this.gridOptionsWrapper, null);\n this.eRightIcon = createIcon('columnMoveRight', this.gridOptionsWrapper, null);\n this.eGroupIcon = createIcon('columnMoveGroup', this.gridOptionsWrapper, null);\n this.eAggregateIcon = createIcon('columnMoveValue', this.gridOptionsWrapper, null);\n this.ePivotIcon = createIcon('columnMovePivot', this.gridOptionsWrapper, null);\n this.eDropNotAllowedIcon = createIcon('dropNotAllowed', this.gridOptionsWrapper, null);\n };\n DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {\n if (allowTouch === void 0) { allowTouch = false; }\n var params = {\n eElement: dragSource.eElement,\n dragStartPixels: dragSource.dragStartPixels,\n onDragStart: this.onDragStart.bind(this, dragSource),\n onDragStop: this.onDragStop.bind(this),\n onDragging: this.onDragging.bind(this)\n };\n this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });\n this.dragService.addDragSource(params, allowTouch);\n };\n DragAndDropService.prototype.removeDragSource = function (dragSource) {\n var sourceAndParams = this.dragSourceAndParamsList.find(function (item) { return item.dragSource === dragSource; });\n if (sourceAndParams) {\n this.dragService.removeDragSource(sourceAndParams.params);\n removeFromArray(this.dragSourceAndParamsList, sourceAndParams);\n }\n };\n DragAndDropService.prototype.clearDragSourceParamsList = function () {\n var _this = this;\n this.dragSourceAndParamsList.forEach(function (sourceAndParams) { return _this.dragService.removeDragSource(sourceAndParams.params); });\n this.dragSourceAndParamsList.length = 0;\n };\n DragAndDropService.prototype.nudge = function () {\n if (this.dragging) {\n this.onDragging(this.eventLastTime, true);\n }\n };\n DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {\n this.dragging = true;\n this.dragSource = dragSource;\n this.eventLastTime = mouseEvent;\n this.dragItem = this.dragSource.getDragItem();\n this.lastDropTarget = this.dragSource.dragSourceDropTarget;\n if (this.dragSource.onDragStarted) {\n this.dragSource.onDragStarted();\n }\n this.createGhost();\n };\n DragAndDropService.prototype.onDragStop = function (mouseEvent) {\n this.eventLastTime = null;\n this.dragging = false;\n if (this.dragSource.onDragStopped) {\n this.dragSource.onDragStopped();\n }\n if (this.lastDropTarget && this.lastDropTarget.onDragStop) {\n var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);\n this.lastDropTarget.onDragStop(draggingEvent);\n }\n this.lastDropTarget = null;\n this.dragItem = null;\n this.removeGhost();\n };\n DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {\n var _this = this;\n var hDirection = this.getHorizontalDirection(mouseEvent);\n var vDirection = this.getVerticalDirection(mouseEvent);\n this.eventLastTime = mouseEvent;\n this.positionGhost(mouseEvent);\n // check if mouseEvent intersects with any of the drop targets\n var validDropTargets = this.dropTargets.filter(function (target) { return _this.isMouseOnDropTarget(mouseEvent, target); });\n var len = validDropTargets.length;\n var dropTarget = null;\n if (len > 0) {\n dropTarget = len === 1\n ? validDropTargets[0]\n // the current mouse position could intersect with more than 1 element\n // if they are nested. In that case we need to get the most specific\n // container, which is the one that does not contain any other targets.\n : validDropTargets.reduce(function (prevTarget, currTarget) {\n if (!prevTarget) {\n return currTarget;\n }\n var prevContainer = prevTarget.getContainer();\n var currContainer = currTarget.getContainer();\n if (prevContainer.contains(currContainer)) {\n return currTarget;\n }\n return prevTarget;\n });\n }\n if (dropTarget !== this.lastDropTarget) {\n this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);\n this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget = dropTarget;\n }\n else if (dropTarget && dropTarget.onDragging) {\n var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragging(draggingEvent);\n }\n };\n DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {\n if (!dropTarget) {\n return;\n }\n if (dropTarget.onDragEnter) {\n var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragEnter(dragEnterEvent);\n }\n this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);\n };\n DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {\n if (!this.lastDropTarget) {\n return;\n }\n if (this.lastDropTarget.onDragLeave) {\n var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget.onDragLeave(dragLeaveEvent);\n }\n this.setGhostIcon(null);\n };\n DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {\n var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;\n var containers = [[dropTarget.getContainer()]];\n return secondaryContainers ? containers.concat(secondaryContainers) : containers;\n };\n DragAndDropService.prototype.allContainersIntersect = function (mouseEvent, containers) {\n var e_1, _a;\n try {\n for (var containers_1 = __values$2(containers), containers_1_1 = containers_1.next(); !containers_1_1.done; containers_1_1 = containers_1.next()) {\n var container = containers_1_1.value;\n var rect = container.getBoundingClientRect();\n // if element is not visible, then width and height are zero\n if (rect.width === 0 || rect.height === 0) {\n return false;\n }\n var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;\n var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;\n if (!horizontalFit || !verticalFit) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (containers_1_1 && !containers_1_1.done && (_a = containers_1.return)) _a.call(containers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers\n DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {\n var e_2, _a;\n var allContainersFromDropTarget = this.getAllContainersFromDropTarget(dropTarget);\n var mouseOverTarget = false;\n try {\n for (var allContainersFromDropTarget_1 = __values$2(allContainersFromDropTarget), allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next(); !allContainersFromDropTarget_1_1.done; allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next()) {\n var currentContainers = allContainersFromDropTarget_1_1.value;\n if (this.allContainersIntersect(mouseEvent, currentContainers)) {\n mouseOverTarget = true;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (allContainersFromDropTarget_1_1 && !allContainersFromDropTarget_1_1.done && (_a = allContainersFromDropTarget_1.return)) _a.call(allContainersFromDropTarget_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (dropTarget.targetContainsSource && !dropTarget.getContainer().contains(this.dragSource.eElement)) {\n return false;\n }\n return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type, this.dragSource.eElement);\n };\n DragAndDropService.prototype.addDropTarget = function (dropTarget) {\n this.dropTargets.push(dropTarget);\n };\n DragAndDropService.prototype.removeDropTarget = function (dropTarget) {\n this.dropTargets = this.dropTargets.filter(function (target) { return target.getContainer() !== dropTarget.getContainer(); });\n };\n DragAndDropService.prototype.hasExternalDropZones = function () {\n return this.dropTargets.some(function (zones) { return zones.external; });\n };\n DragAndDropService.prototype.findExternalZone = function (params) {\n var externalTargets = this.dropTargets.filter(function (target) { return target.external; });\n return externalTargets.find(function (zone) { return zone.getContainer() === params.getContainer(); }) || null;\n };\n DragAndDropService.prototype.getHorizontalDirection = function (event) {\n var clientX = this.eventLastTime && this.eventLastTime.clientX;\n var eClientX = event.clientX;\n if (clientX === eClientX) {\n return null;\n }\n return clientX > eClientX ? exports.HorizontalDirection.Left : exports.HorizontalDirection.Right;\n };\n DragAndDropService.prototype.getVerticalDirection = function (event) {\n var clientY = this.eventLastTime && this.eventLastTime.clientY;\n var eClientY = event.clientY;\n if (clientY === eClientY) {\n return null;\n }\n return clientY > eClientY ? exports.VerticalDirection.Up : exports.VerticalDirection.Down;\n };\n DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {\n // localise x and y to the target\n var dropZoneTarget = dropTarget.getContainer();\n var rect = dropZoneTarget.getBoundingClientRect();\n var _a = this, api = _a.gridApi, columnApi = _a.columnApi, dragItem = _a.dragItem, dragSource = _a.dragSource;\n var x = event.clientX - rect.left;\n var y = event.clientY - rect.top;\n return { event: event, x: x, y: y, vDirection: vDirection, hDirection: hDirection, dragSource: dragSource, fromNudge: fromNudge, dragItem: dragItem, api: api, columnApi: columnApi, dropZoneTarget: dropZoneTarget };\n };\n DragAndDropService.prototype.positionGhost = function (event) {\n var ghost = this.eGhost;\n if (!ghost) {\n return;\n }\n var ghostRect = ghost.getBoundingClientRect();\n var ghostHeight = ghostRect.height;\n // for some reason, without the '-2', it still overlapped by 1 or 2 pixels, which\n // then brought in scrollbars to the browser. no idea why, but putting in -2 here\n // works around it which is good enough for me.\n var browserWidth = getBodyWidth() - 2;\n var browserHeight = getBodyHeight() - 2;\n var top = event.pageY - (ghostHeight / 2);\n var left = event.pageX - 10;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n var windowScrollY = win.pageYOffset || eDocument.documentElement.scrollTop;\n var windowScrollX = win.pageXOffset || eDocument.documentElement.scrollLeft;\n // check ghost is not positioned outside of the browser\n if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {\n left = browserWidth + windowScrollX - ghost.clientWidth;\n }\n if (left < 0) {\n left = 0;\n }\n if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {\n top = browserHeight + windowScrollY - ghost.clientHeight;\n }\n if (top < 0) {\n top = 0;\n }\n ghost.style.left = left + \"px\";\n ghost.style.top = top + \"px\";\n };\n DragAndDropService.prototype.removeGhost = function () {\n if (this.eGhost && this.eGhostParent) {\n this.eGhostParent.removeChild(this.eGhost);\n }\n this.eGhost = null;\n };\n DragAndDropService.prototype.createGhost = function () {\n this.eGhost = loadTemplate(DragAndDropService_1.GHOST_TEMPLATE);\n var theme = this.environment.getTheme().theme;\n if (theme) {\n this.eGhost.classList.add(theme);\n }\n this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');\n this.setGhostIcon(null);\n var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');\n var dragItemName = this.dragSource.dragItemName;\n if (isFunction(dragItemName)) {\n dragItemName = dragItemName();\n }\n eText.innerHTML = escapeString(dragItemName) || '';\n this.eGhost.style.height = '25px';\n this.eGhost.style.top = '20px';\n this.eGhost.style.left = '20px';\n var eDocument = this.gridOptionsWrapper.getDocument();\n var targetEl = null;\n try {\n targetEl = eDocument.fullscreenElement;\n }\n catch (e) {\n // some environments like SalesForce will throw errors\n // simply by trying to read the fullscreenElement property\n }\n finally {\n if (!targetEl) {\n targetEl = eDocument.querySelector('body');\n }\n }\n this.eGhostParent = targetEl;\n if (!this.eGhostParent) {\n console.warn('AG Grid: could not find document body, it is needed for dragging columns');\n }\n else {\n this.eGhostParent.appendChild(this.eGhost);\n }\n };\n DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {\n if (shake === void 0) { shake = false; }\n clearElement(this.eGhostIcon);\n var eIcon = null;\n if (!iconName) {\n iconName = this.dragSource.defaultIconName || DragAndDropService_1.ICON_NOT_ALLOWED;\n }\n switch (iconName) {\n case DragAndDropService_1.ICON_PINNED:\n eIcon = this.ePinnedIcon;\n break;\n case DragAndDropService_1.ICON_MOVE:\n eIcon = this.eMoveIcon;\n break;\n case DragAndDropService_1.ICON_LEFT:\n eIcon = this.eLeftIcon;\n break;\n case DragAndDropService_1.ICON_RIGHT:\n eIcon = this.eRightIcon;\n break;\n case DragAndDropService_1.ICON_GROUP:\n eIcon = this.eGroupIcon;\n break;\n case DragAndDropService_1.ICON_AGGREGATE:\n eIcon = this.eAggregateIcon;\n break;\n case DragAndDropService_1.ICON_PIVOT:\n eIcon = this.ePivotIcon;\n break;\n case DragAndDropService_1.ICON_NOT_ALLOWED:\n eIcon = this.eDropNotAllowedIcon;\n break;\n case DragAndDropService_1.ICON_HIDE:\n eIcon = this.eHideIcon;\n break;\n }\n this.eGhostIcon.classList.toggle('ag-shake-left-to-right', shake);\n if (eIcon === this.eHideIcon && this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns()) {\n return;\n }\n if (eIcon) {\n this.eGhostIcon.appendChild(eIcon);\n }\n };\n var DragAndDropService_1;\n DragAndDropService.ICON_PINNED = 'pinned';\n DragAndDropService.ICON_MOVE = 'move';\n DragAndDropService.ICON_LEFT = 'left';\n DragAndDropService.ICON_RIGHT = 'right';\n DragAndDropService.ICON_GROUP = 'group';\n DragAndDropService.ICON_AGGREGATE = 'aggregate';\n DragAndDropService.ICON_PIVOT = 'pivot';\n DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';\n DragAndDropService.ICON_HIDE = 'hide';\n DragAndDropService.GHOST_TEMPLATE = \"
\\n \\n
\\n
\";\n __decorate$y([\n Autowired('dragService')\n ], DragAndDropService.prototype, \"dragService\", void 0);\n __decorate$y([\n Autowired('environment')\n ], DragAndDropService.prototype, \"environment\", void 0);\n __decorate$y([\n Autowired('columnApi')\n ], DragAndDropService.prototype, \"columnApi\", void 0);\n __decorate$y([\n Autowired('gridApi')\n ], DragAndDropService.prototype, \"gridApi\", void 0);\n __decorate$y([\n PostConstruct\n ], DragAndDropService.prototype, \"init\", null);\n __decorate$y([\n PreDestroy\n ], DragAndDropService.prototype, \"clearDragSourceParamsList\", null);\n DragAndDropService = DragAndDropService_1 = __decorate$y([\n Bean('dragAndDropService')\n ], DragAndDropService);\n return DragAndDropService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowDragComp = /** @class */ (function (_super) {\n __extends$D(RowDragComp, _super);\n function RowDragComp(cellValueFn, rowNode, column, customGui, dragStartPixels, suppressVisibilityChange) {\n var _this = _super.call(this) || this;\n _this.cellValueFn = cellValueFn;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.customGui = customGui;\n _this.dragStartPixels = dragStartPixels;\n _this.suppressVisibilityChange = suppressVisibilityChange;\n _this.dragSource = null;\n return _this;\n }\n RowDragComp.prototype.isCustomGui = function () {\n return this.customGui != null;\n };\n RowDragComp.prototype.postConstruct = function () {\n if (!this.customGui) {\n this.setTemplate(/* html */ \"
\");\n this.getGui().appendChild(createIconNoSpan('rowDrag', this.beans.gridOptionsWrapper, null));\n this.addDragSource();\n }\n else {\n this.setDragElement(this.customGui, this.dragStartPixels);\n }\n this.checkCompatibility();\n if (!this.suppressVisibilityChange) {\n var strategy = this.beans.gridOptionsWrapper.isRowDragManaged() ?\n new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :\n new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);\n this.createManagedBean(strategy, this.beans.context);\n }\n };\n RowDragComp.prototype.setDragElement = function (dragElement, dragStartPixels) {\n this.setTemplateFromElement(dragElement);\n this.addDragSource(dragStartPixels);\n };\n RowDragComp.prototype.getSelectedCount = function () {\n var isRowDragMultiRow = this.beans.gridOptionsWrapper.isRowDragMultiRow();\n if (!isRowDragMultiRow) {\n return 1;\n }\n var selection = this.beans.selectionService.getSelectedNodes();\n return selection.indexOf(this.rowNode) !== -1 ? selection.length : 1;\n };\n // returns true if all compatibility items work out\n RowDragComp.prototype.checkCompatibility = function () {\n var managed = this.beans.gridOptionsWrapper.isRowDragManaged();\n var treeData = this.beans.gridOptionsWrapper.isTreeData();\n if (treeData && managed) {\n doOnce(function () {\n return console.warn('AG Grid: If using row drag with tree data, you cannot have rowDragManaged=true');\n }, 'RowDragComp.managedAndTreeData');\n }\n };\n RowDragComp.prototype.addDragSource = function (dragStartPixels) {\n var _this = this;\n if (dragStartPixels === void 0) { dragStartPixels = 4; }\n // if this is changing the drag element, delete the previous dragSource\n if (this.dragSource) {\n this.removeDragSource();\n }\n var dragItem = {\n rowNode: this.rowNode,\n columns: this.column ? [this.column] : undefined,\n defaultTextValue: this.cellValueFn(),\n };\n var rowDragText = this.column && this.column.getColDef().rowDragText;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.dragSource = {\n type: exports.DragSourceType.RowDrag,\n eElement: this.getGui(),\n dragItemName: function () {\n var dragItemCount = _this.getSelectedCount();\n if (rowDragText) {\n return rowDragText(dragItem, dragItemCount);\n }\n return dragItemCount === 1 ? _this.cellValueFn() : dragItemCount + \" \" + translate('rowDragRows', 'rows');\n },\n getDragItem: function () { return dragItem; },\n dragStartPixels: dragStartPixels,\n dragSourceDomDataKey: this.beans.gridOptionsWrapper.getDomDataKey()\n };\n this.beans.dragAndDropService.addDragSource(this.dragSource, true);\n };\n RowDragComp.prototype.removeDragSource = function () {\n if (this.dragSource) {\n this.beans.dragAndDropService.removeDragSource(this.dragSource);\n }\n this.dragSource = null;\n };\n __decorate$z([\n Autowired('beans')\n ], RowDragComp.prototype, \"beans\", void 0);\n __decorate$z([\n PostConstruct\n ], RowDragComp.prototype, \"postConstruct\", null);\n __decorate$z([\n PreDestroy\n ], RowDragComp.prototype, \"removeDragSource\", null);\n return RowDragComp;\n}(Component));\nvar VisibilityStrategy = /** @class */ (function (_super) {\n __extends$D(VisibilityStrategy, _super);\n function VisibilityStrategy(parent, rowNode, column) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.rowNode = rowNode;\n _this.column = column;\n return _this;\n }\n VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {\n if (neverDisplayed) {\n this.parent.setDisplayed(false);\n }\n else {\n var shown = true;\n var isShownSometimes = false;\n if (this.column) {\n shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui();\n isShownSometimes = isFunction(this.column.getColDef().rowDrag);\n }\n // if shown sometimes, them some rows can have drag handle while other don't,\n // so we use setVisible to keep the handles horizontally aligned (as setVisible\n // keeps the empty space, whereas setDisplayed looses the space)\n if (isShownSometimes) {\n this.parent.setDisplayed(true);\n this.parent.setVisible(shown);\n }\n else {\n this.parent.setDisplayed(shown);\n this.parent.setVisible(true);\n }\n }\n };\n return VisibilityStrategy;\n}(BeanStub));\n// when non managed, the visibility depends on suppressRowDrag property only\nvar NonManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$D(NonManagedVisibilityStrategy, _super);\n function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n NonManagedVisibilityStrategy.prototype.postConstruct = function () {\n this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var neverDisplayed = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$z([\n PostConstruct\n ], NonManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return NonManagedVisibilityStrategy;\n}(VisibilityStrategy));\n// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property\nvar ManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$D(ManagedVisibilityStrategy, _super);\n function ManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n ManagedVisibilityStrategy.prototype.postConstruct = function () {\n // we do not show the component if sort, filter or grouping is active\n this.addManagedListener(this.beans.eventService, Events.EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();\n var rowDragFeature = gridBodyCon.getRowDragFeature();\n var shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();\n var suppressRowDrag = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();\n var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$z([\n PostConstruct\n ], ManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return ManagedVisibilityStrategy;\n}(VisibilityStrategy));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$7 = (undefined && undefined.__assign) || function () {\n __assign$7 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$7.apply(this, arguments);\n};\nvar __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupCellRendererCtrl = /** @class */ (function (_super) {\n __extends$E(GroupCellRendererCtrl, _super);\n function GroupCellRendererCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupCellRendererCtrl.prototype.init = function (comp, eGui, eCheckbox, eExpanded, eContracted, compClass, params) {\n this.params = params;\n this.eGui = eGui;\n this.eCheckbox = eCheckbox;\n this.eExpanded = eExpanded;\n this.eContracted = eContracted;\n this.comp = comp;\n this.compClass = compClass;\n var topLevelFooter = this.isTopLevelFooter();\n var embeddedRowMismatch = this.isEmbeddedRowMismatch();\n // This allows for empty strings to appear as groups since\n // it will only return for null or undefined.\n var nullValue = params.value == null;\n var skipCell = false;\n // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true\n // we should only display the groupCellRenderer if the current column is the rowGroupedColumn\n if (this.gridOptionsWrapper.isGroupIncludeFooter() && this.gridOptionsWrapper.isGroupHideOpenParents()) {\n var node = params.node;\n if (node.footer) {\n var showRowGroup = params.colDef && params.colDef.showRowGroup;\n var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();\n skipCell = showRowGroup !== rowGroupColumnId;\n }\n }\n this.cellIsBlank = topLevelFooter ? false : (embeddedRowMismatch || nullValue || skipCell);\n if (this.cellIsBlank) {\n return;\n }\n this.setupShowingValueForOpenedParent();\n this.findDisplayedGroupNode();\n this.addFullWidthRowDraggerIfNeeded();\n this.addExpandAndContract();\n this.addCheckboxIfNeeded();\n this.addValueElement();\n this.setupIndent();\n this.refreshAriaExpanded();\n };\n GroupCellRendererCtrl.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n // property cleanup to avoid memory leaks\n this.expandListener = null;\n };\n GroupCellRendererCtrl.prototype.refreshAriaExpanded = function () {\n var _a = this.params, node = _a.node, eParentOfValue = _a.eParentOfValue;\n if (this.expandListener) {\n this.expandListener = this.expandListener();\n }\n if (!this.isExpandable()) {\n removeAriaExpanded(eParentOfValue);\n return;\n }\n var listener = function () {\n // for react, we don't use JSX, as setting attributes via jsx is slower\n setAriaExpanded(eParentOfValue, !!node.expanded);\n };\n this.expandListener = this.addManagedListener(node, RowNode.EVENT_EXPANDED_CHANGED, listener) || null;\n listener();\n };\n GroupCellRendererCtrl.prototype.isTopLevelFooter = function () {\n if (!this.gridOptionsWrapper.isGroupIncludeTotalFooter()) {\n return false;\n }\n if (this.params.value != null || this.params.node.level != -1) {\n return false;\n }\n // at this point, we know it's the root node and there is no value present, so it's a footer cell.\n // the only thing to work out is if we are displaying groups across multiple\n // columns (groupMultiAutoColumn=true), we only want 'total' to appear in the first column.\n var colDef = this.params.colDef;\n var doingFullWidth = colDef == null;\n if (doingFullWidth) {\n return true;\n }\n if (colDef.showRowGroup === true) {\n return true;\n }\n var rowGroupCols = this.columnModel.getRowGroupColumns();\n // this is a sanity check, rowGroupCols should always be present\n if (!rowGroupCols || rowGroupCols.length === 0) {\n return true;\n }\n var firstRowGroupCol = rowGroupCols[0];\n return firstRowGroupCol.getId() === colDef.showRowGroup;\n };\n // if we are doing embedded full width rows, we only show the renderer when\n // in the body, or if pinning in the pinned section, or if pinning and RTL,\n // in the right section. otherwise we would have the cell repeated in each section.\n GroupCellRendererCtrl.prototype.isEmbeddedRowMismatch = function () {\n if (!this.params.fullWidth || !this.gridOptionsWrapper.isEmbedFullWidthRows()) {\n return false;\n }\n var pinnedLeftCell = this.params.pinned === Constants.PINNED_LEFT;\n var pinnedRightCell = this.params.pinned === Constants.PINNED_RIGHT;\n var bodyCell = !pinnedLeftCell && !pinnedRightCell;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (this.columnModel.isPinningLeft()) {\n return !pinnedRightCell;\n }\n return !bodyCell;\n }\n if (this.columnModel.isPinningLeft()) {\n return !pinnedLeftCell;\n }\n return !bodyCell;\n };\n GroupCellRendererCtrl.prototype.findDisplayedGroupNode = function () {\n var column = this.params.column;\n var rowNode = this.params.node;\n if (this.showingValueForOpenedParent) {\n var pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {\n this.displayedGroupNode = pointer;\n break;\n }\n pointer = pointer.parent;\n }\n }\n // if we didn't find a displayed group, set it to the row node\n if (missing(this.displayedGroupNode)) {\n this.displayedGroupNode = rowNode;\n }\n };\n GroupCellRendererCtrl.prototype.setupShowingValueForOpenedParent = function () {\n // note - this code depends on sortService.updateGroupDataForHiddenOpenParents, where group data\n // is updated to reflect the dragged down parents\n var rowNode = this.params.node;\n var column = this.params.column;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // hideOpenParents means rowNode.groupData can have data for the group this column is displaying, even though\n // this rowNode isn't grouping by the column we are displaying\n // if no groupData at all, we are not showing a parent value\n if (!rowNode.groupData) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // this is the normal case, in that we are showing a group for which this column is configured. note that\n // this means the Row Group is closed (if it was open, we would not be displaying it)\n var showingGroupNode = rowNode.rowGroupColumn != null;\n if (showingGroupNode) {\n var keyOfGroupingColumn = rowNode.rowGroupColumn.getId();\n var configuredToShowThisGroupLevel = column.isRowGroupDisplayed(keyOfGroupingColumn);\n // if showing group as normal, we didn't take group info from parent\n if (configuredToShowThisGroupLevel) {\n this.showingValueForOpenedParent = false;\n return;\n }\n }\n // see if we are showing a Group Value for the Displayed Group. if we are showing a group value, and this Row Node\n // is not grouping by this Displayed Group, we must of gotten the value from a parent node\n var valPresent = rowNode.groupData[column.getId()] != null;\n this.showingValueForOpenedParent = valPresent;\n };\n GroupCellRendererCtrl.prototype.addValueElement = function () {\n if (this.displayedGroupNode.footer) {\n this.addFooterValue();\n }\n else {\n this.addGroupValue();\n this.addChildCount();\n }\n };\n GroupCellRendererCtrl.prototype.addGroupValue = function () {\n // we try and use the cellRenderer of the column used for the grouping if we can\n var paramsAdjusted = this.adjustParamsWithDetailsFromRelatedColumn();\n var innerCompDetails = this.getInnerCompDetails(paramsAdjusted);\n var valueFormatted = paramsAdjusted.valueFormatted, value = paramsAdjusted.value;\n var valueWhenNoRenderer = valueFormatted != null ? valueFormatted : value;\n this.comp.setInnerRenderer(innerCompDetails, valueWhenNoRenderer);\n };\n GroupCellRendererCtrl.prototype.adjustParamsWithDetailsFromRelatedColumn = function () {\n var relatedColumn = this.displayedGroupNode.rowGroupColumn;\n var column = this.params.column;\n if (!relatedColumn) {\n return this.params;\n }\n var notFullWidth = column != null;\n if (notFullWidth) {\n var showingThisRowGroup = column.isRowGroupDisplayed(relatedColumn.getId());\n if (!showingThisRowGroup) {\n return this.params;\n }\n }\n var params = this.params;\n var _a = this.params, value = _a.value, node = _a.node;\n var valueFormatted = this.valueFormatterService.formatValue(relatedColumn, node, value);\n // we don't update the original params, as they could of come through React,\n // as react has RowGroupCellRenderer, which means the params could be props which\n // would be read only\n var paramsAdjusted = __assign$7(__assign$7({}, params), { valueFormatted: valueFormatted });\n return paramsAdjusted;\n };\n GroupCellRendererCtrl.prototype.addFooterValue = function () {\n var footerValueGetter = this.params.footerValueGetter;\n var footerValue = '';\n if (footerValueGetter) {\n // params is same as we were given, except we set the value as the item to display\n var paramsClone = cloneObject(this.params);\n paramsClone.value = this.params.value;\n if (typeof footerValueGetter === 'function') {\n footerValue = footerValueGetter(paramsClone);\n }\n else if (typeof footerValueGetter === 'string') {\n footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);\n }\n else {\n console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');\n }\n }\n else {\n footerValue = 'Total ' + (this.params.value != null ? this.params.value : '');\n }\n var innerCompDetails = this.getInnerCompDetails(this.params);\n this.comp.setInnerRenderer(innerCompDetails, footerValue);\n };\n GroupCellRendererCtrl.prototype.getInnerCompDetails = function (params) {\n var _this = this;\n // for full width rows, we don't do any of the below\n if (params.fullWidth) {\n return this.userComponentFactory.getFullWidthGroupRowInnerCellRenderer(this.gridOptions.groupRowRendererParams, params);\n }\n // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country\n // and then rating, we will use the country cell renderer for each country group row and likewise the rating\n // cell renderer for each rating group row.\n //\n // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers\n // of the grouped columns.\n //\n // so we check and use in the following order:\n //\n // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)\n // 2) groupedColDef.cellRenderer of the grouped column\n // 3) groupedColDef.cellRendererParams.innerRenderer\n // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer\n var innerCompDetails = this.userComponentFactory\n .getInnerRendererDetails(params, params);\n // avoid using GroupCellRenderer again, otherwise stack overflow, as we insert same renderer again and again.\n // this covers off chance user is grouping by a column that is also configured with GroupCellRenderer\n var isGroupRowRenderer = function (details) { return details && details.componentClass == _this.compClass; };\n if (innerCompDetails && !isGroupRowRenderer(innerCompDetails)) {\n // use the renderer defined in cellRendererParams.innerRenderer\n return innerCompDetails;\n }\n var relatedColumn = this.displayedGroupNode.rowGroupColumn;\n var relatedColDef = relatedColumn ? relatedColumn.getColDef() : undefined;\n if (!relatedColDef) {\n return;\n }\n // otherwise see if we can use the cellRenderer of the column we are grouping by\n var relatedCompDetails = this.userComponentFactory\n .getCellRendererDetails(relatedColDef, params);\n if (relatedCompDetails && !isGroupRowRenderer(relatedCompDetails)) {\n // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it\n return relatedCompDetails;\n }\n if (isGroupRowRenderer(relatedCompDetails) &&\n relatedColDef.cellRendererParams &&\n relatedColDef.cellRendererParams.innerRenderer) {\n // edge case - this comes from a column which has been grouped dynamically, that has a renderer 'group'\n // and has an inner cell renderer\n var res = this.userComponentFactory.getInnerRendererDetails(relatedColDef.cellRendererParams, params);\n return res;\n }\n };\n GroupCellRendererCtrl.prototype.addChildCount = function () {\n // only include the child count if it's included, eg if user doing custom aggregation,\n // then this could be left out, or set to -1, ie no child count\n if (this.params.suppressCount) {\n return;\n }\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));\n // filtering changes the child count, so need to cater for it\n this.updateChildCount();\n };\n GroupCellRendererCtrl.prototype.updateChildCount = function () {\n var allChildrenCount = this.displayedGroupNode.allChildrenCount;\n var showingGroupForThisNode = this.isShowRowGroupForThisRow();\n var showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;\n var countString = showCount ? \"(\" + allChildrenCount + \")\" : \"\";\n this.comp.setChildCount(countString);\n };\n GroupCellRendererCtrl.prototype.isShowRowGroupForThisRow = function () {\n if (this.gridOptionsWrapper.isTreeData()) {\n return true;\n }\n var rowGroupColumn = this.displayedGroupNode.rowGroupColumn;\n if (!rowGroupColumn) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());\n return thisColumnIsInterested;\n };\n GroupCellRendererCtrl.prototype.addExpandAndContract = function () {\n var params = this.params;\n var eExpandedIcon = createIconNoSpan('groupExpanded', this.gridOptionsWrapper, null);\n var eContractedIcon = createIconNoSpan('groupContracted', this.gridOptionsWrapper, null);\n if (eExpandedIcon) {\n this.eExpanded.appendChild(eExpandedIcon);\n }\n if (eContractedIcon) {\n this.eContracted.appendChild(eContractedIcon);\n }\n var eGroupCell = params.eGridCell;\n // if editing groups, then double click is to start editing\n if (!this.gridOptionsWrapper.isEnableGroupEdit() && this.isExpandable() && !params.suppressDoubleClickExpand) {\n this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));\n }\n this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));\n // expand / contract as the user hits enter\n this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(params.node, RowNode.EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));\n this.showExpandAndContractIcons();\n // because we don't show the expand / contract when there are no children, we need to check every time\n // the number of children change.\n var expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_MASTER_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_GROUP_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);\n };\n GroupCellRendererCtrl.prototype.onExpandClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // so if we expand a node, it does not also get selected.\n stopPropagationForAgGrid(mouseEvent);\n this.onExpandOrContract(mouseEvent);\n };\n GroupCellRendererCtrl.prototype.onExpandOrContract = function (e) {\n // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row\n var rowNode = this.displayedGroupNode;\n var nextExpandState = !rowNode.expanded;\n rowNode.setExpanded(nextExpandState, e);\n };\n GroupCellRendererCtrl.prototype.isExpandable = function () {\n if (this.showingValueForOpenedParent) {\n return true;\n }\n var rowNode = this.displayedGroupNode;\n var reducedLeafNode = this.columnModel.isPivotMode() && rowNode.leafGroup;\n var expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;\n if (!expandableGroup) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';\n if (displayingForOneColumnOnly) {\n var showing = this.isShowRowGroupForThisRow();\n return showing;\n }\n return true;\n };\n GroupCellRendererCtrl.prototype.showExpandAndContractIcons = function () {\n var _a = this, params = _a.params, displayedGroup = _a.displayedGroupNode, columnModel = _a.columnModel;\n var node = params.node;\n var isExpandable = this.isExpandable();\n if (isExpandable) {\n // if expandable, show one based on expand state.\n // if we were dragged down, means our parent is always expanded\n var expanded = this.showingValueForOpenedParent ? true : node.expanded;\n this.comp.setExpandedDisplayed(expanded);\n this.comp.setContractedDisplayed(!expanded);\n }\n else {\n // it not expandable, show neither\n this.comp.setExpandedDisplayed(false);\n this.comp.setContractedDisplayed(false);\n }\n // compensation padding for leaf nodes, so there is blank space instead of the expand icon\n var pivotMode = columnModel.isPivotMode();\n var pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;\n var addExpandableCss = isExpandable && !pivotModeAndLeafGroup;\n var isTotalFooterNode = node.footer && node.level === -1;\n this.comp.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);\n this.comp.addOrRemoveCssClass('ag-row-group', addExpandableCss);\n if (pivotMode) {\n this.comp.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);\n }\n else if (!isTotalFooterNode) {\n this.comp.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);\n }\n };\n GroupCellRendererCtrl.prototype.onRowNodeIsExpandableChanged = function () {\n // maybe if no children now, we should hide the expand / contract icons\n this.showExpandAndContractIcons();\n // if we have no children, this impacts the indent\n this.setIndent();\n this.refreshAriaExpanded();\n };\n GroupCellRendererCtrl.prototype.setupIndent = function () {\n // only do this if an indent - as this overwrites the padding that\n // the theme set, which will make things look 'not aligned' for the\n // first group level.\n var node = this.params.node;\n var suppressPadding = this.params.suppressPadding;\n if (!suppressPadding) {\n this.addManagedListener(node, RowNode.EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));\n this.setIndent();\n }\n };\n GroupCellRendererCtrl.prototype.setIndent = function () {\n if (this.gridOptionsWrapper.isGroupHideOpenParents()) {\n return;\n }\n var params = this.params;\n var rowNode = params.node;\n // if we are only showing one group column, we don't want to be indenting based on level\n var fullWithRow = !!params.colDef;\n var treeData = this.gridOptionsWrapper.isTreeData();\n var manyDimensionThisColumn = !fullWithRow || treeData || params.colDef.showRowGroup === true;\n var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;\n var userProvidedPaddingPixelsTheDeprecatedWay = params.padding >= 0;\n if (userProvidedPaddingPixelsTheDeprecatedWay) {\n doOnce(function () { return console.warn('AG Grid: cellRendererParams.padding no longer works, it was deprecated in since v14.2 and removed in v26, configuring padding for groupCellRenderer should be done with Sass variables and themes. Please see the AG Grid documentation page for Themes, in particular the property $row-group-indent-size.'); }, 'groupCellRenderer->doDeprecatedWay');\n }\n if (this.indentClass) {\n this.comp.addOrRemoveCssClass(this.indentClass, false);\n }\n this.indentClass = 'ag-row-group-indent-' + paddingCount;\n this.comp.addOrRemoveCssClass(this.indentClass, true);\n };\n GroupCellRendererCtrl.prototype.addFullWidthRowDraggerIfNeeded = function () {\n var _this = this;\n if (!this.params.fullWidth || !this.params.rowDrag) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return _this.params.value; }, this.params.node);\n this.createManagedBean(rowDragComp, this.context);\n this.eGui.insertAdjacentElement('afterbegin', rowDragComp.getGui());\n };\n GroupCellRendererCtrl.prototype.isUserWantsSelected = function () {\n var paramsCheckbox = this.params.checkbox;\n if (typeof paramsCheckbox === 'function') {\n return paramsCheckbox(this.params);\n }\n return paramsCheckbox === true;\n };\n GroupCellRendererCtrl.prototype.addCheckboxIfNeeded = function () {\n var _this = this;\n var rowNode = this.displayedGroupNode;\n var checkboxNeeded = this.isUserWantsSelected() &&\n // footers cannot be selected\n !rowNode.footer &&\n // pinned rows cannot be selected\n !rowNode.rowPinned &&\n // details cannot be selected\n !rowNode.detail;\n if (checkboxNeeded) {\n var cbSelectionComponent_1 = new CheckboxSelectionComponent();\n this.getContext().createBean(cbSelectionComponent_1);\n cbSelectionComponent_1.init({ rowNode: rowNode, column: this.params.column });\n this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());\n this.addDestroyFunc(function () { return _this.getContext().destroyBean(cbSelectionComponent_1); });\n }\n this.comp.setCheckboxVisible(checkboxNeeded);\n };\n GroupCellRendererCtrl.prototype.onKeyDown = function (event) {\n var enterKeyPressed = event.key === KeyCode.ENTER;\n if (!enterKeyPressed || this.params.suppressEnterExpand) {\n return;\n }\n var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);\n if (cellEditable) {\n return;\n }\n this.onExpandOrContract(event);\n };\n GroupCellRendererCtrl.prototype.onCellDblClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // we want to avoid acting on double click events on the expand / contract icon,\n // as that icons already has expand / collapse functionality on it. otherwise if\n // the icon was double clicked, we would get 'click', 'click', 'dblclick' which\n // is open->close->open, however double click should be open->close only.\n var targetIsExpandIcon = isElementInEventPath(this.eExpanded, mouseEvent)\n || isElementInEventPath(this.eContracted, mouseEvent);\n if (!targetIsExpandIcon) {\n this.onExpandOrContract(mouseEvent);\n }\n };\n __decorate$A([\n Autowired('expressionService')\n ], GroupCellRendererCtrl.prototype, \"expressionService\", void 0);\n __decorate$A([\n Autowired('valueFormatterService')\n ], GroupCellRendererCtrl.prototype, \"valueFormatterService\", void 0);\n __decorate$A([\n Autowired('columnModel')\n ], GroupCellRendererCtrl.prototype, \"columnModel\", void 0);\n __decorate$A([\n Autowired('userComponentFactory')\n ], GroupCellRendererCtrl.prototype, \"userComponentFactory\", void 0);\n __decorate$A([\n Autowired('gridOptions')\n ], GroupCellRendererCtrl.prototype, \"gridOptions\", void 0);\n return GroupCellRendererCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupCellRenderer = /** @class */ (function (_super) {\n __extends$F(GroupCellRenderer, _super);\n function GroupCellRenderer() {\n return _super.call(this, GroupCellRenderer.TEMPLATE) || this;\n }\n GroupCellRenderer.prototype.init = function (params) {\n var _this = this;\n var compProxy = {\n setInnerRenderer: function (compDetails, valueToDisplay) { return _this.setRenderDetails(compDetails, valueToDisplay); },\n setChildCount: function (count) { return _this.eChildCount.innerHTML = count; },\n addOrRemoveCssClass: function (cssClass, value) { return _this.addOrRemoveCssClass(cssClass, value); },\n setContractedDisplayed: function (expanded) { return setDisplayed(_this.eContracted, expanded); },\n setExpandedDisplayed: function (expanded) { return setDisplayed(_this.eExpanded, expanded); },\n setCheckboxVisible: function (visible) { return _this.eCheckbox.classList.toggle('ag-invisible', !visible); }\n };\n var ctrl = this.createManagedBean(new GroupCellRendererCtrl());\n var fullWidth = !params.colDef;\n var eGui = this.getGui();\n ctrl.init(compProxy, eGui, this.eCheckbox, this.eExpanded, this.eContracted, this.constructor, params);\n if (fullWidth) {\n setAriaRole(eGui, 'gridcell');\n }\n };\n GroupCellRenderer.prototype.setRenderDetails = function (compDetails, valueToDisplay) {\n var _this = this;\n if (compDetails) {\n var componentPromise = compDetails.newAgStackInstance();\n if (!componentPromise) {\n return;\n }\n componentPromise.then(function (comp) {\n if (!comp) {\n return;\n }\n var destroyComp = function () { return _this.context.destroyBean(comp); };\n if (_this.isAlive()) {\n _this.eValue.appendChild(comp.getGui());\n _this.addDestroyFunc(destroyComp);\n }\n else {\n destroyComp();\n }\n });\n }\n else {\n this.eValue.innerText = valueToDisplay;\n }\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to have public here instead of private or protected\n GroupCellRenderer.prototype.destroy = function () {\n this.getContext().destroyBean(this.innerCellRenderer);\n _super.prototype.destroy.call(this);\n };\n GroupCellRenderer.prototype.refresh = function () {\n return false;\n };\n GroupCellRenderer.TEMPLATE = \"\\n \\n \\n \\n \\n \\n \";\n __decorate$B([\n RefSelector('eExpanded')\n ], GroupCellRenderer.prototype, \"eExpanded\", void 0);\n __decorate$B([\n RefSelector('eContracted')\n ], GroupCellRenderer.prototype, \"eContracted\", void 0);\n __decorate$B([\n RefSelector('eCheckbox')\n ], GroupCellRenderer.prototype, \"eCheckbox\", void 0);\n __decorate$B([\n RefSelector('eValue')\n ], GroupCellRenderer.prototype, \"eValue\", void 0);\n __decorate$B([\n RefSelector('eChildCount')\n ], GroupCellRenderer.prototype, \"eChildCount\", void 0);\n return GroupCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LoadingCellRenderer = /** @class */ (function (_super) {\n __extends$G(LoadingCellRenderer, _super);\n function LoadingCellRenderer() {\n return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;\n }\n LoadingCellRenderer.prototype.init = function (params) {\n params.node.failedLoad ? this.setupFailed() : this.setupLoading();\n };\n LoadingCellRenderer.prototype.setupFailed = function () {\n this.eLoadingText.innerText = 'ERR';\n };\n LoadingCellRenderer.prototype.setupLoading = function () {\n var eLoadingIcon = createIconNoSpan('groupLoading', this.gridOptionsWrapper, null);\n if (eLoadingIcon) {\n this.eLoadingIcon.appendChild(eLoadingIcon);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');\n };\n LoadingCellRenderer.prototype.refresh = function (params) {\n return false;\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n LoadingCellRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n LoadingCellRenderer.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$C([\n RefSelector('eLoadingIcon')\n ], LoadingCellRenderer.prototype, \"eLoadingIcon\", void 0);\n __decorate$C([\n RefSelector('eLoadingText')\n ], LoadingCellRenderer.prototype, \"eLoadingText\", void 0);\n return LoadingCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LoadingOverlayComponent = /** @class */ (function (_super) {\n __extends$H(LoadingOverlayComponent, _super);\n function LoadingOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n LoadingOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n LoadingOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayLoadingTemplate() ?\n this.gridOptionsWrapper.getOverlayLoadingTemplate() : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));\n this.setTemplate(localisedTemplate);\n };\n LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '[LOADING...]';\n return LoadingOverlayComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NoRowsOverlayComponent = /** @class */ (function (_super) {\n __extends$I(NoRowsOverlayComponent, _super);\n function NoRowsOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n NoRowsOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n NoRowsOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayNoRowsTemplate() ?\n this.gridOptionsWrapper.getOverlayNoRowsTemplate() : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));\n this.setTemplate(localisedTemplate);\n };\n NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '[NO_ROWS_TO_SHOW]';\n return NoRowsOverlayComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TooltipComponent = /** @class */ (function (_super) {\n __extends$J(TooltipComponent, _super);\n function TooltipComponent() {\n return _super.call(this, /* html */ \"
\") || this;\n }\n // will need to type params\n TooltipComponent.prototype.init = function (params) {\n var value = params.value;\n this.getGui().innerHTML = escapeString(value);\n };\n return TooltipComponent;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UserComponentRegistry = /** @class */ (function (_super) {\n __extends$K(UserComponentRegistry, _super);\n function UserComponentRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.agGridDefaults = {\n //date\n agDateInput: DefaultDateComponent,\n //header\n agColumnHeader: HeaderComp,\n agColumnGroupHeader: HeaderGroupComp,\n //floating filters\n agTextColumnFloatingFilter: TextFloatingFilter,\n agNumberColumnFloatingFilter: NumberFloatingFilter,\n agDateColumnFloatingFilter: DateFloatingFilter,\n agReadOnlyFloatingFilter: ReadOnlyFloatingFilter,\n // renderers\n agAnimateShowChangeCellRenderer: AnimateShowChangeCellRenderer,\n agAnimateSlideCellRenderer: AnimateSlideCellRenderer,\n agGroupCellRenderer: GroupCellRenderer,\n agGroupRowRenderer: GroupCellRenderer,\n agLoadingCellRenderer: LoadingCellRenderer,\n //editors\n agCellEditor: TextCellEditor,\n agTextCellEditor: TextCellEditor,\n agSelectCellEditor: SelectCellEditor,\n agPopupTextCellEditor: PopupTextCellEditor,\n agPopupSelectCellEditor: PopupSelectCellEditor,\n agLargeTextCellEditor: LargeTextCellEditor,\n //filter\n agTextColumnFilter: TextFilter,\n agNumberColumnFilter: NumberFilter,\n agDateColumnFilter: DateFilter,\n //overlays\n agLoadingOverlay: LoadingOverlayComponent,\n agNoRowsOverlay: NoRowsOverlayComponent,\n // tooltips\n agTooltipComponent: TooltipComponent\n };\n _this.agDeprecatedNames = {\n set: {\n newComponentName: 'agSetColumnFilter',\n propertyHolder: 'filter'\n },\n text: {\n newComponentName: 'agTextColumnFilter',\n propertyHolder: 'filter'\n },\n number: {\n newComponentName: 'agNumberColumnFilter',\n propertyHolder: 'filter'\n },\n date: {\n newComponentName: 'agDateColumnFilter',\n propertyHolder: 'filter'\n },\n group: {\n newComponentName: 'agGroupCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n animateShowChange: {\n newComponentName: 'agAnimateShowChangeCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n animateSlide: {\n newComponentName: 'agAnimateSlideCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n select: {\n newComponentName: 'agSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n largeText: {\n newComponentName: 'agLargeTextCellEditor',\n propertyHolder: 'cellEditor'\n },\n popupSelect: {\n newComponentName: 'agPopupSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n popupText: {\n newComponentName: 'agPopupTextCellEditor',\n propertyHolder: 'cellEditor'\n },\n richSelect: {\n newComponentName: 'agRichSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n headerComponent: {\n newComponentName: 'agColumnHeader',\n propertyHolder: 'headerComponent'\n }\n };\n _this.jsComps = {};\n _this.fwComps = {};\n return _this;\n }\n UserComponentRegistry.prototype.init = function () {\n var _this = this;\n if (this.gridOptions.components != null) {\n iterateObject(this.gridOptions.components, function (key, component) { return _this.registerJsComponent(key, component); });\n }\n if (this.gridOptions.frameworkComponents != null) {\n iterateObject(this.gridOptions.frameworkComponents, function (key, component) { return _this.registerFwComponent(key, component); });\n }\n };\n UserComponentRegistry.prototype.registerDefaultComponent = function (rawName, component) {\n var name = this.translateIfDeprecated(rawName);\n if (this.agGridDefaults[name]) {\n console.error(\"Trying to overwrite a default component. You should call registerComponent\");\n return;\n }\n this.agGridDefaults[name] = component;\n };\n UserComponentRegistry.prototype.registerJsComponent = function (rawName, component) {\n var name = this.translateIfDeprecated(rawName);\n if (this.fwComps[name]) {\n console.error(\"Trying to register a component that you have already registered for frameworks: \" + name);\n return;\n }\n this.jsComps[name] = component;\n };\n /**\n * B the business interface (ie IHeader)\n * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid\n */\n UserComponentRegistry.prototype.registerFwComponent = function (rawName, component) {\n var warningMessage = \"AG Grid: As of v27, registering components via grid property frameworkComponents is deprecated. Instead register both JavaScript AND Framework Components via the components property.\";\n doOnce(function () { return console.warn(warningMessage); }, \"UserComponentRegistry.frameworkComponentsDeprecated\");\n var name = this.translateIfDeprecated(rawName);\n this.fwComps[name] = component;\n };\n UserComponentRegistry.prototype.retrieve = function (rawName) {\n var name = this.translateIfDeprecated(rawName);\n var createResult = function (component, componentFromFramework) { return ({ componentFromFramework: componentFromFramework, component: component }); };\n // FrameworkOverrides.frameworkComponent() is used in two locations:\n // 1) for Vue, user provided components get registered via a framework specific way.\n // 2) for React, it's how the React UI provides alternative default components (eg GroupCellRenderer and DetailCellRenderer)\n var registeredViaFrameworkComp = this.getFrameworkOverrides().frameworkComponent(name);\n if (registeredViaFrameworkComp != null) {\n return createResult(registeredViaFrameworkComp, true);\n }\n var frameworkComponent = this.fwComps[name];\n if (frameworkComponent) {\n return createResult(frameworkComponent, true);\n }\n var jsComponent = this.jsComps[name];\n if (jsComponent) {\n var isFwkComp = this.getFrameworkOverrides().isFrameworkComponent(jsComponent);\n return createResult(jsComponent, isFwkComp);\n }\n var defaultComponent = this.agGridDefaults[name];\n if (defaultComponent) {\n return createResult(defaultComponent, false);\n }\n if (Object.keys(this.agGridDefaults).indexOf(name) < 0) {\n console.warn(\"AG Grid: Looking for component [\" + name + \"] but it wasn't found.\");\n }\n return null;\n };\n UserComponentRegistry.prototype.translateIfDeprecated = function (raw) {\n var deprecatedInfo = this.agDeprecatedNames[raw];\n if (deprecatedInfo != null) {\n doOnce(function () {\n console.warn(\"ag-grid. Since v15.0 component names have been renamed to be namespaced. You should rename \" + deprecatedInfo.propertyHolder + \":\" + raw + \" to \" + deprecatedInfo.propertyHolder + \":\" + deprecatedInfo.newComponentName);\n }, 'DEPRECATE_COMPONENT_' + raw);\n return deprecatedInfo.newComponentName;\n }\n return raw;\n };\n __decorate$D([\n Autowired('gridOptions')\n ], UserComponentRegistry.prototype, \"gridOptions\", void 0);\n __decorate$D([\n Autowired('agComponentUtils')\n ], UserComponentRegistry.prototype, \"agComponentUtils\", void 0);\n __decorate$D([\n PostConstruct\n ], UserComponentRegistry.prototype, \"init\", null);\n UserComponentRegistry = __decorate$D([\n Bean('userComponentRegistry')\n ], UserComponentRegistry);\n return UserComponentRegistry;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar DateComponent = {\n propertyName: 'dateComponent',\n cellRenderer: false\n};\nvar HeaderComponent = {\n propertyName: 'headerComponent',\n cellRenderer: false\n};\nvar HeaderGroupComponent = {\n propertyName: 'headerGroupComponent',\n cellRenderer: false\n};\nvar CellRendererComponent = {\n propertyName: 'cellRenderer',\n cellRenderer: true\n};\nvar CellEditorComponent = {\n propertyName: 'cellEditor',\n cellRenderer: false\n};\nvar InnerRendererComponent = {\n propertyName: 'innerRenderer',\n cellRenderer: true\n};\nvar LoadingOverlayComponent$1 = {\n propertyName: 'loadingOverlayComponent',\n cellRenderer: false\n};\nvar NoRowsOverlayComponent$1 = {\n propertyName: 'noRowsOverlayComponent',\n cellRenderer: false\n};\nvar TooltipComponent$1 = {\n propertyName: 'tooltipComponent',\n cellRenderer: false\n};\nvar FilterComponent = {\n propertyName: 'filter',\n cellRenderer: false\n};\nvar FloatingFilterComponent = {\n propertyName: 'floatingFilterComponent',\n cellRenderer: false\n};\nvar ToolPanelComponent = {\n propertyName: 'toolPanel',\n cellRenderer: false\n};\nvar StatusPanelComponent = {\n propertyName: 'statusPanel',\n cellRenderer: false\n};\nvar FullWidth = {\n propertyName: 'fullWidthCellRenderer',\n cellRenderer: true\n};\nvar FullWidthLoading = {\n propertyName: 'loadingCellRenderer',\n cellRenderer: true\n};\nvar FullWidthGroup = {\n propertyName: 'groupRowRenderer',\n cellRenderer: true\n};\nvar FullWidthDetail = {\n propertyName: 'detailCellRenderer',\n cellRenderer: true\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar FloatingFilterMapper = /** @class */ (function () {\n function FloatingFilterMapper() {\n }\n FloatingFilterMapper.getFloatingFilterType = function (filterType) {\n return this.filterToFloatingFilterMapping[filterType];\n };\n FloatingFilterMapper.filterToFloatingFilterMapping = {\n set: 'agSetColumnFloatingFilter',\n agSetColumnFilter: 'agSetColumnFloatingFilter',\n multi: 'agMultiColumnFloatingFilter',\n agMultiColumnFilter: 'agMultiColumnFloatingFilter',\n number: 'agNumberColumnFloatingFilter',\n agNumberColumnFilter: 'agNumberColumnFloatingFilter',\n date: 'agDateColumnFloatingFilter',\n agDateColumnFilter: 'agDateColumnFloatingFilter',\n text: 'agTextColumnFloatingFilter',\n agTextColumnFilter: 'agTextColumnFloatingFilter'\n };\n return FloatingFilterMapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UserComponentFactory = /** @class */ (function (_super) {\n __extends$L(UserComponentFactory, _super);\n function UserComponentFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n UserComponentFactory.prototype.getHeaderCompDetails = function (colDef, params) {\n return this.getCompDetails(colDef, HeaderComponent, 'agColumnHeader', params);\n };\n UserComponentFactory.prototype.getHeaderGroupCompDetails = function (params) {\n var colGroupDef = params.columnGroup.getColGroupDef();\n return this.getCompDetails(colGroupDef, HeaderGroupComponent, 'agColumnGroupHeader', params);\n };\n // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.\n // so we have to pass the type in.\n UserComponentFactory.prototype.getFullWidthCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidth, null, params, true);\n };\n UserComponentFactory.prototype.getFullWidthLoadingCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthLoading, 'agLoadingCellRenderer', params, true);\n };\n UserComponentFactory.prototype.getFullWidthGroupCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthGroup, 'agGroupRowRenderer', params, true);\n };\n UserComponentFactory.prototype.getFullWidthDetailCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthDetail, 'agDetailCellRenderer', params, true);\n };\n // CELL RENDERER\n UserComponentFactory.prototype.getInnerRendererDetails = function (def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getFullWidthGroupRowInnerCellRenderer = function (def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getCellRendererDetails = function (def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n };\n // CELL EDITOR\n UserComponentFactory.prototype.getCellEditorDetails = function (def, params) {\n return this.getCompDetails(def, CellEditorComponent, 'agCellEditor', params, true);\n };\n // FILTER\n UserComponentFactory.prototype.getFilterDetails = function (def, params, defaultFilter) {\n return this.getCompDetails(def, FilterComponent, defaultFilter, params, true);\n };\n UserComponentFactory.prototype.getDateCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, DateComponent, 'agDateInput', params, true);\n };\n UserComponentFactory.prototype.getLoadingOverlayCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, LoadingOverlayComponent$1, 'agLoadingOverlay', params, true);\n };\n UserComponentFactory.prototype.getNoRowsOverlayCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, NoRowsOverlayComponent$1, 'agNoRowsOverlay', params, true);\n };\n UserComponentFactory.prototype.getTooltipCompDetails = function (params) {\n return this.getCompDetails(params.colDef, TooltipComponent$1, 'agTooltipComponent', params, true);\n };\n UserComponentFactory.prototype.getSetFilterCellRendererDetails = function (def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getFloatingFilterCompDetails = function (def, params, defaultFloatingFilter) {\n return this.getCompDetails(def, FloatingFilterComponent, defaultFloatingFilter, params);\n };\n UserComponentFactory.prototype.getToolPanelCompDetails = function (toolPanelDef, params) {\n return this.getCompDetails(toolPanelDef, ToolPanelComponent, null, params, true);\n };\n UserComponentFactory.prototype.getStatusPanelCompDetails = function (def, params) {\n return this.getCompDetails(def, StatusPanelComponent, null, params, true);\n };\n UserComponentFactory.prototype.getCompDetails = function (defObject, type, defaultName, params, mandatory) {\n var _this = this;\n if (mandatory === void 0) { mandatory = false; }\n var propertyName = type.propertyName, cellRenderer = type.cellRenderer;\n var _a = this.getCompKeys(defObject, type, params), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp, paramsFromSelector = _a.paramsFromSelector, popupFromSelector = _a.popupFromSelector, popupPositionFromSelector = _a.popupPositionFromSelector;\n var lookupFromRegistry = function (key) {\n var item = _this.userComponentRegistry.retrieve(key);\n if (item) {\n jsComp = !item.componentFromFramework ? item.component : undefined;\n fwComp = item.componentFromFramework ? item.component : undefined;\n }\n };\n // if compOption is a string, means we need to look the item up\n if (compName != null) {\n lookupFromRegistry(compName);\n }\n // if lookup brought nothing back, and we have a default, lookup the default\n if (jsComp == null && fwComp == null && defaultName != null) {\n lookupFromRegistry(defaultName);\n }\n // if we have a comp option, and it's a function, replace it with an object equivalent adaptor\n if (jsComp && cellRenderer && !this.agComponentUtils.doesImplementIComponent(jsComp)) {\n jsComp = this.agComponentUtils.adaptFunction(propertyName, jsComp);\n }\n if (!jsComp && !fwComp) {\n if (mandatory) {\n console.error(\"Could not find component \" + compName + \", did you forget to configure this component?\");\n }\n return;\n }\n var paramsMerged = this.mergeParamsWithApplicationProvidedParams(defObject, type, params, paramsFromSelector);\n var componentFromFramework = jsComp == null;\n var componentClass = jsComp ? jsComp : fwComp;\n return {\n componentFromFramework: componentFromFramework,\n componentClass: componentClass,\n params: paramsMerged,\n type: type,\n popupFromSelector: popupFromSelector,\n popupPositionFromSelector: popupPositionFromSelector,\n newAgStackInstance: function () { return _this.newAgStackInstance(componentClass, componentFromFramework, paramsMerged, type); }\n };\n };\n UserComponentFactory.prototype.getCompKeys = function (defObject, type, params) {\n var _this = this;\n var propertyName = type.propertyName;\n var compName;\n var jsComp;\n var fwComp;\n var paramsFromSelector;\n var popupFromSelector;\n var popupPositionFromSelector;\n // there are two types of js comps, class based and func based. we can only check for\n // class based, by checking if getGui() exists. no way to differentiate js func based vs eg react func based\n // const isJsClassComp = (comp: any) => this.agComponentUtils.doesImplementIComponent(comp);\n // const fwActive = this.frameworkComponentWrapper != null;\n // pull from defObject if available\n if (defObject) {\n var defObjectAny = defObject;\n // if selector, use this\n var selectorFunc = defObjectAny[propertyName + 'Selector'];\n var selectorRes = selectorFunc ? selectorFunc(params) : null;\n var assignComp = function (providedJsComp, providedFwComp) {\n var xxxFrameworkDeprecatedWarn = function () {\n var warningMessage = \"AG Grid: As of v27, the property \" + propertyName + \"Framework is deprecated. The property \" + propertyName + \" can now be used for JavaScript AND Framework Components.\";\n doOnce(function () { return console.warn(warningMessage); }, \"UserComponentFactory.\" + propertyName + \"FrameworkDeprecated\");\n };\n if (typeof providedJsComp === 'string') {\n compName = providedJsComp;\n }\n else if (typeof providedFwComp === 'string') {\n xxxFrameworkDeprecatedWarn();\n compName = providedFwComp;\n // comp===true for filters, which means use the default comp\n }\n else if (providedJsComp != null && providedJsComp !== true) {\n var isFwkComp = _this.getFrameworkOverrides().isFrameworkComponent(providedJsComp);\n if (isFwkComp) {\n fwComp = providedJsComp;\n }\n else {\n jsComp = providedJsComp;\n }\n }\n else if (providedFwComp != null) {\n xxxFrameworkDeprecatedWarn();\n fwComp = providedFwComp;\n }\n };\n if (selectorRes) {\n if (selectorRes.frameworkComponent != null) {\n var warningMessage_1 = \"AG Grid: As of v27, the return for \" + propertyName + \"Selector has attributes [component, params] only. The attribute frameworkComponent is deprecated. You should now return back Framework Components using the 'component' attribute and the grid works out if it's a framework component or not.\";\n doOnce(function () { return console.warn(warningMessage_1); }, \"UserComponentFactory.\" + propertyName + \"FrameworkSelectorDeprecated\");\n assignComp(selectorRes.frameworkComponent, undefined);\n }\n else {\n assignComp(selectorRes.component, undefined);\n }\n paramsFromSelector = selectorRes.params;\n popupFromSelector = selectorRes.popup;\n popupPositionFromSelector = selectorRes.popupPosition;\n }\n else {\n // if no selector, or result of selector is empty, take from defObject\n assignComp(defObjectAny[propertyName], defObjectAny[propertyName + 'Framework']);\n }\n }\n return { compName: compName, jsComp: jsComp, fwComp: fwComp, paramsFromSelector: paramsFromSelector, popupFromSelector: popupFromSelector, popupPositionFromSelector: popupPositionFromSelector };\n };\n UserComponentFactory.prototype.newAgStackInstance = function (ComponentClass, componentFromFramework, params, type) {\n var propertyName = type.propertyName;\n var jsComponent = !componentFromFramework;\n // using javascript component\n var instance;\n if (jsComponent) {\n instance = new ComponentClass();\n }\n else {\n // Using framework component\n var thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);\n instance = this.frameworkComponentWrapper.wrap(ComponentClass, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, type);\n }\n var deferredInit = this.initComponent(instance, params);\n if (deferredInit == null) {\n return AgPromise.resolve(instance);\n }\n return deferredInit.then(function () { return instance; });\n };\n // used by Floating Filter\n UserComponentFactory.prototype.mergeParamsWithApplicationProvidedParams = function (defObject, type, paramsFromGrid, paramsFromSelector) {\n if (paramsFromSelector === void 0) { paramsFromSelector = null; }\n var params = {\n context: this.gridOptionsWrapper.getContext(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n api: this.gridOptionsWrapper.getApi()\n };\n mergeDeep(params, paramsFromGrid);\n // pull user params from either the old prop name and new prop name\n // eg either cellRendererParams and cellCompParams\n var defObjectAny = defObject;\n var userParams = defObjectAny && defObjectAny[type.propertyName + 'Params'];\n if (typeof userParams === 'function') {\n var userParamsFromFunc = userParams(paramsFromGrid);\n mergeDeep(params, userParamsFromFunc);\n }\n else if (typeof userParams === 'object') {\n mergeDeep(params, userParams);\n }\n mergeDeep(params, paramsFromSelector);\n return params;\n };\n UserComponentFactory.prototype.initComponent = function (component, params) {\n this.context.createBean(component);\n if (component.init == null) {\n return;\n }\n return component.init(params);\n };\n UserComponentFactory.prototype.getDefaultFloatingFilterType = function (def) {\n if (def == null) {\n return null;\n }\n var defaultFloatingFilterType = null;\n var _a = this.getCompKeys(def, FilterComponent), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp;\n if (compName) {\n // will be undefined if not in the map\n defaultFloatingFilterType = FloatingFilterMapper.getFloatingFilterType(compName);\n }\n else {\n var usingDefaultFilter = (jsComp == null && fwComp == null) && (def.filter === true);\n if (usingDefaultFilter) {\n var setFilterModuleLoaded = ModuleRegistry.isRegistered(exports.ModuleNames.SetFilterModule);\n defaultFloatingFilterType = setFilterModuleLoaded ? 'agSetColumnFloatingFilter' : 'agTextColumnFloatingFilter';\n }\n }\n return defaultFloatingFilterType;\n };\n __decorate$E([\n Autowired('gridOptions')\n ], UserComponentFactory.prototype, \"gridOptions\", void 0);\n __decorate$E([\n Autowired('agComponentUtils')\n ], UserComponentFactory.prototype, \"agComponentUtils\", void 0);\n __decorate$E([\n Autowired('componentMetadataProvider')\n ], UserComponentFactory.prototype, \"componentMetadataProvider\", void 0);\n __decorate$E([\n Autowired('userComponentRegistry')\n ], UserComponentFactory.prototype, \"userComponentRegistry\", void 0);\n __decorate$E([\n Optional('frameworkComponentWrapper')\n ], UserComponentFactory.prototype, \"frameworkComponentWrapper\", void 0);\n UserComponentFactory = __decorate$E([\n Bean('userComponentFactory')\n ], UserComponentFactory);\n return UserComponentFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (ExcelFactoryMode) {\n ExcelFactoryMode[ExcelFactoryMode[\"SINGLE_SHEET\"] = 0] = \"SINGLE_SHEET\";\n ExcelFactoryMode[ExcelFactoryMode[\"MULTI_SHEET\"] = 1] = \"MULTI_SHEET\";\n})(exports.ExcelFactoryMode || (exports.ExcelFactoryMode = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,\n * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */\nvar DragService = /** @class */ (function (_super) {\n __extends$M(DragService, _super);\n function DragService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragEndFunctions = [];\n _this.dragSources = [];\n return _this;\n }\n DragService.prototype.init = function () {\n this.logger = this.loggerFactory.create('DragService');\n };\n DragService.prototype.removeAllListeners = function () {\n this.dragSources.forEach(this.removeListener.bind(this));\n this.dragSources.length = 0;\n };\n DragService.prototype.removeListener = function (dragSourceAndListener) {\n var element = dragSourceAndListener.dragSource.eElement;\n var mouseDownListener = dragSourceAndListener.mouseDownListener;\n element.removeEventListener('mousedown', mouseDownListener);\n // remove touch listener only if it exists\n if (dragSourceAndListener.touchEnabled) {\n var touchStartListener = dragSourceAndListener.touchStartListener;\n element.removeEventListener('touchstart', touchStartListener, { passive: true });\n }\n };\n DragService.prototype.removeDragSource = function (params) {\n var dragSourceAndListener = this.dragSources.find(function (item) { return item.dragSource === params; });\n if (!dragSourceAndListener) {\n return;\n }\n this.removeListener(dragSourceAndListener);\n removeFromArray(this.dragSources, dragSourceAndListener);\n };\n DragService.prototype.isDragging = function () {\n return this.dragging;\n };\n DragService.prototype.addDragSource = function (params, includeTouch) {\n var _this = this;\n if (includeTouch === void 0) { includeTouch = false; }\n var mouseListener = this.onMouseDown.bind(this, params);\n params.eElement.addEventListener('mousedown', mouseListener);\n var touchListener = null;\n var suppressTouch = this.gridOptionsWrapper.isSuppressTouch();\n if (includeTouch && !suppressTouch) {\n touchListener = function (touchEvent) {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault();\n }\n _this.onTouchStart(params, touchEvent);\n };\n params.eElement.addEventListener('touchstart', touchListener, { passive: true });\n }\n this.dragSources.push({\n dragSource: params,\n mouseDownListener: mouseListener,\n touchStartListener: touchListener,\n touchEnabled: includeTouch\n });\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onTouchStart = function (params, touchEvent) {\n var _this = this;\n this.currentDragParams = params;\n this.dragging = false;\n var touch = touchEvent.touches[0];\n this.touchLastTime = touch;\n this.touchStart = touch;\n var touchMoveEvent = function (e) { return _this.onTouchMove(e, params.eElement); };\n var touchEndEvent = function (e) { return _this.onTouchUp(e, params.eElement); };\n var documentTouchMove = function (e) { if (e.cancelable) {\n e.preventDefault();\n } };\n var target = params.eElement;\n var events = [\n // Prevents the page document from moving while we are dragging items around.\n // preventDefault needs to be called in the touchmove listener and never inside the\n // touchstart, because using touchstart causes the click event to be cancelled on touch devices.\n { target: document, type: 'touchmove', listener: documentTouchMove, options: { passive: false } },\n { target: target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },\n { target: target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },\n { target: target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n // see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onCommonMove(touch, this.touchStart, params.eElement);\n }\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onMouseDown = function (params, mouseEvent) {\n var _this = this;\n var e = mouseEvent;\n if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {\n return;\n }\n // if there are two elements with parent / child relationship, and both are draggable,\n // when we drag the child, we should NOT drag the parent. an example of this is row moving\n // and range selection - row moving should get preference when use drags the rowDrag component.\n if (e._alreadyProcessedByDragService) {\n return;\n }\n e._alreadyProcessedByDragService = true;\n // only interested in left button clicks\n if (mouseEvent.button !== 0) {\n return;\n }\n this.currentDragParams = params;\n this.dragging = false;\n this.mouseStartEvent = mouseEvent;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var mouseMoveEvent = function (event) { return _this.onMouseMove(event, params.eElement); };\n var mouseUpEvent = function (event) { return _this.onMouseUp(event, params.eElement); };\n var contextEvent = function (event) { return event.preventDefault(); };\n var target = eDocument;\n var events = [\n { target: target, type: 'mousemove', listener: mouseMoveEvent },\n { target: target, type: 'mouseup', listener: mouseUpEvent },\n { target: target, type: 'contextmenu', listener: contextEvent }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n //see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onMouseMove(mouseEvent, params.eElement);\n }\n };\n DragService.prototype.addTemporaryEvents = function (events) {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.addEventListener(type, listener, options);\n });\n this.dragEndFunctions.push(function () {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.removeEventListener(type, listener, options);\n });\n });\n };\n // returns true if the event is close to the original event by X pixels either vertically or horizontally.\n // we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {\n // by default, we wait 4 pixels before starting the drag\n var dragStartPixels = this.currentDragParams.dragStartPixels;\n var requiredPixelDiff = exists(dragStartPixels) ? dragStartPixels : 4;\n return areEventsNear(currentEvent, startEvent, requiredPixelDiff);\n };\n DragService.prototype.getFirstActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this.touchStart.identifier) {\n return touchList[i];\n }\n }\n return null;\n };\n DragService.prototype.onCommonMove = function (currentEvent, startEvent, el) {\n if (!this.dragging) {\n // if mouse hasn't travelled from the start position enough, do nothing\n if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {\n return;\n }\n this.dragging = true;\n var event_1 = {\n type: Events.EVENT_DRAG_STARTED,\n api: this.gridApi,\n columnApi: this.columnApi,\n target: el\n };\n this.eventService.dispatchEvent(event_1);\n this.currentDragParams.onDragStart(startEvent);\n // we need ONE drag action at the startEvent, so that we are guaranteed the drop target\n // at the start gets notified. this is because the drag can start outside of the element\n // that started it, as the mouse is allowed drag away from the mouse down before it's\n // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then\n // it would be possible to click a column by the edge, then drag outside of the drop zone\n // in less than 4 pixels and the drag officially starts outside of the header but the header\n // wouldn't be notified of the dragging.\n this.currentDragParams.onDragging(startEvent);\n }\n this.currentDragParams.onDragging(currentEvent);\n };\n DragService.prototype.onTouchMove = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');\n this.onCommonMove(touch, this.touchStart, el);\n };\n // only gets called after a mouse down - as this is only added after mouseDown\n // and is removed when mouseUp happens\n DragService.prototype.onMouseMove = function (mouseEvent, el) {\n // The event type can be `mousedown` when `dragStartPixels=0`\n // we should only preventDefault on `mousemove`.\n if (isBrowserSafari() &&\n mouseEvent.type === 'mousemove' &&\n mouseEvent.cancelable &&\n this.mouseEventService.isEventFromThisGrid(mouseEvent) &&\n !this.isOverFormFieldElement(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.onCommonMove(mouseEvent, this.mouseStartEvent, el);\n };\n DragService.prototype.isOverFormFieldElement = function (mouseEvent) {\n var _a, _b;\n var el = mouseEvent.target;\n var tagName = (_a = el) === null || _a === void 0 ? void 0 : _a.tagName.toLocaleLowerCase();\n return !!((_b = tagName) === null || _b === void 0 ? void 0 : _b.match('^a$|textarea|input|select|button'));\n };\n DragService.prototype.onTouchUp = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.changedTouches);\n // i haven't worked this out yet, but there is no matching touch\n // when we get the touch up event. to get around this, we swap in\n // the last touch. this is a hack to 'get it working' while we\n // figure out what's going on, why we are not getting a touch in\n // current event.\n if (!touch) {\n touch = this.touchLastTime;\n }\n // if mouse was left up before we started to move, then this is a tap.\n // we check this before onUpCommon as onUpCommon resets the dragging\n // let tap = !this.dragging;\n // let tapTarget = this.currentDragParams.eElement;\n this.onUpCommon(touch, el);\n // if tap, tell user\n // console.log(`${Math.random()} tap = ${tap}`);\n // if (tap) {\n // tapTarget.click();\n // }\n };\n DragService.prototype.onMouseUp = function (mouseEvent, el) {\n this.onUpCommon(mouseEvent, el);\n };\n DragService.prototype.onUpCommon = function (eventOrTouch, el) {\n if (this.dragging) {\n this.dragging = false;\n this.currentDragParams.onDragStop(eventOrTouch);\n var event_2 = {\n type: Events.EVENT_DRAG_STOPPED,\n api: this.gridApi,\n columnApi: this.columnApi,\n target: el\n };\n this.eventService.dispatchEvent(event_2);\n }\n this.mouseStartEvent = null;\n this.touchStart = null;\n this.touchLastTime = null;\n this.currentDragParams = null;\n this.dragEndFunctions.forEach(function (func) { return func(); });\n this.dragEndFunctions.length = 0;\n };\n __decorate$F([\n Autowired('loggerFactory')\n ], DragService.prototype, \"loggerFactory\", void 0);\n __decorate$F([\n Autowired('columnApi')\n ], DragService.prototype, \"columnApi\", void 0);\n __decorate$F([\n Autowired('gridApi')\n ], DragService.prototype, \"gridApi\", void 0);\n __decorate$F([\n Autowired('mouseEventService')\n ], DragService.prototype, \"mouseEventService\", void 0);\n __decorate$F([\n PostConstruct\n ], DragService.prototype, \"init\", null);\n __decorate$F([\n PreDestroy\n ], DragService.prototype, \"removeAllListeners\", null);\n DragService = __decorate$F([\n Bean('dragService')\n ], DragService);\n return DragService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$8 = (undefined && undefined.__assign) || function () {\n __assign$8 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$8.apply(this, arguments);\n};\nvar __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterManager = /** @class */ (function (_super) {\n __extends$N(FilterManager, _super);\n function FilterManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.allColumnFilters = new Map();\n _this.activeAggregateFilters = [];\n _this.activeColumnFilters = [];\n _this.quickFilter = null;\n _this.quickFilterParts = null;\n // this is true when the grid is processing the filter change. this is used by the cell comps, so that they\n // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the\n // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where\n // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)\n // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.\n _this.processingFilterChange = false;\n return _this;\n }\n FilterManager_1 = FilterManager;\n FilterManager.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.quickFilter = this.parseQuickFilter(this.gridOptionsWrapper.getQuickFilterText());\n this.setQuickFilterParts();\n this.allowShowChangeAfterFilter = this.gridOptionsWrapper.isAllowShowChangeAfterFilter();\n };\n FilterManager.prototype.setQuickFilterParts = function () {\n this.quickFilterParts = this.quickFilter ? this.quickFilter.split(' ') : null;\n };\n FilterManager.prototype.setFilterModel = function (model) {\n var _this = this;\n var allPromises = [];\n var previousModel = this.getFilterModel();\n if (model) {\n // mark the filters as we set them, so any active filters left over we stop\n var modelKeys_1 = convertToSet(Object.keys(model));\n this.allColumnFilters.forEach(function (filterWrapper, colId) {\n var newModel = model[colId];\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));\n modelKeys_1.delete(colId);\n });\n // at this point, processedFields contains data for which we don't have a filter working yet\n modelKeys_1.forEach(function (colId) {\n var column = _this.columnModel.getPrimaryColumn(colId) || _this.columnModel.getGridColumn(colId);\n if (!column) {\n console.warn('AG Grid: setFilterModel() - no column found for colId: ' + colId);\n return;\n }\n if (!column.isFilterAllowed()) {\n console.warn('AG Grid: setFilterModel() - unable to fully apply model, filtering disabled for colId: ' + colId);\n return;\n }\n var filterWrapper = _this.getOrCreateFilterWrapper(column, 'NO_UI');\n if (!filterWrapper) {\n console.warn('AG-Grid: setFilterModel() - unable to fully apply model, unable to create filter for colId: ' + colId);\n return;\n }\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));\n });\n }\n else {\n this.allColumnFilters.forEach(function (filterWrapper) {\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));\n });\n }\n AgPromise.all(allPromises).then(function () {\n var currentModel = _this.getFilterModel();\n var columns = [];\n _this.allColumnFilters.forEach(function (filterWrapper, colId) {\n var before = previousModel ? previousModel[colId] : null;\n var after = currentModel ? currentModel[colId] : null;\n if (!_.jsonEquals(before, after)) {\n columns.push(filterWrapper.column);\n }\n });\n if (columns.length > 0) {\n _this.onFilterChanged({ columns: columns });\n }\n });\n };\n FilterManager.prototype.setModelOnFilterWrapper = function (filterPromise, newModel) {\n return new AgPromise(function (resolve) {\n filterPromise.then(function (filter) {\n if (typeof filter.setModel !== 'function') {\n console.warn('AG Grid: filter missing setModel method, which is needed for setFilterModel');\n resolve();\n }\n (filter.setModel(newModel) || AgPromise.resolve()).then(function () { return resolve(); });\n });\n });\n };\n FilterManager.prototype.getFilterModel = function () {\n var result = {};\n this.allColumnFilters.forEach(function (filterWrapper, key) {\n // because user can provide filters, we provide useful error checking and messages\n var filterPromise = filterWrapper.filterPromise;\n var filter = filterPromise.resolveNow(null, function (promiseFilter) { return promiseFilter; });\n if (filter == null) {\n return null;\n }\n if (typeof filter.getModel !== 'function') {\n console.warn('AG Grid: filter API missing getModel method, which is needed for getFilterModel');\n return;\n }\n var model = filter.getModel();\n if (exists(model)) {\n result[key] = model;\n }\n });\n return result;\n };\n FilterManager.prototype.isColumnFilterPresent = function () {\n return this.activeColumnFilters.length > 0;\n };\n FilterManager.prototype.isAggregateFilterPresent = function () {\n return !!this.activeAggregateFilters.length;\n };\n FilterManager.prototype.doAggregateFiltersPass = function (node, filterToSkip) {\n return this.doColumnFiltersPass(node, filterToSkip, true);\n };\n // called by:\n // 1) onFilterChanged()\n // 2) onNewRowsLoaded()\n FilterManager.prototype.updateActiveFilters = function () {\n var _this = this;\n this.activeColumnFilters.length = 0;\n this.activeAggregateFilters.length = 0;\n var isFilterActive = function (filter) {\n if (!filter) {\n return false;\n } // this never happens, including to avoid compile error\n if (!filter.isFilterActive) {\n console.warn('AG Grid: Filter is missing isFilterActive() method');\n return false;\n }\n return filter.isFilterActive();\n };\n var groupFilterEnabled = !!this.gridOptionsWrapper.getGroupAggFiltering();\n var isAggFilter = function (column) {\n var isSecondary = !column.isPrimary();\n // the only filters that can appear on secondary columns are groupAgg filters\n if (isSecondary) {\n return true;\n }\n var isShowingPrimaryColumns = !_this.columnModel.isPivotActive();\n var isValueActive = column.isValueActive();\n // primary columns are only ever groupAgg filters if a) value is active and b) showing primary columns\n if (!isValueActive || !isShowingPrimaryColumns) {\n return false;\n }\n // from here on we know: isPrimary=true, isValueActive=true, isShowingPrimaryColumns=true\n if (_this.columnModel.isPivotMode()) {\n // primary column is pretending to be a pivot column, ie pivotMode=true, but we are\n // still showing primary columns\n return true;\n }\n else {\n // we are not pivoting, so we groupFilter when it's an agg column\n return groupFilterEnabled;\n }\n };\n this.allColumnFilters.forEach(function (filterWrapper) {\n if (filterWrapper.filterPromise.resolveNow(false, isFilterActive)) {\n var filterComp = filterWrapper.filterPromise.resolveNow(null, function (filter) { return filter; });\n if (isAggFilter(filterWrapper.column)) {\n _this.activeAggregateFilters.push(filterComp);\n }\n else {\n _this.activeColumnFilters.push(filterComp);\n }\n }\n });\n };\n FilterManager.prototype.updateFilterFlagInColumns = function (source, additionalEventAttributes) {\n this.allColumnFilters.forEach(function (filterWrapper) {\n var isFilterActive = filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);\n });\n };\n FilterManager.prototype.isAnyFilterPresent = function () {\n return this.isQuickFilterPresent() || this.isColumnFilterPresent() || this.isAggregateFilterPresent() || this.gridOptionsWrapper.isExternalFilterPresent();\n };\n FilterManager.prototype.doColumnFiltersPass = function (node, filterToSkip, targetAggregates) {\n var data = node.data, aggData = node.aggData;\n var targetedFilters = targetAggregates ? this.activeAggregateFilters : this.activeColumnFilters;\n var targetedData = targetAggregates ? aggData : data;\n for (var i = 0; i < targetedFilters.length; i++) {\n var filter = targetedFilters[i];\n if (filter == null || filter === filterToSkip) {\n continue;\n }\n if (typeof filter.doesFilterPass !== 'function') {\n // because users can do custom filters, give nice error message\n throw new Error('Filter is missing method doesFilterPass');\n }\n if (!filter.doesFilterPass({ node: node, data: targetedData })) {\n return false;\n }\n }\n return true;\n };\n FilterManager.prototype.parseQuickFilter = function (newFilter) {\n if (!exists(newFilter)) {\n return null;\n }\n if (!this.gridOptionsWrapper.isRowModelDefault()) {\n console.warn('AG Grid - Quick filtering only works with the Client-Side Row Model');\n return null;\n }\n return newFilter.toUpperCase();\n };\n FilterManager.prototype.setQuickFilter = function (newFilter) {\n if (newFilter != null && typeof newFilter !== 'string') {\n console.warn(\"AG Grid - setQuickFilter() only supports string inputs, received: \" + typeof newFilter);\n return;\n }\n var parsedFilter = this.parseQuickFilter(newFilter);\n if (this.quickFilter !== parsedFilter) {\n this.quickFilter = parsedFilter;\n this.setQuickFilterParts();\n this.onFilterChanged();\n }\n };\n FilterManager.prototype.refreshFiltersForAggregations = function () {\n var isAggFiltering = this.gridOptionsWrapper.getGroupAggFiltering();\n if (isAggFiltering) {\n this.onFilterChanged();\n }\n };\n // sometimes (especially in React) the filter can call onFilterChanged when we are in the middle\n // of a render cycle. this would be bad, so we wait for render cycle to complete when this happens.\n // this happens in react when we change React State in the grid (eg setting RowCtrl's in RowContainer)\n // which results in React State getting applied in the main application, triggering a useEffect() to\n // be kicked off adn then the application calling the grid's API. in AG-6554, the custom filter was\n // getting it's useEffect() triggered in this way.\n FilterManager.prototype.callOnFilterChangedOutsideRenderCycle = function (params) {\n var _this = this;\n if (params === void 0) { params = {}; }\n var action = function () { return _this.onFilterChanged(params); };\n if (this.rowRenderer.isRefreshInProgress()) {\n setTimeout(action, 0);\n }\n else {\n action();\n }\n };\n FilterManager.prototype.onFilterChanged = function (params) {\n if (params === void 0) { params = {}; }\n var filterInstance = params.filterInstance, additionalEventAttributes = params.additionalEventAttributes, columns = params.columns;\n this.updateActiveFilters();\n this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);\n this.allColumnFilters.forEach(function (filterWrapper) {\n if (!filterWrapper.filterPromise) {\n return;\n }\n filterWrapper.filterPromise.then(function (filter) {\n if (filter && filter !== filterInstance && filter.onAnyFilterChanged) {\n filter.onAnyFilterChanged();\n }\n });\n });\n var filterChangedEvent = {\n type: Events.EVENT_FILTER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi,\n columns: columns || [],\n };\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n // because internal events are not async in ag-grid, when the dispatchEvent\n // method comes back, we know all listeners have finished executing.\n this.processingFilterChange = true;\n this.eventService.dispatchEvent(filterChangedEvent);\n this.processingFilterChange = false;\n };\n FilterManager.prototype.isSuppressFlashingCellsBecauseFiltering = function () {\n // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing\n // changes when filtering\n return !this.allowShowChangeAfterFilter && this.processingFilterChange;\n };\n FilterManager.prototype.isQuickFilterPresent = function () {\n return this.quickFilter !== null;\n };\n FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {\n return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });\n };\n FilterManager.prototype.doesRowPassQuickFilterNoCache = function (node, filterPart) {\n var _this = this;\n var columns = this.columnModel.getAllColumnsForQuickFilter();\n return columns.some(function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n return exists(part) && part.indexOf(filterPart) >= 0;\n });\n };\n FilterManager.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {\n if (!node.quickFilterAggregateText) {\n this.aggregateRowForQuickFilter(node);\n }\n return node.quickFilterAggregateText.indexOf(filterPart) >= 0;\n };\n FilterManager.prototype.doesRowPassQuickFilter = function (node) {\n var _this = this;\n var usingCache = this.gridOptionsWrapper.isCacheQuickFilter();\n // each part must pass, if any fails, then the whole filter fails\n return this.quickFilterParts.every(function (part) {\n return usingCache ? _this.doesRowPassQuickFilterCache(node, part) : _this.doesRowPassQuickFilterNoCache(node, part);\n });\n };\n FilterManager.prototype.doesRowPassAggregateFilters = function (params) {\n if (this.isAggregateFilterPresent() && !this.doAggregateFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n };\n FilterManager.prototype.doesRowPassFilter = function (params) {\n // the row must pass ALL of the filters, so if any of them fail,\n // we return true. that means if a row passes the quick filter,\n // but fails the column filter, it fails overall\n // first up, check quick filter\n if (this.isQuickFilterPresent() && !this.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n // secondly, give the client a chance to reject this row\n if (this.gridOptionsWrapper.isExternalFilterPresent() && !this.gridOptionsWrapper.doesExternalFilterPass(params.rowNode)) {\n return false;\n }\n // lastly, check column filter\n if (this.isColumnFilterPresent() && !this.doColumnFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n };\n FilterManager.prototype.getQuickFilterTextForColumn = function (column, node) {\n var value = this.valueService.getValue(column, node, true);\n var colDef = column.getColDef();\n if (colDef.getQuickFilterText) {\n var params = {\n value: value,\n node: node,\n data: node.data,\n column: column,\n colDef: colDef,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n value = colDef.getQuickFilterText(params);\n }\n return exists(value) ? value.toString().toUpperCase() : null;\n };\n FilterManager.prototype.aggregateRowForQuickFilter = function (node) {\n var _this = this;\n var stringParts = [];\n var columns = this.columnModel.getAllColumnsForQuickFilter();\n columns.forEach(function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n if (exists(part)) {\n stringParts.push(part);\n }\n });\n node.quickFilterAggregateText = stringParts.join(FilterManager_1.QUICK_FILTER_SEPARATOR);\n };\n FilterManager.prototype.onNewRowsLoaded = function (source) {\n this.allColumnFilters.forEach(function (filterWrapper) {\n filterWrapper.filterPromise.then(function (filter) {\n if (filter.onNewRowsLoaded) {\n filter.onNewRowsLoaded();\n }\n });\n });\n this.updateFilterFlagInColumns(source);\n this.updateActiveFilters();\n };\n FilterManager.prototype.createValueGetter = function (column) {\n var _this = this;\n return function (_a) {\n var node = _a.node;\n return _this.valueService.getValue(column, node, true);\n };\n };\n FilterManager.prototype.getFilterComponent = function (column, source, createIfDoesNotExist) {\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\n var _a;\n if (createIfDoesNotExist) {\n return ((_a = this.getOrCreateFilterWrapper(column, source)) === null || _a === void 0 ? void 0 : _a.filterPromise) || null;\n }\n var filterWrapper = this.cachedFilter(column);\n return filterWrapper ? filterWrapper.filterPromise : null;\n };\n FilterManager.prototype.isFilterActive = function (column) {\n var filterWrapper = this.cachedFilter(column);\n return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n };\n FilterManager.prototype.getOrCreateFilterWrapper = function (column, source) {\n if (!column.isFilterAllowed()) {\n return null;\n }\n var filterWrapper = this.cachedFilter(column);\n if (!filterWrapper) {\n filterWrapper = this.createFilterWrapper(column, source);\n this.allColumnFilters.set(column.getColId(), filterWrapper);\n }\n else if (source !== 'NO_UI') {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.cachedFilter = function (column) {\n return this.allColumnFilters.get(column.getColId());\n };\n FilterManager.prototype.createFilterInstance = function (column) {\n var _this = this;\n var defaultFilter = ModuleRegistry.isRegistered(exports.ModuleNames.SetFilterModule) ? 'agSetColumnFilter' : 'agTextColumnFilter';\n var colDef = column.getColDef();\n var filterInstance;\n var params = __assign$8(__assign$8({}, this.createFilterParams(column, colDef)), { filterModifiedCallback: function () {\n var event = {\n type: Events.EVENT_FILTER_MODIFIED,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n column: column,\n filterInstance: filterInstance\n };\n _this.eventService.dispatchEvent(event);\n }, filterChangedCallback: function (additionalEventAttributes) {\n var params = { filterInstance: filterInstance, additionalEventAttributes: additionalEventAttributes, columns: [column] };\n _this.callOnFilterChangedOutsideRenderCycle(params);\n }, doesRowPassOtherFilter: function (node) { return _this.doesRowPassOtherFilters(filterInstance, node); } });\n var compDetails = this.userComponentFactory.getFilterDetails(colDef, params, defaultFilter);\n if (!compDetails) {\n return null;\n }\n var componentPromise = compDetails.newAgStackInstance();\n if (componentPromise) {\n componentPromise.then(function (r) { return filterInstance = r; });\n }\n return componentPromise;\n };\n FilterManager.prototype.createFilterParams = function (column, colDef) {\n var params = {\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n column: column,\n colDef: cloneObject(colDef),\n rowModel: this.rowModel,\n filterChangedCallback: function () { },\n filterModifiedCallback: function () { },\n valueGetter: this.createValueGetter(column),\n context: this.gridOptionsWrapper.getContext(),\n doesRowPassOtherFilter: function () { return true; },\n };\n return params;\n };\n FilterManager.prototype.createFilterWrapper = function (column, source) {\n var filterWrapper = {\n column: column,\n filterPromise: null,\n compiledElement: null,\n guiPromise: AgPromise.resolve(null)\n };\n filterWrapper.filterPromise = this.createFilterInstance(column);\n if (filterWrapper.filterPromise) {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.putIntoGui = function (filterWrapper, source) {\n var _this = this;\n var eFilterGui = document.createElement('div');\n eFilterGui.className = 'ag-filter';\n filterWrapper.guiPromise = new AgPromise(function (resolve) {\n filterWrapper.filterPromise.then(function (filter) {\n var guiFromFilter = filter.getGui();\n if (!exists(guiFromFilter)) {\n console.warn(\"AG Grid: getGui method from filter returned \" + guiFromFilter + \", it should be a DOM element or an HTML template string.\");\n }\n // for backwards compatibility with Angular 1 - we\n // used to allow providing back HTML from getGui().\n // once we move away from supporting Angular 1\n // directly, we can change this.\n if (typeof guiFromFilter === 'string') {\n guiFromFilter = loadTemplate(guiFromFilter);\n }\n eFilterGui.appendChild(guiFromFilter);\n resolve(eFilterGui);\n _this.eventService.dispatchEvent({\n type: Events.EVENT_FILTER_OPENED,\n column: filterWrapper.column,\n source: source,\n eGui: eFilterGui,\n api: _this.gridApi,\n columnApi: _this.columnApi\n });\n });\n });\n };\n FilterManager.prototype.onColumnsChanged = function () {\n var _this = this;\n var columns = [];\n this.allColumnFilters.forEach(function (wrapper, colId) {\n var currentColumn;\n if (wrapper.column.isPrimary()) {\n currentColumn = _this.columnModel.getPrimaryColumn(colId);\n }\n else {\n currentColumn = _this.columnModel.getGridColumn(colId);\n }\n if (currentColumn) {\n return;\n }\n columns.push(wrapper.column);\n _this.disposeFilterWrapper(wrapper, 'filterDestroyed');\n });\n if (columns.length > 0) {\n this.onFilterChanged({ columns: columns });\n }\n };\n // destroys the filter, so it not longer takes part\n FilterManager.prototype.destroyFilter = function (column, source) {\n if (source === void 0) { source = 'api'; }\n var filterWrapper = this.allColumnFilters.get(column.getColId());\n if (filterWrapper) {\n this.disposeFilterWrapper(filterWrapper, source);\n this.onFilterChanged({ columns: [column] });\n }\n };\n FilterManager.prototype.disposeFilterWrapper = function (filterWrapper, source) {\n var _this = this;\n filterWrapper.filterPromise.then(function (filter) {\n (filter.setModel(null) || AgPromise.resolve()).then(function () {\n _this.getContext().destroyBean(filter);\n filterWrapper.column.setFilterActive(false, source);\n _this.allColumnFilters.delete(filterWrapper.column.getColId());\n });\n });\n };\n FilterManager.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n this.allColumnFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed'); });\n };\n var FilterManager_1;\n FilterManager.QUICK_FILTER_SEPARATOR = '\\n';\n __decorate$G([\n Autowired('valueService')\n ], FilterManager.prototype, \"valueService\", void 0);\n __decorate$G([\n Autowired('columnModel')\n ], FilterManager.prototype, \"columnModel\", void 0);\n __decorate$G([\n Autowired('rowModel')\n ], FilterManager.prototype, \"rowModel\", void 0);\n __decorate$G([\n Autowired('columnApi')\n ], FilterManager.prototype, \"columnApi\", void 0);\n __decorate$G([\n Autowired('gridApi')\n ], FilterManager.prototype, \"gridApi\", void 0);\n __decorate$G([\n Autowired('userComponentFactory')\n ], FilterManager.prototype, \"userComponentFactory\", void 0);\n __decorate$G([\n Autowired('rowRenderer')\n ], FilterManager.prototype, \"rowRenderer\", void 0);\n __decorate$G([\n PostConstruct\n ], FilterManager.prototype, \"init\", null);\n __decorate$G([\n PreDestroy\n ], FilterManager.prototype, \"destroy\", null);\n FilterManager = FilterManager_1 = __decorate$G([\n Bean('filterManager')\n ], FilterManager);\n return FilterManager;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AbstractHeaderCellComp = /** @class */ (function (_super) {\n __extends$O(AbstractHeaderCellComp, _super);\n function AbstractHeaderCellComp(template, ctrl) {\n var _this = _super.call(this, template) || this;\n _this.ctrl = ctrl;\n return _this;\n }\n AbstractHeaderCellComp.prototype.getCtrl = function () {\n return this.ctrl;\n };\n return AbstractHeaderCellComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderFilterCellComp = /** @class */ (function (_super) {\n __extends$P(HeaderFilterCellComp, _super);\n function HeaderFilterCellComp(ctrl) {\n return _super.call(this, HeaderFilterCellComp.TEMPLATE, ctrl) || this;\n }\n HeaderFilterCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveBodyCssClass: function (cssClassName, on) { return _this.eFloatingFilterBody.classList.toggle(cssClassName, on); },\n addOrRemoveButtonWrapperCssClass: function (cssClassName, on) { return _this.eButtonWrapper.classList.toggle(cssClassName, on); },\n setCompDetails: function (compDetails) { return _this.setCompDetails(compDetails); },\n getFloatingFilterComp: function () { return _this.compPromise; },\n setWidth: function (width) { return eGui.style.width = width; },\n setMenuIcon: function (eIcon) { return _this.eButtonShowMainFilter.appendChild(eIcon); }\n };\n this.ctrl.setComp(compProxy, eGui, this.eButtonShowMainFilter, this.eFloatingFilterBody);\n };\n HeaderFilterCellComp.prototype.setCompDetails = function (compDetails) {\n var _this = this;\n // because we are providing defaultFloatingFilterType, we know it will never be undefined;\n this.compPromise = compDetails.newAgStackInstance();\n this.compPromise.then(function (comp) { return _this.afterCompCreated(comp); });\n };\n HeaderFilterCellComp.prototype.afterCompCreated = function (comp) {\n var _this = this;\n if (!comp) {\n return;\n }\n this.addDestroyFunc(function () { return _this.context.destroyBean(comp); });\n if (!this.isAlive()) {\n return;\n }\n this.eFloatingFilterBody.appendChild(comp.getGui());\n if (comp.afterGuiAttached) {\n comp.afterGuiAttached();\n }\n };\n HeaderFilterCellComp.TEMPLATE = \"
\\n
\\n
\\n \\n
\\n
\";\n __decorate$H([\n RefSelector('eFloatingFilterBody')\n ], HeaderFilterCellComp.prototype, \"eFloatingFilterBody\", void 0);\n __decorate$H([\n RefSelector('eButtonWrapper')\n ], HeaderFilterCellComp.prototype, \"eButtonWrapper\", void 0);\n __decorate$H([\n RefSelector('eButtonShowMainFilter')\n ], HeaderFilterCellComp.prototype, \"eButtonShowMainFilter\", void 0);\n __decorate$H([\n PostConstruct\n ], HeaderFilterCellComp.prototype, \"postConstruct\", null);\n return HeaderFilterCellComp;\n}(AbstractHeaderCellComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar SideBarDefParser = /** @class */ (function () {\n function SideBarDefParser() {\n }\n SideBarDefParser.parse = function (toParse) {\n if (!toParse) {\n return null;\n }\n if (toParse === true) {\n return {\n toolPanels: [\n SideBarDefParser.DEFAULT_COLUMN_COMP,\n SideBarDefParser.DEFAULT_FILTER_COMP,\n ],\n defaultToolPanel: 'columns'\n };\n }\n if (typeof toParse === 'string') {\n return SideBarDefParser.parse([toParse]);\n }\n if (Array.isArray(toParse)) {\n var comps_1 = [];\n toParse.forEach(function (key) {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[key];\n if (!lookupResult) {\n console.warn(\"AG Grid: the key \" + key + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n comps_1.push(lookupResult);\n });\n if (comps_1.length === 0) {\n return null;\n }\n return {\n toolPanels: comps_1,\n defaultToolPanel: comps_1[0].id\n };\n }\n var result = {\n toolPanels: SideBarDefParser.parseComponents(toParse.toolPanels),\n defaultToolPanel: toParse.defaultToolPanel,\n hiddenByDefault: toParse.hiddenByDefault,\n position: toParse.position\n };\n return result;\n };\n SideBarDefParser.parseComponents = function (from) {\n var result = [];\n if (!from) {\n return result;\n }\n from.forEach(function (it) {\n var toAdd = null;\n if (typeof it === 'string') {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[it];\n if (!lookupResult) {\n console.warn(\"AG Grid: the key \" + it + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n toAdd = lookupResult;\n }\n else {\n toAdd = it;\n }\n result.push(toAdd);\n });\n return result;\n };\n SideBarDefParser.DEFAULT_COLUMN_COMP = {\n id: 'columns',\n labelDefault: 'Columns',\n labelKey: 'columns',\n iconKey: 'columns',\n toolPanel: 'agColumnsToolPanel',\n };\n SideBarDefParser.DEFAULT_FILTER_COMP = {\n id: 'filters',\n labelDefault: 'Filters',\n labelKey: 'filters',\n iconKey: 'filter',\n toolPanel: 'agFiltersToolPanel',\n };\n SideBarDefParser.DEFAULT_BY_KEY = {\n columns: SideBarDefParser.DEFAULT_COLUMN_COMP,\n filters: SideBarDefParser.DEFAULT_FILTER_COMP\n };\n return SideBarDefParser;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$9 = (undefined && undefined.__assign) || function () {\n __assign$9 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$9.apply(this, arguments);\n};\nvar __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$3 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __read$6 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$4 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$6(arguments[i]));\n return ar;\n};\nvar DEFAULT_ROW_HEIGHT = 25;\nvar DEFAULT_DETAIL_ROW_HEIGHT = 300;\nvar DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;\nvar DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;\nvar DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;\nfunction isTrue(value) {\n return value === true || value === 'true';\n}\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (typeof value == 'string') {\n return parseInt(value, 10);\n }\n}\nfunction zeroOrGreater(value, defaultValue) {\n if (value >= 0) {\n return value;\n }\n // zero gets returned if number is missing or the wrong type\n return defaultValue;\n}\nfunction oneOrGreater(value, defaultValue) {\n var valueNumber = parseInt(value, 10);\n if (isNumeric(valueNumber) && valueNumber > 0) {\n return valueNumber;\n }\n return defaultValue;\n}\nvar GridOptionsWrapper = /** @class */ (function () {\n function GridOptionsWrapper() {\n this.propertyEventService = new EventService();\n this.domDataKey = '__AG_' + Math.random().toString();\n this.destroyed = false;\n }\n GridOptionsWrapper_1 = GridOptionsWrapper;\n GridOptionsWrapper.prototype.agWire = function (gridApi, columnApi) {\n this.gridOptions.api = gridApi;\n this.gridOptions.columnApi = columnApi;\n this.checkForDeprecated();\n this.checkForViolations();\n };\n GridOptionsWrapper.prototype.destroy = function () {\n // need to remove these, as we don't own the lifecycle of the gridOptions, we need to\n // remove the references in case the user keeps the grid options, we want the rest\n // of the grid to be picked up by the garbage collector\n this.gridOptions.api = null;\n this.gridOptions.columnApi = null;\n this.destroyed = true;\n };\n GridOptionsWrapper.prototype.init = function () {\n var _this = this;\n if (this.gridOptions.suppressPropertyNamesCheck !== true) {\n this.checkGridOptionsProperties();\n this.checkColumnDefProperties();\n }\n // parse side bar options into correct format\n if (this.gridOptions.sideBar != null) {\n this.gridOptions.sideBar = SideBarDefParser.parse(this.gridOptions.sideBar);\n }\n var async = this.useAsyncEvents();\n this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);\n if (this.isGroupSelectsChildren() && this.isSuppressParentsInRowNodes()) {\n console.warn(\"AG Grid: 'groupSelectsChildren' does not work with 'suppressParentsInRowNodes', this selection method needs the part in rowNode to work\");\n }\n if (this.isGroupSelectsChildren()) {\n if (!this.isRowSelectionMulti()) {\n console.warn(\"AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense\");\n }\n if (this.isRowModelServerSide()) {\n console.warn('AG Grid: group selects children is NOT support for Server Side Row Model. ' +\n 'This is because the rows are lazy loaded, so selecting a group is not possible as' +\n 'the grid has no way of knowing what the children are.');\n }\n }\n if (this.isGroupRemoveSingleChildren() && this.isGroupHideOpenParents()) {\n console.warn(\"AG Grid: groupRemoveSingleChildren and groupHideOpenParents do not work with each other, you need to pick one. And don't ask us how to us these together on our support forum either you will get the same answer!\");\n }\n if (this.isRowModelServerSide()) {\n var msg = function (prop) { return \"AG Grid: '\" + prop + \"' is not supported on the Server-Side Row Model\"; };\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupDefaultExpanded'));\n }\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupIncludeFooter'));\n }\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupIncludeTotalFooter'));\n }\n }\n if (this.isEnableRangeSelection()) {\n ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'enableRangeSelection');\n }\n if (!this.isEnableRangeSelection() && (this.isEnableRangeHandle() || this.isEnableFillHandle())) {\n console.warn(\"AG Grid: 'enableRangeHandle' and 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true\");\n }\n var warnOfDeprecaredIcon = function (name) {\n if (_this.gridOptions.icons && _this.gridOptions.icons[name]) {\n console.warn(\"gridOptions.icons.\" + name + \" is no longer supported. For information on how to style checkboxes and radio buttons, see https://www.ag-grid.com/javascript-grid-icons/\");\n }\n };\n warnOfDeprecaredIcon('radioButtonOff');\n warnOfDeprecaredIcon('radioButtonOn');\n warnOfDeprecaredIcon('checkboxChecked');\n warnOfDeprecaredIcon('checkboxUnchecked');\n warnOfDeprecaredIcon('checkboxIndeterminate');\n // sets an initial calculation for the scrollbar width\n this.getScrollbarWidth();\n };\n GridOptionsWrapper.prototype.checkColumnDefProperties = function () {\n var _this = this;\n if (this.gridOptions.columnDefs == null) {\n return;\n }\n this.gridOptions.columnDefs.forEach(function (colDef) {\n var userProperties = Object.getOwnPropertyNames(colDef);\n var validProperties = __spread$4(ColDefUtil.ALL_PROPERTIES, ColDefUtil.FRAMEWORK_PROPERTIES);\n _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-grid-column-properties/');\n });\n };\n GridOptionsWrapper.prototype.checkGridOptionsProperties = function () {\n var userProperties = Object.getOwnPropertyNames(this.gridOptions);\n var validProperties = __spread$4(PropertyKeys.ALL_PROPERTIES, PropertyKeys.FRAMEWORK_PROPERTIES, values(Events).map(function (event) { return ComponentUtil.getCallbackForEvent(event); }));\n var validPropertiesAndExceptions = __spread$4(validProperties, ['api', 'columnApi']);\n this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-data-grid/grid-options/');\n };\n GridOptionsWrapper.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {\n var invalidProperties = fuzzyCheckStrings(userProperties, validPropertiesAndExceptions, validProperties);\n iterateObject(invalidProperties, function (key, value) {\n console.warn(\"ag-grid: invalid \" + containerName + \" property '\" + key + \"' did you mean any of these: \" + value.slice(0, 8).join(\", \"));\n });\n if (Object.keys(invalidProperties).length > 0) {\n console.warn(\"ag-grid: to see all the valid \" + containerName + \" properties please check: \" + docsUrl);\n }\n };\n /**\n * Wrap the user callback and attach the api, columnApi and context to the params object on the way through.\n * @param callback User provided callback\n * @returns Wrapped callback where the params object not require api, columnApi and context\n */\n GridOptionsWrapper.prototype.mergeGridCommonParams = function (callback) {\n var _this = this;\n if (callback) {\n var wrapped = function (callbackParams) {\n var mergedParams = __assign$9(__assign$9({}, callbackParams), { api: _this.getApi(), columnApi: _this.getColumnApi(), context: _this.getContext() });\n return callback(mergedParams);\n };\n return wrapped;\n }\n return callback;\n };\n GridOptionsWrapper.prototype.getDomDataKey = function () {\n return this.domDataKey;\n };\n // returns the dom data, or undefined if not found\n GridOptionsWrapper.prototype.getDomData = function (element, key) {\n var domData = element[this.getDomDataKey()];\n return domData ? domData[key] : undefined;\n };\n GridOptionsWrapper.prototype.setDomData = function (element, key, value) {\n var domDataKey = this.getDomDataKey();\n var domData = element[domDataKey];\n if (missing(domData)) {\n domData = {};\n element[domDataKey] = domData;\n }\n domData[key] = value;\n };\n GridOptionsWrapper.prototype.isRowSelection = function () {\n return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsWrapper.prototype.isSuppressRowDeselection = function () {\n return isTrue(this.gridOptions.suppressRowDeselection);\n };\n GridOptionsWrapper.prototype.isRowSelectionMulti = function () {\n return this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsWrapper.prototype.isRowMultiSelectWithClick = function () {\n return isTrue(this.gridOptions.rowMultiSelectWithClick);\n };\n GridOptionsWrapper.prototype.getContext = function () {\n return this.gridOptions.context;\n };\n GridOptionsWrapper.prototype.isPivotMode = function () {\n return isTrue(this.gridOptions.pivotMode);\n };\n GridOptionsWrapper.prototype.isSuppressExpandablePivotGroups = function () {\n return isTrue(this.gridOptions.suppressExpandablePivotGroups);\n };\n GridOptionsWrapper.prototype.getPivotColumnGroupTotals = function () {\n return this.gridOptions.pivotColumnGroupTotals;\n };\n GridOptionsWrapper.prototype.getPivotRowTotals = function () {\n return this.gridOptions.pivotRowTotals;\n };\n GridOptionsWrapper.prototype.isRowModelInfinite = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_INFINITE;\n };\n GridOptionsWrapper.prototype.isRowModelViewport = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_VIEWPORT;\n };\n GridOptionsWrapper.prototype.isRowModelServerSide = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n };\n GridOptionsWrapper.prototype.isRowModelDefault = function () {\n return (missing(this.gridOptions.rowModelType) ||\n this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE);\n };\n GridOptionsWrapper.prototype.isFullRowEdit = function () {\n return this.gridOptions.editType === 'fullRow';\n };\n GridOptionsWrapper.prototype.isSuppressFocusAfterRefresh = function () {\n return isTrue(this.gridOptions.suppressFocusAfterRefresh);\n };\n GridOptionsWrapper.prototype.isSuppressBrowserResizeObserver = function () {\n return isTrue(this.gridOptions.suppressBrowserResizeObserver);\n };\n GridOptionsWrapper.prototype.isSuppressMaintainUnsortedOrder = function () {\n return isTrue(this.gridOptions.suppressMaintainUnsortedOrder);\n };\n GridOptionsWrapper.prototype.isSuppressClearOnFillReduction = function () {\n return isTrue(this.gridOptions.suppressClearOnFillReduction);\n };\n GridOptionsWrapper.prototype.isShowToolPanel = function () {\n return isTrue(this.gridOptions.sideBar && Array.isArray(this.getSideBar().toolPanels));\n };\n GridOptionsWrapper.prototype.getSideBar = function () {\n return this.gridOptions.sideBar;\n };\n GridOptionsWrapper.prototype.isSuppressTouch = function () {\n return isTrue(this.gridOptions.suppressTouch);\n };\n GridOptionsWrapper.prototype.isMaintainColumnOrder = function () {\n return isTrue(this.gridOptions.maintainColumnOrder);\n };\n GridOptionsWrapper.prototype.isSuppressRowTransform = function () {\n return isTrue(this.gridOptions.suppressRowTransform);\n };\n GridOptionsWrapper.prototype.isSuppressColumnStateEvents = function () {\n return isTrue(this.gridOptions.suppressColumnStateEvents);\n };\n GridOptionsWrapper.prototype.isAllowDragFromColumnsToolPanel = function () {\n return isTrue(this.gridOptions.allowDragFromColumnsToolPanel);\n };\n GridOptionsWrapper.prototype.useAsyncEvents = function () {\n return !isTrue(this.gridOptions.suppressAsyncEvents);\n };\n GridOptionsWrapper.prototype.isEnableCellChangeFlash = function () {\n return isTrue(this.gridOptions.enableCellChangeFlash);\n };\n GridOptionsWrapper.prototype.getCellFlashDelay = function () {\n return this.gridOptions.cellFlashDelay || 500;\n };\n GridOptionsWrapper.prototype.getCellFadeDelay = function () {\n return this.gridOptions.cellFadeDelay || 1000;\n };\n GridOptionsWrapper.prototype.isGroupSelectsChildren = function () {\n return isTrue(this.gridOptions.groupSelectsChildren);\n };\n GridOptionsWrapper.prototype.isSuppressRowHoverHighlight = function () {\n return isTrue(this.gridOptions.suppressRowHoverHighlight);\n };\n GridOptionsWrapper.prototype.isColumnHoverHighlight = function () {\n return isTrue(this.gridOptions.columnHoverHighlight);\n };\n GridOptionsWrapper.prototype.isGroupSelectsFiltered = function () {\n return isTrue(this.gridOptions.groupSelectsFiltered);\n };\n GridOptionsWrapper.prototype.isGroupHideOpenParents = function () {\n return isTrue(this.gridOptions.groupHideOpenParents);\n };\n GridOptionsWrapper.prototype.isGroupMaintainOrder = function () {\n return isTrue(this.gridOptions.groupMaintainOrder);\n };\n GridOptionsWrapper.prototype.getAutoGroupColumnDef = function () {\n return this.gridOptions.autoGroupColumnDef;\n };\n GridOptionsWrapper.prototype.isGroupMultiAutoColumn = function () {\n if (this.gridOptions.groupDisplayType) {\n return this.matchesGroupDisplayType('multipleColumns', this.gridOptions.groupDisplayType);\n }\n // if we are doing hideOpenParents we also show multiple columns, otherwise hideOpenParents would not work\n return isTrue(this.gridOptions.groupHideOpenParents);\n };\n GridOptionsWrapper.prototype.isGroupUseEntireRow = function (pivotMode) {\n // we never allow groupUseEntireRow if in pivot mode, otherwise we won't see the pivot values.\n if (pivotMode) {\n return false;\n }\n return this.gridOptions.groupDisplayType ?\n this.matchesGroupDisplayType('groupRows', this.gridOptions.groupDisplayType) : false;\n };\n GridOptionsWrapper.prototype.isGroupSuppressAutoColumn = function () {\n var isCustomRowGroups = this.gridOptions.groupDisplayType ?\n this.matchesGroupDisplayType('custom', this.gridOptions.groupDisplayType) : false;\n if (isCustomRowGroups) {\n return true;\n }\n return this.gridOptions.treeDataDisplayType ?\n this.matchesTreeDataDisplayType('custom', this.gridOptions.treeDataDisplayType) : false;\n };\n GridOptionsWrapper.prototype.isGroupRemoveSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupRemoveLowestSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveLowestSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupIncludeFooter = function () {\n return isTrue(this.gridOptions.groupIncludeFooter);\n };\n GridOptionsWrapper.prototype.isGroupIncludeTotalFooter = function () {\n return isTrue(this.gridOptions.groupIncludeTotalFooter);\n };\n GridOptionsWrapper.prototype.isGroupSuppressBlankHeader = function () {\n return isTrue(this.gridOptions.groupSuppressBlankHeader);\n };\n GridOptionsWrapper.prototype.isSuppressRowClickSelection = function () {\n return isTrue(this.gridOptions.suppressRowClickSelection);\n };\n GridOptionsWrapper.prototype.isSuppressCellFocus = function () {\n return isTrue(this.gridOptions.suppressCellFocus);\n };\n GridOptionsWrapper.prototype.isSuppressMultiSort = function () {\n return isTrue(this.gridOptions.suppressMultiSort);\n };\n GridOptionsWrapper.prototype.isAlwaysMultiSort = function () {\n return isTrue(this.gridOptions.alwaysMultiSort);\n };\n GridOptionsWrapper.prototype.isMultiSortKeyCtrl = function () {\n return this.gridOptions.multiSortKey === 'ctrl';\n };\n GridOptionsWrapper.prototype.isPivotSuppressAutoColumn = function () {\n return isTrue(this.gridOptions.pivotSuppressAutoColumn);\n };\n GridOptionsWrapper.prototype.isSuppressDragLeaveHidesColumns = function () {\n return isTrue(this.gridOptions.suppressDragLeaveHidesColumns);\n };\n GridOptionsWrapper.prototype.isSuppressScrollOnNewData = function () {\n return isTrue(this.gridOptions.suppressScrollOnNewData);\n };\n GridOptionsWrapper.prototype.isSuppressScrollWhenPopupsAreOpen = function () {\n return isTrue(this.gridOptions.suppressScrollWhenPopupsAreOpen);\n };\n GridOptionsWrapper.prototype.isRowDragEntireRow = function () {\n return isTrue(this.gridOptions.rowDragEntireRow);\n };\n GridOptionsWrapper.prototype.isSuppressRowDrag = function () {\n return isTrue(this.gridOptions.suppressRowDrag);\n };\n GridOptionsWrapper.prototype.isRowDragManaged = function () {\n return isTrue(this.gridOptions.rowDragManaged);\n };\n GridOptionsWrapper.prototype.isSuppressMoveWhenRowDragging = function () {\n return isTrue(this.gridOptions.suppressMoveWhenRowDragging);\n };\n GridOptionsWrapper.prototype.isRowDragMultiRow = function () {\n return isTrue(this.gridOptions.rowDragMultiRow);\n };\n // returns either 'print', 'autoHeight' or 'normal' (normal is the default)\n GridOptionsWrapper.prototype.getDomLayout = function () {\n var domLayout = this.gridOptions.domLayout || Constants.DOM_LAYOUT_NORMAL;\n var validLayouts = [\n Constants.DOM_LAYOUT_PRINT,\n Constants.DOM_LAYOUT_AUTO_HEIGHT,\n Constants.DOM_LAYOUT_NORMAL\n ];\n if (validLayouts.indexOf(domLayout) === -1) {\n doOnce(function () {\n return console.warn(\"AG Grid: \" + domLayout + \" is not valid for DOM Layout, valid values are \" + Constants.DOM_LAYOUT_NORMAL + \", \" + Constants.DOM_LAYOUT_AUTO_HEIGHT + \" and \" + Constants.DOM_LAYOUT_PRINT);\n }, 'warn about dom layout values');\n return Constants.DOM_LAYOUT_NORMAL;\n }\n return domLayout;\n };\n GridOptionsWrapper.prototype.isSuppressHorizontalScroll = function () {\n return isTrue(this.gridOptions.suppressHorizontalScroll);\n };\n GridOptionsWrapper.prototype.isSuppressMaxRenderedRowRestriction = function () {\n return isTrue(this.gridOptions.suppressMaxRenderedRowRestriction);\n };\n GridOptionsWrapper.prototype.isExcludeChildrenWhenTreeDataFiltering = function () {\n return isTrue(this.gridOptions.excludeChildrenWhenTreeDataFiltering);\n };\n GridOptionsWrapper.prototype.isAlwaysShowHorizontalScroll = function () {\n return isTrue(this.gridOptions.alwaysShowHorizontalScroll);\n };\n GridOptionsWrapper.prototype.isAlwaysShowVerticalScroll = function () {\n return isTrue(this.gridOptions.alwaysShowVerticalScroll);\n };\n GridOptionsWrapper.prototype.isDebounceVerticalScrollbar = function () {\n return isTrue(this.gridOptions.debounceVerticalScrollbar);\n };\n GridOptionsWrapper.prototype.isSuppressLoadingOverlay = function () {\n return isTrue(this.gridOptions.suppressLoadingOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressNoRowsOverlay = function () {\n return isTrue(this.gridOptions.suppressNoRowsOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressFieldDotNotation = function () {\n return isTrue(this.gridOptions.suppressFieldDotNotation);\n };\n GridOptionsWrapper.prototype.getPinnedTopRowData = function () {\n return this.gridOptions.pinnedTopRowData;\n };\n GridOptionsWrapper.prototype.getPinnedBottomRowData = function () {\n return this.gridOptions.pinnedBottomRowData;\n };\n GridOptionsWrapper.prototype.isFunctionsPassive = function () {\n return isTrue(this.gridOptions.functionsPassive);\n };\n GridOptionsWrapper.prototype.isSuppressChangeDetection = function () {\n return isTrue(this.gridOptions.suppressChangeDetection);\n };\n GridOptionsWrapper.prototype.isSuppressAnimationFrame = function () {\n return isTrue(this.gridOptions.suppressAnimationFrame);\n };\n GridOptionsWrapper.prototype.getQuickFilterText = function () {\n return this.gridOptions.quickFilterText;\n };\n GridOptionsWrapper.prototype.isCacheQuickFilter = function () {\n return isTrue(this.gridOptions.cacheQuickFilter);\n };\n GridOptionsWrapper.prototype.isUnSortIcon = function () {\n return isTrue(this.gridOptions.unSortIcon);\n };\n GridOptionsWrapper.prototype.isSuppressMenuHide = function () {\n return isTrue(this.gridOptions.suppressMenuHide);\n };\n GridOptionsWrapper.prototype.isEnterMovesDownAfterEdit = function () {\n return isTrue(this.gridOptions.enterMovesDownAfterEdit);\n };\n GridOptionsWrapper.prototype.isEnterMovesDown = function () {\n return isTrue(this.gridOptions.enterMovesDown);\n };\n GridOptionsWrapper.prototype.isUndoRedoCellEditing = function () {\n return isTrue(this.gridOptions.undoRedoCellEditing);\n };\n GridOptionsWrapper.prototype.getUndoRedoCellEditingLimit = function () {\n return toNumber(this.gridOptions.undoRedoCellEditingLimit);\n };\n GridOptionsWrapper.prototype.getRowStyle = function () {\n return this.gridOptions.rowStyle;\n };\n GridOptionsWrapper.prototype.getRowClass = function () {\n return this.gridOptions.rowClass;\n };\n GridOptionsWrapper.prototype.getRowStyleFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getRowStyle);\n };\n GridOptionsWrapper.prototype.getRowClassFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getRowClass);\n };\n GridOptionsWrapper.prototype.rowClassRules = function () {\n return this.gridOptions.rowClassRules;\n };\n GridOptionsWrapper.prototype.getServerSideStoreType = function () {\n return this.gridOptions.serverSideStoreType;\n };\n GridOptionsWrapper.prototype.getServerSideStoreParamsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getServerSideStoreParams);\n };\n GridOptionsWrapper.prototype.getCreateChartContainerFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.createChartContainer);\n };\n GridOptionsWrapper.prototype.getPopupParent = function () {\n return this.gridOptions.popupParent;\n };\n GridOptionsWrapper.prototype.getBlockLoadDebounceMillis = function () {\n return this.gridOptions.blockLoadDebounceMillis;\n };\n GridOptionsWrapper.prototype.getPostProcessPopupFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.postProcessPopup);\n };\n GridOptionsWrapper.prototype.getPaginationNumberFormatterFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.paginationNumberFormatter);\n };\n GridOptionsWrapper.prototype.getChildCountFunc = function () {\n return this.gridOptions.getChildCount;\n };\n GridOptionsWrapper.prototype.getIsApplyServerSideTransactionFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.isApplyServerSideTransaction);\n };\n GridOptionsWrapper.prototype.getInitialGroupOrderComparator = function () {\n var _a = this.gridOptions, initialGroupOrderComparator = _a.initialGroupOrderComparator, defaultGroupOrderComparator = _a.defaultGroupOrderComparator;\n if (initialGroupOrderComparator) {\n return this.mergeGridCommonParams(initialGroupOrderComparator);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (defaultGroupOrderComparator) {\n return function (params) { return defaultGroupOrderComparator(params.nodeA, params.nodeB); };\n }\n };\n GridOptionsWrapper.prototype.getIsFullWidthCellFunc = function () {\n var _a = this.gridOptions, isFullWidthRow = _a.isFullWidthRow, isFullWidthCell = _a.isFullWidthCell;\n if (isFullWidthRow) {\n return this.mergeGridCommonParams(isFullWidthRow);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (isFullWidthCell) {\n return function (params) { return isFullWidthCell(params.rowNode); };\n }\n };\n GridOptionsWrapper.prototype.getFullWidthCellRendererParams = function () {\n return this.gridOptions.fullWidthCellRendererParams;\n };\n GridOptionsWrapper.prototype.isEmbedFullWidthRows = function () {\n return isTrue(this.gridOptions.embedFullWidthRows) || isTrue(this.gridOptions.deprecatedEmbedFullWidthRows);\n };\n GridOptionsWrapper.prototype.isDetailRowAutoHeight = function () {\n return isTrue(this.gridOptions.detailRowAutoHeight);\n };\n GridOptionsWrapper.prototype.getSuppressKeyboardEventFunc = function () {\n return this.gridOptions.suppressKeyboardEvent;\n };\n GridOptionsWrapper.prototype.getBusinessKeyForNodeFunc = function () {\n return this.gridOptions.getBusinessKeyForNode;\n };\n GridOptionsWrapper.prototype.getApi = function () {\n return this.gridOptions.api;\n };\n GridOptionsWrapper.prototype.getColumnApi = function () {\n return this.gridOptions.columnApi;\n };\n GridOptionsWrapper.prototype.isReadOnlyEdit = function () {\n return isTrue(this.gridOptions.readOnlyEdit);\n };\n GridOptionsWrapper.prototype.isImmutableData = function () {\n // we used to have a property immutableData for this. however this was deprecated\n // in favour of having Immutable Data on by default when getRowId is provided\n var getRowIdProvided = this.gridOptions.getRowId != null;\n var immutableData = isTrue(this.gridOptions.immutableData);\n // this property is a backwards compatibility property, for those who want\n // the old behaviour of Row ID's but NOT Immutable Data.\n var resetRowDataOnUpdate = isTrue(this.gridOptions.resetRowDataOnUpdate);\n if (resetRowDataOnUpdate) {\n return false;\n }\n return getRowIdProvided || immutableData;\n };\n GridOptionsWrapper.prototype.isEnsureDomOrder = function () {\n return isTrue(this.gridOptions.ensureDomOrder);\n };\n GridOptionsWrapper.prototype.isEnableCharts = function () {\n if (isTrue(this.gridOptions.enableCharts)) {\n return ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'enableCharts');\n }\n return false;\n };\n GridOptionsWrapper.prototype.getColResizeDefault = function () {\n return this.gridOptions.colResizeDefault;\n };\n GridOptionsWrapper.prototype.isSingleClickEdit = function () {\n return isTrue(this.gridOptions.singleClickEdit);\n };\n GridOptionsWrapper.prototype.isSuppressClickEdit = function () {\n return isTrue(this.gridOptions.suppressClickEdit);\n };\n GridOptionsWrapper.prototype.isStopEditingWhenCellsLoseFocus = function () {\n return isTrue(this.gridOptions.stopEditingWhenCellsLoseFocus);\n };\n GridOptionsWrapper.prototype.getGroupDefaultExpanded = function () {\n return this.gridOptions.groupDefaultExpanded;\n };\n GridOptionsWrapper.prototype.getMaxConcurrentDatasourceRequests = function () {\n var res = toNumber(this.gridOptions.maxConcurrentDatasourceRequests);\n if (res == null) {\n return 2;\n } // 2 is the default\n if (res <= 0) {\n return;\n } // negative number, eg -1, means no max restriction\n return res;\n };\n GridOptionsWrapper.prototype.getMaxBlocksInCache = function () {\n return this.gridOptions.maxBlocksInCache;\n };\n GridOptionsWrapper.prototype.getCacheOverflowSize = function () {\n return this.gridOptions.cacheOverflowSize;\n };\n GridOptionsWrapper.prototype.getPaginationPageSize = function () {\n return toNumber(this.gridOptions.paginationPageSize);\n };\n GridOptionsWrapper.prototype.isPaginateChildRows = function () {\n var shouldPaginate = this.isGroupRemoveSingleChildren() || this.isGroupRemoveLowestSingleChildren();\n if (shouldPaginate) {\n return true;\n }\n return isTrue(this.gridOptions.paginateChildRows);\n };\n GridOptionsWrapper.prototype.getCacheBlockSize = function () {\n return oneOrGreater(this.gridOptions.cacheBlockSize);\n };\n GridOptionsWrapper.prototype.getInfiniteInitialRowCount = function () {\n return this.gridOptions.infiniteInitialRowCount;\n };\n GridOptionsWrapper.prototype.isPurgeClosedRowNodes = function () {\n return isTrue(this.gridOptions.purgeClosedRowNodes);\n };\n GridOptionsWrapper.prototype.isSuppressPaginationPanel = function () {\n return isTrue(this.gridOptions.suppressPaginationPanel);\n };\n GridOptionsWrapper.prototype.getRowData = function () {\n return this.gridOptions.rowData;\n };\n GridOptionsWrapper.prototype.isEnableRtl = function () {\n return isTrue(this.gridOptions.enableRtl);\n };\n GridOptionsWrapper.prototype.getRowGroupPanelShow = function () {\n return this.gridOptions.rowGroupPanelShow;\n };\n GridOptionsWrapper.prototype.getPivotPanelShow = function () {\n return this.gridOptions.pivotPanelShow;\n };\n GridOptionsWrapper.prototype.isAngularCompileRows = function () {\n return isTrue(this.gridOptions.angularCompileRows);\n };\n GridOptionsWrapper.prototype.isAngularCompileFilters = function () {\n return isTrue(this.gridOptions.angularCompileFilters);\n };\n GridOptionsWrapper.prototype.isDebug = function () {\n return isTrue(this.gridOptions.debug);\n };\n GridOptionsWrapper.prototype.getColumnDefs = function () {\n return this.gridOptions.columnDefs;\n };\n GridOptionsWrapper.prototype.getColumnTypes = function () {\n return this.gridOptions.columnTypes;\n };\n GridOptionsWrapper.prototype.getDatasource = function () {\n return this.gridOptions.datasource;\n };\n GridOptionsWrapper.prototype.getViewportDatasource = function () {\n return this.gridOptions.viewportDatasource;\n };\n GridOptionsWrapper.prototype.getServerSideDatasource = function () {\n return this.gridOptions.serverSideDatasource;\n };\n GridOptionsWrapper.prototype.isAccentedSort = function () {\n return isTrue(this.gridOptions.accentedSort);\n };\n GridOptionsWrapper.prototype.isEnableBrowserTooltips = function () {\n return isTrue(this.gridOptions.enableBrowserTooltips);\n };\n GridOptionsWrapper.prototype.isEnableCellExpressions = function () {\n return isTrue(this.gridOptions.enableCellExpressions);\n };\n GridOptionsWrapper.prototype.isEnableGroupEdit = function () {\n return isTrue(this.gridOptions.enableGroupEdit);\n };\n GridOptionsWrapper.prototype.isSuppressMiddleClickScrolls = function () {\n return isTrue(this.gridOptions.suppressMiddleClickScrolls);\n };\n GridOptionsWrapper.prototype.isPreventDefaultOnContextMenu = function () {\n return isTrue(this.gridOptions.preventDefaultOnContextMenu);\n };\n GridOptionsWrapper.prototype.isSuppressPreventDefaultOnMouseWheel = function () {\n return isTrue(this.gridOptions.suppressPreventDefaultOnMouseWheel);\n };\n GridOptionsWrapper.prototype.isSuppressColumnVirtualisation = function () {\n return isTrue(this.gridOptions.suppressColumnVirtualisation);\n };\n GridOptionsWrapper.prototype.isSuppressRowVirtualisation = function () {\n return isTrue(this.gridOptions.suppressRowVirtualisation);\n };\n GridOptionsWrapper.prototype.isSuppressContextMenu = function () {\n return isTrue(this.gridOptions.suppressContextMenu);\n };\n GridOptionsWrapper.prototype.isAllowContextMenuWithControlKey = function () {\n return isTrue(this.gridOptions.allowContextMenuWithControlKey);\n };\n GridOptionsWrapper.prototype.isSuppressCopyRowsToClipboard = function () {\n return isTrue(this.gridOptions.suppressCopyRowsToClipboard);\n };\n GridOptionsWrapper.prototype.isSuppressCopySingleCellRanges = function () {\n return isTrue(this.gridOptions.suppressCopySingleCellRanges);\n };\n GridOptionsWrapper.prototype.isCopyHeadersToClipboard = function () {\n return isTrue(this.gridOptions.copyHeadersToClipboard);\n };\n GridOptionsWrapper.prototype.isCopyGroupHeadersToClipboard = function () {\n return isTrue(this.gridOptions.copyGroupHeadersToClipboard);\n };\n GridOptionsWrapper.prototype.isSuppressClipboardPaste = function () {\n return isTrue(this.gridOptions.suppressClipboardPaste);\n };\n GridOptionsWrapper.prototype.isSuppressLastEmptyLineOnPaste = function () {\n return isTrue(this.gridOptions.suppressLastEmptyLineOnPaste);\n };\n GridOptionsWrapper.prototype.isPagination = function () {\n return isTrue(this.gridOptions.pagination);\n };\n GridOptionsWrapper.prototype.isSuppressEnterpriseResetOnNewColumns = function () {\n return isTrue(this.gridOptions.suppressEnterpriseResetOnNewColumns);\n };\n GridOptionsWrapper.prototype.getProcessDataFromClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processDataFromClipboard);\n };\n GridOptionsWrapper.prototype.getAsyncTransactionWaitMillis = function () {\n return exists(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : Constants.BATCH_WAIT_MILLIS;\n };\n GridOptionsWrapper.prototype.isSuppressMovableColumns = function () {\n return isTrue(this.gridOptions.suppressMovableColumns);\n };\n GridOptionsWrapper.prototype.isAnimateRows = function () {\n // never allow animating if enforcing the row order\n if (this.isEnsureDomOrder()) {\n return false;\n }\n return isTrue(this.gridOptions.animateRows);\n };\n GridOptionsWrapper.prototype.isSuppressColumnMoveAnimation = function () {\n return isTrue(this.gridOptions.suppressColumnMoveAnimation);\n };\n GridOptionsWrapper.prototype.isSuppressAggFuncInHeader = function () {\n return isTrue(this.gridOptions.suppressAggFuncInHeader);\n };\n GridOptionsWrapper.prototype.isSuppressAggAtRootLevel = function () {\n return isTrue(this.gridOptions.suppressAggAtRootLevel);\n };\n GridOptionsWrapper.prototype.isSuppressAggFilteredOnly = function () {\n var isGroupAggFiltering = this.getGroupAggFiltering() !== undefined;\n return isGroupAggFiltering || isTrue(this.gridOptions.suppressAggFilteredOnly);\n };\n GridOptionsWrapper.prototype.isRemovePivotHeaderRowWhenSingleValueColumn = function () {\n return isTrue(this.gridOptions.removePivotHeaderRowWhenSingleValueColumn);\n };\n GridOptionsWrapper.prototype.isShowOpenedGroup = function () {\n return isTrue(this.gridOptions.showOpenedGroup);\n };\n GridOptionsWrapper.prototype.isReactUi = function () {\n return isTrue(this.gridOptions.reactUi);\n };\n GridOptionsWrapper.prototype.isSuppressReactUi = function () {\n return isTrue(this.gridOptions.suppressReactUi);\n };\n GridOptionsWrapper.prototype.isEnableRangeSelection = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.RangeSelectionModule) && isTrue(this.gridOptions.enableRangeSelection);\n };\n GridOptionsWrapper.prototype.isEnableRangeHandle = function () {\n return isTrue(this.gridOptions.enableRangeHandle);\n };\n GridOptionsWrapper.prototype.isEnableFillHandle = function () {\n return isTrue(this.gridOptions.enableFillHandle);\n };\n GridOptionsWrapper.prototype.getFillHandleDirection = function () {\n var direction = this.gridOptions.fillHandleDirection;\n if (!direction) {\n return 'xy';\n }\n if (direction !== 'x' && direction !== 'y' && direction !== 'xy') {\n doOnce(function () { return console.warn(\"AG Grid: valid values for fillHandleDirection are 'x', 'y' and 'xy'. Default to 'xy'.\"); }, 'warn invalid fill direction');\n return 'xy';\n }\n return direction;\n };\n GridOptionsWrapper.prototype.getFillOperation = function () {\n return this.mergeGridCommonParams(this.gridOptions.fillOperation);\n };\n GridOptionsWrapper.prototype.isSuppressMultiRangeSelection = function () {\n return isTrue(this.gridOptions.suppressMultiRangeSelection);\n };\n GridOptionsWrapper.prototype.isPaginationAutoPageSize = function () {\n return isTrue(this.gridOptions.paginationAutoPageSize);\n };\n GridOptionsWrapper.prototype.isRememberGroupStateWhenNewData = function () {\n return isTrue(this.gridOptions.rememberGroupStateWhenNewData);\n };\n GridOptionsWrapper.prototype.getIcons = function () {\n return this.gridOptions.icons;\n };\n GridOptionsWrapper.prototype.getGroupAggFiltering = function () {\n var userValue = this.gridOptions.groupAggFiltering;\n if (typeof userValue === 'function') {\n return this.mergeGridCommonParams(userValue);\n }\n if (isTrue(userValue)) {\n return function () { return true; };\n }\n return undefined;\n };\n GridOptionsWrapper.prototype.getAggFuncs = function () {\n return this.gridOptions.aggFuncs;\n };\n GridOptionsWrapper.prototype.getSortingOrder = function () {\n return this.gridOptions.sortingOrder;\n };\n GridOptionsWrapper.prototype.getAlignedGrids = function () {\n return this.gridOptions.alignedGrids;\n };\n GridOptionsWrapper.prototype.isMasterDetail = function () {\n var masterDetail = isTrue(this.gridOptions.masterDetail);\n if (masterDetail) {\n return ModuleRegistry.assertRegistered(exports.ModuleNames.MasterDetailModule, 'masterDetail');\n }\n else {\n return false;\n }\n };\n GridOptionsWrapper.prototype.isKeepDetailRows = function () {\n return isTrue(this.gridOptions.keepDetailRows);\n };\n GridOptionsWrapper.prototype.getKeepDetailRowsCount = function () {\n var keepDetailRowsCount = this.gridOptions.keepDetailRowsCount;\n if (exists(keepDetailRowsCount) && keepDetailRowsCount > 0) {\n return this.gridOptions.keepDetailRowsCount;\n }\n return DEFAULT_KEEP_DETAIL_ROW_COUNT;\n };\n GridOptionsWrapper.prototype.getIsRowMasterFunc = function () {\n return this.gridOptions.isRowMaster;\n };\n GridOptionsWrapper.prototype.getIsRowSelectableFunc = function () {\n return this.gridOptions.isRowSelectable;\n };\n GridOptionsWrapper.prototype.getGroupRowRendererParams = function () {\n return this.gridOptions.groupRowRendererParams;\n };\n GridOptionsWrapper.prototype.getOverlayLoadingTemplate = function () {\n return this.gridOptions.overlayLoadingTemplate;\n };\n GridOptionsWrapper.prototype.getOverlayNoRowsTemplate = function () {\n return this.gridOptions.overlayNoRowsTemplate;\n };\n GridOptionsWrapper.prototype.isSuppressAutoSize = function () {\n return isTrue(this.gridOptions.suppressAutoSize);\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelection = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.isSuppressParentsInRowNodes = function () {\n return isTrue(this.gridOptions.suppressParentsInRowNodes);\n };\n GridOptionsWrapper.prototype.isSuppressClipboardApi = function () {\n return isTrue(this.gridOptions.suppressClipboardApi);\n };\n GridOptionsWrapper.prototype.isFunctionsReadOnly = function () {\n return isTrue(this.gridOptions.functionsReadOnly);\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelect = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.getDefaultColDef = function () {\n return this.gridOptions.defaultColDef;\n };\n GridOptionsWrapper.prototype.getDefaultColGroupDef = function () {\n return this.gridOptions.defaultColGroupDef;\n };\n GridOptionsWrapper.prototype.getDefaultExportParams = function (type) {\n if (this.gridOptions.defaultExportParams) {\n console.warn(\"AG Grid: Since v25.2 `defaultExportParams` has been replaced by `default\" + capitalise(type) + \"ExportParams`'\");\n if (type === 'csv') {\n return this.gridOptions.defaultExportParams;\n }\n return this.gridOptions.defaultExportParams;\n }\n if (type === 'csv' && this.gridOptions.defaultCsvExportParams) {\n return this.gridOptions.defaultCsvExportParams;\n }\n if (type === 'excel' && this.gridOptions.defaultExcelExportParams) {\n return this.gridOptions.defaultExcelExportParams;\n }\n };\n GridOptionsWrapper.prototype.isSuppressCsvExport = function () {\n return isTrue(this.gridOptions.suppressCsvExport);\n };\n GridOptionsWrapper.prototype.isAllowShowChangeAfterFilter = function () {\n return isTrue(this.gridOptions.allowShowChangeAfterFilter);\n };\n GridOptionsWrapper.prototype.isSuppressExcelExport = function () {\n return isTrue(this.gridOptions.suppressExcelExport);\n };\n GridOptionsWrapper.prototype.isSuppressMakeColumnVisibleAfterUnGroup = function () {\n return isTrue(this.gridOptions.suppressMakeColumnVisibleAfterUnGroup);\n };\n GridOptionsWrapper.prototype.getDataPathFunc = function () {\n return this.gridOptions.getDataPath;\n };\n GridOptionsWrapper.prototype.getIsServerSideGroupFunc = function () {\n return this.gridOptions.isServerSideGroup;\n };\n GridOptionsWrapper.prototype.getIsServerSideGroupOpenByDefaultFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.isServerSideGroupOpenByDefault);\n };\n GridOptionsWrapper.prototype.getIsGroupOpenByDefaultFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.isGroupOpenByDefault);\n };\n GridOptionsWrapper.prototype.getServerSideGroupKeyFunc = function () {\n return this.gridOptions.getServerSideGroupKey;\n };\n GridOptionsWrapper.prototype.getGroupRowAggFunc = function () {\n var _a = this.gridOptions, getGroupRowAgg = _a.getGroupRowAgg, groupRowAggNodes = _a.groupRowAggNodes;\n if (getGroupRowAgg) {\n return this.mergeGridCommonParams(getGroupRowAgg);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (groupRowAggNodes) {\n return function (params) { return groupRowAggNodes(params.nodes); };\n }\n };\n GridOptionsWrapper.prototype.getContextMenuItemsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getContextMenuItems);\n };\n GridOptionsWrapper.prototype.getMainMenuItemsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getMainMenuItems);\n };\n GridOptionsWrapper.prototype.getRowIdFunc = function () {\n var _a = this.gridOptions, getRowId = _a.getRowId, getRowNodeId = _a.getRowNodeId;\n if (getRowId) {\n return this.mergeGridCommonParams(getRowId);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (getRowNodeId) {\n return function (params) { return getRowNodeId(params.data); };\n }\n };\n GridOptionsWrapper.prototype.getNavigateToNextHeaderFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.navigateToNextHeader);\n };\n GridOptionsWrapper.prototype.getTabToNextHeaderFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.tabToNextHeader);\n };\n GridOptionsWrapper.prototype.getNavigateToNextCellFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.navigateToNextCell);\n };\n GridOptionsWrapper.prototype.getTabToNextCellFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.tabToNextCell);\n };\n GridOptionsWrapper.prototype.getGridTabIndex = function () {\n return (this.gridOptions.tabIndex || 0).toString();\n };\n GridOptionsWrapper.prototype.isTreeData = function () {\n var usingTreeData = isTrue(this.gridOptions.treeData);\n if (usingTreeData) {\n return ModuleRegistry.assertRegistered(exports.ModuleNames.RowGroupingModule, 'Tree Data');\n }\n return false;\n };\n GridOptionsWrapper.prototype.isValueCache = function () {\n return isTrue(this.gridOptions.valueCache);\n };\n GridOptionsWrapper.prototype.isValueCacheNeverExpires = function () {\n return isTrue(this.gridOptions.valueCacheNeverExpires);\n };\n GridOptionsWrapper.prototype.isDeltaSort = function () {\n return isTrue(this.gridOptions.deltaSort);\n };\n GridOptionsWrapper.prototype.isAggregateOnlyChangedColumns = function () {\n return isTrue(this.gridOptions.aggregateOnlyChangedColumns);\n };\n GridOptionsWrapper.prototype.getProcessSecondaryColDefFunc = function () {\n return this.gridOptions.processSecondaryColDef;\n };\n GridOptionsWrapper.prototype.getProcessSecondaryColGroupDefFunc = function () {\n return this.gridOptions.processSecondaryColGroupDef;\n };\n GridOptionsWrapper.prototype.getSendToClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.sendToClipboard);\n };\n GridOptionsWrapper.prototype.getProcessRowPostCreateFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processRowPostCreate);\n };\n GridOptionsWrapper.prototype.getProcessCellForClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processCellForClipboard);\n };\n GridOptionsWrapper.prototype.getProcessHeaderForClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processHeaderForClipboard);\n };\n GridOptionsWrapper.prototype.getProcessGroupHeaderForClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processGroupHeaderForClipboard);\n };\n GridOptionsWrapper.prototype.getProcessCellFromClipboardFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.processCellFromClipboard);\n };\n GridOptionsWrapper.prototype.getViewportRowModelPageSize = function () {\n return oneOrGreater(this.gridOptions.viewportRowModelPageSize, DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE);\n };\n GridOptionsWrapper.prototype.getViewportRowModelBufferSize = function () {\n return zeroOrGreater(this.gridOptions.viewportRowModelBufferSize, DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE);\n };\n GridOptionsWrapper.prototype.isServerSideSortingAlwaysResets = function () {\n return isTrue(this.gridOptions.serverSideSortingAlwaysResets);\n };\n GridOptionsWrapper.prototype.isServerSideFilteringAlwaysResets = function () {\n return isTrue(this.gridOptions.serverSideFilteringAlwaysResets);\n };\n GridOptionsWrapper.prototype.getPostSortFunc = function () {\n var _a = this.gridOptions, postSortRows = _a.postSortRows, postSort = _a.postSort;\n if (postSortRows) {\n return this.mergeGridCommonParams(postSortRows);\n }\n // this is the deprecated way, so provide a proxy to make it compatible\n if (postSort) {\n return function (params) { return postSort(params.nodes); };\n }\n };\n GridOptionsWrapper.prototype.getChartToolbarItemsFunc = function () {\n return this.mergeGridCommonParams(this.gridOptions.getChartToolbarItems);\n };\n GridOptionsWrapper.prototype.getChartThemeOverrides = function () {\n return this.gridOptions.chartThemeOverrides;\n };\n GridOptionsWrapper.prototype.getCustomChartThemes = function () {\n return this.gridOptions.customChartThemes;\n };\n GridOptionsWrapper.prototype.getChartThemes = function () {\n // return default themes if user hasn't supplied any\n return this.gridOptions.chartThemes || ['ag-default', 'ag-material', 'ag-pastel', 'ag-vivid', 'ag-solar'];\n };\n GridOptionsWrapper.prototype.getClipboardDelimiter = function () {\n return exists(this.gridOptions.clipboardDelimiter) ? this.gridOptions.clipboardDelimiter : '\\t';\n };\n GridOptionsWrapper.prototype.setProperty = function (key, value, force) {\n if (force === void 0) { force = false; }\n var gridOptionsNoType = this.gridOptions;\n var previousValue = gridOptionsNoType[key];\n if (force || previousValue !== value) {\n gridOptionsNoType[key] = value;\n var event_1 = {\n type: key,\n currentValue: value,\n previousValue: previousValue\n };\n this.propertyEventService.dispatchEvent(event_1);\n }\n };\n GridOptionsWrapper.prototype.addEventListener = function (key, listener) {\n this.propertyEventService.addEventListener(key, listener);\n };\n GridOptionsWrapper.prototype.removeEventListener = function (key, listener) {\n this.propertyEventService.removeEventListener(key, listener);\n };\n GridOptionsWrapper.prototype.isSkipHeaderOnAutoSize = function () {\n return !!this.gridOptions.skipHeaderOnAutoSize;\n };\n GridOptionsWrapper.prototype.getAutoSizePadding = function () {\n var value = this.gridOptions.autoSizePadding;\n return value != null && value >= 0 ? value : 20;\n };\n // properties\n GridOptionsWrapper.prototype.getHeaderHeight = function () {\n if (typeof this.gridOptions.headerHeight === 'number') {\n return this.gridOptions.headerHeight;\n }\n return this.getFromTheme(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getFloatingFiltersHeight = function () {\n if (typeof this.gridOptions.floatingFiltersHeight === 'number') {\n return this.gridOptions.floatingFiltersHeight;\n }\n return this.getFromTheme(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getGroupHeaderHeight = function () {\n if (typeof this.gridOptions.groupHeaderHeight === 'number') {\n return this.gridOptions.groupHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotHeaderHeight = function () {\n if (typeof this.gridOptions.pivotHeaderHeight === 'number') {\n return this.gridOptions.pivotHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotGroupHeaderHeight = function () {\n if (typeof this.gridOptions.pivotGroupHeaderHeight === 'number') {\n return this.gridOptions.pivotGroupHeaderHeight;\n }\n return this.getGroupHeaderHeight();\n };\n GridOptionsWrapper.prototype.isExternalFilterPresent = function () {\n if (typeof this.gridOptions.isExternalFilterPresent === 'function') {\n return this.gridOptions.isExternalFilterPresent({ api: this.getApi(), columnApi: this.getColumnApi(), context: this.getContext() });\n }\n return false;\n };\n GridOptionsWrapper.prototype.doesExternalFilterPass = function (node) {\n if (typeof this.gridOptions.doesExternalFilterPass === 'function') {\n return this.gridOptions.doesExternalFilterPass(node);\n }\n return false;\n };\n GridOptionsWrapper.prototype.getTooltipDelay = function (type) {\n var _a = this.gridOptions, tooltipShowDelay = _a.tooltipShowDelay, tooltipHideDelay = _a.tooltipHideDelay;\n var delay = type === 'show' ? tooltipShowDelay : tooltipHideDelay;\n var capitalisedType = capitalise(type);\n if (exists(delay)) {\n if (delay < 0) {\n doOnce(function () { return console.warn(\"ag-grid: tooltip\" + capitalisedType + \"Delay should not be lower than 0\"); }, \"tooltip\" + capitalisedType + \"DelayWarn\");\n }\n return Math.max(200, delay);\n }\n return null;\n };\n GridOptionsWrapper.prototype.isTooltipMouseTrack = function () {\n return isTrue(this.gridOptions.tooltipMouseTrack);\n };\n GridOptionsWrapper.prototype.isSuppressModelUpdateAfterUpdateTransaction = function () {\n return isTrue(this.gridOptions.suppressModelUpdateAfterUpdateTransaction);\n };\n GridOptionsWrapper.prototype.getDocument = function () {\n // if user is providing document, we use the users one,\n // otherwise we use the document on the global namespace.\n var result = null;\n if (this.gridOptions.getDocument && exists(this.gridOptions.getDocument)) {\n result = this.gridOptions.getDocument();\n }\n else if (this.eGridDiv) {\n result = this.eGridDiv.ownerDocument;\n }\n if (result && exists(result)) {\n return result;\n }\n return document;\n };\n GridOptionsWrapper.prototype.getMinColWidth = function () {\n var minColWidth = this.gridOptions.minColWidth;\n if (exists(minColWidth) && minColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return this.gridOptions.minColWidth;\n }\n var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');\n return exists(measuredMin) ? Math.max(measuredMin, GridOptionsWrapper_1.MIN_COL_WIDTH) : GridOptionsWrapper_1.MIN_COL_WIDTH;\n };\n GridOptionsWrapper.prototype.getMaxColWidth = function () {\n if (this.gridOptions.maxColWidth && this.gridOptions.maxColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return this.gridOptions.maxColWidth;\n }\n return null;\n };\n GridOptionsWrapper.prototype.getColWidth = function () {\n if (typeof this.gridOptions.colWidth !== 'number' || this.gridOptions.colWidth < GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return 200;\n }\n return this.gridOptions.colWidth;\n };\n GridOptionsWrapper.prototype.getRowBuffer = function () {\n var rowBuffer = this.gridOptions.rowBuffer;\n if (typeof rowBuffer === 'number') {\n if (rowBuffer < 0) {\n doOnce(function () { return console.warn(\"AG Grid: rowBuffer should not be negative\"); }, 'warn rowBuffer negative');\n this.gridOptions.rowBuffer = rowBuffer = 0;\n }\n }\n else {\n rowBuffer = Constants.ROW_BUFFER_SIZE;\n }\n return rowBuffer;\n };\n GridOptionsWrapper.prototype.getRowBufferInPixels = function () {\n var rowsToBuffer = this.getRowBuffer();\n var defaultRowHeight = this.getRowHeightAsNumber();\n return rowsToBuffer * defaultRowHeight;\n };\n // the user might be using some non-standard scrollbar, eg a scrollbar that has zero\n // width and overlays (like the Safari scrollbar, but presented in Chrome). so we\n // allow the user to provide the scroll width before we work it out.\n GridOptionsWrapper.prototype.getScrollbarWidth = function () {\n if (this.scrollbarWidth == null) {\n var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;\n var scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : getScrollbarWidth();\n if (scrollbarWidth != null) {\n this.scrollbarWidth = scrollbarWidth;\n this.eventService.dispatchEvent({\n type: Events.EVENT_SCROLLBAR_WIDTH_CHANGED\n });\n }\n }\n return this.scrollbarWidth;\n };\n GridOptionsWrapper.prototype.checkForDeprecated = function () {\n // casting to generic object, so typescript compiles even though\n // we are looking for attributes that don't exist\n var options = this.gridOptions;\n if (options.deprecatedEmbedFullWidthRows) {\n console.warn(\"AG Grid: since v21.2, deprecatedEmbedFullWidthRows has been replaced with embedFullWidthRows.\");\n }\n if (options.rowDeselection) {\n console.warn('AG Grid: since v24.x, rowDeselection is deprecated and the behaviour is true by default. Please use `suppressRowDeselection` to prevent rows from being deselected.');\n }\n if (options.enableMultiRowDragging) {\n options.rowDragMultiRow = true;\n delete options.enableMultiRowDragging;\n console.warn('AG Grid: since v26.1, `enableMultiRowDragging` is deprecated. Please use `rowDragMultiRow`.');\n }\n var checkRenamedProperty = function (oldProp, newProp, version) {\n if (options[oldProp] != null) {\n console.warn(\"AG Grid: since version \" + version + \", '\" + oldProp + \"' is deprecated / renamed, please use the new property name '\" + newProp + \"' instead.\");\n if (options[newProp] == null) {\n options[newProp] = options[oldProp];\n }\n }\n };\n checkRenamedProperty('batchUpdateWaitMillis', 'asyncTransactionWaitMillis', '23.1.x');\n checkRenamedProperty('deltaRowDataMode', 'immutableData', '23.1.x');\n if (options.immutableColumns || options.deltaColumnMode) {\n console.warn('AG Grid: since v24.0, immutableColumns and deltaColumnMode properties are gone. The grid now works like this as default. To keep column order maintained, set grid property applyColumnDefOrder=true');\n }\n checkRenamedProperty('suppressSetColumnStateEvents', 'suppressColumnStateEvents', '24.0.x');\n if (options.groupRowInnerRenderer || options.groupRowInnerRendererParams || options.groupRowInnerRendererFramework) {\n console.warn('AG Grid: since v24.0, grid properties groupRowInnerRenderer, groupRowInnerRendererFramework and groupRowInnerRendererParams are no longer used.');\n console.warn(' Instead use the grid properties groupRowRendererParams.innerRenderer, groupRowRendererParams.innerRendererFramework and groupRowRendererParams.innerRendererParams.');\n console.warn(' For example instead of this:');\n console.warn(' groupRowInnerRenderer: \"myRenderer\"');\n console.warn(' groupRowInnerRendererParams: {x: a}');\n console.warn(' Replace with this:');\n console.warn(' groupRowRendererParams: {');\n console.warn(' innerRenderer: \"myRenderer\",');\n console.warn(' innerRendererParams: {x: a}');\n console.warn(' }');\n console.warn(' We have copied the properties over for you. However to stop this error message, please change your application code.');\n if (!options.groupRowRendererParams) {\n options.groupRowRendererParams = {};\n }\n var params = options.groupRowRendererParams;\n if (options.groupRowInnerRenderer) {\n params.innerRenderer = options.groupRowInnerRenderer;\n }\n if (options.groupRowInnerRendererParams) {\n params.innerRendererParams = options.groupRowInnerRendererParams;\n }\n if (options.groupRowInnerRendererFramework) {\n params.innerRendererFramework = options.groupRowInnerRendererFramework;\n }\n }\n if (options.rememberGroupStateWhenNewData) {\n console.warn('AG Grid: since v24.0, grid property rememberGroupStateWhenNewData is deprecated. This feature was provided before Transaction Updates worked (which keep group state). Now that transaction updates are possible and they keep group state, this feature is no longer needed.');\n }\n if (options.detailCellRendererParams && options.detailCellRendererParams.autoHeight) {\n console.warn('AG Grid: since v24.1, grid property detailCellRendererParams.autoHeight is replaced with grid property detailRowAutoHeight. This allows this feature to work when you provide a custom DetailCellRenderer');\n options.detailRowAutoHeight = true;\n }\n if (options.suppressKeyboardEvent) {\n console.warn(\"AG Grid: since v24.1 suppressKeyboardEvent in the gridOptions has been deprecated and will be removed in\\n future versions of AG Grid. If you need this to be set for every column use the defaultColDef property.\");\n }\n if (options.suppressEnterpriseResetOnNewColumns) {\n console.warn('AG Grid: since v25, grid property suppressEnterpriseResetOnNewColumns is deprecated. This was a temporary property to allow changing columns in Server Side Row Model without triggering a reload. Now that it is possible to dynamically change columns in the grid, this is no longer needed.');\n }\n if (options.suppressColumnStateEvents) {\n console.warn('AG Grid: since v25, grid property suppressColumnStateEvents no longer works due to a refactor that we did. It should be possible to achieve similar using event.source, which would be \"api\" if the event was due to setting column state via the API');\n }\n if (options.defaultExportParams) {\n console.warn('AG Grid: since v25.2, the grid property `defaultExportParams` has been replaced by `defaultCsvExportParams` and `defaultExcelExportParams`.');\n }\n if (options.stopEditingWhenGridLosesFocus) {\n console.warn('AG Grid: since v25.2.2, the grid property `stopEditingWhenGridLosesFocus` has been replaced by `stopEditingWhenCellsLoseFocus`.');\n options.stopEditingWhenCellsLoseFocus = true;\n }\n if (options.applyColumnDefOrder) {\n console.warn('AG Grid: since v26.0, the grid property `applyColumnDefOrder` is no longer needed, as this is the default behaviour. To turn this behaviour off, set maintainColumnOrder=true');\n }\n if (options.groupMultiAutoColumn) {\n console.warn(\"AG Grid: since v26.0, the grid property `groupMultiAutoColumn` has been replaced by `groupDisplayType = 'multipleColumns'`\");\n options.groupDisplayType = 'multipleColumns';\n }\n if (options.groupUseEntireRow) {\n console.warn(\"AG Grid: since v26.0, the grid property `groupUseEntireRow` has been replaced by `groupDisplayType = 'groupRows'`\");\n options.groupDisplayType = 'groupRows';\n }\n if (options.groupSuppressAutoColumn) {\n var propName = options.treeData ? 'treeDataDisplayType' : 'groupDisplayType';\n console.warn(\"AG Grid: since v26.0, the grid property `groupSuppressAutoColumn` has been replaced by `\" + propName + \" = 'custom'`\");\n options.groupDisplayType = 'custom';\n }\n if (options.defaultGroupOrderComparator) {\n console.warn(\"AG Grid: since v27.2, the grid property `defaultGroupOrderComparator` is deprecated and has been replaced by `initialGroupOrderComparator` and now receives a single params object.\");\n }\n if (options.defaultGroupSortComparator) {\n console.warn(\"AG Grid: since v26.0, the grid property `defaultGroupSortComparator` has been replaced by `initialGroupOrderComparator`\");\n options.defaultGroupOrderComparator = options.defaultGroupSortComparator;\n }\n if (options.groupRowAggNodes) {\n console.warn(\"AG Grid: since v27.2, the grid property `groupRowAggNodes` is deprecated and has been replaced by `getGroupRowAgg` and now receives a single params object.\");\n }\n if (options.postSort) {\n console.warn(\"AG Grid: since v27.2, the grid property `postSort` is deprecated and has been replaced by `postSortRows` and now receives a single params object.\");\n }\n if (options.isFullWidthCell) {\n console.warn(\"AG Grid: since v27.2, the grid property `isFullWidthCell` is deprecated and has been replaced by `isFullWidthRow` and now receives a single params object.\");\n }\n if (options.localeTextFunc) {\n console.warn(\"AG Grid: since v27.2, the grid property `localeTextFunc` is deprecated and has been replaced by `getLocaleText` and now receives a single params object.\");\n }\n if (options.colWidth) {\n console.warn('AG Grid: since v26.1, the grid property `colWidth` is deprecated and should be set via `defaultColDef.width`.');\n }\n if (options.minColWidth) {\n console.warn('AG Grid: since v26.1, the grid property `minColWidth` is deprecated and should be set via `defaultColDef.minWidth`.');\n }\n if (options.maxColWidth) {\n console.warn('AG Grid: since v26.1, the grid property `maxColWidth` is deprecated and should be set via `defaultColDef.maxWidth`.');\n }\n if (options.reactUi) {\n console.warn('AG Grid: since v27.0, React UI is on by default, so no need for reactUi=true. To turn it off, set suppressReactUi=true.');\n }\n if (options.suppressReactUi) {\n console.warn('AG Grid: The legacy React rendering engine is deprecated and will be removed in the next major version of the grid.');\n }\n if (options.suppressCellSelection) {\n console.warn('AG Grid: since v27.0, `suppressCellSelection` has been replaced by `suppressCellFocus`.');\n options.suppressCellFocus = options.suppressCellSelection;\n }\n if (options.getRowNodeId) {\n console.warn('AG Grid: since v27.1, `getRowNodeId` is deprecated and has been replaced by `getRowId`. The difference: if getRowId() is implemented then immutable data is enabled by default.');\n }\n if (options.immutableData) {\n if (options.getRowId) {\n console.warn('AG Grid: since v27.1, `immutableData` is deprecated. With the `getRowId` callback implemented, immutable data is enabled by default so you can remove `immutableData=true`.');\n }\n else {\n console.warn('AG Grid: since v27.1, `immutableData` is deprecated. To enable immutable data you must implement the `getRowId()` callback.');\n }\n }\n if (options.clipboardDeliminator) {\n console.warn('AG Grid: since v27.1, `clipboardDeliminator` has been replaced by `clipboardDelimiter`.');\n options.clipboardDelimiter = options.clipboardDeliminator;\n }\n };\n GridOptionsWrapper.prototype.checkForViolations = function () {\n if (this.isTreeData()) {\n this.treeDataViolations();\n }\n };\n GridOptionsWrapper.prototype.treeDataViolations = function () {\n if (this.isRowModelDefault()) {\n if (missing(this.getDataPathFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +\n 'provide getDataPath function, please provide getDataPath function if using tree data.');\n }\n }\n if (this.isRowModelServerSide()) {\n if (missing(this.getIsServerSideGroupFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');\n }\n if (missing(this.getServerSideGroupKeyFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');\n }\n }\n };\n GridOptionsWrapper.prototype.getLocaleTextFunc = function () {\n var _this = this;\n var _a = this.gridOptions, localeText = _a.localeText, getLocaleText = _a.getLocaleText, localeTextFunc = _a.localeTextFunc;\n if (getLocaleText) {\n //key: string, defaultValue: string, variableValues?: string[]\n return function (key, defaultValue, variableValues) {\n var params = {\n key: key,\n defaultValue: defaultValue,\n variableValues: variableValues,\n api: _this.getApi(),\n columnApi: _this.getColumnApi(),\n context: _this.getContext()\n };\n return getLocaleText(params);\n };\n }\n if (localeTextFunc) {\n return localeTextFunc;\n }\n return function (key, defaultValue, variableValues) {\n var localisedText = localeText && localeText[key];\n if (localisedText && variableValues && variableValues.length) {\n var found = 0;\n while (true) {\n if (found >= variableValues.length) {\n break;\n }\n var idx = localisedText.indexOf('${variable}');\n if (idx === -1) {\n break;\n }\n localisedText = localisedText.replace('${variable}', variableValues[found++]);\n }\n }\n return (localisedText !== null && localisedText !== void 0 ? localisedText : defaultValue);\n };\n };\n // responsible for calling the onXXX functions on gridOptions\n GridOptionsWrapper.prototype.globalEventHandler = function (eventName, event) {\n // prevent events from being fired _after_ the grid has been destroyed\n if (this.destroyed) {\n return;\n }\n var callbackMethodName = ComponentUtil.getCallbackForEvent(eventName);\n if (typeof this.gridOptions[callbackMethodName] === 'function') {\n this.gridOptions[callbackMethodName](event);\n }\n };\n GridOptionsWrapper.prototype.setRowHeightVariable = function (height) {\n var oldRowHeight = this.eGridDiv.style.getPropertyValue('--ag-line-height').trim();\n var newRowHeight = height + \"px\";\n if (oldRowHeight != newRowHeight) {\n this.eGridDiv.style.setProperty('--ag-line-height', newRowHeight);\n }\n };\n // we don't allow dynamic row height for virtual paging\n GridOptionsWrapper.prototype.getRowHeightAsNumber = function () {\n if (!this.gridOptions.rowHeight || missing(this.gridOptions.rowHeight)) {\n return this.getDefaultRowHeight();\n }\n var rowHeight = this.gridOptions.rowHeight;\n if (rowHeight && this.isNumeric(rowHeight)) {\n this.setRowHeightVariable(rowHeight);\n return rowHeight;\n }\n console.warn('AG Grid row height must be a number if not using standard row model');\n return this.getDefaultRowHeight();\n };\n GridOptionsWrapper.prototype.isGetRowHeightFunction = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsWrapper.prototype.getRowHeightForNode = function (rowNode, allowEstimate, defaultRowHeight) {\n if (allowEstimate === void 0) { allowEstimate = false; }\n if (defaultRowHeight == null) {\n defaultRowHeight = this.getDefaultRowHeight();\n }\n // check the function first, in case use set both function and\n // number, when using virtual pagination then function can be\n // used for pinned rows and the number for the body rows.\n if (this.isGetRowHeightFunction()) {\n if (allowEstimate) {\n return { height: defaultRowHeight, estimated: true };\n }\n var params = {\n node: rowNode,\n data: rowNode.data\n };\n var height = this.mergeGridCommonParams(this.gridOptions.getRowHeight)(params);\n if (this.isNumeric(height)) {\n if (height === 0) {\n doOnce(function () { return console.warn('AG Grid: The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead.'); }, 'invalidRowHeight');\n }\n return { height: Math.max(1, height), estimated: false };\n }\n }\n if (rowNode.detail && this.isMasterDetail()) {\n // if autoHeight, we want the height to grow to the new height starting at 1, as otherwise a flicker would happen,\n // as the detail goes to the default (eg 200px) and then immediately shrink up/down to the new measured height\n // (due to auto height) which looks bad, especially if doing row animation.\n if (this.isDetailRowAutoHeight()) {\n return { height: 1, estimated: false };\n }\n if (this.isNumeric(this.gridOptions.detailRowHeight)) {\n return { height: this.gridOptions.detailRowHeight, estimated: false };\n }\n return { height: DEFAULT_DETAIL_ROW_HEIGHT, estimated: false };\n }\n var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;\n return { height: rowHeight, estimated: false };\n };\n GridOptionsWrapper.prototype.isDynamicRowHeight = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsWrapper.prototype.getListItemHeight = function () {\n return this.getFromTheme(20, 'listItemHeight');\n };\n GridOptionsWrapper.prototype.chartMenuPanelWidth = function () {\n return this.environment.chartMenuPanelWidth();\n };\n GridOptionsWrapper.prototype.isNumeric = function (value) {\n return !isNaN(value) && typeof value === 'number' && isFinite(value);\n };\n GridOptionsWrapper.prototype.getFromTheme = function (defaultValue, sassVariableName) {\n var theme = this.environment.getTheme().theme;\n if (theme && theme.indexOf('ag-theme') === 0) {\n return this.environment.getSassVariable(theme, sassVariableName);\n }\n return defaultValue;\n };\n GridOptionsWrapper.prototype.getDefaultRowHeight = function () {\n return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');\n };\n GridOptionsWrapper.prototype.matchesGroupDisplayType = function (toMatch, supplied) {\n var groupDisplayTypeValues = ['groupRows', 'multipleColumns', 'custom', 'singleColumn'];\n if (groupDisplayTypeValues.indexOf(supplied) < 0) {\n console.warn(\"AG Grid: '\" + supplied + \"' is not a valid groupDisplayType value - possible values are: '\" + groupDisplayTypeValues.join(\"', '\") + \"'\");\n return false;\n }\n return supplied === toMatch;\n };\n GridOptionsWrapper.prototype.matchesTreeDataDisplayType = function (toMatch, supplied) {\n var treeDataDisplayTypeValues = ['auto', 'custom'];\n if (treeDataDisplayTypeValues.indexOf(supplied) < 0) {\n console.warn(\"AG Grid: '\" + supplied + \"' is not a valid treeDataDisplayType value - possible values are: '\" + treeDataDisplayTypeValues.join(\"', '\") + \"'\");\n return false;\n }\n return supplied === toMatch;\n };\n var GridOptionsWrapper_1;\n GridOptionsWrapper.MIN_COL_WIDTH = 10;\n GridOptionsWrapper.PROP_HEADER_HEIGHT = 'headerHeight';\n GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN = 'groupRemoveSingleChildren';\n GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN = 'groupRemoveLowestSingleChildren';\n GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT = 'pivotHeaderHeight';\n GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE = 'suppressClipboardPaste';\n GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT = 'groupHeaderHeight';\n GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT = 'pivotGroupHeaderHeight';\n GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL = 'navigateToNextCell';\n GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL = 'tabToNextCell';\n GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER = 'navigateToNextHeader';\n GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER = 'tabToNextHeader';\n GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT = 'isExternalFilterPresent';\n GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS = 'doesExternalFilterPass';\n GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT = 'floatingFiltersHeight';\n GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION = 'suppressRowClickSelection';\n GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG = 'suppressRowDrag';\n GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG = 'suppressMoveWhenRowDragging';\n GridOptionsWrapper.PROP_GET_ROW_CLASS = 'getRowClass';\n GridOptionsWrapper.PROP_GET_ROW_STYLE = 'getRowStyle';\n GridOptionsWrapper.PROP_GET_ROW_HEIGHT = 'getRowHeight';\n GridOptionsWrapper.PROP_POPUP_PARENT = 'popupParent';\n GridOptionsWrapper.PROP_DOM_LAYOUT = 'domLayout';\n GridOptionsWrapper.PROP_ROW_CLASS = 'rowClass';\n GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION = 'fillHandleDirection';\n GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES = 'groupRowAggNodes';\n GridOptionsWrapper.PROP_GET_GROUP_ROW_AGG = 'getGroupRowAgg';\n GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE = 'getBusinessKeyForNode';\n GridOptionsWrapper.PROP_GET_CHILD_COUNT = 'getChildCount';\n GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE = 'processRowPostCreate';\n GridOptionsWrapper.PROP_GET_ROW_NODE_ID = 'getRowNodeId';\n GridOptionsWrapper.PROP_GET_ROW_ID = 'getRowId';\n GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL = 'isFullWidthCell';\n GridOptionsWrapper.PROP_IS_FULL_WIDTH_ROW = 'isFullWidthRow';\n GridOptionsWrapper.PROP_IS_ROW_SELECTABLE = 'isRowSelectable';\n GridOptionsWrapper.PROP_IS_ROW_MASTER = 'isRowMaster';\n GridOptionsWrapper.PROP_POST_SORT = 'postSort';\n GridOptionsWrapper.PROP_POST_SORT_ROWS = 'postSortRows';\n GridOptionsWrapper.PROP_GET_DOCUMENT = 'getDocument';\n GridOptionsWrapper.PROP_POST_PROCESS_POPUP = 'postProcessPopup';\n GridOptionsWrapper.PROP_DEFAULT_GROUP_ORDER_COMPARATOR = 'defaultGroupOrderComparator';\n GridOptionsWrapper.PROP_INITIAL_GROUP_ORDER_COMPARATOR = 'initialGroupOrderComparator';\n GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER = 'paginationNumberFormatter';\n GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS = 'getContextMenuItems';\n GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS = 'getMainMenuItems';\n GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD = 'processCellForClipboard';\n GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD = 'processCellFromClipboard';\n GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD = 'sendToClipboard';\n GridOptionsWrapper.PROP_PROCESS_TO_SECONDARY_COLDEF = 'processSecondaryColDef';\n GridOptionsWrapper.PROP_PROCESS_SECONDARY_COL_GROUP_DEF = 'processSecondaryColGroupDef';\n GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS = 'getChartToolbarItems';\n GridOptionsWrapper.PROP_GET_SERVER_SIDE_STORE_PARAMS = 'getServerSideStoreParams';\n GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT = 'isServerSideGroupOpenByDefault';\n GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION = 'isApplyServerSideTransaction';\n GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP = 'isServerSideGroup';\n GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY = 'getServerSideGroupKey';\n __decorate$I([\n Autowired('gridOptions')\n ], GridOptionsWrapper.prototype, \"gridOptions\", void 0);\n __decorate$I([\n Autowired('eventService')\n ], GridOptionsWrapper.prototype, \"eventService\", void 0);\n __decorate$I([\n Autowired('environment')\n ], GridOptionsWrapper.prototype, \"environment\", void 0);\n __decorate$I([\n Autowired('eGridDiv')\n ], GridOptionsWrapper.prototype, \"eGridDiv\", void 0);\n __decorate$I([\n __param$3(0, Qualifier('gridApi')), __param$3(1, Qualifier('columnApi'))\n ], GridOptionsWrapper.prototype, \"agWire\", null);\n __decorate$I([\n PreDestroy\n ], GridOptionsWrapper.prototype, \"destroy\", null);\n __decorate$I([\n PostConstruct\n ], GridOptionsWrapper.prototype, \"init\", null);\n GridOptionsWrapper = GridOptionsWrapper_1 = __decorate$I([\n Bean('gridOptionsWrapper')\n ], GridOptionsWrapper);\n return GridOptionsWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n(function (LayoutCssClasses) {\n LayoutCssClasses[\"AUTO_HEIGHT\"] = \"ag-layout-auto-height\";\n LayoutCssClasses[\"NORMAL\"] = \"ag-layout-normal\";\n LayoutCssClasses[\"PRINT\"] = \"ag-layout-print\";\n})(exports.LayoutCssClasses || (exports.LayoutCssClasses = {}));\nvar LayoutFeature = /** @class */ (function (_super) {\n __extends$Q(LayoutFeature, _super);\n function LayoutFeature(view) {\n var _this = _super.call(this) || this;\n _this.view = view;\n return _this;\n }\n LayoutFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.updateLayoutClasses.bind(this));\n this.updateLayoutClasses();\n };\n LayoutFeature.prototype.updateLayoutClasses = function () {\n var domLayout = this.gridOptionsWrapper.getDomLayout();\n var params = {\n autoHeight: domLayout === Constants.DOM_LAYOUT_AUTO_HEIGHT,\n normal: domLayout === Constants.DOM_LAYOUT_NORMAL,\n print: domLayout === Constants.DOM_LAYOUT_PRINT\n };\n var cssClass = params.autoHeight ? exports.LayoutCssClasses.AUTO_HEIGHT :\n params.print ? exports.LayoutCssClasses.PRINT : exports.LayoutCssClasses.NORMAL;\n this.view.updateLayoutClasses(cssClass, params);\n };\n __decorate$J([\n Autowired('gridOptionsWrapper')\n ], LayoutFeature.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$J([\n PostConstruct\n ], LayoutFeature.prototype, \"postConstruct\", null);\n return LayoutFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridBodyScrollFeature = /** @class */ (function (_super) {\n __extends$R(GridBodyScrollFeature, _super);\n function GridBodyScrollFeature(eBodyViewport) {\n var _this = _super.call(this) || this;\n _this.scrollLeft = -1;\n _this.nextScrollTop = -1;\n _this.scrollTop = -1;\n _this.eBodyViewport = eBodyViewport;\n _this.resetLastHorizontalScrollElementDebounced = debounce(_this.resetLastHorizontalScrollElement.bind(_this), 500);\n return _this;\n }\n GridBodyScrollFeature.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n _this.onDisplayedColumnsWidthChanged();\n _this.addScrollListener();\n });\n };\n GridBodyScrollFeature.prototype.addScrollListener = function () {\n var fakeHScroll = this.ctrlsService.getFakeHScrollCtrl();\n this.addManagedListener(this.centerRowContainerCtrl.getViewportElement(), 'scroll', this.onCenterViewportScroll.bind(this));\n this.addManagedListener(fakeHScroll.getViewport(), 'scroll', this.onFakeHorizontalScroll.bind(this));\n var onVerticalScroll = this.gridOptionsWrapper.isDebounceVerticalScrollbar() ?\n debounce(this.onVerticalScroll.bind(this), 100)\n : this.onVerticalScroll.bind(this);\n this.addManagedListener(this.eBodyViewport, 'scroll', onVerticalScroll);\n };\n GridBodyScrollFeature.prototype.onDisplayedColumnsWidthChanged = function () {\n if (this.enableRtl) {\n // because RTL is all backwards, a change in the width of the row\n // can cause a change in the scroll position, without a scroll event,\n // because the scroll position in RTL is a function that depends on\n // the width. to be convinced of this, take out this line, enable RTL,\n // scroll all the way to the left and then resize a column\n this.horizontallyScrollHeaderCenterAndFloatingCenter();\n }\n };\n GridBodyScrollFeature.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {\n // when doing RTL, this method gets called once prematurely\n var notYetInitialised = this.centerRowContainerCtrl == null;\n if (notYetInitialised) {\n return;\n }\n if (scrollLeft === undefined) {\n scrollLeft = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n }\n var offset = this.enableRtl ? scrollLeft : -scrollLeft;\n var topCenterContainer = this.ctrlsService.getTopCenterRowContainerCtrl();\n var bottomCenterContainer = this.ctrlsService.getBottomCenterRowContainerCtrl();\n var fakeHScroll = this.ctrlsService.getFakeHScrollCtrl();\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n centerHeaderContainer.setHorizontalScroll(offset);\n bottomCenterContainer.setContainerTranslateX(offset);\n topCenterContainer.setContainerTranslateX(offset);\n var partner = this.lastHorizontalScrollElement === this.centerRowContainerCtrl.getViewportElement() ?\n fakeHScroll.getViewport() : this.centerRowContainerCtrl.getViewportElement();\n setScrollLeft(partner, Math.abs(scrollLeft), this.enableRtl);\n };\n GridBodyScrollFeature.prototype.isControllingScroll = function (eDiv) {\n if (!this.lastHorizontalScrollElement) {\n this.lastHorizontalScrollElement = eDiv;\n return true;\n }\n return eDiv === this.lastHorizontalScrollElement;\n };\n GridBodyScrollFeature.prototype.onFakeHorizontalScroll = function () {\n var fakeHScrollViewport = this.ctrlsService.getFakeHScrollCtrl().getViewport();\n if (!this.isControllingScroll(fakeHScrollViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(fakeHScrollViewport);\n };\n GridBodyScrollFeature.prototype.onCenterViewportScroll = function () {\n var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();\n if (!this.isControllingScroll(centerContainerViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(centerContainerViewport);\n };\n GridBodyScrollFeature.prototype.onBodyHorizontalScroll = function (eSource) {\n var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();\n var scrollLeft = centerContainerViewport.scrollLeft;\n if (this.shouldBlockScrollUpdate('horizontal', scrollLeft, true)) {\n return;\n }\n // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.\n // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200\n // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.\n // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,\n // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause\n // scroll to 200px, the next to 199px, then the first back to 198px and so on).\n this.doHorizontalScroll(Math.round(getScrollLeft(eSource, this.enableRtl)));\n this.resetLastHorizontalScrollElementDebounced();\n };\n GridBodyScrollFeature.prototype.onVerticalScroll = function () {\n var scrollTop = this.eBodyViewport.scrollTop;\n if (this.shouldBlockScrollUpdate('vertical', scrollTop, true)) {\n return;\n }\n this.animationFrameService.setScrollTop(scrollTop);\n this.nextScrollTop = scrollTop;\n if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n else {\n this.animationFrameService.schedule();\n }\n };\n GridBodyScrollFeature.prototype.resetLastHorizontalScrollElement = function () {\n this.lastHorizontalScrollElement = null;\n };\n GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {\n var fakeHScrollViewport = this.ctrlsService.getFakeHScrollCtrl().getViewport();\n var fakeScrollLeft = getScrollLeft(fakeHScrollViewport, this.enableRtl);\n if (this.scrollLeft === scrollLeft && scrollLeft === fakeScrollLeft) {\n return;\n }\n this.scrollLeft = scrollLeft;\n this.fireScrollEvent('horizontal');\n this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);\n this.onHorizontalViewportChanged();\n };\n GridBodyScrollFeature.prototype.fireScrollEvent = function (direction) {\n var _this = this;\n var bodyScrollEvent = {\n type: Events.EVENT_BODY_SCROLL,\n api: this.gridApi,\n columnApi: this.columnApi,\n direction: direction,\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(bodyScrollEvent);\n window.clearTimeout(this.scrollTimer);\n this.scrollTimer = undefined;\n this.scrollTimer = window.setTimeout(function () {\n var bodyScrollEndEvent = Object.assign({}, bodyScrollEvent, {\n type: Events.EVENT_BODY_SCROLL_END\n });\n _this.eventService.dispatchEvent(bodyScrollEndEvent);\n }, 100);\n };\n GridBodyScrollFeature.prototype.shouldBlockScrollUpdate = function (direction, scrollTo, touchOnly) {\n // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport\n // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually\n // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,\n // as otherwise it was causing the rows and header to flicker.\n if (touchOnly === void 0) { touchOnly = false; }\n // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to\n // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event\n // could be 10px before the max position, and then current scroll event could be 20px after the max position).\n // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in\n // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.\n if (touchOnly && !isIOSUserAgent()) {\n return false;\n }\n if (direction === 'vertical') {\n var clientHeight = getInnerHeight(this.eBodyViewport);\n var scrollHeight = this.eBodyViewport.scrollHeight;\n if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {\n return true;\n }\n }\n if (direction === 'horizontal') {\n var clientWidth = this.centerRowContainerCtrl.getCenterWidth();\n var scrollWidth = this.centerRowContainerCtrl.getViewportElement().scrollWidth;\n if (this.enableRtl && isRtlNegativeScroll()) {\n if (scrollTo > 0) {\n return true;\n }\n }\n else if (scrollTo < 0) {\n return true;\n }\n if (Math.abs(scrollTo) + clientWidth > scrollWidth) {\n return true;\n }\n }\n return false;\n };\n GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {\n this.fireScrollEvent('vertical');\n };\n GridBodyScrollFeature.prototype.onHorizontalViewportChanged = function () {\n this.centerRowContainerCtrl.onHorizontalViewportChanged();\n };\n // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.\n // (which happens with some implementations of tabbing). this can result in horizontal scroll getting\n // reset back to the left, however no scroll event is fired. so we need to get header to also scroll\n // back to the left to be kept in sync.\n // adding and removing the grid from the DOM both resets the scroll position and\n // triggers a resize event, so notify listeners if the scroll position has changed\n GridBodyScrollFeature.prototype.checkScrollLeft = function () {\n if (this.scrollLeft !== this.centerRowContainerCtrl.getCenterViewportScrollLeft()) {\n this.onBodyHorizontalScroll(this.centerRowContainerCtrl.getViewportElement());\n }\n };\n GridBodyScrollFeature.prototype.executeAnimationFrameScroll = function () {\n var frameNeeded = this.scrollTop != this.nextScrollTop;\n if (frameNeeded) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n return frameNeeded;\n };\n // called by scrollHorizontally method and alignedGridsService\n GridBodyScrollFeature.prototype.setHorizontalScrollPosition = function (hScrollPosition) {\n var minScrollLeft = 0;\n var maxScrollLeft = this.centerRowContainerCtrl.getViewportElement().scrollWidth - this.centerRowContainerCtrl.getCenterWidth();\n if (this.shouldBlockScrollUpdate('horizontal', hScrollPosition)) {\n if (this.enableRtl && isRtlNegativeScroll()) {\n hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;\n }\n else {\n hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);\n }\n }\n setScrollLeft(this.centerRowContainerCtrl.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);\n // we need to manually do the event handling (rather than wait for the event)\n // for the alignedGridsService, as if we don't, the aligned grid service gets\n // notified async, and then it's 'consuming' flag doesn't get used right, and\n // we can end up with an infinite loop\n this.doHorizontalScroll(hScrollPosition);\n };\n GridBodyScrollFeature.prototype.setVerticalScrollPosition = function (vScrollPosition) {\n this.eBodyViewport.scrollTop = vScrollPosition;\n };\n GridBodyScrollFeature.prototype.getVScrollPosition = function () {\n var result = {\n top: this.eBodyViewport.scrollTop,\n bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight\n };\n return result;\n };\n GridBodyScrollFeature.prototype.getHScrollPosition = function () {\n return this.centerRowContainerCtrl.getHScrollPosition();\n };\n GridBodyScrollFeature.prototype.isHorizontalScrollShowing = function () {\n return this.centerRowContainerCtrl.isHorizontalScrollShowing();\n };\n // called by the headerRootComp and moveColumnController\n GridBodyScrollFeature.prototype.scrollHorizontally = function (pixels) {\n var oldScrollPosition = this.centerRowContainerCtrl.getViewportElement().scrollLeft;\n this.setHorizontalScrollPosition(oldScrollPosition + pixels);\n return this.centerRowContainerCtrl.getViewportElement().scrollLeft - oldScrollPosition;\n };\n // gets called by rowRenderer when new data loaded, as it will want to scroll to the top\n GridBodyScrollFeature.prototype.scrollToTop = function () {\n this.eBodyViewport.scrollTop = 0;\n };\n // Valid values for position are bottom, middle and top\n GridBodyScrollFeature.prototype.ensureNodeVisible = function (comparator, position) {\n if (position === void 0) { position = null; }\n // look for the node index we want to display\n var rowCount = this.rowModel.getRowCount();\n var comparatorIsAFunction = typeof comparator === 'function';\n var indexToSelect = -1;\n // go through all the nodes, find the one we want to show\n for (var i = 0; i < rowCount; i++) {\n var node = this.rowModel.getRow(i);\n if (comparatorIsAFunction) {\n if (comparator(node)) {\n indexToSelect = i;\n break;\n }\n }\n else {\n // check object equality against node and data\n if (comparator === node || comparator === node.data) {\n indexToSelect = i;\n break;\n }\n }\n }\n if (indexToSelect >= 0) {\n this.ensureIndexVisible(indexToSelect, position);\n }\n };\n // Valid values for position are bottom, middle and top\n // position should be {'top','middle','bottom', or undefined/null}.\n // if undefined/null, then the grid will to the minimal amount of scrolling,\n // eg if grid needs to scroll up, it scrolls until row is on top,\n // if grid needs to scroll down, it scrolls until row is on bottom,\n // if row is already in view, grid does not scroll\n GridBodyScrollFeature.prototype.ensureIndexVisible = function (index, position) {\n // if for print or auto height, everything is always visible\n if (this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT) {\n return;\n }\n var rowCount = this.paginationProxy.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= rowCount) {\n console.warn('invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var isPaging = this.gridOptionsWrapper.isPagination();\n var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();\n if (!paginationPanelEnabled) {\n this.paginationProxy.goToPageWithIndex(index);\n }\n var rowNode = this.paginationProxy.getRow(index);\n var rowGotShiftedDuringOperation;\n do {\n var startingRowTop = rowNode.rowTop;\n var startingRowHeight = rowNode.rowHeight;\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var rowTopPixel = rowNode.rowTop - paginationOffset;\n var rowBottomPixel = rowTopPixel + rowNode.rowHeight;\n var scrollPosition = this.getVScrollPosition();\n var heightOffset = this.heightScaler.getDivStretchOffset();\n var vScrollTop = scrollPosition.top + heightOffset;\n var vScrollBottom = scrollPosition.bottom + heightOffset;\n var viewportHeight = vScrollBottom - vScrollTop;\n // work out the pixels for top, middle and bottom up front,\n // make the if/else below easier to read\n var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);\n var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);\n // make sure if middle, the row is not outside the top of the grid\n var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);\n var rowBelowViewport = vScrollTop > rowTopPixel;\n var rowAboveViewport = vScrollBottom < rowBottomPixel;\n var newScrollPosition = null;\n if (position === 'top') {\n newScrollPosition = pxTop;\n }\n else if (position === 'bottom') {\n newScrollPosition = pxBottom;\n }\n else if (position === 'middle') {\n newScrollPosition = pxMiddle;\n }\n else if (rowBelowViewport) {\n // if row is before, scroll up with row at top\n newScrollPosition = pxTop;\n }\n else if (rowAboveViewport) {\n // if row is below, scroll down with row at bottom\n newScrollPosition = pxBottom;\n }\n if (newScrollPosition !== null) {\n this.eBodyViewport.scrollTop = newScrollPosition;\n this.rowRenderer.redrawAfterScroll();\n }\n // the row can get shifted if during the rendering (during rowRenderer.redrawAfterScroll()),\n // the height of a row changes due to lazy calculation of row heights when using\n // colDef.autoHeight or gridOptions.getRowHeight.\n // if row was shifted, then the position we scrolled to is incorrect.\n rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)\n || (startingRowHeight !== rowNode.rowHeight);\n } while (rowGotShiftedDuringOperation);\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridBodyScrollFeature.prototype.ensureColumnVisible = function (key, position) {\n if (position === void 0) { position = 'auto'; }\n var column = this.columnModel.getGridColumn(key);\n if (!column) {\n return;\n }\n // calling ensureColumnVisible on a pinned column doesn't make sense\n if (column.isPinned()) {\n return;\n }\n // defensive\n if (!this.columnModel.isColumnDisplayed(column)) {\n return;\n }\n var newHorizontalScroll = this.getPositionedHorizontalScroll(column, position);\n if (newHorizontalScroll !== null) {\n this.centerRowContainerCtrl.setCenterViewportScrollLeft(newHorizontalScroll);\n }\n // this will happen anyway, as the move will cause a 'scroll' event on the body, however\n // it is possible that the ensureColumnVisible method is called from within AG Grid and\n // the caller will need to have the columns rendered to continue, which will be before\n // the event has been worked on (which is the case for cell navigation).\n this.centerRowContainerCtrl.onHorizontalViewportChanged();\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridBodyScrollFeature.prototype.getPositionedHorizontalScroll = function (column, position) {\n var _a = this.isColumnOutsideViewport(column), columnBeforeStart = _a.columnBeforeStart, columnAfterEnd = _a.columnAfterEnd;\n var viewportTooSmallForColumn = this.centerRowContainerCtrl.getCenterWidth() < column.getActualWidth();\n var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n var isRtl = this.enableRtl;\n var alignColToStart = (isRtl ? columnBeforeStart : columnAfterEnd) || viewportTooSmallForColumn;\n var alignColToEnd = isRtl ? columnAfterEnd : columnBeforeStart;\n if (position !== 'auto') {\n alignColToStart = position === 'start';\n alignColToEnd = position === 'end';\n }\n var isMiddle = position === 'middle';\n if (alignColToStart || alignColToEnd || isMiddle) {\n var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colMiddle = _b.colMiddle, colRight = _b.colRight;\n if (isMiddle) {\n return colMiddle - viewportWidth / 2;\n }\n if (alignColToStart) {\n return isRtl ? colRight : colLeft;\n }\n return isRtl ? (colLeft - viewportWidth) : (colRight - viewportWidth);\n }\n return null;\n };\n GridBodyScrollFeature.prototype.isColumnOutsideViewport = function (column) {\n var _a = this.getViewportBounds(), viewportStart = _a.start, viewportEnd = _a.end;\n var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colRight = _b.colRight;\n var isRtl = this.enableRtl;\n var columnBeforeStart = isRtl ? (viewportStart > colRight) : (viewportEnd < colRight);\n var columnAfterEnd = isRtl ? (viewportEnd < colLeft) : (viewportStart > colLeft);\n return { columnBeforeStart: columnBeforeStart, columnAfterEnd: columnAfterEnd };\n };\n GridBodyScrollFeature.prototype.getColumnBounds = function (column) {\n var isRtl = this.enableRtl;\n var bodyWidth = this.columnModel.getBodyContainerWidth();\n var colWidth = column.getActualWidth();\n var colLeft = column.getLeft();\n var multiplier = isRtl ? -1 : 1;\n var colLeftPixel = isRtl ? (bodyWidth - colLeft) : colLeft;\n var colRightPixel = colLeftPixel + colWidth * multiplier;\n var colMidPixel = colLeftPixel + colWidth / 2 * multiplier;\n return { colLeft: colLeftPixel, colMiddle: colMidPixel, colRight: colRightPixel };\n };\n GridBodyScrollFeature.prototype.getViewportBounds = function () {\n var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n var scrollPosition = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n var viewportStartPixel = scrollPosition;\n var viewportEndPixel = viewportWidth + scrollPosition;\n return { start: viewportStartPixel, end: viewportEndPixel, width: viewportWidth };\n };\n __decorate$K([\n Autowired('ctrlsService')\n ], GridBodyScrollFeature.prototype, \"ctrlsService\", void 0);\n __decorate$K([\n Autowired('animationFrameService')\n ], GridBodyScrollFeature.prototype, \"animationFrameService\", void 0);\n __decorate$K([\n Autowired('columnApi')\n ], GridBodyScrollFeature.prototype, \"columnApi\", void 0);\n __decorate$K([\n Autowired('gridApi')\n ], GridBodyScrollFeature.prototype, \"gridApi\", void 0);\n __decorate$K([\n Autowired('paginationProxy')\n ], GridBodyScrollFeature.prototype, \"paginationProxy\", void 0);\n __decorate$K([\n Autowired('rowModel')\n ], GridBodyScrollFeature.prototype, \"rowModel\", void 0);\n __decorate$K([\n Autowired('rowContainerHeightService')\n ], GridBodyScrollFeature.prototype, \"heightScaler\", void 0);\n __decorate$K([\n Autowired('rowRenderer')\n ], GridBodyScrollFeature.prototype, \"rowRenderer\", void 0);\n __decorate$K([\n Autowired('columnModel')\n ], GridBodyScrollFeature.prototype, \"columnModel\", void 0);\n __decorate$K([\n PostConstruct\n ], GridBodyScrollFeature.prototype, \"postConstruct\", null);\n return GridBodyScrollFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar AutoScrollService = /** @class */ (function () {\n function AutoScrollService(params) {\n this.tickingInterval = null;\n this.onScrollCallback = null;\n this.scrollContainer = params.scrollContainer;\n this.scrollHorizontally = params.scrollAxis.indexOf('x') !== -1;\n this.scrollVertically = params.scrollAxis.indexOf('y') !== -1;\n this.scrollByTick = params.scrollByTick != null ? params.scrollByTick : 20;\n if (params.onScrollCallback) {\n this.onScrollCallback = params.onScrollCallback;\n }\n if (this.scrollVertically) {\n this.getVerticalPosition = params.getVerticalPosition;\n this.setVerticalPosition = params.setVerticalPosition;\n }\n if (this.scrollHorizontally) {\n this.getHorizontalPosition = params.getHorizontalPosition;\n this.setHorizontalPosition = params.setHorizontalPosition;\n }\n this.shouldSkipVerticalScroll = params.shouldSkipVerticalScroll || (function () { return false; });\n this.shouldSkipHorizontalScroll = params.shouldSkipHorizontalScroll || (function () { return false; });\n }\n AutoScrollService.prototype.check = function (mouseEvent, forceSkipVerticalScroll) {\n if (forceSkipVerticalScroll === void 0) { forceSkipVerticalScroll = false; }\n var skipVerticalScroll = forceSkipVerticalScroll || this.shouldSkipVerticalScroll();\n if (skipVerticalScroll && this.shouldSkipHorizontalScroll()) {\n return;\n }\n var rect = this.scrollContainer.getBoundingClientRect();\n var scrollTick = this.scrollByTick;\n this.tickLeft = mouseEvent.clientX < (rect.left + scrollTick);\n this.tickRight = mouseEvent.clientX > (rect.right - scrollTick);\n this.tickUp = mouseEvent.clientY < (rect.top + scrollTick) && !skipVerticalScroll;\n this.tickDown = mouseEvent.clientY > (rect.bottom - scrollTick) && !skipVerticalScroll;\n if (this.tickLeft || this.tickRight || this.tickUp || this.tickDown) {\n this.ensureTickingStarted();\n }\n else {\n this.ensureCleared();\n }\n };\n AutoScrollService.prototype.ensureTickingStarted = function () {\n if (this.tickingInterval === null) {\n this.tickingInterval = window.setInterval(this.doTick.bind(this), 100);\n this.tickCount = 0;\n }\n };\n AutoScrollService.prototype.doTick = function () {\n this.tickCount++;\n var tickAmount;\n tickAmount = this.tickCount > 20 ? 200 : (this.tickCount > 10 ? 80 : 40);\n if (this.scrollVertically) {\n var vScrollPosition = this.getVerticalPosition();\n if (this.tickUp) {\n this.setVerticalPosition(vScrollPosition - tickAmount);\n }\n if (this.tickDown) {\n this.setVerticalPosition(vScrollPosition + tickAmount);\n }\n }\n if (this.scrollHorizontally) {\n var hScrollPosition = this.getHorizontalPosition();\n if (this.tickLeft) {\n this.setHorizontalPosition(hScrollPosition - tickAmount);\n }\n if (this.tickRight) {\n this.setHorizontalPosition(hScrollPosition + tickAmount);\n }\n }\n if (this.onScrollCallback) {\n this.onScrollCallback();\n }\n };\n AutoScrollService.prototype.ensureCleared = function () {\n if (this.tickingInterval) {\n window.clearInterval(this.tickingInterval);\n this.tickingInterval = null;\n }\n };\n return AutoScrollService;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$a = (undefined && undefined.__assign) || function () {\n __assign$a = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$a.apply(this, arguments);\n};\nvar __decorate$L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$7 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$5 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$7(arguments[i]));\n return ar;\n};\nvar RowDragFeature = /** @class */ (function (_super) {\n __extends$S(RowDragFeature, _super);\n function RowDragFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.isMultiRowDrag = false;\n _this.isGridSorted = false;\n _this.isGridFiltered = false;\n _this.isRowGroupActive = false;\n _this.eContainer = eContainer;\n return _this;\n }\n RowDragFeature.prototype.postConstruct = function () {\n var _this = this;\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.clientSideRowModel = this.rowModel;\n }\n var refreshStatus = function () {\n _this.onSortChanged();\n _this.onFilterChanged();\n _this.onRowGroupChanged();\n };\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, function () {\n refreshStatus();\n });\n refreshStatus();\n this.ctrlsService.whenReady(function () {\n var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n _this.autoScrollService = new AutoScrollService({\n scrollContainer: gridBodyCon.getBodyViewportElement(),\n scrollAxis: 'y',\n getVerticalPosition: function () { return gridBodyCon.getScrollFeature().getVScrollPosition().top; },\n setVerticalPosition: function (position) { return gridBodyCon.getScrollFeature().setVerticalScrollPosition(position); },\n onScrollCallback: function () { _this.onDragging(_this.lastDraggingEvent); }\n });\n });\n };\n RowDragFeature.prototype.onSortChanged = function () {\n this.isGridSorted = this.sortController.isSortActive();\n };\n RowDragFeature.prototype.onFilterChanged = function () {\n this.isGridFiltered = this.filterManager.isAnyFilterPresent();\n };\n RowDragFeature.prototype.onRowGroupChanged = function () {\n var rowGroups = this.columnModel.getRowGroupColumns();\n this.isRowGroupActive = !missingOrEmpty(rowGroups);\n };\n RowDragFeature.prototype.getContainer = function () {\n return this.eContainer;\n };\n RowDragFeature.prototype.isInterestedIn = function (type) {\n return type === exports.DragSourceType.RowDrag;\n };\n RowDragFeature.prototype.getIconName = function () {\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag && this.shouldPreventRowMove()) {\n return DragAndDropService.ICON_NOT_ALLOWED;\n }\n return DragAndDropService.ICON_MOVE;\n };\n RowDragFeature.prototype.shouldPreventRowMove = function () {\n return this.isGridSorted || this.isGridFiltered || this.isRowGroupActive;\n };\n RowDragFeature.prototype.getRowNodes = function (draggingEvent) {\n var _this = this;\n if (!this.isFromThisGrid(draggingEvent)) {\n return draggingEvent.dragItem.rowNodes || [];\n }\n var isRowDragMultiRow = this.gridOptionsWrapper.isRowDragMultiRow();\n var selectedNodes = __spread$5(this.selectionService.getSelectedNodes()).sort(function (a, b) { return _this.getRowIndexNumber(a) - _this.getRowIndexNumber(b); });\n var currentNode = draggingEvent.dragItem.rowNode;\n if (isRowDragMultiRow && selectedNodes.indexOf(currentNode) !== -1) {\n this.isMultiRowDrag = true;\n return selectedNodes;\n }\n this.isMultiRowDrag = false;\n return [currentNode];\n };\n RowDragFeature.prototype.onDragEnter = function (draggingEvent) {\n // builds a lits of all rows being dragged before firing events\n draggingEvent.dragItem.rowNodes = this.getRowNodes(draggingEvent);\n // when entering, we fire the enter event, then in onEnterOrDragging,\n // we also fire the move event. so we get both events when entering.\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_ENTER, draggingEvent);\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(true);\n });\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.onDragging = function (draggingEvent) {\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.isFromThisGrid = function (draggingEvent) {\n var dragSourceDomDataKey = draggingEvent.dragSource.dragSourceDomDataKey;\n return dragSourceDomDataKey === this.gridOptionsWrapper.getDomDataKey();\n };\n RowDragFeature.prototype.isDropZoneWithinThisGrid = function (draggingEvent) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var gridGui = gridBodyCon.getGui();\n var dropZoneTarget = draggingEvent.dropZoneTarget;\n return !gridGui.contains(dropZoneTarget);\n };\n RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {\n // this event is fired for enter and move\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_MOVE, draggingEvent);\n this.lastDraggingEvent = draggingEvent;\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag) {\n this.doManagedDrag(draggingEvent, pixel);\n }\n this.autoScrollService.check(draggingEvent.event);\n };\n RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {\n var isFromThisGrid = this.isFromThisGrid(draggingEvent);\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n var rowNodes = draggingEvent.dragItem.rowNodes;\n if (managedDrag && this.shouldPreventRowMove()) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !isFromThisGrid) {\n if (!this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);\n }\n }\n else {\n this.moveRows(rowNodes, pixel);\n }\n };\n RowDragFeature.prototype.getRowIndexNumber = function (rowNode) {\n return parseInt(last(rowNode.getRowIndexString().split('-')), 10);\n };\n RowDragFeature.prototype.moveRowAndClearHighlight = function (draggingEvent) {\n var _this = this;\n var lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();\n var isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === exports.RowHighlightPosition.Below;\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var rowNodes = draggingEvent.dragItem.rowNodes;\n var increment = isBelow ? 1 : 0;\n if (this.isFromThisGrid(draggingEvent)) {\n rowNodes.forEach(function (rowNode) {\n if (rowNode.rowTop < pixel) {\n increment -= 1;\n }\n });\n this.moveRows(rowNodes, pixel, increment);\n }\n else {\n var getRowIdFunc_1 = this.gridOptionsWrapper.getRowIdFunc();\n var addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;\n if (this.clientSideRowModel.getHighlightPosition(pixel) === exports.RowHighlightPosition.Above) {\n addIndex--;\n }\n this.clientSideRowModel.updateRowData({\n add: rowNodes\n .map(function (node) { return node.data; })\n .filter(function (data) { return !_this.clientSideRowModel.getRowNode(getRowIdFunc_1 ? getRowIdFunc_1({ data: data, level: 0 }) : data.id); }),\n addIndex: addIndex\n });\n }\n this.clearRowHighlight();\n };\n RowDragFeature.prototype.clearRowHighlight = function () {\n this.clientSideRowModel.highlightRowAtPixel(null);\n };\n RowDragFeature.prototype.moveRows = function (rowNodes, pixel, increment) {\n if (increment === void 0) { increment = 0; }\n var rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);\n if (rowWasMoved) {\n this.focusService.clearFocusedCell();\n if (this.rangeService) {\n this.rangeService.removeAllCellRanges();\n }\n }\n };\n RowDragFeature.prototype.addRowDropZone = function (params) {\n var _this = this;\n if (!params.getContainer()) {\n doOnce(function () { return console.warn('AG Grid: addRowDropZone - A container target needs to be provided'); }, 'add-drop-zone-empty-target');\n return;\n }\n if (this.dragAndDropService.findExternalZone(params)) {\n console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');\n return;\n }\n var processedParams = {\n getContainer: params.getContainer\n };\n if (params.fromGrid) {\n params.fromGrid = undefined;\n processedParams = params;\n }\n else {\n if (params.onDragEnter) {\n processedParams.onDragEnter = function (e) {\n params.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n };\n }\n if (params.onDragLeave) {\n processedParams.onDragLeave = function (e) {\n params.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n };\n }\n if (params.onDragging) {\n processedParams.onDragging = function (e) {\n params.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n };\n }\n if (params.onDragStop) {\n processedParams.onDragStop = function (e) {\n params.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n };\n }\n }\n this.dragAndDropService.addDropTarget(__assign$a({ isInterestedIn: function (type) { return type === exports.DragSourceType.RowDrag; }, getIconName: function () { return DragAndDropService.ICON_MOVE; }, external: true }, processedParams));\n };\n RowDragFeature.prototype.getRowDropZone = function (events) {\n var _this = this;\n var getContainer = this.getContainer.bind(this);\n var onDragEnter = this.onDragEnter.bind(this);\n var onDragLeave = this.onDragLeave.bind(this);\n var onDragging = this.onDragging.bind(this);\n var onDragStop = this.onDragStop.bind(this);\n if (!events) {\n return { getContainer: getContainer, onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragging: onDragging, onDragStop: onDragStop, /* @private */ fromGrid: true };\n }\n return {\n getContainer: getContainer,\n onDragEnter: events.onDragEnter\n ? (function (e) {\n onDragEnter(e);\n events.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n })\n : onDragEnter,\n onDragLeave: events.onDragLeave\n ? (function (e) {\n onDragLeave(e);\n events.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n })\n : onDragLeave,\n onDragging: events.onDragging\n ? (function (e) {\n onDragging(e);\n events.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n })\n : onDragging,\n onDragStop: events.onDragStop\n ? (function (e) {\n onDragStop(e);\n events.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n })\n : onDragStop,\n fromGrid: true /* @private */\n };\n };\n RowDragFeature.prototype.draggingToRowDragEvent = function (type, draggingEvent) {\n var yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();\n var overIndex = -1;\n var overNode;\n if (!mouseIsPastLastRow) {\n overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);\n overNode = this.rowModel.getRow(overIndex);\n }\n var vDirectionString;\n switch (draggingEvent.vDirection) {\n case exports.VerticalDirection.Down:\n vDirectionString = 'down';\n break;\n case exports.VerticalDirection.Up:\n vDirectionString = 'up';\n break;\n default:\n vDirectionString = null;\n break;\n }\n var event = {\n type: type,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n event: draggingEvent.event,\n node: draggingEvent.dragItem.rowNode,\n nodes: draggingEvent.dragItem.rowNodes,\n overIndex: overIndex,\n overNode: overNode,\n y: yNormalised,\n vDirection: vDirectionString\n };\n return event;\n };\n RowDragFeature.prototype.dispatchGridEvent = function (type, draggingEvent) {\n var event = this.draggingToRowDragEvent(type, draggingEvent);\n this.eventService.dispatchEvent(event);\n };\n RowDragFeature.prototype.onDragLeave = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_LEAVE, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsWrapper.isRowDragManaged()) {\n this.clearRowHighlight();\n }\n if (this.isFromThisGrid(draggingEvent)) {\n this.isMultiRowDrag = false;\n }\n };\n RowDragFeature.prototype.onDragStop = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_END, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsWrapper.isRowDragManaged() &&\n (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !this.isFromThisGrid(draggingEvent)) &&\n !this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.moveRowAndClearHighlight(draggingEvent);\n }\n };\n RowDragFeature.prototype.stopDragging = function (draggingEvent) {\n this.autoScrollService.ensureCleared();\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(false);\n });\n };\n __decorate$L([\n Autowired('dragAndDropService')\n ], RowDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$L([\n Autowired('rowModel')\n ], RowDragFeature.prototype, \"rowModel\", void 0);\n __decorate$L([\n Autowired('paginationProxy')\n ], RowDragFeature.prototype, \"paginationProxy\", void 0);\n __decorate$L([\n Autowired('columnModel')\n ], RowDragFeature.prototype, \"columnModel\", void 0);\n __decorate$L([\n Autowired('focusService')\n ], RowDragFeature.prototype, \"focusService\", void 0);\n __decorate$L([\n Autowired('sortController')\n ], RowDragFeature.prototype, \"sortController\", void 0);\n __decorate$L([\n Autowired('filterManager')\n ], RowDragFeature.prototype, \"filterManager\", void 0);\n __decorate$L([\n Autowired('selectionService')\n ], RowDragFeature.prototype, \"selectionService\", void 0);\n __decorate$L([\n Autowired('mouseEventService')\n ], RowDragFeature.prototype, \"mouseEventService\", void 0);\n __decorate$L([\n Autowired('ctrlsService')\n ], RowDragFeature.prototype, \"ctrlsService\", void 0);\n __decorate$L([\n Optional('rangeService')\n ], RowDragFeature.prototype, \"rangeService\", void 0);\n __decorate$L([\n Autowired('columnApi')\n ], RowDragFeature.prototype, \"columnApi\", void 0);\n __decorate$L([\n Autowired('gridApi')\n ], RowDragFeature.prototype, \"gridApi\", void 0);\n __decorate$L([\n PostConstruct\n ], RowDragFeature.prototype, \"postConstruct\", null);\n return RowDragFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n(function (RowAnimationCssClasses) {\n RowAnimationCssClasses[\"ANIMATION_ON\"] = \"ag-row-animation\";\n RowAnimationCssClasses[\"ANIMATION_OFF\"] = \"ag-row-no-animation\";\n})(exports.RowAnimationCssClasses || (exports.RowAnimationCssClasses = {}));\nvar CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';\nvar CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';\nvar CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';\nvar GridBodyCtrl = /** @class */ (function (_super) {\n __extends$T(GridBodyCtrl, _super);\n function GridBodyCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridBodyCtrl.prototype.getScrollFeature = function () {\n return this.bodyScrollFeature;\n };\n GridBodyCtrl.prototype.getBodyViewportElement = function () {\n return this.eBodyViewport;\n };\n GridBodyCtrl.prototype.setComp = function (comp, eGridBody, eBodyViewport, eTop, eBottom) {\n this.comp = comp;\n this.eGridBody = eGridBody;\n this.eBodyViewport = eBodyViewport;\n this.eTop = eTop;\n this.eBottom = eBottom;\n this.setCellTextSelection(this.gridOptionsWrapper.isEnableCellTextSelect());\n this.createManagedBean(new LayoutFeature(this.comp));\n this.bodyScrollFeature = this.createManagedBean(new GridBodyScrollFeature(this.eBodyViewport));\n this.addRowDragListener();\n this.setupRowAnimationCssClass();\n this.addEventListeners();\n this.addFocusListeners([eTop, eBodyViewport, eBottom]);\n this.onGridColumnsChanged();\n this.addBodyViewportListener();\n this.setFloatingHeights();\n this.disableBrowserDragging();\n this.addStopEditingWhenGridLosesFocus();\n this.ctrlsService.registerGridBodyCtrl(this);\n };\n GridBodyCtrl.prototype.getComp = function () {\n return this.comp;\n };\n GridBodyCtrl.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.setFloatingHeights.bind(this));\n };\n GridBodyCtrl.prototype.addFocusListeners = function (elements) {\n var _this = this;\n elements.forEach(function (element) {\n _this.addManagedListener(element, 'focusin', function () {\n element.classList.add('ag-has-focus');\n });\n _this.addManagedListener(element, 'focusout', function (e) {\n if (!element.contains(e.relatedTarget)) {\n element.classList.remove('ag-has-focus');\n }\n });\n });\n };\n // used by ColumnAnimationService\n GridBodyCtrl.prototype.setColumnMovingCss = function (moving) {\n this.comp.setColumnMovingCss(moving ? CSS_CLASS_COLUMN_MOVING : null, moving);\n };\n GridBodyCtrl.prototype.setCellTextSelection = function (selectable) {\n if (selectable === void 0) { selectable = false; }\n var cssClass = selectable ? CSS_CLASS_CELL_SELECTABLE : null;\n this.comp.setCellSelectableCss(cssClass, selectable);\n };\n GridBodyCtrl.prototype.onScrollVisibilityChanged = function () {\n var visible = this.scrollVisibleService.isVerticalScrollShowing();\n this.setVerticalScrollPaddingVisible(visible);\n };\n GridBodyCtrl.prototype.onGridColumnsChanged = function () {\n var columns = this.columnModel.getAllGridColumns();\n this.comp.setColumnCount(columns ? columns.length : 0);\n };\n // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)\n // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.\n GridBodyCtrl.prototype.disableBrowserDragging = function () {\n this.addManagedListener(this.eGridBody, 'dragstart', function (event) {\n if (event.target instanceof HTMLImageElement) {\n event.preventDefault();\n return false;\n }\n });\n };\n GridBodyCtrl.prototype.addStopEditingWhenGridLosesFocus = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus()) {\n return;\n }\n var focusOutListener = function (event) {\n // this is the element the focus is moving to\n var elementWithFocus = event.relatedTarget;\n if (getTabIndex(elementWithFocus) === null) {\n _this.rowRenderer.stopEditing();\n return;\n }\n var clickInsideGrid = \n // see if click came from inside the viewports\n viewports.some(function (viewport) { return viewport.contains(elementWithFocus); })\n // and also that it's not from a detail grid\n && _this.mouseEventService.isElementInThisGrid(elementWithFocus);\n if (!clickInsideGrid) {\n var popupService = _this.popupService;\n clickInsideGrid =\n popupService.getActivePopups().some(function (popup) { return popup.contains(elementWithFocus); }) ||\n popupService.isElementWithinCustomPopup(elementWithFocus);\n }\n if (!clickInsideGrid) {\n _this.rowRenderer.stopEditing();\n }\n };\n var viewports = [this.eBodyViewport, this.eBottom, this.eTop];\n viewports.forEach(function (viewport) { return _this.addManagedListener(viewport, 'focusout', focusOutListener); });\n };\n GridBodyCtrl.prototype.updateRowCount = function () {\n var headerCount = this.headerNavigationService.getHeaderRowCount();\n var modelType = this.paginationProxy.getType();\n var rowCount = -1;\n if (modelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n rowCount = 0;\n this.paginationProxy.forEachNode(function (node) {\n if (!node.group) {\n rowCount++;\n }\n });\n }\n var total = rowCount === -1 ? -1 : (headerCount + rowCount);\n this.comp.setRowCount(total);\n };\n GridBodyCtrl.prototype.registerBodyViewportResizeListener = function (listener) {\n this.comp.registerBodyViewportResizeListener(listener);\n };\n GridBodyCtrl.prototype.setVerticalScrollPaddingVisible = function (visible) {\n var overflowY = visible ? 'scroll' : 'hidden';\n this.comp.setPinnedTopBottomOverflowY(overflowY);\n };\n GridBodyCtrl.prototype.isVerticalScrollShowing = function () {\n var show = this.gridOptionsWrapper.isAlwaysShowVerticalScroll();\n var cssClass = show ? CSS_CLASS_FORCE_VERTICAL_SCROLL : null;\n this.comp.setAlwaysVerticalScrollClass(cssClass, show);\n return show || isVerticalScrollShowing(this.eBodyViewport);\n };\n GridBodyCtrl.prototype.setupRowAnimationCssClass = function () {\n var _this = this;\n var listener = function () {\n // we don't want to use row animation if scaling, as rows jump strangely as you scroll,\n // when scaling and doing row animation.\n var animateRows = _this.gridOptionsWrapper.isAnimateRows() && !_this.rowContainerHeightService.isStretching();\n var animateRowsCssClass = animateRows ? exports.RowAnimationCssClasses.ANIMATION_ON : exports.RowAnimationCssClasses.ANIMATION_OFF;\n _this.comp.setRowAnimationCssOnBodyViewport(animateRowsCssClass, animateRows);\n };\n listener();\n this.addManagedListener(this.eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, listener);\n };\n GridBodyCtrl.prototype.getGridBodyElement = function () {\n return this.eGridBody;\n };\n GridBodyCtrl.prototype.addBodyViewportListener = function () {\n var _this = this;\n // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing\n // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell\n var listener = function (mouseEvent) {\n if (_this.gridOptionsWrapper.isPreventDefaultOnContextMenu()) {\n mouseEvent.preventDefault();\n }\n var target = mouseEvent.target;\n if (target === _this.eBodyViewport || target === _this.ctrlsService.getCenterRowContainerCtrl().getViewportElement()) {\n // show it\n if (_this.contextMenuFactory) {\n _this.contextMenuFactory.onContextMenu(mouseEvent, null, null, null, null, _this.eGridBody);\n }\n }\n };\n this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);\n this.addManagedListener(this.eBodyViewport, 'wheel', this.onWheel.bind(this));\n };\n GridBodyCtrl.prototype.onWheel = function (e) {\n if (!this.gridOptionsWrapper.isSuppressScrollWhenPopupsAreOpen()) {\n return;\n }\n if (this.popupService.hasAnchoredPopup()) {\n e.preventDefault();\n }\n };\n GridBodyCtrl.prototype.getGui = function () {\n return this.eGridBody;\n };\n // called by rowDragFeature\n GridBodyCtrl.prototype.scrollVertically = function (pixels) {\n var oldScrollPosition = this.eBodyViewport.scrollTop;\n this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);\n return this.eBodyViewport.scrollTop - oldScrollPosition;\n };\n GridBodyCtrl.prototype.addRowDragListener = function () {\n this.rowDragFeature = this.createManagedBean(new RowDragFeature(this.eBodyViewport));\n this.dragAndDropService.addDropTarget(this.rowDragFeature);\n };\n GridBodyCtrl.prototype.getRowDragFeature = function () {\n return this.rowDragFeature;\n };\n GridBodyCtrl.prototype.setFloatingHeights = function () {\n var pinnedRowModel = this.pinnedRowModel;\n var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();\n if (floatingTopHeight) {\n // adding 1px for cell bottom border\n floatingTopHeight += 1;\n }\n var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();\n if (floatingBottomHeight) {\n // adding 1px for cell bottom border\n floatingBottomHeight += 1;\n }\n this.comp.setTopHeight(floatingTopHeight);\n this.comp.setBottomHeight(floatingBottomHeight);\n this.comp.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');\n this.comp.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');\n };\n // method will call itself if no available width. this covers if the grid\n // isn't visible, but is just about to be visible.\n GridBodyCtrl.prototype.sizeColumnsToFit = function (nextTimeout) {\n var _this = this;\n var removeScrollWidth = this.isVerticalScrollShowing();\n var scrollWidthToRemove = removeScrollWidth ? this.gridOptionsWrapper.getScrollbarWidth() : 0;\n var bodyViewportWidth = getInnerWidth(this.eBodyViewport);\n var availableWidth = bodyViewportWidth - scrollWidthToRemove;\n if (availableWidth > 0) {\n this.columnModel.sizeColumnsToFit(availableWidth, \"sizeColumnsToFit\");\n return;\n }\n if (nextTimeout === undefined) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(100);\n }, 0);\n }\n else if (nextTimeout === 100) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(500);\n }, 100);\n }\n else if (nextTimeout === 500) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(-1);\n }, 500);\n }\n else {\n console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +\n 'zero width, maybe the grid is not visible yet on the screen?');\n }\n };\n // + rangeService\n GridBodyCtrl.prototype.addScrollEventListener = function (listener) {\n this.eBodyViewport.addEventListener('scroll', listener);\n };\n // + focusService\n GridBodyCtrl.prototype.removeScrollEventListener = function (listener) {\n this.eBodyViewport.removeEventListener('scroll', listener);\n };\n __decorate$M([\n Autowired('rowContainerHeightService')\n ], GridBodyCtrl.prototype, \"rowContainerHeightService\", void 0);\n __decorate$M([\n Autowired('ctrlsService')\n ], GridBodyCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$M([\n Autowired('columnModel')\n ], GridBodyCtrl.prototype, \"columnModel\", void 0);\n __decorate$M([\n Autowired('scrollVisibleService')\n ], GridBodyCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$M([\n Optional('contextMenuFactory')\n ], GridBodyCtrl.prototype, \"contextMenuFactory\", void 0);\n __decorate$M([\n Autowired('headerNavigationService')\n ], GridBodyCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$M([\n Autowired('paginationProxy')\n ], GridBodyCtrl.prototype, \"paginationProxy\", void 0);\n __decorate$M([\n Autowired('dragAndDropService')\n ], GridBodyCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$M([\n Autowired('pinnedRowModel')\n ], GridBodyCtrl.prototype, \"pinnedRowModel\", void 0);\n __decorate$M([\n Autowired('rowRenderer')\n ], GridBodyCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$M([\n Autowired('popupService')\n ], GridBodyCtrl.prototype, \"popupService\", void 0);\n __decorate$M([\n Autowired('mouseEventService')\n ], GridBodyCtrl.prototype, \"mouseEventService\", void 0);\n return GridBodyCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (SelectionHandleType) {\n SelectionHandleType[SelectionHandleType[\"FILL\"] = 0] = \"FILL\";\n SelectionHandleType[SelectionHandleType[\"RANGE\"] = 1] = \"RANGE\";\n})(exports.SelectionHandleType || (exports.SelectionHandleType = {}));\n(function (CellRangeType) {\n CellRangeType[CellRangeType[\"VALUE\"] = 0] = \"VALUE\";\n CellRangeType[CellRangeType[\"DIMENSION\"] = 1] = \"DIMENSION\";\n})(exports.CellRangeType || (exports.CellRangeType = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar CSS_CELL_RANGE_SELECTED = 'ag-cell-range-selected';\nvar CSS_CELL_RANGE_CHART = 'ag-cell-range-chart';\nvar CSS_CELL_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';\nvar CSS_CELL_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';\nvar CSS_CELL_RANGE_HANDLE = 'ag-cell-range-handle';\nvar CSS_CELL_RANGE_TOP = 'ag-cell-range-top';\nvar CSS_CELL_RANGE_RIGHT = 'ag-cell-range-right';\nvar CSS_CELL_RANGE_BOTTOM = 'ag-cell-range-bottom';\nvar CSS_CELL_RANGE_LEFT = 'ag-cell-range-left';\nvar CellRangeFeature = /** @class */ (function () {\n function CellRangeFeature(beans, ctrl) {\n this.beans = beans;\n this.cellCtrl = ctrl;\n }\n CellRangeFeature.prototype.setComp = function (cellComp, eGui) {\n this.cellComp = cellComp;\n this.eGui = eGui;\n this.onRangeSelectionChanged();\n };\n CellRangeFeature.prototype.onRangeSelectionChanged = function () {\n // when using reactUi, given UI is async, it's possible this method is called before the comp is registered\n if (!this.cellComp) {\n return;\n }\n this.rangeCount = this.beans.rangeService.getCellRangeCount(this.cellCtrl.getCellPosition());\n this.hasChartRange = this.getHasChartRange();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED, this.rangeCount !== 0);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-1\", this.rangeCount === 1);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-2\", this.rangeCount === 2);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-3\", this.rangeCount === 3);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-4\", this.rangeCount >= 4);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART, this.hasChartRange);\n setAriaSelected(this.eGui, this.rangeCount > 0 ? true : undefined);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SINGLE_CELL, this.isSingleCell());\n this.updateRangeBorders();\n this.refreshHandle();\n };\n CellRangeFeature.prototype.updateRangeBorders = function () {\n var rangeBorders = this.getRangeBorders();\n var isSingleCell = this.isSingleCell();\n var isTop = !isSingleCell && rangeBorders.top;\n var isRight = !isSingleCell && rangeBorders.right;\n var isBottom = !isSingleCell && rangeBorders.bottom;\n var isLeft = !isSingleCell && rangeBorders.left;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_TOP, isTop);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_RIGHT, isRight);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_BOTTOM, isBottom);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_LEFT, isLeft);\n };\n CellRangeFeature.prototype.isSingleCell = function () {\n var rangeService = this.beans.rangeService;\n return this.rangeCount === 1 && rangeService && !rangeService.isMoreThanOneCell();\n };\n CellRangeFeature.prototype.getHasChartRange = function () {\n var rangeService = this.beans.rangeService;\n if (!this.rangeCount || !rangeService) {\n return false;\n }\n var cellRanges = rangeService.getCellRanges();\n return cellRanges.length > 0 && cellRanges.every(function (range) { return includes([exports.CellRangeType.DIMENSION, exports.CellRangeType.VALUE], range.type); });\n };\n CellRangeFeature.prototype.updateRangeBordersIfRangeCount = function () {\n // we only need to update range borders if we are in a range\n if (this.rangeCount > 0) {\n this.updateRangeBorders();\n this.refreshHandle();\n }\n };\n CellRangeFeature.prototype.getRangeBorders = function () {\n var _this = this;\n var isRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n var top = false;\n var right = false;\n var bottom = false;\n var left = false;\n var thisCol = this.cellCtrl.getCellPosition().column;\n var _a = this.beans, rangeService = _a.rangeService, columnModel = _a.columnModel;\n var leftCol;\n var rightCol;\n if (isRtl) {\n leftCol = columnModel.getDisplayedColAfter(thisCol);\n rightCol = columnModel.getDisplayedColBefore(thisCol);\n }\n else {\n leftCol = columnModel.getDisplayedColBefore(thisCol);\n rightCol = columnModel.getDisplayedColAfter(thisCol);\n }\n var ranges = rangeService.getCellRanges().filter(function (range) { return rangeService.isCellInSpecificRange(_this.cellCtrl.getCellPosition(), range); });\n // this means we are the first column in the grid\n if (!leftCol) {\n left = true;\n }\n // this means we are the last column in the grid\n if (!rightCol) {\n right = true;\n }\n for (var i = 0; i < ranges.length; i++) {\n if (top && right && bottom && left) {\n break;\n }\n var range = ranges[i];\n var startRow = rangeService.getRangeStartRow(range);\n var endRow = rangeService.getRangeEndRow(range);\n if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellCtrl.getCellPosition())) {\n top = true;\n }\n if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellCtrl.getCellPosition())) {\n bottom = true;\n }\n if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {\n left = true;\n }\n if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {\n right = true;\n }\n }\n return { top: top, right: right, bottom: bottom, left: left };\n };\n CellRangeFeature.prototype.refreshHandle = function () {\n if (!this.beans.rangeService) {\n return;\n }\n var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();\n if (this.selectionHandle && !shouldHaveSelectionHandle) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (shouldHaveSelectionHandle) {\n this.addSelectionHandle();\n }\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_HANDLE, !!this.selectionHandle);\n };\n CellRangeFeature.prototype.shouldHaveSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeService = _a.rangeService;\n var cellRanges = rangeService.getCellRanges();\n var rangesLen = cellRanges.length;\n if (this.rangeCount < 1 || rangesLen < 1) {\n return false;\n }\n var cellRange = last(cellRanges);\n var cellPosition = this.cellCtrl.getCellPosition();\n var isFillHandleAvailable = gridOptionsWrapper.isEnableFillHandle() && !this.cellCtrl.isSuppressFillHandle();\n var isRangeHandleAvailable = gridOptionsWrapper.isEnableRangeHandle();\n var handleIsAvailable = rangesLen === 1 && !this.cellCtrl.isEditing() && (isFillHandleAvailable || isRangeHandleAvailable);\n if (this.hasChartRange) {\n var hasCategoryRange = cellRanges[0].type === exports.CellRangeType.DIMENSION;\n var isCategoryCell = hasCategoryRange && rangeService.isCellInSpecificRange(cellPosition, cellRanges[0]);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART_CATEGORY, isCategoryCell);\n handleIsAvailable = cellRange.type === exports.CellRangeType.VALUE;\n }\n return handleIsAvailable &&\n cellRange.endRow != null &&\n rangeService.isContiguousRange(cellRange) &&\n rangeService.isBottomRightCell(cellRange, cellPosition);\n };\n CellRangeFeature.prototype.addSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeService = _a.rangeService;\n var cellRangeType = last(rangeService.getCellRanges()).type;\n var selectionHandleFill = gridOptionsWrapper.isEnableFillHandle() && missing(cellRangeType);\n var type = selectionHandleFill ? exports.SelectionHandleType.FILL : exports.SelectionHandleType.RANGE;\n if (this.selectionHandle && this.selectionHandle.getType() !== type) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (!this.selectionHandle) {\n this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);\n }\n this.selectionHandle.refresh(this.cellCtrl);\n };\n CellRangeFeature.prototype.destroy = function () {\n this.beans.context.destroyBean(this.selectionHandle);\n };\n return CellRangeFeature;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Takes care of:\n * #) Cell Width (including when doing cell spanning, which makes width cover many columns)\n * #) Cell Height (when doing row span, otherwise we don't touch the height as it's just row height)\n * #) Cell Left (the horizontal positioning of the cell, the vertical positioning is on the row)\n */\nvar CellPositionFeature = /** @class */ (function (_super) {\n __extends$U(CellPositionFeature, _super);\n function CellPositionFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = ctrl.getColumn();\n _this.rowNode = ctrl.getRowNode();\n _this.setupColSpan();\n _this.setupRowSpan();\n return _this;\n }\n CellPositionFeature.prototype.setupRowSpan = function () {\n this.rowSpan = this.column.getRowSpan(this.rowNode);\n };\n CellPositionFeature.prototype.setComp = function (eGui) {\n this.eGui = eGui;\n this.onLeftChanged();\n this.onWidthChanged();\n this.applyRowSpan();\n };\n CellPositionFeature.prototype.onDisplayColumnsChanged = function () {\n var colsSpanning = this.getColSpanningList();\n if (!areEqual(this.colsSpanning, colsSpanning)) {\n this.colsSpanning = colsSpanning;\n this.onWidthChanged();\n this.onLeftChanged(); // left changes when doing RTL\n }\n };\n CellPositionFeature.prototype.setupColSpan = function () {\n // if no col span is active, then we don't set it up, as it would be wasteful of CPU\n if (this.column.getColDef().colSpan == null) {\n return;\n }\n this.colsSpanning = this.getColSpanningList();\n // because we are col spanning, a reorder of the cols can change what cols we are spanning over\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));\n // because we are spanning over multiple cols, we check for width any time any cols width changes.\n // this is expensive - really we should be explicitly checking only the cols we are spanning over\n // instead of every col, however it would be tricky code to track the cols we are spanning over, so\n // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));\n };\n CellPositionFeature.prototype.onWidthChanged = function () {\n if (!this.eGui) {\n return;\n }\n var width = this.getCellWidth();\n this.eGui.style.width = width + \"px\";\n };\n CellPositionFeature.prototype.getCellWidth = function () {\n if (!this.colsSpanning) {\n return this.column.getActualWidth();\n }\n return this.colsSpanning.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n CellPositionFeature.prototype.getColSpanningList = function () {\n var colSpan = this.column.getColSpan(this.rowNode);\n var colsSpanning = [];\n // if just one col, the col span is just the column we are in\n if (colSpan === 1) {\n colsSpanning.push(this.column);\n }\n else {\n var pointer = this.column;\n var pinned = this.column.getPinned();\n for (var i = 0; pointer && i < colSpan; i++) {\n colsSpanning.push(pointer);\n pointer = this.beans.columnModel.getDisplayedColAfter(pointer);\n if (!pointer || missing(pointer)) {\n break;\n }\n // we do not allow col spanning to span outside of pinned areas\n if (pinned !== pointer.getPinned()) {\n break;\n }\n }\n }\n return colsSpanning;\n };\n CellPositionFeature.prototype.onLeftChanged = function () {\n if (!this.eGui) {\n return;\n }\n var left = this.modifyLeftForPrintLayout(this.getCellLeft());\n this.eGui.style.left = left + 'px';\n };\n CellPositionFeature.prototype.getCellLeft = function () {\n var mostLeftCol;\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n mostLeftCol = last(this.colsSpanning);\n }\n else {\n mostLeftCol = this.column;\n }\n return mostLeftCol.getLeft();\n };\n CellPositionFeature.prototype.modifyLeftForPrintLayout = function (leftPosition) {\n if (!this.cellCtrl.isPrintLayout() || this.column.getPinned() === Constants.PINNED_LEFT) {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (this.column.getPinned() === Constants.PINNED_RIGHT) {\n var bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + (leftPosition || 0);\n }\n // is in body\n return leftWidth + (leftPosition || 0);\n };\n CellPositionFeature.prototype.applyRowSpan = function () {\n if (this.rowSpan === 1) {\n return;\n }\n var singleRowHeight = this.beans.gridOptionsWrapper.getRowHeightAsNumber();\n var totalRowHeight = singleRowHeight * this.rowSpan;\n this.eGui.style.height = totalRowHeight + \"px\";\n this.eGui.style.zIndex = '1';\n };\n // overriding to make public, as we don't dispose this bean via context\n CellPositionFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellPositionFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellCustomStyleFeature = /** @class */ (function (_super) {\n __extends$V(CellCustomStyleFeature, _super);\n function CellCustomStyleFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.staticClasses = [];\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = ctrl.getColumn();\n _this.rowNode = ctrl.getRowNode();\n return _this;\n }\n CellCustomStyleFeature.prototype.setComp = function (comp) {\n this.cellComp = comp;\n this.applyUserStyles();\n this.applyCellClassRules();\n this.applyClassesFromColDef();\n };\n CellCustomStyleFeature.prototype.applyCellClassRules = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var cellClassParams = {\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n this.beans.stylingService.processClassRules(colDef.cellClassRules, cellClassParams, function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); }, function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });\n };\n CellCustomStyleFeature.prototype.applyUserStyles = function () {\n var colDef = this.column.getColDef();\n if (!colDef.cellStyle) {\n return;\n }\n var styles;\n if (typeof colDef.cellStyle === 'function') {\n var cellStyleParams = {\n column: this.column,\n value: this.cellCtrl.getValue(),\n colDef: colDef,\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n };\n var cellStyleFunc = colDef.cellStyle;\n styles = cellStyleFunc(cellStyleParams);\n }\n else {\n styles = colDef.cellStyle;\n }\n this.cellComp.setUserStyles(styles);\n };\n CellCustomStyleFeature.prototype.applyClassesFromColDef = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var cellClassParams = {\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n if (this.staticClasses.length) {\n this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });\n }\n this.staticClasses = this.beans.stylingService.getStaticCellClasses(colDef, cellClassParams);\n if (this.staticClasses.length) {\n this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); });\n }\n };\n // overriding to make public, as we don't dispose this bean via context\n CellCustomStyleFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellCustomStyleFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TooltipFeature = /** @class */ (function (_super) {\n __extends$W(TooltipFeature, _super);\n function TooltipFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.ctrl = ctrl;\n _this.beans = beans;\n return _this;\n }\n TooltipFeature.prototype.setComp = function (comp) {\n this.comp = comp;\n this.setupTooltip();\n };\n TooltipFeature.prototype.setupTooltip = function () {\n this.browserTooltips = this.beans.gridOptionsWrapper.isEnableBrowserTooltips();\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.comp.setTitle(this.tooltip != null ? this.tooltip : undefined);\n }\n else {\n this.createTooltipFeatureIfNeeded();\n }\n };\n TooltipFeature.prototype.updateTooltipText = function () {\n this.tooltip = this.ctrl.getTooltipValue();\n };\n TooltipFeature.prototype.createTooltipFeatureIfNeeded = function () {\n var _this = this;\n if (this.genericTooltipFeature != null) {\n return;\n }\n var parent = {\n getTooltipParams: function () { return _this.getTooltipParams(); },\n getGui: function () { return _this.ctrl.getGui(); }\n };\n this.genericTooltipFeature = this.createManagedBean(new CustomTooltipFeature(parent), this.beans.context);\n };\n TooltipFeature.prototype.refreshToolTip = function () {\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.comp.setTitle(this.tooltip != null ? this.tooltip : undefined);\n }\n };\n TooltipFeature.prototype.getTooltipParams = function () {\n var ctrl = this.ctrl;\n var column = ctrl.getColumn ? ctrl.getColumn() : undefined;\n var colDef = ctrl.getColDef ? ctrl.getColDef() : undefined;\n var rowNode = ctrl.getRowNode ? ctrl.getRowNode() : undefined;\n return {\n location: ctrl.getLocation(),\n colDef: colDef,\n column: column,\n rowIndex: ctrl.getRowIndex ? ctrl.getRowIndex() : undefined,\n node: rowNode,\n data: rowNode ? rowNode.data : undefined,\n value: this.getTooltipText(),\n valueFormatted: ctrl.getValueFormatted ? ctrl.getValueFormatted() : undefined,\n };\n };\n TooltipFeature.prototype.getTooltipText = function () {\n return this.tooltip;\n };\n // overriding to make public, as we don't dispose this bean via context\n TooltipFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return TooltipFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** Using the IoC has a slight performance consideration, which is no problem most of the\n * time, unless we are trashing objects - which is the case when scrolling and rowComp\n * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired\n * with the IoC. Instead they get passed this object which is all the beans the RowComp\n * and CellComp need. Not autowiring all the cells gives performance improvement. */\nvar Beans = /** @class */ (function () {\n function Beans() {\n }\n Beans.prototype.postConstruct = function () {\n this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.clientSideRowModel = this.rowModel;\n }\n if (this.gridOptionsWrapper.isRowModelServerSide()) {\n this.serverSideRowModel = this.rowModel;\n }\n };\n __decorate$N([\n Autowired('resizeObserverService')\n ], Beans.prototype, \"resizeObserverService\", void 0);\n __decorate$N([\n Autowired('paginationProxy')\n ], Beans.prototype, \"paginationProxy\", void 0);\n __decorate$N([\n Autowired('context')\n ], Beans.prototype, \"context\", void 0);\n __decorate$N([\n Autowired('columnApi')\n ], Beans.prototype, \"columnApi\", void 0);\n __decorate$N([\n Autowired('gridApi')\n ], Beans.prototype, \"gridApi\", void 0);\n __decorate$N([\n Autowired('gridOptionsWrapper')\n ], Beans.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$N([\n Autowired('expressionService')\n ], Beans.prototype, \"expressionService\", void 0);\n __decorate$N([\n Autowired('rowRenderer')\n ], Beans.prototype, \"rowRenderer\", void 0);\n __decorate$N([\n Autowired('templateService')\n ], Beans.prototype, \"templateService\", void 0);\n __decorate$N([\n Autowired('valueService')\n ], Beans.prototype, \"valueService\", void 0);\n __decorate$N([\n Autowired('eventService')\n ], Beans.prototype, \"eventService\", void 0);\n __decorate$N([\n Autowired('columnModel')\n ], Beans.prototype, \"columnModel\", void 0);\n __decorate$N([\n Autowired('headerNavigationService')\n ], Beans.prototype, \"headerNavigationService\", void 0);\n __decorate$N([\n Autowired('navigationService')\n ], Beans.prototype, \"navigationService\", void 0);\n __decorate$N([\n Autowired('columnAnimationService')\n ], Beans.prototype, \"columnAnimationService\", void 0);\n __decorate$N([\n Optional('rangeService')\n ], Beans.prototype, \"rangeService\", void 0);\n __decorate$N([\n Autowired('focusService')\n ], Beans.prototype, \"focusService\", void 0);\n __decorate$N([\n Optional('contextMenuFactory')\n ], Beans.prototype, \"contextMenuFactory\", void 0);\n __decorate$N([\n Autowired('popupService')\n ], Beans.prototype, \"popupService\", void 0);\n __decorate$N([\n Autowired('valueFormatterService')\n ], Beans.prototype, \"valueFormatterService\", void 0);\n __decorate$N([\n Autowired('stylingService')\n ], Beans.prototype, \"stylingService\", void 0);\n __decorate$N([\n Autowired('columnHoverService')\n ], Beans.prototype, \"columnHoverService\", void 0);\n __decorate$N([\n Autowired('userComponentFactory')\n ], Beans.prototype, \"userComponentFactory\", void 0);\n __decorate$N([\n Autowired('userComponentRegistry')\n ], Beans.prototype, \"userComponentRegistry\", void 0);\n __decorate$N([\n Autowired('animationFrameService')\n ], Beans.prototype, \"animationFrameService\", void 0);\n __decorate$N([\n Autowired('dragAndDropService')\n ], Beans.prototype, \"dragAndDropService\", void 0);\n __decorate$N([\n Autowired('sortController')\n ], Beans.prototype, \"sortController\", void 0);\n __decorate$N([\n Autowired('filterManager')\n ], Beans.prototype, \"filterManager\", void 0);\n __decorate$N([\n Autowired('rowContainerHeightService')\n ], Beans.prototype, \"rowContainerHeightService\", void 0);\n __decorate$N([\n Autowired('frameworkOverrides')\n ], Beans.prototype, \"frameworkOverrides\", void 0);\n __decorate$N([\n Autowired('cellPositionUtils')\n ], Beans.prototype, \"cellPositionUtils\", void 0);\n __decorate$N([\n Autowired('rowPositionUtils')\n ], Beans.prototype, \"rowPositionUtils\", void 0);\n __decorate$N([\n Autowired('selectionService')\n ], Beans.prototype, \"selectionService\", void 0);\n __decorate$N([\n Optional('selectionHandleFactory')\n ], Beans.prototype, \"selectionHandleFactory\", void 0);\n __decorate$N([\n Autowired('rowCssClassCalculator')\n ], Beans.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$N([\n Autowired('rowModel')\n ], Beans.prototype, \"rowModel\", void 0);\n __decorate$N([\n Autowired('ctrlsService')\n ], Beans.prototype, \"ctrlsService\", void 0);\n __decorate$N([\n Autowired('ctrlsFactory')\n ], Beans.prototype, \"ctrlsFactory\", void 0);\n __decorate$N([\n Autowired('agStackComponentsRegistry')\n ], Beans.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$N([\n Autowired('valueCache')\n ], Beans.prototype, \"valueCache\", void 0);\n __decorate$N([\n Autowired('rowNodeEventThrottle')\n ], Beans.prototype, \"rowNodeEventThrottle\", void 0);\n __decorate$N([\n PostConstruct\n ], Beans.prototype, \"postConstruct\", null);\n Beans = __decorate$N([\n Bean('beans')\n ], Beans);\n return Beans;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellMouseListenerFeature = /** @class */ (function (_super) {\n __extends$X(CellMouseListenerFeature, _super);\n function CellMouseListenerFeature(ctrl, beans, column) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = column;\n return _this;\n }\n CellMouseListenerFeature.prototype.onMouseEvent = function (eventName, mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n switch (eventName) {\n case 'click':\n this.onCellClicked(mouseEvent);\n break;\n case 'mousedown':\n case 'touchstart':\n this.onMouseDown(mouseEvent);\n break;\n case 'dblclick':\n this.onCellDoubleClicked(mouseEvent);\n break;\n case 'mouseout':\n this.onMouseOut(mouseEvent);\n break;\n case 'mouseover':\n this.onMouseOver(mouseEvent);\n break;\n }\n };\n CellMouseListenerFeature.prototype.onCellClicked = function (mouseEvent) {\n // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.\n if (this.isDoubleClickOnIPad()) {\n this.onCellDoubleClicked(mouseEvent);\n mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in\n return;\n }\n var _a = this.beans, eventService = _a.eventService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var cellClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_CLICKED);\n eventService.dispatchEvent(cellClickedEvent);\n var colDef = this.column.getColDef();\n if (colDef.onCellClicked) {\n // to make callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);\n }\n var editOnSingleClick = (gridOptionsWrapper.isSingleClickEdit() || colDef.singleClickEdit)\n && !gridOptionsWrapper.isSuppressClickEdit();\n if (editOnSingleClick) {\n this.cellCtrl.startRowOrCellEdit();\n }\n };\n // returns true if on iPad and this is second 'click' event in 200ms\n CellMouseListenerFeature.prototype.isDoubleClickOnIPad = function () {\n if (!isIOSUserAgent() || isEventSupported('dblclick')) {\n return false;\n }\n var nowMillis = new Date().getTime();\n var res = nowMillis - this.lastIPadMouseClickEvent < 200;\n this.lastIPadMouseClickEvent = nowMillis;\n return res;\n };\n CellMouseListenerFeature.prototype.onCellDoubleClicked = function (mouseEvent) {\n var colDef = this.column.getColDef();\n // always dispatch event to eventService\n var cellDoubleClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_DOUBLE_CLICKED);\n this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);\n // check if colDef also wants to handle event\n if (typeof colDef.onCellDoubleClicked === 'function') {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);\n }\n var editOnDoubleClick = !this.beans.gridOptionsWrapper.isSingleClickEdit()\n && !this.beans.gridOptionsWrapper.isSuppressClickEdit();\n if (editOnDoubleClick) {\n this.cellCtrl.startRowOrCellEdit(null, null, mouseEvent);\n }\n };\n CellMouseListenerFeature.prototype.onMouseDown = function (mouseEvent) {\n var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;\n var target = mouseEvent.target;\n var _a = this.beans, eventService = _a.eventService, rangeService = _a.rangeService;\n // do not change the range for right-clicks inside an existing range\n if (this.isRightClickInExistingRange(mouseEvent)) {\n return;\n }\n var ranges = rangeService && rangeService.getCellRanges().length != 0;\n if (!shiftKey || !ranges) {\n // We only need to pass true to focusCell when the browser is IE/Edge and we are trying\n // to focus the cell itself. This should never be true if the mousedown was triggered\n // due to a click on a cell editor for example.\n var forceBrowserFocus = (isBrowserEdge()) && !this.cellCtrl.isEditing() && !isFocusableFormField(target);\n this.cellCtrl.focusCell(forceBrowserFocus);\n }\n // if shift clicking, and a range exists, we keep the focus on the cell that started the\n // range as the user then changes the range selection.\n if (shiftKey && ranges) {\n // this stops the cell from getting focused\n mouseEvent.preventDefault();\n }\n // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox\n // is focused but we don't want to change the range selection, so return here.\n if (this.containsWidget(target)) {\n return;\n }\n if (rangeService) {\n var thisCell = this.cellCtrl.getCellPosition();\n if (shiftKey) {\n rangeService.extendLatestRangeToCell(thisCell);\n }\n else {\n var ctrlKeyPressed = ctrlKey || metaKey;\n rangeService.setRangeToCell(thisCell, ctrlKeyPressed);\n }\n }\n eventService.dispatchEvent(this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_DOWN));\n };\n CellMouseListenerFeature.prototype.isRightClickInExistingRange = function (mouseEvent) {\n var rangeService = this.beans.rangeService;\n if (rangeService) {\n var cellInRange = rangeService.isCellInAnyRange(this.cellCtrl.getCellPosition());\n if (cellInRange && mouseEvent.button === 2) {\n return true;\n }\n }\n return false;\n };\n CellMouseListenerFeature.prototype.containsWidget = function (target) {\n return isElementChildOfClass(target, 'ag-selection-checkbox', 3);\n };\n CellMouseListenerFeature.prototype.onMouseOut = function (mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n var cellMouseOutEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OUT);\n this.beans.eventService.dispatchEvent(cellMouseOutEvent);\n this.beans.columnHoverService.clearMouseOver();\n };\n CellMouseListenerFeature.prototype.onMouseOver = function (mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n var cellMouseOverEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OVER);\n this.beans.eventService.dispatchEvent(cellMouseOverEvent);\n this.beans.columnHoverService.setMouseOver([this.column]);\n };\n CellMouseListenerFeature.prototype.mouseStayingInsideCell = function (e) {\n if (!e.target || !e.relatedTarget) {\n return false;\n }\n var eGui = this.cellCtrl.getGui();\n var cellContainsTarget = eGui.contains(e.target);\n var cellContainsRelatedTarget = eGui.contains(e.relatedTarget);\n return cellContainsTarget && cellContainsRelatedTarget;\n };\n CellMouseListenerFeature.prototype.destroy = function () {\n };\n return CellMouseListenerFeature;\n}(Beans));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellKeyboardListenerFeature = /** @class */ (function (_super) {\n __extends$Y(CellKeyboardListenerFeature, _super);\n function CellKeyboardListenerFeature(ctrl, beans, column, rowNode, rowCtrl) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.rowNode = rowNode;\n _this.rowCtrl = rowCtrl;\n return _this;\n }\n CellKeyboardListenerFeature.prototype.setComp = function (eGui) {\n this.eGui = eGui;\n };\n CellKeyboardListenerFeature.prototype.onKeyDown = function (event) {\n var key = event.key;\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.F2:\n this.onF2KeyDown(event);\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.BACKSPACE:\n case KeyCode.DELETE:\n this.onBackspaceOrDeleteKeyPressed(key, event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n this.onNavigationKeyPressed(event, key);\n break;\n }\n };\n CellKeyboardListenerFeature.prototype.onNavigationKeyPressed = function (event, key) {\n if (this.cellCtrl.isEditing()) {\n return;\n }\n if (event.shiftKey && this.cellCtrl.isRangeSelectionEnabled()) {\n this.onShiftRangeSelect(event);\n }\n else {\n this.beans.navigationService.navigateToNextCell(event, key, this.cellCtrl.getCellPosition(), true);\n }\n // if we don't prevent default, the grid will scroll with the navigation keys\n event.preventDefault();\n };\n CellKeyboardListenerFeature.prototype.onShiftRangeSelect = function (event) {\n if (!this.beans.rangeService) {\n return;\n }\n var endCell = this.beans.rangeService.extendLatestRangeInDirection(event);\n if (endCell) {\n this.beans.navigationService.ensureCellVisible(endCell);\n }\n };\n CellKeyboardListenerFeature.prototype.onTabKeyDown = function (event) {\n this.beans.navigationService.onTabKeyDown(this.cellCtrl, event);\n };\n CellKeyboardListenerFeature.prototype.onBackspaceOrDeleteKeyPressed = function (key, event) {\n if (!this.cellCtrl.isEditing()) {\n this.cellCtrl.startRowOrCellEdit(key, undefined, event);\n }\n };\n CellKeyboardListenerFeature.prototype.onEnterKeyDown = function (e) {\n if (this.cellCtrl.isEditing() || this.rowCtrl.isEditing()) {\n this.cellCtrl.stopEditingAndFocus();\n }\n else {\n if (this.beans.gridOptionsWrapper.isEnterMovesDown()) {\n this.beans.navigationService.navigateToNextCell(null, KeyCode.DOWN, this.cellCtrl.getCellPosition(), false);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(KeyCode.ENTER, undefined, e);\n if (this.cellCtrl.isEditing()) {\n // if we started editing, then we need to prevent default, otherwise the Enter action can get\n // applied to the cell editor. this happened, for example, with largeTextCellEditor where not\n // preventing default results in a 'new line' character getting inserted in the text area\n // when the editing was started\n e.preventDefault();\n }\n }\n }\n };\n CellKeyboardListenerFeature.prototype.onF2KeyDown = function (event) {\n if (!this.cellCtrl.isEditing()) {\n this.cellCtrl.startRowOrCellEdit(KeyCode.F2, undefined, event);\n }\n };\n CellKeyboardListenerFeature.prototype.onEscapeKeyDown = function (event) {\n if (this.cellCtrl.isEditing()) {\n this.cellCtrl.stopRowOrCellEdit(true);\n this.cellCtrl.focusCell(true);\n }\n };\n CellKeyboardListenerFeature.prototype.onKeyPress = function (event) {\n // check this, in case focus is on a (for example) a text field inside the cell,\n // in which cse we should not be listening for these key pressed\n var eventTarget = event.target;\n var eventOnChildComponent = eventTarget !== this.eGui;\n if (eventOnChildComponent || this.cellCtrl.isEditing()) {\n return;\n }\n var pressedChar = String.fromCharCode(event.charCode);\n if (pressedChar === ' ') {\n this.onSpaceKeyPressed(event);\n }\n else if (isEventFromPrintableCharacter(event)) {\n this.cellCtrl.startRowOrCellEdit(null, pressedChar, event);\n // if we don't prevent default, then the keypress also gets applied to the text field\n // (at least when doing the default editor), but we need to allow the editor to decide\n // what it wants to do. we only do this IF editing was started - otherwise it messes\n // up when the use is not doing editing, but using rendering with text fields in cellRenderer\n // (as it would block the the user from typing into text fields).\n event.preventDefault();\n }\n };\n CellKeyboardListenerFeature.prototype.onSpaceKeyPressed = function (event) {\n var gridOptionsWrapper = this.beans.gridOptionsWrapper;\n if (!this.cellCtrl.isEditing() && gridOptionsWrapper.isRowSelection()) {\n var currentSelection = this.rowNode.isSelected();\n var newSelection = !currentSelection;\n if (newSelection || !gridOptionsWrapper.isSuppressRowDeselection()) {\n var groupSelectsFiltered = this.beans.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({\n newValue: newSelection,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered\n });\n if (currentSelection === undefined && updatedCount === 0) {\n this.rowNode.setSelectedParams({\n newValue: false,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered\n });\n }\n }\n }\n // prevent default as space key, by default, moves browser scroll down\n event.preventDefault();\n };\n CellKeyboardListenerFeature.prototype.destroy = function () {\n };\n return CellKeyboardListenerFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DndSourceComp = /** @class */ (function (_super) {\n __extends$Z(DndSourceComp, _super);\n function DndSourceComp(rowNode, column, beans, eCell) {\n var _this = _super.call(this, \"
\") || this;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.beans = beans;\n _this.eCell = eCell;\n return _this;\n }\n DndSourceComp.prototype.postConstruct = function () {\n var eGui = this.getGui();\n eGui.appendChild(createIconNoSpan('rowDrag', this.beans.gridOptionsWrapper, null));\n // we need to stop the event propagation here to avoid starting a range selection while dragging\n this.addGuiEventListener('mousedown', function (e) {\n e.stopPropagation();\n });\n this.addDragSource();\n this.checkVisibility();\n };\n DndSourceComp.prototype.addDragSource = function () {\n this.addGuiEventListener('dragstart', this.onDragStart.bind(this));\n };\n DndSourceComp.prototype.onDragStart = function (dragEvent) {\n var _this = this;\n var providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;\n dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);\n // default behaviour is to convert data to json and set into drag component\n var defaultOnRowDrag = function () {\n try {\n var jsonData = JSON.stringify(_this.rowNode.data);\n dragEvent.dataTransfer.setData('application/json', jsonData);\n dragEvent.dataTransfer.setData('text/plain', jsonData);\n }\n catch (e) {\n // if we cannot convert the data to json, then we do not set the type\n }\n };\n if (providedOnRowDrag) {\n var params = {\n rowNode: this.rowNode, dragEvent: dragEvent,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n providedOnRowDrag(params);\n }\n else {\n defaultOnRowDrag();\n }\n };\n DndSourceComp.prototype.checkVisibility = function () {\n var visible = this.column.isDndSource(this.rowNode);\n this.setDisplayed(visible);\n };\n __decorate$O([\n PostConstruct\n ], DndSourceComp.prototype, \"postConstruct\", null);\n return DndSourceComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$b = (undefined && undefined.__assign) || function () {\n __assign$b = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$b.apply(this, arguments);\n};\nvar CSS_CELL = 'ag-cell';\nvar CSS_AUTO_HEIGHT = 'ag-cell-auto-height';\nvar CSS_NORMAL_HEIGHT = 'ag-cell-normal-height';\nvar CSS_CELL_FOCUS = 'ag-cell-focus';\nvar CSS_CELL_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';\nvar CSS_CELL_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';\nvar CSS_CELL_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';\nvar CSS_CELL_INLINE_EDITING = 'ag-cell-inline-editing';\nvar CSS_CELL_POPUP_EDITING = 'ag-cell-popup-editing';\nvar CSS_COLUMN_HOVER = 'ag-column-hover';\nvar CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';\nvar instanceIdSequence$1 = 0;\nvar CellCtrl = /** @class */ (function (_super) {\n __extends$_(CellCtrl, _super);\n function CellCtrl(column, rowNode, beans, rowCtrl) {\n var _this = _super.call(this) || this;\n _this.suppressRefreshCell = false;\n _this.column = column;\n _this.rowNode = rowNode;\n _this.beans = beans;\n _this.rowCtrl = rowCtrl;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n _this.instanceId = column.getId() + '-' + instanceIdSequence$1++;\n _this.createCellPosition();\n _this.addFeatures();\n return _this;\n }\n CellCtrl.prototype.addFeatures = function () {\n var _this = this;\n this.cellPositionFeature = new CellPositionFeature(this, this.beans);\n this.addDestroyFunc(function () { return _this.cellPositionFeature.destroy(); });\n this.cellCustomStyleFeature = new CellCustomStyleFeature(this, this.beans);\n this.addDestroyFunc(function () { return _this.cellCustomStyleFeature.destroy(); });\n this.cellMouseListenerFeature = new CellMouseListenerFeature(this, this.beans, this.column);\n this.addDestroyFunc(function () { return _this.cellMouseListenerFeature.destroy(); });\n this.cellKeyboardListenerFeature = new CellKeyboardListenerFeature(this, this.beans, this.column, this.rowNode, this.rowCtrl);\n this.addDestroyFunc(function () { return _this.cellKeyboardListenerFeature.destroy(); });\n var rangeSelectionEnabled = this.beans.rangeService && this.beans.gridOptionsWrapper.isEnableRangeSelection();\n if (rangeSelectionEnabled) {\n this.cellRangeFeature = new CellRangeFeature(this.beans, this);\n this.addDestroyFunc(function () { return _this.cellRangeFeature.destroy(); });\n }\n this.addTooltipFeature();\n };\n CellCtrl.prototype.addTooltipFeature = function () {\n var _this = this;\n var getTooltipValue = function () {\n var colDef = _this.column.getColDef();\n var data = _this.rowNode.data;\n if (colDef.tooltipField && exists(data)) {\n return getValueUsingField(data, colDef.tooltipField, _this.column.isTooltipFieldContainsDots());\n }\n var valueGetter = colDef.tooltipValueGetter;\n if (valueGetter) {\n return valueGetter({\n location: 'cell',\n api: _this.beans.gridOptionsWrapper.getApi(),\n columnApi: _this.beans.gridOptionsWrapper.getColumnApi(),\n context: _this.beans.gridOptionsWrapper.getContext(),\n colDef: _this.column.getColDef(),\n column: _this.column,\n rowIndex: _this.cellPosition.rowIndex,\n node: _this.rowNode,\n data: _this.rowNode.data,\n value: _this.value,\n valueFormatted: _this.valueFormatted,\n });\n }\n return null;\n };\n var tooltipCtrl = {\n getColumn: function () { return _this.column; },\n getColDef: function () { return _this.column.getColDef(); },\n getRowIndex: function () { return _this.cellPosition.rowIndex; },\n getRowNode: function () { return _this.rowNode; },\n getGui: function () { return _this.getGui(); },\n getLocation: function () { return 'cell'; },\n getTooltipValue: getTooltipValue,\n // this makes no sense, why is the cell formatted value passed to the tooltip???\n getValueFormatted: function () { return _this.valueFormatted; }\n };\n this.tooltipFeature = new TooltipFeature(tooltipCtrl, this.beans);\n this.addDestroyFunc(function () { return _this.tooltipFeature.destroy(); });\n };\n CellCtrl.prototype.setComp = function (comp, eGui, eCellWrapper, printLayout, startEditing) {\n this.cellComp = comp;\n this.gow = this.beans.gridOptionsWrapper;\n this.eGui = eGui;\n this.eCellWrapper = eCellWrapper;\n this.printLayout = printLayout;\n // we force to make sure formatter gets called at least once,\n // even if value has not changed (is is undefined)\n this.updateAndFormatValue(true);\n this.addDomData();\n this.onCellFocused();\n this.applyStaticCssClasses();\n this.setWrapText();\n this.onFirstRightPinnedChanged();\n this.onLastLeftPinnedChanged();\n this.onColumnHover();\n this.setupControlComps();\n this.setupAutoHeight();\n this.setAriaColIndex();\n if (!this.gow.isSuppressCellFocus()) {\n this.cellComp.setTabIndex(-1);\n }\n var colIdSanitised = escapeString(this.column.getId());\n this.cellComp.setColId(colIdSanitised);\n this.cellComp.setRole('gridcell');\n this.cellPositionFeature.setComp(eGui);\n this.cellCustomStyleFeature.setComp(comp);\n this.tooltipFeature.setComp(comp);\n this.cellKeyboardListenerFeature.setComp(this.eGui);\n if (this.cellRangeFeature) {\n this.cellRangeFeature.setComp(comp, eGui);\n }\n if (startEditing && this.isCellEditable()) {\n this.startEditing();\n }\n else {\n this.showValue();\n }\n };\n CellCtrl.prototype.setupAutoHeight = function () {\n var _this = this;\n if (!this.column.isAutoHeight()) {\n return;\n }\n var eAutoHeightContainer = this.eCellWrapper;\n var eParentCell = eAutoHeightContainer.parentElement;\n // taking minRowHeight from getRowHeightForNode means the getRowHeight() callback is used,\n // thus allowing different min heights for different rows.\n var minRowHeight = this.beans.gridOptionsWrapper.getRowHeightForNode(this.rowNode).height;\n var measureHeight = function (timesCalled) {\n if (_this.editing) {\n return;\n }\n // because of the retry's below, it's possible the retry's go beyond\n // the rows life.\n if (!_this.isAlive()) {\n return;\n }\n var _a = getElementSize(eParentCell), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom;\n var wrapperHeight = eAutoHeightContainer.offsetHeight;\n var autoHeight = wrapperHeight + paddingTop + paddingBottom;\n if (timesCalled < 5) {\n // if not in doc yet, means framework not yet inserted, so wait for next VM turn,\n // maybe it will be ready next VM turn\n var doc = _this.beans.gridOptionsWrapper.getDocument();\n var notYetInDom = !doc || !doc.contains(eAutoHeightContainer);\n // this happens in React, where React hasn't put any content in. we say 'possibly'\n // as a) may not be React and b) the cell could be empty anyway\n var possiblyNoContentYet = autoHeight == 0;\n if (notYetInDom || possiblyNoContentYet) {\n _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(timesCalled + 1); }, 0);\n return;\n }\n }\n var newHeight = Math.max(autoHeight, minRowHeight);\n _this.rowNode.setRowAutoHeight(newHeight, _this.column);\n };\n var listener = function () { return measureHeight(0); };\n // do once to set size in case size doesn't change, common when cell is blank\n listener();\n var destroyResizeObserver = this.beans.resizeObserverService.observeResize(eAutoHeightContainer, listener);\n this.addDestroyFunc(function () {\n destroyResizeObserver();\n _this.rowNode.setRowAutoHeight(undefined, _this.column);\n });\n };\n CellCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n CellCtrl.prototype.showValue = function (forceNewCellRendererInstance) {\n if (forceNewCellRendererInstance === void 0) { forceNewCellRendererInstance = false; }\n var valueToDisplay = this.valueFormatted != null ? this.valueFormatted : this.value;\n var params = this.createCellRendererParams();\n var compDetails = this.beans.userComponentFactory.getCellRendererDetails(this.column.getColDef(), params);\n this.cellComp.setRenderDetails(compDetails, valueToDisplay, forceNewCellRendererInstance);\n this.refreshHandle();\n };\n CellCtrl.prototype.setupControlComps = function () {\n var colDef = this.column.getColDef();\n this.includeSelection = this.isIncludeControl(colDef.checkboxSelection);\n this.includeRowDrag = this.isIncludeControl(colDef.rowDrag);\n this.includeDndSource = this.isIncludeControl(colDef.dndSource);\n this.cellComp.setIncludeSelection(this.includeSelection);\n this.cellComp.setIncludeDndSource(this.includeDndSource);\n this.cellComp.setIncludeRowDrag(this.includeRowDrag);\n };\n CellCtrl.prototype.isForceWrapper = function () {\n // text selection requires the value to be wrapped in another element\n var forceWrapper = this.beans.gridOptionsWrapper.isEnableCellTextSelection() || this.column.isAutoHeight();\n return forceWrapper;\n };\n CellCtrl.prototype.isIncludeControl = function (value) {\n var rowNodePinned = this.rowNode.rowPinned != null;\n var isFunc = typeof value === 'function';\n var res = rowNodePinned ? false : isFunc || value === true;\n return res;\n };\n CellCtrl.prototype.refreshShouldDestroy = function () {\n var colDef = this.column.getColDef();\n var selectionChanged = this.includeSelection != this.isIncludeControl(colDef.checkboxSelection);\n var rowDragChanged = this.includeRowDrag != this.isIncludeControl(colDef.rowDrag);\n var dndSourceChanged = this.includeDndSource != this.isIncludeControl(colDef.dndSource);\n return selectionChanged || rowDragChanged || dndSourceChanged;\n };\n // either called internally if single cell editing, or called by rowRenderer if row editing\n CellCtrl.prototype.startEditing = function (key, charPress, cellStartedEdit, event) {\n if (key === void 0) { key = null; }\n if (charPress === void 0) { charPress = null; }\n if (cellStartedEdit === void 0) { cellStartedEdit = false; }\n if (event === void 0) { event = null; }\n var _a, _b;\n if (!this.isCellEditable() || this.editing) {\n return;\n }\n var editorParams = this.createCellEditorParams(key, charPress, cellStartedEdit);\n var colDef = this.column.getColDef();\n var compDetails = this.beans.userComponentFactory.getCellEditorDetails(colDef, editorParams);\n // if cellEditorSelector was used, we give preference to popup and popupPosition from the selector\n var popup = ((_a = compDetails) === null || _a === void 0 ? void 0 : _a.popupFromSelector) != null ? compDetails.popupFromSelector : !!colDef.cellEditorPopup;\n var position = ((_b = compDetails) === null || _b === void 0 ? void 0 : _b.popupPositionFromSelector) != null ? compDetails.popupPositionFromSelector : colDef.cellEditorPopupPosition;\n this.setEditing(true, popup);\n this.cellComp.setEditDetails(compDetails, popup, position);\n var e = this.createEvent(event, Events.EVENT_CELL_EDITING_STARTED);\n this.beans.eventService.dispatchEvent(e);\n };\n CellCtrl.prototype.setEditing = function (editing, inPopup) {\n if (inPopup === void 0) { inPopup = false; }\n if (this.editing === editing) {\n return;\n }\n this.editing = editing;\n this.editingInPopup = inPopup;\n this.setInlineEditingClass();\n };\n // pass in 'true' to cancel the editing.\n CellCtrl.prototype.stopRowOrCellEdit = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowCtrl.stopRowEditing(cancel);\n }\n else {\n this.stopEditing(cancel);\n }\n };\n CellCtrl.prototype.onPopupEditorClosed = function () {\n if (!this.isEditing()) {\n return;\n }\n // note: this happens because of a click outside of the grid or if the popupEditor\n // is closed with `Escape` key. if another cell was clicked, then the editing will\n // have already stopped and returned on the conditional above.\n this.stopEditingAndFocus();\n };\n CellCtrl.prototype.takeValueFromCellEditor = function (cancel) {\n var noValueResult = { newValueExists: false };\n if (cancel) {\n return noValueResult;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (!cellEditor) {\n return noValueResult;\n }\n var userWantsToCancel = cellEditor.isCancelAfterEnd && cellEditor.isCancelAfterEnd();\n if (userWantsToCancel) {\n return noValueResult;\n }\n var newValue = cellEditor.getValue();\n return {\n newValue: newValue,\n newValueExists: true\n };\n };\n /**\n * @returns `True` if the value changes, otherwise `False`.\n */\n CellCtrl.prototype.saveNewValue = function (oldValue, newValue) {\n if (newValue === oldValue) {\n return false;\n }\n if (this.beans.gridOptionsWrapper.isReadOnlyEdit()) {\n this.dispatchEventForSaveValueReadOnly(oldValue, newValue);\n return false;\n }\n // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection\n // getting triggered, which results in all cells getting refreshed. we do not want this refresh\n // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.\n // if we only did this refresh (and not the one below) then the cell would flash and not be forced.\n this.suppressRefreshCell = true;\n var valueChanged = this.rowNode.setDataValue(this.column, newValue);\n this.suppressRefreshCell = false;\n return valueChanged;\n };\n CellCtrl.prototype.dispatchEventForSaveValueReadOnly = function (oldValue, newValue) {\n var rowNode = this.rowNode;\n var event = {\n type: Events.EVENT_CELL_EDIT_REQUEST,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: this.column,\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n colDef: this.column.getColDef(),\n context: this.beans.gridOptionsWrapper.getContext(),\n data: rowNode.data,\n node: rowNode,\n oldValue: oldValue,\n newValue: newValue,\n value: newValue,\n source: undefined\n };\n this.beans.eventService.dispatchEvent(event);\n };\n /**\n * Ends the Cell Editing\n * @param cancel `True` if the edit process is being canceled.\n * @returns `True` if the value of the `GridCell` has been updated, otherwise `False`.\n */\n CellCtrl.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (!this.editing) {\n return false;\n }\n var _a = this.takeValueFromCellEditor(cancel), newValue = _a.newValue, newValueExists = _a.newValueExists;\n var oldValue = this.getValueFromValueService();\n var valueChanged = false;\n if (newValueExists) {\n valueChanged = this.saveNewValue(oldValue, newValue);\n }\n this.setEditing(false);\n this.cellComp.setEditDetails(); // passing nothing stops editing\n this.updateAndFormatValue();\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n this.dispatchEditingStoppedEvent(oldValue, newValue);\n return valueChanged;\n };\n CellCtrl.prototype.dispatchEditingStoppedEvent = function (oldValue, newValue) {\n var editingStoppedEvent = __assign$b(__assign$b({}, this.createEvent(null, Events.EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue,\n newValue: newValue });\n this.beans.eventService.dispatchEvent(editingStoppedEvent);\n };\n // if we are editing inline, then we don't have the padding in the cell (set in the themes)\n // to allow the text editor full access to the entire cell\n CellCtrl.prototype.setInlineEditingClass = function () {\n if (!this.isAlive()) {\n return;\n }\n // ag-cell-inline-editing - appears when user is inline editing\n // ag-cell-not-inline-editing - appears when user is no inline editing\n // ag-cell-popup-editing - appears when user is editing cell in popup (appears on the cell, not on the popup)\n // note: one of {ag-cell-inline-editing, ag-cell-not-inline-editing} is always present, they toggle.\n // however {ag-cell-popup-editing} shows when popup, so you have both {ag-cell-popup-editing}\n // and {ag-cell-not-inline-editing} showing at the same time.\n var editingInline = this.editing && !this.editingInPopup;\n var popupEditorShowing = this.editing && this.editingInPopup;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_INLINE_EDITING, editingInline);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_NOT_INLINE_EDITING, !editingInline);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_POPUP_EDITING, popupEditorShowing);\n this.rowCtrl.setInlineEditingCss(this.editing);\n };\n // this is needed as the JS CellComp still allows isPopup() on the CellEditor class, so\n // it's possible the editor is in a popup even though it's not configured via the colDef as so\n CellCtrl.prototype.hackSayEditingInPopup = function () {\n if (this.editingInPopup) {\n return;\n }\n this.editingInPopup = true;\n this.setInlineEditingClass();\n };\n CellCtrl.prototype.createCellEditorParams = function (key, charPress, cellStartedEdit) {\n var res = {\n value: this.getValueFromValueService(),\n key: key,\n eventKey: key,\n charPress: charPress,\n column: this.column,\n colDef: this.column.getColDef(),\n rowIndex: this.getCellPosition().rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n api: this.beans.gridOptionsWrapper.getApi(),\n cellStartedEdit: cellStartedEdit,\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n onKeyDown: this.onKeyDown.bind(this),\n stopEditing: this.stopEditingAndFocus.bind(this),\n eGridCell: this.getGui(),\n parseValue: this.parseValue.bind(this),\n formatValue: this.formatValue.bind(this)\n };\n return res;\n };\n CellCtrl.prototype.createCellRendererParams = function () {\n var _this = this;\n var addRowCompListener = function (eventType, listener) {\n console.warn('AG Grid: since AG Grid v26, params.addRowCompListener() is deprecated. If you need this functionality, please contact AG Grid support and advise why so that we can revert with an appropriate workaround, as we dont have any valid use cases for it. This method was originally provided as a work around to know when cells were destroyed in AG Grid before custom Cell Renderers could be provided.');\n _this.rowCtrl.addEventListener(eventType, listener);\n };\n var res = {\n value: this.value,\n valueFormatted: this.valueFormatted,\n getValue: this.getValueFromValueService.bind(this),\n setValue: function (value) { return _this.beans.valueService.setValue(_this.rowNode, _this.column, value); },\n formatValue: this.formatValue.bind(this),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: this.column.getColDef(),\n column: this.column,\n rowIndex: this.getCellPosition().rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n refreshCell: this.refreshCell.bind(this),\n eGridCell: this.getGui(),\n eParentOfValue: this.cellComp.getParentOfValue(),\n registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.registerRowDragger(rowDraggerElement, dragStartPixels, suppressVisibilityChange); },\n // this function is not documented anywhere, so we could drop it\n // it was in the olden days to allow user to register for when rendered\n // row was removed (the row comp was removed), however now that the user\n // can provide components for cells, the destroy method gets call when this\n // happens so no longer need to fire event.\n addRowCompListener: addRowCompListener\n };\n return res;\n };\n CellCtrl.prototype.parseValue = function (newValue) {\n var colDef = this.column.getColDef();\n var params = {\n node: this.rowNode,\n data: this.rowNode.data,\n oldValue: this.getValue(),\n newValue: newValue,\n colDef: colDef,\n column: this.column,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n var valueParser = colDef.valueParser;\n return exists(valueParser) ? this.beans.expressionService.evaluate(valueParser, params) : newValue;\n };\n CellCtrl.prototype.setFocusOutOnEditor = function () {\n if (!this.editing) {\n return;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusOut) {\n cellEditor.focusOut();\n }\n };\n CellCtrl.prototype.setFocusInOnEditor = function () {\n if (!this.editing) {\n return;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusIn) {\n // if the editor is present, then we just focus it\n cellEditor.focusIn();\n }\n else {\n // if the editor is not present, it means async cell editor (eg React fibre)\n // and we are trying to set focus before the cell editor is present, so we\n // focus the cell instead\n this.focusCell(true);\n }\n };\n CellCtrl.prototype.onCellChanged = function (event) {\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so no need to refresh.\n if (!this.cellComp) {\n return;\n }\n var eventImpactsThisCell = event.column === this.column;\n if (eventImpactsThisCell) {\n this.refreshCell({});\n }\n };\n // + stop editing {forceRefresh: true, suppressFlash: true}\n // + event cellChanged {}\n // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything\n // + rowCtrl: event dataChanged {suppressFlash: !update, newData: !update}\n // + rowCtrl: api refreshCells() {animate: true/false}\n // + rowRenderer: api softRefreshView() {}\n CellCtrl.prototype.refreshCell = function (params) {\n // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly\n if (this.suppressRefreshCell || this.editing) {\n return;\n }\n // In React, due to async, it's possible a refresh was asked for before the CellComp\n // has been set. If this happens, we skip the refresh, as the cell is going to be\n // initialised anyway once the CellComp is set.\n if (!this.cellComp) {\n return;\n }\n var colDef = this.column.getColDef();\n var newData = params != null && !!params.newData;\n var suppressFlash = (params != null && !!params.suppressFlash) || !!colDef.suppressCellFlash;\n // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the\n // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe\n // printing the current time (which would be silly)???. Generally speaking\n // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's\n // best always refresh and take the performance hit rather than never refresh and users complaining in support\n // that cells are not updating.\n var noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;\n var forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;\n var valuesDifferent = this.updateAndFormatValue();\n var dataNeedsUpdating = forceRefresh || valuesDifferent;\n if (dataNeedsUpdating) {\n // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.\n // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')\n // then we are not showing a movement in the stock price, rather we are showing different stock.\n this.showValue(newData);\n // we don't want to flash the cells when processing a filter change, as otherwise the UI would\n // be to busy. see comment in FilterManager with regards processingFilterChange\n var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();\n var flashCell = !suppressFlash && !processingFilterChange &&\n (this.beans.gridOptionsWrapper.isEnableCellChangeFlash() || colDef.enableCellChangeFlash);\n if (flashCell) {\n this.flashCell();\n }\n this.cellCustomStyleFeature.applyUserStyles();\n this.cellCustomStyleFeature.applyClassesFromColDef();\n }\n this.refreshToolTip();\n // we do cellClassRules even if the value has not changed, so that users who have rules that\n // look at other parts of the row (where the other part of the row might of changed) will work.\n this.cellCustomStyleFeature.applyCellClassRules();\n };\n // cell editors call this, when they want to stop for reasons other\n // than what we pick up on. eg selecting from a dropdown ends editing.\n CellCtrl.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit) {\n if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }\n this.stopRowOrCellEdit();\n this.focusCell(true);\n if (!suppressNavigateAfterEdit) {\n this.navigateAfterEdit();\n }\n };\n CellCtrl.prototype.navigateAfterEdit = function () {\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (fullRowEdit) {\n return;\n }\n var enterMovesDownAfterEdit = this.beans.gridOptionsWrapper.isEnterMovesDownAfterEdit();\n if (enterMovesDownAfterEdit) {\n this.beans.navigationService.navigateToNextCell(null, KeyCode.DOWN, this.getCellPosition(), false);\n }\n };\n // user can also call this via API\n CellCtrl.prototype.flashCell = function (delays) {\n var flashDelay = delays && delays.flashDelay;\n var fadeDelay = delays && delays.fadeDelay;\n this.animateCell('data-changed', flashDelay, fadeDelay);\n };\n CellCtrl.prototype.animateCell = function (cssName, flashDelay, fadeDelay) {\n var _this = this;\n var fullName = \"ag-cell-\" + cssName;\n var animationFullName = \"ag-cell-\" + cssName + \"-animation\";\n var gridOptionsWrapper = this.beans.gridOptionsWrapper;\n if (!flashDelay) {\n flashDelay = gridOptionsWrapper.getCellFlashDelay();\n }\n if (!exists(fadeDelay)) {\n fadeDelay = gridOptionsWrapper.getCellFadeDelay();\n }\n // we want to highlight the cells, without any animation\n this.cellComp.addOrRemoveCssClass(fullName, true);\n this.cellComp.addOrRemoveCssClass(animationFullName, false);\n // then once that is applied, we remove the highlight with animation\n window.setTimeout(function () {\n _this.cellComp.addOrRemoveCssClass(fullName, false);\n _this.cellComp.addOrRemoveCssClass(animationFullName, true);\n _this.eGui.style.transition = \"background-color \" + fadeDelay + \"ms\";\n window.setTimeout(function () {\n // and then to leave things as we got them, we remove the animation\n _this.cellComp.addOrRemoveCssClass(animationFullName, false);\n _this.eGui.style.transition = '';\n }, fadeDelay);\n }, flashDelay);\n };\n CellCtrl.prototype.onFlashCells = function (event) {\n if (!this.cellComp) {\n return;\n }\n var cellId = this.beans.cellPositionUtils.createId(this.getCellPosition());\n var shouldFlash = event.cells[cellId];\n if (shouldFlash) {\n this.animateCell('highlight');\n }\n };\n CellCtrl.prototype.isCellEditable = function () {\n return this.column.isCellEditable(this.rowNode);\n };\n CellCtrl.prototype.isSuppressFillHandle = function () {\n return this.column.isSuppressFillHandle();\n };\n CellCtrl.prototype.formatValue = function (value) {\n var res = this.callValueFormatter(value);\n return res != null ? res : value;\n };\n CellCtrl.prototype.callValueFormatter = function (value) {\n return this.beans.valueFormatterService.formatValue(this.column, this.rowNode, value);\n };\n CellCtrl.prototype.updateAndFormatValue = function (force) {\n if (force === void 0) { force = false; }\n var oldValue = this.value;\n var oldValueFormatted = this.valueFormatted;\n this.value = this.getValueFromValueService();\n this.valueFormatted = this.callValueFormatter(this.value);\n var valuesDifferent = force ? true :\n !this.valuesAreEqual(oldValue, this.value) || this.valueFormatted != oldValueFormatted;\n return valuesDifferent;\n };\n CellCtrl.prototype.valuesAreEqual = function (val1, val2) {\n // if the user provided an equals method, use that, otherwise do simple comparison\n var colDef = this.column.getColDef();\n return colDef.equals ? colDef.equals(val1, val2) : val1 === val2;\n };\n CellCtrl.prototype.getComp = function () {\n return this.cellComp;\n };\n CellCtrl.prototype.getValueFromValueService = function () {\n // if we don't check this, then the grid will render leaf groups as open even if we are not\n // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow\n // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded\n // them via the API, or user user expanded them in the UI before turning on pivot mode\n var lockedClosedGroup = this.rowNode.leafGroup && this.beans.columnModel.isPivotMode();\n var isOpenGroup = this.rowNode.group && this.rowNode.expanded && !this.rowNode.footer && !lockedClosedGroup;\n // are we showing group footers\n var groupFootersEnabled = this.beans.gridOptionsWrapper.isGroupIncludeFooter();\n // if doing footers, we normally don't show agg data at group level when group is open\n var groupAlwaysShowAggData = this.beans.gridOptionsWrapper.isGroupSuppressBlankHeader();\n // if doing grouping and footers, we don't want to include the agg value\n // in the header when the group is open\n var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;\n var value = this.beans.valueService.getValue(this.column, this.rowNode, false, ignoreAggData);\n return value;\n };\n CellCtrl.prototype.getValue = function () {\n return this.value;\n };\n CellCtrl.prototype.getValueFormatted = function () {\n return this.valueFormatted;\n };\n CellCtrl.prototype.addDomData = function () {\n var _this = this;\n var element = this.getGui();\n this.beans.gridOptionsWrapper.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, this);\n this.addDestroyFunc(function () { return _this.beans.gridOptionsWrapper.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, null); });\n };\n CellCtrl.prototype.createEvent = function (domEvent, eventType) {\n var event = {\n type: eventType,\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.value,\n column: this.column,\n colDef: this.column.getColDef(),\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n rowPinned: this.rowNode.rowPinned,\n event: domEvent,\n rowIndex: this.rowNode.rowIndex\n };\n return event;\n };\n CellCtrl.prototype.onKeyPress = function (event) {\n this.cellKeyboardListenerFeature.onKeyPress(event);\n };\n CellCtrl.prototype.onKeyDown = function (event) {\n this.cellKeyboardListenerFeature.onKeyDown(event);\n };\n CellCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {\n this.cellMouseListenerFeature.onMouseEvent(eventName, mouseEvent);\n };\n CellCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n CellCtrl.prototype.refreshToolTip = function () {\n this.tooltipFeature.refreshToolTip();\n };\n CellCtrl.prototype.getColSpanningList = function () {\n return this.cellPositionFeature.getColSpanningList();\n };\n CellCtrl.prototype.onLeftChanged = function () {\n if (!this.cellComp) {\n return;\n }\n this.cellPositionFeature.onLeftChanged();\n };\n CellCtrl.prototype.onDisplayedColumnsChanged = function () {\n if (!this.eGui) {\n return;\n }\n this.setAriaColIndex();\n };\n CellCtrl.prototype.setAriaColIndex = function () {\n var colIdx = this.beans.columnModel.getAriaColumnIndex(this.column);\n setAriaColIndex(this.getGui(), colIdx); // for react, we don't use JSX, as it slowed down column moving\n };\n CellCtrl.prototype.isSuppressNavigable = function () {\n return this.column.isSuppressNavigable(this.rowNode);\n };\n CellCtrl.prototype.onWidthChanged = function () {\n return this.cellPositionFeature.onWidthChanged();\n };\n CellCtrl.prototype.getColumn = function () {\n return this.column;\n };\n CellCtrl.prototype.getRowNode = function () {\n return this.rowNode;\n };\n CellCtrl.prototype.getBeans = function () {\n return this.beans;\n };\n CellCtrl.prototype.isPrintLayout = function () {\n return this.printLayout;\n };\n CellCtrl.prototype.appendChild = function (htmlElement) {\n this.eGui.appendChild(htmlElement);\n };\n CellCtrl.prototype.refreshHandle = function () {\n if (this.editing) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.refreshHandle();\n }\n };\n CellCtrl.prototype.getCellPosition = function () {\n return this.cellPosition;\n };\n CellCtrl.prototype.isEditing = function () {\n return this.editing;\n };\n // called by rowRenderer when user navigates via tab key\n CellCtrl.prototype.startRowOrCellEdit = function (key, charPress, event) {\n if (event === void 0) { event = null; }\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowCtrl.startRowEditing(key, charPress, this);\n }\n else {\n this.startEditing(key, charPress, true, event);\n }\n };\n CellCtrl.prototype.getRowCtrl = function () {\n return this.rowCtrl;\n };\n CellCtrl.prototype.getRowPosition = function () {\n return {\n rowIndex: this.cellPosition.rowIndex,\n rowPinned: this.cellPosition.rowPinned\n };\n };\n CellCtrl.prototype.updateRangeBordersIfRangeCount = function () {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.updateRangeBordersIfRangeCount();\n }\n };\n CellCtrl.prototype.onRangeSelectionChanged = function () {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n };\n CellCtrl.prototype.isRangeSelectionEnabled = function () {\n return this.cellRangeFeature != null;\n };\n CellCtrl.prototype.focusCell = function (forceBrowserFocus) {\n if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }\n this.beans.focusService.setFocusedCell(this.getCellPosition().rowIndex, this.column, this.rowNode.rowPinned, forceBrowserFocus);\n };\n CellCtrl.prototype.onRowIndexChanged = function () {\n // when index changes, this influences items that need the index, so we update the\n // grid cell so they are working off the new index.\n this.createCellPosition();\n // when the index of the row changes, ie means the cell may have lost or gained focus\n this.onCellFocused();\n // check range selection\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n };\n CellCtrl.prototype.onFirstRightPinnedChanged = function () {\n if (!this.cellComp) {\n return;\n }\n var firstRightPinned = this.column.isFirstRightPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FIRST_RIGHT_PINNED, firstRightPinned);\n };\n CellCtrl.prototype.onLastLeftPinnedChanged = function () {\n if (!this.cellComp) {\n return;\n }\n var lastLeftPinned = this.column.isLastLeftPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_LAST_LEFT_PINNED, lastLeftPinned);\n };\n CellCtrl.prototype.onCellFocused = function (event) {\n if (!this.cellComp || this.gow.isSuppressCellFocus()) {\n return;\n }\n var cellFocused = this.beans.focusService.isCellFocused(this.cellPosition);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);\n // see if we need to force browser focus - this can happen if focus is programmatically set\n if (cellFocused && event && event.forceBrowserFocus) {\n var focusEl = this.cellComp.getFocusableElement();\n focusEl.focus();\n }\n // if another cell was focused, and we are editing, then stop editing\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (!cellFocused && !fullRowEdit && this.editing) {\n this.stopRowOrCellEdit();\n }\n };\n CellCtrl.prototype.createCellPosition = function () {\n this.cellPosition = {\n rowIndex: this.rowNode.rowIndex,\n rowPinned: makeNull(this.rowNode.rowPinned),\n column: this.column\n };\n };\n // CSS Classes that only get applied once, they never change\n CellCtrl.prototype.applyStaticCssClasses = function () {\n this.cellComp.addOrRemoveCssClass(CSS_CELL, true);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_NOT_INLINE_EDITING, true);\n // normal cells fill the height of the row. autoHeight cells have no height to let them\n // fit the height of content.\n var autoHeight = this.column.isAutoHeight() == true;\n this.cellComp.addOrRemoveCssClass(CSS_AUTO_HEIGHT, autoHeight);\n this.cellComp.addOrRemoveCssClass(CSS_NORMAL_HEIGHT, !autoHeight);\n };\n CellCtrl.prototype.onColumnHover = function () {\n if (!this.cellComp) {\n return;\n }\n if (!this.beans.gridOptionsWrapper.isColumnHoverHighlight()) {\n return;\n }\n var isHovered = this.beans.columnHoverService.isHovered(this.column);\n this.cellComp.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);\n };\n CellCtrl.prototype.onNewColumnsLoaded = function () {\n if (!this.cellComp) {\n return;\n }\n this.setWrapText();\n if (!this.editing) {\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n }\n };\n CellCtrl.prototype.setWrapText = function () {\n var value = this.column.getColDef().wrapText == true;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, value);\n };\n CellCtrl.prototype.dispatchCellContextMenuEvent = function (event) {\n var colDef = this.column.getColDef();\n var cellContextMenuEvent = this.createEvent(event, Events.EVENT_CELL_CONTEXT_MENU);\n this.beans.eventService.dispatchEvent(cellContextMenuEvent);\n if (colDef.onCellContextMenu) {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);\n }\n };\n CellCtrl.prototype.getCellRenderer = function () {\n return this.cellComp ? this.cellComp.getCellRenderer() : null;\n };\n CellCtrl.prototype.getCellEditor = function () {\n return this.cellComp ? this.cellComp.getCellEditor() : null;\n };\n CellCtrl.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n CellCtrl.prototype.createSelectionCheckbox = function () {\n var cbSelectionComponent = new CheckboxSelectionComponent();\n this.beans.context.createBean(cbSelectionComponent);\n cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });\n // put the checkbox in before the value\n return cbSelectionComponent;\n };\n CellCtrl.prototype.createDndSource = function () {\n var dndSourceComp = new DndSourceComp(this.rowNode, this.column, this.beans, this.eGui);\n this.beans.context.createBean(dndSourceComp);\n return dndSourceComp;\n };\n CellCtrl.prototype.registerRowDragger = function (customElement, dragStartPixels, suppressVisibilityChange) {\n var _this = this;\n // if previously existed, then we are only updating\n if (this.customRowDragComp) {\n this.customRowDragComp.setDragElement(customElement, dragStartPixels);\n return;\n }\n var newComp = this.createRowDragComp(customElement, dragStartPixels, suppressVisibilityChange);\n if (newComp) {\n this.customRowDragComp = newComp;\n this.addDestroyFunc(function () { return _this.beans.context.destroyBean(newComp); });\n }\n };\n CellCtrl.prototype.createRowDragComp = function (customElement, dragStartPixels, suppressVisibilityChange) {\n var _this = this;\n var pagination = this.beans.gridOptionsWrapper.isPagination();\n var rowDragManaged = this.beans.gridOptionsWrapper.isRowDragManaged();\n var clientSideRowModelActive = this.beans.gridOptionsWrapper.isRowModelDefault();\n if (rowDragManaged) {\n // row dragging only available in default row model\n if (!clientSideRowModelActive) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');\n return;\n }\n if (pagination) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');\n return;\n }\n }\n // otherwise (normal case) we are creating a RowDraggingComp for the first time\n var rowDragComp = new RowDragComp(function () { return _this.value; }, this.rowNode, this.column, customElement, dragStartPixels, suppressVisibilityChange);\n this.beans.context.createBean(rowDragComp);\n return rowDragComp;\n };\n CellCtrl.DOM_DATA_KEY_CELL_CTRL = 'cellCtrl';\n return CellCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$8 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$6 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$8(arguments[i]));\n return ar;\n};\nvar RowType;\n(function (RowType) {\n RowType[\"Normal\"] = \"Normal\";\n RowType[\"FullWidth\"] = \"FullWidth\";\n RowType[\"FullWidthLoading\"] = \"FullWidthLoading\";\n RowType[\"FullWidthGroup\"] = \"FullWidthGroup\";\n RowType[\"FullWidthDetail\"] = \"FullWidthDetail\";\n})(RowType || (RowType = {}));\nvar instanceIdSequence$2 = 0;\nvar RowCtrl = /** @class */ (function (_super) {\n __extends$$(RowCtrl, _super);\n function RowCtrl(rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {\n var _this = _super.call(this) || this;\n _this.allRowGuis = [];\n _this.active = true;\n _this.centerCellCtrls = { list: [], map: {} };\n _this.leftCellCtrls = { list: [], map: {} };\n _this.rightCellCtrls = { list: [], map: {} };\n _this.lastMouseDownOnDragger = false;\n _this.updateColumnListsPending = false;\n _this.beans = beans;\n _this.rowNode = rowNode;\n _this.paginationPage = _this.beans.paginationProxy.getCurrentPage();\n _this.useAnimationFrameForCreate = useAnimationFrameForCreate;\n _this.printLayout = printLayout;\n _this.instanceId = rowNode.id + '-' + instanceIdSequence$2++;\n _this.setAnimateFlags(animateIn);\n _this.rowFocused = _this.beans.focusService.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);\n _this.rowLevel = _this.beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);\n _this.setRowType();\n _this.addListeners();\n _this.setInitialRowTop();\n return _this;\n }\n RowCtrl.prototype.getBeans = function () {\n return this.beans;\n };\n RowCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n RowCtrl.prototype.setComp = function (rowComp, element, containerType) {\n var gui = { rowComp: rowComp, element: element, containerType: containerType };\n this.allRowGuis.push(gui);\n if (containerType === exports.RowContainerType.LEFT) {\n this.leftGui = gui;\n }\n else if (containerType === exports.RowContainerType.RIGHT) {\n this.rightGui = gui;\n }\n else if (containerType === exports.RowContainerType.FULL_WIDTH) {\n this.fullWidthGui = gui;\n }\n else {\n this.centerGui = gui;\n }\n var allNormalPresent = this.leftGui != null && this.rightGui != null && this.centerGui != null;\n var fullWidthPresent = this.fullWidthGui != null;\n if (allNormalPresent || fullWidthPresent) {\n this.initialiseRowComps();\n }\n };\n RowCtrl.prototype.isCacheable = function () {\n return this.rowType === RowType.FullWidthDetail\n && this.beans.gridOptionsWrapper.isKeepDetailRows();\n };\n RowCtrl.prototype.setCached = function (cached) {\n var displayValue = cached ? 'none' : '';\n this.allRowGuis.forEach(function (rg) { return rg.element.style.display = displayValue; });\n };\n RowCtrl.prototype.initialiseRowComps = function () {\n var _this = this;\n var gow = this.beans.gridOptionsWrapper;\n this.onRowHeightChanged();\n this.updateRowIndexes();\n this.setFocusedClasses();\n this.setStylesFromGridOptions();\n if (gow.isRowSelection() && this.rowNode.selectable) {\n this.onRowSelected();\n }\n this.updateColumnLists(!this.useAnimationFrameForCreate);\n if (this.slideRowIn) {\n executeNextVMTurn(this.onTopChanged.bind(this));\n }\n if (this.fadeRowIn) {\n executeNextVMTurn(function () {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', false); });\n });\n }\n var businessKey = this.getRowBusinessKey();\n var rowIdSanitised = escapeString(this.rowNode.id);\n var businessKeySanitised = escapeString(businessKey);\n this.allRowGuis.forEach(function (gui) {\n var comp = gui.rowComp;\n comp.setRole('row');\n var initialRowClasses = _this.getInitialRowClasses(gui.containerType);\n initialRowClasses.forEach(function (name) { return comp.addOrRemoveCssClass(name, true); });\n if (_this.rowNode.group) {\n setAriaExpanded(gui.element, _this.rowNode.expanded == true);\n }\n if (rowIdSanitised != null) {\n comp.setRowId(rowIdSanitised);\n }\n if (businessKeySanitised != null) {\n comp.setRowBusinessKey(businessKeySanitised);\n }\n if (_this.isFullWidth() && !_this.beans.gridOptionsWrapper.isSuppressCellFocus()) {\n comp.setTabIndex(-1);\n }\n // DOM DATA\n gow.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, _this);\n _this.addDestroyFunc(function () { return gow.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, null); });\n // adding hover functionality adds listener to this row, so we\n // do it lazily in an animation frame\n if (_this.useAnimationFrameForCreate) {\n _this.beans.animationFrameService.createTask(_this.addHoverFunctionality.bind(_this, gui.element), _this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n _this.addHoverFunctionality(gui.element);\n }\n if (_this.isFullWidth()) {\n _this.setupFullWidth(gui);\n }\n if (gow.isRowDragEntireRow()) {\n _this.addRowDraggerToRow(gui);\n }\n if (_this.useAnimationFrameForCreate) {\n // the height animation we only want active after the row is alive for 1 second.\n // this stops the row animation working when rows are initially crated. otherwise\n // auto-height rows get inserted into the dom and resized immediately, which gives\n // very bad UX (eg 10 rows get inserted, then all 10 expand, look particularly bad\n // when scrolling). so this makes sure when rows are shown for the first time, they\n // are resized immediately without animation.\n _this.beans.animationFrameService.addDestroyTask(function () {\n if (!_this.isAlive()) {\n return;\n }\n gui.rowComp.addOrRemoveCssClass('ag-after-created', true);\n });\n }\n });\n this.executeProcessRowPostCreateFunc();\n };\n RowCtrl.prototype.addRowDraggerToRow = function (gui) {\n var gow = this.beans.gridOptionsWrapper;\n if (gow.isEnableRangeSelection()) {\n doOnce(function () {\n console.warn('AG Grid: Setting `rowDragEntireRow: true` in the gridOptions doesn\\'t work with `enableRangeSelection: true`');\n }, 'rowDragAndRangeSelectionEnabled');\n return;\n }\n var rowDragComp = new RowDragComp(function () { return '1 row'; }, this.rowNode, undefined, gui.element, undefined, true);\n this.createManagedBean(rowDragComp, this.beans.context);\n };\n RowCtrl.prototype.setupFullWidth = function (gui) {\n var pinned = this.getPinnedForContainer(gui.containerType);\n var params = this.createFullWidthParams(gui.element, pinned);\n var masterDetailModuleLoaded = ModuleRegistry.isRegistered(exports.ModuleNames.MasterDetailModule);\n if (this.rowType == RowType.FullWidthDetail && !masterDetailModuleLoaded) {\n if (ModuleRegistry.isPackageBased()) {\n console.warn(\"AG Grid: cell renderer 'agDetailCellRenderer' (for master detail) not found. Can only be used with ag-grid-enterprise package.\");\n }\n else {\n console.warn(\"AG Grid: cell renderer 'agDetailCellRenderer' (for master detail) not found. Can only be used with AG Grid Enterprise Module \" + exports.ModuleNames.MasterDetailModule);\n }\n return;\n }\n var compDetails;\n switch (this.rowType) {\n case RowType.FullWidthDetail:\n compDetails = this.beans.userComponentFactory.getFullWidthDetailCellRendererDetails(params);\n break;\n case RowType.FullWidthGroup:\n compDetails = this.beans.userComponentFactory.getFullWidthGroupCellRendererDetails(params);\n break;\n case RowType.FullWidthLoading:\n compDetails = this.beans.userComponentFactory.getFullWidthLoadingCellRendererDetails(params);\n break;\n default:\n compDetails = this.beans.userComponentFactory.getFullWidthCellRendererDetails(params);\n break;\n }\n gui.rowComp.showFullWidth(compDetails);\n };\n RowCtrl.prototype.isPrintLayout = function () {\n return this.printLayout;\n };\n // use by autoWidthCalculator, as it clones the elements\n RowCtrl.prototype.getCellElement = function (column) {\n var cellCtrl = this.getCellCtrl(column);\n return cellCtrl ? cellCtrl.getGui() : null;\n };\n RowCtrl.prototype.executeProcessRowPostCreateFunc = function () {\n var func = this.beans.gridOptionsWrapper.getProcessRowPostCreateFunc();\n if (!func) {\n return;\n }\n var params = {\n eRow: this.centerGui ? this.centerGui.element : undefined,\n ePinnedLeftRow: this.leftGui ? this.leftGui.element : undefined,\n ePinnedRightRow: this.rightGui ? this.rightGui.element : undefined,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n addRenderedRowListener: this.addEventListener.bind(this),\n };\n func(params);\n };\n RowCtrl.prototype.setRowType = function () {\n var isStub = this.rowNode.stub;\n var isFullWidthCell = this.rowNode.isFullWidthCell();\n var isDetailCell = this.beans.doingMasterDetail && this.rowNode.detail;\n var pivotMode = this.beans.columnModel.isPivotMode();\n // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking\n // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'\n // so each can be set independently (as a customer complained about footers getting full width, hence\n // introducing this logic)\n var isGroupRow = !!this.rowNode.group && !this.rowNode.footer;\n var isFullWidthGroup = isGroupRow && this.beans.gridOptionsWrapper.isGroupUseEntireRow(pivotMode);\n if (isStub) {\n this.rowType = RowType.FullWidthLoading;\n }\n else if (isDetailCell) {\n this.rowType = RowType.FullWidthDetail;\n }\n else if (isFullWidthCell) {\n this.rowType = RowType.FullWidth;\n }\n else if (isFullWidthGroup) {\n this.rowType = RowType.FullWidthGroup;\n }\n else {\n this.rowType = RowType.Normal;\n }\n };\n RowCtrl.prototype.updateColumnLists = function (suppressAnimationFrame) {\n var _this = this;\n if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }\n if (this.isFullWidth()) {\n return;\n }\n var noAnimation = suppressAnimationFrame\n || this.beans.gridOptionsWrapper.isSuppressAnimationFrame()\n || this.printLayout;\n if (noAnimation) {\n this.updateColumnListsImpl();\n return;\n }\n if (this.updateColumnListsPending) {\n return;\n }\n this.beans.animationFrameService.createTask(function () {\n if (!_this.active) {\n return;\n }\n _this.updateColumnListsImpl();\n }, this.rowNode.rowIndex, 'createTasksP1');\n this.updateColumnListsPending = true;\n };\n RowCtrl.prototype.createCellCtrls = function (prev, cols, pinned) {\n var _this = this;\n if (pinned === void 0) { pinned = null; }\n var res = {\n list: [],\n map: {}\n };\n var addCell = function (colInstanceId, cellCtrl) {\n res.list.push(cellCtrl);\n res.map[colInstanceId] = cellCtrl;\n };\n cols.forEach(function (col) {\n // we use instanceId's rather than colId as it's possible there is a Column with same Id,\n // but it's referring to a different column instance. Happens a lot with pivot, as pivot col id's are\n // reused eg pivot_0, pivot_1 etc\n var colInstanceId = col.getInstanceId();\n var cellCtrl = prev.map[colInstanceId];\n if (!cellCtrl) {\n cellCtrl = new CellCtrl(col, _this.rowNode, _this.beans, _this);\n }\n addCell(colInstanceId, cellCtrl);\n });\n prev.list.forEach(function (prevCellCtrl) {\n var cellInResult = res.map[prevCellCtrl.getColumn().getInstanceId()] != null;\n if (cellInResult) {\n return;\n }\n var keepCell = !_this.isCellEligibleToBeRemoved(prevCellCtrl, pinned);\n if (keepCell) {\n addCell(prevCellCtrl.getColumn().getInstanceId(), prevCellCtrl);\n return;\n }\n prevCellCtrl.destroy();\n });\n return res;\n };\n RowCtrl.prototype.updateColumnListsImpl = function () {\n var _this = this;\n this.updateColumnListsPending = false;\n var columnModel = this.beans.columnModel;\n if (this.printLayout) {\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, columnModel.getAllDisplayedColumns());\n this.leftCellCtrls = { list: [], map: {} };\n this.rightCellCtrls = { list: [], map: {} };\n }\n else {\n var centerCols = columnModel.getViewportCenterColumnsForRow(this.rowNode);\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, centerCols);\n var leftCols = columnModel.getDisplayedLeftColumnsForRow(this.rowNode);\n this.leftCellCtrls = this.createCellCtrls(this.leftCellCtrls, leftCols, Constants.PINNED_LEFT);\n var rightCols = columnModel.getDisplayedRightColumnsForRow(this.rowNode);\n this.rightCellCtrls = this.createCellCtrls(this.rightCellCtrls, rightCols, Constants.PINNED_RIGHT);\n }\n this.allRowGuis.forEach(function (item) {\n var cellControls = item.containerType === exports.RowContainerType.LEFT ? _this.leftCellCtrls :\n item.containerType === exports.RowContainerType.RIGHT ? _this.rightCellCtrls : _this.centerCellCtrls;\n item.rowComp.setCellCtrls(cellControls.list);\n });\n };\n RowCtrl.prototype.isCellEligibleToBeRemoved = function (cellCtrl, nextContainerPinned) {\n var REMOVE_CELL = true;\n var KEEP_CELL = false;\n // always remove the cell if it's not rendered or if it's in the wrong pinned location\n var column = cellCtrl.getColumn();\n if (column.getPinned() != nextContainerPinned) {\n return REMOVE_CELL;\n }\n // we want to try and keep editing and focused cells\n var editing = cellCtrl.isEditing();\n var focused = this.beans.focusService.isCellFocused(cellCtrl.getCellPosition());\n var mightWantToKeepCell = editing || focused;\n if (mightWantToKeepCell) {\n var column_1 = cellCtrl.getColumn();\n var displayedColumns = this.beans.columnModel.getAllDisplayedColumns();\n var cellStillDisplayed = displayedColumns.indexOf(column_1) >= 0;\n return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;\n }\n return REMOVE_CELL;\n };\n RowCtrl.prototype.setAnimateFlags = function (animateIn) {\n if (animateIn) {\n var oldRowTopExists = exists(this.rowNode.oldRowTop);\n // if the row had a previous position, we slide it in (animate row top)\n this.slideRowIn = oldRowTopExists;\n // if the row had no previous position, we fade it in (animate\n this.fadeRowIn = !oldRowTopExists;\n }\n else {\n this.slideRowIn = false;\n this.fadeRowIn = false;\n }\n };\n RowCtrl.prototype.isEditing = function () {\n return this.editingRow;\n };\n RowCtrl.prototype.stopRowEditing = function (cancel) {\n this.stopEditing(cancel);\n };\n RowCtrl.prototype.isFullWidth = function () {\n return this.rowType !== RowType.Normal;\n };\n RowCtrl.prototype.getRowType = function () {\n return this.rowType;\n };\n RowCtrl.prototype.refreshFullWidth = function () {\n var _this = this;\n // returns 'true' if refresh succeeded\n var tryRefresh = function (gui, pinned) {\n if (!gui) {\n return true;\n } // no refresh needed\n var cellRenderer = gui.rowComp.getFullWidthCellRenderer();\n // no cell renderer, either means comp not yet ready, or comp ready but now reference\n // to it (happens in react when comp is stateless). if comp not ready, we don't need to\n // refresh, however we don't know which one, so we refresh to cover the case where it's\n // react comp without reference so need to force a refresh\n if (!cellRenderer) {\n return false;\n }\n // no refresh method present, so can't refresh, hard refresh needed\n if (!cellRenderer.refresh) {\n return false;\n }\n var params = _this.createFullWidthParams(gui.element, pinned);\n var refreshSucceeded = cellRenderer.refresh(params);\n return refreshSucceeded;\n };\n var fullWidthSuccess = tryRefresh(this.fullWidthGui, null);\n var centerSuccess = tryRefresh(this.centerGui, null);\n var leftSuccess = tryRefresh(this.leftGui, Constants.PINNED_LEFT);\n var rightSuccess = tryRefresh(this.rightGui, Constants.PINNED_RIGHT);\n var allFullWidthRowsRefreshed = fullWidthSuccess && centerSuccess && leftSuccess && rightSuccess;\n return allFullWidthRowsRefreshed;\n };\n RowCtrl.prototype.addListeners = function () {\n this.addManagedListener(this.rowNode, RowNode.EVENT_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_TOP_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.onRowNodeCellChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DRAGGING_CHANGED, this.onRowNodeDraggingChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));\n var eventService = this.beans.eventService;\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUSED, this.onCellFocusChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedListener(eventService, Events.EVENT_COLUMN_MOVED, this.onColumnMoved.bind(this));\n this.addListenersForCellComps();\n };\n RowCtrl.prototype.onColumnMoved = function () {\n this.updateColumnLists();\n };\n RowCtrl.prototype.addListenersForCellComps = function () {\n var _this = this;\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRowIndexChanged(); });\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellChanged(event); });\n });\n };\n RowCtrl.prototype.onRowNodeDataChanged = function (event) {\n // if this is an update, we want to refresh, as this will allow the user to put in a transition\n // into the cellRenderer refresh method. otherwise this might be completely new data, in which case\n // we will want to completely replace the cells\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n return cellCtrl.refreshCell({\n suppressFlash: !event.update,\n newData: !event.update\n });\n });\n // check for selected also, as this could be after lazy loading of the row data, in which case\n // the id might of just gotten set inside the row and the row selected state may of changed\n // as a result. this is what happens when selected rows are loaded in virtual pagination.\n // - niall note - since moving to the stub component, this may no longer be true, as replacing\n // the stub component now replaces the entire row\n this.onRowSelected();\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowCtrl.prototype.onRowNodeCellChanged = function () {\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowCtrl.prototype.postProcessCss = function () {\n this.setStylesFromGridOptions();\n this.postProcessClassesFromGridOptions();\n this.postProcessRowClassRules();\n this.postProcessRowDragging();\n };\n RowCtrl.prototype.onRowNodeHighlightChanged = function () {\n var highlighted = this.rowNode.highlighted;\n this.allRowGuis.forEach(function (gui) {\n var aboveOn = highlighted === exports.RowHighlightPosition.Above;\n var belowOn = highlighted === exports.RowHighlightPosition.Below;\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-above', aboveOn);\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-below', belowOn);\n });\n };\n RowCtrl.prototype.onRowNodeDraggingChanged = function () {\n this.postProcessRowDragging();\n };\n RowCtrl.prototype.postProcessRowDragging = function () {\n var dragging = this.rowNode.dragging;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-dragging', dragging); });\n };\n RowCtrl.prototype.updateExpandedCss = function () {\n var expandable = this.rowNode.isExpandable();\n var expanded = this.rowNode.expanded == true;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-group', expandable);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-expanded', expandable && expanded);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-contracted', expandable && !expanded);\n setAriaExpanded(gui.element, expandable && expanded);\n });\n };\n RowCtrl.prototype.onDisplayedColumnsChanged = function () {\n // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and\n // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.\n this.updateColumnLists(true);\n if (this.beans.columnModel.wasAutoRowHeightEverActive()) {\n this.rowNode.checkAutoHeights();\n }\n };\n RowCtrl.prototype.onVirtualColumnsChanged = function () {\n this.updateColumnLists();\n };\n RowCtrl.prototype.getRowPosition = function () {\n return {\n rowPinned: makeNull(this.rowNode.rowPinned),\n rowIndex: this.rowNode.rowIndex\n };\n };\n RowCtrl.prototype.onKeyboardNavigate = function (keyboardEvent) {\n var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n if (!isFullWidthContainerFocused) {\n return;\n }\n var node = this.rowNode;\n var lastFocusedCell = this.beans.focusService.getFocusedCell();\n var cellPosition = {\n rowIndex: node.rowIndex,\n rowPinned: node.rowPinned,\n column: (lastFocusedCell && lastFocusedCell.column)\n };\n this.beans.navigationService.navigateToNextCell(keyboardEvent, keyboardEvent.key, cellPosition, true);\n keyboardEvent.preventDefault();\n };\n RowCtrl.prototype.onTabKeyDown = function (keyboardEvent) {\n if (keyboardEvent.defaultPrevented || isStopPropagationForAgGrid(keyboardEvent)) {\n return;\n }\n var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n var nextEl = null;\n if (!isFullWidthContainerFocused) {\n nextEl = this.beans.focusService.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);\n }\n if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {\n this.beans.navigationService.onTabKeyDown(this, keyboardEvent);\n }\n };\n RowCtrl.prototype.onFullWidthRowFocused = function (event) {\n var _a;\n var node = this.rowNode;\n var isFocused = this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;\n var element = this.fullWidthGui ? this.fullWidthGui.element : (_a = this.centerGui) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n } // can happen with react ui, comp not yet ready\n element.classList.toggle('ag-full-width-focus', isFocused);\n if (isFocused) {\n // we don't scroll normal rows into view when we focus them, so we don't want\n // to scroll Full Width rows either.\n element.focus({ preventScroll: true });\n }\n };\n RowCtrl.prototype.refreshCell = function (cellCtrl) {\n this.centerCellCtrls = this.removeCellCtrl(this.centerCellCtrls, cellCtrl);\n this.leftCellCtrls = this.removeCellCtrl(this.leftCellCtrls, cellCtrl);\n this.rightCellCtrls = this.removeCellCtrl(this.rightCellCtrls, cellCtrl);\n this.updateColumnLists();\n };\n RowCtrl.prototype.removeCellCtrl = function (prev, cellCtrlToRemove) {\n var res = {\n list: [],\n map: {}\n };\n prev.list.forEach(function (cellCtrl) {\n if (cellCtrl === cellCtrlToRemove) {\n return;\n }\n res.list.push(cellCtrl);\n res.map[cellCtrl.getInstanceId()] = cellCtrl;\n });\n return res;\n };\n RowCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {\n switch (eventName) {\n case 'dblclick':\n this.onRowDblClick(mouseEvent);\n break;\n case 'click':\n this.onRowClick(mouseEvent);\n break;\n case 'touchstart':\n case 'mousedown':\n this.onRowMouseDown(mouseEvent);\n break;\n }\n };\n RowCtrl.prototype.createRowEvent = function (type, domEvent) {\n return {\n type: type,\n node: this.rowNode,\n data: this.rowNode.data,\n rowIndex: this.rowNode.rowIndex,\n rowPinned: this.rowNode.rowPinned,\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n event: domEvent\n };\n };\n RowCtrl.prototype.createRowEventWithSource = function (type, domEvent) {\n var event = this.createRowEvent(type, domEvent);\n // when first developing this, we included the rowComp in the event.\n // this seems very weird. so when introducing the event types, i left the 'source'\n // out of the type, and just include the source in the two places where this event\n // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any\n // users to be using this, as the rowComp isn't an object we expose, so would be\n // very surprising if a user was using it.\n event.source = this;\n return event;\n };\n RowCtrl.prototype.onRowDblClick = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_DOUBLE_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n };\n RowCtrl.prototype.onRowMouseDown = function (mouseEvent) {\n this.lastMouseDownOnDragger = isElementChildOfClass(mouseEvent.target, 'ag-row-drag', 3);\n if (!this.isFullWidth()) {\n return;\n }\n var node = this.rowNode;\n var columnModel = this.beans.columnModel;\n this.beans.focusService.setFocusedCell(node.rowIndex, columnModel.getAllDisplayedColumns()[0], node.rowPinned, true);\n };\n RowCtrl.prototype.onRowClick = function (mouseEvent) {\n var stop = isStopPropagationForAgGrid(mouseEvent) || this.lastMouseDownOnDragger;\n if (stop) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n // ctrlKey for windows, metaKey for Apple\n var multiSelectKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;\n var shiftKeyPressed = mouseEvent.shiftKey;\n // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to\n // handle this is broken. to observe, change the logic below and allow groups to be selected.\n // you will see the group gets selected, then all children get selected, then the grid unselects\n // the children (as the default behaviour when clicking is to unselect other rows) which results\n // in the group getting unselected (as all children are unselected). the correct thing would be\n // to change this, so that children of the selected group are not then subsequenly un-selected.\n var groupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n if (\n // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,\n // so return if it's a group row\n (groupSelectsChildren && this.rowNode.group) ||\n // this is needed so we don't unselect other rows when we click this row, eg if this row is not selectable,\n // and we click it, the selection should not change (ie any currently selected row should stay selected)\n !this.rowNode.selectable ||\n // we also don't allow selection of pinned rows\n this.rowNode.rowPinned ||\n // if no selection method enabled, do nothing\n !this.beans.gridOptionsWrapper.isRowSelection() ||\n // if click selection suppressed, do nothing\n this.beans.gridOptionsWrapper.isSuppressRowClickSelection()) {\n return;\n }\n var multiSelectOnClick = this.beans.gridOptionsWrapper.isRowMultiSelectWithClick();\n var rowDeselectionWithCtrl = !this.beans.gridOptionsWrapper.isSuppressRowDeselection();\n if (this.rowNode.isSelected()) {\n if (multiSelectOnClick) {\n this.rowNode.setSelectedParams({ newValue: false });\n }\n else if (multiSelectKeyPressed) {\n if (rowDeselectionWithCtrl) {\n this.rowNode.setSelectedParams({ newValue: false });\n }\n }\n else {\n // selected with no multi key, must make sure anything else is unselected\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: !shiftKeyPressed, rangeSelect: shiftKeyPressed });\n }\n }\n else {\n var clearSelection = multiSelectOnClick ? false : !multiSelectKeyPressed;\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: shiftKeyPressed });\n }\n };\n RowCtrl.prototype.setupDetailRowAutoHeight = function (eDetailGui) {\n var _this = this;\n if (this.rowType !== RowType.FullWidthDetail) {\n return;\n }\n if (!this.beans.gridOptionsWrapper.isDetailRowAutoHeight()) {\n return;\n }\n var checkRowSizeFunc = function () {\n var clientHeight = eDetailGui.clientHeight;\n // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur\n // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means\n // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an\n // empty detail grid would still have some styling around it giving at least a few pixels.\n if (clientHeight != null && clientHeight > 0) {\n // we do the update in a timeout, to make sure we are not calling from inside the grid\n // doing another update\n var updateRowHeightFunc = function () {\n _this.rowNode.setRowHeight(clientHeight);\n if (_this.beans.clientSideRowModel) {\n _this.beans.clientSideRowModel.onRowHeightChanged();\n }\n else if (_this.beans.serverSideRowModel) {\n _this.beans.serverSideRowModel.onRowHeightChanged();\n }\n };\n _this.beans.frameworkOverrides.setTimeout(updateRowHeightFunc, 0);\n }\n };\n var resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);\n this.addDestroyFunc(resizeObserverDestroyFunc);\n checkRowSizeFunc();\n };\n RowCtrl.prototype.createFullWidthParams = function (eRow, pinned) {\n var _this = this;\n var params = {\n fullWidth: true,\n data: this.rowNode.data,\n node: this.rowNode,\n value: this.rowNode.key,\n valueFormatted: this.rowNode.key,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n // these need to be taken out, as part of 'afterAttached' now\n eGridCell: eRow,\n eParentOfValue: eRow,\n pinned: pinned,\n addRenderedRowListener: this.addEventListener.bind(this),\n registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value, suppressVisibilityChange); }\n };\n return params;\n };\n RowCtrl.prototype.addFullWidthRowDragging = function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) {\n if (value === void 0) { value = ''; }\n if (!this.isFullWidth()) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return value; }, this.rowNode, undefined, rowDraggerElement, dragStartPixels, suppressVisibilityChange);\n this.createManagedBean(rowDragComp, this.beans.context);\n };\n RowCtrl.prototype.onUiLevelChanged = function () {\n var newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);\n if (this.rowLevel != newLevel) {\n var classToAdd_1 = 'ag-row-level-' + newLevel;\n var classToRemove_1 = 'ag-row-level-' + this.rowLevel;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass(classToAdd_1, true);\n gui.rowComp.addOrRemoveCssClass(classToRemove_1, false);\n });\n }\n this.rowLevel = newLevel;\n };\n RowCtrl.prototype.isFirstRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();\n };\n RowCtrl.prototype.isLastRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();\n };\n RowCtrl.prototype.onModelUpdated = function () {\n this.refreshFirstAndLastRowStyles();\n };\n RowCtrl.prototype.refreshFirstAndLastRowStyles = function () {\n var newFirst = this.isFirstRowOnPage();\n var newLast = this.isLastRowOnPage();\n if (this.firstRowOnPage !== newFirst) {\n this.firstRowOnPage = newFirst;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-first', newFirst); });\n }\n if (this.lastRowOnPage !== newLast) {\n this.lastRowOnPage = newLast;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-last', newLast); });\n }\n };\n RowCtrl.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n var cellEdits = this.getAllCellCtrls().map(function (cellCtrl) { return cellCtrl.stopEditing(cancel); });\n if (!this.editingRow) {\n return;\n }\n if (!cancel && cellEdits.some(function (edit) { return edit; })) {\n var event_1 = this.createRowEvent(Events.EVENT_ROW_VALUE_CHANGED);\n this.beans.eventService.dispatchEvent(event_1);\n }\n this.setEditingRow(false);\n };\n RowCtrl.prototype.setInlineEditingCss = function (editing) {\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass(\"ag-row-inline-editing\", editing);\n gui.rowComp.addOrRemoveCssClass(\"ag-row-not-inline-editing\", !editing);\n });\n };\n RowCtrl.prototype.setEditingRow = function (value) {\n this.editingRow = value;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-editing', value); });\n var event = value ?\n this.createRowEvent(Events.EVENT_ROW_EDITING_STARTED)\n : this.createRowEvent(Events.EVENT_ROW_EDITING_STOPPED);\n this.beans.eventService.dispatchEvent(event);\n };\n RowCtrl.prototype.startRowEditing = function (key, charPress, sourceRenderedCell, event) {\n if (key === void 0) { key = null; }\n if (charPress === void 0) { charPress = null; }\n if (sourceRenderedCell === void 0) { sourceRenderedCell = null; }\n if (event === void 0) { event = null; }\n // don't do it if already editing\n if (this.editingRow) {\n return;\n }\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n var cellStartedEdit = cellCtrl === sourceRenderedCell;\n if (cellStartedEdit) {\n cellCtrl.startEditing(key, charPress, cellStartedEdit, event);\n }\n else {\n cellCtrl.startEditing(null, null, cellStartedEdit, event);\n }\n });\n this.setEditingRow(true);\n };\n RowCtrl.prototype.getAllCellCtrls = function () {\n var res = __spread$6(this.centerCellCtrls.list, this.leftCellCtrls.list, this.rightCellCtrls.list);\n return res;\n };\n RowCtrl.prototype.postProcessClassesFromGridOptions = function () {\n var _this = this;\n var cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode);\n if (!cssClasses || !cssClasses.length) {\n return;\n }\n cssClasses.forEach(function (classStr) {\n _this.allRowGuis.forEach(function (c) { return c.rowComp.addOrRemoveCssClass(classStr, true); });\n });\n };\n RowCtrl.prototype.postProcessRowClassRules = function () {\n var _this = this;\n this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, function (className) {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, true); });\n }, function (className) {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, false); });\n });\n };\n RowCtrl.prototype.setStylesFromGridOptions = function () {\n var rowStyles = this.processStylesFromGridOptions();\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.setUserStyles(rowStyles); });\n };\n RowCtrl.prototype.getRowBusinessKey = function () {\n var businessKeyForNodeFunc = this.beans.gridOptionsWrapper.getBusinessKeyForNodeFunc();\n if (typeof businessKeyForNodeFunc !== 'function') {\n return;\n }\n return businessKeyForNodeFunc(this.rowNode);\n };\n RowCtrl.prototype.getPinnedForContainer = function (rowContainerType) {\n var pinned = rowContainerType === exports.RowContainerType.LEFT ? Constants.PINNED_LEFT :\n rowContainerType === exports.RowContainerType.RIGHT ? Constants.PINNED_RIGHT : null;\n return pinned;\n };\n RowCtrl.prototype.getInitialRowClasses = function (rowContainerType) {\n var pinned = this.getPinnedForContainer(rowContainerType);\n var params = {\n rowNode: this.rowNode,\n rowFocused: this.rowFocused,\n fadeRowIn: this.fadeRowIn,\n rowIsEven: this.rowNode.rowIndex % 2 === 0,\n rowLevel: this.rowLevel,\n fullWidthRow: this.isFullWidth(),\n firstRowOnPage: this.isFirstRowOnPage(),\n lastRowOnPage: this.isLastRowOnPage(),\n printLayout: this.printLayout,\n expandable: this.rowNode.isExpandable(),\n pinned: pinned\n };\n return this.beans.rowCssClassCalculator.getInitialRowClasses(params);\n };\n RowCtrl.prototype.processStylesFromGridOptions = function () {\n // part 1 - rowStyle\n var rowStyle = this.beans.gridOptionsWrapper.getRowStyle();\n if (rowStyle && typeof rowStyle === 'function') {\n console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');\n return;\n }\n // part 1 - rowStyleFunc\n var rowStyleFunc = this.beans.gridOptionsWrapper.getRowStyleFunc();\n var rowStyleFuncResult;\n if (rowStyleFunc) {\n var params = {\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex\n };\n rowStyleFuncResult = rowStyleFunc(params);\n }\n return Object.assign({}, rowStyle, rowStyleFuncResult);\n };\n RowCtrl.prototype.onRowSelected = function () {\n var _this = this;\n // Treat undefined as false, if we pass undefined down it gets treated as toggle class, rather than explicitly\n // setting the required value\n var selected = !!this.rowNode.isSelected();\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-selected', selected);\n setAriaSelected(gui.element, selected ? true : undefined);\n var ariaLabel = _this.createAriaLabel();\n setAriaLabel(gui.element, ariaLabel == null ? '' : ariaLabel);\n });\n };\n RowCtrl.prototype.createAriaLabel = function () {\n var selected = this.rowNode.isSelected();\n if (selected && this.beans.gridOptionsWrapper.isSuppressRowDeselection()) {\n return undefined;\n }\n var translate = this.beans.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', \"Press SPACE to \" + (selected ? 'deselect' : 'select') + \" this row.\");\n return label;\n };\n RowCtrl.prototype.isUseAnimationFrameForCreate = function () {\n return this.useAnimationFrameForCreate;\n };\n RowCtrl.prototype.addHoverFunctionality = function (eRow) {\n var _this = this;\n // because we use animation frames to do this, it's possible the row no longer exists\n // by the time we get to add it\n if (!this.active) {\n return;\n }\n // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel\n // like we do for all the other mouse events.\n // because of the pinning, we cannot simply add / remove the class based on the eRow. we\n // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a\n // mouse hover, it sets such in the rowNode, and then all three reflect the change as\n // all are listening for event on the row node.\n // step 1 - add listener, to set flag on row node\n this.addManagedListener(eRow, 'mouseenter', function () { return _this.rowNode.onMouseEnter(); });\n this.addManagedListener(eRow, 'mouseleave', function () { return _this.rowNode.onMouseLeave(); });\n // step 2 - listen for changes on row node (which any eRow can trigger)\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_ENTER, function () {\n // if hover turned off, we don't add the class. we do this here so that if the application\n // toggles this property mid way, we remove the hover form the last row, but we stop\n // adding hovers from that point onwards.\n if (!_this.beans.gridOptionsWrapper.isSuppressRowHoverHighlight()) {\n eRow.classList.add('ag-row-hover');\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_LEAVE, function () {\n eRow.classList.remove('ag-row-hover');\n });\n };\n // for animation, we don't want to animate entry or exit to a very far away pixel,\n // otherwise the row would move so fast, it would appear to disappear. so this method\n // moves the row closer to the viewport if it is far away, so the row slide in / out\n // at a speed the user can see.\n RowCtrl.prototype.roundRowTopToBounds = function (rowTop) {\n var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();\n var range = gridBodyCon.getScrollFeature().getVScrollPosition();\n var minPixel = this.applyPaginationOffset(range.top, true) - 100;\n var maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;\n return Math.min(Math.max(minPixel, rowTop), maxPixel);\n };\n RowCtrl.prototype.getFrameworkOverrides = function () {\n return this.beans.frameworkOverrides;\n };\n RowCtrl.prototype.onRowHeightChanged = function () {\n // check for exists first - if the user is resetting the row height, then\n // it will be null (or undefined) momentarily until the next time the flatten\n // stage is called where the row will then update again with a new height\n if (this.rowNode.rowHeight == null) {\n return;\n }\n var rowHeight = this.rowNode.rowHeight;\n var defaultRowHeight = this.beans.gridOptionsWrapper.getDefaultRowHeight();\n var isHeightFromFunc = this.beans.gridOptionsWrapper.isGetRowHeightFunction();\n var heightFromFunc = isHeightFromFunc ? this.beans.gridOptionsWrapper.getRowHeightForNode(this.rowNode).height : undefined;\n var lineHeight = heightFromFunc ? Math.min(defaultRowHeight, heightFromFunc) - 2 + \"px\" : undefined;\n this.allRowGuis.forEach(function (gui) {\n gui.element.style.height = rowHeight + \"px\";\n // If the row height is coming from a function, this means some rows can\n // be smaller than the theme had intended. so we set --ag-line-height on\n // the row, which is picked up by the theme CSS and is used in a calc\n // for the CSS line-height property, which makes sure the line-height is\n // not bigger than the row height, otherwise the row text would not fit.\n // We do not use rowNode.rowHeight here, as this could be the result of autoHeight,\n // and we found using the autoHeight result causes a loop, where changing the\n // line-height them impacts the cell height, resulting in a new autoHeight,\n // resulting in a new line-height and so on loop. \n // const heightFromFunc = this.beans.gridOptionsWrapper.getRowHeightForNode(this.rowNode).height;\n if (lineHeight) {\n gui.element.style.setProperty('--ag-line-height', lineHeight);\n }\n });\n };\n RowCtrl.prototype.addEventListener = function (eventType, listener) {\n if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {\n eventType = Events.EVENT_VIRTUAL_ROW_REMOVED;\n console.warn('AG Grid: Since version 11, event renderedRowRemoved is now called ' + Events.EVENT_VIRTUAL_ROW_REMOVED);\n }\n _super.prototype.addEventListener.call(this, eventType, listener);\n };\n RowCtrl.prototype.removeEventListener = function (eventType, listener) {\n if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {\n eventType = Events.EVENT_VIRTUAL_ROW_REMOVED;\n console.warn('AG Grid: Since version 11, event renderedRowRemoved and rowRemoved is now called ' + Events.EVENT_VIRTUAL_ROW_REMOVED);\n }\n _super.prototype.removeEventListener.call(this, eventType, listener);\n };\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n RowCtrl.prototype.destroyFirstPass = function () {\n this.active = false;\n // why do we have this method? shouldn't everything below be added as a destroy func beside\n // the corresponding create logic?\n this.setupRemoveAnimation();\n var event = this.createRowEvent(Events.EVENT_VIRTUAL_ROW_REMOVED);\n this.dispatchEvent(event);\n this.beans.eventService.dispatchEvent(event);\n _super.prototype.destroy.call(this);\n };\n RowCtrl.prototype.setupRemoveAnimation = function () {\n var rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;\n if (rowStillVisibleJustNotInViewport) {\n // if the row is not rendered, but in viewport, it means it has moved,\n // so we animate the row out. if the new location is very far away,\n // the animation will be so fast the row will look like it's just disappeared,\n // so instead we animate to a position just outside the viewport.\n var rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);\n this.setRowTop(rowTop);\n }\n else {\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', true); });\n }\n };\n RowCtrl.prototype.destroySecondPass = function () {\n this.allRowGuis.length = 0;\n var destroyCellCtrls = function (ctrls) {\n ctrls.list.forEach(function (c) { return c.destroy(); });\n return { list: [], map: {} };\n };\n this.centerCellCtrls = destroyCellCtrls(this.centerCellCtrls);\n this.leftCellCtrls = destroyCellCtrls(this.leftCellCtrls);\n this.rightCellCtrls = destroyCellCtrls(this.rightCellCtrls);\n };\n RowCtrl.prototype.setFocusedClasses = function () {\n var _this = this;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-focus', _this.rowFocused);\n gui.rowComp.addOrRemoveCssClass('ag-row-no-focus', !_this.rowFocused);\n });\n };\n RowCtrl.prototype.onCellFocusChanged = function () {\n var rowFocused = this.beans.focusService.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);\n if (rowFocused !== this.rowFocused) {\n this.rowFocused = rowFocused;\n this.setFocusedClasses();\n }\n // if we are editing, then moving the focus out of a row will stop editing\n if (!rowFocused && this.editingRow) {\n this.stopEditing(false);\n }\n };\n RowCtrl.prototype.onPaginationChanged = function () {\n var currentPage = this.beans.paginationProxy.getCurrentPage();\n // it is possible this row is in the new page, but the page number has changed, which means\n // it needs to reposition itself relative to the new page\n if (this.paginationPage !== currentPage) {\n this.paginationPage = currentPage;\n this.onTopChanged();\n }\n this.refreshFirstAndLastRowStyles();\n };\n RowCtrl.prototype.onTopChanged = function () {\n this.setRowTop(this.rowNode.rowTop);\n };\n RowCtrl.prototype.onPaginationPixelOffsetChanged = function () {\n // the pixel offset is used when calculating rowTop to set on the row DIV\n this.onTopChanged();\n };\n // applies pagination offset, eg if on second page, and page height is 500px, then removes\n // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.\n // reverse will take the offset away rather than add.\n RowCtrl.prototype.applyPaginationOffset = function (topPx, reverse) {\n if (reverse === void 0) { reverse = false; }\n if (this.rowNode.isRowPinned()) {\n return topPx;\n }\n var pixelOffset = this.beans.paginationProxy.getPixelOffset();\n var multiplier = reverse ? 1 : -1;\n return topPx + (pixelOffset * multiplier);\n };\n RowCtrl.prototype.setRowTop = function (pixels) {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return;\n }\n // need to make sure rowTop is not null, as this can happen if the node was once\n // visible (ie parent group was expanded) but is now not visible\n if (exists(pixels)) {\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n var topPx = afterScalingPixels + \"px\";\n this.setRowTopStyle(topPx);\n }\n };\n RowCtrl.prototype.getInitialRowTop = function () {\n return this.initialTop;\n };\n RowCtrl.prototype.getInitialTransform = function () {\n return this.initialTransform;\n };\n RowCtrl.prototype.setInitialRowTop = function () {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return '';\n }\n // if sliding in, we take the old row top. otherwise we just set the current row top.\n var pixels = this.slideRowIn ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n // we don't apply scaling if row is pinned\n var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n var res = afterScalingPixels + 'px';\n var suppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();\n if (suppressRowTransform) {\n this.initialTop = res;\n }\n else {\n this.initialTransform = \"translateY(\" + res + \")\";\n }\n };\n RowCtrl.prototype.setRowTopStyle = function (topPx) {\n var suppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();\n this.allRowGuis.forEach(function (gui) { return suppressRowTransform ?\n gui.rowComp.setTop(topPx) :\n gui.rowComp.setTransform(\"translateY(\" + topPx + \")\"); });\n };\n RowCtrl.prototype.getRowNode = function () {\n return this.rowNode;\n };\n RowCtrl.prototype.getCellCtrl = function (column) {\n // first up, check for cell directly linked to this column\n var res = null;\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColumn() == column) {\n res = cellCtrl;\n }\n });\n if (res != null) {\n return res;\n }\n // second up, if not found, then check for spanned cols.\n // we do this second (and not at the same time) as this is\n // more expensive, as spanning cols is a\n // infrequently used feature so we don't need to do this most\n // of the time\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColSpanningList().indexOf(column) >= 0) {\n res = cellCtrl;\n }\n });\n return res;\n };\n RowCtrl.prototype.onRowIndexChanged = function () {\n // we only bother updating if the rowIndex is present. if it is not present, it means this row\n // is child of a group node, and the group node was closed, it's the only way to have no row index.\n // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!\n if (this.rowNode.rowIndex != null) {\n this.onCellFocusChanged();\n this.updateRowIndexes();\n this.postProcessCss();\n }\n };\n RowCtrl.prototype.updateRowIndexes = function () {\n var rowIndexStr = this.rowNode.getRowIndexString();\n var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();\n var rowIsEven = this.rowNode.rowIndex % 2 === 0;\n var ariaRowIndex = headerRowCount + this.rowNode.rowIndex + 1;\n this.allRowGuis.forEach(function (c) {\n c.rowComp.setRowIndex(rowIndexStr);\n c.rowComp.addOrRemoveCssClass('ag-row-even', rowIsEven);\n c.rowComp.addOrRemoveCssClass('ag-row-odd', !rowIsEven);\n setAriaRowIndex(c.element, ariaRowIndex);\n });\n };\n // returns the pinned left container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getPinnedLeftRowElement = function () {\n return this.leftGui ? this.leftGui.element : undefined;\n };\n // returns the pinned right container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getPinnedRightRowElement = function () {\n return this.rightGui ? this.rightGui.element : undefined;\n };\n // returns the body container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getBodyRowElement = function () {\n return this.centerGui ? this.centerGui.element : undefined;\n };\n // returns the full width container\n RowCtrl.prototype.getFullWidthRowElement = function () {\n return this.fullWidthGui ? this.fullWidthGui.element : undefined;\n };\n RowCtrl.DOM_DATA_KEY_ROW_CTRL = 'renderedRow';\n return RowCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$10 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$9 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar RowContainerEventsFeature = /** @class */ (function (_super) {\n __extends$10(RowContainerEventsFeature, _super);\n function RowContainerEventsFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n RowContainerEventsFeature.prototype.postConstruct = function () {\n this.addMouseListeners();\n this.mockContextMenuForIPad();\n this.addKeyboardEvents();\n };\n RowContainerEventsFeature.prototype.addKeyboardEvents = function () {\n var _this = this;\n var eventNames = ['keydown', 'keypress'];\n eventNames.forEach(function (eventName) {\n var listener = _this.processKeyboardEvent.bind(_this, eventName);\n _this.addManagedListener(_this.element, eventName, listener);\n });\n };\n RowContainerEventsFeature.prototype.addMouseListeners = function () {\n var _this = this;\n var mouseDownEvent = isEventSupported('touchstart') ? 'touchstart' : 'mousedown';\n var eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', mouseDownEvent];\n eventNames.forEach(function (eventName) {\n var listener = _this.processMouseEvent.bind(_this, eventName);\n _this.addManagedListener(_this.element, eventName, listener);\n });\n };\n RowContainerEventsFeature.prototype.processMouseEvent = function (eventName, mouseEvent) {\n if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||\n isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var rowComp = this.getRowForEvent(mouseEvent);\n var cellCtrl = this.mouseEventService.getRenderedCellForEvent(mouseEvent);\n if (eventName === \"contextmenu\") {\n this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellCtrl);\n }\n else {\n if (cellCtrl) {\n cellCtrl.onMouseEvent(eventName, mouseEvent);\n }\n if (rowComp) {\n rowComp.onMouseEvent(eventName, mouseEvent);\n }\n }\n };\n RowContainerEventsFeature.prototype.mockContextMenuForIPad = function () {\n var _this = this;\n // we do NOT want this when not in iPad, otherwise we will be doing\n if (!isIOSUserAgent()) {\n return;\n }\n var touchListener = new TouchListener(this.element);\n var longTapListener = function (event) {\n var rowComp = _this.getRowForEvent(event.touchEvent);\n var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);\n _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n };\n RowContainerEventsFeature.prototype.getRowForEvent = function (event) {\n var sourceElement = event.target;\n while (sourceElement) {\n var rowCon = this.gridOptionsWrapper.getDomData(sourceElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n if (rowCon) {\n return rowCon;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n };\n RowContainerEventsFeature.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellCtrl) {\n var rowNode = rowComp ? rowComp.getRowNode() : null;\n var column = cellCtrl ? cellCtrl.getColumn() : null;\n var value = null;\n if (column) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n cellCtrl.dispatchCellContextMenuEvent(event_1);\n value = this.valueService.getValue(column, rowNode);\n }\n // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var anchorToElement = cellCtrl ? cellCtrl.getGui() : gridBodyCon.getGridBodyElement();\n if (this.contextMenuFactory) {\n this.contextMenuFactory.onContextMenu(mouseEvent, touchEvent, rowNode, column, value, anchorToElement);\n }\n };\n RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {\n var cellComp = getCtrlForEvent(this.gridOptionsWrapper, keyboardEvent, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n var rowComp = getCtrlForEvent(this.gridOptionsWrapper, keyboardEvent, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n if (keyboardEvent.defaultPrevented) {\n return;\n }\n if (cellComp) {\n this.processCellKeyboardEvent(cellComp, eventName, keyboardEvent);\n }\n else if (rowComp && rowComp.isFullWidth()) {\n this.processFullWidthRowKeyboardEvent(rowComp, eventName, keyboardEvent);\n }\n };\n RowContainerEventsFeature.prototype.processCellKeyboardEvent = function (cellCtrl, eventName, keyboardEvent) {\n var rowNode = cellCtrl.getRowNode();\n var column = cellCtrl.getColumn();\n var editing = cellCtrl.isEditing();\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, keyboardEvent, rowNode, column, editing);\n if (gridProcessingAllowed) {\n switch (eventName) {\n case 'keydown':\n // first see if it's a scroll key, page up / down, home / end etc\n var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);\n // if not a scroll key, then we pass onto cell\n if (!wasScrollKey) {\n cellCtrl.onKeyDown(keyboardEvent);\n }\n // perform clipboard and undo / redo operations\n this.doGridOperations(keyboardEvent, cellCtrl.isEditing());\n break;\n case 'keypress':\n cellCtrl.onKeyPress(keyboardEvent);\n break;\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = cellCtrl.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_DOWN);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n if (eventName === 'keypress') {\n var cellKeyPressEvent = cellCtrl.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_PRESS);\n this.eventService.dispatchEvent(cellKeyPressEvent);\n }\n };\n RowContainerEventsFeature.prototype.processFullWidthRowKeyboardEvent = function (rowComp, eventName, keyboardEvent) {\n var rowNode = rowComp.getRowNode();\n var focusedCell = this.focusService.getFocusedCell();\n var column = (focusedCell && focusedCell.column);\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, keyboardEvent, rowNode, column, false);\n if (gridProcessingAllowed) {\n var key = keyboardEvent.key;\n if (eventName === 'keydown') {\n switch (key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n rowComp.onKeyboardNavigate(keyboardEvent);\n break;\n case KeyCode.TAB:\n rowComp.onTabKeyDown(keyboardEvent);\n default:\n }\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_DOWN, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n if (eventName === 'keypress') {\n var cellKeyPressEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_PRESS, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyPressEvent);\n }\n };\n RowContainerEventsFeature.prototype.doGridOperations = function (keyboardEvent, editing) {\n // check if ctrl or meta key pressed\n if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {\n return;\n }\n // if the cell the event came from is editing, then we do not\n // want to do the default shortcut keys, otherwise the editor\n // (eg a text field) would not be able to do the normal cut/copy/paste\n if (editing) {\n return;\n }\n // for copy / paste, we don't want to execute when the event\n // was from a child grid (happens in master detail)\n if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {\n return;\n }\n switch (keyboardEvent.code) {\n case KeyCode.A:\n return this.onCtrlAndA(keyboardEvent);\n case KeyCode.C:\n return this.onCtrlAndC(keyboardEvent);\n case KeyCode.V:\n return this.onCtrlAndV();\n case KeyCode.D:\n return this.onCtrlAndD(keyboardEvent);\n case KeyCode.Z:\n return keyboardEvent.shiftKey ? this.undoRedoService.redo() : this.undoRedoService.undo();\n case KeyCode.Y:\n return this.undoRedoService.redo();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {\n var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeService = _a.rangeService;\n var PINNED_BOTTOM = Constants.PINNED_BOTTOM, PINNED_TOP = Constants.PINNED_TOP;\n if (rangeService && paginationProxy.isRowsToRender()) {\n var _b = __read$9([\n pinnedRowModel.isEmpty(PINNED_TOP),\n pinnedRowModel.isEmpty(PINNED_BOTTOM)\n ], 2), isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];\n var floatingStart = isEmptyPinnedTop ? null : PINNED_TOP;\n var floatingEnd = void 0;\n var rowEnd = void 0;\n if (isEmptyPinnedBottom) {\n floatingEnd = null;\n rowEnd = this.paginationProxy.getRowCount() - 1;\n }\n else {\n floatingEnd = PINNED_BOTTOM;\n rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;\n }\n var allDisplayedColumns = this.columnModel.getAllDisplayedColumns();\n if (missingOrEmpty(allDisplayedColumns)) {\n return;\n }\n rangeService.setCellRange({\n rowStartIndex: 0,\n rowStartPinned: floatingStart,\n rowEndIndex: rowEnd,\n rowEndPinned: floatingEnd,\n columnStart: allDisplayedColumns[0],\n columnEnd: last(allDisplayedColumns)\n });\n }\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndC = function (event) {\n if (!this.clipboardService || this.gridOptionsWrapper.isEnableCellTextSelection()) {\n return;\n }\n this.clipboardService.copyToClipboard();\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndV = function () {\n if (ModuleRegistry.isRegistered(exports.ModuleNames.ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {\n this.clipboardService.pasteFromClipboard();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {\n if (ModuleRegistry.isRegistered(exports.ModuleNames.ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {\n this.clipboardService.copyRangeDown();\n }\n event.preventDefault();\n };\n __decorate$P([\n Autowired('mouseEventService')\n ], RowContainerEventsFeature.prototype, \"mouseEventService\", void 0);\n __decorate$P([\n Autowired('valueService')\n ], RowContainerEventsFeature.prototype, \"valueService\", void 0);\n __decorate$P([\n Optional('contextMenuFactory')\n ], RowContainerEventsFeature.prototype, \"contextMenuFactory\", void 0);\n __decorate$P([\n Autowired('ctrlsService')\n ], RowContainerEventsFeature.prototype, \"ctrlsService\", void 0);\n __decorate$P([\n Autowired('navigationService')\n ], RowContainerEventsFeature.prototype, \"navigationService\", void 0);\n __decorate$P([\n Autowired('focusService')\n ], RowContainerEventsFeature.prototype, \"focusService\", void 0);\n __decorate$P([\n Autowired('undoRedoService')\n ], RowContainerEventsFeature.prototype, \"undoRedoService\", void 0);\n __decorate$P([\n Autowired('columnModel')\n ], RowContainerEventsFeature.prototype, \"columnModel\", void 0);\n __decorate$P([\n Autowired('paginationProxy')\n ], RowContainerEventsFeature.prototype, \"paginationProxy\", void 0);\n __decorate$P([\n Autowired('pinnedRowModel')\n ], RowContainerEventsFeature.prototype, \"pinnedRowModel\", void 0);\n __decorate$P([\n Optional('rangeService')\n ], RowContainerEventsFeature.prototype, \"rangeService\", void 0);\n __decorate$P([\n Optional('clipboardService')\n ], RowContainerEventsFeature.prototype, \"clipboardService\", void 0);\n __decorate$P([\n PostConstruct\n ], RowContainerEventsFeature.prototype, \"postConstruct\", null);\n return RowContainerEventsFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$11 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// listens to changes in the center viewport size, for column and row virtualisation,\n// and adjusts grid as necessary. there are two viewports, one for horizontal and one for\n// vertical scrolling.\nvar ViewportSizeFeature = /** @class */ (function (_super) {\n __extends$11(ViewportSizeFeature, _super);\n function ViewportSizeFeature(centerContainerCtrl) {\n var _this = _super.call(this) || this;\n _this.centerContainerCtrl = centerContainerCtrl;\n return _this;\n }\n ViewportSizeFeature.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.listenForResize();\n });\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));\n };\n ViewportSizeFeature.prototype.listenForResize = function () {\n var _this = this;\n var listener = function () { return _this.onCenterViewportResized(); };\n // centerContainer gets horizontal resizes\n this.centerContainerCtrl.registerViewportResizeListener(listener);\n // eBodyViewport gets vertical resizes\n this.gridBodyCtrl.registerBodyViewportResizeListener(listener);\n };\n ViewportSizeFeature.prototype.onScrollbarWidthChanged = function () {\n this.checkViewportAndScrolls();\n };\n ViewportSizeFeature.prototype.onCenterViewportResized = function () {\n if (this.centerContainerCtrl.isViewportVisible()) {\n this.checkViewportAndScrolls();\n var newWidth = this.centerContainerCtrl.getCenterWidth();\n if (newWidth !== this.centerWidth) {\n this.centerWidth = newWidth;\n this.columnModel.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });\n }\n }\n else {\n this.bodyHeight = 0;\n }\n };\n // gets called every time the viewport size changes. we use this to check visibility of scrollbars\n // in the grid panel, and also to check size and position of viewport for row and column virtualisation.\n ViewportSizeFeature.prototype.checkViewportAndScrolls = function () {\n // results in updating anything that depends on scroll showing\n this.updateScrollVisibleService();\n // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer\n this.checkBodyHeight();\n // check for virtual columns for ColumnController\n this.onHorizontalViewportChanged();\n this.gridBodyCtrl.getScrollFeature().checkScrollLeft();\n };\n ViewportSizeFeature.prototype.getBodyHeight = function () {\n return this.bodyHeight;\n };\n ViewportSizeFeature.prototype.checkBodyHeight = function () {\n var eBodyViewport = this.gridBodyCtrl.getBodyViewportElement();\n var bodyHeight = getInnerHeight(eBodyViewport);\n if (this.bodyHeight !== bodyHeight) {\n this.bodyHeight = bodyHeight;\n var event_1 = {\n type: Events.EVENT_BODY_HEIGHT_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ViewportSizeFeature.prototype.updateScrollVisibleService = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateScrollVisibleServiceImpl();\n setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);\n };\n ViewportSizeFeature.prototype.updateScrollVisibleServiceImpl = function () {\n var params = {\n horizontalScrollShowing: this.isHorizontalScrollShowing(),\n verticalScrollShowing: this.gridBodyCtrl.isVerticalScrollShowing()\n };\n this.scrollVisibleService.setScrollsVisible(params);\n // fix - gridComp should just listen to event from above\n this.gridBodyCtrl.setVerticalScrollPaddingVisible(params.verticalScrollShowing);\n };\n ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();\n return isAlwaysShowHorizontalScroll || this.centerContainerCtrl.isViewportHScrollShowing();\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)\n ViewportSizeFeature.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.centerContainerCtrl.getCenterWidth();\n var scrollPosition = this.centerContainerCtrl.getViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition);\n };\n __decorate$Q([\n Autowired('ctrlsService')\n ], ViewportSizeFeature.prototype, \"ctrlsService\", void 0);\n __decorate$Q([\n Autowired('columnModel')\n ], ViewportSizeFeature.prototype, \"columnModel\", void 0);\n __decorate$Q([\n Autowired('scrollVisibleService')\n ], ViewportSizeFeature.prototype, \"scrollVisibleService\", void 0);\n __decorate$Q([\n Autowired('columnApi')\n ], ViewportSizeFeature.prototype, \"columnApi\", void 0);\n __decorate$Q([\n Autowired('gridApi')\n ], ViewportSizeFeature.prototype, \"gridApi\", void 0);\n __decorate$Q([\n PostConstruct\n ], ViewportSizeFeature.prototype, \"postConstruct\", null);\n return ViewportSizeFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$12 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetPinnedLeftWidthFeature = /** @class */ (function (_super) {\n __extends$12(SetPinnedLeftWidthFeature, _super);\n function SetPinnedLeftWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedLeftWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));\n };\n SetPinnedLeftWidthFeature.prototype.onPinnedLeftWidthChanged = function () {\n var leftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n var displayed = leftWidth > 0;\n setDisplayed(this.element, displayed);\n if (displayed) {\n setFixedWidth(this.element, leftWidth);\n }\n };\n __decorate$R([\n Autowired('pinnedWidthService')\n ], SetPinnedLeftWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$R([\n PostConstruct\n ], SetPinnedLeftWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedLeftWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$13 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetPinnedRightWidthFeature = /** @class */ (function (_super) {\n __extends$13(SetPinnedRightWidthFeature, _super);\n function SetPinnedRightWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedRightWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));\n };\n SetPinnedRightWidthFeature.prototype.onPinnedRightWidthChanged = function () {\n var rightWidth = this.pinnedWidthService.getPinnedRightWidth();\n var displayed = rightWidth > 0;\n setDisplayed(this.element, displayed);\n if (displayed) {\n setFixedWidth(this.element, rightWidth);\n }\n };\n __decorate$S([\n Autowired('pinnedWidthService')\n ], SetPinnedRightWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$S([\n PostConstruct\n ], SetPinnedRightWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedRightWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$14 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetHeightFeature = /** @class */ (function (_super) {\n __extends$14(SetHeightFeature, _super);\n function SetHeightFeature(eContainer, eWrapper) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n _this.eWrapper = eWrapper;\n return _this;\n }\n SetHeightFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));\n };\n SetHeightFeature.prototype.onHeightChanged = function () {\n var height = this.maxDivHeightScaler.getUiContainerHeight();\n var heightString = height != null ? height + \"px\" : \"\";\n this.eContainer.style.height = heightString;\n if (this.eWrapper) {\n this.eWrapper.style.height = heightString;\n }\n };\n __decorate$T([\n Autowired(\"rowContainerHeightService\")\n ], SetHeightFeature.prototype, \"maxDivHeightScaler\", void 0);\n __decorate$T([\n PostConstruct\n ], SetHeightFeature.prototype, \"postConstruct\", null);\n return SetHeightFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$15 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DragListenerFeature = /** @class */ (function (_super) {\n __extends$15(DragListenerFeature, _super);\n function DragListenerFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n return _this;\n }\n DragListenerFeature.prototype.postConstruct = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isEnableRangeSelection() || // no range selection if no property\n missing(this.rangeService) // no range selection if not enterprise version\n ) {\n return;\n }\n var params = {\n dragStartPixels: 0,\n eElement: this.eContainer,\n onDragStart: this.rangeService.onDragStart.bind(this.rangeService),\n onDragStop: this.rangeService.onDragStop.bind(this.rangeService),\n onDragging: this.rangeService.onDragging.bind(this.rangeService)\n };\n this.dragService.addDragSource(params);\n this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });\n };\n __decorate$U([\n Optional('rangeService')\n ], DragListenerFeature.prototype, \"rangeService\", void 0);\n __decorate$U([\n Autowired('dragService')\n ], DragListenerFeature.prototype, \"dragService\", void 0);\n __decorate$U([\n PostConstruct\n ], DragListenerFeature.prototype, \"postConstruct\", null);\n return DragListenerFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$16 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CenterWidthFeature = /** @class */ (function (_super) {\n __extends$16(CenterWidthFeature, _super);\n function CenterWidthFeature(callback) {\n var _this = _super.call(this) || this;\n _this.callback = callback;\n return _this;\n }\n CenterWidthFeature.prototype.postConstruct = function () {\n var listener = this.setWidth.bind(this);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.setWidth();\n };\n CenterWidthFeature.prototype.setWidth = function () {\n var columnModel = this.columnModel;\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var centerWidth = columnModel.getBodyContainerWidth();\n var leftWidth = columnModel.getDisplayedColumnsLeftWidth();\n var rightWidth = columnModel.getDisplayedColumnsRightWidth();\n var totalWidth = printLayout ? centerWidth + leftWidth + rightWidth : centerWidth;\n this.callback(totalWidth);\n };\n __decorate$V([\n Autowired('columnModel')\n ], CenterWidthFeature.prototype, \"columnModel\", void 0);\n __decorate$V([\n PostConstruct\n ], CenterWidthFeature.prototype, \"postConstruct\", null);\n return CenterWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$17 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$a = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$7 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$a(arguments[i]));\n return ar;\n};\n(function (RowContainerName) {\n RowContainerName[\"LEFT\"] = \"left\";\n RowContainerName[\"RIGHT\"] = \"right\";\n RowContainerName[\"CENTER\"] = \"center\";\n RowContainerName[\"FULL_WIDTH\"] = \"fullWidth\";\n RowContainerName[\"TOP_LEFT\"] = \"topLeft\";\n RowContainerName[\"TOP_RIGHT\"] = \"topRight\";\n RowContainerName[\"TOP_CENTER\"] = \"topCenter\";\n RowContainerName[\"TOP_FULL_WIDTH\"] = \"topFullWidth\";\n RowContainerName[\"BOTTOM_LEFT\"] = \"bottomLeft\";\n RowContainerName[\"BOTTOM_RIGHT\"] = \"bottomRight\";\n RowContainerName[\"BOTTOM_CENTER\"] = \"bottomCenter\";\n RowContainerName[\"BOTTOM_FULL_WIDTH\"] = \"bottomFullWidth\";\n})(exports.RowContainerName || (exports.RowContainerName = {}));\n(function (RowContainerType) {\n RowContainerType[\"LEFT\"] = \"left\";\n RowContainerType[\"RIGHT\"] = \"right\";\n RowContainerType[\"CENTER\"] = \"center\";\n RowContainerType[\"FULL_WIDTH\"] = \"fullWidth\";\n})(exports.RowContainerType || (exports.RowContainerType = {}));\nfunction getRowContainerTypeForName(name) {\n switch (name) {\n case exports.RowContainerName.CENTER:\n case exports.RowContainerName.TOP_CENTER:\n case exports.RowContainerName.BOTTOM_CENTER:\n return exports.RowContainerType.CENTER;\n case exports.RowContainerName.LEFT:\n case exports.RowContainerName.TOP_LEFT:\n case exports.RowContainerName.BOTTOM_LEFT:\n return exports.RowContainerType.LEFT;\n case exports.RowContainerName.RIGHT:\n case exports.RowContainerName.TOP_RIGHT:\n case exports.RowContainerName.BOTTOM_RIGHT:\n return exports.RowContainerType.RIGHT;\n case exports.RowContainerName.FULL_WIDTH:\n case exports.RowContainerName.TOP_FULL_WIDTH:\n case exports.RowContainerName.BOTTOM_FULL_WIDTH:\n return exports.RowContainerType.FULL_WIDTH;\n default:\n throw Error('Invalid Row Container Type');\n }\n}\nvar ContainerCssClasses = convertToMap([\n [exports.RowContainerName.CENTER, 'ag-center-cols-container'],\n [exports.RowContainerName.LEFT, 'ag-pinned-left-cols-container'],\n [exports.RowContainerName.RIGHT, 'ag-pinned-right-cols-container'],\n [exports.RowContainerName.FULL_WIDTH, 'ag-full-width-container'],\n [exports.RowContainerName.TOP_CENTER, 'ag-floating-top-container'],\n [exports.RowContainerName.TOP_LEFT, 'ag-pinned-left-floating-top'],\n [exports.RowContainerName.TOP_RIGHT, 'ag-pinned-right-floating-top'],\n [exports.RowContainerName.TOP_FULL_WIDTH, 'ag-floating-top-full-width-container'],\n [exports.RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-container'],\n [exports.RowContainerName.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],\n [exports.RowContainerName.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],\n [exports.RowContainerName.BOTTOM_FULL_WIDTH, 'ag-floating-bottom-full-width-container'],\n]);\nvar ViewportCssClasses = convertToMap([\n [exports.RowContainerName.CENTER, 'ag-center-cols-viewport'],\n [exports.RowContainerName.TOP_CENTER, 'ag-floating-top-viewport'],\n [exports.RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],\n]);\nvar WrapperCssClasses = convertToMap([\n [exports.RowContainerName.CENTER, 'ag-center-cols-clipper'],\n]);\nvar RowContainerCtrl = /** @class */ (function (_super) {\n __extends$17(RowContainerCtrl, _super);\n function RowContainerCtrl(name) {\n var _this = _super.call(this) || this;\n _this.name = name;\n return _this;\n }\n RowContainerCtrl.getRowContainerCssClasses = function (name) {\n var containerClass = ContainerCssClasses.get(name);\n var viewportClass = ViewportCssClasses.get(name);\n var wrapperClass = WrapperCssClasses.get(name);\n return { container: containerClass, viewport: viewportClass, wrapper: wrapperClass };\n };\n RowContainerCtrl.getPinned = function (name) {\n switch (name) {\n case exports.RowContainerName.BOTTOM_LEFT:\n case exports.RowContainerName.TOP_LEFT:\n case exports.RowContainerName.LEFT:\n return Constants.PINNED_LEFT;\n case exports.RowContainerName.BOTTOM_RIGHT:\n case exports.RowContainerName.TOP_RIGHT:\n case exports.RowContainerName.RIGHT:\n return Constants.PINNED_RIGHT;\n default:\n return null;\n }\n };\n RowContainerCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.embedFullWidthRows = this.gridOptionsWrapper.isEmbedFullWidthRows();\n this.forContainers([exports.RowContainerName.CENTER], function () { return _this.viewportSizeFeature = _this.createManagedBean(new ViewportSizeFeature(_this)); });\n };\n RowContainerCtrl.prototype.registerWithCtrlsService = function () {\n switch (this.name) {\n case exports.RowContainerName.CENTER:\n this.ctrlsService.registerCenterRowContainerCtrl(this);\n break;\n case exports.RowContainerName.LEFT:\n this.ctrlsService.registerLeftRowContainerCtrl(this);\n break;\n case exports.RowContainerName.RIGHT:\n this.ctrlsService.registerRightRowContainerCtrl(this);\n break;\n case exports.RowContainerName.TOP_CENTER:\n this.ctrlsService.registerTopCenterRowContainerCtrl(this);\n break;\n case exports.RowContainerName.TOP_LEFT:\n this.ctrlsService.registerTopLeftRowContainerCon(this);\n break;\n case exports.RowContainerName.TOP_RIGHT:\n this.ctrlsService.registerTopRightRowContainerCtrl(this);\n break;\n case exports.RowContainerName.BOTTOM_CENTER:\n this.ctrlsService.registerBottomCenterRowContainerCtrl(this);\n break;\n case exports.RowContainerName.BOTTOM_LEFT:\n this.ctrlsService.registerBottomLeftRowContainerCtrl(this);\n break;\n case exports.RowContainerName.BOTTOM_RIGHT:\n this.ctrlsService.registerBottomRightRowContainerCtrl(this);\n break;\n }\n };\n RowContainerCtrl.prototype.forContainers = function (names, callback) {\n if (names.indexOf(this.name) >= 0) {\n callback();\n }\n };\n RowContainerCtrl.prototype.getContainerElement = function () {\n return this.eContainer;\n };\n RowContainerCtrl.prototype.getViewportSizeFeature = function () {\n return this.viewportSizeFeature;\n };\n RowContainerCtrl.prototype.setComp = function (view, eContainer, eViewport, eWrapper) {\n var _this = this;\n this.comp = view;\n this.eContainer = eContainer;\n this.eViewport = eViewport;\n this.eWrapper = eWrapper;\n this.createManagedBean(new RowContainerEventsFeature(this.eContainer));\n this.addPreventScrollWhileDragging();\n this.listenOnDomOrder();\n this.stopHScrollOnPinnedRows();\n var allTopNoFW = [exports.RowContainerName.TOP_CENTER, exports.RowContainerName.TOP_LEFT, exports.RowContainerName.TOP_RIGHT];\n var allBottomNoFW = [exports.RowContainerName.BOTTOM_CENTER, exports.RowContainerName.BOTTOM_LEFT, exports.RowContainerName.BOTTOM_RIGHT];\n var allMiddleNoFW = [exports.RowContainerName.CENTER, exports.RowContainerName.LEFT, exports.RowContainerName.RIGHT];\n var allNoFW = __spread$7(allTopNoFW, allBottomNoFW, allMiddleNoFW);\n var allMiddle = [exports.RowContainerName.CENTER, exports.RowContainerName.LEFT, exports.RowContainerName.RIGHT, exports.RowContainerName.FULL_WIDTH];\n var allCenter = [exports.RowContainerName.CENTER, exports.RowContainerName.TOP_CENTER, exports.RowContainerName.BOTTOM_CENTER];\n var allLeft = [exports.RowContainerName.LEFT, exports.RowContainerName.BOTTOM_LEFT, exports.RowContainerName.TOP_LEFT];\n var allRight = [exports.RowContainerName.RIGHT, exports.RowContainerName.BOTTOM_RIGHT, exports.RowContainerName.TOP_RIGHT];\n this.forContainers(allLeft, function () { return _this.createManagedBean(new SetPinnedLeftWidthFeature(_this.eContainer)); });\n this.forContainers(allRight, function () { return _this.createManagedBean(new SetPinnedRightWidthFeature(_this.eContainer)); });\n this.forContainers(allMiddle, function () { return _this.createManagedBean(new SetHeightFeature(_this.eContainer, _this.eWrapper)); });\n this.forContainers(allNoFW, function () { return _this.createManagedBean(new DragListenerFeature(_this.eContainer)); });\n this.forContainers(allCenter, function () { return _this.createManagedBean(new CenterWidthFeature(function (width) { return _this.comp.setContainerWidth(width + \"px\"); })); });\n this.addListeners();\n this.registerWithCtrlsService();\n };\n RowContainerCtrl.prototype.addListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, function () { return _this.onScrollVisibilityChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, function () { return _this.onDisplayedColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () { return _this.onDisplayedColumnsWidthChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_ROWS_CHANGED, function () { return _this.onDisplayedRowsChanged(); });\n this.onScrollVisibilityChanged();\n this.onDisplayedColumnsChanged();\n this.onDisplayedColumnsWidthChanged();\n this.onDisplayedRowsChanged();\n };\n RowContainerCtrl.prototype.listenOnDomOrder = function () {\n var _this = this;\n var listener = function () { return _this.comp.setDomOrder(_this.gridOptionsWrapper.isEnsureDomOrder()); };\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n listener();\n };\n // when editing a pinned row, if the cell is half outside the scrollable area, the browser can\n // scroll the column into view. we do not want this, the pinned sections should never scroll.\n // so we listen to scrolls on these containers and reset the scroll if we find one.\n RowContainerCtrl.prototype.stopHScrollOnPinnedRows = function () {\n var _this = this;\n this.forContainers([exports.RowContainerName.TOP_CENTER, exports.RowContainerName.BOTTOM_CENTER], function () {\n var resetScrollLeft = function () { return _this.eViewport.scrollLeft = 0; };\n _this.addManagedListener(_this.eViewport, 'scroll', resetScrollLeft);\n });\n };\n RowContainerCtrl.prototype.onDisplayedColumnsChanged = function () {\n var _this = this;\n this.forContainers([exports.RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n RowContainerCtrl.prototype.onDisplayedColumnsWidthChanged = function () {\n var _this = this;\n this.forContainers([exports.RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n RowContainerCtrl.prototype.onScrollVisibilityChanged = function () {\n if (this.name !== exports.RowContainerName.CENTER) {\n return;\n }\n var visible = this.scrollVisibleService.isHorizontalScrollShowing();\n var scrollbarWidth = visible ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;\n var height = scrollbarWidth == 0 ? '100%' : \"calc(100% + \" + scrollbarWidth + \"px)\";\n this.comp.setViewportHeight(height);\n };\n // this methods prevents the grid views from being scrolled while the dragService is being used\n // eg. the view should not scroll up and down while dragging rows using the rowDragComp.\n RowContainerCtrl.prototype.addPreventScrollWhileDragging = function () {\n var _this = this;\n var preventScroll = function (e) {\n if (_this.dragService.isDragging()) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n };\n this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });\n this.addDestroyFunc(function () { return _this.eContainer.removeEventListener('touchmove', preventScroll); });\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)\n RowContainerCtrl.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.getCenterWidth();\n var scrollPosition = this.getCenterViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition);\n };\n RowContainerCtrl.prototype.getCenterWidth = function () {\n return getInnerWidth(this.eViewport);\n };\n RowContainerCtrl.prototype.getCenterViewportScrollLeft = function () {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerCtrl.prototype.registerViewportResizeListener = function (listener) {\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n RowContainerCtrl.prototype.isViewportVisible = function () {\n return isVisible(this.eViewport);\n };\n RowContainerCtrl.prototype.isViewportHScrollShowing = function () {\n return isHorizontalScrollShowing(this.eViewport);\n };\n RowContainerCtrl.prototype.getViewportScrollLeft = function () {\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerCtrl.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();\n return isAlwaysShowHorizontalScroll || isHorizontalScrollShowing(this.eViewport);\n };\n RowContainerCtrl.prototype.getViewportElement = function () {\n return this.eViewport;\n };\n RowContainerCtrl.prototype.setContainerTranslateX = function (amount) {\n this.eContainer.style.transform = \"translateX(\" + amount + \"px)\";\n };\n RowContainerCtrl.prototype.getHScrollPosition = function () {\n var res = {\n left: this.eViewport.scrollLeft,\n right: this.eViewport.scrollLeft + this.eViewport.offsetWidth\n };\n return res;\n };\n RowContainerCtrl.prototype.setCenterViewportScrollLeft = function (value) {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n setScrollLeft(this.eViewport, value, this.enableRtl);\n };\n RowContainerCtrl.prototype.onDisplayedRowsChanged = function () {\n var _this = this;\n var fullWithContainer = this.name === exports.RowContainerName.TOP_FULL_WIDTH\n || this.name === exports.RowContainerName.BOTTOM_FULL_WIDTH\n || this.name === exports.RowContainerName.FULL_WIDTH;\n var doesRowMatch = function (rowCtrl) {\n var fullWidthRow = rowCtrl.isFullWidth();\n var printLayout = _this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var embedFW = _this.embedFullWidthRows || printLayout;\n var match = fullWithContainer ?\n !embedFW && fullWidthRow\n : embedFW || !fullWidthRow;\n return match;\n };\n // this list contains either all pinned top, center or pinned bottom rows\n var allRowsRegardlessOfFullWidth = this.getRowCtrls();\n // this filters out rows not for this container, eg if it's a full with row, but we are not full with container\n var rowsThisContainer = allRowsRegardlessOfFullWidth.filter(doesRowMatch);\n this.comp.setRowCtrls(rowsThisContainer);\n };\n RowContainerCtrl.prototype.getRowCtrls = function () {\n switch (this.name) {\n case exports.RowContainerName.TOP_CENTER:\n case exports.RowContainerName.TOP_LEFT:\n case exports.RowContainerName.TOP_RIGHT:\n case exports.RowContainerName.TOP_FULL_WIDTH:\n return this.rowRenderer.getTopRowCtrls();\n case exports.RowContainerName.BOTTOM_CENTER:\n case exports.RowContainerName.BOTTOM_LEFT:\n case exports.RowContainerName.BOTTOM_RIGHT:\n case exports.RowContainerName.BOTTOM_FULL_WIDTH:\n return this.rowRenderer.getBottomRowCtrls();\n default:\n return this.rowRenderer.getRowCtrls();\n }\n };\n __decorate$W([\n Autowired('scrollVisibleService')\n ], RowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$W([\n Autowired('dragService')\n ], RowContainerCtrl.prototype, \"dragService\", void 0);\n __decorate$W([\n Autowired('ctrlsService')\n ], RowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$W([\n Autowired('columnModel')\n ], RowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$W([\n Autowired('resizeObserverService')\n ], RowContainerCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$W([\n Autowired('rowRenderer')\n ], RowContainerCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$W([\n PostConstruct\n ], RowContainerCtrl.prototype, \"postConstruct\", null);\n return RowContainerCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$18 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GRID_BODY_TEMPLATE = /* html */ \"
\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n
\";\nvar GridBodyComp = /** @class */ (function (_super) {\n __extends$18(GridBodyComp, _super);\n function GridBodyComp() {\n return _super.call(this, GRID_BODY_TEMPLATE) || this;\n }\n GridBodyComp.prototype.init = function () {\n var _this = this;\n var setHeight = function (height, element) {\n var heightString = height + \"px\";\n element.style.minHeight = heightString;\n element.style.height = heightString;\n };\n var compProxy = {\n setRowAnimationCssOnBodyViewport: function (cssClass, animate) { return _this.setRowAnimationCssOnBodyViewport(cssClass, animate); },\n setColumnCount: function (count) { return setAriaColCount(_this.getGui(), count); },\n setRowCount: function (count) { return setAriaRowCount(_this.getGui(), count); },\n setTopHeight: function (height) { return setHeight(height, _this.eTop); },\n setBottomHeight: function (height) { return setHeight(height, _this.eBottom); },\n setTopDisplay: function (display) { return _this.eTop.style.display = display; },\n setBottomDisplay: function (display) { return _this.eBottom.style.display = display; },\n setColumnMovingCss: function (cssClass, flag) { return _this.addOrRemoveCssClass(CSS_CLASS_COLUMN_MOVING, flag); },\n updateLayoutClasses: function (cssClass, params) {\n var bodyViewportClassList = _this.eBodyViewport.classList;\n bodyViewportClassList.toggle(exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n bodyViewportClassList.toggle(exports.LayoutCssClasses.NORMAL, params.normal);\n bodyViewportClassList.toggle(exports.LayoutCssClasses.PRINT, params.print);\n _this.addOrRemoveCssClass(exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n _this.addOrRemoveCssClass(exports.LayoutCssClasses.NORMAL, params.normal);\n _this.addOrRemoveCssClass(exports.LayoutCssClasses.PRINT, params.print);\n },\n setAlwaysVerticalScrollClass: function (cssClass, on) {\n return _this.eBodyViewport.classList.toggle(CSS_CLASS_FORCE_VERTICAL_SCROLL, on);\n },\n registerBodyViewportResizeListener: function (listener) {\n var unsubscribeFromResize = _this.resizeObserverService.observeResize(_this.eBodyViewport, listener);\n _this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n },\n setPinnedTopBottomOverflowY: function (overflow) { return _this.eTop.style.overflowY = _this.eBottom.style.overflowY = overflow; },\n setCellSelectableCss: function (cssClass, selectable) {\n [_this.eTop, _this.eBodyViewport, _this.eBottom]\n .forEach(function (ct) { return ct.classList.toggle(CSS_CLASS_CELL_SELECTABLE, selectable); });\n },\n };\n this.ctrl = this.createManagedBean(new GridBodyCtrl());\n this.ctrl.setComp(compProxy, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom);\n if (this.rangeService || this.gridOptionsWrapper.isRowSelectionMulti()) {\n setAriaMultiSelectable(this.getGui(), true);\n }\n };\n GridBodyComp.prototype.setRowAnimationCssOnBodyViewport = function (cssClass, animateRows) {\n var bodyViewportClassList = this.eBodyViewport.classList;\n bodyViewportClassList.toggle(exports.RowAnimationCssClasses.ANIMATION_ON, animateRows);\n bodyViewportClassList.toggle(exports.RowAnimationCssClasses.ANIMATION_OFF, !animateRows);\n };\n GridBodyComp.prototype.getFloatingTopBottom = function () {\n return [this.eTop, this.eBottom];\n };\n __decorate$X([\n Autowired('resizeObserverService')\n ], GridBodyComp.prototype, \"resizeObserverService\", void 0);\n __decorate$X([\n Optional('rangeService')\n ], GridBodyComp.prototype, \"rangeService\", void 0);\n __decorate$X([\n RefSelector('eBodyViewport')\n ], GridBodyComp.prototype, \"eBodyViewport\", void 0);\n __decorate$X([\n RefSelector('eTop')\n ], GridBodyComp.prototype, \"eTop\", void 0);\n __decorate$X([\n RefSelector('eBottom')\n ], GridBodyComp.prototype, \"eBottom\", void 0);\n __decorate$X([\n RefSelector('gridHeader')\n ], GridBodyComp.prototype, \"headerRootComp\", void 0);\n __decorate$X([\n PostConstruct\n ], GridBodyComp.prototype, \"init\", null);\n return GridBodyComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$19 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ScrollVisibleService = /** @class */ (function (_super) {\n __extends$19(ScrollVisibleService, _super);\n function ScrollVisibleService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScrollVisibleService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n };\n ScrollVisibleService.prototype.onDisplayedColumnsChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.onDisplayedColumnsWidthChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.update = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateImpl();\n setTimeout(this.updateImpl.bind(this), 500);\n };\n ScrollVisibleService.prototype.updateImpl = function () {\n var centerRowCtrl = this.ctrlsService.getCenterRowContainerCtrl();\n if (!centerRowCtrl) {\n return;\n }\n var params = {\n horizontalScrollShowing: centerRowCtrl.isHorizontalScrollShowing(),\n verticalScrollShowing: this.isVerticalScrollShowing()\n };\n this.setScrollsVisible(params);\n };\n ScrollVisibleService.prototype.setScrollsVisible = function (params) {\n var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||\n this.verticalScrollShowing !== params.verticalScrollShowing;\n if (atLeastOneDifferent) {\n this.horizontalScrollShowing = params.horizontalScrollShowing;\n this.verticalScrollShowing = params.verticalScrollShowing;\n var event_1 = {\n type: Events.EVENT_SCROLL_VISIBILITY_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n // used by pagination service - to know page height\n ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {\n return this.horizontalScrollShowing;\n };\n // used by header container\n ScrollVisibleService.prototype.isVerticalScrollShowing = function () {\n return this.verticalScrollShowing;\n };\n __decorate$Y([\n Autowired('columnApi')\n ], ScrollVisibleService.prototype, \"columnApi\", void 0);\n __decorate$Y([\n Autowired('gridApi')\n ], ScrollVisibleService.prototype, \"gridApi\", void 0);\n __decorate$Y([\n Autowired('ctrlsService')\n ], ScrollVisibleService.prototype, \"ctrlsService\", void 0);\n __decorate$Y([\n PostConstruct\n ], ScrollVisibleService.prototype, \"postConstruct\", null);\n ScrollVisibleService = __decorate$Y([\n Bean('scrollVisibleService')\n ], ScrollVisibleService);\n return ScrollVisibleService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MouseEventService = /** @class */ (function (_super) {\n __extends$1a(MouseEventService, _super);\n function MouseEventService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();\n return _this;\n }\n MouseEventService_1 = MouseEventService;\n // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,\n // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic\n // for where this is used.\n MouseEventService.prototype.stampTopLevelGridCompWithGridInstance = function (eGridDiv) {\n eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;\n };\n MouseEventService.prototype.getRenderedCellForEvent = function (event) {\n return getCtrlForEvent(this.gridOptionsWrapper, event, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n };\n // walks the path of the event, and returns true if this grid is the first one that it finds. if doing\n // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste\n // getting executed on many grids at the same time.\n MouseEventService.prototype.isEventFromThisGrid = function (event) {\n var res = this.isElementInThisGrid(event.target);\n return res;\n };\n MouseEventService.prototype.isElementInThisGrid = function (element) {\n var pointer = element;\n while (pointer) {\n var instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];\n if (exists(instanceId)) {\n var eventFromThisGrid = instanceId === this.gridInstanceId;\n return eventFromThisGrid;\n }\n pointer = pointer.parentElement;\n }\n return false;\n };\n MouseEventService.prototype.getCellPositionForEvent = function (event) {\n var cellComp = this.getRenderedCellForEvent(event);\n return cellComp ? cellComp.getCellPosition() : null;\n };\n MouseEventService.prototype.getNormalisedPosition = function (event) {\n var gridPanelHasScrolls = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n var e = event;\n var x;\n var y;\n if (e.clientX != null || e.clientY != null) {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n x = e.x;\n y = e.y;\n }\n if (gridPanelHasScrolls) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var vRange = gridBodyCon.getScrollFeature().getVScrollPosition();\n var hRange = gridBodyCon.getScrollFeature().getHScrollPosition();\n x += hRange.left;\n y += vRange.top;\n }\n return { x: x, y: y };\n };\n var MouseEventService_1;\n MouseEventService.gridInstanceSequence = new NumberSequence();\n MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';\n __decorate$Z([\n Autowired('ctrlsService')\n ], MouseEventService.prototype, \"ctrlsService\", void 0);\n MouseEventService = MouseEventService_1 = __decorate$Z([\n Bean('mouseEventService')\n ], MouseEventService);\n return MouseEventService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$c = (undefined && undefined.__assign) || function () {\n __assign$c = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$c.apply(this, arguments);\n};\nvar __decorate$_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NavigationService = /** @class */ (function (_super) {\n __extends$1b(NavigationService, _super);\n function NavigationService() {\n var _this = _super.call(this) || this;\n _this.onPageDown = throttle(_this.onPageDown, 100);\n _this.onPageUp = throttle(_this.onPageUp, 100);\n return _this;\n }\n NavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCtrl;\n });\n };\n NavigationService.prototype.handlePageScrollingKey = function (event) {\n var key = event.key;\n var alt = event.altKey;\n var ctrl = event.ctrlKey || event.metaKey;\n var rangeServiceShouldHandleShift = !!this.rangeService && event.shiftKey;\n var currentCell = this.mouseEventService.getCellPositionForEvent(event);\n if (!currentCell) {\n return false;\n }\n var processed = false;\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // handle home and end when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onHomeOrEndKey(key);\n processed = true;\n }\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n // handle when ctrl is pressed only, if shift is pressed\n // it will be handled by the rangeService\n if (ctrl && !alt && !rangeServiceShouldHandleShift) {\n this.onCtrlUpDownLeftRight(key, currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_DOWN:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageDown(currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_UP:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageUp(currentCell);\n processed = true;\n }\n break;\n }\n if (processed) {\n event.preventDefault();\n }\n return processed;\n };\n NavigationService.prototype.navigateTo = function (navigateParams) {\n var scrollIndex = navigateParams.scrollIndex, scrollType = navigateParams.scrollType, scrollColumn = navigateParams.scrollColumn, focusIndex = navigateParams.focusIndex, focusColumn = navigateParams.focusColumn;\n if (exists(scrollColumn) && !scrollColumn.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);\n }\n if (exists(scrollIndex)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);\n }\n // make sure the cell is rendered, needed if we are to focus\n this.animationFrameService.flushAllFrames();\n // if we don't do this, the range will be left on the last cell, which will leave the last focused cell\n // highlighted.\n this.focusService.setFocusedCell(focusIndex, focusColumn, null, true);\n if (this.rangeService) {\n var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n NavigationService.prototype.onPageDown = function (gridCell) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var pixelsInOnePage = this.getViewportHeight();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;\n var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageBottomRow);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageBottomRow);\n }\n };\n NavigationService.prototype.onPageUp = function (gridCell) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageTopPixel = scrollPosition.top;\n var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageTopRow, true);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageTopRow, true);\n }\n };\n NavigationService.prototype.navigateToNextPage = function (gridCell, scrollIndex, up) {\n if (up === void 0) { up = false; }\n var _a, _b;\n var pixelsInOnePage = this.getViewportHeight();\n var firstRow = this.paginationProxy.getPageFirstRow();\n var lastRow = this.paginationProxy.getPageLastRow();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);\n var rowPixelDiff = up\n ? (((_a = currentRowNode) === null || _a === void 0 ? void 0 : _a.rowHeight) - pixelsInOnePage - pagingPixelOffset)\n : (pixelsInOnePage - pagingPixelOffset);\n var nextCellPixel = ((_b = currentRowNode) === null || _b === void 0 ? void 0 : _b.rowTop) + rowPixelDiff;\n var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n if (focusIndex === gridCell.rowIndex) {\n var diff = up ? -1 : 1;\n scrollIndex = focusIndex = gridCell.rowIndex + diff;\n }\n var scrollType;\n if (up) {\n scrollType = 'bottom';\n if (focusIndex < firstRow) {\n focusIndex = firstRow;\n }\n if (scrollIndex < firstRow) {\n scrollIndex = firstRow;\n }\n }\n else {\n scrollType = 'top';\n if (focusIndex > lastRow) {\n focusIndex = lastRow;\n }\n if (scrollIndex > lastRow) {\n scrollIndex = lastRow;\n }\n }\n if (this.isRowTallerThanView(focusIndex)) {\n scrollIndex = focusIndex;\n scrollType = 'top';\n }\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: scrollType,\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column\n });\n };\n NavigationService.prototype.navigateToNextPageWithAutoHeight = function (gridCell, scrollIndex, up) {\n var _this = this;\n if (up === void 0) { up = false; }\n // because autoHeight will calculate the height of rows after scroll\n // first we scroll towards the required point, then we add a small\n // delay to allow the height to be recalculated, check which index\n // should be focused and then finally navigate to that index.\n // TODO: we should probably have an event fired once to scrollbar has\n // settled and all rowHeights have been calculated instead of relying\n // on a setTimeout of 50ms.\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: scrollIndex,\n focusColumn: gridCell.column\n });\n setTimeout(function () {\n var focusIndex = _this.getNextFocusIndexForAutoHeight(gridCell, up);\n _this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column\n });\n }, 50);\n };\n NavigationService.prototype.getNextFocusIndexForAutoHeight = function (gridCell, up) {\n if (up === void 0) { up = false; }\n var _a;\n var step = up ? -1 : 1;\n var pixelsInOnePage = this.getViewportHeight();\n var lastRowIndex = this.paginationProxy.getPageLastRow();\n var pixelSum = 0;\n var currentIndex = gridCell.rowIndex;\n while (currentIndex >= 0 && currentIndex <= lastRowIndex) {\n var currentCell = this.paginationProxy.getRow(currentIndex);\n if (currentCell) {\n var currentCellHeight = (_a = currentCell.rowHeight, (_a !== null && _a !== void 0 ? _a : 0));\n if (pixelSum + currentCellHeight > pixelsInOnePage) {\n break;\n }\n pixelSum += currentCellHeight;\n }\n currentIndex += step;\n }\n return Math.max(0, Math.min(currentIndex, lastRowIndex));\n };\n NavigationService.prototype.getViewportHeight = function () {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.ctrlsService.getCenterRowContainerCtrl().isHorizontalScrollShowing()) {\n pixelsInOnePage -= scrollbarWidth;\n }\n return pixelsInOnePage;\n };\n NavigationService.prototype.isRowTallerThanView = function (rowIndex) {\n var rowNode = this.paginationProxy.getRow(rowIndex);\n if (!rowNode) {\n return false;\n }\n var rowHeight = rowNode.rowHeight;\n if (typeof rowHeight !== 'number') {\n return false;\n }\n return rowHeight > this.getViewportHeight();\n };\n NavigationService.prototype.onCtrlUpDownLeftRight = function (key, gridCell) {\n var cellToFocus = this.cellNavigationService.getNextCellToFocus(key, gridCell, true);\n var rowIndex = cellToFocus.rowIndex, column = cellToFocus.column;\n this.navigateTo({\n scrollIndex: rowIndex,\n scrollType: null,\n scrollColumn: column,\n focusIndex: rowIndex,\n focusColumn: column\n });\n };\n // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring\n // same cell into view (which means either scroll all the way up, or all the way down).\n NavigationService.prototype.onHomeOrEndKey = function (key) {\n var homeKey = key === KeyCode.PAGE_HOME;\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var columnToSelect = homeKey ? allColumns[0] : last(allColumns);\n var scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: null,\n scrollColumn: columnToSelect,\n focusIndex: scrollIndex,\n focusColumn: columnToSelect\n });\n };\n // result of keyboard event\n NavigationService.prototype.onTabKeyDown = function (previous, keyboardEvent) {\n var backwards = keyboardEvent.shiftKey;\n var movedToNextCell = this.tabToNextCellCommon(previous, backwards, keyboardEvent);\n if (movedToNextCell) {\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n keyboardEvent.preventDefault();\n return;\n }\n // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going\n // backwards)\n if (backwards) {\n var _a = previous.getRowPosition(), rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;\n var firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();\n if (firstRow) {\n keyboardEvent.preventDefault();\n this.focusService.focusLastHeader(keyboardEvent);\n }\n }\n else {\n // if the case it's a popup editor, the focus is on the editor and not the previous cell.\n // in order for the tab navigation to work, we need to focus the browser back onto the\n // previous cell.\n if (previous instanceof CellCtrl) {\n previous.focusCell(true);\n }\n if (this.focusService.focusNextGridCoreContainer(backwards)) {\n keyboardEvent.preventDefault();\n }\n }\n };\n // comes from API\n NavigationService.prototype.tabToNextCell = function (backwards, event) {\n var focusedCell = this.focusService.getFocusedCell();\n // if no focus, then cannot navigate\n if (!focusedCell) {\n return false;\n }\n var cellOrRow = this.getCellByPosition(focusedCell);\n // if cell is not rendered, means user has scrolled away from the cell\n // or that the focusedCell is a Full Width Row\n if (!cellOrRow) {\n cellOrRow = this.rowRenderer.getRowByPosition(focusedCell);\n if (!cellOrRow || !cellOrRow.isFullWidth()) {\n return false;\n }\n }\n return this.tabToNextCellCommon(cellOrRow, backwards, event);\n };\n NavigationService.prototype.tabToNextCellCommon = function (previous, backwards, event) {\n var editing = previous.isEditing();\n // if cell is not editing, there is still chance row is editing if it's Full Row Editing\n if (!editing && previous instanceof CellCtrl) {\n var cell = previous;\n var row = cell.getRowCtrl();\n if (row) {\n editing = row.isEditing();\n }\n }\n var res;\n if (editing) {\n // if we are editing, we know it's not a Full Width Row (RowComp)\n if (this.gridOptionsWrapper.isFullRowEdit()) {\n res = this.moveToNextEditingRow(previous, backwards, event);\n }\n else {\n res = this.moveToNextEditingCell(previous, backwards, event);\n }\n }\n else {\n res = this.moveToNextCellNotEditing(previous, backwards);\n }\n // if a cell wasn't found, it's possible that focus was moved to the header\n return res || !!this.focusService.getFocusedHeader();\n };\n NavigationService.prototype.moveToNextEditingCell = function (previousCell, backwards, event) {\n if (event === void 0) { event = null; }\n var previousPos = previousCell.getCellPosition();\n // need to do this before getting next cell to edit, in case the next cell\n // has editable function (eg colDef.editable=func() ) and it depends on the\n // result of this cell, so need to save updates from the first edit, in case\n // the value is referenced in the function.\n previousCell.stopEditing();\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n nextCell.startEditing(null, null, true, event);\n nextCell.focusCell(false);\n return true;\n };\n NavigationService.prototype.moveToNextEditingRow = function (previousCell, backwards, event) {\n if (event === void 0) { event = null; }\n var previousPos = previousCell.getCellPosition();\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n var nextPos = nextCell.getCellPosition();\n var previousEditable = this.isCellEditable(previousPos);\n var nextEditable = this.isCellEditable(nextPos);\n var rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;\n if (previousEditable) {\n previousCell.setFocusOutOnEditor();\n }\n if (!rowsMatch) {\n var pRow = previousCell.getRowCtrl();\n pRow.stopEditing();\n var nRow = nextCell.getRowCtrl();\n nRow.startRowEditing(undefined, undefined, undefined, event);\n }\n if (nextEditable) {\n nextCell.setFocusInOnEditor();\n nextCell.focusCell();\n }\n else {\n nextCell.focusCell(true);\n }\n return true;\n };\n NavigationService.prototype.moveToNextCellNotEditing = function (previousCell, backwards) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var cellPos;\n if (previousCell instanceof RowCtrl) {\n cellPos = __assign$c(__assign$c({}, previousCell.getRowPosition()), { column: backwards ? displayedColumns[0] : last(displayedColumns) });\n }\n else {\n cellPos = previousCell.getCellPosition();\n }\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(cellPos, backwards, false);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (nextCell instanceof CellCtrl) {\n nextCell.focusCell(true);\n }\n else if (nextCell) {\n return this.tryToFocusFullWidthRow(nextCell.getRowPosition(), backwards);\n }\n return exists(nextCell);\n };\n // called by the cell, when tab is pressed while editing.\n // @return: RenderedCell when navigation successful, otherwise null\n NavigationService.prototype.findNextCellToFocusOn = function (previousPosition, backwards, startEditing) {\n var nextPosition = previousPosition;\n while (true) {\n if (previousPosition !== nextPosition) {\n previousPosition = nextPosition;\n }\n if (!backwards) {\n nextPosition = this.getLastCellOfColSpan(nextPosition);\n }\n nextPosition = this.cellNavigationService.getNextTabbedCell(nextPosition, backwards);\n // allow user to override what cell to go to next\n var userFunc = this.gridOptionsWrapper.getTabToNextCellFunc();\n if (exists(userFunc)) {\n var params = {\n backwards: backwards,\n editing: startEditing,\n previousCellPosition: previousPosition,\n nextCellPosition: nextPosition ? nextPosition : null\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextPosition = {\n rowIndex: userCell.rowIndex,\n column: userCell.column,\n rowPinned: userCell.rowPinned\n };\n }\n else {\n nextPosition = null;\n }\n }\n // if no 'next cell', means we have got to last cell of grid, so nothing to move to,\n // so bottom right cell going forwards, or top left going backwards\n if (!nextPosition) {\n return null;\n }\n if (nextPosition.rowIndex < 0) {\n var headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: headerLen + (nextPosition.rowIndex),\n column: nextPosition.column\n }\n });\n return null;\n }\n // if editing, but cell not editable, skip cell. we do this before we do all of\n // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping\n // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless\n // (except for the last one) which causes grid to stall for a while.\n // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.\n var fullRowEdit = this.gridOptionsWrapper.isFullRowEdit();\n if (startEditing && !fullRowEdit) {\n var cellIsEditable = this.isCellEditable(nextPosition);\n if (!cellIsEditable) {\n continue;\n }\n }\n this.ensureCellVisible(nextPosition);\n // we have to call this after ensureColumnVisible - otherwise it could be a virtual column\n // or row that is not currently in view, hence the renderedCell would not exist\n var nextCell = this.getCellByPosition(nextPosition);\n // if next cell is fullWidth row, then no rendered cell,\n // as fullWidth rows have no cells, so we skip it\n if (!nextCell) {\n var row = this.rowRenderer.getRowByPosition(nextPosition);\n if (!row || !row.isFullWidth()) {\n continue;\n }\n else {\n return row;\n }\n }\n if (nextCell.isSuppressNavigable()) {\n continue;\n }\n // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation\n // consistent, we set into range here also.\n if (this.rangeService) {\n this.rangeService.setRangeToCell(nextPosition);\n }\n // we successfully tabbed onto a grid cell, so return true\n return nextCell;\n }\n };\n NavigationService.prototype.isCellEditable = function (cell) {\n var rowNode = this.lookupRowNodeForCell(cell);\n if (rowNode) {\n return cell.column.isCellEditable(rowNode);\n }\n return false;\n };\n NavigationService.prototype.getCellByPosition = function (cellPosition) {\n var rowCtrl = this.rowRenderer.getRowByPosition(cellPosition);\n if (!rowCtrl) {\n return null;\n }\n return rowCtrl.getCellCtrl(cellPosition.column);\n };\n NavigationService.prototype.lookupRowNodeForCell = function (cell) {\n if (cell.rowPinned === Constants.PINNED_TOP) {\n return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);\n }\n if (cell.rowPinned === Constants.PINNED_BOTTOM) {\n return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);\n }\n return this.paginationProxy.getRow(cell.rowIndex);\n };\n // we use index for rows, but column object for columns, as the next column (by index) might not\n // be visible (header grouping) so it's not reliable, so using the column object instead.\n NavigationService.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {\n // we keep searching for a next cell until we find one. this is how the group rows get skipped\n var nextCell = currentCell;\n var hitEdgeOfGrid = false;\n while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {\n // if the current cell is spanning across multiple columns, we need to move\n // our current position to be the last cell on the right before finding the\n // the next target.\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (key === KeyCode.LEFT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n }\n else if (key === KeyCode.RIGHT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);\n // eg if going down, and nextCell=undefined, means we are gone past the last row\n hitEdgeOfGrid = missing(nextCell);\n }\n if (hitEdgeOfGrid && event && event.key === KeyCode.UP) {\n nextCell = {\n rowIndex: -1,\n rowPinned: null,\n column: currentCell.column\n };\n }\n // allow user to override what cell to go to next. when doing normal cell navigation (with keys)\n // we allow this, however if processing 'enter after edit' we don't allow override\n if (allowUserOverride) {\n var userFunc = this.gridOptionsWrapper.getNavigateToNextCellFunc();\n if (exists(userFunc)) {\n var params = {\n key: key,\n previousCellPosition: currentCell,\n nextCellPosition: nextCell ? nextCell : null,\n event: event\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowPinned: userCell.rowPinned,\n rowIndex: userCell.rowIndex,\n column: userCell.column\n };\n }\n else {\n nextCell = null;\n }\n }\n }\n // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid\n if (!nextCell) {\n return;\n }\n if (nextCell.rowIndex < 0) {\n var headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column },\n event: event || undefined\n });\n return;\n }\n // in case we have col spanning we get the cellComp and use it to get the\n // position. This was we always focus the first cell inside the spanning.\n var normalisedPosition = this.getNormalisedPosition(nextCell);\n if (normalisedPosition) {\n this.focusPosition(normalisedPosition);\n }\n else {\n this.tryToFocusFullWidthRow(nextCell);\n }\n };\n NavigationService.prototype.getNormalisedPosition = function (cellPosition) {\n // ensureCellVisible first, to make sure cell at position is rendered.\n this.ensureCellVisible(cellPosition);\n var cellComp = this.getCellByPosition(cellPosition);\n // not guaranteed to have a cellComp when using the SSRM as blocks are loading.\n if (!cellComp) {\n return null;\n }\n cellPosition = cellComp.getCellPosition();\n // we call this again, as nextCell can be different to it's previous value due to Column Spanning\n // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the\n // last column in the group, however now it's the first column in the group). if we didn't do\n // ensureCellVisible again, then we could only be showing the last portion (last column) of the\n // merged cells.\n this.ensureCellVisible(cellPosition);\n return cellPosition;\n };\n NavigationService.prototype.tryToFocusFullWidthRow = function (position, backwards) {\n if (backwards === void 0) { backwards = false; }\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var rowComp = this.rowRenderer.getRowByPosition(position);\n if (!rowComp || !rowComp.isFullWidth()) {\n return false;\n }\n var currentCellFocused = this.focusService.getFocusedCell();\n var cellPosition = {\n rowIndex: position.rowIndex,\n rowPinned: position.rowPinned,\n column: position.column || (backwards ? last(displayedColumns) : displayedColumns[0])\n };\n this.focusPosition(cellPosition);\n var fromBelow = currentCellFocused != null ? this.rowPositionUtils.before(cellPosition, currentCellFocused) : false;\n var focusEvent = {\n type: Events.EVENT_FULL_WIDTH_ROW_FOCUSED,\n api: this.gridApi,\n columnApi: this.columnApi,\n rowIndex: cellPosition.rowIndex,\n rowPinned: cellPosition.rowPinned,\n column: cellPosition.column,\n isFullWidthCell: true,\n floating: cellPosition.rowPinned,\n fromBelow: fromBelow\n };\n this.eventService.dispatchEvent(focusEvent);\n return true;\n };\n NavigationService.prototype.focusPosition = function (cellPosition) {\n this.focusService.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);\n if (this.rangeService) {\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n NavigationService.prototype.isValidNavigateCell = function (cell) {\n var rowNode = this.rowPositionUtils.getRowNode(cell);\n // we do not allow focusing on detail rows and full width rows\n return !!rowNode;\n };\n NavigationService.prototype.getLastCellOfColSpan = function (cell) {\n var cellCtrl = this.getCellByPosition(cell);\n if (!cellCtrl) {\n return cell;\n }\n var colSpanningList = cellCtrl.getColSpanningList();\n if (colSpanningList.length === 1) {\n return cell;\n }\n return {\n rowIndex: cell.rowIndex,\n column: last(colSpanningList),\n rowPinned: cell.rowPinned\n };\n };\n NavigationService.prototype.ensureCellVisible = function (gridCell) {\n // this scrolls the row into view\n if (missing(gridCell.rowPinned)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);\n }\n if (!gridCell.column.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);\n }\n // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible\n // floating cell, the scrolls get out of sync\n this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();\n // need to flush frames, to make sure the correct cells are rendered\n this.animationFrameService.flushAllFrames();\n };\n __decorate$_([\n Autowired('columnApi')\n ], NavigationService.prototype, \"columnApi\", void 0);\n __decorate$_([\n Autowired('gridApi')\n ], NavigationService.prototype, \"gridApi\", void 0);\n __decorate$_([\n Autowired('mouseEventService')\n ], NavigationService.prototype, \"mouseEventService\", void 0);\n __decorate$_([\n Autowired('paginationProxy')\n ], NavigationService.prototype, \"paginationProxy\", void 0);\n __decorate$_([\n Autowired('focusService')\n ], NavigationService.prototype, \"focusService\", void 0);\n __decorate$_([\n Autowired('animationFrameService')\n ], NavigationService.prototype, \"animationFrameService\", void 0);\n __decorate$_([\n Optional('rangeService')\n ], NavigationService.prototype, \"rangeService\", void 0);\n __decorate$_([\n Autowired('columnModel')\n ], NavigationService.prototype, \"columnModel\", void 0);\n __decorate$_([\n Autowired('ctrlsService')\n ], NavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$_([\n Autowired('rowRenderer')\n ], NavigationService.prototype, \"rowRenderer\", void 0);\n __decorate$_([\n Autowired('headerNavigationService')\n ], NavigationService.prototype, \"headerNavigationService\", void 0);\n __decorate$_([\n Autowired(\"rowPositionUtils\")\n ], NavigationService.prototype, \"rowPositionUtils\", void 0);\n __decorate$_([\n Autowired(\"cellNavigationService\")\n ], NavigationService.prototype, \"cellNavigationService\", void 0);\n __decorate$_([\n Autowired(\"pinnedRowModel\")\n ], NavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$_([\n PostConstruct\n ], NavigationService.prototype, \"postConstruct\", null);\n NavigationService = __decorate$_([\n Bean('navigationService')\n ], NavigationService);\n return NavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PopupEditorWrapper = /** @class */ (function (_super) {\n __extends$1c(PopupEditorWrapper, _super);\n function PopupEditorWrapper(params) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.params = params;\n return _this;\n }\n PopupEditorWrapper.prototype.postConstruct = function () {\n this.gridOptionsWrapper.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);\n this.addKeyDownListener();\n };\n PopupEditorWrapper.prototype.addKeyDownListener = function () {\n var _this = this;\n var eGui = this.getGui();\n var params = this.params;\n var listener = function (event) {\n if (!isUserSuppressingKeyboardEvent(_this.gridOptionsWrapper, event, params.node, params.column, true)) {\n params.onKeyDown(event);\n }\n };\n this.addManagedListener(eGui, 'keydown', listener);\n };\n PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';\n __decorate$$([\n PostConstruct\n ], PopupEditorWrapper.prototype, \"postConstruct\", null);\n return PopupEditorWrapper;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellComp = /** @class */ (function (_super) {\n __extends$1d(CellComp, _super);\n function CellComp(beans, cellCtrl, printLayout, eRow, editingRow) {\n var _this = _super.call(this) || this;\n // every time we go into edit mode, or back again, this gets incremented.\n // it's the components way of dealing with the async nature of framework components,\n // so if a framework component takes a while to be created, we know if the object\n // is still relevant when creating is finished. eg we could click edit / un-edit 20\n // times before the first React edit component comes back - we should discard\n // the first 19.\n _this.rendererVersion = 0;\n _this.editorVersion = 0;\n _this.beans = beans;\n _this.column = cellCtrl.getColumn();\n _this.rowNode = cellCtrl.getRowNode();\n _this.rowCtrl = cellCtrl.getRowCtrl();\n _this.eRow = eRow;\n _this.setTemplate(/* html */ \"
\");\n var eGui = _this.getGui();\n _this.forceWrapper = cellCtrl.isForceWrapper();\n _this.refreshWrapper(false);\n var setAttribute = function (name, value, element) {\n var actualElement = element ? element : eGui;\n if (value != null && value != '') {\n actualElement.setAttribute(name, value);\n }\n else {\n actualElement.removeAttribute(name);\n }\n };\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setUserStyles: function (styles) { return addStylesToElement(eGui, styles); },\n getFocusableElement: function () { return _this.getFocusableElement(); },\n setTabIndex: function (tabIndex) { return setAttribute('tabindex', tabIndex.toString()); },\n setRole: function (role) { return setAriaRole(eGui, role); },\n setColId: function (colId) { return setAttribute('col-id', colId); },\n setTitle: function (title) { return setAttribute('title', title); },\n setIncludeSelection: function (include) { return _this.includeSelection = include; },\n setIncludeRowDrag: function (include) { return _this.includeRowDrag = include; },\n setIncludeDndSource: function (include) { return _this.includeDndSource = include; },\n setRenderDetails: function (compDetails, valueToDisplay, force) {\n return _this.setRenderDetails(compDetails, valueToDisplay, force);\n },\n setEditDetails: function (compDetails, popup, position) {\n return _this.setEditDetails(compDetails, popup, position);\n },\n getCellEditor: function () { return _this.cellEditor || null; },\n getCellRenderer: function () { return _this.cellRenderer || null; },\n getParentOfValue: function () { return _this.getParentOfValue(); }\n };\n _this.cellCtrl = cellCtrl;\n cellCtrl.setComp(compProxy, _this.getGui(), _this.eCellWrapper, printLayout, editingRow);\n return _this;\n }\n CellComp.prototype.getParentOfValue = function () {\n if (this.eCellValue) {\n // if not editing, and using wrapper, then value goes in eCellValue\n return this.eCellValue;\n }\n if (this.eCellWrapper) {\n // if editing, and using wrapper, value (cell editor) goes in eCellWrapper\n return this.eCellWrapper;\n }\n // if editing or rendering, and not using wrapper, value (or comp) is directly inside cell\n return this.getGui();\n };\n CellComp.prototype.setRenderDetails = function (compDetails, valueToDisplay, forceNewCellRendererInstance) {\n // this can happen if the users asks for the cell to refresh, but we are not showing the vale as we are editing\n var isInlineEditing = this.cellEditor && !this.cellEditorPopupWrapper;\n if (isInlineEditing) {\n return;\n }\n // this means firstRender will be true for one pass only, as it's initialised to undefined\n this.firstRender = this.firstRender == null;\n // if display template has changed, means any previous Cell Renderer is in the wrong location\n var controlWrapperChanged = this.refreshWrapper(false);\n // all of these have dependencies on the eGui, so only do them after eGui is set\n if (compDetails) {\n var neverRefresh = forceNewCellRendererInstance || controlWrapperChanged;\n var cellRendererRefreshSuccessful = neverRefresh ? false : this.refreshCellRenderer(compDetails);\n if (!cellRendererRefreshSuccessful) {\n this.destroyRenderer();\n this.createCellRendererInstance(compDetails);\n }\n }\n else {\n this.destroyRenderer();\n this.insertValueWithoutCellRenderer(valueToDisplay);\n }\n };\n CellComp.prototype.setEditDetails = function (compDetails, popup, position) {\n if (compDetails) {\n this.createCellEditorInstance(compDetails, popup, position);\n }\n else {\n this.destroyEditor();\n }\n };\n CellComp.prototype.removeControls = function () {\n this.checkboxSelectionComp = this.beans.context.destroyBean(this.checkboxSelectionComp);\n this.dndSourceComp = this.beans.context.destroyBean(this.dndSourceComp);\n this.rowDraggingComp = this.beans.context.destroyBean(this.rowDraggingComp);\n };\n // returns true if wrapper was changed\n CellComp.prototype.refreshWrapper = function (editing) {\n var providingControls = this.includeRowDrag || this.includeDndSource || this.includeSelection;\n var usingWrapper = providingControls || this.forceWrapper;\n var putWrapperIn = usingWrapper && this.eCellWrapper == null;\n if (putWrapperIn) {\n this.eCellWrapper = loadTemplate(\"
\");\n this.getGui().appendChild(this.eCellWrapper);\n }\n var takeWrapperOut = !usingWrapper && this.eCellWrapper != null;\n if (takeWrapperOut) {\n removeFromParent(this.eCellWrapper);\n this.eCellWrapper = undefined;\n }\n this.addOrRemoveCssClass('ag-cell-value', !usingWrapper);\n var usingCellValue = !editing && usingWrapper;\n var putCellValueIn = usingCellValue && this.eCellValue == null;\n if (putCellValueIn) {\n this.eCellValue = loadTemplate(\"\");\n this.eCellWrapper.appendChild(this.eCellValue);\n }\n var takeCellValueOut = !usingCellValue && this.eCellValue != null;\n if (takeCellValueOut) {\n removeFromParent(this.eCellValue);\n this.eCellValue = undefined;\n }\n var templateChanged = putWrapperIn || takeWrapperOut || putCellValueIn || takeCellValueOut;\n if (templateChanged) {\n this.removeControls();\n }\n if (!editing && providingControls) {\n this.addControls();\n }\n return templateChanged;\n };\n CellComp.prototype.addControls = function () {\n var id = this.eCellValue.id = \"cell-\" + this.getCompId();\n var describedByIds = [];\n if (this.includeRowDrag) {\n if (this.rowDraggingComp == null) {\n this.rowDraggingComp = this.cellCtrl.createRowDragComp();\n if (this.rowDraggingComp) {\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);\n }\n }\n }\n if (this.includeDndSource) {\n if (this.dndSourceComp == null) {\n this.dndSourceComp = this.cellCtrl.createDndSource();\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.dndSourceComp.getGui(), this.eCellValue);\n }\n }\n if (this.includeSelection) {\n if (this.checkboxSelectionComp == null) {\n this.checkboxSelectionComp = this.cellCtrl.createSelectionCheckbox();\n this.eCellWrapper.insertBefore(this.checkboxSelectionComp.getGui(), this.eCellValue);\n }\n describedByIds.push(this.checkboxSelectionComp.getCheckboxId());\n }\n describedByIds.push(id);\n setAriaDescribedBy(this.getGui(), describedByIds.join(' '));\n };\n CellComp.prototype.createCellEditorInstance = function (compDetails, popup, position) {\n var _this = this;\n var versionCopy = this.editorVersion;\n var cellEditorPromise = compDetails.newAgStackInstance();\n if (!cellEditorPromise) {\n return;\n } // if empty, userComponentFactory already did a console message\n var params = compDetails.params;\n cellEditorPromise.then(function (c) { return _this.afterCellEditorCreated(versionCopy, c, params, popup, position); });\n // if we don't do this, and editor component is async, then there will be a period\n // when the component isn't present and keyboard navigation won't work - so example\n // of user hitting tab quickly (more quickly than renderers getting created) won't work\n var cellEditorAsync = missing(this.cellEditor);\n if (cellEditorAsync && params.cellStartedEdit) {\n this.cellCtrl.focusCell(true);\n }\n };\n CellComp.prototype.insertValueWithoutCellRenderer = function (valueToDisplay) {\n var eParent = this.getParentOfValue();\n clearElement(eParent);\n var escapedValue = valueToDisplay != null ? escapeString(valueToDisplay) : null;\n if (escapedValue != null) {\n eParent.innerHTML = escapedValue;\n }\n };\n CellComp.prototype.destroyEditorAndRenderer = function () {\n this.destroyRenderer();\n this.destroyEditor();\n };\n CellComp.prototype.destroyRenderer = function () {\n var context = this.beans.context;\n this.cellRenderer = context.destroyBean(this.cellRenderer);\n removeFromParent(this.cellRendererGui);\n this.cellRendererGui = null;\n this.rendererVersion++;\n };\n CellComp.prototype.destroyEditor = function () {\n var context = this.beans.context;\n if (this.hideEditorPopup) {\n this.hideEditorPopup();\n }\n this.hideEditorPopup = undefined;\n this.cellEditor = context.destroyBean(this.cellEditor);\n this.cellEditorPopupWrapper = context.destroyBean(this.cellEditorPopupWrapper);\n removeFromParent(this.cellEditorGui);\n this.cellEditorGui = null;\n this.editorVersion++;\n };\n CellComp.prototype.refreshCellRenderer = function (compClassAndParams) {\n if (this.cellRenderer == null || this.cellRenderer.refresh == null) {\n return false;\n }\n // if different Cell Renderer configured this time (eg user is using selector, and\n // returns different component) then don't refresh, force recreate of Cell Renderer\n if (this.cellRendererClass !== compClassAndParams.componentClass) {\n return false;\n }\n // take any custom params off of the user\n var result = this.cellRenderer.refresh(compClassAndParams.params);\n // NOTE on undefined: previous version of the cellRenderer.refresh() interface\n // returned nothing, if the method existed, we assumed it refreshed. so for\n // backwards compatibility, we assume if method exists and returns nothing,\n // that it was successful.\n return result === true || result === undefined;\n };\n CellComp.prototype.createCellRendererInstance = function (compDetails) {\n var _this = this;\n // never use task service if angularCompileRows=true, as that assume the cell renderers\n // are finished when the row is created. also we never use it if animation frame service\n // is turned off.\n // and lastly we never use it if doing auto-height, as the auto-height service checks the\n // row height directly after the cell is created, it doesn't wait around for the tasks to complete\n var angularCompileRows = this.beans.gridOptionsWrapper.isAngularCompileRows();\n var suppressAnimationFrame = this.beans.gridOptionsWrapper.isSuppressAnimationFrame();\n var useTaskService = !angularCompileRows && !suppressAnimationFrame;\n var displayComponentVersionCopy = this.rendererVersion;\n var componentClass = compDetails.componentClass;\n var createCellRendererFunc = function () {\n var staleTask = _this.rendererVersion !== displayComponentVersionCopy || !_this.isAlive();\n if (staleTask) {\n return;\n }\n // this can return null in the event that the user has switched from a renderer component to nothing, for example\n // when using a cellRendererSelect to return a component or null depending on row data etc\n var componentPromise = compDetails.newAgStackInstance();\n var callback = _this.afterCellRendererCreated.bind(_this, displayComponentVersionCopy, componentClass);\n if (componentPromise) {\n componentPromise.then(callback);\n }\n };\n // we only use task service when rendering for first time, which means it is not used when doing edits.\n // if we changed this (always use task service) would make sense, however it would break tests, possibly\n // test of users.\n if (useTaskService && this.firstRender) {\n this.beans.animationFrameService.createTask(createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n createCellRendererFunc();\n }\n };\n CellComp.prototype.getCtrl = function () {\n return this.cellCtrl;\n };\n CellComp.prototype.getRowCtrl = function () {\n return this.rowCtrl;\n };\n CellComp.prototype.getCellRenderer = function () {\n return this.cellRenderer;\n };\n CellComp.prototype.getCellEditor = function () {\n return this.cellEditor;\n };\n CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRendererClass, cellRenderer) {\n var staleTask = !this.isAlive() || cellRendererVersion !== this.rendererVersion;\n if (staleTask) {\n this.beans.context.destroyBean(cellRenderer);\n return;\n }\n this.cellRenderer = cellRenderer;\n this.cellRendererClass = cellRendererClass;\n this.cellRendererGui = this.cellRenderer.getGui();\n if (this.cellRendererGui != null) {\n var eParent = this.getParentOfValue();\n clearElement(eParent);\n eParent.appendChild(this.cellRendererGui);\n }\n };\n CellComp.prototype.afterCellEditorCreated = function (requestVersion, cellEditor, params, popup, position) {\n // if editingCell=false, means user cancelled the editor before component was ready.\n // if versionMismatch, then user cancelled the edit, then started the edit again, and this\n // is the first editor which is now stale.\n var staleComp = requestVersion !== this.editorVersion;\n if (staleComp) {\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();\n if (editingCancelledByUserComp) {\n this.beans.context.destroyBean(cellEditor);\n this.cellCtrl.stopEditing();\n return;\n }\n if (!cellEditor.getGui) {\n console.warn(\"AG Grid: cellEditor for column \" + this.column.getId() + \" is missing getGui() method\");\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n this.cellEditor = cellEditor;\n this.cellEditorGui = cellEditor.getGui();\n var cellEditorInPopup = popup || (cellEditor.isPopup !== undefined && cellEditor.isPopup());\n if (cellEditorInPopup) {\n if (!popup) {\n this.cellCtrl.hackSayEditingInPopup();\n }\n this.addPopupCellEditor(params, position);\n }\n else {\n this.addInCellEditor();\n }\n if (cellEditor.afterGuiAttached) {\n cellEditor.afterGuiAttached();\n }\n };\n CellComp.prototype.addInCellEditor = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n var eDocument = this.beans.gridOptionsWrapper.getDocument();\n if (eGui.contains(eDocument.activeElement)) {\n eGui.focus();\n }\n this.destroyRenderer();\n this.refreshWrapper(true);\n this.clearParentOfValue();\n if (this.cellEditorGui) {\n var eParent = this.getParentOfValue();\n eParent.appendChild(this.cellEditorGui);\n }\n };\n CellComp.prototype.addPopupCellEditor = function (params, position) {\n var _this = this;\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +\n '- either turn off fullRowEdit, or stop using popup editors.');\n }\n var cellEditor = this.cellEditor;\n // if a popup, then we wrap in a popup editor and return the popup\n this.cellEditorPopupWrapper = this.beans.context.createBean(new PopupEditorWrapper(params));\n var ePopupGui = this.cellEditorPopupWrapper.getGui();\n if (this.cellEditorGui) {\n ePopupGui.appendChild(this.cellEditorGui);\n }\n var popupService = this.beans.popupService;\n var useModelPopup = this.beans.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus();\n // see if position provided by colDef, if not then check old way of method on cellComp\n var positionToUse = position != null ? position : cellEditor.getPopupPosition ? cellEditor.getPopupPosition() : 'over';\n var positionParams = {\n column: this.column,\n rowNode: this.rowNode,\n type: 'popupCellEditor',\n eventSource: this.getGui(),\n ePopup: ePopupGui,\n keepWithinBounds: true\n };\n var positionCallback = positionToUse === 'under' ?\n popupService.positionPopupUnderComponent.bind(popupService, positionParams)\n : popupService.positionPopupOverComponent.bind(popupService, positionParams);\n var translate = this.beans.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = popupService.addPopup({\n modal: useModelPopup,\n eChild: ePopupGui,\n closeOnEsc: true,\n closedCallback: function () { _this.cellCtrl.onPopupEditorClosed(); },\n anchorToElement: this.getGui(),\n positionCallback: positionCallback,\n ariaLabel: translate('ariaLabelCellEditor', 'Cell Editor')\n });\n if (addPopupRes) {\n this.hideEditorPopup = addPopupRes.hideFunc;\n }\n };\n CellComp.prototype.detach = function () {\n this.eRow.removeChild(this.getGui());\n };\n // if the row is also getting destroyed, then we don't need to remove from dom,\n // as the row will also get removed, so no need to take out the cells from the row\n // if the row is going (removing is an expensive operation, so only need to remove\n // the top part)\n //\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n CellComp.prototype.destroy = function () {\n this.cellCtrl.stopEditing();\n this.destroyEditorAndRenderer();\n this.removeControls();\n _super.prototype.destroy.call(this);\n };\n CellComp.prototype.clearParentOfValue = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n var eDocument = this.beans.gridOptionsWrapper.getDocument();\n if (eGui.contains(eDocument.activeElement)) {\n eGui.focus({\n preventScroll: true\n });\n }\n clearElement(this.getParentOfValue());\n };\n return CellComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RowComp = /** @class */ (function (_super) {\n __extends$1e(RowComp, _super);\n function RowComp(ctrl, beans, containerType) {\n var _this = _super.call(this) || this;\n _this.cellComps = {};\n _this.beans = beans;\n _this.rowCtrl = ctrl;\n _this.setTemplate(/* html */ \"
\");\n var eGui = _this.getGui();\n var style = eGui.style;\n var compProxy = {\n setDomOrder: function (domOrder) { return _this.domOrder = domOrder; },\n setCellCtrls: function (cellCtrls) { return _this.setCellCtrls(cellCtrls); },\n showFullWidth: function (compDetails) { return _this.showFullWidth(compDetails); },\n getFullWidthCellRenderer: function () { return _this.getFullWidthCellRenderer(); },\n addOrRemoveCssClass: function (name, on) { return _this.addOrRemoveCssClass(name, on); },\n setUserStyles: function (styles) { return addStylesToElement(eGui, styles); },\n setTop: function (top) { return style.top = top; },\n setTransform: function (transform) { return style.transform = transform; },\n setRowIndex: function (rowIndex) { return eGui.setAttribute('row-index', rowIndex); },\n setRole: function (role) { return setAriaRole(eGui, role); },\n setRowId: function (rowId) { return eGui.setAttribute('row-id', rowId); },\n setRowBusinessKey: function (businessKey) { return eGui.setAttribute('row-business-key', businessKey); },\n setTabIndex: function (tabIndex) { return eGui.setAttribute('tabindex', tabIndex.toString()); }\n };\n ctrl.setComp(compProxy, _this.getGui(), containerType);\n return _this;\n }\n RowComp.prototype.getInitialStyle = function () {\n var transform = this.rowCtrl.getInitialTransform();\n var top = this.rowCtrl.getInitialRowTop();\n return transform ? \"transform: \" + transform : \"top: \" + top;\n };\n RowComp.prototype.showFullWidth = function (compDetails) {\n var _this = this;\n var callback = function (cellRenderer) {\n if (_this.isAlive()) {\n var eGui = cellRenderer.getGui();\n _this.getGui().appendChild(eGui);\n _this.rowCtrl.setupDetailRowAutoHeight(eGui);\n _this.setFullWidthRowComp(cellRenderer);\n }\n else {\n _this.beans.context.destroyBean(cellRenderer);\n }\n };\n // if not in cache, create new one\n var res = compDetails.newAgStackInstance();\n if (!res) {\n return;\n }\n res.then(callback);\n };\n RowComp.prototype.setCellCtrls = function (cellCtrls) {\n var _this = this;\n var cellsToRemove = Object.assign({}, this.cellComps);\n cellCtrls.forEach(function (cellCtrl) {\n var key = cellCtrl.getInstanceId();\n var existingCellComp = _this.cellComps[key];\n if (existingCellComp == null) {\n _this.newCellComp(cellCtrl);\n }\n else {\n cellsToRemove[key] = null;\n }\n });\n var cellCompsToRemove = getAllValuesInObject(cellsToRemove)\n .filter(function (cellComp) { return cellComp != null; });\n this.destroyCells(cellCompsToRemove);\n this.ensureDomOrder(cellCtrls);\n };\n RowComp.prototype.ensureDomOrder = function (cellCtrls) {\n var _this = this;\n if (!this.domOrder) {\n return;\n }\n var elementsInOrder = [];\n cellCtrls.forEach(function (cellCtrl) {\n var cellComp = _this.cellComps[cellCtrl.getInstanceId()];\n if (cellComp) {\n elementsInOrder.push(cellComp.getGui());\n }\n });\n setDomChildOrder(this.getGui(), elementsInOrder);\n };\n RowComp.prototype.newCellComp = function (cellCtrl) {\n var cellComp = new CellComp(this.beans, cellCtrl, this.rowCtrl.isPrintLayout(), this.getGui(), this.rowCtrl.isEditing());\n this.cellComps[cellCtrl.getInstanceId()] = cellComp;\n this.getGui().appendChild(cellComp.getGui());\n };\n RowComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.destroyAllCells();\n };\n RowComp.prototype.destroyAllCells = function () {\n var cellsToDestroy = getAllValuesInObject(this.cellComps).filter(function (cp) { return cp != null; });\n this.destroyCells(cellsToDestroy);\n };\n RowComp.prototype.setFullWidthRowComp = function (fullWidthRowComponent) {\n var _this = this;\n if (this.fullWidthCellRenderer) {\n console.error('AG Grid - should not be setting fullWidthRowComponent twice');\n }\n this.fullWidthCellRenderer = fullWidthRowComponent;\n this.addDestroyFunc(function () {\n _this.fullWidthCellRenderer = _this.beans.context.destroyBean(_this.fullWidthCellRenderer);\n });\n };\n RowComp.prototype.getFullWidthCellRenderer = function () {\n return this.fullWidthCellRenderer;\n };\n RowComp.prototype.destroyCells = function (cellComps) {\n var _this = this;\n cellComps.forEach(function (cellComp) {\n // could be old reference, ie removed cell\n if (!cellComp) {\n return;\n }\n // check cellComp belongs in this container\n var instanceId = cellComp.getCtrl().getInstanceId();\n if (_this.cellComps[instanceId] !== cellComp) {\n return;\n }\n cellComp.detach();\n cellComp.destroy();\n _this.cellComps[instanceId] = null;\n });\n };\n return RowComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$d = (undefined && undefined.__assign) || function () {\n __assign$d = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$d.apply(this, arguments);\n};\nvar __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction templateFactory() {\n var name = Component.elementGettingCreated.getAttribute('name');\n var cssClasses = RowContainerCtrl.getRowContainerCssClasses(name);\n var res;\n var template1 = name === exports.RowContainerName.CENTER;\n var template2 = name === exports.RowContainerName.TOP_CENTER || name === exports.RowContainerName.BOTTOM_CENTER;\n if (template1) {\n res = /* html */\n \"
\\n
\\n
\\n
\\n
\";\n }\n else if (template2) {\n res = /* html */\n \"
\\n
\\n
\";\n }\n else {\n res = /* html */\n \"
\";\n }\n return res;\n}\nvar RowContainerComp = /** @class */ (function (_super) {\n __extends$1f(RowContainerComp, _super);\n function RowContainerComp() {\n var _this = _super.call(this, templateFactory()) || this;\n _this.rowComps = {};\n _this.name = Component.elementGettingCreated.getAttribute('name');\n _this.type = getRowContainerTypeForName(_this.name);\n return _this;\n }\n RowContainerComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n setViewportHeight: function (height) { return _this.eViewport.style.height = height; },\n setRowCtrls: function (rowCtrls) { return _this.setRowCtrls(rowCtrls); },\n setDomOrder: function (domOrder) {\n _this.domOrder = domOrder;\n },\n setContainerWidth: function (width) { return _this.eContainer.style.width = width; }\n };\n var ctrl = this.createManagedBean(new RowContainerCtrl(this.name));\n ctrl.setComp(compProxy, this.eContainer, this.eViewport, this.eWrapper);\n };\n RowContainerComp.prototype.preDestroy = function () {\n // destroys all row comps\n this.setRowCtrls([]);\n };\n RowContainerComp.prototype.setRowCtrls = function (rowCtrls) {\n var _this = this;\n var oldRows = __assign$d({}, this.rowComps);\n this.rowComps = {};\n this.lastPlacedElement = null;\n var processRow = function (rowCon) {\n var instanceId = rowCon.getInstanceId();\n var existingRowComp = oldRows[instanceId];\n if (existingRowComp) {\n _this.rowComps[instanceId] = existingRowComp;\n delete oldRows[instanceId];\n _this.ensureDomOrder(existingRowComp.getGui());\n }\n else {\n var rowComp = _this.newRowComp(rowCon);\n _this.rowComps[instanceId] = rowComp;\n _this.appendRow(rowComp.getGui());\n }\n };\n rowCtrls.forEach(processRow);\n getAllValuesInObject(oldRows).forEach(function (oldRowComp) {\n _this.eContainer.removeChild(oldRowComp.getGui());\n oldRowComp.destroy();\n });\n setAriaRole(this.eContainer, rowCtrls.length ? \"rowgroup\" : \"presentation\");\n };\n RowContainerComp.prototype.appendRow = function (element) {\n if (this.domOrder) {\n insertWithDomOrder(this.eContainer, element, this.lastPlacedElement);\n }\n else {\n this.eContainer.appendChild(element);\n }\n this.lastPlacedElement = element;\n };\n RowContainerComp.prototype.ensureDomOrder = function (eRow) {\n if (this.domOrder) {\n ensureDomOrder(this.eContainer, eRow, this.lastPlacedElement);\n this.lastPlacedElement = eRow;\n }\n };\n RowContainerComp.prototype.newRowComp = function (rowCtrl) {\n var pinned = RowContainerCtrl.getPinned(this.name);\n var res = new RowComp(rowCtrl, this.beans, this.type);\n return res;\n };\n __decorate$10([\n Autowired('beans')\n ], RowContainerComp.prototype, \"beans\", void 0);\n __decorate$10([\n RefSelector('eViewport')\n ], RowContainerComp.prototype, \"eViewport\", void 0);\n __decorate$10([\n RefSelector('eContainer')\n ], RowContainerComp.prototype, \"eContainer\", void 0);\n __decorate$10([\n RefSelector('eWrapper')\n ], RowContainerComp.prototype, \"eWrapper\", void 0);\n __decorate$10([\n PostConstruct\n ], RowContainerComp.prototype, \"postConstruct\", null);\n __decorate$10([\n PreDestroy\n ], RowContainerComp.prototype, \"preDestroy\", null);\n return RowContainerComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BodyDropPivotTarget = /** @class */ (function () {\n function BodyDropPivotTarget(pinned) {\n this.columnsToAggregate = [];\n this.columnsToGroup = [];\n this.columnsToPivot = [];\n this.pinned = pinned;\n }\n /** Callback for when drag enters */\n BodyDropPivotTarget.prototype.onDragEnter = function (draggingEvent) {\n var _this = this;\n this.clearColumnsList();\n // in pivot mode, we don't accept any drops if functions are read only\n if (this.gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var dragColumns = draggingEvent.dragItem.columns;\n if (!dragColumns) {\n return;\n }\n dragColumns.forEach(function (column) {\n // we don't allow adding secondary columns\n if (!column.isPrimary()) {\n return;\n }\n if (column.isAnyFunctionActive()) {\n return;\n }\n if (column.isAllowValue()) {\n _this.columnsToAggregate.push(column);\n }\n else if (column.isAllowRowGroup()) {\n _this.columnsToGroup.push(column);\n }\n else if (column.isAllowPivot()) {\n _this.columnsToPivot.push(column);\n }\n });\n };\n BodyDropPivotTarget.prototype.getIconName = function () {\n var totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;\n if (totalColumns > 0) {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n }\n return null;\n };\n /** Callback for when drag leaves */\n BodyDropPivotTarget.prototype.onDragLeave = function (draggingEvent) {\n // if we are taking columns out of the center, then we remove them from the report\n this.clearColumnsList();\n };\n BodyDropPivotTarget.prototype.clearColumnsList = function () {\n this.columnsToAggregate.length = 0;\n this.columnsToGroup.length = 0;\n this.columnsToPivot.length = 0;\n };\n /** Callback for when dragging */\n BodyDropPivotTarget.prototype.onDragging = function (draggingEvent) {\n };\n /** Callback for when drag stops */\n BodyDropPivotTarget.prototype.onDragStop = function (draggingEvent) {\n if (this.columnsToAggregate.length > 0) {\n this.columnModel.addValueColumns(this.columnsToAggregate, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToGroup.length > 0) {\n this.columnModel.addRowGroupColumns(this.columnsToGroup, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToPivot.length > 0) {\n this.columnModel.addPivotColumns(this.columnsToPivot, \"toolPanelDragAndDrop\");\n }\n };\n __decorate$11([\n Autowired('columnModel')\n ], BodyDropPivotTarget.prototype, \"columnModel\", void 0);\n __decorate$11([\n Autowired('gridOptionsWrapper')\n ], BodyDropPivotTarget.prototype, \"gridOptionsWrapper\", void 0);\n return BodyDropPivotTarget;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MoveColumnFeature = /** @class */ (function () {\n function MoveColumnFeature(pinned, eContainer) {\n this.needToMoveLeft = false;\n this.needToMoveRight = false;\n this.pinned = pinned;\n this.eContainer = eContainer;\n this.centerContainer = !exists(pinned);\n }\n MoveColumnFeature.prototype.init = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n MoveColumnFeature.prototype.getIconName = function () {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n };\n MoveColumnFeature.prototype.onDragEnter = function (draggingEvent) {\n // we do dummy drag, so make sure column appears in the right location when first placed\n var columns = draggingEvent.dragItem.columns;\n var dragCameFromToolPanel = draggingEvent.dragSource.type === exports.DragSourceType.ToolPanel;\n if (dragCameFromToolPanel) {\n // the if statement doesn't work if drag leaves grid, then enters again\n this.setColumnsVisible(columns, true, \"uiColumnDragged\");\n }\n else {\n // restore previous state of visible columns upon re-entering. this means if the user drags\n // a group out, and then drags the group back in, only columns that were originally visible\n // will be visible again. otherwise a group with three columns (but only two visible) could\n // be dragged out, then when it's dragged in again, all three are visible. this stops that.\n var visibleState_1 = draggingEvent.dragItem.visibleState;\n var visibleColumns = (columns || []).filter(function (column) { return visibleState_1[column.getId()]; });\n this.setColumnsVisible(visibleColumns, true, \"uiColumnDragged\");\n }\n this.setColumnsPinned(columns, this.pinned, \"uiColumnDragged\");\n this.onDragging(draggingEvent, true);\n };\n MoveColumnFeature.prototype.onDragLeave = function (draggingEvent) {\n var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns() && !draggingEvent.fromNudge;\n if (hideColumnOnExit) {\n var dragItem = draggingEvent.dragSource.getDragItem();\n var columns = dragItem.columns;\n this.setColumnsVisible(columns, false, \"uiColumnDragged\");\n }\n this.ensureIntervalCleared();\n };\n MoveColumnFeature.prototype.setColumnsVisible = function (columns, visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });\n this.columnModel.setColumnsVisible(allowedCols, visible, source);\n }\n };\n MoveColumnFeature.prototype.setColumnsPinned = function (columns, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n this.columnModel.setColumnsPinned(allowedCols, pinned, source);\n }\n };\n MoveColumnFeature.prototype.onDragStop = function () {\n this.ensureIntervalCleared();\n };\n MoveColumnFeature.prototype.normaliseX = function (x) {\n // flip the coordinate if doing RTL\n if (this.gridOptionsWrapper.isEnableRtl()) {\n var clientWidth = this.eContainer.clientWidth;\n x = clientWidth - x;\n }\n // adjust for scroll only if centre container (the pinned containers don't scroll)\n if (this.centerContainer) {\n x += this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n }\n return x;\n };\n MoveColumnFeature.prototype.checkCenterForScrolling = function (xAdjustedForScroll) {\n if (this.centerContainer) {\n // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)\n // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen\n var firstVisiblePixel = this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n var lastVisiblePixel = firstVisiblePixel + this.ctrlsService.getCenterRowContainerCtrl().getCenterWidth();\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n else {\n this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n if (this.needToMoveLeft || this.needToMoveRight) {\n this.ensureIntervalStarted();\n }\n else {\n this.ensureIntervalCleared();\n }\n }\n };\n MoveColumnFeature.prototype.onDragging = function (draggingEvent, fromEnter) {\n var _this = this;\n if (fromEnter === void 0) { fromEnter = false; }\n this.lastDraggingEvent = draggingEvent;\n // if moving up or down (ie not left or right) then do nothing\n if (missing(draggingEvent.hDirection)) {\n return;\n }\n var mouseXNormalised = this.normaliseX(draggingEvent.x);\n // if the user is dragging into the panel, ie coming from the side panel into the main grid,\n // we don't want to scroll the grid this time, it would appear like the table is jumping\n // each time a column is dragged in.\n if (!fromEnter) {\n this.checkCenterForScrolling(mouseXNormalised);\n }\n var hDirectionNormalised = this.normaliseDirection(draggingEvent.hDirection);\n var dragSourceType = draggingEvent.dragSource.type;\n var columnsToMove = draggingEvent.dragSource.getDragItem().columns;\n columnsToMove = columnsToMove.filter(function (col) {\n if (col.getColDef().lockPinned) {\n // if locked return true only if both col and container are same pin type.\n // double equals (==) here on purpose so that null==undefined is true (for not pinned options)\n return col.getPinned() == _this.pinned;\n }\n // if not pin locked, then always allowed to be in this container\n return true;\n });\n this.attemptMoveColumns(dragSourceType, columnsToMove, hDirectionNormalised, mouseXNormalised, fromEnter);\n };\n MoveColumnFeature.prototype.normaliseDirection = function (hDirection) {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n switch (hDirection) {\n case exports.HorizontalDirection.Left: return exports.HorizontalDirection.Right;\n case exports.HorizontalDirection.Right: return exports.HorizontalDirection.Left;\n default: console.error(\"AG Grid: Unknown direction \" + hDirection);\n }\n }\n else {\n return hDirection;\n }\n };\n // returns the index of the first column in the list ONLY if the cols are all beside\n // each other. if the cols are not beside each other, then returns null\n MoveColumnFeature.prototype.calculateOldIndex = function (movingCols) {\n var gridCols = this.columnModel.getAllGridColumns();\n var indexes = sortNumerically(movingCols.map(function (col) { return gridCols.indexOf(col); }));\n var firstIndex = indexes[0];\n var lastIndex = last(indexes);\n var spread = lastIndex - firstIndex;\n var gapsExist = spread !== indexes.length - 1;\n return gapsExist ? null : firstIndex;\n };\n MoveColumnFeature.prototype.attemptMoveColumns = function (dragSourceType, allMovingColumns, hDirection, mouseX, fromEnter) {\n var draggingLeft = hDirection === exports.HorizontalDirection.Left;\n var draggingRight = hDirection === exports.HorizontalDirection.Right;\n // it is important to sort the moving columns as they are in grid columns, as the list of moving columns\n // could themselves be part of 'married children' groups, which means we need to maintain the order within\n // the moving list.\n var allMovingColumnsOrdered = allMovingColumns.slice();\n this.columnModel.sortColumnsLikeGridColumns(allMovingColumnsOrdered);\n var validMoves = this.calculateValidMoves(allMovingColumnsOrdered, draggingRight, mouseX);\n // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move\n // (ie left or right) to the mouse direction. however\n var oldIndex = this.calculateOldIndex(allMovingColumnsOrdered);\n if (validMoves.length === 0) {\n return;\n }\n var firstValidMove = validMoves[0];\n // the two check below stop an error when the user grabs a group my a middle column, then\n // it is possible the mouse pointer is to the right of a column while been dragged left.\n // so we need to make sure that the mouse pointer is actually left of the left most column\n // if moving left, and right of the right most column if moving right\n // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from\n // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should\n // place the column to the RHS even if the mouse is moving left and the column is already on\n // the LHS. otherwise we stick to the rule described above.\n var constrainDirection = oldIndex !== null && !fromEnter;\n // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag\n if (dragSourceType == exports.DragSourceType.HeaderCell) {\n constrainDirection = oldIndex !== null;\n }\n if (constrainDirection) {\n // only allow left drag if this column is moving left\n if (draggingLeft && firstValidMove >= oldIndex) {\n return;\n }\n // only allow right drag if this column is moving right\n if (draggingRight && firstValidMove <= oldIndex) {\n return;\n }\n }\n for (var i = 0; i < validMoves.length; i++) {\n var move = validMoves[i];\n if (!this.columnModel.doesMovePassRules(allMovingColumnsOrdered, move)) {\n continue;\n }\n this.columnModel.moveColumns(allMovingColumnsOrdered, move, \"uiColumnDragged\");\n // important to return here, so once we do the first valid move, we don't try do any more\n return;\n }\n };\n MoveColumnFeature.prototype.calculateValidMoves = function (movingCols, draggingRight, mouseX) {\n var isMoveBlocked = this.gridOptionsWrapper.isSuppressMovableColumns() || movingCols.some(function (col) { return col.getColDef().suppressMovable; });\n if (isMoveBlocked) {\n return [];\n }\n // this is the list of cols on the screen, so it's these we use when comparing the x mouse position\n var allDisplayedCols = this.columnModel.getDisplayedColumns(this.pinned);\n // but this list is the list of all cols, when we move a col it's the index within this list that gets used,\n // so the result we return has to be and index location for this list\n var allGridCols = this.columnModel.getAllGridColumns();\n var movingDisplayedCols = allDisplayedCols.filter(function (col) { return includes(movingCols, col); });\n var otherDisplayedCols = allDisplayedCols.filter(function (col) { return !includes(movingCols, col); });\n var otherGridCols = allGridCols.filter(function (col) { return !includes(movingCols, col); });\n // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.\n // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving\n // col between b and c (so that it is under the mouse position).\n var displayIndex = 0;\n var availableWidth = mouseX;\n // if we are dragging right, then the columns will be to the left of the mouse, so we also want to\n // include the width of the moving columns\n if (draggingRight) {\n var widthOfMovingDisplayedCols_1 = 0;\n movingDisplayedCols.forEach(function (col) { return widthOfMovingDisplayedCols_1 += col.getActualWidth(); });\n availableWidth -= widthOfMovingDisplayedCols_1;\n }\n if (availableWidth > 0) {\n // now count how many of the displayed columns will fit to the left\n for (var i = 0; i < otherDisplayedCols.length; i++) {\n var col = otherDisplayedCols[i];\n availableWidth -= col.getActualWidth();\n if (availableWidth < 0) {\n break;\n }\n displayIndex++;\n }\n // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works\n if (draggingRight) {\n displayIndex++;\n }\n }\n // the display index is with respect to all the showing columns, however when we move, it's with\n // respect to all grid columns, so we need to translate from display index to grid index\n var firstValidMove;\n if (displayIndex > 0) {\n var leftColumn = otherDisplayedCols[displayIndex - 1];\n firstValidMove = otherGridCols.indexOf(leftColumn) + 1;\n }\n else {\n firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);\n if (firstValidMove === -1) {\n firstValidMove = 0;\n }\n }\n var validMoves = [firstValidMove];\n var numberComparator = function (a, b) { return a - b; };\n // add in other valid moves due to hidden columns and married children. for example, a particular\n // move might break a group that has married children (so move isn't valid), however there could\n // be hidden columns (not displayed) that we could jump over to make the move valid. because\n // they are hidden, user doesn't see any different, however it allows moves that would otherwise\n // not work. for example imagine a group with 9 columns and all columns are hidden except the\n // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will\n // be relative to the not-shown column, however we need to consider the move jumping over all the\n // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the\n // grid, there would be no way to put a column after it (as the grid would only consider beside the\n // visible column, which would fail valid move rules).\n if (draggingRight) {\n // if dragging right, then we add all the additional moves to the right. so in other words\n // if the next move is not valid, find the next move to the right that is valid.\n var pointer = firstValidMove + 1;\n var lastIndex = allGridCols.length - 1;\n while (pointer <= lastIndex) {\n validMoves.push(pointer);\n pointer++;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator);\n }\n else {\n // if dragging left we do the reverse of dragging right, we add in all the valid moves to the\n // left. however we also have to consider moves to the right for all hidden columns first.\n // (this logic is hard to reason with, it was worked out with trial and error,\n // more observation rather than science).\n // add moves to the right\n var pointer = firstValidMove;\n var lastIndex = allGridCols.length - 1;\n var displacedCol = allGridCols[pointer];\n while (pointer <= lastIndex && this.isColumnHidden(allDisplayedCols, displacedCol)) {\n pointer++;\n validMoves.push(pointer);\n displacedCol = allGridCols[pointer];\n }\n // add moves to the left\n pointer = firstValidMove - 1;\n var firstDisplayIndex = 0;\n while (pointer >= firstDisplayIndex) {\n validMoves.push(pointer);\n pointer--;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator).reverse();\n }\n return validMoves;\n };\n // isHidden takes into account visible=false and group=closed, ie it is not displayed\n MoveColumnFeature.prototype.isColumnHidden = function (displayedColumns, col) {\n return displayedColumns.indexOf(col) < 0;\n };\n MoveColumnFeature.prototype.ensureIntervalStarted = function () {\n if (!this.movingIntervalId) {\n this.intervalCount = 0;\n this.failedMoveAttempts = 0;\n this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);\n if (this.needToMoveLeft) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_LEFT, true);\n }\n else {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_RIGHT, true);\n }\n }\n };\n MoveColumnFeature.prototype.ensureIntervalCleared = function () {\n if (this.movingIntervalId) {\n window.clearInterval(this.movingIntervalId);\n this.movingIntervalId = null;\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_MOVE);\n }\n };\n MoveColumnFeature.prototype.moveInterval = function () {\n // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow\n // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.\n var pixelsToMove;\n this.intervalCount++;\n pixelsToMove = 10 + (this.intervalCount * 5);\n if (pixelsToMove > 100) {\n pixelsToMove = 100;\n }\n var pixelsMoved = null;\n var scrollFeature = this.gridBodyCon.getScrollFeature();\n if (this.needToMoveLeft) {\n pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);\n }\n else if (this.needToMoveRight) {\n pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);\n }\n if (pixelsMoved !== 0) {\n this.onDragging(this.lastDraggingEvent);\n this.failedMoveAttempts = 0;\n }\n else {\n // we count the failed move attempts. if we fail to move 7 times, then we pin the column.\n // this is how we achieve pining by dragging the column to the edge of the grid.\n this.failedMoveAttempts++;\n var columns = this.lastDraggingEvent.dragItem.columns;\n var columnsThatCanPin = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n if (columnsThatCanPin.length > 0) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_PINNED);\n if (this.failedMoveAttempts > 7) {\n var pinType = this.needToMoveLeft ? Constants.PINNED_LEFT : Constants.PINNED_RIGHT;\n this.setColumnsPinned(columnsThatCanPin, pinType, \"uiColumnDragged\");\n this.dragAndDropService.nudge();\n }\n }\n }\n };\n __decorate$12([\n Autowired('columnModel')\n ], MoveColumnFeature.prototype, \"columnModel\", void 0);\n __decorate$12([\n Autowired('dragAndDropService')\n ], MoveColumnFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$12([\n Autowired('gridOptionsWrapper')\n ], MoveColumnFeature.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$12([\n Autowired('ctrlsService')\n ], MoveColumnFeature.prototype, \"ctrlsService\", void 0);\n __decorate$12([\n PostConstruct\n ], MoveColumnFeature.prototype, \"init\", null);\n return MoveColumnFeature;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BodyDropTarget = /** @class */ (function (_super) {\n __extends$1g(BodyDropTarget, _super);\n function BodyDropTarget(pinned, eContainer) {\n var _this = _super.call(this) || this;\n _this.pinned = pinned;\n _this.eContainer = eContainer;\n return _this;\n }\n BodyDropTarget.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n switch (_this.pinned) {\n case Constants.PINNED_LEFT:\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.leftRowContainerCtrl.getContainerElement()],\n [p.bottomLeftRowContainerCtrl.getContainerElement()],\n [p.topLeftRowContainerCtrl.getContainerElement()]\n ];\n break;\n case Constants.PINNED_RIGHT:\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.rightRowContainerCtrl.getContainerElement()],\n [p.bottomRightRowContainerCtrl.getContainerElement()],\n [p.topRightRowContainerCtrl.getContainerElement()]\n ];\n break;\n default:\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.centerRowContainerCtrl.getViewportElement()],\n [p.bottomCenterRowContainerCtrl.getViewportElement()],\n [p.topCenterRowContainerCtrl.getViewportElement()]\n ];\n break;\n }\n });\n };\n BodyDropTarget.prototype.isInterestedIn = function (type) {\n return type === exports.DragSourceType.HeaderCell ||\n (type === exports.DragSourceType.ToolPanel && this.gridOptionsWrapper.isAllowDragFromColumnsToolPanel());\n };\n BodyDropTarget.prototype.getSecondaryContainers = function () {\n return this.eSecondaryContainers;\n };\n BodyDropTarget.prototype.getContainer = function () {\n return this.eContainer;\n };\n BodyDropTarget.prototype.init = function () {\n this.moveColumnFeature = this.createManagedBean(new MoveColumnFeature(this.pinned, this.eContainer));\n this.bodyDropPivotTarget = this.createManagedBean(new BodyDropPivotTarget(this.pinned));\n this.dragAndDropService.addDropTarget(this);\n };\n BodyDropTarget.prototype.getIconName = function () {\n return this.currentDropListener.getIconName();\n };\n // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel\n // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when\n // dropped into the grid's body.\n BodyDropTarget.prototype.isDropColumnInPivotMode = function (draggingEvent) {\n // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's\n // a standard column move, however if it came from the toolpanel, then we are introducing\n // dimensions or values to the grid\n return this.columnModel.isPivotMode() && draggingEvent.dragSource.type === exports.DragSourceType.ToolPanel;\n };\n BodyDropTarget.prototype.onDragEnter = function (draggingEvent) {\n // we pick the drop listener depending on whether we are in pivot mode are not. if we are\n // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise\n // we change visibility state and position.\n this.currentDropListener = this.isDropColumnInPivotMode(draggingEvent) ? this.bodyDropPivotTarget : this.moveColumnFeature;\n this.currentDropListener.onDragEnter(draggingEvent);\n };\n BodyDropTarget.prototype.onDragLeave = function (params) {\n this.currentDropListener.onDragLeave(params);\n };\n BodyDropTarget.prototype.onDragging = function (params) {\n this.currentDropListener.onDragging(params);\n };\n BodyDropTarget.prototype.onDragStop = function (params) {\n this.currentDropListener.onDragStop(params);\n };\n __decorate$13([\n Autowired('dragAndDropService')\n ], BodyDropTarget.prototype, \"dragAndDropService\", void 0);\n __decorate$13([\n Autowired('columnModel')\n ], BodyDropTarget.prototype, \"columnModel\", void 0);\n __decorate$13([\n Autowired('ctrlsService')\n ], BodyDropTarget.prototype, \"ctrlsService\", void 0);\n __decorate$13([\n PostConstruct\n ], BodyDropTarget.prototype, \"postConstruct\", null);\n __decorate$13([\n PostConstruct\n ], BodyDropTarget.prototype, \"init\", null);\n return BodyDropTarget;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$b = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$8 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$b(arguments[i]));\n return ar;\n};\nvar CssClassApplier = /** @class */ (function () {\n function CssClassApplier() {\n }\n CssClassApplier.getHeaderClassesFromColDef = function (abstractColDef, gridOptionsWrapper, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, gridOptionsWrapper, column, columnGroup);\n };\n CssClassApplier.getToolPanelClassesFromColDef = function (abstractColDef, gridOptionsWrapper, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, gridOptionsWrapper, column, columnGroup);\n };\n CssClassApplier.getClassParams = function (abstractColDef, gridOptionsWrapper, column, columnGroup) {\n return {\n // bad naming, as colDef here can be a group or a column,\n // however most people won't appreciate the difference,\n // so keeping it as colDef to avoid confusion.\n colDef: abstractColDef,\n column: column,\n columnGroup: columnGroup,\n api: gridOptionsWrapper.getApi(),\n columnApi: gridOptionsWrapper.getColumnApi(),\n context: gridOptionsWrapper.getContext()\n };\n };\n CssClassApplier.getColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, gridOptionsWrapper, column, columnGroup) {\n if (missing(classesOrFunc)) {\n return [];\n }\n var classToUse;\n if (typeof classesOrFunc === 'function') {\n var params = this.getClassParams(abstractColDef, gridOptionsWrapper, column, columnGroup);\n classToUse = classesOrFunc(params);\n }\n else {\n classToUse = classesOrFunc;\n }\n if (typeof classToUse === 'string') {\n return [classToUse];\n }\n if (Array.isArray(classToUse)) {\n return __spread$8(classToUse);\n }\n return [];\n };\n return CssClassApplier;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderCellComp = /** @class */ (function (_super) {\n __extends$1h(HeaderCellComp, _super);\n function HeaderCellComp(ctrl) {\n var _this = _super.call(this, HeaderCellComp.TEMPLATE, ctrl) || this;\n _this.headerCompVersion = 0;\n _this.column = ctrl.getColumnGroupChild();\n _this.pinned = ctrl.getPinned();\n return _this;\n }\n HeaderCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var setAttribute = function (name, value, element) {\n var actualElement = element ? element : eGui;\n if (value != null && value != '') {\n actualElement.setAttribute(name, value);\n }\n else {\n actualElement.removeAttribute(name);\n }\n };\n var compProxy = {\n setWidth: function (width) { return eGui.style.width = width; },\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setColId: function (id) { return setAttribute('col-id', id); },\n setTitle: function (title) { return setAttribute('title', title); },\n setAriaDescription: function (label) { return setAriaDescription(eGui, label); },\n setAriaSort: function (sort) { return sort ? setAriaSort(eGui, sort) : removeAriaSort(eGui); },\n setUserCompDetails: function (compDetails) { return _this.setUserCompDetails(compDetails); },\n getUserCompInstance: function () { return _this.headerComp; }\n };\n this.ctrl.setComp(compProxy, this.getGui(), this.eResize);\n var selectAllGui = this.ctrl.getSelectAllGui();\n this.eResize.insertAdjacentElement('afterend', selectAllGui);\n };\n HeaderCellComp.prototype.destroyHeaderComp = function () {\n if (this.headerComp) {\n this.getGui().removeChild(this.headerCompGui);\n this.headerComp = this.destroyBean(this.headerComp);\n this.headerCompGui = undefined;\n }\n };\n HeaderCellComp.prototype.setUserCompDetails = function (compDetails) {\n var _this = this;\n this.headerCompVersion++;\n var versionCopy = this.headerCompVersion;\n compDetails.newAgStackInstance().then(function (comp) { return _this.afterCompCreated(versionCopy, comp); });\n };\n HeaderCellComp.prototype.afterCompCreated = function (version, headerComp) {\n if (version != this.headerCompVersion || !this.isAlive()) {\n this.destroyBean(headerComp);\n return;\n }\n this.destroyHeaderComp();\n this.headerComp = headerComp;\n this.headerCompGui = headerComp.getGui();\n this.getGui().appendChild(this.headerCompGui);\n this.ctrl.setDragSource(this.headerCompGui);\n };\n HeaderCellComp.TEMPLATE = \"
\\n
\\n
\";\n __decorate$14([\n RefSelector('eResize')\n ], HeaderCellComp.prototype, \"eResize\", void 0);\n __decorate$14([\n PostConstruct\n ], HeaderCellComp.prototype, \"postConstruct\", null);\n __decorate$14([\n PreDestroy\n ], HeaderCellComp.prototype, \"destroyHeaderComp\", null);\n return HeaderCellComp;\n}(AbstractHeaderCellComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupCellComp = /** @class */ (function (_super) {\n __extends$1i(HeaderGroupCellComp, _super);\n function HeaderGroupCellComp(ctrl) {\n return _super.call(this, HeaderGroupCellComp.TEMPLATE, ctrl) || this;\n }\n HeaderGroupCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var setAttribute = function (key, value) {\n return value != undefined ? eGui.setAttribute(key, value) : eGui.removeAttribute(key);\n };\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveResizableCssClass: function (cssClassName, on) { return _this.eResize.classList.toggle(cssClassName, on); },\n setWidth: function (width) { return eGui.style.width = width; },\n setColId: function (id) { return eGui.setAttribute(\"col-id\", id); },\n setAriaExpanded: function (expanded) { return setAttribute('aria-expanded', expanded); },\n setTitle: function (title) { return setAttribute(\"title\", title); },\n setUserCompDetails: function (details) { return _this.setUserCompDetails(details); }\n };\n this.ctrl.setComp(compProxy, eGui, this.eResize);\n };\n HeaderGroupCellComp.prototype.setUserCompDetails = function (details) {\n var _this = this;\n details.newAgStackInstance().then(function (comp) { return _this.afterHeaderCompCreated(comp); });\n };\n HeaderGroupCellComp.prototype.afterHeaderCompCreated = function (headerGroupComp) {\n var _this = this;\n var destroyFunc = function () { return _this.destroyBean(headerGroupComp); };\n if (!this.isAlive()) {\n destroyFunc();\n return;\n }\n this.getGui().appendChild(headerGroupComp.getGui());\n this.addDestroyFunc(destroyFunc);\n this.ctrl.setDragSource(headerGroupComp.getGui());\n };\n HeaderGroupCellComp.TEMPLATE = \"
\\n
\\n
\";\n __decorate$15([\n Autowired('userComponentFactory')\n ], HeaderGroupCellComp.prototype, \"userComponentFactory\", void 0);\n __decorate$15([\n RefSelector('eResize')\n ], HeaderGroupCellComp.prototype, \"eResize\", void 0);\n __decorate$15([\n PostConstruct\n ], HeaderGroupCellComp.prototype, \"postConstruct\", null);\n return HeaderGroupCellComp;\n}(AbstractHeaderCellComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n(function (HeaderRowType) {\n HeaderRowType[\"COLUMN_GROUP\"] = \"group\";\n HeaderRowType[\"COLUMN\"] = \"column\";\n HeaderRowType[\"FLOATING_FILTER\"] = \"filter\";\n})(exports.HeaderRowType || (exports.HeaderRowType = {}));\nvar HeaderRowComp = /** @class */ (function (_super) {\n __extends$1j(HeaderRowComp, _super);\n function HeaderRowComp(ctrl) {\n var _this = _super.call(this) || this;\n _this.headerComps = {};\n var extraClass = ctrl.getType() == exports.HeaderRowType.COLUMN_GROUP ? \"ag-header-row-column-group\" :\n ctrl.getType() == exports.HeaderRowType.FLOATING_FILTER ? \"ag-header-row-column-filter\" : \"ag-header-row-column\";\n _this.setTemplate(/* html */ \"
\");\n _this.ctrl = ctrl;\n return _this;\n }\n //noinspection JSUnusedLocalSymbols\n HeaderRowComp.prototype.init = function () {\n var _this = this;\n var compProxy = {\n setTransform: function (transform) { return _this.getGui().style.transform = transform; },\n setHeight: function (height) { return _this.getGui().style.height = height; },\n setTop: function (top) { return _this.getGui().style.top = top; },\n setHeaderCtrls: function (ctrls) { return _this.setHeaderCtrls(ctrls); },\n setWidth: function (width) { return _this.getGui().style.width = width; },\n setAriaRowIndex: function (rowIndex) { return setAriaRowIndex(_this.getGui(), rowIndex); }\n };\n this.ctrl.setComp(compProxy);\n };\n HeaderRowComp.prototype.destroyHeaderCtrls = function () {\n this.setHeaderCtrls([]);\n };\n HeaderRowComp.prototype.setHeaderCtrls = function (ctrls) {\n var _this = this;\n if (!this.isAlive()) {\n return;\n }\n var oldComps = this.headerComps;\n this.headerComps = {};\n ctrls.forEach(function (ctrl) {\n var id = ctrl.getInstanceId();\n var comp = oldComps[id];\n delete oldComps[id];\n if (comp == null) {\n comp = _this.createHeaderComp(ctrl);\n _this.getGui().appendChild(comp.getGui());\n }\n _this.headerComps[id] = comp;\n });\n iterateObject(oldComps, function (id, comp) {\n _this.getGui().removeChild(comp.getGui());\n _this.destroyBean(comp);\n });\n var ensureDomOrder = this.gridOptionsWrapper.isEnsureDomOrder();\n if (ensureDomOrder) {\n var comps = getAllValuesInObject(this.headerComps);\n // ordering the columns by left position orders them in the order they appear on the screen\n comps.sort(function (a, b) {\n var leftA = a.getCtrl().getColumnGroupChild().getLeft();\n var leftB = b.getCtrl().getColumnGroupChild().getLeft();\n return leftA - leftB;\n });\n var elementsInOrder = comps.map(function (c) { return c.getGui(); });\n setDomChildOrder(this.getGui(), elementsInOrder);\n }\n };\n HeaderRowComp.prototype.createHeaderComp = function (headerCtrl) {\n var result;\n switch (this.ctrl.getType()) {\n case exports.HeaderRowType.COLUMN_GROUP:\n result = new HeaderGroupCellComp(headerCtrl);\n break;\n case exports.HeaderRowType.FLOATING_FILTER:\n result = new HeaderFilterCellComp(headerCtrl);\n break;\n default:\n result = new HeaderCellComp(headerCtrl);\n break;\n }\n this.createBean(result);\n result.setParentComponent(this);\n return result;\n };\n __decorate$16([\n PostConstruct\n ], HeaderRowComp.prototype, \"init\", null);\n __decorate$16([\n PreDestroy\n ], HeaderRowComp.prototype, \"destroyHeaderCtrls\", null);\n return HeaderRowComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence$3 = 0;\nvar AbstractHeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1k(AbstractHeaderCellCtrl, _super);\n function AbstractHeaderCellCtrl(columnGroupChild, parentRowCtrl) {\n var _this = _super.call(this) || this;\n _this.lastFocusEvent = null;\n _this.columnGroupChild = columnGroupChild;\n _this.parentRowCtrl = parentRowCtrl;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n _this.instanceId = columnGroupChild.getUniqueId() + '-' + instanceIdSequence$3++;\n return _this;\n }\n AbstractHeaderCellCtrl.prototype.shouldStopEventPropagation = function (e) {\n var _a = this.focusService.getFocusedHeader(), headerRowIndex = _a.headerRowIndex, column = _a.column;\n return isUserSuppressingHeaderKeyboardEvent(this.gridOptionsWrapper, e, headerRowIndex, column);\n };\n AbstractHeaderCellCtrl.prototype.setGui = function (eGui) {\n this.eGui = eGui;\n this.addDomData();\n };\n AbstractHeaderCellCtrl.prototype.addDomData = function () {\n var _this = this;\n var key = AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL;\n this.gridOptionsWrapper.setDomData(this.eGui, key, this);\n this.addDestroyFunc(function () { return _this.gridOptionsWrapper.setDomData(_this.eGui, key, null); });\n };\n AbstractHeaderCellCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n AbstractHeaderCellCtrl.prototype.focus = function (event) {\n if (!this.eGui) {\n return false;\n }\n this.lastFocusEvent = event || null;\n this.eGui.focus();\n return true;\n };\n AbstractHeaderCellCtrl.prototype.getRowIndex = function () {\n return this.parentRowCtrl.getRowIndex();\n };\n AbstractHeaderCellCtrl.prototype.getParentRowCtrl = function () {\n return this.parentRowCtrl;\n };\n AbstractHeaderCellCtrl.prototype.getPinned = function () {\n return this.parentRowCtrl.getPinned();\n };\n AbstractHeaderCellCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n AbstractHeaderCellCtrl.prototype.getColumnGroupChild = function () {\n return this.columnGroupChild;\n };\n AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL = 'headerCtrl';\n __decorate$17([\n Autowired('focusService')\n ], AbstractHeaderCellCtrl.prototype, \"focusService\", void 0);\n return AbstractHeaderCellCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (ClientSideRowModelSteps) {\n ClientSideRowModelSteps[\"EVERYTHING\"] = \"group\";\n ClientSideRowModelSteps[\"FILTER\"] = \"filter\";\n ClientSideRowModelSteps[\"SORT\"] = \"sort\";\n ClientSideRowModelSteps[\"MAP\"] = \"map\";\n ClientSideRowModelSteps[\"AGGREGATE\"] = \"aggregate\";\n ClientSideRowModelSteps[\"FILTER_AGGREGATES\"] = \"filter_aggregates\";\n ClientSideRowModelSteps[\"PIVOT\"] = \"pivot\";\n ClientSideRowModelSteps[\"NOTHING\"] = \"nothing\";\n})(exports.ClientSideRowModelSteps || (exports.ClientSideRowModelSteps = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$18 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction unwrapUserComp(comp) {\n var compAsAny = comp;\n var isProxy = compAsAny != null && compAsAny.getFrameworkComponentInstance != null;\n return isProxy ? compAsAny.getFrameworkComponentInstance() : comp;\n}\nvar GridApi = /** @class */ (function () {\n function GridApi() {\n this.detailGridInfoMap = {};\n this.destroyCalled = false;\n }\n GridApi.prototype.registerOverlayWrapperComp = function (overlayWrapperComp) {\n this.overlayWrapperComp = overlayWrapperComp;\n };\n GridApi.prototype.registerSideBarComp = function (sideBarComp) {\n this.sideBarComp = sideBarComp;\n };\n GridApi.prototype.init = function () {\n var _this = this;\n switch (this.rowModel.getType()) {\n case Constants.ROW_MODEL_TYPE_CLIENT_SIDE:\n this.clientSideRowModel = this.rowModel;\n break;\n case Constants.ROW_MODEL_TYPE_INFINITE:\n this.infiniteRowModel = this.rowModel;\n break;\n case Constants.ROW_MODEL_TYPE_SERVER_SIDE:\n this.serverSideRowModel = this.rowModel;\n break;\n }\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__getAlignedGridService = function () {\n return this.alignedGridsService;\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__getContext = function () {\n return this.context;\n };\n /** Register a detail grid with the master grid when it is created. */\n GridApi.prototype.addDetailGridInfo = function (id, gridInfo) {\n this.detailGridInfoMap[id] = gridInfo;\n };\n /** Unregister a detail grid from the master grid when it is destroyed. */\n GridApi.prototype.removeDetailGridInfo = function (id) {\n this.detailGridInfoMap[id] = undefined;\n };\n /** Returns the `DetailGridInfo` corresponding to the supplied `detailGridId`. */\n GridApi.prototype.getDetailGridInfo = function (id) {\n return this.detailGridInfoMap[id];\n };\n /** Iterates through each `DetailGridInfo` in the grid and calls the supplied callback on each. */\n GridApi.prototype.forEachDetailGridInfo = function (callback) {\n var index = 0;\n iterateObject(this.detailGridInfoMap, function (id, gridInfo) {\n // check for undefined, as old references will still be lying around\n if (exists(gridInfo)) {\n callback(gridInfo, index);\n index++;\n }\n });\n };\n /** Similar to `exportDataAsCsv`, except returns the result as a string rather than download it. */\n GridApi.prototype.getDataAsCsv = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.CsvExportModule, 'api.getDataAsCsv')) {\n return this.csvCreator.getDataAsCsv(params);\n }\n };\n /** Downloads a CSV export of the grid's data. */\n GridApi.prototype.exportDataAsCsv = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.CsvExportModule, 'api.exportDataAsCSv')) {\n this.csvCreator.exportDataAsCsv(params);\n }\n };\n GridApi.prototype.getExcelExportMode = function (params) {\n var baseParams = this.gridOptionsWrapper.getDefaultExportParams('excel');\n var mergedParams = Object.assign({ exportMode: 'xlsx' }, baseParams, params);\n return mergedParams.exportMode;\n };\n /** Similar to `exportDataAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n GridApi.prototype.getDataAsExcel = function (params) {\n if (!ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.getDataAsExcel')) {\n return;\n }\n var exportMode = this.getExcelExportMode(params);\n if (this.excelCreator.getFactoryMode(exportMode) === exports.ExcelFactoryMode.MULTI_SHEET) {\n console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');\n return;\n }\n return this.excelCreator.getDataAsExcel(params);\n };\n /** Downloads an Excel export of the grid's data. */\n GridApi.prototype.exportDataAsExcel = function (params) {\n if (!ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.exportDataAsExcel')) {\n return;\n }\n var exportMode = this.getExcelExportMode(params);\n if (this.excelCreator.getFactoryMode(exportMode) === exports.ExcelFactoryMode.MULTI_SHEET) {\n console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');\n return;\n }\n this.excelCreator.exportDataAsExcel(params);\n };\n /** This is method to be used to get the grid's data as a sheet, that will later be exported either by `getMultipleSheetsAsExcel()` or `exportMultipleSheetsAsExcel()`. */\n GridApi.prototype.getSheetDataForExcel = function (params) {\n if (!ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.getSheetDataForExcel')) {\n return;\n }\n var exportMode = this.getExcelExportMode(params);\n this.excelCreator.setFactoryMode(exports.ExcelFactoryMode.MULTI_SHEET, exportMode);\n return this.excelCreator.getSheetDataForExcel(params);\n };\n /** Similar to `exportMultipleSheetsAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n GridApi.prototype.getMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.getMultipleSheetsAsExcel')) {\n return this.excelCreator.getMultipleSheetsAsExcel(params);\n }\n };\n /** Downloads an Excel export of multiple sheets in one file. */\n GridApi.prototype.exportMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.exportMultipleSheetsAsExcel')) {\n return this.excelCreator.exportMultipleSheetsAsExcel(params);\n }\n };\n /** @deprecated */\n GridApi.prototype.setEnterpriseDatasource = function (datasource) {\n console.warn(\"AG Grid: since version 18.x, api.setEnterpriseDatasource() should be replaced with api.setServerSideDatasource()\");\n this.setServerSideDatasource(datasource);\n };\n /**\n * Sets an ARIA property in the grid panel (element with `role=\\\"grid\\\"`), and removes an ARIA property when the value is null.\n *\n * Example: `api.setGridAriaProperty('label', 'my grid')` will set `aria-label=\\\"my grid\\\"`.\n *\n * `api.setGridAriaProperty('label', null)` will remove the `aria-label` attribute from the grid element.\n */\n GridApi.prototype.setGridAriaProperty = function (property, value) {\n if (!property) {\n return;\n }\n var eGrid = this.ctrlsService.getGridBodyCtrl().getGui();\n var ariaProperty = \"aria-\" + property;\n if (value === null) {\n eGrid.removeAttribute(ariaProperty);\n }\n else {\n eGrid.setAttribute(ariaProperty, value);\n }\n };\n /** Set new datasource for Server-Side Row Model. */\n GridApi.prototype.setServerSideDatasource = function (datasource) {\n if (this.serverSideRowModel) {\n // should really have an IEnterpriseRowModel interface, so we are not casting to any\n this.serverSideRowModel.setDatasource(datasource);\n }\n else {\n console.warn(\"AG Grid: you can only use an enterprise datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_SERVER_SIDE + \"'\");\n }\n };\n /** Set new datasource for Infinite Row Model. */\n GridApi.prototype.setDatasource = function (datasource) {\n if (this.gridOptionsWrapper.isRowModelInfinite()) {\n this.rowModel.setDatasource(datasource);\n }\n else {\n console.warn(\"AG Grid: you can only use a datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_INFINITE + \"'\");\n }\n };\n /** Set new datasource for Viewport Row Model. */\n GridApi.prototype.setViewportDatasource = function (viewportDatasource) {\n if (this.gridOptionsWrapper.isRowModelViewport()) {\n // this is bad coding, because it's using an interface that's exposed in the enterprise.\n // really we should create an interface in the core for viewportDatasource and let\n // the enterprise implement it, rather than casting to 'any' here\n this.rowModel.setViewportDatasource(viewportDatasource);\n }\n else {\n console.warn(\"AG Grid: you can only use a viewport datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_VIEWPORT + \"'\");\n }\n };\n /** Set the row data. */\n GridApi.prototype.setRowData = function (rowData) {\n // immutable service is part of the CSRM module, if missing, no CSRM\n var missingImmutableService = this.immutableService == null;\n if (missingImmutableService) {\n console.warn('AG Grid: you can only set rowData when using the Client Side Row Model');\n return;\n }\n // if no keys provided provided for rows, then we can tread the operation as Immutable\n if (this.immutableService.isActive()) {\n this.immutableService.setRowData(rowData);\n }\n else {\n this.selectionService.reset();\n this.clientSideRowModel.setRowData(rowData);\n }\n };\n /** @deprecated */\n GridApi.prototype.setFloatingTopRowData = function (rows) {\n console.warn('AG Grid: since v12, api.setFloatingTopRowData() is now api.setPinnedTopRowData()');\n this.setPinnedTopRowData(rows);\n };\n /** @deprecated */\n GridApi.prototype.setFloatingBottomRowData = function (rows) {\n console.warn('AG Grid: since v12, api.setFloatingBottomRowData() is now api.setPinnedBottomRowData()');\n this.setPinnedBottomRowData(rows);\n };\n /** @deprecated */\n GridApi.prototype.getFloatingTopRowCount = function () {\n console.warn('AG Grid: since v12, api.getFloatingTopRowCount() is now api.getPinnedTopRowCount()');\n return this.getPinnedTopRowCount();\n };\n /** @deprecated */\n GridApi.prototype.getFloatingBottomRowCount = function () {\n console.warn('AG Grid: since v12, api.getFloatingBottomRowCount() is now api.getPinnedBottomRowCount()');\n return this.getPinnedBottomRowCount();\n };\n /** @deprecated */\n GridApi.prototype.getFloatingTopRow = function (index) {\n console.warn('AG Grid: since v12, api.getFloatingTopRow() is now api.getPinnedTopRow()');\n return this.getPinnedTopRow(index);\n };\n /** @deprecated */\n GridApi.prototype.getFloatingBottomRow = function (index) {\n console.warn('AG Grid: since v12, api.getFloatingBottomRow() is now api.getPinnedBottomRow()');\n return this.getPinnedBottomRow(index);\n };\n /** Set the top pinned rows. Call with no rows / undefined to clear top pinned rows. */\n GridApi.prototype.setPinnedTopRowData = function (rows) {\n this.pinnedRowModel.setPinnedTopRowData(rows);\n };\n /** Set the bottom pinned rows. Call with no rows / undefined to clear bottom pinned rows. */\n GridApi.prototype.setPinnedBottomRowData = function (rows) {\n this.pinnedRowModel.setPinnedBottomRowData(rows);\n };\n /** Gets the number of top pinned rows. */\n GridApi.prototype.getPinnedTopRowCount = function () {\n return this.pinnedRowModel.getPinnedTopRowCount();\n };\n /** Gets the number of bottom pinned rows. */\n GridApi.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedRowModel.getPinnedBottomRowCount();\n };\n /** Gets the top pinned row with the specified index. */\n GridApi.prototype.getPinnedTopRow = function (index) {\n return this.pinnedRowModel.getPinnedTopRow(index);\n };\n /** Gets the top pinned row with the specified index. */\n GridApi.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedRowModel.getPinnedBottomRow(index);\n };\n /**\n * Call to set new column definitions. The grid will redraw all the column headers, and then redraw all of the rows.\n */\n GridApi.prototype.setColumnDefs = function (colDefs, source) {\n if (source === void 0) { source = \"api\"; }\n this.columnModel.setColumnDefs(colDefs, source);\n };\n /** Call to set new auto group column definition. The grid will recreate any auto-group columns if present. */\n GridApi.prototype.setAutoGroupColumnDef = function (colDef, source) {\n this.gridOptionsWrapper.setProperty('autoGroupColumnDef', colDef, true);\n };\n /** Call to set new Default Column Definition. */\n GridApi.prototype.setDefaultColDef = function (colDef, source) {\n this.gridOptionsWrapper.setProperty('defaultColDef', colDef, true);\n };\n GridApi.prototype.expireValueCache = function () {\n this.valueCache.expire();\n };\n /**\n * Returns an object with two properties:\n * - `top`: The top pixel position of the current scroll in the grid\n * - `bottom`: The bottom pixel position of the current scroll in the grid\n */\n GridApi.prototype.getVerticalPixelRange = function () {\n return this.gridBodyCtrl.getScrollFeature().getVScrollPosition();\n };\n /**\n * Returns an object with two properties:\n * - `left`: The left pixel position of the current scroll in the grid\n * - `right`: The right pixel position of the current scroll in the grid\n */\n GridApi.prototype.getHorizontalPixelRange = function () {\n return this.gridBodyCtrl.getScrollFeature().getHScrollPosition();\n };\n /** If `true`, the horizontal scrollbar will always be present, even if not required. Otherwise, it will only be displayed when necessary. */\n GridApi.prototype.setAlwaysShowHorizontalScroll = function (show) {\n this.gridOptionsWrapper.setProperty('alwaysShowHorizontalScroll', show);\n };\n /** If `true`, the vertical scrollbar will always be present, even if not required. Otherwise it will only be displayed when necessary. */\n GridApi.prototype.setAlwaysShowVerticalScroll = function (show) {\n this.gridOptionsWrapper.setProperty('alwaysShowVerticalScroll', show);\n };\n /** Force refresh all tool panels by calling their `refresh` method. */\n GridApi.prototype.refreshToolPanel = function () {\n if (!this.sideBarComp) {\n return;\n }\n this.sideBarComp.refresh();\n };\n /** Performs change detection on all cells, refreshing cells where required. */\n GridApi.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n if (Array.isArray(params)) {\n // the old version of refreshCells() took an array of rowNodes for the first argument\n console.warn('since AG Grid v11.1, refreshCells() now takes parameters, please see the documentation.');\n return;\n }\n this.rowRenderer.refreshCells(params);\n };\n /** Flash rows, columns or individual cells. */\n GridApi.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n this.rowRenderer.flashCells(params);\n };\n /** Remove row(s) from the DOM and recreate them again from scratch. */\n GridApi.prototype.redrawRows = function (params) {\n if (params === void 0) { params = {}; }\n var rowNodes = params ? params.rowNodes : undefined;\n this.rowRenderer.redrawRows(rowNodes);\n };\n GridApi.prototype.setFunctionsReadOnly = function (readOnly) {\n this.gridOptionsWrapper.setProperty('functionsReadOnly', readOnly);\n };\n /** Redraws the header. Useful if a column name changes, or something else that changes how the column header is displayed. */\n GridApi.prototype.refreshHeader = function () {\n this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (c) { return c.refresh(); });\n };\n /** Returns `true` if any filter is set. This includes quick filter, advanced filter or external filter. */\n GridApi.prototype.isAnyFilterPresent = function () {\n return this.filterManager.isAnyFilterPresent();\n };\n /** Returns `true` if any column filter is set, otherwise `false`. */\n GridApi.prototype.isColumnFilterPresent = function () {\n return this.filterManager.isColumnFilterPresent() || this.filterManager.isAggregateFilterPresent();\n };\n /** Returns `true` if the quick filter is set, otherwise `false`. */\n GridApi.prototype.isQuickFilterPresent = function () {\n return this.filterManager.isQuickFilterPresent();\n };\n /**\n * Returns the row model inside the table.\n * From here you can see the original rows, rows after filter has been applied,\n * rows after aggregation has been applied, and the final set of 'to be displayed' rows.\n */\n GridApi.prototype.getModel = function () {\n return this.rowModel;\n };\n /** Expand or collapse a specific row node. */\n GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded) {\n if (rowNode) {\n rowNode.setExpanded(expanded);\n }\n };\n /**\n * If after getting the model, you expand or collapse a group, call this method to inform the grid.\n * It will work out the final set of 'to be displayed' rows again (i.e. expand or collapse the group visually).\n */\n GridApi.prototype.onGroupExpandedOrCollapsed = function (deprecated_refreshFromIndex) {\n if (missing(this.clientSideRowModel)) {\n console.warn('AG Grid: cannot call onGroupExpandedOrCollapsed unless using normal row model');\n }\n if (exists(deprecated_refreshFromIndex)) {\n console.warn('AG Grid: api.onGroupExpandedOrCollapsed - refreshFromIndex parameter is no longer used, the grid will refresh all rows');\n }\n // we don't really want the user calling this if only one rowNode was expanded, instead they should be\n // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole\n // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,\n // and thus the expand icon in the group cell won't get 'opened' or 'closed'.\n this.clientSideRowModel.refreshModel({ step: exports.ClientSideRowModelSteps.MAP });\n };\n GridApi.prototype.refreshInMemoryRowModel = function (step) {\n console.warn(\"ag-grid: since version 18.x, api.refreshInMemoryRowModel() should be replaced with api.refreshClientSideRowModel()\");\n this.refreshClientSideRowModel(step);\n };\n /** Gets the Client-Side Row Model to refresh, executing the grouping, filtering and sorting again. */\n GridApi.prototype.refreshClientSideRowModel = function (step) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call refreshClientSideRowModel unless using normal row model');\n }\n var paramsStep = exports.ClientSideRowModelSteps.EVERYTHING;\n var stepsMapped = {\n group: exports.ClientSideRowModelSteps.EVERYTHING,\n filter: exports.ClientSideRowModelSteps.FILTER,\n map: exports.ClientSideRowModelSteps.MAP,\n aggregate: exports.ClientSideRowModelSteps.AGGREGATE,\n sort: exports.ClientSideRowModelSteps.SORT,\n pivot: exports.ClientSideRowModelSteps.PIVOT\n };\n if (exists(step)) {\n paramsStep = stepsMapped[step];\n }\n if (missing(paramsStep)) {\n console.error(\"AG Grid: invalid step \" + step + \", available steps are \" + Object.keys(stepsMapped).join(', '));\n return;\n }\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n var modelParams = {\n step: paramsStep,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n };\n this.clientSideRowModel.refreshModel(modelParams);\n };\n /** Returns `true` when there are no more animation frames left to process. */\n GridApi.prototype.isAnimationFrameQueueEmpty = function () {\n return this.animationFrameService.isQueueEmpty();\n };\n GridApi.prototype.flushAllAnimationFrames = function () {\n this.animationFrameService.flushAllFrames();\n };\n /**\n * Returns the row node with the given ID.\n * The row node ID is the one you provide from the callback `getRowId(params)`,\n * otherwise the ID is a number (cast as string) auto-generated by the grid when\n * the row data is set.\n */\n GridApi.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n /**\n * Gets the sizes that various UI elements will be rendered at with the current theme.\n * If you override the row or header height using `gridOptions`, the override value you provided will be returned.\n */\n GridApi.prototype.getSizesForCurrentTheme = function () {\n return {\n rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),\n headerHeight: this.gridOptionsWrapper.getHeaderHeight()\n };\n };\n /** Expand all groups. */\n GridApi.prototype.expandAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(true);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(true);\n }\n else {\n console.warn('AG Grid: expandAll only works with Client Side Row Model and Server Side Row Model');\n }\n };\n /** Collapse all groups. */\n GridApi.prototype.collapseAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(false);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(false);\n }\n else {\n console.warn('AG Grid: collapseAll only works with Client Side Row Model and Server Side Row Model');\n }\n };\n /** Gets the tool panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getToolPanelInstance = function (id) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n var comp = this.sideBarComp.getToolPanelInstance(id);\n return unwrapUserComp(comp);\n };\n GridApi.prototype.addVirtualRowListener = function (eventName, rowIndex, callback) {\n if (typeof eventName !== 'string') {\n console.warn('AG Grid: addVirtualRowListener is deprecated, please use addRenderedRowListener.');\n }\n this.addRenderedRowListener(eventName, rowIndex, callback);\n };\n /**\n * Registers a callback to a virtual row.\n * A virtual row is a row that is visually rendered on the screen (rows that are not visible because of the scroll position are not rendered).\n * Unlike normal events, you do not need to unregister rendered row listeners.\n * When the rendered row is removed from the grid, all associated rendered row listeners will also be removed.\n * Currently supports only one event, `virtualRowRemoved`;\n * listen for this event if your `cellRenderer` needs to do cleanup when the row no longer exists.\n */\n GridApi.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n if (eventName === 'virtualRowSelected') {\n console.warn(\"AG Grid: event virtualRowSelected is deprecated, to register for individual row\\n selection events, add a listener directly to the row node.\");\n }\n this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);\n };\n /** Pass a quick filter text into the grid for filtering. */\n GridApi.prototype.setQuickFilter = function (newFilter) {\n this.filterManager.setQuickFilter(newFilter);\n };\n GridApi.prototype.selectIndex = function (index, tryMulti, suppressEvents) {\n console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n this.selectionService.selectIndex(index, tryMulti);\n };\n GridApi.prototype.deselectIndex = function (index, suppressEvents) {\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n this.selectionService.deselectIndex(index);\n };\n GridApi.prototype.selectNode = function (node, tryMulti, suppressEvents) {\n if (tryMulti === void 0) { tryMulti = false; }\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n node.setSelectedParams({ newValue: true, clearSelection: !tryMulti });\n };\n GridApi.prototype.deselectNode = function (node, suppressEvents) {\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n node.setSelectedParams({ newValue: false });\n };\n /** Select all rows, regardless of filtering and rows that are not visible due to grouping being enabled and their groups not expanded. */\n GridApi.prototype.selectAll = function () {\n this.selectionService.selectAllRowNodes();\n };\n /** Clear all row selections, regardless of filtering. */\n GridApi.prototype.deselectAll = function () {\n this.selectionService.deselectAllRowNodes();\n };\n /** Select all filtered rows. */\n GridApi.prototype.selectAllFiltered = function () {\n this.selectionService.selectAllRowNodes(true);\n };\n /** Clear all filtered selections. */\n GridApi.prototype.deselectAllFiltered = function () {\n this.selectionService.deselectAllRowNodes(true);\n };\n GridApi.prototype.recomputeAggregates = function () {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call recomputeAggregates unless using normal row model');\n }\n console.warn(\"recomputeAggregates is deprecated, please call api.refreshClientSideRowModel('aggregate') instead\");\n this.clientSideRowModel.refreshModel({ step: exports.ClientSideRowModelSteps.AGGREGATE });\n };\n /** Sets columns to adjust in size to fit the grid horizontally. */\n GridApi.prototype.sizeColumnsToFit = function () {\n this.gridBodyCtrl.sizeColumnsToFit();\n };\n /** Show the 'loading' overlay. */\n GridApi.prototype.showLoadingOverlay = function () {\n this.overlayWrapperComp.showLoadingOverlay();\n };\n /** Show the 'no rows' overlay. */\n GridApi.prototype.showNoRowsOverlay = function () {\n this.overlayWrapperComp.showNoRowsOverlay();\n };\n /** Hides the overlay if showing. */\n GridApi.prototype.hideOverlay = function () {\n this.overlayWrapperComp.hideOverlay();\n };\n GridApi.prototype.isNodeSelected = function (node) {\n console.warn('AG Grid: no need to call api.isNodeSelected(), just call node.isSelected() instead');\n return node.isSelected();\n };\n GridApi.prototype.getSelectedNodesById = function () {\n console.error('AG Grid: since version 3.4, getSelectedNodesById no longer exists, use getSelectedNodes() instead');\n return null;\n };\n /**\n * Returns a list of selected nodes.\n * Getting the underlying node (rather than the data) is useful when working with tree / aggregated data,\n * as the node can be traversed.\n */\n GridApi.prototype.getSelectedNodes = function () {\n return this.selectionService.getSelectedNodes();\n };\n /** Returns a list of selected rows (i.e. row data that you provided). */\n GridApi.prototype.getSelectedRows = function () {\n return this.selectionService.getSelectedRows();\n };\n /**\n * Returns a list of all selected nodes at 'best cost', a feature to be used with groups / trees.\n * If a group has all its children selected, then the group appears in the result, but not the children.\n * Designed for use with `'children'` as the group selection type, where groups don't actually appear in the selection normally.\n */\n GridApi.prototype.getBestCostNodeSelection = function () {\n return this.selectionService.getBestCostNodeSelection();\n };\n /** Retrieve rendered nodes. Due to virtualisation this will contain only the current visible rows and those in the buffer. */\n GridApi.prototype.getRenderedNodes = function () {\n return this.rowRenderer.getRenderedNodes();\n };\n GridApi.prototype.ensureColIndexVisible = function (index) {\n console.warn('AG Grid: ensureColIndexVisible(index) no longer supported, use ensureColumnVisible(colKey) instead.');\n };\n /**\n * Ensures the column is visible by scrolling the table if needed.\n * @param key - The column to ensure visible\n * @param position - Where the column will be positioned.\n * - `auto` - Scrolls the minimum amount to make sure the column is visible.\n * - `start` - Scrolls the column to the start of the viewport.\n * - `middle` - Scrolls the column to the middle of the viewport.\n * - `end` - Scrolls the column to the end of the viewport.\n */\n GridApi.prototype.ensureColumnVisible = function (key, position) {\n if (position === void 0) { position = 'auto'; }\n this.gridBodyCtrl.getScrollFeature().ensureColumnVisible(key, position);\n };\n /**\n * Ensures the row index is visible by vertically scrolling the grid.\n * If a position of `'top'`, `'middle'` or `'bottom'` is supplied, the grid will scroll the grid to place the row at the top, middle or bottom respectively.\n * Otherwise, the grid will do the minimum scrolling possible to show the row.\n * i.e.\n * - if the grid needs to scroll up then it will scroll so that the row is at the top,\n * - if the grid needs to scroll down then it will scroll so that the row is at the bottom,\n * - if the row is already in view then the grid will do nothing.\n */\n GridApi.prototype.ensureIndexVisible = function (index, position) {\n this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(index, position);\n };\n /**\n * Ensures a row node is visible, scrolling the grid if needed.\n * Provide either:\n * - the node,\n * - the data object\n * - a comparator function (that takes the node as a parameter, and returns `true` for match or `false` for no match).\n */\n GridApi.prototype.ensureNodeVisible = function (comparator, position) {\n if (position === void 0) { position = null; }\n this.gridBodyCtrl.getScrollFeature().ensureNodeVisible(comparator, position);\n };\n /**\n * Similar to `forEachNode`, except lists all the leaf nodes.\n * This effectively goes through all the data that you provided to the grid before the grid performed any grouping.\n * If using tree data, goes through all the nodes for the data you provided, including nodes that have children,\n * but excluding groups the grid created where gaps were missing in the hierarchy.\n */\n GridApi.prototype.forEachLeafNode = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNode unless using normal row model');\n }\n this.clientSideRowModel.forEachLeafNode(callback);\n };\n /**\n * Iterates through each node (row) in the grid and calls the callback for each node.\n * This works similar to the `forEach` method on a JavaScript array.\n * This is called for every node, ignoring any filtering or sorting applied within the grid.\n * If using the Infinite Row Model, then this gets called for each page loaded in the page cache.\n */\n GridApi.prototype.forEachNode = function (callback) {\n this.rowModel.forEachNode(callback);\n };\n /** Similar to `forEachNode`, except skips any filtered out data. */\n GridApi.prototype.forEachNodeAfterFilter = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNodeAfterFilter unless using normal row model');\n }\n this.clientSideRowModel.forEachNodeAfterFilter(callback);\n };\n /** Similar to `forEachNodeAfterFilter`, except the callbacks are called in the order the rows are displayed in the grid. */\n GridApi.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNodeAfterFilterAndSort unless using normal row model');\n }\n this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);\n };\n /**\n * Returns the filter component instance for a column.\n * `key` can be a string field name or a ColDef object (matches on object reference, useful if field names are not unique).\n * If your filter is created asynchronously, `getFilterInstance` will return `null` so you will need to use the `callback` to access the filter instance instead.\n */\n GridApi.prototype.getFilterInstance = function (key, callback) {\n var res = this.getFilterInstanceImpl(key, function (instance) {\n if (!callback) {\n return;\n }\n var unwrapped = unwrapUserComp(instance);\n callback(unwrapped);\n });\n var unwrapped = unwrapUserComp(res);\n return unwrapped;\n };\n GridApi.prototype.getFilterInstanceImpl = function (key, callback) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (!column) {\n return undefined;\n }\n var filterPromise = this.filterManager.getFilterComponent(column, 'NO_UI');\n var currentValue = filterPromise && filterPromise.resolveNow(null, function (filterComp) { return filterComp; });\n if (currentValue) {\n setTimeout(callback, 0, currentValue);\n }\n else if (filterPromise) {\n filterPromise.then(function (comp) {\n callback(comp);\n });\n }\n return currentValue;\n };\n /** Destroys a filter. Useful to force a particular filter to be created from scratch again. */\n GridApi.prototype.destroyFilter = function (key) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return this.filterManager.destroyFilter(column, \"filterDestroyed\");\n }\n };\n /** Gets the status panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getStatusPanel = function (key) {\n if (!this.statusBarService) {\n return;\n }\n var comp = this.statusBarService.getStatusPanel(key);\n return unwrapUserComp(comp);\n };\n GridApi.prototype.getColumnDef = function (key) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return column.getColDef();\n }\n return null;\n };\n /**\n * Returns the current column definitions.\n */\n GridApi.prototype.getColumnDefs = function () { return this.columnModel.getColumnDefs(); };\n /** Informs the grid that a filter has changed. This is typically called after a filter change through one of the filter APIs. */\n GridApi.prototype.onFilterChanged = function () {\n this.filterManager.onFilterChanged();\n };\n /**\n * Gets the grid to act as if the sort was changed.\n * Useful if you update some values and want to get the grid to reorder them according to the new values.\n */\n GridApi.prototype.onSortChanged = function () {\n this.sortController.onSortChanged('api');\n };\n /** Sets the state of all the advanced filters. Provide it with what you get from `getFilterModel()` to restore filter state. */\n GridApi.prototype.setFilterModel = function (model) {\n this.filterManager.setFilterModel(model);\n };\n /** Gets the current state of all the advanced filters. Used for saving filter state. */\n GridApi.prototype.getFilterModel = function () {\n return this.filterManager.getFilterModel();\n };\n /** Returns the focused cell (or the last focused cell if the grid lost focus). */\n GridApi.prototype.getFocusedCell = function () {\n return this.focusService.getFocusedCell();\n };\n /** Clears the focused cell. */\n GridApi.prototype.clearFocusedCell = function () {\n return this.focusService.clearFocusedCell();\n };\n /** Sets the focus to the specified cell. `rowPinned` can be either 'top', 'bottom' or null (for not pinned). */\n GridApi.prototype.setFocusedCell = function (rowIndex, colKey, rowPinned) {\n this.focusService.setFocusedCell(rowIndex, colKey, rowPinned, true);\n };\n /** Sets the `suppressRowDrag` property. */\n GridApi.prototype.setSuppressRowDrag = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG, value);\n };\n /** Sets the `suppressMoveWhenRowDragging` property. */\n GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG, value);\n };\n /** Sets the `suppressRowClickSelection` property. */\n GridApi.prototype.setSuppressRowClickSelection = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION, value);\n };\n /** Adds a drop zone outside of the grid where rows can be dropped. */\n GridApi.prototype.addRowDropZone = function (params) {\n this.gridBodyCtrl.getRowDragFeature().addRowDropZone(params);\n };\n /** Removes an external drop zone added by `addRowDropZone`. */\n GridApi.prototype.removeRowDropZone = function (params) {\n var activeDropTarget = this.dragAndDropService.findExternalZone(params);\n if (activeDropTarget) {\n this.dragAndDropService.removeDropTarget(activeDropTarget);\n }\n };\n /** Returns the `RowDropZoneParams` to be used by another grid's `addRowDropZone` method. */\n GridApi.prototype.getRowDropZoneParams = function (events) {\n return this.gridBodyCtrl.getRowDragFeature().getRowDropZone(events);\n };\n /** Sets the height in pixels for the row containing the column label header. */\n GridApi.prototype.setHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_HEADER_HEIGHT, headerHeight);\n };\n /**\n * Switch between layout options: `normal`, `autoHeight`, `print`.\n * Defaults to `normal` if no domLayout provided.\n */\n GridApi.prototype.setDomLayout = function (domLayout) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DOM_LAYOUT, domLayout);\n };\n /** Sets the `enableCellTextSelection` property. */\n GridApi.prototype.setEnableCellTextSelection = function (selectable) {\n this.gridBodyCtrl.setCellTextSelection(selectable);\n };\n /** Sets the preferred direction for the selection fill handle. */\n GridApi.prototype.setFillHandleDirection = function (direction) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION, direction);\n };\n /** Sets the height in pixels for the rows containing header column groups. */\n GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, headerHeight);\n };\n /** Sets the height in pixels for the row containing the floating filters. */\n GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, headerHeight);\n };\n /** Sets the height in pixels for the row containing the columns when in pivot mode. */\n GridApi.prototype.setPivotHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, headerHeight);\n };\n /** Sets the height in pixels for the row containing header column groups when in pivot mode. */\n GridApi.prototype.setPivotGroupHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, headerHeight);\n };\n GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT, isExternalFilterPresentFunc);\n };\n GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS, doesExternalFilterPassFunc);\n };\n GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL, navigateToNextCellFunc);\n };\n GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL, tabToNextCellFunc);\n };\n GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER, tabToNextHeaderFunc);\n };\n GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER, navigateToNextHeaderFunc);\n };\n GridApi.prototype.setGroupRowAggNodes = function (groupRowAggNodesFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES, groupRowAggNodesFunc);\n };\n GridApi.prototype.setGetGroupRowAgg = function (getGroupRowAggFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_GROUP_ROW_AGG, getGroupRowAggFunc);\n };\n GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE, getBusinessKeyForNodeFunc);\n };\n GridApi.prototype.setGetChildCount = function (getChildCountFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CHILD_COUNT, getChildCountFunc);\n };\n GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE, processRowPostCreateFunc);\n };\n GridApi.prototype.setGetRowNodeId = function (getRowNodeIdFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_NODE_ID, getRowNodeIdFunc);\n };\n GridApi.prototype.setGetRowId = function (getRowIdFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_ID, getRowIdFunc);\n };\n GridApi.prototype.setGetRowClass = function (rowClassFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_CLASS, rowClassFunc);\n };\n GridApi.prototype.setIsFullWidthCell = function (isFullWidthCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL, isFullWidthCellFunc);\n };\n GridApi.prototype.setIsFullWidthRow = function (isFullWidthRowFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_FULL_WIDTH_ROW, isFullWidthRowFunc);\n };\n GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_ROW_SELECTABLE, isRowSelectableFunc);\n };\n GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_ROW_MASTER, isRowMasterFunc);\n };\n GridApi.prototype.setPostSort = function (postSortFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_SORT, postSortFunc);\n };\n GridApi.prototype.setPostSortRows = function (postSortRowsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_SORT_ROWS, postSortRowsFunc);\n };\n GridApi.prototype.setGetDocument = function (getDocumentFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_DOCUMENT, getDocumentFunc);\n };\n GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS, getContextMenuItemsFunc);\n };\n GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS, getMainMenuItemsFunc);\n };\n GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD, processCellForClipboardFunc);\n };\n GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD, sendToClipboardFunc);\n };\n GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD, processCellFromClipboardFunc);\n };\n GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_TO_SECONDARY_COLDEF, processSecondaryColDefFunc);\n };\n GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_SECONDARY_COL_GROUP_DEF, processSecondaryColGroupDefFunc);\n };\n GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_PROCESS_POPUP, postProcessPopupFunc);\n };\n GridApi.prototype.setDefaultGroupOrderComparator = function (defaultGroupOrderComparatorFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DEFAULT_GROUP_ORDER_COMPARATOR, defaultGroupOrderComparatorFunc);\n };\n GridApi.prototype.setInitialGroupOrderComparator = function (initialGroupOrderComparatorFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_INITIAL_GROUP_ORDER_COMPARATOR, initialGroupOrderComparatorFunc);\n };\n GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS, getChartToolbarItemsFunc);\n };\n GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER, paginationNumberFormatterFunc);\n };\n GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_SERVER_SIDE_STORE_PARAMS, getServerSideStoreParamsFunc);\n };\n GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT, isServerSideGroupOpenByDefaultFunc);\n };\n GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION, isApplyServerSideTransactionFunc);\n };\n GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP, isServerSideGroupFunc);\n };\n GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY, getServerSideGroupKeyFunc);\n };\n GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_STYLE, rowStyleFunc);\n };\n GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_HEIGHT, rowHeightFunc);\n };\n /** Returns `true` if the side bar is visible. */\n GridApi.prototype.isSideBarVisible = function () {\n return this.sideBarComp ? this.sideBarComp.isDisplayed() : false;\n };\n /** Show/hide the entire side bar, including any visible panel and the tab buttons. */\n GridApi.prototype.setSideBarVisible = function (show) {\n if (!this.sideBarComp) {\n if (show) {\n console.warn('AG Grid: sideBar is not loaded');\n }\n return;\n }\n this.sideBarComp.setDisplayed(show);\n };\n /** Sets the side bar position relative to the grid. Possible values are `'left'` or `'right'`. */\n GridApi.prototype.setSideBarPosition = function (position) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: sideBar is not loaded');\n return;\n }\n this.sideBarComp.setSideBarPosition(position);\n };\n /** Opens a particular tool panel. Provide the ID of the tool panel to open. */\n GridApi.prototype.openToolPanel = function (key) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n this.sideBarComp.openToolPanel(key);\n };\n /** Closes the currently open tool panel (if any). */\n GridApi.prototype.closeToolPanel = function () {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n this.sideBarComp.close();\n };\n /** Returns the ID of the currently shown tool panel if any, otherwise `null`. */\n GridApi.prototype.getOpenedToolPanel = function () {\n return this.sideBarComp ? this.sideBarComp.openedItem() : null;\n };\n /** Returns the current side bar configuration. If a shortcut was used, returns the detailed long form. */\n GridApi.prototype.getSideBar = function () {\n return this.gridOptionsWrapper.getSideBar();\n };\n /** Resets the side bar to the provided configuration. The parameter is the same as the sideBar grid property. The side bar is re-created from scratch with the new config. */\n GridApi.prototype.setSideBar = function (def) {\n this.gridOptionsWrapper.setProperty('sideBar', SideBarDefParser.parse(def));\n };\n GridApi.prototype.setSuppressClipboardPaste = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE, value);\n };\n /** Returns `true` if the tool panel is showing, otherwise `false`. */\n GridApi.prototype.isToolPanelShowing = function () {\n return this.sideBarComp.isToolPanelShowing();\n };\n GridApi.prototype.doLayout = function () {\n var message = \"AG Grid - since version 25.1, doLayout was taken out, as it's not needed. The grid responds to grid size changes automatically\";\n doOnce(function () { return console.warn(message); }, 'doLayoutDeprecated');\n };\n /** Tells the grid to recalculate the row heights. */\n GridApi.prototype.resetRowHeights = function () {\n if (exists(this.clientSideRowModel)) {\n if (this.columnModel.isAutoRowHeightActive()) {\n console.warn('AG Grid: calling gridApi.resetRowHeights() makes no sense when using Auto Row Height.');\n return;\n }\n this.clientSideRowModel.resetRowHeights();\n }\n };\n GridApi.prototype.setGroupRemoveSingleChildren = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN, value);\n };\n GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, value);\n };\n /** Tells the grid a row height has changed. To be used after calling `rowNode.setRowHeight(newHeight)`. */\n GridApi.prototype.onRowHeightChanged = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.onRowHeightChanged();\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.onRowHeightChanged();\n }\n };\n /**\n * Gets the value for a column for a particular `rowNode` (row).\n * This is useful if you want the raw value of a cell e.g. if implementing your own CSV export.\n */\n GridApi.prototype.getValue = function (colKey, rowNode) {\n var column = this.columnModel.getPrimaryColumn(colKey);\n if (missing(column)) {\n column = this.columnModel.getGridColumn(colKey);\n }\n if (missing(column)) {\n return null;\n }\n return this.valueService.getValue(column, rowNode);\n };\n /** Add an event listener for the specified `eventType`. Works similar to `addEventListener` for a browser DOM element. */\n GridApi.prototype.addEventListener = function (eventType, listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.addEventListener(eventType, listener, async);\n };\n /** Add an event listener for all event types coming from the grid. */\n GridApi.prototype.addGlobalListener = function (listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.addGlobalListener(listener, async);\n };\n /** Remove an event listener. */\n GridApi.prototype.removeEventListener = function (eventType, listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.removeEventListener(eventType, listener, async);\n };\n /** Remove a global event listener. */\n GridApi.prototype.removeGlobalListener = function (listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.removeGlobalListener(listener, async);\n };\n GridApi.prototype.dispatchEvent = function (event) {\n this.eventService.dispatchEvent(event);\n };\n /** Will destroy the grid and release resources. If you are using a framework you do not need to call this, as the grid links in with the framework lifecycle. However if you are using Web Components or native JavaScript, you do need to call this, to avoid a memory leak in your application. */\n GridApi.prototype.destroy = function () {\n // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part\n // of context.destroy(). so we need to stop the infinite loop.\n if (this.destroyCalled) {\n return;\n }\n this.destroyCalled = true;\n // destroy the UI first (as they use the services)\n var gridCtrl = this.ctrlsService.getGridCtrl();\n if (gridCtrl) {\n gridCtrl.destroyGridUi();\n }\n // destroy the services\n this.context.destroy();\n };\n GridApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in the API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(removeAllReferences.bind(window, this, 'Grid API'), 100);\n };\n GridApi.prototype.warnIfDestroyed = function (methodName) {\n if (this.destroyCalled) {\n console.warn(\"AG Grid: Grid API method \" + methodName + \" was called on a grid that was destroyed.\");\n }\n return this.destroyCalled;\n };\n /** Reset the quick filter cache text on every rowNode. */\n GridApi.prototype.resetQuickFilter = function () {\n if (this.warnIfDestroyed('resetQuickFilter')) {\n return;\n }\n this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });\n };\n GridApi.prototype.getRangeSelections = function () {\n console.warn(\"AG Grid: in v20.1.x, api.getRangeSelections() is gone, please use getCellRanges() instead.\\n We had to change how cell selections works a small bit to allow charting to integrate. The return type of\\n getCellRanges() is a bit different, please check the AG Grid documentation.\");\n return null;\n };\n /** Returns the list of selected cell ranges. */\n GridApi.prototype.getCellRanges = function () {\n if (this.rangeService) {\n return this.rangeService.getCellRanges();\n }\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n return null;\n };\n GridApi.prototype.camelCaseToHumanReadable = function (camelCase) {\n return camelCaseToHumanText(camelCase);\n };\n GridApi.prototype.addRangeSelection = function (deprecatedNoLongerUsed) {\n console.warn('AG Grid: As of version 21.x, range selection changed slightly to allow charting integration. Please call api.addCellRange() instead of api.addRangeSelection()');\n };\n /** Adds the provided cell range to the selected ranges. */\n GridApi.prototype.addCellRange = function (params) {\n if (!this.rangeService) {\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n }\n this.rangeService.addCellRange(params);\n };\n /** Clears the selected ranges. */\n GridApi.prototype.clearRangeSelection = function () {\n if (!this.rangeService) {\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n }\n this.rangeService.removeAllCellRanges();\n };\n /** Reverts the last cell edit. */\n GridApi.prototype.undoCellEditing = function () {\n this.undoRedoService.undo();\n };\n /** Re-applies the most recently undone cell edit. */\n GridApi.prototype.redoCellEditing = function () {\n this.undoRedoService.redo();\n };\n /** Returns current number of available cell edit undo operations. */\n GridApi.prototype.getCurrentUndoSize = function () {\n return this.undoRedoService.getCurrentUndoStackSize();\n };\n /** Returns current number of available cell edit redo operations. */\n GridApi.prototype.getCurrentRedoSize = function () {\n return this.undoRedoService.getCurrentRedoStackSize();\n };\n /** Returns a list of models with information about the charts that are currently rendered from the grid. */\n GridApi.prototype.getChartModels = function () {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.getChartModels') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.getChartModels')) {\n return this.chartService.getChartModels();\n }\n };\n /** Returns the `ChartRef` using the supplied `chartId`. */\n GridApi.prototype.getChartRef = function (chartId) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.getChartRef') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.getChartRef')) {\n return this.chartService.getChartRef(chartId);\n }\n };\n /** Returns a string containing the requested data URL which contains a representation of the chart image. */\n GridApi.prototype.getChartImageDataURL = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.getChartImageDataURL') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.getChartImageDataURL')) {\n return this.chartService.getChartImageDataURL(params);\n }\n };\n /** Used to programmatically create charts from a range. */\n GridApi.prototype.createRangeChart = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.createRangeChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.createRangeChart')) {\n return this.chartService.createRangeChart(params);\n }\n };\n /** Used to programmatically create cross filter charts from a range. */\n GridApi.prototype.createCrossFilterChart = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.createCrossFilterChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.createCrossFilterChart')) {\n return this.chartService.createCrossFilterChart(params);\n }\n };\n /** Restores a chart using the `ChartModel` that was previously obtained from `getChartModels()`. */\n GridApi.prototype.restoreChart = function (chartModel, chartContainer) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.restoreChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.restoreChart')) {\n return this.chartService.restoreChart(chartModel, chartContainer);\n }\n };\n /** Used to programmatically create pivot charts from a grid. */\n GridApi.prototype.createPivotChart = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.createPivotChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.createPivotChart')) {\n return this.chartService.createPivotChart(params);\n }\n };\n /** Copies the selected rows to the clipboard. */\n GridApi.prototype.copySelectedRowsToClipboard = function (params) {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copySelectedRowsToClipboard(params);\n };\n /** Copies the selected ranges to the clipboard. */\n GridApi.prototype.copySelectedRangeToClipboard = function (params) {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copySelectedRangeToClipboard(params);\n };\n /** Copies the selected range down, similar to `Ctrl + D` in Excel. */\n GridApi.prototype.copySelectedRangeDown = function () {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copyRangeDown();\n };\n /** Shows the column menu after and positions it relative to the provided button element. Use in conjunction with your own header template. */\n GridApi.prototype.showColumnMenuAfterButtonClick = function (colKey, buttonElement) {\n // use grid column so works with pivot mode\n var column = this.columnModel.getGridColumn(colKey);\n this.menuFactory.showMenuAfterButtonClick(column, buttonElement, 'columnMenu');\n };\n /** Shows the column menu after and positions it relative to the mouse event. Use in conjunction with your own header template. */\n GridApi.prototype.showColumnMenuAfterMouseClick = function (colKey, mouseEvent) {\n // use grid column so works with pivot mode\n var column = this.columnModel.getGridColumn(colKey);\n if (!column) {\n column = this.columnModel.getPrimaryColumn(colKey);\n }\n if (!column) {\n console.error(\"AG Grid: column '\" + colKey + \"' not found\");\n return;\n }\n this.menuFactory.showMenuAfterMouseEvent(column, mouseEvent);\n };\n /** Hides any visible context menu or column menu. */\n GridApi.prototype.hidePopupMenu = function () {\n // hide the context menu if in enterprise\n if (this.contextMenuFactory) {\n this.contextMenuFactory.hideActiveMenu();\n }\n // and hide the column menu always\n this.menuFactory.hideActiveMenu();\n };\n /** DOM element to use as the popup parent for grid popups (context menu, column menu etc). */\n GridApi.prototype.setPopupParent = function (ePopupParent) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POPUP_PARENT, ePopupParent);\n };\n /** Navigates the grid focus to the next cell, as if tabbing. */\n GridApi.prototype.tabToNextCell = function (event) {\n return this.navigationService.tabToNextCell(false, event);\n };\n /** Navigates the grid focus to the previous cell, as if shift-tabbing. */\n GridApi.prototype.tabToPreviousCell = function (event) {\n return this.navigationService.tabToNextCell(true, event);\n };\n /** Returns the list of active cell renderer instances. */\n GridApi.prototype.getCellRendererInstances = function (params) {\n if (params === void 0) { params = {}; }\n var res = this.rowRenderer.getCellRendererInstances(params);\n var unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n };\n /** Returns the list of active cell editor instances. Optionally provide parameters to restrict to certain columns / row nodes. */\n GridApi.prototype.getCellEditorInstances = function (params) {\n if (params === void 0) { params = {}; }\n var res = this.rowRenderer.getCellEditorInstances(params);\n var unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n };\n /** If the grid is editing, returns back details of the editing cell(s). */\n GridApi.prototype.getEditingCells = function () {\n return this.rowRenderer.getEditingCells();\n };\n /** If a cell is editing, it stops the editing. Pass `true` if you want to cancel the editing (i.e. don't accept changes). */\n GridApi.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.rowRenderer.stopEditing(cancel);\n };\n /** Start editing the provided cell. If another cell is editing, the editing will be stopped in that other cell. */\n GridApi.prototype.startEditingCell = function (params) {\n var column = this.columnModel.getGridColumn(params.colKey);\n if (!column) {\n console.warn(\"AG Grid: no column found for \" + params.colKey);\n return;\n }\n var cellPosition = {\n rowIndex: params.rowIndex,\n rowPinned: params.rowPinned || null,\n column: column\n };\n var notPinned = params.rowPinned == null;\n if (notPinned) {\n this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(params.rowIndex);\n }\n var cell = this.navigationService.getCellByPosition(cellPosition);\n if (!cell) {\n return;\n }\n cell.startRowOrCellEdit(params.key, params.charPress);\n };\n /** Add an aggregation function with the specified key. */\n GridApi.prototype.addAggFunc = function (key, aggFunc) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFunc(key, aggFunc);\n }\n };\n /** Add aggregations function with the specified keys. */\n GridApi.prototype.addAggFuncs = function (aggFuncs) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFuncs(aggFuncs);\n }\n };\n /** Clears all aggregation functions (including those provided by the grid). */\n GridApi.prototype.clearAggFuncs = function () {\n if (this.aggFuncService) {\n this.aggFuncService.clear();\n }\n };\n /** Apply transactions to the server side row model. */\n GridApi.prototype.applyServerSideTransaction = function (transaction) {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.applyTransaction(transaction);\n };\n GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);\n };\n /** Gets all failed server side loads to retry. */\n GridApi.prototype.retryServerSideLoads = function () {\n if (!this.serverSideRowModel) {\n console.warn('AG Grid: API retryServerSideLoads() can only be used when using Server-Side Row Model.');\n return;\n }\n this.serverSideRowModel.retryLoads();\n };\n GridApi.prototype.flushServerSideAsyncTransactions = function () {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot flush Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.flushAsyncTransactions();\n };\n /** Update row data. Pass a transaction object with lists for `add`, `remove` and `update`. */\n GridApi.prototype.applyTransaction = function (rowDataTransaction) {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: updateRowData() only works with ClientSideRowModel. Working with InfiniteRowModel was deprecated in v23.1 and removed in v24.1');\n return;\n }\n var res = this.clientSideRowModel.updateRowData(rowDataTransaction);\n // refresh all the full width rows\n this.rowRenderer.refreshFullWidthRows(res.update);\n // do change detection for all present cells\n if (!this.gridOptionsWrapper.isSuppressChangeDetection()) {\n this.rowRenderer.refreshCells();\n }\n return res;\n };\n /** Sets the `deltaSort` property */\n GridApi.prototype.setDeltaSort = function (enable) {\n this.gridOptionsWrapper.setProperty('deltaSort', enable);\n };\n /** @deprecated */\n GridApi.prototype.updateRowData = function (rowDataTransaction) {\n var message = 'AG Grid: as of v23.1, grid API updateRowData(transaction) is now called applyTransaction(transaction). updateRowData is deprecated and will be removed in a future major release.';\n doOnce(function () { return console.warn(message); }, 'updateRowData deprecated');\n return this.applyTransaction(rowDataTransaction);\n };\n /** Same as `applyTransaction` except executes asynchronously for efficiency. */\n GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');\n return;\n }\n this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback);\n };\n /** Executes any remaining asynchronous grid transactions, if any are waiting to be executed. */\n GridApi.prototype.flushAsyncTransactions = function () {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');\n return;\n }\n this.clientSideRowModel.flushAsyncTransactions();\n };\n /** @deprecated */\n GridApi.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {\n var message = 'AG Grid: as of v23.1, grid API batchUpdateRowData(transaction, callback) is now called applyTransactionAsync(transaction, callback). batchUpdateRowData is deprecated and will be removed in a future major release.';\n doOnce(function () { return console.warn(message); }, 'batchUpdateRowData deprecated');\n this.applyTransactionAsync(rowDataTransaction, callback);\n };\n GridApi.prototype.insertItemsAtIndex = function (index, items, skipRefresh) {\n console.warn('AG Grid: insertItemsAtIndex() is deprecated, use updateRowData(transaction) instead.');\n this.updateRowData({ add: items, addIndex: index, update: null, remove: null });\n };\n GridApi.prototype.removeItems = function (rowNodes, skipRefresh) {\n console.warn('AG Grid: removeItems() is deprecated, use updateRowData(transaction) instead.');\n var dataToRemove = rowNodes.map(function (rowNode) { return rowNode.data; });\n this.updateRowData({ add: null, addIndex: null, update: null, remove: dataToRemove });\n };\n GridApi.prototype.addItems = function (items, skipRefresh) {\n console.warn('AG Grid: addItems() is deprecated, use updateRowData(transaction) instead.');\n this.updateRowData({ add: items, addIndex: null, update: null, remove: null });\n };\n GridApi.prototype.refreshVirtualPageCache = function () {\n console.warn('AG Grid: refreshVirtualPageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');\n this.refreshInfiniteCache();\n };\n GridApi.prototype.refreshInfinitePageCache = function () {\n console.warn('AG Grid: refreshInfinitePageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');\n this.refreshInfiniteCache();\n };\n /**\n * Marks all the currently loaded blocks in the cache for reload.\n * If you have 10 blocks in the cache, all 10 will be marked for reload.\n * The old data will continue to be displayed until the new data is loaded.\n */\n GridApi.prototype.refreshInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.refreshCache();\n }\n else {\n console.warn(\"AG Grid: api.refreshInfiniteCache is only available when rowModelType='infinite'.\");\n }\n };\n GridApi.prototype.purgeVirtualPageCache = function () {\n console.warn('AG Grid: purgeVirtualPageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');\n this.purgeInfinitePageCache();\n };\n GridApi.prototype.purgeInfinitePageCache = function () {\n console.warn('AG Grid: purgeInfinitePageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');\n this.purgeInfiniteCache();\n };\n /**\n * Purges the cache.\n * The grid is then told to refresh. Only the blocks required to display the current data on screen are fetched (typically no more than 2).\n * The grid will display nothing while the new blocks are loaded.\n * Use this to immediately remove the old data from the user.\n */\n GridApi.prototype.purgeInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.purgeCache();\n }\n else {\n console.warn(\"AG Grid: api.purgeInfiniteCache is only available when rowModelType='infinite'.\");\n }\n };\n /** @deprecated */\n GridApi.prototype.purgeEnterpriseCache = function (route) {\n console.warn(\"ag-grid: since version 18.x, api.purgeEnterpriseCache() should be replaced with api.purgeServerSideCache()\");\n this.purgeServerSideCache(route);\n };\n /** @deprecated */\n GridApi.prototype.purgeServerSideCache = function (route) {\n if (route === void 0) { route = []; }\n if (this.serverSideRowModel) {\n console.warn(\"AG Grid: since v25.0, api.purgeServerSideCache is deprecated. Please use api.refreshServerSideStore({purge: true}) instead.\");\n this.refreshServerSideStore({\n route: route,\n purge: true\n });\n }\n else {\n console.warn(\"AG Grid: api.purgeServerSideCache is only available when rowModelType='serverSide'.\");\n }\n };\n /**\n * Refresh a server-side store.\n * If you pass no parameters, then the top level cache is purged.\n * To purge a child cache, pass in the string of keys to get to the child cache.\n */\n GridApi.prototype.refreshServerSideStore = function (params) {\n if (this.serverSideRowModel) {\n this.serverSideRowModel.refreshStore(params);\n }\n else {\n console.warn(\"AG Grid: api.refreshServerSideStore is only available when rowModelType='serverSide'.\");\n }\n };\n /** Returns info on all server side stores. */\n GridApi.prototype.getServerSideStoreState = function () {\n if (this.serverSideRowModel) {\n return this.serverSideRowModel.getStoreState();\n }\n else {\n console.warn(\"AG Grid: api.getServerSideStoreState is only available when rowModelType='serverSide'.\");\n return [];\n }\n };\n GridApi.prototype.getVirtualRowCount = function () {\n console.warn('AG Grid: getVirtualRowCount() is now called getInfiniteRowCount(), please call getInfiniteRowCount() instead');\n return this.getInfiniteRowCount();\n };\n /** The row count defines how many rows the grid allows scrolling to. */\n GridApi.prototype.getInfiniteRowCount = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.getRowCount();\n }\n else {\n console.warn(\"AG Grid: api.getVirtualRowCount is only available when rowModelType='virtual'.\");\n }\n };\n GridApi.prototype.isMaxRowFound = function () {\n console.warn(\"AG Grid: api.isLastRowIndexKnown is deprecated, please use api.isLastRowIndexKnown()\");\n return this.isLastRowIndexKnown();\n };\n /** Returns `true` if grid allows for scrolling past the last row to load more rows, thus providing infinite scroll. */\n GridApi.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.isLastRowIndexKnown();\n }\n else {\n console.warn(\"AG Grid: api.isMaxRowFound is only available when rowModelType='virtual'.\");\n }\n };\n GridApi.prototype.setVirtualRowCount = function (rowCount, maxRowFound) {\n console.warn('AG Grid: setVirtualRowCount() is now called setInfiniteRowCount(), please call setInfiniteRowCount() instead');\n this.setRowCount(rowCount, maxRowFound);\n };\n GridApi.prototype.setInfiniteRowCount = function (rowCount, maxRowFound) {\n console.warn('AG Grid: setInfiniteRowCount() is now called setRowCount(), please call setRowCount() instead');\n this.setRowCount(rowCount, maxRowFound);\n };\n /**\n * Sets the `rowCount` and `lastRowIndexKnown` properties.\n * The second parameter, `lastRowIndexKnown`, is optional and if left out, only `rowCount` is set.\n * Set `rowCount` to adjust the height of the vertical scroll.\n * Set `lastRowIndexKnown` to enable / disable searching for more rows.\n * Use this method if you add or remove rows into the dataset and need to reset the number of rows or put the data back into 'look for data' mode.\n */\n GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.setRowCount(rowCount, maxRowFound);\n }\n else {\n console.warn(\"AG Grid: api.setRowCount is only available for Infinite Row Model.\");\n }\n };\n GridApi.prototype.getVirtualPageState = function () {\n console.warn('AG Grid: getVirtualPageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');\n return this.getCacheBlockState();\n };\n GridApi.prototype.getInfinitePageState = function () {\n console.warn('AG Grid: getInfinitePageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');\n return this.getCacheBlockState();\n };\n /**\n * Returns an object representing the state of the cache. This is useful for debugging and understanding how the cache is working.\n */\n GridApi.prototype.getCacheBlockState = function () {\n return this.rowNodeBlockLoader.getBlockState();\n };\n GridApi.prototype.checkGridSize = function () {\n console.warn(\"in AG Grid v25.2.0, checkGridSize() was removed, as it was legacy and didn't do anything uesful.\");\n };\n GridApi.prototype.getFirstRenderedRow = function () {\n console.warn('in AG Grid v12, getFirstRenderedRow() was renamed to getFirstDisplayedRow()');\n return this.getFirstDisplayedRow();\n };\n /** Get the index of the first displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n GridApi.prototype.getFirstDisplayedRow = function () {\n return this.rowRenderer.getFirstVirtualRenderedRow();\n };\n GridApi.prototype.getLastRenderedRow = function () {\n console.warn('in AG Grid v12, getLastRenderedRow() was renamed to getLastDisplayedRow()');\n return this.getLastDisplayedRow();\n };\n /** Get the index of the last displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n GridApi.prototype.getLastDisplayedRow = function () {\n return this.rowRenderer.getLastVirtualRenderedRow();\n };\n /** Returns the displayed `RowNode` at the given `index`. */\n GridApi.prototype.getDisplayedRowAtIndex = function (index) {\n return this.rowModel.getRow(index);\n };\n /** Returns the total number of displayed rows. */\n GridApi.prototype.getDisplayedRowCount = function () {\n return this.rowModel.getRowCount();\n };\n /**\n * Returns `true` when the last page is known.\n * This will always be `true` if you are using the Client-Side Row Model for pagination.\n * Returns `false` when the last page is not known; this only happens when using Infinite Row Model.\n */\n GridApi.prototype.paginationIsLastPageFound = function () {\n return this.paginationProxy.isLastPageFound();\n };\n /** Returns how many rows are being shown per page. */\n GridApi.prototype.paginationGetPageSize = function () {\n return this.paginationProxy.getPageSize();\n };\n /** Sets the `paginationPageSize`, then re-paginates the grid so the changes are applied immediately. */\n GridApi.prototype.paginationSetPageSize = function (size) {\n this.gridOptionsWrapper.setProperty('paginationPageSize', size);\n };\n /** Returns the 0-based index of the page which is showing. */\n GridApi.prototype.paginationGetCurrentPage = function () {\n return this.paginationProxy.getCurrentPage();\n };\n /** Returns the total number of pages. Returns `null` if `paginationIsLastPageFound() === false`. */\n GridApi.prototype.paginationGetTotalPages = function () {\n return this.paginationProxy.getTotalPages();\n };\n /** The total number of rows. Returns `null` if `paginationIsLastPageFound() === false`. */\n GridApi.prototype.paginationGetRowCount = function () {\n return this.paginationProxy.getMasterRowCount();\n };\n /** Navigates to the next page. */\n GridApi.prototype.paginationGoToNextPage = function () {\n this.paginationProxy.goToNextPage();\n };\n /** Navigates to the previous page. */\n GridApi.prototype.paginationGoToPreviousPage = function () {\n this.paginationProxy.goToPreviousPage();\n };\n /** Navigates to the first page. */\n GridApi.prototype.paginationGoToFirstPage = function () {\n this.paginationProxy.goToFirstPage();\n };\n /** Navigates to the last page. */\n GridApi.prototype.paginationGoToLastPage = function () {\n this.paginationProxy.goToLastPage();\n };\n /** Goes to the specified page. If the page requested doesn't exist, it will go to the last page. */\n GridApi.prototype.paginationGoToPage = function (page) {\n this.paginationProxy.goToPage(page);\n };\n GridApi.prototype.setRowClass = function (className) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_ROW_CLASS, className);\n };\n __decorate$18([\n Optional('immutableService')\n ], GridApi.prototype, \"immutableService\", void 0);\n __decorate$18([\n Optional('csvCreator')\n ], GridApi.prototype, \"csvCreator\", void 0);\n __decorate$18([\n Optional('excelCreator')\n ], GridApi.prototype, \"excelCreator\", void 0);\n __decorate$18([\n Autowired('rowRenderer')\n ], GridApi.prototype, \"rowRenderer\", void 0);\n __decorate$18([\n Autowired('navigationService')\n ], GridApi.prototype, \"navigationService\", void 0);\n __decorate$18([\n Autowired('filterManager')\n ], GridApi.prototype, \"filterManager\", void 0);\n __decorate$18([\n Autowired('columnModel')\n ], GridApi.prototype, \"columnModel\", void 0);\n __decorate$18([\n Autowired('selectionService')\n ], GridApi.prototype, \"selectionService\", void 0);\n __decorate$18([\n Autowired('gridOptionsWrapper')\n ], GridApi.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$18([\n Autowired('valueService')\n ], GridApi.prototype, \"valueService\", void 0);\n __decorate$18([\n Autowired('alignedGridsService')\n ], GridApi.prototype, \"alignedGridsService\", void 0);\n __decorate$18([\n Autowired('eventService')\n ], GridApi.prototype, \"eventService\", void 0);\n __decorate$18([\n Autowired('pinnedRowModel')\n ], GridApi.prototype, \"pinnedRowModel\", void 0);\n __decorate$18([\n Autowired('context')\n ], GridApi.prototype, \"context\", void 0);\n __decorate$18([\n Autowired('rowModel')\n ], GridApi.prototype, \"rowModel\", void 0);\n __decorate$18([\n Autowired('sortController')\n ], GridApi.prototype, \"sortController\", void 0);\n __decorate$18([\n Autowired('paginationProxy')\n ], GridApi.prototype, \"paginationProxy\", void 0);\n __decorate$18([\n Autowired('focusService')\n ], GridApi.prototype, \"focusService\", void 0);\n __decorate$18([\n Autowired('dragAndDropService')\n ], GridApi.prototype, \"dragAndDropService\", void 0);\n __decorate$18([\n Optional('rangeService')\n ], GridApi.prototype, \"rangeService\", void 0);\n __decorate$18([\n Optional('clipboardService')\n ], GridApi.prototype, \"clipboardService\", void 0);\n __decorate$18([\n Optional('aggFuncService')\n ], GridApi.prototype, \"aggFuncService\", void 0);\n __decorate$18([\n Autowired('menuFactory')\n ], GridApi.prototype, \"menuFactory\", void 0);\n __decorate$18([\n Optional('contextMenuFactory')\n ], GridApi.prototype, \"contextMenuFactory\", void 0);\n __decorate$18([\n Autowired('valueCache')\n ], GridApi.prototype, \"valueCache\", void 0);\n __decorate$18([\n Autowired('animationFrameService')\n ], GridApi.prototype, \"animationFrameService\", void 0);\n __decorate$18([\n Optional('statusBarService')\n ], GridApi.prototype, \"statusBarService\", void 0);\n __decorate$18([\n Optional('chartService')\n ], GridApi.prototype, \"chartService\", void 0);\n __decorate$18([\n Optional('undoRedoService')\n ], GridApi.prototype, \"undoRedoService\", void 0);\n __decorate$18([\n Optional('rowNodeBlockLoader')\n ], GridApi.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$18([\n Optional('ssrmTransactionManager')\n ], GridApi.prototype, \"serverSideTransactionManager\", void 0);\n __decorate$18([\n Autowired('ctrlsService')\n ], GridApi.prototype, \"ctrlsService\", void 0);\n __decorate$18([\n Optional('frameworkComponentWrapper')\n ], GridApi.prototype, \"frameworkComponentWrapper\", void 0);\n __decorate$18([\n PostConstruct\n ], GridApi.prototype, \"init\", null);\n __decorate$18([\n PreDestroy\n ], GridApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n GridApi = __decorate$18([\n Bean('gridApi')\n ], GridApi);\n return GridApi;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$19 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetLeftFeature = /** @class */ (function (_super) {\n __extends$1l(SetLeftFeature, _super);\n function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {\n var _this = _super.call(this) || this;\n _this.columnOrGroup = columnOrGroup;\n _this.eCell = eCell;\n _this.ariaEl = _this.eCell.querySelector('[role=columnheader]') || _this.eCell;\n _this.colsSpanning = colsSpanning;\n _this.beans = beans;\n return _this;\n }\n SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {\n this.colsSpanning = colsSpanning;\n this.onLeftChanged();\n };\n SetLeftFeature.prototype.getColumnOrGroup = function () {\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n return last(this.colsSpanning);\n }\n return this.columnOrGroup;\n };\n SetLeftFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.columnOrGroup, Column.EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));\n this.setLeftFirstTime();\n // when in print layout, the left position is also dependent on the width of the pinned sections.\n // so additionally update left if any column width changes.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));\n // setting left has a dependency on print layout\n this.addManagedListener(this.beans.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onLeftChanged.bind(this));\n };\n SetLeftFeature.prototype.setLeftFirstTime = function () {\n var suppressMoveAnimation = this.beans.gridOptionsWrapper.isSuppressColumnMoveAnimation();\n var oldLeftExists = exists(this.columnOrGroup.getOldLeft());\n var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;\n if (animateColumnMove) {\n this.animateInLeft();\n }\n else {\n this.onLeftChanged();\n }\n };\n SetLeftFeature.prototype.animateInLeft = function () {\n var _this = this;\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n var oldLeft = colOrGroup.getOldLeft();\n var oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);\n var actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(oldActualLeft);\n // we must keep track of the left we want to set to, as this would otherwise lead to a race\n // condition, if the user changed the left value many times in one VM turn, then we want to make\n // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left\n // position. eg if user changes column position twice, then setLeft() below executes twice in next\n // VM turn, but only one (the correct one) should get applied.\n this.actualLeft = actualLeft;\n this.beans.columnAnimationService.executeNextVMTurn(function () {\n // test this left value is the latest one to be applied, and if not, do nothing\n if (_this.actualLeft === actualLeft) {\n _this.setLeft(actualLeft);\n }\n });\n };\n SetLeftFeature.prototype.onLeftChanged = function () {\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(this.actualLeft);\n };\n SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {\n var printLayout = this.beans.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n if (!printLayout) {\n return leftPosition;\n }\n if (colOrGroup.getPinned() === Constants.PINNED_LEFT) {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (colOrGroup.getPinned() === Constants.PINNED_RIGHT) {\n var bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + leftPosition;\n }\n // is in body\n return leftWidth + leftPosition;\n };\n SetLeftFeature.prototype.setLeft = function (value) {\n // if the value is null, then that means the column is no longer\n // displayed. there is logic in the rendering to fade these columns\n // out, so we don't try and change their left positions.\n if (exists(value)) {\n this.eCell.style.left = value + \"px\";\n }\n var indexColumn;\n if (this.columnOrGroup instanceof Column) {\n indexColumn = this.columnOrGroup;\n }\n else {\n var columnGroup = this.columnOrGroup;\n var children = columnGroup.getLeafColumns();\n if (!children.length) {\n return;\n }\n if (children.length > 1) {\n setAriaColSpan(this.ariaEl, children.length);\n }\n indexColumn = children[0];\n }\n var index = this.beans.columnModel.getAriaColumnIndex(indexColumn);\n setAriaColIndex(this.ariaEl, index);\n };\n __decorate$19([\n PostConstruct\n ], SetLeftFeature.prototype, \"postConstruct\", null);\n return SetLeftFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HoverFeature = /** @class */ (function (_super) {\n __extends$1m(HoverFeature, _super);\n function HoverFeature(columns, element) {\n var _this = _super.call(this) || this;\n _this.columns = columns;\n _this.element = element;\n return _this;\n }\n HoverFeature.prototype.postConstruct = function () {\n if (this.gridOptionsWrapper.isColumnHoverHighlight()) {\n this.addMouseHoverListeners();\n }\n };\n HoverFeature.prototype.addMouseHoverListeners = function () {\n this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));\n this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));\n };\n HoverFeature.prototype.onMouseOut = function () {\n this.columnHoverService.clearMouseOver();\n };\n HoverFeature.prototype.onMouseOver = function () {\n this.columnHoverService.setMouseOver(this.columns);\n };\n __decorate$1a([\n Autowired('columnHoverService')\n ], HoverFeature.prototype, \"columnHoverService\", void 0);\n __decorate$1a([\n PostConstruct\n ], HoverFeature.prototype, \"postConstruct\", null);\n return HoverFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderFilterCellCtrl = /** @class */ (function (_super) {\n __extends$1n(HeaderFilterCellCtrl, _super);\n function HeaderFilterCellCtrl(column, parentRowCtrl) {\n var _this = _super.call(this, column, parentRowCtrl) || this;\n _this.column = column;\n return _this;\n }\n HeaderFilterCellCtrl.prototype.setComp = function (comp, eGui, eButtonShowMainFilter, eFloatingFilterBody) {\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.eButtonShowMainFilter = eButtonShowMainFilter;\n this.eFloatingFilterBody = eFloatingFilterBody;\n var colDef = this.column.getColDef();\n var filterExists = !!colDef.filter || !!colDef.filterFramework;\n var floatingFilterExists = !!colDef.floatingFilter;\n this.active = filterExists && floatingFilterExists;\n this.setupWidth();\n this.setupLeft();\n this.setupHover();\n this.setupFocus();\n this.setupUserComp();\n this.setupSyncWithFilter();\n this.setupUi();\n this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));\n };\n HeaderFilterCellCtrl.prototype.setupUi = function () {\n this.comp.addOrRemoveButtonWrapperCssClass('ag-hidden', !this.active || this.suppressFilterButton);\n if (!this.active) {\n return;\n }\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-full-body', this.suppressFilterButton);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-body', !this.suppressFilterButton);\n var eMenuIcon = createIconNoSpan('filter', this.gridOptionsWrapper, this.column);\n if (eMenuIcon) {\n this.eButtonShowMainFilter.appendChild(eMenuIcon);\n }\n };\n HeaderFilterCellCtrl.prototype.setupFocus = function () {\n this.createManagedBean(new ManagedFocusFeature(this.eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n };\n HeaderFilterCellCtrl.prototype.onTabKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n var wrapperHasFocus = activeEl === this.eGui;\n if (wrapperHasFocus) {\n return;\n }\n var nextFocusableEl = this.focusService.findNextFocusableElement(this.eGui, null, e.shiftKey);\n if (nextFocusableEl) {\n this.beans.headerNavigationService.scrollToColumn(this.column);\n e.preventDefault();\n nextFocusableEl.focus();\n return;\n }\n var nextFocusableColumn = this.findNextColumnWithFloatingFilter(e.shiftKey);\n if (!nextFocusableColumn) {\n return;\n }\n if (this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: this.getParentRowCtrl().getRowIndex(),\n column: nextFocusableColumn\n },\n event: e\n })) {\n e.preventDefault();\n }\n };\n HeaderFilterCellCtrl.prototype.findNextColumnWithFloatingFilter = function (backwards) {\n var columModel = this.beans.columnModel;\n var nextCol = this.column;\n do {\n nextCol = backwards\n ? columModel.getDisplayedColBefore(nextCol)\n : columModel.getDisplayedColAfter(nextCol);\n if (!nextCol) {\n break;\n }\n } while (!nextCol.getColDef().filter || !nextCol.getColDef().floatingFilter);\n return nextCol;\n };\n HeaderFilterCellCtrl.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n var wrapperHasFocus = activeEl === this.eGui;\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (!wrapperHasFocus) {\n e.preventDefault();\n }\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n if (wrapperHasFocus) {\n return;\n }\n e.stopPropagation();\n case KeyCode.ENTER:\n if (wrapperHasFocus) {\n if (this.focusService.focusInto(this.eGui)) {\n e.preventDefault();\n }\n }\n break;\n case KeyCode.ESCAPE:\n if (!wrapperHasFocus) {\n this.eGui.focus();\n }\n }\n };\n HeaderFilterCellCtrl.prototype.onFocusIn = function (e) {\n var isRelatedWithin = this.eGui.contains(e.relatedTarget);\n // when the focus is already within the component,\n // we default to the browser's behavior\n if (isRelatedWithin) {\n return;\n }\n var notFromHeaderWrapper = !!e.relatedTarget && !e.relatedTarget.classList.contains('ag-floating-filter');\n var fromWithinHeader = !!e.relatedTarget && isElementChildOfClass(e.relatedTarget, 'ag-floating-filter');\n if (notFromHeaderWrapper && fromWithinHeader && e.target === this.eGui) {\n var lastFocusEvent = this.lastFocusEvent;\n var fromTab = !!(lastFocusEvent && lastFocusEvent.key === KeyCode.TAB);\n if (lastFocusEvent && fromTab) {\n var shouldFocusLast = lastFocusEvent.shiftKey;\n this.focusService.focusInto(this.eGui, shouldFocusLast);\n }\n }\n var rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.column);\n };\n HeaderFilterCellCtrl.prototype.setupHover = function () {\n var _this = this;\n this.createManagedBean(new HoverFeature([this.column], this.eGui));\n var listener = function () {\n if (!_this.gridOptionsWrapper.isColumnHoverHighlight()) {\n return;\n }\n var hovered = _this.columnHoverService.isHovered(_this.column);\n _this.comp.addOrRemoveCssClass('ag-column-hover', hovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n };\n HeaderFilterCellCtrl.prototype.setupLeft = function () {\n var setLeftFeature = new SetLeftFeature(this.column, this.eGui, this.beans);\n this.createManagedBean(setLeftFeature);\n };\n HeaderFilterCellCtrl.prototype.setupUserComp = function () {\n var _this = this;\n if (!this.active) {\n return;\n }\n var colDef = this.column.getColDef();\n var filterParams = this.filterManager.createFilterParams(this.column, colDef);\n var finalFilterParams = this.userComponentFactory.mergeParamsWithApplicationProvidedParams(colDef, FilterComponent, filterParams);\n var defaultFloatingFilterType = this.userComponentFactory.getDefaultFloatingFilterType(colDef);\n if (defaultFloatingFilterType == null) {\n defaultFloatingFilterType = 'agReadOnlyFloatingFilter';\n }\n var params = {\n column: this.column,\n filterParams: finalFilterParams,\n currentParentModel: function () { return _this.currentParentModel(); },\n parentFilterInstance: function (cb) { return _this.parentFilterInstance(cb); },\n showParentFilter: function () { return _this.showParentFilter(); },\n suppressFilterButton: false // This one might be overridden from the colDef\n };\n // this is unusual - we need a params value OUTSIDE the component the params are for.\n // the params are for the floating filter component, but this property is actually for the wrapper.\n this.suppressFilterButton = colDef.floatingFilterComponentParams ? !!colDef.floatingFilterComponentParams.suppressFilterButton : false;\n var compDetails = this.userComponentFactory.getFloatingFilterCompDetails(colDef, params, defaultFloatingFilterType);\n if (compDetails) {\n this.comp.setCompDetails(compDetails);\n }\n };\n HeaderFilterCellCtrl.prototype.currentParentModel = function () {\n var filterComponent = this.getFilterComponent(false);\n return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;\n };\n HeaderFilterCellCtrl.prototype.getFilterComponent = function (createIfDoesNotExist) {\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\n return this.filterManager.getFilterComponent(this.column, 'NO_UI', createIfDoesNotExist);\n };\n HeaderFilterCellCtrl.prototype.parentFilterInstance = function (callback) {\n var filterComponent = this.getFilterComponent();\n if (filterComponent == null) {\n return;\n }\n filterComponent.then(function (instance) {\n callback(unwrapUserComp(instance));\n });\n };\n HeaderFilterCellCtrl.prototype.showParentFilter = function () {\n var eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;\n this.menuFactory.showMenuAfterButtonClick(this.column, eventSource, 'floatingFilter', 'filterMenuTab', ['filterMenuTab']);\n };\n HeaderFilterCellCtrl.prototype.setupSyncWithFilter = function () {\n var _this = this;\n if (!this.active) {\n return;\n }\n var syncWithFilter = function (filterChangedEvent) {\n var compPromise = _this.comp.getFloatingFilterComp();\n if (!compPromise) {\n return;\n }\n var parentModel = _this.currentParentModel();\n compPromise.then(function (comp) {\n if (comp) {\n comp.onParentModelChanged(parentModel, filterChangedEvent);\n }\n });\n };\n this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, syncWithFilter);\n if (this.filterManager.isFilterActive(this.column)) {\n syncWithFilter(null);\n }\n };\n HeaderFilterCellCtrl.prototype.setupWidth = function () {\n var _this = this;\n var listener = function () {\n var width = _this.column.getActualWidth() + \"px\";\n _this.comp.setWidth(width);\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n };\n __decorate$1b([\n Autowired('userComponentFactory')\n ], HeaderFilterCellCtrl.prototype, \"userComponentFactory\", void 0);\n __decorate$1b([\n Autowired('filterManager')\n ], HeaderFilterCellCtrl.prototype, \"filterManager\", void 0);\n __decorate$1b([\n Autowired('columnHoverService')\n ], HeaderFilterCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1b([\n Autowired('gridApi')\n ], HeaderFilterCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1b([\n Autowired('menuFactory')\n ], HeaderFilterCellCtrl.prototype, \"menuFactory\", void 0);\n __decorate$1b([\n Autowired('beans')\n ], HeaderFilterCellCtrl.prototype, \"beans\", void 0);\n return HeaderFilterCellCtrl;\n}(AbstractHeaderCellCtrl));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ResizeFeature = /** @class */ (function (_super) {\n __extends$1o(ResizeFeature, _super);\n function ResizeFeature(pinned, column, eResize, comp, ctrl) {\n var _this = _super.call(this) || this;\n _this.pinned = pinned;\n _this.column = column;\n _this.eResize = eResize;\n _this.comp = comp;\n _this.ctrl = ctrl;\n return _this;\n }\n ResizeFeature.prototype.postConstruct = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var destroyResizeFuncs = [];\n var canResize;\n var canAutosize;\n var addResize = function () {\n setDisplayed(_this.eResize, canResize);\n if (!canResize) {\n return;\n }\n var finishedWithResizeFunc = _this.horizontalResizeService.addResizeBar({\n eResizeBar: _this.eResize,\n onResizeStart: _this.onResizeStart.bind(_this),\n onResizing: _this.onResizing.bind(_this, false),\n onResizeEnd: _this.onResizing.bind(_this, true)\n });\n destroyResizeFuncs.push(finishedWithResizeFunc);\n if (canAutosize) {\n var skipHeaderOnAutoSize_1 = _this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n var autoSizeColListener_1 = function () {\n _this.columnModel.autoSizeColumn(_this.column, skipHeaderOnAutoSize_1, \"uiColumnResized\");\n };\n _this.eResize.addEventListener('dblclick', autoSizeColListener_1);\n var touchListener_1 = new TouchListener(_this.eResize);\n touchListener_1.addEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n _this.addDestroyFunc(function () {\n _this.eResize.removeEventListener('dblclick', autoSizeColListener_1);\n touchListener_1.removeEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n touchListener_1.destroy();\n });\n }\n };\n var removeResize = function () {\n destroyResizeFuncs.forEach(function (f) { return f(); });\n destroyResizeFuncs.length = 0;\n };\n var refresh = function () {\n var resize = _this.column.isResizable();\n var autoSize = !_this.gridOptionsWrapper.isSuppressAutoSize() && !colDef.suppressAutoSize;\n var propertyChange = resize !== canResize || autoSize !== canAutosize;\n if (propertyChange) {\n canResize = resize;\n canAutosize = autoSize;\n removeResize();\n addResize();\n }\n };\n refresh();\n this.addDestroyFunc(removeResize);\n this.ctrl.addRefreshFunction(refresh);\n };\n ResizeFeature.prototype.onResizing = function (finished, resizeAmount) {\n var resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);\n var columnWidths = [{ key: this.column, newWidth: this.resizeStartWidth + resizeAmountNormalised }];\n this.columnModel.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, \"uiColumnDragged\");\n if (finished) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', false);\n }\n };\n ResizeFeature.prototype.onResizeStart = function (shiftKey) {\n this.resizeStartWidth = this.column.getActualWidth();\n this.resizeWithShiftKey = shiftKey;\n this.comp.addOrRemoveCssClass('ag-column-resizing', true);\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?\n ResizeFeature.prototype.normaliseResizeAmount = function (dragChange) {\n var result = dragChange;\n var notPinningLeft = this.pinned !== Constants.PINNED_LEFT;\n var pinningRight = this.pinned === Constants.PINNED_RIGHT;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (notPinningLeft) {\n result *= -1;\n }\n }\n else {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n if (pinningRight) {\n result *= -1;\n }\n }\n return result;\n };\n __decorate$1c([\n Autowired('horizontalResizeService')\n ], ResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1c([\n Autowired('columnModel')\n ], ResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1c([\n PostConstruct\n ], ResizeFeature.prototype, \"postConstruct\", null);\n return ResizeFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgCheckbox = /** @class */ (function (_super) {\n __extends$1p(AgCheckbox, _super);\n function AgCheckbox(config, className, inputType) {\n if (className === void 0) { className = 'ag-checkbox'; }\n if (inputType === void 0) { inputType = 'checkbox'; }\n var _this = _super.call(this, config, className, inputType) || this;\n _this.labelAlignment = 'right';\n _this.selected = false;\n _this.readOnly = false;\n _this.passive = false;\n return _this;\n }\n AgCheckbox.prototype.addInputListeners = function () {\n this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));\n };\n AgCheckbox.prototype.getNextValue = function () {\n return this.selected === undefined ? true : !this.selected;\n };\n AgCheckbox.prototype.setPassive = function (passive) {\n this.passive = passive;\n };\n AgCheckbox.prototype.isReadOnly = function () {\n return this.readOnly;\n };\n AgCheckbox.prototype.setReadOnly = function (readOnly) {\n this.eWrapper.classList.toggle('ag-disabled', readOnly);\n this.eInput.disabled = readOnly;\n this.readOnly = readOnly;\n };\n AgCheckbox.prototype.setDisabled = function (disabled) {\n this.eWrapper.classList.toggle('ag-disabled', disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n AgCheckbox.prototype.toggle = function () {\n if (this.eInput.disabled) {\n return;\n }\n var previousValue = this.isSelected();\n var nextValue = this.getNextValue();\n if (this.passive) {\n this.dispatchChange(nextValue, previousValue);\n }\n else {\n this.setValue(nextValue);\n }\n };\n AgCheckbox.prototype.getValue = function () {\n return this.isSelected();\n };\n AgCheckbox.prototype.setValue = function (value, silent) {\n this.refreshSelectedClass(value);\n this.setSelected(value, silent);\n return this;\n };\n AgCheckbox.prototype.setName = function (name) {\n var input = this.getInputElement();\n input.name = name;\n return this;\n };\n AgCheckbox.prototype.isSelected = function () {\n return this.selected;\n };\n AgCheckbox.prototype.setSelected = function (selected, silent) {\n if (this.isSelected() === selected) {\n return;\n }\n this.previousValue = this.isSelected();\n selected = this.selected = typeof selected === 'boolean' ? selected : undefined;\n this.eInput.checked = selected;\n this.eInput.indeterminate = selected === undefined;\n if (!silent) {\n this.dispatchChange(this.selected, this.previousValue);\n }\n };\n AgCheckbox.prototype.dispatchChange = function (selected, previousValue, event) {\n this.dispatchEvent({ type: AgCheckbox.EVENT_CHANGED, selected: selected, previousValue: previousValue, event: event });\n var input = this.getInputElement();\n var checkboxChangedEvent = {\n type: Events.EVENT_CHECKBOX_CHANGED,\n id: input.id,\n name: input.name,\n selected: selected,\n previousValue: previousValue\n };\n this.eventService.dispatchEvent(checkboxChangedEvent);\n };\n AgCheckbox.prototype.onCheckboxClick = function (e) {\n if (this.passive || this.eInput.disabled) {\n return;\n }\n var previousValue = this.isSelected();\n var selected = this.selected = e.target.checked;\n this.refreshSelectedClass(selected);\n this.dispatchChange(selected, previousValue, e);\n };\n AgCheckbox.prototype.refreshSelectedClass = function (value) {\n this.eWrapper.classList.toggle('ag-checked', value === true);\n this.eWrapper.classList.toggle('ag-indeterminate', value == null);\n };\n return AgCheckbox;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectAllFeature = /** @class */ (function (_super) {\n __extends$1q(SelectAllFeature, _super);\n function SelectAllFeature(column) {\n var _this = _super.call(this) || this;\n _this.cbSelectAllVisible = false;\n _this.processingEventFromCheckbox = false;\n _this.column = column;\n var colDef = column.getColDef();\n _this.filteredOnly = colDef ? !!colDef.headerCheckboxSelectionFilteredOnly : false;\n return _this;\n }\n SelectAllFeature.prototype.onSpaceKeyPressed = function (e) {\n var checkbox = this.cbSelectAll;\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (checkbox.isDisplayed() && !checkbox.getGui().contains(eDocument.activeElement)) {\n e.preventDefault();\n checkbox.setValue(!checkbox.getValue());\n }\n };\n SelectAllFeature.prototype.getCheckboxGui = function () {\n return this.cbSelectAll.getGui();\n };\n SelectAllFeature.prototype.setComp = function (ctrl) {\n this.headerCellCtrl = ctrl;\n this.cbSelectAll = this.createManagedBean(new AgCheckbox());\n this.cbSelectAll.addCssClass('ag-header-select-all');\n setAriaRole(this.cbSelectAll.getGui(), 'presentation');\n this.showOrHideSelectAll();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));\n this.addManagedListener(this.cbSelectAll, AgCheckbox.EVENT_CHANGED, this.onCbSelectAll.bind(this));\n this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');\n this.refreshSelectAllLabel();\n };\n SelectAllFeature.prototype.showOrHideSelectAll = function () {\n this.cbSelectAllVisible = this.isCheckboxSelection();\n this.cbSelectAll.setDisplayed(this.cbSelectAllVisible);\n if (this.cbSelectAllVisible) {\n // in case user is trying this feature with the wrong model type\n this.checkRightRowModelType();\n // make sure checkbox is showing the right state\n this.updateStateOfCheckbox();\n }\n this.refreshSelectAllLabel();\n };\n SelectAllFeature.prototype.onModelChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.onSelectionChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.getNextCheckboxState = function (selectionCount) {\n // if no rows, always have it unselected\n if (selectionCount.selected === 0 && selectionCount.notSelected === 0) {\n return false;\n }\n // if mix of selected and unselected, this is the tri-state\n if (selectionCount.selected > 0 && selectionCount.notSelected > 0) {\n return null;\n }\n // only selected\n if (selectionCount.selected > 0) {\n return true;\n }\n // nothing selected\n return false;\n };\n SelectAllFeature.prototype.updateStateOfCheckbox = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n this.processingEventFromCheckbox = true;\n var selectionCount = this.getSelectionCount();\n var allSelected = this.getNextCheckboxState(selectionCount);\n this.cbSelectAll.setValue(allSelected);\n this.refreshSelectAllLabel();\n this.processingEventFromCheckbox = false;\n };\n SelectAllFeature.prototype.refreshSelectAllLabel = function () {\n if (!this.cbSelectAllVisible) {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', null);\n }\n else {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var checked = this.cbSelectAll.getValue();\n var ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');\n var ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', ariaLabel + \" (\" + ariaStatus + \")\");\n }\n this.headerCellCtrl.refreshAriaDescription();\n };\n SelectAllFeature.prototype.getSelectionCount = function () {\n var _this = this;\n var selectedCount = 0;\n var notSelectedCount = 0;\n var callback = function (node) {\n if (_this.gridOptionsWrapper.isGroupSelectsChildren() && node.group) {\n return;\n }\n if (node.isSelected()) {\n selectedCount++;\n }\n else if (!node.selectable) ;\n else {\n notSelectedCount++;\n }\n };\n if (this.filteredOnly) {\n this.gridApi.forEachNodeAfterFilter(callback);\n }\n else {\n this.gridApi.forEachNode(callback);\n }\n return {\n notSelected: notSelectedCount,\n selected: selectedCount\n };\n };\n SelectAllFeature.prototype.checkRightRowModelType = function () {\n var rowModelType = this.rowModel.getType();\n var rowModelMatches = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n if (!rowModelMatches) {\n console.warn(\"AG Grid: selectAllCheckbox is only available if using normal row model, you are using \" + rowModelType);\n }\n };\n SelectAllFeature.prototype.onCbSelectAll = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n if (!this.cbSelectAllVisible) {\n return;\n }\n var value = this.cbSelectAll.getValue();\n if (value) {\n this.selectionService.selectAllRowNodes(this.filteredOnly);\n }\n else {\n this.selectionService.deselectAllRowNodes(this.filteredOnly);\n }\n };\n SelectAllFeature.prototype.isCheckboxSelection = function () {\n var result = this.column.getColDef().headerCheckboxSelection;\n if (typeof result === 'function') {\n var func = result;\n var params = {\n column: this.column,\n colDef: this.column.getColDef(),\n columnApi: this.columnApi,\n api: this.gridApi,\n context: this.gridOptionsWrapper.getContext()\n };\n result = func(params);\n }\n if (result) {\n if (this.gridOptionsWrapper.isRowModelServerSide()) {\n console.warn('AG Grid: headerCheckboxSelection is not supported for Server Side Row Model');\n return false;\n }\n if (this.gridOptionsWrapper.isRowModelInfinite()) {\n console.warn('AG Grid: headerCheckboxSelection is not supported for Infinite Row Model');\n return false;\n }\n if (this.gridOptionsWrapper.isRowModelViewport()) {\n console.warn('AG Grid: headerCheckboxSelection is not supported for Viewport Row Model');\n return false;\n }\n // otherwise the row model is compatible, so return true\n return true;\n }\n return false;\n };\n __decorate$1d([\n Autowired('gridApi')\n ], SelectAllFeature.prototype, \"gridApi\", void 0);\n __decorate$1d([\n Autowired('columnApi')\n ], SelectAllFeature.prototype, \"columnApi\", void 0);\n __decorate$1d([\n Autowired('rowModel')\n ], SelectAllFeature.prototype, \"rowModel\", void 0);\n __decorate$1d([\n Autowired('selectionService')\n ], SelectAllFeature.prototype, \"selectionService\", void 0);\n return SelectAllFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1r(HeaderCellCtrl, _super);\n function HeaderCellCtrl(column, parentRowCtrl) {\n var _this = _super.call(this, column, parentRowCtrl) || this;\n _this.refreshFunctions = [];\n _this.userHeaderClasses = new Set();\n _this.ariaDescriptionProperties = new Map();\n _this.column = column;\n return _this;\n }\n HeaderCellCtrl.prototype.setComp = function (comp, eGui, eResize) {\n var _this = this;\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.colDefVersion = this.columnModel.getColDefVersion();\n this.updateState();\n this.setupWidth();\n this.setupMovingCss();\n this.setupMenuClass();\n this.setupSortableClass();\n this.addColumnHoverListener();\n this.setupFilterCss();\n this.setupColId();\n this.setupClassesFromColDef();\n this.setupTooltip();\n this.addActiveHeaderMouseListeners();\n this.setupSelectAll();\n this.setupUserComp();\n this.refreshAria();\n this.createManagedBean(new ResizeFeature(this.getPinned(), this.column, eResize, comp, this));\n this.createManagedBean(new HoverFeature([this.column], eGui));\n this.createManagedBean(new SetLeftFeature(this.column, eGui, this.beans));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: function (e) { return _this.shouldStopEventPropagation(e); },\n onTabKeyDown: function () { return null; },\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));\n };\n HeaderCellCtrl.prototype.setupUserComp = function () {\n var compDetails = this.lookupUserCompDetails();\n this.setCompDetails(compDetails);\n };\n HeaderCellCtrl.prototype.setCompDetails = function (compDetails) {\n this.userCompDetails = compDetails;\n this.comp.setUserCompDetails(compDetails);\n };\n HeaderCellCtrl.prototype.lookupUserCompDetails = function () {\n var params = this.createParams();\n var colDef = this.column.getColDef();\n return this.userComponentFactory.getHeaderCompDetails(colDef, params);\n };\n HeaderCellCtrl.prototype.createParams = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var params = {\n column: this.column,\n displayName: this.displayName,\n enableSorting: colDef.sortable,\n enableMenu: this.menuEnabled,\n showColumnMenu: function (source) {\n _this.gridApi.showColumnMenuAfterButtonClick(_this.column, source);\n },\n progressSort: function (multiSort) {\n _this.sortController.progressSort(_this.column, !!multiSort, \"uiColumnSorted\");\n },\n setSort: function (sort, multiSort) {\n _this.sortController.setSortForColumn(_this.column, sort, !!multiSort, \"uiColumnSorted\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext(),\n eGridHeader: this.getGui()\n };\n return params;\n };\n HeaderCellCtrl.prototype.setupSelectAll = function () {\n this.selectAllFeature = this.createManagedBean(new SelectAllFeature(this.column));\n this.selectAllFeature.setComp(this);\n };\n HeaderCellCtrl.prototype.getSelectAllGui = function () {\n return this.selectAllFeature.getCheckboxGui();\n };\n HeaderCellCtrl.prototype.handleKeyDown = function (e) {\n if (e.key === KeyCode.SPACE) {\n this.selectAllFeature.onSpaceKeyPressed(e);\n }\n if (e.key === KeyCode.ENTER) {\n this.onEnterKeyPressed(e);\n }\n };\n HeaderCellCtrl.prototype.onEnterKeyPressed = function (e) {\n /// THIS IS BAD - we are assuming the header is not a user provided comp\n var headerComp = this.comp.getUserCompInstance();\n if (!headerComp) {\n return;\n }\n if (e.ctrlKey || e.metaKey) {\n if (this.menuEnabled && headerComp.showMenu) {\n e.preventDefault();\n headerComp.showMenu();\n }\n }\n else if (this.sortable) {\n var multiSort = e.shiftKey;\n this.sortController.progressSort(this.column, multiSort, \"uiColumnSorted\");\n }\n };\n HeaderCellCtrl.prototype.isMenuEnabled = function () {\n return this.menuEnabled;\n };\n HeaderCellCtrl.prototype.onFocusIn = function (e) {\n if (!this.getGui().contains(e.relatedTarget)) {\n var rowIndex = this.getRowIndex();\n this.focusService.setFocusedHeader(rowIndex, this.column);\n }\n this.setActiveHeader(true);\n };\n HeaderCellCtrl.prototype.onFocusOut = function (e) {\n if (this.getGui().contains(e.relatedTarget)) {\n return;\n }\n this.setActiveHeader(false);\n };\n HeaderCellCtrl.prototype.setupTooltip = function () {\n var _this = this;\n var tooltipCtrl = {\n getColumn: function () { return _this.column; },\n getColDef: function () { return _this.column.getColDef(); },\n getGui: function () { return _this.eGui; },\n getLocation: function () { return 'header'; },\n getTooltipValue: function () {\n var res = _this.column.getColDef().headerTooltip;\n return res;\n },\n };\n var tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.comp);\n this.refreshFunctions.push(function () { return tooltipFeature.refreshToolTip(); });\n };\n HeaderCellCtrl.prototype.setupClassesFromColDef = function () {\n var _this = this;\n var refreshHeaderClasses = function () {\n var colDef = _this.column.getColDef();\n var goa = _this.gridOptionsWrapper;\n var classes = CssClassApplier.getHeaderClassesFromColDef(colDef, goa, _this.column, null);\n var oldClasses = _this.userHeaderClasses;\n _this.userHeaderClasses = new Set(classes);\n classes.forEach(function (c) {\n if (oldClasses.has(c)) {\n // class already added, no need to apply it, but remove from old set\n oldClasses.delete(c);\n }\n else {\n // class new since last time, so apply it\n _this.comp.addOrRemoveCssClass(c, true);\n }\n });\n // now old set only has classes that were applied last time, but not this time, so remove them\n oldClasses.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, false); });\n };\n this.refreshFunctions.push(refreshHeaderClasses);\n refreshHeaderClasses();\n };\n HeaderCellCtrl.prototype.setDragSource = function (eSource) {\n var _this = this;\n this.dragSourceElement = eSource;\n this.removeDragSource();\n if (!eSource) {\n return;\n }\n if (!this.draggable) {\n return;\n }\n this.moveDragSource = {\n type: exports.DragSourceType.HeaderCell,\n eElement: eSource,\n defaultIconName: DragAndDropService.ICON_HIDE,\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n onDragStarted: function () { return _this.column.setMoving(true, \"uiColumnMoved\"); },\n onDragStopped: function () { return _this.column.setMoving(false, \"uiColumnMoved\"); }\n };\n this.dragAndDropService.addDragSource(this.moveDragSource, true);\n };\n HeaderCellCtrl.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n HeaderCellCtrl.prototype.removeDragSource = function () {\n if (this.moveDragSource) {\n this.dragAndDropService.removeDragSource(this.moveDragSource);\n this.moveDragSource = undefined;\n }\n };\n HeaderCellCtrl.prototype.onNewColumnsLoaded = function () {\n var colDefVersionNow = this.columnModel.getColDefVersion();\n if (colDefVersionNow != this.colDefVersion) {\n this.colDefVersion = colDefVersionNow;\n this.refresh();\n }\n };\n HeaderCellCtrl.prototype.updateState = function () {\n var colDef = this.column.getColDef();\n this.menuEnabled = this.menuFactory.isMenuEnabled(this.column) && !colDef.suppressMenu;\n this.sortable = colDef.sortable;\n this.displayName = this.calculateDisplayName();\n this.draggable = this.workOutDraggable();\n };\n HeaderCellCtrl.prototype.addRefreshFunction = function (func) {\n this.refreshFunctions.push(func);\n };\n HeaderCellCtrl.prototype.refresh = function () {\n this.updateState();\n this.refreshHeaderComp();\n this.refreshAria();\n this.refreshFunctions.forEach(function (f) { return f(); });\n };\n HeaderCellCtrl.prototype.refreshHeaderComp = function () {\n var newCompDetails = this.lookupUserCompDetails();\n var compInstance = this.comp.getUserCompInstance();\n // only try refresh if old comp exists adn it is the correct type\n var attemptRefresh = compInstance != null && this.userCompDetails.componentClass == newCompDetails.componentClass;\n var headerCompRefreshed = attemptRefresh ? this.attemptHeaderCompRefresh(newCompDetails.params) : false;\n if (headerCompRefreshed) {\n // we do this as a refresh happens after colDefs change, and it's possible the column has had it's\n // draggable property toggled. no need to call this if not refreshing, as setDragSource is done\n // as part of appendHeaderComp\n this.setDragSource(this.dragSourceElement);\n }\n else {\n this.setCompDetails(newCompDetails);\n }\n };\n HeaderCellCtrl.prototype.attemptHeaderCompRefresh = function (params) {\n var headerComp = this.comp.getUserCompInstance();\n if (!headerComp) {\n return false;\n }\n // if no refresh method, then we want to replace the headerComp\n if (!headerComp.refresh) {\n return false;\n }\n var res = headerComp.refresh(params);\n return res;\n };\n HeaderCellCtrl.prototype.calculateDisplayName = function () {\n return this.columnModel.getDisplayNameForColumn(this.column, 'header', true);\n };\n HeaderCellCtrl.prototype.checkDisplayName = function () {\n // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)\n if (this.displayName !== this.calculateDisplayName()) {\n this.refresh();\n }\n };\n HeaderCellCtrl.prototype.workOutDraggable = function () {\n var colDef = this.column.getColDef();\n var isSuppressMovableColumns = this.gridOptionsWrapper.isSuppressMovableColumns();\n var colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;\n // we should still be allowed drag the column, even if it can't be moved, if the column\n // can be dragged to a rowGroup or pivot drop zone\n return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;\n };\n HeaderCellCtrl.prototype.onColumnRowGroupChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.onColumnPivotChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.onColumnValueChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.setupWidth = function () {\n var _this = this;\n var listener = function () {\n _this.comp.setWidth(_this.column.getActualWidth() + 'px');\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupMovingCss = function () {\n var _this = this;\n var listener = function () {\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.column.isMoving());\n };\n this.addManagedListener(this.column, Column.EVENT_MOVING_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupMenuClass = function () {\n var _this = this;\n var listener = function () {\n _this.comp.addOrRemoveCssClass('ag-column-menu-visible', _this.column.isMenuVisible());\n };\n this.addManagedListener(this.column, Column.EVENT_MENU_VISIBLE_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupSortableClass = function () {\n var _this = this;\n var updateSortableCssClass = function () {\n _this.comp.addOrRemoveCssClass('ag-header-cell-sortable', !!_this.sortable);\n };\n updateSortableCssClass();\n this.addRefreshFunction(updateSortableCssClass);\n this.addManagedListener(this.column, Column.EVENT_SORT_CHANGED, this.refreshAriaSort.bind(this));\n };\n HeaderCellCtrl.prototype.refreshAriaSort = function () {\n if (this.sortable) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.comp.setAriaSort(getAriaSortState(this.column));\n this.setAriaDescriptionProperty('sort', translate('ariaSortableColumn', 'Press ENTER to sort.'));\n }\n else {\n this.comp.setAriaSort();\n this.setAriaDescriptionProperty('sort', null);\n }\n };\n HeaderCellCtrl.prototype.refreshAriaMenu = function () {\n if (this.menuEnabled) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.setAriaDescriptionProperty('menu', translate('ariaMenuColumn', 'Press CTRL ENTER to open column menu.'));\n }\n else {\n this.setAriaDescriptionProperty('menu', null);\n }\n };\n HeaderCellCtrl.prototype.setAriaDescriptionProperty = function (property, value) {\n if (value != null) {\n this.ariaDescriptionProperties.set(property, value);\n }\n else {\n this.ariaDescriptionProperties.delete(property);\n }\n };\n HeaderCellCtrl.prototype.refreshAriaDescription = function () {\n var descriptionArray = Array.from(this.ariaDescriptionProperties.values());\n this.comp.setAriaDescription(descriptionArray.length ? descriptionArray.join(' ') : undefined);\n };\n HeaderCellCtrl.prototype.refreshAria = function () {\n this.refreshAriaSort();\n this.refreshAriaMenu();\n this.refreshAriaDescription();\n };\n HeaderCellCtrl.prototype.addColumnHoverListener = function () {\n var _this = this;\n var listener = function () {\n if (!_this.gridOptionsWrapper.isColumnHoverHighlight()) {\n return;\n }\n var isHovered = _this.columnHoverService.isHovered(_this.column);\n _this.comp.addOrRemoveCssClass('ag-column-hover', isHovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupFilterCss = function () {\n var _this = this;\n var listener = function () {\n _this.comp.addOrRemoveCssClass('ag-header-cell-filtered', _this.column.isFilterActive());\n };\n this.addManagedListener(this.column, Column.EVENT_FILTER_ACTIVE_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupColId = function () {\n this.comp.setColId(this.column.getColId());\n };\n HeaderCellCtrl.prototype.addActiveHeaderMouseListeners = function () {\n var _this = this;\n var listener = function (e) { return _this.setActiveHeader(e.type === 'mouseenter'); };\n this.addManagedListener(this.getGui(), 'mouseenter', listener);\n this.addManagedListener(this.getGui(), 'mouseleave', listener);\n };\n HeaderCellCtrl.prototype.setActiveHeader = function (active) {\n this.comp.addOrRemoveCssClass('ag-header-active', active);\n };\n __decorate$1e([\n Autowired('columnModel')\n ], HeaderCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1e([\n Autowired('columnHoverService')\n ], HeaderCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1e([\n Autowired('beans')\n ], HeaderCellCtrl.prototype, \"beans\", void 0);\n __decorate$1e([\n Autowired('sortController')\n ], HeaderCellCtrl.prototype, \"sortController\", void 0);\n __decorate$1e([\n Autowired('menuFactory')\n ], HeaderCellCtrl.prototype, \"menuFactory\", void 0);\n __decorate$1e([\n Autowired('dragAndDropService')\n ], HeaderCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1e([\n Autowired('gridApi')\n ], HeaderCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1e([\n Autowired('columnApi')\n ], HeaderCellCtrl.prototype, \"columnApi\", void 0);\n __decorate$1e([\n Autowired('userComponentFactory')\n ], HeaderCellCtrl.prototype, \"userComponentFactory\", void 0);\n __decorate$1e([\n PreDestroy\n ], HeaderCellCtrl.prototype, \"removeDragSource\", null);\n return HeaderCellCtrl;\n}(AbstractHeaderCellCtrl));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupResizeFeature = /** @class */ (function (_super) {\n __extends$1s(GroupResizeFeature, _super);\n function GroupResizeFeature(comp, eResize, pinned, columnGroup) {\n var _this = _super.call(this) || this;\n _this.eResize = eResize;\n _this.comp = comp;\n _this.pinned = pinned;\n _this.columnGroup = columnGroup;\n return _this;\n }\n GroupResizeFeature.prototype.postConstruct = function () {\n var _this = this;\n if (!this.columnGroup.isResizable()) {\n this.comp.addOrRemoveResizableCssClass('ag-hidden', true);\n return;\n }\n var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.eResize,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this, false),\n onResizeEnd: this.onResizing.bind(this, true)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n if (!this.gridOptionsWrapper.isSuppressAutoSize()) {\n var skipHeaderOnAutoSize_1 = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n this.eResize.addEventListener('dblclick', function () {\n // get list of all the column keys we are responsible for\n var keys = [];\n var leafCols = _this.columnGroup.getDisplayedLeafColumns();\n leafCols.forEach(function (column) {\n // not all cols in the group may be participating with auto-resize\n if (!column.getColDef().suppressAutoSize) {\n keys.push(column.getColId());\n }\n });\n if (keys.length > 0) {\n _this.columnModel.autoSizeColumns({\n columns: keys,\n skipHeader: skipHeaderOnAutoSize_1,\n stopAtGroup: _this.columnGroup,\n source: 'uiColumnResized'\n });\n }\n _this.resizeLeafColumnsToFit();\n });\n }\n };\n GroupResizeFeature.prototype.onResizeStart = function (shiftKey) {\n var _this = this;\n this.calculateInitialValues();\n var takeFromGroup = null;\n if (shiftKey) {\n takeFromGroup = this.columnModel.getDisplayedGroupAfter(this.columnGroup);\n }\n if (takeFromGroup) {\n var takeFromLeafCols = takeFromGroup.getDisplayedLeafColumns();\n this.resizeTakeFromCols = takeFromLeafCols.filter(function (col) { return col.isResizable(); });\n this.resizeTakeFromStartWidth = 0;\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromStartWidth += col.getActualWidth(); });\n this.resizeTakeFromRatios = [];\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromRatios.push(col.getActualWidth() / _this.resizeTakeFromStartWidth); });\n }\n else {\n this.resizeTakeFromCols = null;\n this.resizeTakeFromStartWidth = null;\n this.resizeTakeFromRatios = null;\n }\n this.comp.addOrRemoveCssClass('ag-column-resizing', true);\n };\n GroupResizeFeature.prototype.onResizing = function (finished, resizeAmount) {\n var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);\n var width = this.resizeStartWidth + resizeAmountNormalised;\n this.resizeColumns(width, finished);\n };\n GroupResizeFeature.prototype.resizeLeafColumnsToFit = function () {\n var preferredSize = this.autoWidthCalculator.getPreferredWidthForColumnGroup(this.columnGroup);\n this.calculateInitialValues();\n if (preferredSize > this.resizeStartWidth) {\n this.resizeColumns(preferredSize, true);\n }\n };\n GroupResizeFeature.prototype.resizeColumns = function (totalWidth, finished) {\n if (finished === void 0) { finished = true; }\n var resizeSets = [];\n resizeSets.push({\n columns: this.resizeCols,\n ratios: this.resizeRatios,\n width: totalWidth\n });\n if (this.resizeTakeFromCols) {\n var diff = totalWidth - this.resizeStartWidth;\n resizeSets.push({\n columns: this.resizeTakeFromCols,\n ratios: this.resizeTakeFromRatios,\n width: this.resizeTakeFromStartWidth - diff\n });\n }\n this.columnModel.resizeColumnSets({\n resizeSets: resizeSets,\n finished: finished,\n source: 'uiColumnDragged'\n });\n if (finished) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', false);\n }\n };\n GroupResizeFeature.prototype.calculateInitialValues = function () {\n var _this = this;\n var leafCols = this.columnGroup.getDisplayedLeafColumns();\n this.resizeCols = leafCols.filter(function (col) { return col.isResizable(); });\n this.resizeStartWidth = 0;\n this.resizeCols.forEach(function (col) { return _this.resizeStartWidth += col.getActualWidth(); });\n this.resizeRatios = [];\n this.resizeCols.forEach(function (col) { return _this.resizeRatios.push(col.getActualWidth() / _this.resizeStartWidth); });\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderCell - should refactor out?\n GroupResizeFeature.prototype.normaliseDragChange = function (dragChange) {\n var result = dragChange;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (this.pinned !== Constants.PINNED_LEFT) {\n result *= -1;\n }\n }\n else if (this.pinned === Constants.PINNED_RIGHT) {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n result *= -1;\n }\n return result;\n };\n __decorate$1f([\n Autowired('horizontalResizeService')\n ], GroupResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1f([\n Autowired('autoWidthCalculator')\n ], GroupResizeFeature.prototype, \"autoWidthCalculator\", void 0);\n __decorate$1f([\n Autowired('columnModel')\n ], GroupResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1f([\n PostConstruct\n ], GroupResizeFeature.prototype, \"postConstruct\", null);\n return GroupResizeFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupWidthFeature = /** @class */ (function (_super) {\n __extends$1t(GroupWidthFeature, _super);\n function GroupWidthFeature(comp, columnGroup) {\n var _this = _super.call(this) || this;\n // the children can change, we keep destroy functions related to listening to the children here\n _this.removeChildListenersFuncs = [];\n _this.columnGroup = columnGroup;\n _this.comp = comp;\n return _this;\n }\n GroupWidthFeature.prototype.postConstruct = function () {\n // we need to listen to changes in child columns, as they impact our width\n this.addListenersToChildrenColumns();\n // the children belonging to this group can change, so we need to add and remove listeners as they change\n this.addManagedListener(this.columnGroup, ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));\n this.onWidthChanged();\n // the child listeners are not tied to this components life-cycle, as children can get added and removed\n // to the group - hence they are on a different life-cycle. so we must make sure the existing children\n // listeners are removed when we finally get destroyed\n this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));\n };\n GroupWidthFeature.prototype.addListenersToChildrenColumns = function () {\n var _this = this;\n // first destroy any old listeners\n this.removeListenersOnChildrenColumns();\n // now add new listeners to the new set of children\n var widthChangedListener = this.onWidthChanged.bind(this);\n this.columnGroup.getLeafColumns().forEach(function (column) {\n column.addEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n column.addEventListener(Column.EVENT_VISIBLE_CHANGED, widthChangedListener);\n _this.removeChildListenersFuncs.push(function () {\n column.removeEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n column.removeEventListener(Column.EVENT_VISIBLE_CHANGED, widthChangedListener);\n });\n });\n };\n GroupWidthFeature.prototype.removeListenersOnChildrenColumns = function () {\n this.removeChildListenersFuncs.forEach(function (func) { return func(); });\n this.removeChildListenersFuncs = [];\n };\n GroupWidthFeature.prototype.onDisplayedChildrenChanged = function () {\n this.addListenersToChildrenColumns();\n this.onWidthChanged();\n };\n GroupWidthFeature.prototype.onWidthChanged = function () {\n this.comp.setWidth(this.columnGroup.getActualWidth() + 'px');\n };\n __decorate$1g([\n PostConstruct\n ], GroupWidthFeature.prototype, \"postConstruct\", null);\n return GroupWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupCellCtrl = /** @class */ (function (_super) {\n __extends$1u(HeaderGroupCellCtrl, _super);\n function HeaderGroupCellCtrl(columnGroup, parentRowCtrl) {\n var _this = _super.call(this, columnGroup, parentRowCtrl) || this;\n _this.columnGroup = columnGroup;\n return _this;\n }\n HeaderGroupCellCtrl.prototype.setComp = function (comp, eGui, eResize) {\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.displayName = this.columnModel.getDisplayNameForColumnGroup(this.columnGroup, 'header');\n this.addClasses();\n this.addAttributes();\n this.setupMovingCss();\n this.setupExpandable();\n this.setupTooltip();\n this.setupUserComp();\n var pinned = this.getParentRowCtrl().getPinned();\n var leafCols = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n this.createManagedBean(new HoverFeature(leafCols, eGui));\n this.createManagedBean(new SetLeftFeature(this.columnGroup, eGui, this.beans));\n this.createManagedBean(new GroupWidthFeature(comp, this.columnGroup));\n this.groupResizeFeature = this.createManagedBean(new GroupResizeFeature(comp, eResize, pinned, this.columnGroup));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: function () { return undefined; },\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n };\n HeaderGroupCellCtrl.prototype.resizeLeafColumnsToFit = function () {\n this.groupResizeFeature.onResizeStart(false);\n this.groupResizeFeature.resizeLeafColumnsToFit();\n };\n HeaderGroupCellCtrl.prototype.setupUserComp = function () {\n var _this = this;\n var displayName = this.displayName;\n var params = {\n displayName: this.displayName,\n columnGroup: this.columnGroup,\n setExpanded: function (expanded) {\n _this.columnModel.setColumnGroupOpened(_this.columnGroup.getProvidedColumnGroup(), expanded, \"gridInitializing\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n if (!displayName) {\n var columnGroup = this.columnGroup;\n var leafCols = columnGroup.getLeafColumns();\n // find the top most column group that represents the same columns. so if we are dragging a group, we also\n // want to visually show the parent groups dragging for the same column set. for example imaging 5 levels\n // of grouping, with each group only containing the next group, and the last group containing three columns,\n // then when you move any group (even the lowest level group) you are in-fact moving all the groups, as all\n // the groups represent the same column set.\n while (columnGroup.getParent() && columnGroup.getParent().getLeafColumns().length === leafCols.length) {\n columnGroup = columnGroup.getParent();\n }\n var colGroupDef = columnGroup.getColGroupDef();\n if (colGroupDef) {\n displayName = colGroupDef.headerName;\n }\n if (!displayName) {\n displayName = leafCols ? this.columnModel.getDisplayNameForColumn(leafCols[0], 'header', true) : '';\n }\n }\n var compDetails = this.userComponentFactory.getHeaderGroupCompDetails(params);\n this.comp.setUserCompDetails(compDetails);\n };\n HeaderGroupCellCtrl.prototype.setupTooltip = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n var tooltipCtrl = {\n getColumn: function () { return _this.columnGroup; },\n getGui: function () { return _this.eGui; },\n getLocation: function () { return 'headerGroup'; },\n getTooltipValue: function () { return colGroupDef && colGroupDef.headerTooltip; }\n };\n if (colGroupDef) {\n tooltipCtrl.getColDef = function () { return colGroupDef; };\n }\n var tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.comp);\n };\n HeaderGroupCellCtrl.prototype.setupExpandable = function () {\n var providedColGroup = this.columnGroup.getProvidedColumnGroup();\n this.refreshExpanded();\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));\n };\n HeaderGroupCellCtrl.prototype.refreshExpanded = function () {\n var column = this.columnGroup;\n this.expandable = column.isExpandable();\n var expanded = column.isExpanded();\n if (this.expandable) {\n this.comp.setAriaExpanded(expanded ? 'true' : 'false');\n }\n else {\n this.comp.setAriaExpanded(undefined);\n }\n };\n HeaderGroupCellCtrl.prototype.addAttributes = function () {\n this.comp.setColId(this.columnGroup.getUniqueId());\n };\n HeaderGroupCellCtrl.prototype.addClasses = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n var classes = CssClassApplier.getHeaderClassesFromColDef(colGroupDef, this.gridOptionsWrapper, null, this.columnGroup);\n // having different classes below allows the style to not have a bottom border\n // on the group header, if no group is specified\n classes.push(this.columnGroup.isPadding() ? \"ag-header-group-cell-no-group\" : \"ag-header-group-cell-with-group\");\n classes.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, true); });\n };\n HeaderGroupCellCtrl.prototype.setupMovingCss = function () {\n var _this = this;\n var providedColumnGroup = this.columnGroup.getProvidedColumnGroup();\n var leafColumns = providedColumnGroup.getLeafColumns();\n // this function adds or removes the moving css, based on if the col is moving.\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n var listener = function () { return _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.columnGroup.isMoving()); };\n leafColumns.forEach(function (col) {\n _this.addManagedListener(col, Column.EVENT_MOVING_CHANGED, listener);\n });\n listener();\n };\n HeaderGroupCellCtrl.prototype.onFocusIn = function (e) {\n if (!this.eGui.contains(e.relatedTarget)) {\n var rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.columnGroup);\n }\n };\n HeaderGroupCellCtrl.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n var wrapperHasFocus = activeEl === this.eGui;\n if (!this.expandable || !wrapperHasFocus) {\n return;\n }\n if (e.key === KeyCode.ENTER) {\n var column = this.columnGroup;\n var newExpandedValue = !column.isExpanded();\n this.columnModel.setColumnGroupOpened(column.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n }\n };\n // unlike columns, this will only get called once, as we don't react on props on column groups\n // (we will always destroy and recreate this comp if something changes)\n HeaderGroupCellCtrl.prototype.setDragSource = function (eHeaderGroup) {\n var _this = this;\n if (this.isSuppressMoving()) {\n return;\n }\n var allLeafColumns = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n var dragSource = {\n type: exports.DragSourceType.HeaderCell,\n eElement: eHeaderGroup,\n defaultIconName: DragAndDropService.ICON_HIDE,\n dragItemName: this.displayName,\n // we add in the original group leaf columns, so we move both visible and non-visible items\n getDragItem: this.getDragItemForGroup.bind(this),\n onDragStarted: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(true, \"uiColumnDragged\"); }); },\n onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, \"uiColumnDragged\"); }); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,\n // and in the order they are currently in the screen.\n HeaderGroupCellCtrl.prototype.getDragItemForGroup = function () {\n var allColumnsOriginalOrder = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n // capture visible state, used when re-entering grid to dictate which columns should be visible\n var visibleState = {};\n allColumnsOriginalOrder.forEach(function (column) { return visibleState[column.getId()] = column.isVisible(); });\n var allColumnsCurrentOrder = [];\n this.columnModel.getAllDisplayedColumns().forEach(function (column) {\n if (allColumnsOriginalOrder.indexOf(column) >= 0) {\n allColumnsCurrentOrder.push(column);\n removeFromArray(allColumnsOriginalOrder, column);\n }\n });\n // we are left with non-visible columns, stick these in at the end\n allColumnsOriginalOrder.forEach(function (column) { return allColumnsCurrentOrder.push(column); });\n // create and return dragItem\n return {\n columns: allColumnsCurrentOrder,\n visibleState: visibleState\n };\n };\n HeaderGroupCellCtrl.prototype.isSuppressMoving = function () {\n // if any child is fixed, then don't allow moving\n var childSuppressesMoving = false;\n this.columnGroup.getLeafColumns().forEach(function (column) {\n if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {\n childSuppressesMoving = true;\n }\n });\n var result = childSuppressesMoving || this.gridOptionsWrapper.isSuppressMovableColumns();\n return result;\n };\n __decorate$1h([\n Autowired('beans')\n ], HeaderGroupCellCtrl.prototype, \"beans\", void 0);\n __decorate$1h([\n Autowired('columnModel')\n ], HeaderGroupCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1h([\n Autowired('dragAndDropService')\n ], HeaderGroupCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1h([\n Autowired('userComponentFactory')\n ], HeaderGroupCellCtrl.prototype, \"userComponentFactory\", void 0);\n __decorate$1h([\n Autowired('gridApi')\n ], HeaderGroupCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1h([\n Autowired('columnApi')\n ], HeaderGroupCellCtrl.prototype, \"columnApi\", void 0);\n return HeaderGroupCellCtrl;\n}(AbstractHeaderCellCtrl));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence$4 = 0;\nvar HeaderRowCtrl = /** @class */ (function (_super) {\n __extends$1v(HeaderRowCtrl, _super);\n function HeaderRowCtrl(rowIndex, pinned, type) {\n var _this = _super.call(this) || this;\n _this.instanceId = instanceIdSequence$4++;\n _this.headerCellCtrls = {};\n _this.rowIndex = rowIndex;\n _this.pinned = pinned;\n _this.type = type;\n return _this;\n }\n HeaderRowCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n HeaderRowCtrl.prototype.setComp = function (comp) {\n this.comp = comp;\n this.onRowHeightChanged();\n this.onVirtualColumnsChanged();\n this.setWidth();\n this.addEventListeners();\n if (isBrowserSafari()) {\n // fix for a Safari rendering bug that caused the header to flicker above chart panels\n // as you move the mouse over the header\n this.comp.setTransform('translateZ(0)');\n }\n comp.setAriaRowIndex(this.rowIndex + 1);\n };\n HeaderRowCtrl.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));\n // when print layout changes, it changes what columns are in what section\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, this.onRowHeightChanged.bind(this));\n };\n HeaderRowCtrl.prototype.getHeaderCellCtrl = function (column) {\n return values(this.headerCellCtrls).find(function (cellCtrl) { return cellCtrl.getColumnGroupChild() === column; });\n };\n HeaderRowCtrl.prototype.onDisplayedColumnsChanged = function () {\n this.onVirtualColumnsChanged();\n this.setWidth();\n };\n HeaderRowCtrl.prototype.getType = function () {\n return this.type;\n };\n HeaderRowCtrl.prototype.onColumnResized = function () {\n this.setWidth();\n };\n HeaderRowCtrl.prototype.setWidth = function () {\n var width = this.getWidthForRow();\n this.comp.setWidth(width + \"px\");\n };\n HeaderRowCtrl.prototype.getWidthForRow = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n if (printLayout) {\n var pinned = this.pinned != null;\n if (pinned) {\n return 0;\n }\n return this.columnModel.getContainerWidth(Constants.PINNED_RIGHT)\n + this.columnModel.getContainerWidth(Constants.PINNED_LEFT)\n + this.columnModel.getContainerWidth(null);\n }\n // if not printing, just return the width as normal\n return this.columnModel.getContainerWidth(this.pinned);\n };\n HeaderRowCtrl.prototype.onRowHeightChanged = function () {\n var headerRowCount = this.columnModel.getHeaderRowCount();\n var sizes = [];\n var numberOfFloating = 0;\n var groupHeight;\n var headerHeight;\n if (this.columnModel.hasFloatingFilters()) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n if (this.columnModel.isPivotMode()) {\n groupHeight = this.gridOptionsWrapper.getPivotGroupHeaderHeight();\n headerHeight = this.gridOptionsWrapper.getPivotHeaderHeight();\n }\n else {\n groupHeight = this.gridOptionsWrapper.getGroupHeaderHeight();\n headerHeight = this.gridOptionsWrapper.getHeaderHeight();\n }\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n for (var i = 0; i < numberOfGroups; i++) {\n sizes.push(groupHeight);\n }\n sizes.push(headerHeight);\n for (var i = 0; i < numberOfFloating; i++) {\n sizes.push(this.gridOptionsWrapper.getFloatingFiltersHeight());\n }\n var rowHeight = 0;\n for (var i = 0; i < this.rowIndex; i++) {\n rowHeight += sizes[i];\n }\n this.comp.setTop(rowHeight + 'px');\n this.comp.setHeight(sizes[this.rowIndex] + 'px');\n };\n HeaderRowCtrl.prototype.getPinned = function () {\n return this.pinned;\n };\n HeaderRowCtrl.prototype.getRowIndex = function () {\n return this.rowIndex;\n };\n HeaderRowCtrl.prototype.onVirtualColumnsChanged = function () {\n var _this = this;\n var oldCtrls = this.headerCellCtrls;\n this.headerCellCtrls = {};\n var columns = this.getColumnsInViewport();\n columns.forEach(function (child) {\n // skip groups that have no displayed children. this can happen when the group is broken,\n // and this section happens to have nothing to display for the open / closed state.\n // (a broken group is one that is split, ie columns in the group have a non-group column\n // in between them)\n if (child.isEmptyGroup()) {\n return;\n }\n var idOfChild = child.getUniqueId();\n // if we already have this cell rendered, do nothing\n var headerCtrl = oldCtrls[idOfChild];\n delete oldCtrls[idOfChild];\n // it's possible there is a new Column with the same ID, but it's for a different Column.\n // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,\n // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are\n // about to replace it in the this.headerComps map.\n var forOldColumn = headerCtrl && headerCtrl.getColumnGroupChild() != child;\n if (forOldColumn) {\n _this.destroyBean(headerCtrl);\n headerCtrl = undefined;\n }\n if (headerCtrl == null) {\n switch (_this.type) {\n case exports.HeaderRowType.FLOATING_FILTER:\n headerCtrl = _this.createBean(new HeaderFilterCellCtrl(child, _this));\n break;\n case exports.HeaderRowType.COLUMN_GROUP:\n headerCtrl = _this.createBean(new HeaderGroupCellCtrl(child, _this));\n break;\n default:\n headerCtrl = _this.createBean(new HeaderCellCtrl(child, _this));\n break;\n }\n }\n _this.headerCellCtrls[idOfChild] = headerCtrl;\n });\n // we want to keep columns that are focused, otherwise keyboard navigation breaks\n var isFocusedAndDisplayed = function (ctrl) {\n var isFocused = _this.focusService.isHeaderWrapperFocused(ctrl);\n if (!isFocused) {\n return false;\n }\n var isDisplayed = _this.columnModel.isDisplayed(ctrl.getColumnGroupChild());\n return isDisplayed;\n };\n iterateObject(oldCtrls, function (id, oldCtrl) {\n var keepCtrl = isFocusedAndDisplayed(oldCtrl);\n if (keepCtrl) {\n _this.headerCellCtrls[id] = oldCtrl;\n }\n else {\n _this.destroyBean(oldCtrl);\n }\n });\n var ctrlsToDisplay = getAllValuesInObject(this.headerCellCtrls);\n this.comp.setHeaderCtrls(ctrlsToDisplay);\n };\n HeaderRowCtrl.prototype.destroyCtrls = function () {\n var _this = this;\n iterateObject(this.headerCellCtrls, function (key, ctrl) {\n _this.destroyBean(ctrl);\n });\n this.headerCellCtrls = {};\n };\n HeaderRowCtrl.prototype.getColumnsInViewport = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n return printLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();\n };\n HeaderRowCtrl.prototype.getColumnsInViewportPrintLayout = function () {\n var _this = this;\n // for print layout, we add all columns into the center\n if (this.pinned != null) {\n return [];\n }\n var viewportColumns = [];\n var actualDepth = this.getActualDepth();\n [Constants.PINNED_LEFT, null, Constants.PINNED_RIGHT].forEach(function (pinned) {\n var items = _this.columnModel.getVirtualHeaderGroupRow(pinned, actualDepth);\n viewportColumns = viewportColumns.concat(items);\n });\n return viewportColumns;\n };\n HeaderRowCtrl.prototype.getActualDepth = function () {\n return this.type == exports.HeaderRowType.FLOATING_FILTER ? this.rowIndex - 1 : this.rowIndex;\n };\n HeaderRowCtrl.prototype.getColumnsInViewportNormalLayout = function () {\n // when in normal layout, we add the columns for that container only\n return this.columnModel.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());\n };\n HeaderRowCtrl.prototype.focusHeader = function (column, event) {\n var allCtrls = getAllValuesInObject(this.headerCellCtrls);\n var ctrl = allCtrls.find(function (ctrl) { return ctrl.getColumnGroupChild() == column; });\n if (!ctrl) {\n return false;\n }\n ctrl.focus(event);\n return true;\n };\n __decorate$1i([\n Autowired('columnModel')\n ], HeaderRowCtrl.prototype, \"columnModel\", void 0);\n __decorate$1i([\n Autowired('focusService')\n ], HeaderRowCtrl.prototype, \"focusService\", void 0);\n __decorate$1i([\n PreDestroy\n ], HeaderRowCtrl.prototype, \"destroyCtrls\", null);\n return HeaderRowCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$c = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$9 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$c(arguments[i]));\n return ar;\n};\nvar HeaderRowContainerCtrl = /** @class */ (function (_super) {\n __extends$1w(HeaderRowContainerCtrl, _super);\n function HeaderRowContainerCtrl(pinned) {\n var _this = _super.call(this) || this;\n _this.groupsRowCtrls = [];\n _this.pinned = pinned;\n return _this;\n }\n HeaderRowContainerCtrl.prototype.setComp = function (comp, eGui) {\n this.comp = comp;\n this.setupCenterWidth();\n this.setupPinnedWidth();\n this.setupDragAndDrop(eGui);\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.ctrlsService.registerHeaderContainer(this, this.pinned);\n if (this.columnModel.isReady()) {\n this.refresh();\n }\n };\n HeaderRowContainerCtrl.prototype.setupDragAndDrop = function (dropContainer) {\n var bodyDropTarget = new BodyDropTarget(this.pinned, dropContainer);\n this.createManagedBean(bodyDropTarget);\n };\n HeaderRowContainerCtrl.prototype.refresh = function (keepColumns) {\n var _this = this;\n if (keepColumns === void 0) { keepColumns = false; }\n var sequence = new NumberSequence();\n var focusedHeaderPosition = this.focusService.getFocusHeaderToUseAfterRefresh();\n var refreshColumnGroups = function () {\n var groupRowCount = _this.columnModel.getHeaderRowCount() - 1;\n _this.groupsRowCtrls = _this.destroyBeans(_this.groupsRowCtrls);\n for (var i = 0; i < groupRowCount; i++) {\n var ctrl = _this.createBean(new HeaderRowCtrl(sequence.next(), _this.pinned, exports.HeaderRowType.COLUMN_GROUP));\n _this.groupsRowCtrls.push(ctrl);\n }\n };\n var refreshColumns = function () {\n var rowIndex = sequence.next();\n var needNewInstance = _this.columnsRowCtrl == null || !keepColumns || _this.columnsRowCtrl.getRowIndex() !== rowIndex;\n if (needNewInstance) {\n _this.destroyBean(_this.columnsRowCtrl);\n _this.columnsRowCtrl = _this.createBean(new HeaderRowCtrl(rowIndex, _this.pinned, exports.HeaderRowType.COLUMN));\n }\n };\n var refreshFilters = function () {\n var includeFloatingFilter = _this.columnModel.hasFloatingFilters();\n var destroyPreviousComp = function () {\n _this.filtersRowCtrl = _this.destroyBean(_this.filtersRowCtrl);\n };\n if (!includeFloatingFilter) {\n destroyPreviousComp();\n return;\n }\n var rowIndex = sequence.next();\n if (_this.filtersRowCtrl) {\n var rowIndexMismatch = _this.filtersRowCtrl.getRowIndex() !== rowIndex;\n if (!keepColumns || rowIndexMismatch) {\n destroyPreviousComp();\n }\n }\n if (!_this.filtersRowCtrl) {\n _this.filtersRowCtrl = _this.createBean(new HeaderRowCtrl(rowIndex, _this.pinned, exports.HeaderRowType.FLOATING_FILTER));\n }\n };\n refreshColumnGroups();\n refreshColumns();\n refreshFilters();\n var allCtrls = this.getAllCtrls();\n this.comp.setCtrls(allCtrls);\n this.restoreFocusOnHeader(focusedHeaderPosition);\n };\n HeaderRowContainerCtrl.prototype.restoreFocusOnHeader = function (position) {\n if (position == null || position.column.getPinned() != this.pinned) {\n return;\n }\n this.focusService.focusHeaderPosition({ headerPosition: position });\n };\n HeaderRowContainerCtrl.prototype.getAllCtrls = function () {\n var res = __spread$9(this.groupsRowCtrls, [this.columnsRowCtrl]);\n if (this.filtersRowCtrl) {\n res.push(this.filtersRowCtrl);\n }\n return res;\n };\n // grid cols have changed - this also means the number of rows in the header can have\n // changed. so we remove all the old rows and insert new ones for a complete refresh\n HeaderRowContainerCtrl.prototype.onGridColumnsChanged = function () {\n this.refresh(true);\n };\n HeaderRowContainerCtrl.prototype.setupCenterWidth = function () {\n var _this = this;\n if (this.pinned != null) {\n return;\n }\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.comp.setCenterWidth(width + \"px\"); }));\n };\n HeaderRowContainerCtrl.prototype.setHorizontalScroll = function (offset) {\n this.comp.setContainerTransform(\"translateX(\" + offset + \"px)\");\n };\n HeaderRowContainerCtrl.prototype.setupPinnedWidth = function () {\n var _this = this;\n if (this.pinned == null) {\n return;\n }\n var pinningLeft = this.pinned === Constants.PINNED_LEFT;\n var pinningRight = this.pinned === Constants.PINNED_RIGHT;\n var listener = function () {\n var width = pinningLeft ? _this.pinnedWidthService.getPinnedLeftWidth() : _this.pinnedWidthService.getPinnedRightWidth();\n if (width == null) {\n return;\n } // can happen at initialisation, width not yet set\n var hidden = width == 0;\n var isRtl = _this.gridOptionsWrapper.isEnableRtl();\n var scrollbarWidth = _this.gridOptionsWrapper.getScrollbarWidth();\n // if there is a scroll showing (and taking up space, so Windows, and not iOS)\n // in the body, then we add extra space to keep header aligned with the body,\n // as body width fits the cols and the scrollbar\n var addPaddingForScrollbar = _this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));\n var widthWithPadding = addPaddingForScrollbar ? width + scrollbarWidth : width;\n _this.comp.setPinnedContainerWidth(widthWithPadding + 'px');\n _this.comp.addOrRemoveCssClass('ag-hidden', hidden);\n };\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, listener);\n };\n HeaderRowContainerCtrl.prototype.getHeaderCtrlForColumn = function (column) {\n if (column instanceof Column) {\n if (!this.columnsRowCtrl) {\n return;\n }\n return this.columnsRowCtrl.getHeaderCellCtrl(column);\n }\n if (this.groupsRowCtrls.length === 0) {\n return;\n }\n for (var i = 0; i < this.groupsRowCtrls.length; i++) {\n var ctrl = this.groupsRowCtrls[i].getHeaderCellCtrl(column);\n if (ctrl) {\n return ctrl;\n }\n }\n };\n HeaderRowContainerCtrl.prototype.getHtmlElementForColumnHeader = function (column) {\n /* tslint:enable */\n var cellCtrl = this.getHeaderCtrlForColumn(column);\n if (!cellCtrl) {\n return null;\n }\n return cellCtrl.getGui();\n };\n HeaderRowContainerCtrl.prototype.getRowType = function (rowIndex) {\n var allCtrls = this.getAllCtrls();\n var ctrl = allCtrls[rowIndex];\n return ctrl ? ctrl.getType() : undefined;\n };\n HeaderRowContainerCtrl.prototype.focusHeader = function (rowIndex, column, event) {\n var allCtrls = this.getAllCtrls();\n var ctrl = allCtrls[rowIndex];\n if (!ctrl) {\n return false;\n }\n return ctrl.focusHeader(column, event);\n };\n HeaderRowContainerCtrl.prototype.getRowCount = function () {\n return this.getAllCtrls().length;\n };\n __decorate$1j([\n Autowired('ctrlsService')\n ], HeaderRowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1j([\n Autowired('scrollVisibleService')\n ], HeaderRowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1j([\n Autowired('pinnedWidthService')\n ], HeaderRowContainerCtrl.prototype, \"pinnedWidthService\", void 0);\n __decorate$1j([\n Autowired('columnModel')\n ], HeaderRowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$1j([\n Autowired('focusService')\n ], HeaderRowContainerCtrl.prototype, \"focusService\", void 0);\n return HeaderRowContainerCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderRowContainerComp = /** @class */ (function (_super) {\n __extends$1x(HeaderRowContainerComp, _super);\n function HeaderRowContainerComp(pinned) {\n var _this = _super.call(this) || this;\n _this.headerRowComps = {};\n _this.rowCompsList = [];\n _this.pinned = pinned;\n return _this;\n }\n HeaderRowContainerComp.prototype.init = function () {\n var _this = this;\n this.selectAndSetTemplate();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setCtrls: function (ctrls) { return _this.setCtrls(ctrls); },\n // only gets called for center section\n setCenterWidth: function (width) { return _this.eCenterContainer.style.width = width; },\n setContainerTransform: function (transform) { return _this.eCenterContainer.style.transform = transform; },\n // only gets called for pinned sections\n setPinnedContainerWidth: function (width) {\n var eGui = _this.getGui();\n eGui.style.width = width;\n eGui.style.maxWidth = width;\n eGui.style.minWidth = width;\n }\n };\n var ctrl = this.createManagedBean(new HeaderRowContainerCtrl(this.pinned));\n ctrl.setComp(compProxy, this.getGui());\n };\n HeaderRowContainerComp.prototype.selectAndSetTemplate = function () {\n var pinnedLeft = this.pinned == Constants.PINNED_LEFT;\n var pinnedRight = this.pinned == Constants.PINNED_RIGHT;\n var template = pinnedLeft ? HeaderRowContainerComp.PINNED_LEFT_TEMPLATE :\n pinnedRight ? HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE : HeaderRowContainerComp.CENTER_TEMPLATE;\n this.setTemplate(template);\n // for left and right, we add rows directly to the root element,\n // but for center container we add elements to the child container.\n this.eRowContainer = this.eCenterContainer ? this.eCenterContainer : this.getGui();\n };\n HeaderRowContainerComp.prototype.destroyRowComps = function () {\n this.setCtrls([]);\n };\n HeaderRowContainerComp.prototype.destroyRowComp = function (rowComp) {\n this.destroyBean(rowComp);\n this.eRowContainer.removeChild(rowComp.getGui());\n };\n HeaderRowContainerComp.prototype.setCtrls = function (ctrls) {\n var _this = this;\n var oldRowComps = this.headerRowComps;\n this.headerRowComps = {};\n this.rowCompsList = [];\n var prevGui;\n var appendEnsuringDomOrder = function (rowComp) {\n var eGui = rowComp.getGui();\n var notAlreadyIn = eGui.parentElement != _this.eRowContainer;\n if (notAlreadyIn) {\n _this.eRowContainer.appendChild(eGui);\n }\n if (prevGui) {\n ensureDomOrder(_this.eRowContainer, eGui, prevGui);\n }\n prevGui = eGui;\n };\n ctrls.forEach(function (ctrl) {\n var ctrlId = ctrl.getInstanceId();\n var existingComp = oldRowComps[ctrlId];\n delete oldRowComps[ctrlId];\n var rowComp = existingComp ? existingComp : _this.createBean(new HeaderRowComp(ctrl));\n _this.headerRowComps[ctrlId] = rowComp;\n _this.rowCompsList.push(rowComp);\n appendEnsuringDomOrder(rowComp);\n });\n getAllValuesInObject(oldRowComps).forEach(function (c) { return _this.destroyRowComp(c); });\n };\n HeaderRowContainerComp.PINNED_LEFT_TEMPLATE = \"
\";\n HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE = \"
\";\n HeaderRowContainerComp.CENTER_TEMPLATE = \"
\\n
\\n
\";\n __decorate$1k([\n RefSelector('eCenterContainer')\n ], HeaderRowContainerComp.prototype, \"eCenterContainer\", void 0);\n __decorate$1k([\n PostConstruct\n ], HeaderRowContainerComp.prototype, \"init\", null);\n __decorate$1k([\n PreDestroy\n ], HeaderRowContainerComp.prototype, \"destroyRowComps\", null);\n return HeaderRowContainerComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n(function (HeaderNavigationDirection) {\n HeaderNavigationDirection[HeaderNavigationDirection[\"UP\"] = 0] = \"UP\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"DOWN\"] = 1] = \"DOWN\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"LEFT\"] = 2] = \"LEFT\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"RIGHT\"] = 3] = \"RIGHT\";\n})(exports.HeaderNavigationDirection || (exports.HeaderNavigationDirection = {}));\nvar HeaderNavigationService = /** @class */ (function (_super) {\n __extends$1y(HeaderNavigationService, _super);\n function HeaderNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderNavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCtrl;\n });\n };\n HeaderNavigationService.prototype.getHeaderRowCount = function () {\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n return centerHeaderContainer ? centerHeaderContainer.getRowCount() : 0;\n };\n HeaderNavigationService.prototype.getHeaderRowType = function (rowIndex) {\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n if (centerHeaderContainer) {\n return centerHeaderContainer.getRowType(rowIndex);\n }\n };\n /*\n * This method navigates grid header vertically\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateVertically = function (direction, fromHeader, event) {\n if (!fromHeader) {\n fromHeader = this.focusService.getFocusedHeader();\n }\n if (!fromHeader) {\n return false;\n }\n var headerRowIndex = fromHeader.headerRowIndex, column = fromHeader.column;\n var rowLen = this.getHeaderRowCount();\n var isUp = direction === exports.HeaderNavigationDirection.UP;\n var nextRow = isUp ? headerRowIndex - 1 : headerRowIndex + 1;\n var nextFocusColumn = null;\n var skipColumn = false;\n if (nextRow < 0) {\n nextRow = 0;\n nextFocusColumn = column;\n skipColumn = true;\n }\n if (nextRow >= rowLen) {\n nextRow = -1; // -1 indicates the focus should move to grid rows.\n }\n var currentRowType = this.getHeaderRowType(headerRowIndex);\n if (!skipColumn) {\n if (currentRowType === exports.HeaderRowType.COLUMN_GROUP) {\n var currentColumn = column;\n nextFocusColumn = isUp ? column.getParent() : currentColumn.getDisplayedChildren()[0];\n }\n else if (currentRowType === exports.HeaderRowType.FLOATING_FILTER) {\n nextFocusColumn = column;\n }\n else {\n var currentColumn = column;\n nextFocusColumn = isUp ? currentColumn.getParent() : currentColumn;\n }\n if (!nextFocusColumn) {\n return false;\n }\n }\n return this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: nextRow, column: nextFocusColumn },\n allowUserOverride: true,\n event: event\n });\n };\n /*\n * This method navigates grid header horizontally\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateHorizontally = function (direction, fromTab, event) {\n if (fromTab === void 0) { fromTab = false; }\n var focusedHeader = this.focusService.getFocusedHeader();\n var isLeft = direction === exports.HeaderNavigationDirection.LEFT;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var nextHeader;\n var normalisedDirection;\n // either navigating to the left or isRtl (cannot be both)\n if (isLeft !== isRtl) {\n normalisedDirection = 'Before';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n else {\n normalisedDirection = 'After';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n if (nextHeader) {\n return this.focusService.focusHeaderPosition({\n headerPosition: nextHeader,\n direction: normalisedDirection,\n fromTab: fromTab,\n allowUserOverride: true,\n event: event\n });\n }\n if (!fromTab) {\n return true;\n }\n return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);\n };\n HeaderNavigationService.prototype.focusNextHeaderRow = function (focusedHeader, direction, event) {\n var currentIndex = focusedHeader.headerRowIndex;\n var nextPosition = null;\n var nextRowIndex;\n if (direction === 'Before') {\n if (currentIndex > 0) {\n nextRowIndex = currentIndex - 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');\n }\n }\n else {\n nextRowIndex = currentIndex + 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');\n }\n return this.focusService.focusHeaderPosition({\n headerPosition: nextPosition,\n direction: direction,\n fromTab: true,\n allowUserOverride: true,\n event: event\n });\n };\n HeaderNavigationService.prototype.scrollToColumn = function (column, direction) {\n if (direction === void 0) { direction = 'After'; }\n if (column.getPinned()) {\n return;\n }\n var columnToScrollTo;\n if (column instanceof ColumnGroup) {\n var columns = column.getDisplayedLeafColumns();\n columnToScrollTo = direction === 'Before' ? last(columns) : columns[0];\n }\n else {\n columnToScrollTo = column;\n }\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);\n // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible\n // floating cell, the scrolls get out of sync\n this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();\n // need to flush frames, to make sure the correct cells are rendered\n this.animationFrameService.flushAllFrames();\n };\n __decorate$1l([\n Autowired('focusService')\n ], HeaderNavigationService.prototype, \"focusService\", void 0);\n __decorate$1l([\n Autowired('headerPositionUtils')\n ], HeaderNavigationService.prototype, \"headerPositionUtils\", void 0);\n __decorate$1l([\n Autowired('animationFrameService')\n ], HeaderNavigationService.prototype, \"animationFrameService\", void 0);\n __decorate$1l([\n Autowired('ctrlsService')\n ], HeaderNavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$1l([\n PostConstruct\n ], HeaderNavigationService.prototype, \"postConstruct\", null);\n HeaderNavigationService = __decorate$1l([\n Bean('headerNavigationService')\n ], HeaderNavigationService);\n return HeaderNavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderCtrl = /** @class */ (function (_super) {\n __extends$1z(GridHeaderCtrl, _super);\n function GridHeaderCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridHeaderCtrl.prototype.setComp = function (comp, eGui, eFocusableElement) {\n this.comp = comp;\n this.eGui = eGui;\n this.createManagedBean(new ManagedFocusFeature(eFocusableElement, {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n // for setting ag-pivot-on / ag-pivot-off CSS classes\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n this.onPivotModeChanged();\n this.setupHeaderHeight();\n this.ctrlsService.registerGridHeaderCtrl(this);\n };\n GridHeaderCtrl.prototype.setupHeaderHeight = function () {\n var listener = this.setHeaderHeight.bind(this);\n listener();\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n };\n GridHeaderCtrl.prototype.setHeaderHeight = function () {\n var _a = this, columnModel = _a.columnModel, gridOptionsWrapper = _a.gridOptionsWrapper;\n var numberOfFloating = 0;\n var headerRowCount = columnModel.getHeaderRowCount();\n var totalHeaderHeight;\n var groupHeight;\n var headerHeight;\n var hasFloatingFilters = columnModel.hasFloatingFilters();\n if (hasFloatingFilters) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n if (columnModel.isPivotMode()) {\n groupHeight = gridOptionsWrapper.getPivotGroupHeaderHeight();\n headerHeight = gridOptionsWrapper.getPivotHeaderHeight();\n }\n else {\n groupHeight = gridOptionsWrapper.getGroupHeaderHeight();\n headerHeight = gridOptionsWrapper.getHeaderHeight();\n }\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n totalHeaderHeight = numberOfFloating * gridOptionsWrapper.getFloatingFiltersHeight();\n totalHeaderHeight += numberOfGroups * groupHeight;\n totalHeaderHeight += headerHeight;\n // one extra pixel is needed here to account for the\n // height of the border\n var px = totalHeaderHeight + 1 + \"px\";\n this.comp.setHeightAndMinHeight(px);\n };\n GridHeaderCtrl.prototype.onPivotModeChanged = function () {\n var pivotMode = this.columnModel.isPivotMode();\n this.comp.addOrRemoveCssClass('ag-pivot-on', pivotMode);\n this.comp.addOrRemoveCssClass('ag-pivot-off', !pivotMode);\n };\n GridHeaderCtrl.prototype.onTabKeyDown = function (e) {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var direction = e.shiftKey !== isRtl\n ? exports.HeaderNavigationDirection.LEFT\n : exports.HeaderNavigationDirection.RIGHT;\n if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||\n this.focusService.focusNextGridCoreContainer(e.shiftKey)) {\n e.preventDefault();\n }\n };\n GridHeaderCtrl.prototype.handleKeyDown = function (e) {\n var direction = null;\n switch (e.key) {\n case KeyCode.LEFT:\n direction = exports.HeaderNavigationDirection.LEFT;\n case KeyCode.RIGHT:\n if (!exists(direction)) {\n direction = exports.HeaderNavigationDirection.RIGHT;\n }\n this.headerNavigationService.navigateHorizontally(direction, false, e);\n break;\n case KeyCode.UP:\n direction = exports.HeaderNavigationDirection.UP;\n case KeyCode.DOWN:\n if (!exists(direction)) {\n direction = exports.HeaderNavigationDirection.DOWN;\n }\n if (this.headerNavigationService.navigateVertically(direction, null, e)) {\n e.preventDefault();\n }\n break;\n default:\n return;\n }\n };\n GridHeaderCtrl.prototype.onFocusOut = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var relatedTarget = e.relatedTarget;\n if (!relatedTarget && this.eGui.contains(eDocument.activeElement)) {\n return;\n }\n if (!this.eGui.contains(relatedTarget)) {\n this.focusService.clearFocusedHeader();\n }\n };\n __decorate$1m([\n Autowired('headerNavigationService')\n ], GridHeaderCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$1m([\n Autowired('focusService')\n ], GridHeaderCtrl.prototype, \"focusService\", void 0);\n __decorate$1m([\n Autowired('columnModel')\n ], GridHeaderCtrl.prototype, \"columnModel\", void 0);\n __decorate$1m([\n Autowired('ctrlsService')\n ], GridHeaderCtrl.prototype, \"ctrlsService\", void 0);\n return GridHeaderCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderComp = /** @class */ (function (_super) {\n __extends$1A(GridHeaderComp, _super);\n function GridHeaderComp() {\n return _super.call(this, GridHeaderComp.TEMPLATE) || this;\n }\n GridHeaderComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setHeightAndMinHeight: function (height) {\n _this.getGui().style.height = height;\n _this.getGui().style.minHeight = height;\n }\n };\n var ctrl = this.createManagedBean(new GridHeaderCtrl());\n ctrl.setComp(compProxy, this.getGui(), this.getFocusableElement());\n var addContainer = function (container) {\n _this.createManagedBean(container);\n _this.appendChild(container);\n };\n addContainer(new HeaderRowContainerComp(Constants.PINNED_LEFT));\n addContainer(new HeaderRowContainerComp(null));\n addContainer(new HeaderRowContainerComp(Constants.PINNED_RIGHT));\n };\n GridHeaderComp.TEMPLATE = \"
\";\n __decorate$1n([\n PostConstruct\n ], GridHeaderComp.prototype, \"postConstruct\", null);\n return GridHeaderComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HorizontalResizeService = /** @class */ (function (_super) {\n __extends$1B(HorizontalResizeService, _super);\n function HorizontalResizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HorizontalResizeService.prototype.addResizeBar = function (params) {\n var _this = this;\n var dragSource = {\n dragStartPixels: params.dragStartPixels || 0,\n eElement: params.eResizeBar,\n onDragStart: this.onDragStart.bind(this, params),\n onDragStop: this.onDragStop.bind(this, params),\n onDragging: this.onDragging.bind(this, params)\n };\n this.dragService.addDragSource(dragSource, true);\n // we pass remove func back to the caller, so call can tell us when they\n // are finished, and then we remove the listener from the drag source\n var finishedWithResizeFunc = function () { return _this.dragService.removeDragSource(dragSource); };\n return finishedWithResizeFunc;\n };\n HorizontalResizeService.prototype.onDragStart = function (params, mouseEvent) {\n this.dragStartX = mouseEvent.clientX;\n this.setResizeIcons();\n var shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;\n params.onResizeStart(shiftKey);\n };\n HorizontalResizeService.prototype.setResizeIcons = function () {\n var ctrl = this.ctrlsService.getGridCtrl();\n // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'\n ctrl.setResizeCursor(true);\n // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)\n ctrl.disableUserSelect(true);\n };\n HorizontalResizeService.prototype.onDragStop = function (params, mouseEvent) {\n params.onResizeEnd(this.resizeAmount);\n this.resetIcons();\n };\n HorizontalResizeService.prototype.resetIcons = function () {\n var ctrl = this.ctrlsService.getGridCtrl();\n ctrl.setResizeCursor(false);\n ctrl.disableUserSelect(false);\n };\n HorizontalResizeService.prototype.onDragging = function (params, mouseEvent) {\n this.resizeAmount = mouseEvent.clientX - this.dragStartX;\n params.onResizing(this.resizeAmount);\n };\n __decorate$1o([\n Autowired('dragService')\n ], HorizontalResizeService.prototype, \"dragService\", void 0);\n __decorate$1o([\n Autowired('ctrlsService')\n ], HorizontalResizeService.prototype, \"ctrlsService\", void 0);\n HorizontalResizeService = __decorate$1o([\n Bean('horizontalResizeService')\n ], HorizontalResizeService);\n return HorizontalResizeService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StandardMenuFactory = /** @class */ (function (_super) {\n __extends$1C(StandardMenuFactory, _super);\n function StandardMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StandardMenuFactory.prototype.hideActiveMenu = function () {\n if (this.hidePopup) {\n this.hidePopup();\n }\n };\n StandardMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupUnderMouseEvent({\n column: column,\n type: 'columnMenu',\n mouseEvent: mouseEvent,\n ePopup: eMenu\n });\n }, mouseEvent.target);\n };\n StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupUnderComponent({\n type: containerType,\n eventSource: eventSource,\n ePopup: eMenu,\n keepWithinBounds: true,\n column: column\n });\n }, eventSource);\n };\n StandardMenuFactory.prototype.showPopup = function (column, positionCallback, eventSource) {\n var _this = this;\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');\n if (!filterWrapper) {\n throw new Error('AG Grid - unable to show popup filter, filter instantiation failed');\n }\n var eMenu = document.createElement('div');\n setAriaRole(eMenu, 'presentation');\n eMenu.classList.add('ag-menu');\n this.tabListener = this.addManagedListener(eMenu, 'keydown', function (e) { return _this.trapFocusWithin(e, eMenu); });\n filterWrapper.guiPromise.then(function (gui) { return eMenu.appendChild(gui); });\n var hidePopup;\n var anchorToElement = eventSource || this.ctrlsService.getGridBodyCtrl().getGui();\n var closedCallback = function (e) {\n column.setMenuVisible(false, 'contextMenu');\n var isKeyboardEvent = e instanceof KeyboardEvent;\n if (_this.tabListener) {\n _this.tabListener = _this.tabListener();\n }\n if (isKeyboardEvent && eventSource && isVisible(eventSource)) {\n var focusableEl = _this.focusService.findTabbableParent(eventSource);\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n };\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenu,\n closeOnEsc: true,\n closedCallback: closedCallback,\n positionCallback: function () { return positionCallback(eMenu); },\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelColumnMenu', 'Column Menu')\n });\n if (addPopupRes) {\n this.hidePopup = hidePopup = addPopupRes.hideFunc;\n }\n filterWrapper.filterPromise.then(function (filter) {\n // need to make sure the filter is present before positioning, as only\n // after filter it is visible can we find out what the width of it is\n positionCallback(eMenu);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: 'columnMenu', hidePopup: hidePopup });\n }\n });\n column.setMenuVisible(true, 'contextMenu');\n };\n StandardMenuFactory.prototype.trapFocusWithin = function (e, menu) {\n if (e.key !== KeyCode.TAB ||\n e.defaultPrevented ||\n this.focusService.findNextFocusableElement(menu, false, e.shiftKey)) {\n return;\n }\n e.preventDefault();\n this.focusService.focusInto(menu, e.shiftKey);\n };\n StandardMenuFactory.prototype.isMenuEnabled = function (column) {\n // for standard, we show menu if filter is enabled, and the menu is not suppressed\n return column.isFilterAllowed();\n };\n __decorate$1p([\n Autowired('filterManager')\n ], StandardMenuFactory.prototype, \"filterManager\", void 0);\n __decorate$1p([\n Autowired('popupService')\n ], StandardMenuFactory.prototype, \"popupService\", void 0);\n __decorate$1p([\n Autowired('focusService')\n ], StandardMenuFactory.prototype, \"focusService\", void 0);\n __decorate$1p([\n Autowired('ctrlsService')\n ], StandardMenuFactory.prototype, \"ctrlsService\", void 0);\n StandardMenuFactory = __decorate$1p([\n Bean('menuFactory')\n ], StandardMenuFactory);\n return StandardMenuFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabbedLayout = /** @class */ (function (_super) {\n __extends$1D(TabbedLayout, _super);\n function TabbedLayout(params) {\n var _this = _super.call(this, TabbedLayout.getTemplate(params.cssClass)) || this;\n _this.items = [];\n _this.tabbedItemScrollMap = new Map();\n _this.params = params;\n if (params.items) {\n params.items.forEach(function (item) { return _this.addItem(item); });\n }\n return _this;\n }\n TabbedLayout.prototype.postConstruct = function () {\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n };\n TabbedLayout.getTemplate = function (cssClass) {\n return /* html */ \"
\\n
\\n
\\n
\";\n };\n TabbedLayout.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n switch (e.key) {\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n if (!this.eHeader.contains(eDocument.activeElement)) {\n return;\n }\n var currentPosition = this.items.indexOf(this.activeItem);\n var nextPosition = e.key === KeyCode.RIGHT ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);\n if (currentPosition === nextPosition) {\n return;\n }\n e.preventDefault();\n var nextItem = this.items[nextPosition];\n this.showItemWrapper(nextItem);\n nextItem.eHeaderButton.focus();\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n e.stopPropagation();\n break;\n }\n };\n TabbedLayout.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var _a = this, focusService = _a.focusService, eHeader = _a.eHeader, eBody = _a.eBody, activeItem = _a.activeItem;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeElement = eDocument.activeElement;\n e.preventDefault();\n if (eHeader.contains(activeElement)) {\n // focus is in header, move into body of popup\n focusService.focusInto(eBody, e.shiftKey);\n }\n else {\n // focus is in body, establish if it should return to header\n if (focusService.isFocusUnderManagedComponent(eBody)) {\n // focus was in a managed focus component and has now left, so we can return to the header\n activeItem.eHeaderButton.focus();\n }\n else {\n var nextEl = focusService.findNextFocusableElement(eBody, false, e.shiftKey);\n if (nextEl) {\n // if another element exists in the body that can be focussed, go to that\n nextEl.focus();\n }\n else {\n // otherwise return to the header\n activeItem.eHeaderButton.focus();\n }\n }\n }\n };\n TabbedLayout.prototype.setAfterAttachedParams = function (params) {\n this.afterAttachedParams = params;\n };\n TabbedLayout.prototype.showFirstItem = function () {\n if (this.items.length > 0) {\n this.showItemWrapper(this.items[0]);\n }\n };\n TabbedLayout.prototype.addItem = function (item) {\n var eHeaderButton = document.createElement('span');\n setAriaRole(eHeaderButton, 'tab');\n eHeaderButton.setAttribute('tabIndex', '-1');\n eHeaderButton.appendChild(item.title);\n eHeaderButton.classList.add('ag-tab');\n this.eHeader.appendChild(eHeaderButton);\n setAriaLabel(eHeaderButton, item.titleLabel);\n var wrapper = {\n tabbedItem: item,\n eHeaderButton: eHeaderButton\n };\n this.items.push(wrapper);\n eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));\n };\n TabbedLayout.prototype.showItem = function (tabbedItem) {\n var itemWrapper = this.items.find(function (wrapper) { return wrapper.tabbedItem === tabbedItem; });\n if (itemWrapper) {\n this.showItemWrapper(itemWrapper);\n }\n };\n TabbedLayout.prototype.showItemWrapper = function (wrapper) {\n var _this = this;\n var tabbedItem = wrapper.tabbedItem, eHeaderButton = wrapper.eHeaderButton;\n if (this.params.onItemClicked) {\n this.params.onItemClicked({ item: tabbedItem });\n }\n if (this.activeItem === wrapper) {\n callIfPresent(this.params.onActiveItemClicked);\n return;\n }\n if (this.lastScrollListener) {\n this.lastScrollListener = this.lastScrollListener();\n }\n clearElement(this.eBody);\n tabbedItem.bodyPromise.then(function (body) {\n _this.eBody.appendChild(body);\n var onlyUnmanaged = !_this.focusService.isKeyboardMode();\n _this.focusService.focusInto(_this.eBody, false, onlyUnmanaged);\n if (tabbedItem.afterAttachedCallback) {\n tabbedItem.afterAttachedCallback(_this.afterAttachedParams);\n }\n if (_this.params.keepScrollPosition) {\n var scrollableContainer_1 = (tabbedItem.getScrollableContainer && tabbedItem.getScrollableContainer()) || body;\n _this.lastScrollListener = _this.addManagedListener(scrollableContainer_1, 'scroll', function () {\n _this.tabbedItemScrollMap.set(tabbedItem.name, scrollableContainer_1.scrollTop);\n });\n var scrollPosition_1 = _this.tabbedItemScrollMap.get(tabbedItem.name);\n if (scrollPosition_1 !== undefined) {\n // Safari needs a small timeout or it will fire a scroll event to position 0\n setTimeout(function () {\n scrollableContainer_1.scrollTop = scrollPosition_1;\n }, 0);\n }\n }\n });\n if (this.activeItem) {\n this.activeItem.eHeaderButton.classList.remove('ag-tab-selected');\n }\n eHeaderButton.classList.add('ag-tab-selected');\n this.activeItem = wrapper;\n };\n __decorate$1q([\n Autowired('focusService')\n ], TabbedLayout.prototype, \"focusService\", void 0);\n __decorate$1q([\n RefSelector('eHeader')\n ], TabbedLayout.prototype, \"eHeader\", void 0);\n __decorate$1q([\n RefSelector('eBody')\n ], TabbedLayout.prototype, \"eBody\", void 0);\n __decorate$1q([\n PostConstruct\n ], TabbedLayout.prototype, \"postConstruct\", null);\n return TabbedLayout;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * @deprecated\n */\nfunction simpleHttpRequest(params) {\n return new AgPromise(function (resolve) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.open('GET', params.url);\n httpRequest.send();\n httpRequest.onreadystatechange = function () {\n if (httpRequest.readyState === 4 && httpRequest.status === 200) {\n resolve(JSON.parse(httpRequest.responseText));\n }\n };\n });\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEBOUNCE_DELAY = 50;\nvar ResizeObserverService = /** @class */ (function (_super) {\n __extends$1E(ResizeObserverService, _super);\n function ResizeObserverService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.polyfillFunctions = [];\n return _this;\n }\n ResizeObserverService.prototype.observeResize = function (element, callback) {\n var _this = this;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n // this gets fired too often and might cause some relayout issues\n // so we add a debounce to the callback here to avoid the flashing effect.\n var debouncedCallback = debounce(callback, DEBOUNCE_DELAY);\n var useBrowserResizeObserver = function () {\n var resizeObserver = new win.ResizeObserver(debouncedCallback);\n resizeObserver.observe(element);\n return function () { return resizeObserver.disconnect(); };\n };\n var usePolyfill = function () {\n // initialise to the current width and height, so first call will have no changes\n var widthLastTime = offsetWidth(element);\n var heightLastTime = offsetHeight(element);\n // when finished, this gets turned to false.\n var running = true;\n var periodicallyCheckWidthAndHeight = function () {\n if (running) {\n var newWidth = offsetWidth(element);\n var newHeight = offsetHeight(element);\n var changed = newWidth !== widthLastTime || newHeight !== heightLastTime;\n if (changed) {\n widthLastTime = newWidth;\n heightLastTime = newHeight;\n callback();\n }\n _this.doNextPolyfillTurn(periodicallyCheckWidthAndHeight);\n }\n };\n periodicallyCheckWidthAndHeight();\n // the callback function we return sets running to false\n return function () { return running = false; };\n };\n var suppressResize = this.gridOptionsWrapper.isSuppressBrowserResizeObserver();\n var resizeObserverExists = !!win.ResizeObserver;\n if (resizeObserverExists && !suppressResize) {\n return useBrowserResizeObserver();\n }\n return usePolyfill();\n };\n ResizeObserverService.prototype.doNextPolyfillTurn = function (func) {\n this.polyfillFunctions.push(func);\n this.schedulePolyfill();\n };\n ResizeObserverService.prototype.schedulePolyfill = function () {\n var _this = this;\n if (this.polyfillScheduled) {\n return;\n }\n var executeAllFuncs = function () {\n var funcs = _this.polyfillFunctions;\n // make sure set scheduled to false and clear clear array\n // before executing the funcs, as the funcs could add more funcs\n _this.polyfillScheduled = false;\n _this.polyfillFunctions = [];\n funcs.forEach(function (f) { return f(); });\n };\n this.polyfillScheduled = true;\n this.getFrameworkOverrides().setTimeout(executeAllFuncs, DEBOUNCE_DELAY);\n };\n ResizeObserverService = __decorate$1r([\n Bean('resizeObserverService')\n ], ResizeObserverService);\n return ResizeObserverService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AnimationFrameService = /** @class */ (function (_super) {\n __extends$1F(AnimationFrameService, _super);\n function AnimationFrameService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // p1 and p2 are create tasks are to do with row and cell creation.\n // for them we want to execute according to row order, so we use\n // TaskItem so we know what index the item is for.\n _this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows\n _this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality\n // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new\n // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as\n // important.\n _this.destroyTasks = [];\n _this.ticking = false;\n // we need to know direction of scroll, to build up rows in the direction of\n // the scroll. eg if user scrolls down, we extend the rows by building down.\n _this.scrollGoingDown = true;\n _this.lastScrollTop = 0;\n _this.taskCount = 0;\n _this.cancelledTasks = new Set();\n return _this;\n }\n AnimationFrameService.prototype.setScrollTop = function (scrollTop) {\n this.scrollGoingDown = scrollTop > this.lastScrollTop;\n this.lastScrollTop = scrollTop;\n };\n AnimationFrameService.prototype.init = function () {\n this.useAnimationFrame = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n };\n AnimationFrameService.prototype.isOn = function () {\n return this.useAnimationFrame;\n };\n // this method is for our AG Grid sanity only - if animation frames are turned off,\n // then no place in the code should be looking to add any work to be done in animation\n // frames. this stops bugs - where some code is asking for a frame to be executed\n // when it should not.\n AnimationFrameService.prototype.verifyAnimationFrameOn = function (methodName) {\n if (this.useAnimationFrame === false) {\n console.warn(\"AG Grid: AnimationFrameService.\" + methodName + \" called but animation frames are off\");\n }\n };\n AnimationFrameService.prototype.createTask = function (task, index, list) {\n this.verifyAnimationFrameOn(list);\n var taskItem = { task: task, index: index, createOrder: ++this.taskCount };\n this.addTaskToList(this[list], taskItem);\n this.schedule();\n };\n AnimationFrameService.prototype.cancelTask = function (task) {\n this.cancelledTasks.add(task);\n };\n AnimationFrameService.prototype.addTaskToList = function (taskList, task) {\n taskList.list.push(task);\n taskList.sorted = false;\n };\n AnimationFrameService.prototype.sortTaskList = function (taskList) {\n if (taskList.sorted) {\n return;\n }\n var sortDirection = this.scrollGoingDown ? 1 : -1;\n // sort first by row index (taking into account scroll direction), then by\n // order of task creation (always ascending, so cells will render left-to-right)\n taskList.list.sort(function (a, b) { return a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder; });\n taskList.sorted = true;\n };\n AnimationFrameService.prototype.addDestroyTask = function (task) {\n this.verifyAnimationFrameOn('createTasksP3');\n this.destroyTasks.push(task);\n this.schedule();\n };\n AnimationFrameService.prototype.executeFrame = function (millis) {\n this.verifyAnimationFrameOn('executeFrame');\n var p1TaskList = this.createTasksP1;\n var p1Tasks = p1TaskList.list;\n var p2TaskList = this.createTasksP2;\n var p2Tasks = p2TaskList.list;\n var destroyTasks = this.destroyTasks;\n var frameStart = new Date().getTime();\n var duration = (new Date().getTime()) - frameStart;\n // 16ms is 60 fps\n var noMaxMillis = millis <= 0;\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n while (noMaxMillis || duration < millis) {\n var gridBodyDidSomething = gridBodyCon.getScrollFeature().executeAnimationFrameScroll();\n if (!gridBodyDidSomething) {\n var task = void 0;\n if (p1Tasks.length) {\n this.sortTaskList(p1TaskList);\n task = p1Tasks.pop().task;\n }\n else if (p2Tasks.length) {\n this.sortTaskList(p2TaskList);\n task = p2Tasks.pop().task;\n }\n else if (destroyTasks.length) {\n task = destroyTasks.pop();\n }\n else {\n this.cancelledTasks.clear();\n break;\n }\n if (!this.cancelledTasks.has(task)) {\n task();\n }\n }\n duration = (new Date().getTime()) - frameStart;\n }\n if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {\n this.requestFrame();\n }\n else {\n this.stopTicking();\n }\n };\n AnimationFrameService.prototype.stopTicking = function () {\n this.ticking = false;\n };\n AnimationFrameService.prototype.flushAllFrames = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n this.executeFrame(-1);\n };\n AnimationFrameService.prototype.schedule = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n if (!this.ticking) {\n this.ticking = true;\n this.requestFrame();\n }\n };\n AnimationFrameService.prototype.requestFrame = function () {\n // check for the existence of requestAnimationFrame, and if\n // it's missing, then we polyfill it with setTimeout()\n var callback = this.executeFrame.bind(this, 60);\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(callback);\n }\n else if (win.webkitRequestAnimationFrame) {\n win.webkitRequestAnimationFrame(callback);\n }\n else {\n win.setTimeout(callback, 0);\n }\n };\n AnimationFrameService.prototype.isQueueEmpty = function () {\n return !this.ticking;\n };\n // a debounce utility used for parts of the app involved with rendering.\n // the advantage over normal debounce is the client can call flushAllFrames()\n // to make sure all rendering is complete. we don't wait any milliseconds,\n // as this is intended to batch calls in one VM turn.\n AnimationFrameService.prototype.debounce = function (func) {\n var _this = this;\n var pending = false;\n return function () {\n if (!_this.isOn()) {\n _this.getFrameworkOverrides().setTimeout(func, 0);\n return;\n }\n if (pending) {\n return;\n }\n pending = true;\n _this.addDestroyTask(function () {\n pending = false;\n func();\n });\n };\n };\n __decorate$1s([\n Autowired('ctrlsService')\n ], AnimationFrameService.prototype, \"ctrlsService\", void 0);\n __decorate$1s([\n PostConstruct\n ], AnimationFrameService.prototype, \"init\", null);\n AnimationFrameService = __decorate$1s([\n Bean('animationFrameService')\n ], AnimationFrameService);\n return AnimationFrameService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RESIZE_CONTAINER_STYLE = 'ag-resizer-wrapper';\nvar RESIZE_TEMPLATE = /* html */ \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar PositionableFeature = /** @class */ (function (_super) {\n __extends$1G(PositionableFeature, _super);\n function PositionableFeature(element, config) {\n var _this = _super.call(this) || this;\n _this.element = element;\n _this.dragStartPosition = {\n x: 0,\n y: 0\n };\n _this.position = {\n x: 0,\n y: 0\n };\n _this.lastSize = {\n width: -1,\n height: -1\n };\n _this.positioned = false;\n _this.resizersAdded = false;\n _this.resizeListeners = [];\n _this.boundaryEl = null;\n _this.isResizing = false;\n _this.isMoving = false;\n _this.resizable = {};\n _this.movable = false;\n _this.currentResizer = null;\n _this.config = Object.assign({}, { popup: false }, config);\n return _this;\n }\n PositionableFeature.prototype.center = function () {\n var _a = this.offsetParent, clientHeight = _a.clientHeight, clientWidth = _a.clientWidth;\n var x = (clientWidth / 2) - (this.getWidth() / 2);\n var y = (clientHeight / 2) - (this.getHeight() / 2);\n this.offsetElement(x, y);\n };\n PositionableFeature.prototype.initialisePosition = function () {\n var _a = this.config, centered = _a.centered, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent, minWidth = _a.minWidth, width = _a.width, minHeight = _a.minHeight, height = _a.height, x = _a.x, y = _a.y;\n if (!this.offsetParent) {\n this.setOffsetParent();\n }\n var computedMinHeight = 0;\n var computedMinWidth = 0;\n // here we don't use the main offset parent but the element's offsetParent\n // in order to calculated the minWidth and minHeight correctly\n var isVisible = !!this.element.offsetParent;\n if (isVisible) {\n var boundaryEl = this.findBoundaryElement();\n var offsetParentComputedStyles = window.getComputedStyle(boundaryEl);\n if (offsetParentComputedStyles.minWidth != null) {\n var paddingWidth = boundaryEl.offsetWidth - this.element.offsetWidth;\n computedMinWidth = parseInt(offsetParentComputedStyles.minWidth, 10) - paddingWidth;\n }\n if (offsetParentComputedStyles.minHeight != null) {\n var paddingHeight = boundaryEl.offsetHeight - this.element.offsetHeight;\n computedMinHeight = parseInt(offsetParentComputedStyles.minHeight, 10) - paddingHeight;\n }\n }\n this.minHeight = minHeight || computedMinHeight;\n this.minWidth = minWidth || computedMinWidth;\n if (width) {\n this.setWidth(width);\n }\n if (height) {\n this.setHeight(height);\n }\n if (!width || !height) {\n this.refreshSize();\n }\n if (centered) {\n this.center();\n }\n else if (x || y) {\n this.offsetElement(x, y);\n }\n else if (isVisible && forcePopupParentAsOffsetParent && this.boundaryEl) {\n var top_1 = parseFloat(this.boundaryEl.style.top);\n var left = parseFloat(this.boundaryEl.style.left);\n this.offsetElement(isNaN(left) ? 0 : left, isNaN(top_1) ? 0 : top_1);\n }\n this.positioned = !!this.offsetParent;\n };\n PositionableFeature.prototype.isPositioned = function () {\n return this.positioned;\n };\n PositionableFeature.prototype.getPosition = function () {\n return this.position;\n };\n PositionableFeature.prototype.setMovable = function (movable, moveElement) {\n if (!this.config.popup || movable === this.movable) {\n return;\n }\n this.movable = movable;\n var params = this.moveElementDragListener || {\n eElement: moveElement,\n onDragStart: this.onMoveStart.bind(this),\n onDragging: this.onMove.bind(this),\n onDragStop: this.onMoveEnd.bind(this)\n };\n if (movable) {\n this.dragService.addDragSource(params);\n this.moveElementDragListener = params;\n }\n else {\n this.dragService.removeDragSource(params);\n this.moveElementDragListener = undefined;\n }\n };\n PositionableFeature.prototype.setResizable = function (resizable) {\n var _this = this;\n this.clearResizeListeners();\n if (resizable) {\n this.addResizers();\n }\n else {\n this.removeResizers();\n }\n if (typeof resizable === 'boolean') {\n if (resizable === false) {\n return;\n }\n resizable = {\n topLeft: resizable,\n top: resizable,\n topRight: resizable,\n right: resizable,\n bottomRight: resizable,\n bottom: resizable,\n bottomLeft: resizable,\n left: resizable\n };\n }\n Object.keys(resizable).forEach(function (side) {\n var resizableStructure = resizable;\n var val = !!resizableStructure[side];\n var resizerEl = _this.getResizerElement(side);\n var params = {\n dragStartPixels: 0,\n eElement: resizerEl,\n onDragStart: function (e) { return _this.onResizeStart(e, side); },\n onDragging: _this.onResize.bind(_this),\n onDragStop: function (e) { return _this.onResizeEnd(e, side); },\n };\n if (!!_this.resizable[side] !== val || (!_this.isAlive() && !val)) {\n if (val) {\n _this.dragService.addDragSource(params);\n _this.resizeListeners.push(params);\n resizerEl.style.pointerEvents = 'all';\n }\n else {\n resizerEl.style.pointerEvents = 'none';\n }\n }\n });\n };\n PositionableFeature.prototype.removeSizeFromEl = function () {\n this.element.style.removeProperty('height');\n this.element.style.removeProperty('width');\n this.element.style.removeProperty('flex');\n };\n PositionableFeature.prototype.restoreLastSize = function () {\n this.element.style.flex = '0 0 auto';\n var _a = this.lastSize, height = _a.height, width = _a.width;\n if (width !== -1) {\n this.element.style.width = width + \"px\";\n }\n if (height !== -1) {\n this.element.style.height = height + \"px\";\n }\n };\n PositionableFeature.prototype.getHeight = function () {\n return this.element.offsetHeight;\n };\n PositionableFeature.prototype.setHeight = function (height) {\n var popup = this.config.popup;\n var eGui = this.element;\n var isPercent = false;\n if (typeof height === 'string' && height.indexOf('%') !== -1) {\n setFixedHeight(eGui, height);\n height = getAbsoluteHeight(eGui);\n isPercent = true;\n }\n else if (this.positioned) {\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n height = Math.max(this.minHeight, height);\n var clientHeight = this.offsetParent.clientHeight;\n var yPosition = popup ? this.position.y : elRect.top;\n var parentTop = popup ? 0 : parentRect.top;\n if (clientHeight && (height + yPosition > clientHeight + parentTop)) {\n height = clientHeight - yPosition;\n }\n }\n if (this.getHeight() === height) {\n return;\n }\n if (!isPercent) {\n if (popup) {\n setFixedHeight(eGui, height);\n }\n else {\n eGui.style.height = height + \"px\";\n eGui.style.flex = '0 0 auto';\n this.lastSize.height = typeof height === 'number' ? height : parseFloat(height);\n }\n }\n else {\n eGui.style.maxHeight = 'unset';\n eGui.style.minHeight = 'unset';\n }\n };\n PositionableFeature.prototype.getWidth = function () {\n return this.element.offsetWidth;\n };\n PositionableFeature.prototype.setWidth = function (width) {\n var eGui = this.element;\n var popup = this.config.popup;\n var isPercent = false;\n if (typeof width === 'string' && width.indexOf('%') !== -1) {\n setFixedWidth(eGui, width);\n width = getAbsoluteWidth(eGui);\n isPercent = true;\n }\n else if (this.positioned) {\n width = Math.max(this.minWidth, width);\n var clientWidth = this.offsetParent.clientWidth;\n var xPosition = popup ? this.position.x : this.element.getBoundingClientRect().left;\n if (clientWidth && (width + xPosition > clientWidth)) {\n width = clientWidth - xPosition;\n }\n }\n if (this.getWidth() === width) {\n return;\n }\n if (!isPercent) {\n if (this.config.popup) {\n setFixedWidth(eGui, width);\n }\n else {\n eGui.style.width = width + \"px\";\n eGui.style.flex = ' unset';\n this.lastSize.width = typeof width === 'number' ? width : parseFloat(width);\n }\n }\n else {\n eGui.style.maxWidth = 'unset';\n eGui.style.minWidth = 'unset';\n }\n };\n PositionableFeature.prototype.offsetElement = function (x, y) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n var ePopup = this.config.forcePopupParentAsOffsetParent ? this.boundaryEl : this.element;\n this.popupService.positionPopup({\n ePopup: ePopup,\n x: x,\n y: y,\n keepWithinBounds: true\n });\n this.setPosition(parseFloat(ePopup.style.left), parseFloat(ePopup.style.top));\n };\n PositionableFeature.prototype.setPosition = function (x, y) {\n this.position.x = x;\n this.position.y = y;\n };\n PositionableFeature.prototype.updateDragStartPosition = function (x, y) {\n this.dragStartPosition = { x: x, y: y };\n };\n PositionableFeature.prototype.calculateMouseMovement = function (params) {\n var e = params.e, isLeft = params.isLeft, isTop = params.isTop, anywhereWithin = params.anywhereWithin, topBuffer = params.topBuffer;\n var xDiff = e.clientX - this.dragStartPosition.x;\n var yDiff = e.clientY - this.dragStartPosition.y;\n var movementX = this.shouldSkipX(e, !!isLeft, !!anywhereWithin, xDiff) ? 0 : xDiff;\n var movementY = this.shouldSkipY(e, !!isTop, topBuffer, yDiff) ? 0 : yDiff;\n return { movementX: movementX, movementY: movementY };\n };\n PositionableFeature.prototype.shouldSkipX = function (e, isLeft, anywhereWithin, diff) {\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n var boundaryElRect = this.boundaryEl.getBoundingClientRect();\n var xPosition = this.config.popup ? this.position.x : elRect.left;\n // skip if cursor is outside of popupParent horizontally\n var skipX = ((xPosition <= 0 && parentRect.left >= e.clientX) ||\n (parentRect.right <= e.clientX && parentRect.right <= boundaryElRect.right));\n if (skipX) {\n return true;\n }\n if (isLeft) {\n skipX = (\n // skip if we are moving to the left and the cursor\n // is positioned to the right of the left side anchor\n (diff < 0 && e.clientX > xPosition + parentRect.left) ||\n // skip if we are moving to the right and the cursor\n // is positioned to the left of the dialog\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n if (anywhereWithin) {\n // if anywhereWithin is true, we allow to move\n // as long as the cursor is within the dialog\n skipX = ((diff < 0 && e.clientX > boundaryElRect.right) ||\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n skipX = (\n // if the movement is bound to the right side of the dialog\n // we skip if we are moving to the left and the cursor\n // is to the right of the dialog\n (diff < 0 && e.clientX > boundaryElRect.right) ||\n // or skip if we are moving to the right and the cursor\n // is to the left of the right side anchor\n (diff > 0 && e.clientX < boundaryElRect.right));\n }\n }\n return skipX;\n };\n PositionableFeature.prototype.shouldSkipY = function (e, isTop, topBuffer, diff) {\n if (topBuffer === void 0) { topBuffer = 0; }\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n var boundaryElRect = this.boundaryEl.getBoundingClientRect();\n var yPosition = this.config.popup ? this.position.y : elRect.top;\n // skip if cursor is outside of popupParent vertically\n var skipY = ((yPosition <= 0 && parentRect.top >= e.clientY) ||\n (parentRect.bottom <= e.clientY && parentRect.bottom <= boundaryElRect.bottom));\n if (skipY) {\n return true;\n }\n if (isTop) {\n skipY = (\n // skip if we are moving to towards top and the cursor is\n // below the top anchor + topBuffer\n // note: topBuffer is used when moving the dialog using the title bar\n (diff < 0 && e.clientY > yPosition + parentRect.top + topBuffer) ||\n // skip if we are moving to the bottom and the cursor is\n // above the top anchor\n (diff > 0 && e.clientY < yPosition + parentRect.top));\n }\n else {\n skipY = (\n // skip if we are moving towards the top and the cursor\n // is below the bottom anchor\n (diff < 0 && e.clientY > boundaryElRect.bottom) ||\n // skip if we are moving towards the bottom and the cursor\n // is above the bottom anchor\n (diff > 0 && e.clientY < boundaryElRect.bottom));\n }\n return skipY;\n };\n PositionableFeature.prototype.createResizeMap = function () {\n var eGui = this.element;\n this.resizerMap = {\n topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },\n top: { element: eGui.querySelector('[ref=eTopResizer]') },\n topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },\n right: { element: eGui.querySelector('[ref=eRightResizer]') },\n bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },\n bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },\n bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },\n left: { element: eGui.querySelector('[ref=eLeftResizer]') }\n };\n };\n PositionableFeature.prototype.addResizers = function () {\n if (this.resizersAdded) {\n return;\n }\n var eGui = this.element;\n if (!eGui) {\n return;\n }\n var parser = new DOMParser();\n var resizers = parser.parseFromString(RESIZE_TEMPLATE, 'text/html').body;\n eGui.appendChild(resizers.firstChild);\n this.createResizeMap();\n this.resizersAdded = true;\n };\n PositionableFeature.prototype.removeResizers = function () {\n this.resizerMap = undefined;\n var resizerEl = this.element.querySelector(\".\" + RESIZE_CONTAINER_STYLE);\n if (resizerEl) {\n this.element.removeChild(resizerEl);\n }\n this.resizersAdded = false;\n };\n PositionableFeature.prototype.getResizerElement = function (side) {\n return this.resizerMap[side].element;\n };\n PositionableFeature.prototype.onResizeStart = function (e, side) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.currentResizer = {\n isTop: !!side.match(/top/i),\n isRight: !!side.match(/right/i),\n isBottom: !!side.match(/bottom/i),\n isLeft: !!side.match(/left/i),\n };\n this.element.classList.add('ag-resizing');\n this.resizerMap[side].element.classList.add('ag-active');\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n if (!popup && !forcePopupParentAsOffsetParent) {\n this.applySizeToSiblings(this.currentResizer.isBottom || this.currentResizer.isTop);\n }\n this.isResizing = true;\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.getSiblings = function () {\n var element = this.element;\n var parent = element.parentElement;\n if (!parent) {\n return null;\n }\n return Array.prototype.slice.call(parent.children).filter(function (el) { return !el.classList.contains('ag-hidden'); });\n };\n PositionableFeature.prototype.getMinSizeOfSiblings = function () {\n var siblings = this.getSiblings() || [];\n var height = 0;\n var width = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentEl = siblings[i];\n var isFlex = !!currentEl.style.flex && currentEl.style.flex !== '0 0 auto';\n if (currentEl === this.element) {\n continue;\n }\n var nextHeight = this.minHeight || 0;\n var nextWidth = this.minWidth || 0;\n if (isFlex) {\n var computedStyle = window.getComputedStyle(currentEl);\n if (computedStyle.minHeight) {\n nextHeight = parseInt(computedStyle.minHeight, 10);\n }\n if (computedStyle.minWidth) {\n nextWidth = parseInt(computedStyle.minWidth, 10);\n }\n }\n else {\n nextHeight = currentEl.offsetHeight;\n nextWidth = currentEl.offsetWidth;\n }\n height += nextHeight;\n width += nextWidth;\n }\n return { height: height, width: width };\n };\n PositionableFeature.prototype.applySizeToSiblings = function (vertical) {\n var containerToFlex = null;\n var siblings = this.getSiblings();\n if (!siblings) {\n return;\n }\n for (var i = 0; i < siblings.length; i++) {\n var el = siblings[i];\n if (el === containerToFlex) {\n continue;\n }\n if (vertical) {\n el.style.height = el.offsetHeight + \"px\";\n }\n else {\n el.style.width = el.offsetWidth + \"px\";\n }\n el.style.flex = '0 0 auto';\n if (el === this.element) {\n containerToFlex = siblings[i + 1];\n }\n }\n if (containerToFlex) {\n containerToFlex.style.removeProperty('height');\n containerToFlex.style.removeProperty('min-height');\n containerToFlex.style.removeProperty('max-height');\n containerToFlex.style.flex = '1 1 auto';\n }\n };\n PositionableFeature.prototype.onResize = function (e) {\n if (!this.isResizing || !this.currentResizer) {\n return;\n }\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n var _b = this.currentResizer, isTop = _b.isTop, isRight = _b.isRight, isBottom = _b.isBottom, isLeft = _b.isLeft;\n var isHorizontal = isRight || isLeft;\n var isVertical = isBottom || isTop;\n var _c = this.calculateMouseMovement({ e: e, isLeft: isLeft, isTop: isTop }), movementX = _c.movementX, movementY = _c.movementY;\n var xPosition = this.position.x;\n var yPosition = this.position.y;\n var offsetLeft = 0;\n var offsetTop = 0;\n if (isHorizontal && movementX) {\n var direction = isLeft ? -1 : 1;\n var oldWidth = this.getWidth();\n var newWidth = oldWidth + (movementX * direction);\n var skipWidth = false;\n if (isLeft) {\n offsetLeft = oldWidth - newWidth;\n if (xPosition + offsetLeft <= 0 || newWidth <= this.minWidth) {\n skipWidth = true;\n offsetLeft = 0;\n }\n }\n if (!skipWidth) {\n this.setWidth(newWidth);\n }\n }\n if (isVertical && movementY) {\n var direction = isTop ? -1 : 1;\n var oldHeight = this.getHeight();\n var newHeight = oldHeight + (movementY * direction);\n var skipHeight = false;\n if (isTop) {\n offsetTop = oldHeight - newHeight;\n if (yPosition + offsetTop <= 0 || newHeight <= this.minHeight) {\n skipHeight = true;\n offsetTop = 0;\n }\n }\n else {\n // do not let the size of all siblings be higher than the parent container\n if (!this.config.popup &&\n !this.config.forcePopupParentAsOffsetParent &&\n oldHeight < newHeight &&\n (this.getMinSizeOfSiblings().height + newHeight) > this.element.parentElement.offsetHeight) {\n skipHeight = true;\n }\n }\n if (!skipHeight) {\n this.setHeight(newHeight);\n }\n }\n this.updateDragStartPosition(e.clientX, e.clientY);\n if ((popup || forcePopupParentAsOffsetParent) && offsetLeft || offsetTop) {\n this.offsetElement(xPosition + offsetLeft, yPosition + offsetTop);\n }\n };\n PositionableFeature.prototype.onResizeEnd = function (e, side) {\n this.isResizing = false;\n this.currentResizer = null;\n this.boundaryEl = null;\n var params = {\n type: 'resize',\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n this.element.classList.remove('ag-resizing');\n this.resizerMap[side].element.classList.remove('ag-active');\n this.dispatchEvent(params);\n };\n PositionableFeature.prototype.refreshSize = function () {\n var eGui = this.element;\n if (this.config.popup) {\n if (!this.config.width) {\n this.setWidth(eGui.offsetWidth);\n }\n if (!this.config.height) {\n this.setHeight(eGui.offsetHeight);\n }\n }\n };\n PositionableFeature.prototype.onMoveStart = function (e) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.isMoving = true;\n this.element.classList.add('ag-moving');\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.onMove = function (e) {\n if (!this.isMoving) {\n return;\n }\n var _a = this.position, x = _a.x, y = _a.y;\n var topBuffer;\n if (this.config.calculateTopBuffer) {\n topBuffer = this.config.calculateTopBuffer();\n }\n var _b = this.calculateMouseMovement({\n e: e,\n isTop: true,\n anywhereWithin: true,\n topBuffer: topBuffer\n }), movementX = _b.movementX, movementY = _b.movementY;\n this.offsetElement(x + movementX, y + movementY);\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.onMoveEnd = function () {\n this.isMoving = false;\n this.boundaryEl = null;\n this.element.classList.remove('ag-moving');\n };\n PositionableFeature.prototype.setOffsetParent = function () {\n if (this.config.forcePopupParentAsOffsetParent) {\n this.offsetParent = this.popupService.getPopupParent();\n }\n else {\n this.offsetParent = this.element.offsetParent;\n }\n };\n PositionableFeature.prototype.findBoundaryElement = function () {\n var el = this.element;\n while (el) {\n if (window.getComputedStyle(el).position !== 'static') {\n return el;\n }\n el = el.parentElement;\n }\n return this.element;\n };\n PositionableFeature.prototype.clearResizeListeners = function () {\n while (this.resizeListeners.length) {\n var params = this.resizeListeners.pop();\n this.dragService.removeDragSource(params);\n }\n };\n PositionableFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.moveElementDragListener) {\n this.dragService.removeDragSource(this.moveElementDragListener);\n }\n this.clearResizeListeners();\n this.removeResizers();\n };\n __decorate$1t([\n Autowired('popupService')\n ], PositionableFeature.prototype, \"popupService\", void 0);\n __decorate$1t([\n Autowired('dragService')\n ], PositionableFeature.prototype, \"dragService\", void 0);\n return PositionableFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AutoWidthCalculator = /** @class */ (function (_super) {\n __extends$1H(AutoWidthCalculator, _super);\n function AutoWidthCalculator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoWidthCalculator.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n });\n };\n // this is the trick: we create a dummy container and clone all the cells\n // into the dummy, then check the dummy's width. then destroy the dummy\n // as we don't need it any more.\n // drawback: only the cells visible on the screen are considered\n AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column, skipHeader) {\n var eHeaderCell = this.getHeaderCellForColumn(column);\n // cell isn't visible\n if (!eHeaderCell) {\n return -1;\n }\n var elements = this.rowRenderer.getAllCellsForColumn(column);\n if (!skipHeader) {\n // we only consider the lowest level cell, not the group cell. in 99% of the time, this\n // will be enough. if we consider groups, then it gets too complicated for what it's worth,\n // as the groups can span columns and this class only considers one column at a time.\n elements.push(eHeaderCell);\n }\n return this.addElementsToContainerAndGetWidth(elements);\n };\n AutoWidthCalculator.prototype.getPreferredWidthForColumnGroup = function (columnGroup) {\n var eHeaderCell = this.getHeaderCellForColumn(columnGroup);\n if (!eHeaderCell) {\n return -1;\n }\n return this.addElementsToContainerAndGetWidth([eHeaderCell]);\n };\n AutoWidthCalculator.prototype.addElementsToContainerAndGetWidth = function (elements) {\n var _this = this;\n var eDummyContainer = document.createElement('span');\n // position fixed, so it isn't restricted to the boundaries of the parent\n eDummyContainer.style.position = 'fixed';\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n var eBodyContainer = this.centerRowContainerCtrl.getContainerElement();\n eBodyContainer.appendChild(eDummyContainer);\n elements.forEach(function (el) { return _this.cloneItemIntoDummy(el, eDummyContainer); });\n // at this point, all the clones are lined up vertically with natural widths. the dummy\n // container will have a width wide enough just to fit the largest.\n var dummyContainerWidth = eDummyContainer.offsetWidth;\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(eDummyContainer);\n // we add padding as I found sometimes the gui still put '...' after some of the texts. so the\n // user can configure the grid to add a few more pixels after the calculated width\n var autoSizePadding = this.gridOptionsWrapper.getAutoSizePadding();\n return dummyContainerWidth + autoSizePadding;\n };\n AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {\n /* tslint:enable */\n var element = null;\n this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (container) {\n var res = container.getHtmlElementForColumnHeader(column);\n if (res != null) {\n element = res;\n }\n });\n return element;\n };\n AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {\n // make a deep clone of the cell\n var eCellClone = eCell.cloneNode(true);\n // the original has a fixed width, we remove this to allow the natural width based on content\n eCellClone.style.width = '';\n // the original has position = absolute, we need to remove this so it's positioned normally\n eCellClone.style.position = 'static';\n eCellClone.style.left = '';\n // we put the cell into a containing div, as otherwise the cells would just line up\n // on the same line, standard flow layout, by putting them into divs, they are laid\n // out one per line\n var eCloneParent = document.createElement('div');\n var eCloneParentClassList = eCloneParent.classList;\n var isHeader = ['ag-header-cell', 'ag-header-group-cell'].some(function (cls) { return eCellClone.classList.contains(cls); });\n if (isHeader) {\n eCloneParentClassList.add('ag-header', 'ag-header-row');\n eCloneParent.style.position = 'static';\n }\n else {\n eCloneParentClassList.add('ag-row');\n }\n // find parent using classes (headers have ag-header-cell, rows have ag-row), and copy classes from it.\n // if we didn't do this, things like ag-row-level-2 would be missing if present, which sets indents\n // onto group items.\n var pointer = eCell.parentElement;\n while (pointer) {\n var isRow = ['ag-header-row', 'ag-row'].some(function (cls) { return pointer.classList.contains(cls); });\n if (isRow) {\n for (var i = 0; i < pointer.classList.length; i++) {\n var item = pointer.classList[i];\n // we skip ag-row-position-absolute, as this has structural CSS applied that stops the\n // element from fitting into it's parent, and we need the element to stretch the parent\n // as we are measuring the parents width\n if (item != 'ag-row-position-absolute') {\n eCloneParentClassList.add(item);\n }\n }\n break;\n }\n pointer = pointer.parentElement;\n }\n // the twig on the branch, the branch on the tree, the tree in the hole,\n // the hole in the bog, the bog in the clone, the clone in the parent,\n // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....\n eCloneParent.appendChild(eCellClone);\n eDummyContainer.appendChild(eCloneParent);\n };\n __decorate$1u([\n Autowired('rowRenderer')\n ], AutoWidthCalculator.prototype, \"rowRenderer\", void 0);\n __decorate$1u([\n Autowired('ctrlsService')\n ], AutoWidthCalculator.prototype, \"ctrlsService\", void 0);\n __decorate$1u([\n Autowired('rowCssClassCalculator')\n ], AutoWidthCalculator.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$1u([\n PostConstruct\n ], AutoWidthCalculator.prototype, \"postConstruct\", null);\n AutoWidthCalculator = __decorate$1u([\n Bean('autoWidthCalculator')\n ], AutoWidthCalculator);\n return AutoWidthCalculator;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$d = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$a = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$d(arguments[i]));\n return ar;\n};\nvar RowRenderer = /** @class */ (function (_super) {\n __extends$1I(RowRenderer, _super);\n function RowRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destroyFuncsForColumnListeners = [];\n // map of row ids to row objects. keeps track of which elements\n // are rendered for which rows in the dom.\n _this.rowCtrlsByRowIndex = {};\n _this.zombieRowCtrls = {};\n _this.allRowCtrls = [];\n _this.topRowCtrls = [];\n _this.bottomRowCtrls = [];\n // we only allow one refresh at a time, otherwise the internal memory structure here\n // will get messed up. this can happen if the user has a cellRenderer, and inside the\n // renderer they call an API method that results in another pass of the refresh,\n // then it will be trying to draw rows in the middle of a refresh.\n _this.refreshInProgress = false;\n return _this;\n }\n RowRenderer.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.initialise();\n });\n };\n RowRenderer.prototype.initialise = function () {\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.redrawAfterScroll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.redrawAfterScroll.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_ROW_CLASS, this.redrawRows.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n this.registerCellEventListeners();\n this.initialiseCache();\n this.printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n this.embedFullWidthRows = this.printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n this.redrawAfterModelUpdate();\n };\n RowRenderer.prototype.initialiseCache = function () {\n if (this.gridOptionsWrapper.isKeepDetailRows()) {\n var countProp = this.gridOptionsWrapper.getKeepDetailRowsCount();\n var count = countProp != null ? countProp : 3;\n this.cachedRowCtrls = new RowCtrlCache(count);\n }\n };\n RowRenderer.prototype.getRowCtrls = function () {\n return this.allRowCtrls;\n };\n RowRenderer.prototype.updateAllRowCtrls = function () {\n var liveList = getAllValuesInObject(this.rowCtrlsByRowIndex);\n if (this.gridOptionsWrapper.isEnsureDomOrder()) {\n liveList.sort(function (a, b) { return a.getRowNode().rowIndex - b.getRowNode.rowIndex; });\n }\n var zombieList = getAllValuesInObject(this.zombieRowCtrls);\n var cachedList = this.cachedRowCtrls ? this.cachedRowCtrls.getEntries() : [];\n this.allRowCtrls = __spread$a(liveList, zombieList, cachedList);\n };\n // in a clean design, each cell would register for each of these events. however when scrolling, all the cells\n // registering and de-registering for events is a performance bottleneck. so we register here once and inform\n // all active cells.\n RowRenderer.prototype.registerCellEventListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUSED, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellFocused(event); });\n _this.getFullWidthRowCtrls().forEach(function (rowCtrl) {\n rowCtrl.onFullWidthRowFocused(event);\n });\n });\n this.addManagedListener(this.eventService, Events.EVENT_FLASH_CELLS, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onFlashCells(event); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onColumnHover(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onDisplayedColumnsChanged(); });\n });\n // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,\n // then changing the width of the containers will impact left position. eg the center cols all have their\n // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,\n // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are\n // in different containers so doesn't impact.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {\n if (_this.printLayout) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onLeftChanged(); });\n }\n });\n var rangeSelectionEnabled = this.gridOptionsWrapper.isEnableRangeSelection();\n if (rangeSelectionEnabled) {\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRangeSelectionChanged(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n }\n // add listeners to the grid columns\n this.refreshListenersToColumnsForCellComps();\n // if the grid columns change, then refresh the listeners again\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));\n this.addDestroyFunc(this.removeGridColumnListeners.bind(this));\n };\n // executes all functions in destroyFuncsForColumnListeners and then clears the list\n RowRenderer.prototype.removeGridColumnListeners = function () {\n this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });\n this.destroyFuncsForColumnListeners.length = 0;\n };\n // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.\n // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to\n // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here\n // once instead.\n RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {\n var _this = this;\n this.removeGridColumnListeners();\n var cols = this.columnModel.getAllGridColumns();\n if (!cols) {\n return;\n }\n cols.forEach(function (col) {\n var forEachCellWithThisCol = function (callback) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColumn() === col) {\n callback(cellCtrl);\n }\n });\n };\n var leftChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLeftChanged(); });\n };\n var widthChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onWidthChanged(); });\n };\n var firstRightPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onFirstRightPinnedChanged(); });\n };\n var lastLeftPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLastLeftPinnedChanged(); });\n };\n col.addEventListener(Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.addEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.addEventListener(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.addEventListener(Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n _this.destroyFuncsForColumnListeners.push(function () {\n col.removeEventListener(Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.removeEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.removeEventListener(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.removeEventListener(Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n });\n });\n };\n RowRenderer.prototype.onDomLayoutChanged = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var embedFullWidthRows = printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid\n // out using absolute positioning when doing print layout\n var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;\n this.printLayout = printLayout;\n this.embedFullWidthRows = embedFullWidthRows;\n if (destroyRows) {\n this.redrawAfterModelUpdate();\n }\n };\n // for row models that have datasources, when we update the datasource, we need to force the rowRenderer\n // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.\n RowRenderer.prototype.datasourceChanged = function () {\n this.firstRenderedRow = 0;\n this.lastRenderedRow = -1;\n var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n };\n RowRenderer.prototype.onPageLoaded = function (event) {\n var params = {\n recycleRows: event.keepRenderedRows,\n animate: event.animate,\n newData: event.newData,\n newPage: event.newPage,\n // because this is a model updated event (not pinned rows), we\n // can skip updating the pinned rows. this is needed so that if user\n // is doing transaction updates, the pinned rows are not getting constantly\n // trashed - or editing cells in pinned rows are not refreshed and put into read mode\n onlyBody: true\n };\n this.redrawAfterModelUpdate(params);\n };\n RowRenderer.prototype.getAllCellsForColumn = function (column) {\n var res = [];\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n var eCell = rowCtrl.getCellElement(column);\n if (eCell) {\n res.push(eCell);\n }\n });\n return res;\n };\n RowRenderer.prototype.refreshFloatingRowComps = function () {\n this.refreshFloatingRows(this.topRowCtrls, this.pinnedRowModel.getPinnedTopRowData());\n this.refreshFloatingRows(this.bottomRowCtrls, this.pinnedRowModel.getPinnedBottomRowData());\n };\n RowRenderer.prototype.getTopRowCtrls = function () {\n return this.topRowCtrls;\n };\n RowRenderer.prototype.getBottomRowCtrls = function () {\n return this.bottomRowCtrls;\n };\n RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes) {\n var _this = this;\n rowComps.forEach(function (row) {\n row.destroyFirstPass();\n row.destroySecondPass();\n });\n rowComps.length = 0;\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var rowCtrl = new RowCtrl(rowNode, _this.beans, false, false, _this.printLayout);\n rowComps.push(rowCtrl);\n });\n };\n RowRenderer.prototype.onPinnedRowDataChanged = function () {\n // recycling rows in order to ensure cell editing is not cancelled\n var params = {\n recycleRows: true\n };\n this.redrawAfterModelUpdate(params);\n };\n // if the row nodes are not rendered, no index is returned\n RowRenderer.prototype.getRenderedIndexesForRowNodes = function (rowNodes) {\n var result = [];\n if (missing(rowNodes)) {\n return result;\n }\n iterateObject(this.rowCtrlsByRowIndex, function (index, renderedRow) {\n var rowNode = renderedRow.getRowNode();\n if (rowNodes.indexOf(rowNode) >= 0) {\n result.push(index);\n }\n });\n return result;\n };\n RowRenderer.prototype.redrawRows = function (rowNodes) {\n // if no row nodes provided, then refresh everything\n var partialRefresh = rowNodes != null && rowNodes.length > 0;\n if (partialRefresh) {\n var indexesToRemove = this.getRenderedIndexesForRowNodes(rowNodes);\n // remove the rows\n this.removeRowCtrls(indexesToRemove);\n }\n // add draw them again\n this.redrawAfterModelUpdate({\n recycleRows: partialRefresh\n });\n };\n RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {\n var focusedCell = params.suppressKeepFocus ? null : this.focusService.getFocusCellToUseAfterRefresh();\n if (focusedCell == null) {\n return null;\n }\n // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this\n // solves is with editing - if the user is editing, eg focus is on a text field, and not on the\n // cell itself, then the cell can be registered as having focus, however it's the text field that\n // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus\n // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,\n // the focus is lost from the text field. we do not want this.\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeElement = eDocument.activeElement;\n var cellDomData = this.gridOptionsWrapper.getDomData(activeElement, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n var rowDomData = this.gridOptionsWrapper.getDomData(activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n var gridElementFocused = cellDomData || rowDomData;\n return gridElementFocused ? focusedCell : null;\n };\n // gets called from:\n // +) initialisation (in registerGridComp) params = null\n // +) onDomLayoutChanged, params = null\n // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true\n // +) onPinnedRowDataChanged, recycleRows = true\n // +) redrawRows (from Grid API), recycleRows = true/false\n RowRenderer.prototype.redrawAfterModelUpdate = function (params) {\n if (params === void 0) { params = {}; }\n this.getLockOnRefresh();\n var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);\n this.updateContainerHeights();\n this.scrollToTopIfNewData(params);\n // never recycle rows when print layout, we draw each row again from scratch. this is because print layout\n // uses normal dom layout to put cells into dom - it doesn't allow reordering rows.\n var recycleRows = !this.printLayout && !!params.recycleRows;\n var animate = params.animate && this.gridOptionsWrapper.isAnimateRows();\n // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,\n // however we can reuse the rows, so we keep them but index by rowNode.id\n var rowsToRecycle = recycleRows ? this.recycleRows() : null;\n if (!recycleRows) {\n this.removeAllRowComps();\n }\n var isFocusedCellGettingRecycled = function () {\n if (focusedCell == null || rowsToRecycle == null) {\n return false;\n }\n var res = false;\n iterateObject(rowsToRecycle, function (key, rowComp) {\n var rowNode = rowComp.getRowNode();\n var rowIndexEqual = rowNode.rowIndex == focusedCell.rowIndex;\n var pinnedEqual = rowNode.rowPinned == focusedCell.rowPinned;\n if (rowIndexEqual && pinnedEqual) {\n res = true;\n }\n });\n return res;\n };\n var focusedCellRecycled = isFocusedCellGettingRecycled();\n this.redraw(rowsToRecycle, animate);\n if (!params.onlyBody) {\n this.refreshFloatingRowComps();\n }\n this.dispatchDisplayedRowsChanged();\n // if we focus a cell that's already focused, then we get an unnecessary 'cellFocused' event fired.\n // this was happening when user clicked 'expand' on a rowGroup, then cellFocused was getting fired twice.\n if (!focusedCellRecycled) {\n this.restoreFocusedCell(focusedCell);\n }\n this.releaseLockOnRefresh();\n };\n RowRenderer.prototype.scrollToTopIfNewData = function (params) {\n var scrollToTop = params.newData || params.newPage;\n var suppressScrollToTop = this.gridOptionsWrapper.isSuppressScrollOnNewData();\n if (scrollToTop && !suppressScrollToTop) {\n this.gridBodyCtrl.getScrollFeature().scrollToTop();\n }\n };\n RowRenderer.prototype.updateContainerHeights = function () {\n // when doing print layout, we don't explicitly set height on the containers\n if (this.printLayout) {\n this.rowContainerHeightService.setModelHeight(null);\n return;\n }\n var containerHeight = this.paginationProxy.getCurrentPageHeight();\n // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,\n // we still want the scroll to be present, otherwise there would be no way to scroll the header\n // which might be needed us user wants to access columns\n // on the RHS - and if that was where the filter was that cause no rows to be presented, there\n // is no way to remove the filter.\n if (containerHeight === 0) {\n containerHeight = 1;\n }\n this.rowContainerHeightService.setModelHeight(containerHeight);\n };\n RowRenderer.prototype.getLockOnRefresh = function () {\n if (this.refreshInProgress) {\n throw new Error(\"AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. \" +\n \"Your code probably called a grid API method while the grid was in the render stage. To overcome \" +\n \"this, put the API call into a timeout, e.g. instead of api.redrawRows(), \" +\n \"call setTimeout(function() { api.redrawRows(); }, 0). To see what part of your code \" +\n \"that caused the refresh check this stacktrace.\");\n }\n this.refreshInProgress = true;\n };\n RowRenderer.prototype.releaseLockOnRefresh = function () {\n this.refreshInProgress = false;\n };\n RowRenderer.prototype.isRefreshInProgress = function () {\n return this.refreshInProgress;\n };\n // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without\n // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits\n // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the\n // edited cell).\n RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {\n if (cellPosition) {\n this.focusService.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);\n }\n };\n RowRenderer.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n rowCtrl.stopEditing(cancel);\n });\n };\n RowRenderer.prototype.onNewColumnsLoaded = function () {\n // we don't want each cellComp to register for events, as would increase rendering time.\n // so for newColumnsLoaded, we register once here (in rowRenderer) and then inform\n // each cell if / when event was fired.\n this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onNewColumnsLoaded(); });\n };\n RowRenderer.prototype.getAllCellCtrls = function () {\n var res = [];\n this.getAllRowCtrls().forEach(function (rowCtrl) { return res = res.concat(rowCtrl.getAllCellCtrls()); });\n return res;\n };\n RowRenderer.prototype.getAllRowCtrls = function () {\n var _this = this;\n var res = __spread$a(this.topRowCtrls, this.bottomRowCtrls);\n Object.keys(this.rowCtrlsByRowIndex).forEach(function (key) { return res.push(_this.rowCtrlsByRowIndex[key]); });\n return res;\n };\n RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n var rowComp = this.rowCtrlsByRowIndex[rowIndex];\n if (rowComp) {\n rowComp.addEventListener(eventName, callback);\n }\n };\n RowRenderer.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n var flashDelay = params.flashDelay, fadeDelay = params.fadeDelay;\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(function (cellCtrl) { return cellCtrl.flashCell({ flashDelay: flashDelay, fadeDelay: fadeDelay }); });\n };\n RowRenderer.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n var refreshCellParams = {\n forceRefresh: params.force,\n newData: false,\n suppressFlash: params.suppressFlash\n };\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(function (cellCtrl) {\n if (cellCtrl.refreshShouldDestroy()) {\n var rowCtrl = cellCtrl.getRowCtrl();\n if (rowCtrl) {\n rowCtrl.refreshCell(cellCtrl);\n }\n }\n else {\n cellCtrl.refreshCell(refreshCellParams);\n }\n });\n this.getFullWidthRowCtrls(params.rowNodes).forEach(function (fullWidthRowCtrl) {\n fullWidthRowCtrl.refreshFullWidth();\n });\n };\n RowRenderer.prototype.getCellRendererInstances = function (params) {\n var res = this.getCellCtrls(params.rowNodes, params.columns)\n .map(function (cellCtrl) { return cellCtrl.getCellRenderer(); })\n .filter(function (renderer) { return renderer != null; });\n return res;\n };\n RowRenderer.prototype.getCellEditorInstances = function (params) {\n var res = [];\n this.getCellCtrls(params.rowNodes, params.columns).forEach(function (cellCtrl) {\n var cellEditor = cellCtrl.getCellEditor();\n if (cellEditor) {\n res.push(cellEditor);\n }\n });\n return res;\n };\n RowRenderer.prototype.getEditingCells = function () {\n var res = [];\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.isEditing()) {\n var cellPosition = cellCtrl.getCellPosition();\n res.push(cellPosition);\n }\n });\n return res;\n };\n RowRenderer.prototype.mapRowNodes = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n var res = {\n top: {},\n bottom: {},\n normal: {}\n };\n rowNodes.forEach(function (rowNode) {\n var id = rowNode.id;\n if (rowNode.rowPinned === Constants.PINNED_TOP) {\n res.top[id] = rowNode;\n }\n else if (rowNode.rowPinned === Constants.PINNED_BOTTOM) {\n res.bottom[id] = rowNode;\n }\n else {\n res.normal[id] = rowNode;\n }\n });\n return res;\n };\n RowRenderer.prototype.isRowInMap = function (rowNode, rowIdsMap) {\n // skip this row if it is missing from the provided list\n var id = rowNode.id;\n var floating = rowNode.rowPinned;\n if (floating === Constants.PINNED_BOTTOM) {\n return rowIdsMap.bottom[id] != null;\n }\n else if (floating === Constants.PINNED_TOP) {\n return rowIdsMap.top[id] != null;\n }\n else {\n return rowIdsMap.normal[id] != null;\n }\n };\n // returns CellCtrl's that match the provided rowNodes and columns. eg if one row node\n // and two columns provided, that identifies 4 cells, so 4 CellCtrl's returned.\n RowRenderer.prototype.getCellCtrls = function (rowNodes, columns) {\n var _this = this;\n var rowIdsMap = this.mapRowNodes(rowNodes);\n var res = [];\n var colIdsMap;\n if (exists(columns)) {\n colIdsMap = {};\n columns.forEach(function (colKey) {\n var column = _this.columnModel.getGridColumn(colKey);\n if (exists(column)) {\n colIdsMap[column.getId()] = true;\n }\n });\n }\n var processRow = function (rowComp) {\n var rowNode = rowComp.getRowNode();\n // skip this row if it is missing from the provided list\n if (rowIdsMap != null && !_this.isRowInMap(rowNode, rowIdsMap)) {\n return;\n }\n rowComp.getAllCellCtrls().forEach(function (cellCtrl) {\n var colId = cellCtrl.getColumn().getId();\n var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];\n if (excludeColFromRefresh) {\n return;\n }\n res.push(cellCtrl);\n });\n };\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n processRow(rowComp);\n });\n if (this.topRowCtrls) {\n this.topRowCtrls.forEach(processRow);\n }\n if (this.bottomRowCtrls) {\n this.bottomRowCtrls.forEach(processRow);\n }\n return res;\n };\n RowRenderer.prototype.destroy = function () {\n this.removeAllRowComps();\n _super.prototype.destroy.call(this);\n };\n RowRenderer.prototype.removeAllRowComps = function () {\n var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n };\n RowRenderer.prototype.recycleRows = function () {\n // remove all stub nodes, they can't be reused, as no rowNode id\n var stubNodeIndexes = [];\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n var stubNode = rowComp.getRowNode().id == null;\n if (stubNode) {\n stubNodeIndexes.push(index);\n }\n });\n this.removeRowCtrls(stubNodeIndexes);\n // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex\n var nodesByIdMap = {};\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n var rowNode = rowComp.getRowNode();\n nodesByIdMap[rowNode.id] = rowComp;\n });\n this.rowCtrlsByRowIndex = {};\n return nodesByIdMap;\n };\n // takes array of row indexes\n RowRenderer.prototype.removeRowCtrls = function (rowsToRemove) {\n var _this = this;\n // if no fromIndex then set to -1, which will refresh everything\n // let realFromIndex = -1;\n rowsToRemove.forEach(function (indexToRemove) {\n var rowCtrl = _this.rowCtrlsByRowIndex[indexToRemove];\n if (rowCtrl) {\n rowCtrl.destroyFirstPass();\n rowCtrl.destroySecondPass();\n }\n delete _this.rowCtrlsByRowIndex[indexToRemove];\n });\n };\n // gets called when rows don't change, but viewport does, so after:\n // 1) height of grid body changes, ie number of displayed rows has changed\n // 2) grid scrolled to new position\n // 3) ensure index visible (which is a scroll)\n RowRenderer.prototype.redrawAfterScroll = function () {\n this.getLockOnRefresh();\n this.redraw(null, false, true);\n this.releaseLockOnRefresh();\n this.dispatchDisplayedRowsChanged();\n };\n RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {\n // for speedy lookup, dump into map\n var indexesToDrawMap = {};\n indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });\n var existingIndexes = Object.keys(this.rowCtrlsByRowIndex);\n var indexesNotToDraw = existingIndexes.filter(function (index) { return !indexesToDrawMap[index]; });\n this.removeRowCtrls(indexesNotToDraw);\n };\n RowRenderer.prototype.calculateIndexesToDraw = function (rowsToRecycle) {\n var _this = this;\n // all in all indexes in the viewport\n var indexesToDraw = createArrayOfNumbers(this.firstRenderedRow, this.lastRenderedRow);\n var checkRowToDraw = function (indexStr, rowComp) {\n var index = rowComp.getRowNode().rowIndex;\n if (index == null) {\n return;\n }\n if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {\n if (_this.doNotUnVirtualiseRow(rowComp)) {\n indexesToDraw.push(index);\n }\n }\n };\n // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex\n iterateObject(this.rowCtrlsByRowIndex, checkRowToDraw);\n // if we are redrawing due to model update, then old rows are in rowsToRecycle\n iterateObject(rowsToRecycle, checkRowToDraw);\n indexesToDraw.sort(function (a, b) { return a - b; });\n return indexesToDraw;\n };\n RowRenderer.prototype.redraw = function (rowsToRecycle, animate, afterScroll) {\n var _this = this;\n if (animate === void 0) { animate = false; }\n if (afterScroll === void 0) { afterScroll = false; }\n this.rowContainerHeightService.updateOffset();\n this.workOutFirstAndLastRowsToRender();\n // the row can already exist and be in the following:\n // rowsToRecycle -> if model change, then the index may be different, however row may\n // exist here from previous time (mapped by id).\n // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport\n // this is all the indexes we want, including those that already exist, so this method\n // will end up going through each index and drawing only if the row doesn't already exist\n var indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);\n this.removeRowCompsNotToDraw(indexesToDraw);\n // never animate when doing print layout - as we want to get things ready to print as quickly as possible,\n // otherwise we risk the printer printing a row that's half faded (half way through fading in)\n if (this.printLayout) {\n animate = false;\n }\n indexesToDraw.forEach(function (rowIndex) {\n var rowCtrl = _this.createOrUpdateRowCtrl(rowIndex, rowsToRecycle, animate, afterScroll);\n if (exists(rowCtrl)) ;\n });\n if (rowsToRecycle) {\n var useAnimationFrame = afterScroll && !this.gridOptionsWrapper.isSuppressAnimationFrame() && !this.printLayout;\n if (useAnimationFrame) {\n this.beans.animationFrameService.addDestroyTask(function () {\n _this.destroyRowCtrls(rowsToRecycle, animate);\n _this.updateAllRowCtrls();\n _this.dispatchDisplayedRowsChanged();\n });\n }\n else {\n this.destroyRowCtrls(rowsToRecycle, animate);\n }\n }\n this.updateAllRowCtrls();\n this.gridBodyCtrl.updateRowCount();\n };\n RowRenderer.prototype.dispatchDisplayedRowsChanged = function () {\n var event = { type: Events.EVENT_DISPLAYED_ROWS_CHANGED };\n this.eventService.dispatchEvent(event);\n };\n RowRenderer.prototype.onDisplayedColumnsChanged = function () {\n var pinningLeft = this.columnModel.isPinningLeft();\n var pinningRight = this.columnModel.isPinningRight();\n var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;\n if (atLeastOneChanged) {\n this.pinningLeft = pinningLeft;\n this.pinningRight = pinningRight;\n if (this.embedFullWidthRows) {\n this.redrawFullWidthEmbeddedRows();\n }\n }\n };\n // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,\n // then it should go into the pinned left area if pinning left, or the center area if not pinning.\n RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {\n // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when\n // embedded, as what appears in each section depends on whether we are pinned or not\n var rowsToRemove = [];\n this.getFullWidthRowCtrls().forEach(function (fullWidthCtrl) {\n var rowIndex = fullWidthCtrl.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n });\n this.refreshFloatingRowComps();\n this.removeRowCtrls(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.getFullWidthRowCtrls = function (rowNodes) {\n var _this = this;\n var rowNodesMap = this.mapRowNodes(rowNodes);\n return getAllValuesInObject(this.rowCtrlsByRowIndex).filter(function (rowCtrl) {\n // include just full width\n if (!rowCtrl.isFullWidth()) {\n return false;\n }\n // if Row Nodes provided, we exclude where Row Node is missing\n var rowNode = rowCtrl.getRowNode();\n if (rowNodesMap != null && !_this.isRowInMap(rowNode, rowNodesMap)) {\n return false;\n }\n return true;\n });\n };\n RowRenderer.prototype.refreshFullWidthRows = function (rowNodesToRefresh) {\n var rowsToRemove = [];\n var selectivelyRefreshing = !!rowNodesToRefresh;\n var idsToRefresh = selectivelyRefreshing ? {} : undefined;\n if (selectivelyRefreshing && idsToRefresh) {\n rowNodesToRefresh.forEach(function (r) { return idsToRefresh[r.id] = true; });\n }\n this.getFullWidthRowCtrls().forEach(function (fullWidthRowCtrl) {\n var rowNode = fullWidthRowCtrl.getRowNode();\n if (selectivelyRefreshing && idsToRefresh) {\n // we refresh if a) this node is present or b) this parents nodes is present. checking parent\n // node is important for master/detail, as we want detail to refresh on changes to parent node.\n // it's also possible, if user is provider their own fullWidth, that details panels contain\n // some info on the parent, eg if in tree data and child row shows some data from parent row also.\n var parentId = (rowNode.level > 0 && rowNode.parent) ? rowNode.parent.id : undefined;\n var skipThisNode = !idsToRefresh[rowNode.id] && !idsToRefresh[parentId];\n if (skipThisNode) {\n return;\n }\n }\n var fullWidthRowsRefreshed = fullWidthRowCtrl.refreshFullWidth();\n if (!fullWidthRowsRefreshed) {\n var rowIndex = fullWidthRowCtrl.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n }\n });\n this.removeRowCtrls(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.createOrUpdateRowCtrl = function (rowIndex, rowsToRecycle, animate, afterScroll) {\n var rowNode;\n var rowCtrl = this.rowCtrlsByRowIndex[rowIndex];\n // if no row comp, see if we can get it from the previous rowComps\n if (!rowCtrl) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n if (exists(rowNode) && exists(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {\n rowCtrl = rowsToRecycle[rowNode.id];\n rowsToRecycle[rowNode.id] = null;\n }\n }\n var creatingNewRowCtrl = !rowCtrl;\n if (creatingNewRowCtrl) {\n // create a new one\n if (!rowNode) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n }\n if (exists(rowNode)) {\n rowCtrl = this.createRowCon(rowNode, animate, afterScroll);\n }\n else {\n // this should never happen - if somehow we are trying to create\n // a row for a rowNode that does not exist.\n return;\n }\n }\n if (rowNode) {\n // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures\n // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.\n rowNode.alreadyRendered = true;\n }\n this.rowCtrlsByRowIndex[rowIndex] = rowCtrl;\n return rowCtrl;\n };\n RowRenderer.prototype.destroyRowCtrls = function (rowCtrlsMap, animate) {\n var _this = this;\n var executeInAWhileFuncs = [];\n iterateObject(rowCtrlsMap, function (nodeId, rowCtrl) {\n // if row was used, then it's null\n if (!rowCtrl) {\n return;\n }\n if (_this.cachedRowCtrls && rowCtrl.isCacheable()) {\n _this.cachedRowCtrls.addRow(rowCtrl);\n return;\n }\n rowCtrl.destroyFirstPass();\n if (animate) {\n _this.zombieRowCtrls[rowCtrl.getInstanceId()] = rowCtrl;\n executeInAWhileFuncs.push(function () {\n rowCtrl.destroySecondPass();\n delete _this.zombieRowCtrls[rowCtrl.getInstanceId()];\n });\n }\n else {\n rowCtrl.destroySecondPass();\n }\n });\n if (animate) {\n // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get\n // executed, as we added it to the end of the list.\n executeInAWhileFuncs.push(function () {\n _this.updateAllRowCtrls();\n _this.dispatchDisplayedRowsChanged();\n });\n executeInAWhile(executeInAWhileFuncs);\n }\n };\n RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {\n var _this = this;\n var newFirst;\n var newLast;\n if (!this.paginationProxy.isRowsToRender()) {\n newFirst = 0;\n newLast = -1; // setting to -1 means nothing in range\n }\n else if (this.printLayout) {\n newFirst = this.paginationProxy.getPageFirstRow();\n newLast = this.paginationProxy.getPageLastRow();\n }\n else {\n var bufferPixels = this.gridOptionsWrapper.getRowBufferInPixels();\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var suppressRowVirtualisation = this.gridOptionsWrapper.isSuppressRowVirtualisation();\n var rowHeightsChanged = false;\n var firstPixel = void 0;\n var lastPixel = void 0;\n do {\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var _a = this.paginationProxy.getCurrentPagePixelRange(), pageFirstPixel = _a.pageFirstPixel, pageLastPixel = _a.pageLastPixel;\n var divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();\n if (suppressRowVirtualisation) {\n firstPixel = pageFirstPixel + divStretchOffset;\n lastPixel = pageLastPixel + divStretchOffset;\n }\n else {\n var bodyVRange = gridBodyCtrl.getScrollFeature().getVScrollPosition();\n var bodyTopPixel = bodyVRange.top;\n var bodyBottomPixel = bodyVRange.bottom;\n firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;\n lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;\n }\n // if the rows we are about to display get their heights changed, then that upsets the calcs from above.\n rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);\n } while (rowHeightsChanged);\n var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);\n var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);\n var pageFirstRow = this.paginationProxy.getPageFirstRow();\n var pageLastRow = this.paginationProxy.getPageLastRow();\n // adjust, in case buffer extended actual size\n if (firstRowIndex < pageFirstRow) {\n firstRowIndex = pageFirstRow;\n }\n if (lastRowIndex > pageLastRow) {\n lastRowIndex = pageLastRow;\n }\n newFirst = firstRowIndex;\n newLast = lastRowIndex;\n }\n // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up\n // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of\n // killing the browser, we limit the number of rows. just in case some use case we didn't think\n // of, we also have a property to not do this operation.\n var rowLayoutNormal = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n var suppressRowCountRestriction = this.gridOptionsWrapper.isSuppressMaxRenderedRowRestriction();\n var rowBufferMaxSize = Math.max(this.gridOptionsWrapper.getRowBuffer(), 500);\n if (rowLayoutNormal && !suppressRowCountRestriction) {\n if (newLast - newFirst > rowBufferMaxSize) {\n newLast = newFirst + rowBufferMaxSize;\n }\n }\n var firstDiffers = newFirst !== this.firstRenderedRow;\n var lastDiffers = newLast !== this.lastRenderedRow;\n if (firstDiffers || lastDiffers) {\n this.firstRenderedRow = newFirst;\n this.lastRenderedRow = newLast;\n var event_1 = {\n type: Events.EVENT_VIEWPORT_CHANGED,\n firstRow: newFirst,\n lastRow: newLast,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n // only dispatch firstDataRendered if we have actually rendered some data\n if (this.paginationProxy.isRowsToRender()) {\n var event_2 = {\n type: Events.EVENT_FIRST_DATA_RENDERED,\n firstRow: newFirst,\n lastRow: newLast,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n // added a small delay here because in some scenarios this can be fired\n // before the grid is actually rendered, causing component creation\n // on EVENT_FIRST_DATA_RENDERED to fail.\n window.setTimeout(function () { return _this.eventService.dispatchEventOnce(event_2); }, 50);\n }\n };\n RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {\n // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.\n // all the other row models just hard code so the method just returns back false\n var res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);\n if (res) {\n this.updateContainerHeights();\n }\n return res;\n };\n RowRenderer.prototype.getFirstVirtualRenderedRow = function () {\n return this.firstRenderedRow;\n };\n RowRenderer.prototype.getLastVirtualRenderedRow = function () {\n return this.lastRenderedRow;\n };\n // check that none of the rows to remove are editing or focused as:\n // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,\n // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered\n // the edit is reset - so we want to keep it rendered.\n // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,\n // otherwise the user can range select and drag (with focus cell going out of the viewport)\n // and then ctrl+c, nothing will happen if cell is removed from dom.\n // c) if detail record of master detail, as users complained that the context of detail rows\n // was getting lost when detail row out of view. eg user expands to show detail row,\n // then manipulates the detail panel (eg sorts the detail grid), then context is lost\n // after detail panel is scrolled out of / into view.\n RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {\n var REMOVE_ROW = false;\n var KEEP_ROW = true;\n var rowNode = rowComp.getRowNode();\n var rowHasFocus = this.focusService.isRowNodeFocused(rowNode);\n var rowIsEditing = rowComp.isEditing();\n var rowIsDetail = rowNode.detail;\n var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;\n // if we deffo don't want to keep it,\n if (!mightWantToKeepRow) {\n return REMOVE_ROW;\n }\n // editing row, only remove if it is no longer rendered, eg filtered out or new data set.\n // the reason we want to keep is if user is scrolling up and down, we don't want to loose\n // the context of the editing in process.\n var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);\n return rowNodePresent ? KEEP_ROW : REMOVE_ROW;\n };\n RowRenderer.prototype.createRowCon = function (rowNode, animate, afterScroll) {\n var rowCtrlFromCache = this.cachedRowCtrls ? this.cachedRowCtrls.getRow(rowNode) : null;\n if (rowCtrlFromCache) {\n return rowCtrlFromCache;\n }\n // we don't use animations frames for printing, so the user can put the grid into print mode\n // and immediately print - otherwise the user would have to wait for the rows to draw in the background\n // (via the animation frames) which is awkward to do from code.\n // we only do the animation frames after scrolling, as this is where we want the smooth user experience.\n // having animation frames for other times makes the grid look 'jumpy'.\n var suppressAnimationFrame = this.gridOptionsWrapper.isSuppressAnimationFrame();\n var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;\n var res = new RowCtrl(rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);\n return res;\n };\n RowRenderer.prototype.getRenderedNodes = function () {\n var renderedRows = this.rowCtrlsByRowIndex;\n return Object.keys(renderedRows).map(function (key) { return renderedRows[key].getRowNode(); });\n };\n RowRenderer.prototype.getRowByPosition = function (rowPosition) {\n var rowComponent;\n switch (rowPosition.rowPinned) {\n case Constants.PINNED_TOP:\n rowComponent = this.topRowCtrls[rowPosition.rowIndex];\n break;\n case Constants.PINNED_BOTTOM:\n rowComponent = this.bottomRowCtrls[rowPosition.rowIndex];\n break;\n default:\n rowComponent = this.rowCtrlsByRowIndex[rowPosition.rowIndex];\n break;\n }\n return rowComponent;\n };\n RowRenderer.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n // returns true if any row between startIndex and endIndex is rendered. used by\n // SSRM or IRM, as they don't want to purge visible blocks from cache.\n RowRenderer.prototype.isRangeInRenderedViewport = function (startIndex, endIndex) {\n // parent closed means the parent node is not expanded, thus these blocks are not visible\n var parentClosed = startIndex == null || endIndex == null;\n if (parentClosed) {\n return false;\n }\n var blockAfterViewport = startIndex > this.lastRenderedRow;\n var blockBeforeViewport = endIndex < this.firstRenderedRow;\n var blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;\n return blockInsideViewport;\n };\n __decorate$1v([\n Autowired(\"paginationProxy\")\n ], RowRenderer.prototype, \"paginationProxy\", void 0);\n __decorate$1v([\n Autowired(\"columnModel\")\n ], RowRenderer.prototype, \"columnModel\", void 0);\n __decorate$1v([\n Autowired(\"pinnedRowModel\")\n ], RowRenderer.prototype, \"pinnedRowModel\", void 0);\n __decorate$1v([\n Autowired(\"rowModel\")\n ], RowRenderer.prototype, \"rowModel\", void 0);\n __decorate$1v([\n Autowired(\"focusService\")\n ], RowRenderer.prototype, \"focusService\", void 0);\n __decorate$1v([\n Autowired(\"columnApi\")\n ], RowRenderer.prototype, \"columnApi\", void 0);\n __decorate$1v([\n Autowired(\"gridApi\")\n ], RowRenderer.prototype, \"gridApi\", void 0);\n __decorate$1v([\n Autowired(\"beans\")\n ], RowRenderer.prototype, \"beans\", void 0);\n __decorate$1v([\n Autowired(\"rowContainerHeightService\")\n ], RowRenderer.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1v([\n Optional(\"ctrlsService\")\n ], RowRenderer.prototype, \"ctrlsService\", void 0);\n __decorate$1v([\n PostConstruct\n ], RowRenderer.prototype, \"postConstruct\", null);\n RowRenderer = __decorate$1v([\n Bean(\"rowRenderer\")\n ], RowRenderer);\n return RowRenderer;\n}(BeanStub));\nvar RowCtrlCache = /** @class */ (function () {\n function RowCtrlCache(maxCount) {\n // map for fast access\n this.entriesMap = {};\n // list for keeping order\n this.entriesList = [];\n this.maxCount = maxCount;\n }\n RowCtrlCache.prototype.addRow = function (rowCtrl) {\n this.entriesMap[rowCtrl.getRowNode().id] = rowCtrl;\n this.entriesList.push(rowCtrl);\n rowCtrl.setCached(true);\n if (this.entriesList.length > this.maxCount) {\n var rowCtrlToDestroy = this.entriesList[0];\n rowCtrlToDestroy.destroyFirstPass();\n rowCtrlToDestroy.destroySecondPass();\n this.removeFromCache(rowCtrlToDestroy);\n }\n };\n RowCtrlCache.prototype.getRow = function (rowNode) {\n if (rowNode == null || rowNode.id == null) {\n return null;\n }\n var res = this.entriesMap[rowNode.id];\n if (!res) {\n return null;\n }\n this.removeFromCache(res);\n res.setCached(false);\n // this can happen if user reloads data, and a new RowNode is reusing\n // the same ID as the old one\n var rowNodeMismatch = res.getRowNode() != rowNode;\n return rowNodeMismatch ? null : res;\n };\n RowCtrlCache.prototype.removeFromCache = function (rowCtrl) {\n var rowNodeId = rowCtrl.getRowNode().id;\n delete this.entriesMap[rowNodeId];\n removeFromArray(this.entriesList, rowCtrl);\n };\n RowCtrlCache.prototype.getEntries = function () {\n return this.entriesList;\n };\n return RowCtrlCache;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueFormatterService = /** @class */ (function (_super) {\n __extends$1J(ValueFormatterService, _super);\n function ValueFormatterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueFormatterService.prototype.formatValue = function (column, node, value, suppliedFormatter, useFormatterFromColumn) {\n if (useFormatterFromColumn === void 0) { useFormatterFromColumn = true; }\n var result = null;\n var formatter;\n var colDef = column.getColDef();\n if (suppliedFormatter) {\n // use supplied formatter if provided, e.g. set filter items can have their own value formatters\n formatter = suppliedFormatter;\n }\n else if (useFormatterFromColumn) {\n // if row is pinned, give preference to the pinned formatter\n formatter = node && node.rowPinned && colDef.pinnedRowValueFormatter ?\n colDef.pinnedRowValueFormatter : colDef.valueFormatter;\n }\n if (formatter) {\n var params = {\n value: value,\n node: node,\n data: node ? node.data : null,\n colDef: colDef,\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n result = this.expressionService.evaluate(formatter, params);\n }\n else if (colDef.refData) {\n return colDef.refData[value] || '';\n }\n // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)\n if (result == null && Array.isArray(value)) {\n result = value.join(', ');\n }\n return result;\n };\n __decorate$1w([\n Autowired('expressionService')\n ], ValueFormatterService.prototype, \"expressionService\", void 0);\n ValueFormatterService = __decorate$1w([\n Bean('valueFormatterService')\n ], ValueFormatterService);\n return ValueFormatterService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PinnedRowModel = /** @class */ (function (_super) {\n __extends$1K(PinnedRowModel, _super);\n function PinnedRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedRowModel.prototype.init = function () {\n this.setPinnedTopRowData(this.gridOptionsWrapper.getPinnedTopRowData());\n this.setPinnedBottomRowData(this.gridOptionsWrapper.getPinnedBottomRowData());\n };\n PinnedRowModel.prototype.isEmpty = function (floating) {\n var rows = floating === Constants.PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;\n return missingOrEmpty(rows);\n };\n PinnedRowModel.prototype.isRowsToRender = function (floating) {\n return !this.isEmpty(floating);\n };\n PinnedRowModel.prototype.getRowAtPixel = function (pixel, floating) {\n var rows = floating === Constants.PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;\n if (missingOrEmpty(rows)) {\n return 0; // this should never happen, just in case, 0 is graceful failure\n }\n for (var i = 0; i < rows.length; i++) {\n var rowNode = rows[i];\n var rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;\n // only need to range check against the top pixel, as we are going through the list\n // in order, first row to hit the pixel wins\n if (rowTopPixel >= pixel) {\n return i;\n }\n }\n return rows.length - 1;\n };\n PinnedRowModel.prototype.setPinnedTopRowData = function (rowData) {\n this.pinnedTopRows = this.createNodesFromData(rowData, true);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.setPinnedBottomRowData = function (rowData) {\n this.pinnedBottomRows = this.createNodesFromData(rowData, false);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.createNodesFromData = function (allData, isTop) {\n var _this = this;\n var rowNodes = [];\n if (allData) {\n var nextRowTop_1 = 0;\n allData.forEach(function (dataItem, index) {\n var rowNode = new RowNode(_this.beans);\n rowNode.data = dataItem;\n var idPrefix = isTop ? RowNode.ID_PREFIX_TOP_PINNED : RowNode.ID_PREFIX_BOTTOM_PINNED;\n rowNode.id = idPrefix + index;\n rowNode.rowPinned = isTop ? Constants.PINNED_TOP : Constants.PINNED_BOTTOM;\n rowNode.setRowTop(nextRowTop_1);\n rowNode.setRowHeight(_this.gridOptionsWrapper.getRowHeightForNode(rowNode).height);\n rowNode.setRowIndex(index);\n nextRowTop_1 += rowNode.rowHeight;\n rowNodes.push(rowNode);\n });\n }\n return rowNodes;\n };\n PinnedRowModel.prototype.getPinnedTopRowData = function () {\n return this.pinnedTopRows;\n };\n PinnedRowModel.prototype.getPinnedBottomRowData = function () {\n return this.pinnedBottomRows;\n };\n PinnedRowModel.prototype.getPinnedTopTotalHeight = function () {\n return this.getTotalHeight(this.pinnedTopRows);\n };\n PinnedRowModel.prototype.getPinnedTopRowCount = function () {\n return this.pinnedTopRows ? this.pinnedTopRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedTopRow = function (index) {\n return this.pinnedTopRows[index];\n };\n PinnedRowModel.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedBottomRows[index];\n };\n PinnedRowModel.prototype.forEachPinnedTopRow = function (callback) {\n if (missingOrEmpty(this.pinnedTopRows)) {\n return;\n }\n this.pinnedTopRows.forEach(callback);\n };\n PinnedRowModel.prototype.forEachPinnedBottomRow = function (callback) {\n if (missingOrEmpty(this.pinnedBottomRows)) {\n return;\n }\n this.pinnedBottomRows.forEach(callback);\n };\n PinnedRowModel.prototype.getPinnedBottomTotalHeight = function () {\n return this.getTotalHeight(this.pinnedBottomRows);\n };\n PinnedRowModel.prototype.getTotalHeight = function (rowNodes) {\n if (!rowNodes || rowNodes.length === 0) {\n return 0;\n }\n var lastNode = last(rowNodes);\n return lastNode.rowTop + lastNode.rowHeight;\n };\n __decorate$1x([\n Autowired('columnApi')\n ], PinnedRowModel.prototype, \"columnApi\", void 0);\n __decorate$1x([\n Autowired('gridApi')\n ], PinnedRowModel.prototype, \"gridApi\", void 0);\n __decorate$1x([\n Autowired('beans')\n ], PinnedRowModel.prototype, \"beans\", void 0);\n __decorate$1x([\n PostConstruct\n ], PinnedRowModel.prototype, \"init\", null);\n PinnedRowModel = __decorate$1x([\n Bean('pinnedRowModel')\n ], PinnedRowModel);\n return PinnedRowModel;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (ServerSideTransactionResultStatus) {\n /** Transaction was successfully applied */\n ServerSideTransactionResultStatus[\"Applied\"] = \"Applied\";\n /**\n * Store was not found, transaction not applied.\n * Either invalid route, or the parent row has not yet been expanded.\n */\n ServerSideTransactionResultStatus[\"StoreNotFound\"] = \"StoreNotFound\";\n /**\n * Store is loading, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoading\"] = \"StoreLoading\";\n /**\n * Store is loading (as max loads exceeded), transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreWaitingToLoad\"] = \"StoreWaitingToLoad\";\n /**\n * Store load attempt failed, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoadingFailed\"] = \"StoreLoadingFailed\";\n /**\n * Store is type Partial, which doesn't accept transactions\n */\n ServerSideTransactionResultStatus[\"StoreWrongType\"] = \"StoreWrongType\";\n /**\n * Transaction was cancelled, due to grid.\n * Callback isApplyServerSideTransaction() returning false\n */\n ServerSideTransactionResultStatus[\"Cancelled\"] = \"Cancelled\";\n})(exports.ServerSideTransactionResultStatus || (exports.ServerSideTransactionResultStatus = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n// when doing transactions, or change detection, and grouping is present\n// in the data, there is no need for the ClientSideRowModel to update each\n// group after an update, ony parts that were impacted by the change.\n// this class keeps track of all groups that were impacted by a transaction.\n// the the different CSRM operations (filter, sort etc) use the forEach method\n// to visit each group that was changed.\nvar ChangedPath = /** @class */ (function () {\n function ChangedPath(keepingColumns, rootNode) {\n // whether changed path is active of not. it is active when a) doing\n // a transaction update or b) doing change detection. if we are doing\n // a CSRM refresh for other reasons (after sort or filter, or user calling\n // setRowData() without delta mode) then we are not active. we are also\n // marked as not active if secondary columns change in pivot (as this impacts\n // aggregations)\n this.active = true;\n // for each node in the change path, we also store which columns need\n // to be re-aggregated.\n this.nodeIdsToColumns = {};\n // for quick lookup, all items in the change path are mapped by nodeId\n this.mapToItems = {};\n this.keepingColumns = keepingColumns;\n this.pathRoot = {\n rowNode: rootNode,\n children: null\n };\n this.mapToItems[rootNode.id] = this.pathRoot;\n }\n // can be set inactive by:\n // a) ClientSideRowModel, if no transactions or\n // b) PivotService, if secondary columns changed\n ChangedPath.prototype.setInactive = function () {\n this.active = false;\n };\n ChangedPath.prototype.isActive = function () {\n return this.active;\n };\n ChangedPath.prototype.depthFirstSearchChangedPath = function (pathItem, callback) {\n if (pathItem.children) {\n for (var i = 0; i < pathItem.children.length; i++) {\n this.depthFirstSearchChangedPath(pathItem.children[i], callback);\n }\n }\n callback(pathItem.rowNode);\n };\n ChangedPath.prototype.depthFirstSearchEverything = function (rowNode, callback, traverseEverything) {\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n if (childNode.childrenAfterGroup) {\n this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);\n }\n else if (traverseEverything) {\n callback(childNode);\n }\n }\n }\n callback(rowNode);\n };\n // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback\n // will be called for child nodes in addition to parent nodes.\n ChangedPath.prototype.forEachChangedNodeDepthFirst = function (callback, traverseLeafNodes) {\n if (traverseLeafNodes === void 0) { traverseLeafNodes = false; }\n if (this.active) {\n // if we are active, then use the change path to callback\n // only for updated groups\n this.depthFirstSearchChangedPath(this.pathRoot, callback);\n }\n else {\n // we are not active, so callback for everything, walk the entire path\n this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);\n }\n };\n ChangedPath.prototype.executeFromRootNode = function (callback) {\n callback(this.pathRoot.rowNode);\n };\n ChangedPath.prototype.createPathItems = function (rowNode) {\n var pointer = rowNode;\n var newEntryCount = 0;\n while (!this.mapToItems[pointer.id]) {\n var newEntry = {\n rowNode: pointer,\n children: null\n };\n this.mapToItems[pointer.id] = newEntry;\n newEntryCount++;\n pointer = pointer.parent;\n }\n return newEntryCount;\n };\n ChangedPath.prototype.populateColumnsMap = function (rowNode, columns) {\n var _this = this;\n if (!this.keepingColumns || !columns) {\n return;\n }\n var pointer = rowNode;\n while (pointer) {\n // if columns, add the columns in all the way to parent, merging\n // in any other columns that might be there already\n if (!this.nodeIdsToColumns[pointer.id]) {\n this.nodeIdsToColumns[pointer.id] = {};\n }\n columns.forEach(function (col) { return _this.nodeIdsToColumns[pointer.id][col.getId()] = true; });\n pointer = pointer.parent;\n }\n };\n ChangedPath.prototype.linkPathItems = function (rowNode, newEntryCount) {\n var pointer = rowNode;\n for (var i = 0; i < newEntryCount; i++) {\n var thisItem = this.mapToItems[pointer.id];\n var parentItem = this.mapToItems[pointer.parent.id];\n if (!parentItem.children) {\n parentItem.children = [];\n }\n parentItem.children.push(thisItem);\n pointer = pointer.parent;\n }\n };\n // called by\n // 1) change detection (provides cols) and\n // 2) groupStage if doing transaction update (doesn't provide cols)\n ChangedPath.prototype.addParentNode = function (rowNode, columns) {\n if (!rowNode || rowNode.isRowPinned()) {\n return;\n }\n // we cannot do both steps below in the same loop as\n // the second loop has a dependency on the first loop.\n // ie the hierarchy cannot be stitched up yet because\n // we don't have it built yet\n // create the new PathItem objects.\n var newEntryCount = this.createPathItems(rowNode);\n // link in the node items\n this.linkPathItems(rowNode, newEntryCount);\n // update columns\n this.populateColumnsMap(rowNode, columns);\n };\n ChangedPath.prototype.canSkip = function (rowNode) {\n return this.active && !this.mapToItems[rowNode.id];\n };\n ChangedPath.prototype.getValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return valueColumns;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return colsForThisNode[col.getId()]; });\n return result;\n };\n ChangedPath.prototype.getNotValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return null;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return !colsForThisNode[col.getId()]; });\n return result;\n };\n return ChangedPath;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RowNodeBlock = /** @class */ (function (_super) {\n __extends$1L(RowNodeBlock, _super);\n function RowNodeBlock(id) {\n var _this = _super.call(this) || this;\n _this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n _this.version = 0;\n _this.id = id;\n return _this;\n }\n RowNodeBlock.prototype.getId = function () {\n return this.id;\n };\n RowNodeBlock.prototype.load = function () {\n this.state = RowNodeBlock.STATE_LOADING;\n this.loadFromDatasource();\n };\n RowNodeBlock.prototype.getVersion = function () {\n return this.version;\n };\n RowNodeBlock.prototype.setStateWaitingToLoad = function () {\n // in case any current loads in progress, this will have their results ignored\n this.version++;\n this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n };\n RowNodeBlock.prototype.getState = function () {\n return this.state;\n };\n RowNodeBlock.prototype.pageLoadFailed = function (version) {\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_FAILED;\n this.processServerFail();\n }\n this.dispatchLoadCompleted(false);\n };\n RowNodeBlock.prototype.success = function (version, params) {\n this.successCommon(version, params);\n };\n RowNodeBlock.prototype.pageLoaded = function (version, rows, lastRow) {\n this.successCommon(version, { rowData: rows, rowCount: lastRow });\n };\n RowNodeBlock.prototype.isRequestMostRecentAndLive = function (version) {\n // thisIsMostRecentRequest - if block was refreshed, then another request\n // could of been sent after this one.\n var thisIsMostRecentRequest = version === this.version;\n // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed\n // and new blocks created. so data loads of old blocks are discarded.\n var weAreNotDestroyed = this.isAlive();\n return thisIsMostRecentRequest && weAreNotDestroyed;\n };\n RowNodeBlock.prototype.successCommon = function (version, params) {\n // need to dispatch load complete before processing the data, as PaginationComp checks\n // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to\n // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)\n this.dispatchLoadCompleted();\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_LOADED;\n this.processServerResult(params);\n }\n };\n RowNodeBlock.prototype.dispatchLoadCompleted = function (success) {\n if (success === void 0) { success = true; }\n // we fire event regardless of processing data or now, as we want\n // the concurrentLoadRequests count to be reduced in BlockLoader\n var event = {\n type: RowNodeBlock.EVENT_LOAD_COMPLETE,\n success: success,\n block: this\n };\n this.dispatchEvent(event);\n };\n RowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';\n RowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';\n RowNodeBlock.STATE_LOADING = 'loading';\n RowNodeBlock.STATE_LOADED = 'loaded';\n RowNodeBlock.STATE_FAILED = 'failed';\n return RowNodeBlock;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$4 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RowNodeBlockLoader = /** @class */ (function (_super) {\n __extends$1M(RowNodeBlockLoader, _super);\n function RowNodeBlockLoader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.activeBlockLoadsCount = 0;\n _this.blocks = [];\n _this.active = true;\n return _this;\n }\n RowNodeBlockLoader_1 = RowNodeBlockLoader;\n RowNodeBlockLoader.prototype.postConstruct = function () {\n this.maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();\n var blockLoadDebounceMillis = this.gridOptionsWrapper.getBlockLoadDebounceMillis();\n if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {\n this.checkBlockToLoadDebounce = _.debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);\n }\n };\n RowNodeBlockLoader.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('RowNodeBlockLoader');\n };\n RowNodeBlockLoader.prototype.addBlock = function (block) {\n this.blocks.push(block);\n // note that we do not remove this listener when removing the block. this is because the\n // cache can get destroyed (and containing blocks) when a block is loading. however the loading block\n // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.\n block.addEventListener(RowNodeBlock.EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));\n this.checkBlockToLoad();\n };\n RowNodeBlockLoader.prototype.removeBlock = function (block) {\n _.removeFromArray(this.blocks, block);\n };\n RowNodeBlockLoader.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.active = false;\n };\n RowNodeBlockLoader.prototype.loadComplete = function () {\n this.activeBlockLoadsCount--;\n this.checkBlockToLoad();\n if (this.activeBlockLoadsCount == 0) {\n this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });\n }\n };\n RowNodeBlockLoader.prototype.checkBlockToLoad = function () {\n if (this.checkBlockToLoadDebounce) {\n this.checkBlockToLoadDebounce();\n }\n else {\n this.performCheckBlocksToLoad();\n }\n };\n RowNodeBlockLoader.prototype.performCheckBlocksToLoad = function () {\n if (!this.active) {\n return;\n }\n this.printCacheStatus();\n if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {\n this.logger.log(\"checkBlockToLoad: max loads exceeded\");\n return;\n }\n var blockToLoad = null;\n this.blocks.forEach(function (block) {\n if (block.getState() === RowNodeBlock.STATE_WAITING_TO_LOAD) {\n blockToLoad = block;\n }\n });\n if (blockToLoad) {\n blockToLoad.load();\n this.activeBlockLoadsCount++;\n this.printCacheStatus();\n }\n };\n RowNodeBlockLoader.prototype.getBlockState = function () {\n var result = {};\n this.blocks.forEach(function (block) {\n var _a = block.getBlockStateJson(), id = _a.id, state = _a.state;\n result[id] = state;\n });\n return result;\n };\n RowNodeBlockLoader.prototype.printCacheStatus = function () {\n if (this.logger.isLogging()) {\n this.logger.log(\"printCacheStatus: activePageLoadsCount = \" + this.activeBlockLoadsCount + \",\"\n + (\" blocks = \" + JSON.stringify(this.getBlockState())));\n }\n };\n RowNodeBlockLoader.prototype.isLoading = function () {\n return this.activeBlockLoadsCount > 0;\n };\n var RowNodeBlockLoader_1;\n RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';\n __decorate$1y([\n PostConstruct\n ], RowNodeBlockLoader.prototype, \"postConstruct\", null);\n __decorate$1y([\n __param$4(0, Qualifier('loggerFactory'))\n ], RowNodeBlockLoader.prototype, \"setBeans\", null);\n RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate$1y([\n Bean('rowNodeBlockLoader')\n ], RowNodeBlockLoader);\n return RowNodeBlockLoader;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationProxy = /** @class */ (function (_super) {\n __extends$1N(PaginationProxy, _super);\n function PaginationProxy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.currentPage = 0;\n _this.topDisplayedRowIndex = 0;\n _this.bottomDisplayedRowIndex = 0;\n _this.pixelOffset = 0;\n _this.masterRowCount = 0;\n return _this;\n }\n PaginationProxy.prototype.postConstruct = function () {\n this.active = this.gridOptionsWrapper.isPagination();\n this.paginateChildRows = this.gridOptionsWrapper.isPaginateChildRows();\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, 'paginationPageSize', this.onPaginationPageSizeChanged.bind(this));\n this.onModelUpdated();\n };\n PaginationProxy.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());\n if (res) {\n this.calculatePages();\n }\n return res;\n };\n PaginationProxy.prototype.onModelUpdated = function (modelUpdatedEvent) {\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,\n newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,\n newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,\n keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.onPaginationPageSizeChanged = function () {\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: false,\n newData: false,\n newPage: false,\n // important to keep rendered rows, otherwise every time grid is resized,\n // we would destroy all the rows.\n keepRenderedRows: true,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.goToPage = function (page) {\n if (!this.active || this.currentPage === page) {\n return;\n }\n this.currentPage = page;\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: true,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.onModelUpdated(event);\n };\n PaginationProxy.prototype.getPixelOffset = function () {\n return this.pixelOffset;\n };\n PaginationProxy.prototype.getRow = function (index) {\n return this.rowModel.getRow(index);\n };\n PaginationProxy.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n PaginationProxy.prototype.getRowIndexAtPixel = function (pixel) {\n return this.rowModel.getRowIndexAtPixel(pixel);\n };\n PaginationProxy.prototype.getCurrentPageHeight = function () {\n if (missing(this.topRowBounds) || missing(this.bottomRowBounds)) {\n return 0;\n }\n return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);\n };\n PaginationProxy.prototype.getCurrentPagePixelRange = function () {\n var pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;\n var pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;\n return { pageFirstPixel: pageFirstPixel, pageLastPixel: pageLastPixel };\n };\n PaginationProxy.prototype.isRowPresent = function (rowNode) {\n if (!this.rowModel.isRowPresent(rowNode)) {\n return false;\n }\n var nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;\n return nodeIsInPage;\n };\n PaginationProxy.prototype.isEmpty = function () {\n return this.rowModel.isEmpty();\n };\n PaginationProxy.prototype.isRowsToRender = function () {\n return this.rowModel.isRowsToRender();\n };\n PaginationProxy.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n return this.rowModel.getNodesInRangeForSelection(firstInRange, lastInRange);\n };\n PaginationProxy.prototype.forEachNode = function (callback) {\n return this.rowModel.forEachNode(callback);\n };\n PaginationProxy.prototype.getType = function () {\n return this.rowModel.getType();\n };\n PaginationProxy.prototype.getRowBounds = function (index) {\n var res = this.rowModel.getRowBounds(index);\n res.rowIndex = index;\n return res;\n };\n PaginationProxy.prototype.getPageFirstRow = function () {\n return this.topRowBounds ? this.topRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getPageLastRow = function () {\n return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getRowCount = function () {\n return this.rowModel.getRowCount();\n };\n PaginationProxy.prototype.getPageForIndex = function (index) {\n return Math.floor(index / this.pageSize);\n };\n PaginationProxy.prototype.goToPageWithIndex = function (index) {\n if (!this.active) {\n return;\n }\n var pageNumber = this.getPageForIndex(index);\n this.goToPage(pageNumber);\n };\n PaginationProxy.prototype.isRowInPage = function (row) {\n if (!this.active) {\n return true;\n }\n var rowPage = this.getPageForIndex(row.rowIndex);\n return rowPage === this.currentPage;\n };\n PaginationProxy.prototype.isLastPageFound = function () {\n return this.rowModel.isLastRowIndexKnown();\n };\n PaginationProxy.prototype.getCurrentPage = function () {\n return this.currentPage;\n };\n PaginationProxy.prototype.goToNextPage = function () {\n this.goToPage(this.currentPage + 1);\n };\n PaginationProxy.prototype.goToPreviousPage = function () {\n this.goToPage(this.currentPage - 1);\n };\n PaginationProxy.prototype.goToFirstPage = function () {\n this.goToPage(0);\n };\n PaginationProxy.prototype.goToLastPage = function () {\n var rowCount = this.rowModel.getRowCount();\n var lastPage = Math.floor(rowCount / this.pageSize);\n this.goToPage(lastPage);\n };\n PaginationProxy.prototype.getPageSize = function () {\n return this.pageSize;\n };\n PaginationProxy.prototype.getTotalPages = function () {\n return this.totalPages;\n };\n PaginationProxy.prototype.setPageSize = function () {\n // show put this into super class\n this.pageSize = this.gridOptionsWrapper.getPaginationPageSize();\n if (this.pageSize == null || this.pageSize < 1) {\n this.pageSize = 100;\n }\n };\n PaginationProxy.prototype.calculatePages = function () {\n if (this.active) {\n this.setPageSize();\n if (this.paginateChildRows) {\n this.calculatePagesAllRows();\n }\n else {\n this.calculatePagesMasterRowsOnly();\n }\n }\n else {\n this.calculatedPagesNotActive();\n }\n this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);\n if (this.topRowBounds) {\n this.topRowBounds.rowIndex = this.topDisplayedRowIndex;\n }\n this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);\n if (this.bottomRowBounds) {\n this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;\n }\n this.setPixelOffset(exists(this.topRowBounds) ? this.topRowBounds.rowTop : 0);\n };\n PaginationProxy.prototype.setPixelOffset = function (value) {\n if (this.pixelOffset === value) {\n return;\n }\n this.pixelOffset = value;\n this.eventService.dispatchEvent({ type: Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });\n };\n PaginationProxy.prototype.setZeroRows = function () {\n this.masterRowCount = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = -1;\n this.currentPage = 0;\n this.totalPages = 0;\n };\n PaginationProxy.prototype.calculatePagesMasterRowsOnly = function () {\n // const csrm = this.rowModel;\n // const rootNode = csrm.getRootNode();\n // const masterRows = rootNode.childrenAfterSort;\n this.masterRowCount = this.rowModel.getTopLevelRowCount();\n // we say <=0 (rather than =0) as viewport returns -1 when no rows\n if (this.masterRowCount <= 0) {\n this.setZeroRows();\n return;\n }\n var masterLastRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isNumeric(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n var masterPageStartIndex = this.pageSize * this.currentPage;\n var masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (masterPageEndIndex > masterLastRowIndex) {\n masterPageEndIndex = masterLastRowIndex;\n }\n this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);\n // masterRows[masterPageStartIndex].rowIndex;\n if (masterPageEndIndex === masterLastRowIndex) {\n // if showing the last master row, then we want to show the very last row of the model\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n }\n else {\n var firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);\n //masterRows[masterPageEndIndex + 1].rowIndex;\n // this gets the index of the last child - eg current row is open, we want to display all children,\n // the index of the last child is one less than the index of the next parent row.\n this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;\n }\n };\n PaginationProxy.prototype.getMasterRowCount = function () {\n return this.masterRowCount;\n };\n PaginationProxy.prototype.calculatePagesAllRows = function () {\n this.masterRowCount = this.rowModel.getRowCount();\n if (this.masterRowCount === 0) {\n this.setZeroRows();\n return;\n }\n var maxRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isNumeric(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n this.topDisplayedRowIndex = this.pageSize * this.currentPage;\n this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (this.bottomDisplayedRowIndex > maxRowIndex) {\n this.bottomDisplayedRowIndex = maxRowIndex;\n }\n };\n PaginationProxy.prototype.calculatedPagesNotActive = function () {\n this.pageSize = this.rowModel.getRowCount();\n this.totalPages = 1;\n this.currentPage = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n };\n __decorate$1z([\n Autowired('rowModel')\n ], PaginationProxy.prototype, \"rowModel\", void 0);\n __decorate$1z([\n Autowired('columnApi')\n ], PaginationProxy.prototype, \"columnApi\", void 0);\n __decorate$1z([\n Autowired('gridApi')\n ], PaginationProxy.prototype, \"gridApi\", void 0);\n __decorate$1z([\n PostConstruct\n ], PaginationProxy.prototype, \"postConstruct\", null);\n PaginationProxy = __decorate$1z([\n Bean('paginationProxy')\n ], PaginationProxy);\n return PaginationProxy;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StylingService = /** @class */ (function (_super) {\n __extends$1O(StylingService, _super);\n function StylingService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StylingService.prototype.processAllCellClasses = function (colDef, params, onApplicableClass, onNotApplicableClass) {\n this.processClassRules(colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);\n this.processStaticCellClasses(colDef, params, onApplicableClass);\n };\n StylingService.prototype.processClassRules = function (classRules, params, onApplicableClass, onNotApplicableClass) {\n if (classRules == null) {\n return;\n }\n var classNames = Object.keys(classRules);\n var classesToApply = {};\n var classesToRemove = {};\n var _loop_1 = function (i) {\n var className = classNames[i];\n var rule = classRules[className];\n var resultOfRule;\n if (typeof rule === 'string') {\n resultOfRule = this_1.expressionService.evaluate(rule, params);\n }\n else if (typeof rule === 'function') {\n resultOfRule = rule(params);\n }\n // in case className = 'my-class1 my-class2', we need to split into individual class names\n className.split(' ').forEach(function (singleClass) {\n if (singleClass == null || singleClass.trim() == '') {\n return;\n }\n resultOfRule ? classesToApply[singleClass] = true : classesToRemove[singleClass] = true;\n });\n };\n var this_1 = this;\n for (var i = 0; i < classNames.length; i++) {\n _loop_1(i);\n }\n // we remove all classes first, then add all classes second,\n // in case a class appears in more than one rule, this means it will be added\n // if appears in at least one truthy rule\n if (onNotApplicableClass) {\n Object.keys(classesToRemove).forEach(onNotApplicableClass);\n }\n Object.keys(classesToApply).forEach(onApplicableClass);\n };\n StylingService.prototype.getStaticCellClasses = function (colDef, params) {\n var cellClass = colDef.cellClass;\n if (!cellClass) {\n return [];\n }\n var classOrClasses;\n if (typeof cellClass === 'function') {\n var cellClassFunc = cellClass;\n classOrClasses = cellClassFunc(params);\n }\n else {\n classOrClasses = cellClass;\n }\n if (typeof classOrClasses === 'string') {\n classOrClasses = [classOrClasses];\n }\n return classOrClasses || [];\n };\n StylingService.prototype.processStaticCellClasses = function (colDef, params, onApplicableClass) {\n var classOrClasses = this.getStaticCellClasses(colDef, params);\n classOrClasses.forEach(function (cssClassItem) {\n onApplicableClass(cssClassItem);\n });\n };\n __decorate$1A([\n Autowired('expressionService')\n ], StylingService.prototype, \"expressionService\", void 0);\n StylingService = __decorate$1A([\n Bean('stylingService')\n ], StylingService);\n return StylingService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgRadioButton = /** @class */ (function (_super) {\n __extends$1P(AgRadioButton, _super);\n function AgRadioButton(config) {\n return _super.call(this, config, 'ag-radio-button', 'radio') || this;\n }\n AgRadioButton.prototype.isSelected = function () {\n return this.eInput.checked;\n };\n AgRadioButton.prototype.toggle = function () {\n if (this.eInput.disabled) {\n return;\n }\n // do not allow an active radio button to be deselected\n if (!this.isSelected()) {\n this.setValue(true);\n }\n };\n AgRadioButton.prototype.addInputListeners = function () {\n _super.prototype.addInputListeners.call(this);\n this.addManagedListener(this.eventService, Events.EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));\n };\n /**\n * This ensures that if another radio button in the same named group is selected, we deselect this radio button.\n * By default the browser does this for you, but we are managing classes ourselves in order to ensure input\n * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,\n * not deselected, so we need to use our own event.\n */\n AgRadioButton.prototype.onChange = function (event) {\n if (event.selected &&\n event.name &&\n this.eInput.name &&\n this.eInput.name === event.name &&\n event.id &&\n this.eInput.id !== event.id) {\n this.setValue(false, true);\n }\n };\n return AgRadioButton;\n}(AgCheckbox));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgToggleButton = /** @class */ (function (_super) {\n __extends$1Q(AgToggleButton, _super);\n function AgToggleButton(config) {\n return _super.call(this, config, 'ag-toggle-button') || this;\n }\n AgToggleButton.prototype.setValue = function (value, silent) {\n _super.prototype.setValue.call(this, value, silent);\n this.addOrRemoveCssClass('ag-selected', this.getValue());\n return this;\n };\n return AgToggleButton;\n}(AgCheckbox));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputTextField = /** @class */ (function (_super) {\n __extends$1R(AgInputTextField, _super);\n function AgInputTextField(config, className, inputType) {\n if (className === void 0) { className = 'ag-text-field'; }\n if (inputType === void 0) { inputType = 'text'; }\n return _super.call(this, config, className, inputType) || this;\n }\n AgInputTextField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.config.allowedCharPattern) {\n this.preventDisallowedCharacters();\n }\n };\n AgInputTextField.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n if (this.eInput.value !== value) {\n this.eInput.value = exists(value) ? value : '';\n }\n return ret;\n };\n AgInputTextField.prototype.preventDisallowedCharacters = function () {\n var pattern = new RegExp(\"[\" + this.config.allowedCharPattern + \"]\");\n var preventDisallowedCharacters = function (event) {\n if (event.key && !pattern.test(event.key)) {\n event.preventDefault();\n }\n };\n this.addManagedListener(this.eInput, 'keypress', preventDisallowedCharacters);\n this.addManagedListener(this.eInput, 'paste', function (e) {\n var _a;\n var text = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text');\n if (text && text.split('').some(function (c) { return !pattern.test(c); })) {\n e.preventDefault();\n }\n });\n };\n return AgInputTextField;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputTextArea = /** @class */ (function (_super) {\n __extends$1S(AgInputTextArea, _super);\n function AgInputTextArea(config) {\n return _super.call(this, config, 'ag-text-area', null, 'textarea') || this;\n }\n AgInputTextArea.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n AgInputTextArea.prototype.setCols = function (cols) {\n this.eInput.cols = cols;\n return this;\n };\n AgInputTextArea.prototype.setRows = function (rows) {\n this.eInput.rows = rows;\n return this;\n };\n return AgInputTextArea;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputNumberField = /** @class */ (function (_super) {\n __extends$1T(AgInputNumberField, _super);\n function AgInputNumberField(config) {\n return _super.call(this, config, 'ag-number-field', 'number') || this;\n }\n AgInputNumberField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(this.eInput, 'blur', function () {\n var floatedValue = parseFloat(_this.eInput.value);\n var value = isNaN(floatedValue) ? '' : _this.normalizeValue(floatedValue.toString());\n if (_this.value !== value) {\n _this.setValue(value);\n }\n });\n this.eInput.step = 'any';\n };\n AgInputNumberField.prototype.normalizeValue = function (value) {\n if (value === '') {\n return '';\n }\n if (this.precision) {\n value = this.adjustPrecision(value);\n }\n var val = parseFloat(value);\n if (this.min != null && val < this.min) {\n value = this.min.toString();\n }\n else if (this.max != null && val > this.max) {\n value = this.max.toString();\n }\n return value;\n };\n AgInputNumberField.prototype.adjustPrecision = function (value) {\n if (this.precision) {\n var floatString = parseFloat(value).toFixed(this.precision);\n value = parseFloat(floatString).toString();\n }\n return value;\n };\n AgInputNumberField.prototype.setMin = function (min) {\n if (this.min === min) {\n return this;\n }\n this.min = min;\n addOrRemoveAttribute(this.eInput, 'min', min);\n return this;\n };\n AgInputNumberField.prototype.setMax = function (max) {\n if (this.max === max) {\n return this;\n }\n this.max = max;\n addOrRemoveAttribute(this.eInput, 'max', max);\n return this;\n };\n AgInputNumberField.prototype.setPrecision = function (precision) {\n this.precision = precision;\n return this;\n };\n AgInputNumberField.prototype.setStep = function (step) {\n if (this.step === step) {\n return this;\n }\n this.step = step;\n addOrRemoveAttribute(this.eInput, 'step', step);\n return this;\n };\n AgInputNumberField.prototype.setValue = function (value, silent) {\n value = this.adjustPrecision(value);\n var normalizedValue = this.normalizeValue(value);\n if (value != normalizedValue) {\n return this;\n }\n return _super.prototype.setValue.call(this, value, silent);\n };\n return AgInputNumberField;\n}(AgInputTextField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputRange = /** @class */ (function (_super) {\n __extends$1U(AgInputRange, _super);\n function AgInputRange(config) {\n return _super.call(this, config, 'ag-range-field', 'range') || this;\n }\n AgInputRange.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n var _a = this.config, min = _a.min, max = _a.max, step = _a.step;\n if (min != null) {\n this.setMinValue(min);\n }\n if (max != null) {\n this.setMaxValue(max);\n }\n this.setStep(step || 1);\n };\n AgInputRange.prototype.addInputListeners = function () {\n var _this = this;\n this.addManagedListener(this.eInput, 'input', function (e) {\n var value = e.target.value;\n _this.setValue(value);\n });\n };\n AgInputRange.prototype.setMinValue = function (value) {\n this.min = value;\n this.eInput.setAttribute('min', value.toString());\n return this;\n };\n AgInputRange.prototype.setMaxValue = function (value) {\n this.max = value;\n this.eInput.setAttribute('max', value.toString());\n return this;\n };\n AgInputRange.prototype.setStep = function (value) {\n this.eInput.setAttribute('step', value.toString());\n return this;\n };\n AgInputRange.prototype.setValue = function (value, silent) {\n if (this.min != null) {\n value = Math.max(parseFloat(value), this.min).toString();\n }\n if (this.max != null) {\n value = Math.min(parseFloat(value), this.max).toString();\n }\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n return AgInputRange;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgSlider = /** @class */ (function (_super) {\n __extends$1V(AgSlider, _super);\n function AgSlider(config) {\n var _this = _super.call(this, config, AgSlider.TEMPLATE) || this;\n _this.labelAlignment = 'top';\n return _this;\n }\n AgSlider.prototype.init = function () {\n this.eSlider.addCssClass('ag-slider-field');\n };\n AgSlider.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n var eventChanged = AgAbstractField.EVENT_CHANGED;\n this.addManagedListener(this.eText, eventChanged, function () {\n var textValue = parseFloat(_this.eText.getValue());\n _this.eSlider.setValue(textValue.toString(), true);\n callbackFn(textValue || 0);\n });\n this.addManagedListener(this.eSlider, eventChanged, function () {\n var sliderValue = _this.eSlider.getValue();\n _this.eText.setValue(sliderValue, true);\n callbackFn(parseFloat(sliderValue));\n });\n return this;\n };\n AgSlider.prototype.setSliderWidth = function (width) {\n this.eSlider.setWidth(width);\n return this;\n };\n AgSlider.prototype.setTextFieldWidth = function (width) {\n this.eText.setWidth(width);\n return this;\n };\n AgSlider.prototype.setMinValue = function (minValue) {\n this.eSlider.setMinValue(minValue);\n this.eText.setMin(minValue);\n return this;\n };\n AgSlider.prototype.setMaxValue = function (maxValue) {\n this.eSlider.setMaxValue(maxValue);\n this.eText.setMax(maxValue);\n return this;\n };\n AgSlider.prototype.getValue = function () {\n return this.eText.getValue();\n };\n AgSlider.prototype.setValue = function (value) {\n if (this.getValue() === value) {\n return this;\n }\n this.eText.setValue(value, true);\n this.eSlider.setValue(value, true);\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n return this;\n };\n AgSlider.prototype.setStep = function (step) {\n this.eSlider.setStep(step);\n this.eText.setStep(step);\n return this;\n };\n AgSlider.TEMPLATE = \"
\\n \\n
\\n \\n \\n
\\n
\";\n __decorate$1B([\n RefSelector('eLabel')\n ], AgSlider.prototype, \"eLabel\", void 0);\n __decorate$1B([\n RefSelector('eSlider')\n ], AgSlider.prototype, \"eSlider\", void 0);\n __decorate$1B([\n RefSelector('eText')\n ], AgSlider.prototype, \"eText\", void 0);\n __decorate$1B([\n PostConstruct\n ], AgSlider.prototype, \"init\", null);\n return AgSlider;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAngleSelect = /** @class */ (function (_super) {\n __extends$1W(AgAngleSelect, _super);\n function AgAngleSelect(config) {\n var _this = _super.call(this, config, AgAngleSelect.TEMPLATE) || this;\n _this.radius = 0;\n _this.offsetX = 0;\n _this.offsetY = 0;\n return _this;\n }\n AgAngleSelect.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.dragListener = {\n eElement: this.eParentCircle,\n dragStartPixels: 0,\n onDragStart: function (e) {\n _this.parentCircleRect = _this.eParentCircle.getBoundingClientRect();\n },\n onDragging: function (e) { return _this.calculateAngleDrag(e); },\n onDragStop: function () { }\n };\n this.dragService.addDragSource(this.dragListener);\n this.eAngleValue\n .setLabel('')\n .setLabelWidth(5)\n .setInputWidth(45)\n .setMin(0)\n .setMax(360)\n .setValue(\"\" + this.degrees)\n .onValueChange(function (value) {\n if (value == null || value === '') {\n value = '0';\n }\n value = _this.eAngleValue.normalizeValue(value);\n var floatValue = parseFloat(value);\n if (floatValue > 180) {\n floatValue = floatValue - 360;\n }\n _this.setValue(floatValue);\n });\n this.updateNumberInput();\n if (exists(this.getValue())) {\n this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());\n }\n this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () {\n var eDocument = _this.gridOptionsWrapper.getDocument();\n if (_this.eAngleValue.getInputElement().contains(eDocument.activeElement)) {\n return;\n }\n _this.updateNumberInput();\n });\n };\n AgAngleSelect.prototype.updateNumberInput = function () {\n var normalizedValue = this.normalizeNegativeValue(this.getValue());\n this.eAngleValue.setValue(normalizedValue.toString());\n };\n AgAngleSelect.prototype.positionChildCircle = function (radians) {\n var rect = this.parentCircleRect || { width: 24, height: 24 };\n var eChildCircle = this.eChildCircle;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n eChildCircle.style.left = centerX + Math.cos(radians) * 8 + \"px\";\n eChildCircle.style.top = centerY + Math.sin(radians) * 8 + \"px\";\n };\n AgAngleSelect.prototype.calculatePolar = function () {\n var x = this.offsetX;\n var y = this.offsetY;\n var radians = Math.atan2(y, x);\n this.degrees = this.toDegrees(radians);\n this.radius = Math.sqrt((x * x) + (y * y));\n this.positionChildCircle(radians);\n };\n AgAngleSelect.prototype.calculateCartesian = function () {\n var radians = this.toRadians(this.getValue());\n var radius = this.getRadius();\n this\n .setOffsetX(Math.cos(radians) * radius)\n .setOffsetY(Math.sin(radians) * radius);\n };\n AgAngleSelect.prototype.setOffsetX = function (offset) {\n if (this.offsetX !== offset) {\n this.offsetX = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.setOffsetY = function (offset) {\n if (this.offsetY !== offset) {\n this.offsetY = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.calculateAngleDrag = function (e) {\n var rect = this.parentCircleRect;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n var x = e.clientX - rect.left;\n var y = e.clientY - rect.top;\n var dx = x - centerX;\n var dy = y - centerY;\n var radians = Math.atan2(dy, dx);\n this.setValue(radians, true);\n };\n AgAngleSelect.prototype.toDegrees = function (radians) {\n return radians / Math.PI * 180;\n };\n AgAngleSelect.prototype.toRadians = function (degrees) {\n return degrees / 180 * Math.PI;\n };\n AgAngleSelect.prototype.normalizeNegativeValue = function (degrees) {\n return degrees < 0 ? 360 + degrees : degrees;\n };\n AgAngleSelect.prototype.normalizeAngle180 = function (radians) {\n radians %= Math.PI * 2;\n if (radians < -Math.PI) {\n radians += Math.PI * 2;\n }\n else if (radians >= Math.PI) {\n radians -= Math.PI * 2;\n }\n return radians;\n };\n AgAngleSelect.prototype.getRadius = function () {\n return this.radius;\n };\n AgAngleSelect.prototype.setRadius = function (r) {\n if (this.radius === r) {\n return this;\n }\n this.radius = r;\n this.calculateCartesian();\n return this;\n };\n AgAngleSelect.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () {\n callbackFn(_this.degrees);\n });\n return this;\n };\n AgAngleSelect.prototype.getValue = function (radians) {\n return radians ? this.toRadians(this.degrees) : this.degrees;\n };\n AgAngleSelect.prototype.setValue = function (degrees, radians) {\n var radiansValue;\n if (!radians) {\n radiansValue = this.normalizeAngle180(this.toRadians(degrees));\n }\n else {\n radiansValue = degrees;\n }\n degrees = this.toDegrees(radiansValue);\n if (this.degrees !== degrees) {\n this.degrees = Math.floor(degrees);\n this.calculateCartesian();\n this.positionChildCircle(radiansValue);\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n }\n return this;\n };\n AgAngleSelect.prototype.setWidth = function (width) {\n setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAngleSelect.prototype.destroy = function () {\n this.dragService.removeDragSource(this.dragListener);\n _super.prototype.destroy.call(this);\n };\n AgAngleSelect.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\";\n __decorate$1C([\n RefSelector('eLabel')\n ], AgAngleSelect.prototype, \"eLabel\", void 0);\n __decorate$1C([\n RefSelector('eParentCircle')\n ], AgAngleSelect.prototype, \"eParentCircle\", void 0);\n __decorate$1C([\n RefSelector('eChildCircle')\n ], AgAngleSelect.prototype, \"eChildCircle\", void 0);\n __decorate$1C([\n RefSelector('eAngleValue')\n ], AgAngleSelect.prototype, \"eAngleValue\", void 0);\n __decorate$1C([\n Autowired('dragService')\n ], AgAngleSelect.prototype, \"dragService\", void 0);\n return AgAngleSelect;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$e = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar AgColorPanel = /** @class */ (function (_super) {\n __extends$1X(AgColorPanel, _super);\n function AgColorPanel(config) {\n var _this = _super.call(this, AgColorPanel.TEMPLATE) || this;\n _this.H = 1; // in the [0, 1] range\n _this.S = 1; // in the [0, 1] range\n _this.B = 1; // in the [0, 1] range\n _this.A = 1; // in the [0, 1] range\n _this.isSpectrumDragging = false;\n _this.isSpectrumHueDragging = false;\n _this.isSpectrumAlphaDragging = false;\n _this.colorChanged = false;\n _this.picker = config.picker;\n return _this;\n }\n AgColorPanel.prototype.postConstruct = function () {\n var eGui = this.getGui();\n this.initRecentColors();\n this.addManagedListener(this.spectrumVal, 'mousedown', this.onSpectrumDraggerDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumDraggerMove.bind(this));\n this.addManagedListener(this.spectrumHue, 'mousedown', this.onSpectrumHueDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumHueMove.bind(this));\n this.addManagedListener(this.spectrumAlpha, 'mousedown', this.onSpectrumAlphaDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumAlphaMove.bind(this));\n // Listening to `mouseup` on the document on purpose. The user might release the mouse button\n // outside the UI control. When the mouse returns back to the control's area, the dragging\n // of the thumb is not expected and seen as a bug.\n this.addManagedListener(document, 'mouseup', this.onMouseUp.bind(this));\n this.addManagedListener(this.recentColors, 'click', this.onRecentColorClick.bind(this));\n };\n AgColorPanel.prototype.refreshSpectrumRect = function () {\n return this.spectrumValRect = this.spectrumVal.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshHueRect = function () {\n return this.spectrumHueRect = this.spectrumHue.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshAlphaRect = function () {\n return this.spectrumAlphaRect = this.spectrumAlpha.getBoundingClientRect();\n };\n AgColorPanel.prototype.onSpectrumDraggerDown = function (e) {\n this.refreshSpectrumRect();\n this.isSpectrumDragging = true;\n this.moveDragger(e);\n };\n AgColorPanel.prototype.onSpectrumDraggerMove = function (e) {\n if (this.isSpectrumDragging) {\n this.moveDragger(e);\n }\n };\n AgColorPanel.prototype.onSpectrumHueDown = function (e) {\n this.refreshHueRect();\n this.isSpectrumHueDragging = true;\n this.moveHueSlider(e);\n };\n AgColorPanel.prototype.onSpectrumHueMove = function (e) {\n if (this.isSpectrumHueDragging) {\n this.moveHueSlider(e);\n }\n };\n AgColorPanel.prototype.onSpectrumAlphaDown = function (e) {\n this.refreshAlphaRect();\n this.isSpectrumAlphaDragging = true;\n this.moveAlphaSlider(e);\n };\n AgColorPanel.prototype.onSpectrumAlphaMove = function (e) {\n if (this.isSpectrumAlphaDragging) {\n this.moveAlphaSlider(e);\n }\n };\n AgColorPanel.prototype.onMouseUp = function () {\n this.isSpectrumDragging = false;\n this.isSpectrumHueDragging = false;\n this.isSpectrumAlphaDragging = false;\n };\n AgColorPanel.prototype.moveDragger = function (e) {\n var valRect = this.spectrumValRect;\n if (valRect) {\n var x = e.clientX - valRect.left;\n var y = e.clientY - valRect.top;\n x = Math.max(x, 0);\n x = Math.min(x, valRect.width);\n y = Math.max(y, 0);\n y = Math.min(y, valRect.height);\n this.setSpectrumValue(x / valRect.width, 1 - y / valRect.height);\n }\n };\n AgColorPanel.prototype.moveHueSlider = function (e) {\n var hueRect = this.spectrumHueRect;\n if (hueRect) {\n var slider = this.spectrumHueSlider;\n var sliderRect = slider.getBoundingClientRect();\n var x = e.clientX - hueRect.left;\n x = Math.max(x, 0);\n x = Math.min(x, hueRect.width);\n this.H = 1 - x / hueRect.width;\n slider.style.left = (x + sliderRect.width / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.moveAlphaSlider = function (e) {\n var alphaRect = this.spectrumAlphaRect;\n if (alphaRect) {\n var slider = this.spectrumAlphaSlider;\n var sliderRect = slider.getBoundingClientRect();\n var x = e.clientX - alphaRect.left;\n x = Math.max(x, 0);\n x = Math.min(x, alphaRect.width);\n this.A = x / alphaRect.width;\n slider.style.left = (x + sliderRect.width / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.update = function () {\n var color = Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var spectrumColor = Color.fromHSB(this.H * 360, 1, 1);\n var rgbaColor = color.toRgbaString();\n // the recent color list needs to know color has actually changed\n var colorPicker = this.picker;\n var existingColor = Color.fromString(colorPicker.getValue());\n if (existingColor.toRgbaString() !== rgbaColor) {\n this.colorChanged = true;\n }\n colorPicker.setValue(rgbaColor);\n this.spectrumColor.style.backgroundColor = spectrumColor.toRgbaString();\n this.spectrumDragger.style.backgroundColor = rgbaColor;\n };\n /**\n * @param saturation In the [0, 1] interval.\n * @param brightness In the [0, 1] interval.\n */\n AgColorPanel.prototype.setSpectrumValue = function (saturation, brightness) {\n var valRect = this.spectrumValRect || this.refreshSpectrumRect();\n if (valRect) {\n var dragger = this.spectrumDragger;\n var draggerRect = dragger.getBoundingClientRect();\n saturation = Math.max(0, saturation);\n saturation = Math.min(1, saturation);\n brightness = Math.max(0, brightness);\n brightness = Math.min(1, brightness);\n this.S = saturation;\n this.B = brightness;\n dragger.style.left = (saturation * valRect.width - draggerRect.width / 2) + 'px';\n dragger.style.top = ((1 - brightness) * valRect.height - draggerRect.height / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.initRecentColors = function () {\n var recentColors = AgColorPanel.recentColors;\n var innerHtml = recentColors.map(function (color, index) {\n return \"
\";\n });\n this.recentColors.innerHTML = innerHtml.join('');\n };\n AgColorPanel.prototype.setValue = function (val) {\n var color = Color.fromString(val);\n var _a = __read$e(color.toHSB(), 3), h = _a[0], s = _a[1], b = _a[2];\n this.H = (isNaN(h) ? 0 : h) / 360;\n this.A = color.a;\n var spectrumHueRect = this.spectrumHueRect || this.refreshHueRect();\n var spectrumAlphaRect = this.spectrumAlphaRect || this.refreshAlphaRect();\n this.spectrumHueSlider.style.left = ((this.H - 1) * -spectrumHueRect.width) + \"px\";\n this.spectrumAlphaSlider.style.left = (this.A * spectrumAlphaRect.width) + \"px\";\n this.setSpectrumValue(s, b);\n };\n AgColorPanel.prototype.onRecentColorClick = function (e) {\n var target = e.target;\n if (!exists(target.id)) {\n return;\n }\n var id = parseInt(target.id, 10);\n this.setValue(AgColorPanel.recentColors[id]);\n this.destroy();\n };\n AgColorPanel.prototype.addRecentColor = function () {\n var color = Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var rgbaColor = color.toRgbaString();\n var recentColors = AgColorPanel.recentColors;\n if (!this.colorChanged || recentColors[0] === rgbaColor) {\n return;\n }\n // remove duplicate color\n recentColors = recentColors.filter(function (currentColor) { return currentColor != rgbaColor; });\n // add color to head\n recentColors = [rgbaColor].concat(recentColors);\n // ensure we don't exceed max number of recent colors\n if (recentColors.length > AgColorPanel.maxRecentColors) {\n recentColors = recentColors.slice(0, AgColorPanel.maxRecentColors);\n }\n AgColorPanel.recentColors = recentColors;\n };\n AgColorPanel.prototype.destroy = function () {\n this.addRecentColor();\n _super.prototype.destroy.call(this);\n };\n AgColorPanel.maxRecentColors = 8;\n AgColorPanel.recentColors = [];\n AgColorPanel.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$1D([\n RefSelector('spectrumColor')\n ], AgColorPanel.prototype, \"spectrumColor\", void 0);\n __decorate$1D([\n RefSelector('spectrumVal')\n ], AgColorPanel.prototype, \"spectrumVal\", void 0);\n __decorate$1D([\n RefSelector('spectrumDragger')\n ], AgColorPanel.prototype, \"spectrumDragger\", void 0);\n __decorate$1D([\n RefSelector('spectrumHue')\n ], AgColorPanel.prototype, \"spectrumHue\", void 0);\n __decorate$1D([\n RefSelector('spectrumHueSlider')\n ], AgColorPanel.prototype, \"spectrumHueSlider\", void 0);\n __decorate$1D([\n RefSelector('spectrumAlpha')\n ], AgColorPanel.prototype, \"spectrumAlpha\", void 0);\n __decorate$1D([\n RefSelector('spectrumAlphaSlider')\n ], AgColorPanel.prototype, \"spectrumAlphaSlider\", void 0);\n __decorate$1D([\n RefSelector('recentColors')\n ], AgColorPanel.prototype, \"recentColors\", void 0);\n __decorate$1D([\n PostConstruct\n ], AgColorPanel.prototype, \"postConstruct\", null);\n return AgColorPanel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgPanel = /** @class */ (function (_super) {\n __extends$1Y(AgPanel, _super);\n function AgPanel(config) {\n var _this = _super.call(this, AgPanel.getTemplate(config)) || this;\n _this.closable = true;\n _this.config = config;\n return _this;\n }\n AgPanel.getTemplate = function (config) {\n var cssIdentifier = (config && config.cssIdentifier) || 'default';\n return /* html */ \"
\\n
\\n \\n
\\n
\\n
\\n
\";\n };\n AgPanel.prototype.postConstruct = function () {\n var _this = this;\n var _a = this.config, component = _a.component, closable = _a.closable, hideTitleBar = _a.hideTitleBar, title = _a.title, _b = _a.minWidth, minWidth = _b === void 0 ? 250 : _b, width = _a.width, _c = _a.minHeight, minHeight = _c === void 0 ? 250 : _c, height = _a.height, centered = _a.centered, popup = _a.popup, x = _a.x, y = _a.y;\n this.positionableFeature = new PositionableFeature(this.getGui(), {\n minWidth: minWidth, width: width, minHeight: minHeight, height: height, centered: centered, x: x, y: y, popup: popup,\n calculateTopBuffer: function () { return _this.positionableFeature.getHeight() - _this.getBodyHeight(); }\n });\n this.createManagedBean(this.positionableFeature);\n var eGui = this.getGui();\n if (component) {\n this.setBodyComponent(component);\n }\n if (!hideTitleBar) {\n if (title) {\n this.setTitle(title);\n }\n this.setClosable(closable != null ? closable : this.closable);\n }\n else {\n this.eTitleBar.classList.add('ag-hidden');\n }\n this.addManagedListener(this.eTitleBar, 'mousedown', function (e) {\n var eDocument = _this.gridOptionsWrapper.getDocument();\n if (eGui.contains(e.relatedTarget) ||\n eGui.contains(eDocument.activeElement) ||\n _this.eTitleBarButtons.contains(e.target)) {\n e.preventDefault();\n return;\n }\n var focusEl = _this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');\n if (focusEl) {\n focusEl.focus();\n }\n });\n if (popup && this.positionableFeature.isPositioned()) {\n return;\n }\n if (this.renderComponent) {\n this.renderComponent();\n }\n this.positionableFeature.initialisePosition();\n this.eContentWrapper.style.height = '0';\n };\n AgPanel.prototype.renderComponent = function () {\n var _this = this;\n var eGui = this.getGui();\n eGui.focus();\n this.close = function () {\n eGui.parentElement.removeChild(eGui);\n _this.destroy();\n };\n };\n AgPanel.prototype.getHeight = function () {\n return this.positionableFeature.getHeight();\n };\n AgPanel.prototype.setHeight = function (height) {\n this.positionableFeature.setHeight(height);\n };\n AgPanel.prototype.getWidth = function () {\n return this.positionableFeature.getWidth();\n };\n AgPanel.prototype.setWidth = function (width) {\n this.positionableFeature.setWidth(width);\n };\n AgPanel.prototype.setClosable = function (closable) {\n if (closable !== this.closable) {\n this.closable = closable;\n }\n if (closable) {\n var closeButtonComp = this.closeButtonComp = new Component(AgPanel.CLOSE_BTN_TEMPLATE);\n this.getContext().createBean(closeButtonComp);\n var eGui = closeButtonComp.getGui();\n var child = createIconNoSpan('close', this.gridOptionsWrapper);\n child.classList.add('ag-panel-title-bar-button-icon');\n eGui.appendChild(child);\n this.addTitleBarButton(closeButtonComp);\n closeButtonComp.addManagedListener(eGui, 'click', this.onBtClose.bind(this));\n }\n else if (this.closeButtonComp) {\n var eGui = this.closeButtonComp.getGui();\n eGui.parentElement.removeChild(eGui);\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n };\n AgPanel.prototype.setBodyComponent = function (bodyComponent) {\n bodyComponent.setParentComponent(this);\n this.eContentWrapper.appendChild(bodyComponent.getGui());\n };\n AgPanel.prototype.addTitleBarButton = function (button, position) {\n var eTitleBarButtons = this.eTitleBarButtons;\n var buttons = eTitleBarButtons.children;\n var len = buttons.length;\n if (position == null) {\n position = len;\n }\n position = Math.max(0, Math.min(position, len));\n button.addCssClass('ag-panel-title-bar-button');\n var eGui = button.getGui();\n if (position === 0) {\n eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);\n }\n else if (position === len) {\n eTitleBarButtons.insertAdjacentElement('beforeend', eGui);\n }\n else {\n buttons[position - 1].insertAdjacentElement('afterend', eGui);\n }\n button.setParentComponent(this);\n };\n AgPanel.prototype.getBodyHeight = function () {\n return getInnerHeight(this.eContentWrapper);\n };\n AgPanel.prototype.getBodyWidth = function () {\n return getInnerWidth(this.eContentWrapper);\n };\n AgPanel.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n };\n // called when user hits the 'x' in the top right\n AgPanel.prototype.onBtClose = function () {\n this.close();\n };\n AgPanel.prototype.destroy = function () {\n if (this.closeButtonComp) {\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n var eGui = this.getGui();\n if (eGui && eGui.offsetParent) {\n this.close();\n }\n _super.prototype.destroy.call(this);\n };\n AgPanel.CLOSE_BTN_TEMPLATE = \"
\";\n __decorate$1E([\n RefSelector('eContentWrapper')\n ], AgPanel.prototype, \"eContentWrapper\", void 0);\n __decorate$1E([\n RefSelector('eTitleBar')\n ], AgPanel.prototype, \"eTitleBar\", void 0);\n __decorate$1E([\n RefSelector('eTitleBarButtons')\n ], AgPanel.prototype, \"eTitleBarButtons\", void 0);\n __decorate$1E([\n RefSelector('eTitle')\n ], AgPanel.prototype, \"eTitle\", void 0);\n __decorate$1E([\n PostConstruct\n ], AgPanel.prototype, \"postConstruct\", null);\n return AgPanel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$e = (undefined && undefined.__assign) || function () {\n __assign$e = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$e.apply(this, arguments);\n};\nvar __decorate$1F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgDialog = /** @class */ (function (_super) {\n __extends$1Z(AgDialog, _super);\n function AgDialog(config) {\n var _this = _super.call(this, __assign$e(__assign$e({}, config), { popup: true })) || this;\n _this.isMaximizable = false;\n _this.isMaximized = false;\n _this.maximizeListeners = [];\n _this.resizeListenerDestroy = null;\n _this.lastPosition = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n return _this;\n }\n AgDialog.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var _a = this.config, movable = _a.movable, resizable = _a.resizable, maximizable = _a.maximizable;\n this.addCssClass('ag-dialog');\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(eGui, 'focusin', function (e) {\n if (eGui.contains(e.relatedTarget)) {\n return;\n }\n _this.popupService.bringPopupToFront(eGui);\n });\n if (movable) {\n this.setMovable(movable);\n }\n if (maximizable) {\n this.setMaximizable(maximizable);\n }\n if (resizable) {\n this.setResizable(resizable);\n }\n };\n AgDialog.prototype.renderComponent = function () {\n var eGui = this.getGui();\n var _a = this.config, alwaysOnTop = _a.alwaysOnTop, modal = _a.modal, title = _a.title;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: modal,\n eChild: eGui,\n closeOnEsc: true,\n closedCallback: this.destroy.bind(this),\n alwaysOnTop: alwaysOnTop,\n ariaLabel: title || translate('ariaLabelDialog', 'Dialog')\n });\n if (addPopupRes) {\n this.close = addPopupRes.hideFunc;\n }\n };\n AgDialog.prototype.toggleMaximize = function () {\n var position = this.positionableFeature.getPosition();\n if (this.isMaximized) {\n var _a = this.lastPosition, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n this.setWidth(width);\n this.setHeight(height);\n this.positionableFeature.offsetElement(x, y);\n }\n else {\n this.lastPosition.width = this.getWidth();\n this.lastPosition.height = this.getHeight();\n this.lastPosition.x = position.x;\n this.lastPosition.y = position.y;\n this.positionableFeature.offsetElement(0, 0);\n this.setHeight('100%');\n this.setWidth('100%');\n }\n this.isMaximized = !this.isMaximized;\n this.refreshMaximizeIcon();\n };\n AgDialog.prototype.refreshMaximizeIcon = function () {\n setDisplayed(this.maximizeIcon, !this.isMaximized);\n setDisplayed(this.minimizeIcon, this.isMaximized);\n };\n AgDialog.prototype.clearMaximizebleListeners = function () {\n if (this.maximizeListeners.length) {\n this.maximizeListeners.forEach(function (destroyListener) { return destroyListener(); });\n this.maximizeListeners.length = 0;\n }\n if (this.resizeListenerDestroy) {\n this.resizeListenerDestroy();\n this.resizeListenerDestroy = null;\n }\n };\n AgDialog.prototype.destroy = function () {\n this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);\n this.clearMaximizebleListeners();\n _super.prototype.destroy.call(this);\n };\n AgDialog.prototype.setResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable);\n };\n AgDialog.prototype.setMovable = function (movable) {\n this.positionableFeature.setMovable(movable, this.eTitleBar);\n };\n AgDialog.prototype.setMaximizable = function (maximizable) {\n var _this = this;\n if (!maximizable) {\n this.clearMaximizebleListeners();\n if (this.maximizeButtonComp) {\n this.destroyBean(this.maximizeButtonComp);\n this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;\n }\n return;\n }\n var eTitleBar = this.eTitleBar;\n if (!eTitleBar || maximizable === this.isMaximizable) {\n return;\n }\n var maximizeButtonComp = this.maximizeButtonComp =\n this.createBean(new Component(/* html */ \"
\"));\n var eGui = maximizeButtonComp.getGui();\n eGui.appendChild(this.maximizeIcon = createIconNoSpan('maximize', this.gridOptionsWrapper));\n this.maximizeIcon.classList.add('ag-panel-title-bar-button-icon');\n eGui.appendChild(this.minimizeIcon = createIconNoSpan('minimize', this.gridOptionsWrapper));\n this.minimizeIcon.classList.add('ag-panel-title-bar-button-icon', 'ag-hidden');\n maximizeButtonComp.addManagedListener(eGui, 'click', this.toggleMaximize.bind(this));\n this.addTitleBarButton(maximizeButtonComp, 0);\n this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));\n this.resizeListenerDestroy = this.addManagedListener(this, 'resize', function () {\n _this.isMaximized = false;\n _this.refreshMaximizeIcon();\n });\n };\n __decorate$1F([\n Autowired('popupService')\n ], AgDialog.prototype, \"popupService\", void 0);\n return AgDialog;\n}(AgPanel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgColorPicker = /** @class */ (function (_super) {\n __extends$1_(AgColorPicker, _super);\n function AgColorPicker(config) {\n var _this = _super.call(this, config, 'ag-color-picker', 'colorPicker') || this;\n if (config && config.color) {\n _this.value = config.color;\n }\n return _this;\n }\n AgColorPicker.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.value) {\n this.setValue(this.value);\n }\n };\n AgColorPicker.prototype.showPicker = function () {\n var _this = this;\n var eGuiRect = this.getGui().getBoundingClientRect();\n var colorDialog = this.createBean(new AgDialog({\n closable: false,\n modal: true,\n hideTitleBar: true,\n minWidth: 190,\n width: 190,\n height: 250,\n x: eGuiRect.right - 190,\n y: eGuiRect.top - 250\n }));\n this.isPickerDisplayed = true;\n colorDialog.addCssClass('ag-color-dialog');\n setAriaExpanded(this.eWrapper, true);\n var colorPanel = this.createBean(new AgColorPanel({ picker: this }));\n colorPanel.addDestroyFunc(function () {\n if (colorDialog.isAlive()) {\n _this.destroyBean(colorDialog);\n }\n });\n colorDialog.setParentComponent(this);\n colorDialog.setBodyComponent(colorPanel);\n colorPanel.setValue(this.getValue());\n colorDialog.addDestroyFunc(function () {\n // here we check if the picker was already being\n // destroyed to avoid a stack overflow\n if (!_this.isDestroyingPicker) {\n _this.isDestroyingPicker = true;\n if (colorPanel.isAlive()) {\n _this.destroyBean(colorPanel);\n }\n }\n else {\n _this.isDestroyingPicker = false;\n }\n if (_this.isAlive()) {\n setAriaExpanded(_this.eWrapper, false);\n _this.getFocusableElement().focus();\n }\n _this.isPickerDisplayed = false;\n });\n return colorDialog;\n };\n AgColorPicker.prototype.setValue = function (color) {\n if (this.value === color) {\n return this;\n }\n this.eDisplayField.style.backgroundColor = color;\n return _super.prototype.setValue.call(this, color);\n };\n AgColorPicker.prototype.getValue = function () {\n return this.value;\n };\n return AgColorPicker;\n}(AgPickerField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgGroupComponent = /** @class */ (function (_super) {\n __extends$1$(AgGroupComponent, _super);\n function AgGroupComponent(params) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, AgGroupComponent.getTemplate(params)) || this;\n _this.suppressEnabledCheckbox = true;\n _this.suppressOpenCloseIcons = false;\n var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;\n _this.title = title;\n _this.cssIdentifier = params.cssIdentifier || 'default';\n _this.enabled = enabled != null ? enabled : true;\n _this.items = items || [];\n _this.alignItems = params.alignItems || 'center';\n if (suppressEnabledCheckbox != null) {\n _this.suppressEnabledCheckbox = suppressEnabledCheckbox;\n }\n if (suppressOpenCloseIcons != null) {\n _this.suppressOpenCloseIcons = suppressOpenCloseIcons;\n }\n return _this;\n }\n AgGroupComponent.getTemplate = function (params) {\n var cssIdentifier = params.cssIdentifier || 'default';\n var direction = params.direction || 'vertical';\n return /* html */ \"
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\";\n };\n AgGroupComponent.prototype.postConstruct = function () {\n if (this.items.length) {\n var initialItems = this.items;\n this.items = [];\n this.addItems(initialItems);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));\n if (this.title) {\n this.setTitle(this.title);\n }\n if (this.enabled) {\n this.setEnabled(this.enabled);\n }\n this.setAlignItems(this.alignItems);\n this.hideEnabledCheckbox(this.suppressEnabledCheckbox);\n this.hideOpenCloseIcons(this.suppressOpenCloseIcons);\n this.setupExpandContract();\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n };\n AgGroupComponent.prototype.setupExpandContract = function () {\n var _this = this;\n this.eGroupClosedIcon.appendChild(createIcon('columnSelectClosed', this.gridOptionsWrapper, null));\n this.eGroupOpenedIcon.appendChild(createIcon('columnSelectOpen', this.gridOptionsWrapper, null));\n this.addManagedListener(this.eTitleBar, 'click', function () { return _this.toggleGroupExpand(); });\n this.addManagedListener(this.eTitleBar, 'keydown', function (e) {\n switch (e.key) {\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n e.preventDefault();\n _this.toggleGroupExpand();\n break;\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n e.preventDefault();\n _this.toggleGroupExpand(e.key === KeyCode.RIGHT);\n break;\n }\n });\n };\n AgGroupComponent.prototype.refreshAriaStatus = function () {\n if (!this.suppressOpenCloseIcons) {\n setAriaExpanded(this.eTitleBar, this.expanded);\n }\n };\n AgGroupComponent.prototype.refreshChildDisplay = function () {\n var showIcon = !this.suppressOpenCloseIcons;\n setDisplayed(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);\n setDisplayed(this.eGroupOpenedIcon, showIcon && this.expanded);\n setDisplayed(this.eGroupClosedIcon, showIcon && !this.expanded);\n };\n AgGroupComponent.prototype.isExpanded = function () {\n return this.expanded;\n };\n AgGroupComponent.prototype.setAlignItems = function (alignment) {\n if (this.alignItems !== alignment) {\n this.removeCssClass(\"ag-group-item-alignment-\" + this.alignItems);\n }\n this.alignItems = alignment;\n var newCls = \"ag-group-item-alignment-\" + this.alignItems;\n this.addCssClass(newCls);\n return this;\n };\n AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {\n if (this.suppressOpenCloseIcons) {\n this.expanded = true;\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, true);\n return this;\n }\n expanded = expanded != null ? expanded : !this.expanded;\n if (this.expanded === expanded) {\n return this;\n }\n this.expanded = expanded;\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, expanded);\n this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });\n return this;\n };\n AgGroupComponent.prototype.addItems = function (items) {\n var _this = this;\n items.forEach(function (item) { return _this.addItem(item); });\n };\n AgGroupComponent.prototype.addItem = function (item) {\n var container = this.eContainer;\n var el = item instanceof Component ? item.getGui() : item;\n el.classList.add('ag-group-item', \"ag-\" + this.cssIdentifier + \"-group-item\");\n container.appendChild(el);\n this.items.push(el);\n };\n AgGroupComponent.prototype.hideItem = function (hide, index) {\n var itemToHide = this.items[index];\n itemToHide.classList.toggle('ag-hidden', hide);\n };\n AgGroupComponent.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n return this;\n };\n AgGroupComponent.prototype.addCssClassToTitleBar = function (cssClass) {\n this.eTitleBar.classList.add(cssClass);\n };\n AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {\n this.enabled = enabled;\n this.refreshDisabledStyles();\n this.toggleGroupExpand(enabled);\n if (!skipToggle) {\n this.cbGroupEnabled.setValue(enabled);\n }\n return this;\n };\n AgGroupComponent.prototype.isEnabled = function () {\n return this.enabled;\n };\n AgGroupComponent.prototype.onEnableChange = function (callbackFn) {\n var _this = this;\n this.cbGroupEnabled.onValueChange(function (newSelection) {\n _this.setEnabled(newSelection, true);\n callbackFn(newSelection);\n });\n return this;\n };\n AgGroupComponent.prototype.hideEnabledCheckbox = function (hide) {\n this.suppressEnabledCheckbox = hide;\n this.refreshChildDisplay();\n this.refreshDisabledStyles();\n return this;\n };\n AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {\n this.suppressOpenCloseIcons = hide;\n if (hide) {\n this.toggleGroupExpand(true);\n }\n return this;\n };\n AgGroupComponent.prototype.refreshDisabledStyles = function () {\n this.addOrRemoveCssClass('ag-disabled', !this.enabled);\n if (this.suppressEnabledCheckbox && !this.enabled) {\n this.eTitleBar.classList.add('ag-disabled-group-title-bar');\n this.eTitleBar.removeAttribute('tabindex');\n }\n else {\n this.eTitleBar.classList.remove('ag-disabled-group-title-bar');\n this.eTitleBar.setAttribute('tabindex', '0');\n }\n this.eContainer.classList.toggle('ag-disabled-group-container', !this.enabled);\n };\n AgGroupComponent.EVENT_EXPANDED = 'expanded';\n AgGroupComponent.EVENT_COLLAPSED = 'collapsed';\n __decorate$1G([\n RefSelector('eTitleBar')\n ], AgGroupComponent.prototype, \"eTitleBar\", void 0);\n __decorate$1G([\n RefSelector('eGroupOpenedIcon')\n ], AgGroupComponent.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$1G([\n RefSelector('eGroupClosedIcon')\n ], AgGroupComponent.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$1G([\n RefSelector('eToolbar')\n ], AgGroupComponent.prototype, \"eToolbar\", void 0);\n __decorate$1G([\n RefSelector('cbGroupEnabled')\n ], AgGroupComponent.prototype, \"cbGroupEnabled\", void 0);\n __decorate$1G([\n RefSelector('eTitle')\n ], AgGroupComponent.prototype, \"eTitle\", void 0);\n __decorate$1G([\n RefSelector('eContainer')\n ], AgGroupComponent.prototype, \"eContainer\", void 0);\n __decorate$1G([\n PostConstruct\n ], AgGroupComponent.prototype, \"postConstruct\", null);\n return AgGroupComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$20 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabGuardCtrl = /** @class */ (function (_super) {\n __extends$20(TabGuardCtrl, _super);\n function TabGuardCtrl(params) {\n var _this = _super.call(this) || this;\n _this.skipTabGuardFocus = false;\n var comp = params.comp, eTopGuard = params.eTopGuard, eBottomGuard = params.eBottomGuard, focusInnerElement = params.focusInnerElement, onFocusIn = params.onFocusIn, onFocusOut = params.onFocusOut, shouldStopEventPropagation = params.shouldStopEventPropagation, onTabKeyDown = params.onTabKeyDown, handleKeyDown = params.handleKeyDown, eFocusableElement = params.eFocusableElement;\n _this.comp = comp;\n _this.eTopGuard = eTopGuard;\n _this.eBottomGuard = eBottomGuard;\n _this.providedFocusInnerElement = focusInnerElement;\n _this.eFocusableElement = eFocusableElement;\n _this.providedFocusIn = onFocusIn;\n _this.providedFocusOut = onFocusOut;\n _this.providedShouldStopEventPropagation = shouldStopEventPropagation;\n _this.providedOnTabKeyDown = onTabKeyDown;\n _this.providedHandleKeyDown = handleKeyDown;\n return _this;\n }\n TabGuardCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.createManagedBean(new ManagedFocusFeature(this.eFocusableElement, {\n shouldStopEventPropagation: function () { return _this.shouldStopEventPropagation(); },\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); },\n onFocusIn: function (e) { return _this.onFocusIn(e); },\n onFocusOut: function (e) { return _this.onFocusOut(e); }\n }));\n this.activateTabGuards();\n [this.eTopGuard, this.eBottomGuard].forEach(function (guard) { return _this.addManagedListener(guard, 'focus', _this.onFocus.bind(_this)); });\n };\n TabGuardCtrl.prototype.handleKeyDown = function (e) {\n if (this.providedHandleKeyDown) {\n this.providedHandleKeyDown(e);\n }\n };\n TabGuardCtrl.prototype.tabGuardsAreActive = function () {\n return !!this.eTopGuard && this.eTopGuard.hasAttribute('tabIndex');\n };\n TabGuardCtrl.prototype.shouldStopEventPropagation = function () {\n if (this.providedShouldStopEventPropagation) {\n return this.providedShouldStopEventPropagation();\n }\n return false;\n };\n TabGuardCtrl.prototype.activateTabGuards = function () {\n this.comp.setTabIndex(this.getGridTabIndex());\n };\n TabGuardCtrl.prototype.deactivateTabGuards = function () {\n this.comp.setTabIndex();\n };\n TabGuardCtrl.prototype.onFocus = function (e) {\n if (this.skipTabGuardFocus) {\n this.skipTabGuardFocus = false;\n return;\n }\n var fromBottom = e.target === this.eBottomGuard;\n if (this.providedFocusInnerElement) {\n this.providedFocusInnerElement(fromBottom);\n }\n else {\n this.focusInnerElement(fromBottom);\n }\n };\n TabGuardCtrl.prototype.onFocusIn = function (e) {\n if (this.providedFocusIn && this.providedFocusIn(e)) {\n return;\n }\n this.deactivateTabGuards();\n };\n TabGuardCtrl.prototype.onFocusOut = function (e) {\n if (this.providedFocusOut && this.providedFocusOut(e)) {\n return;\n }\n if (!this.eFocusableElement.contains(e.relatedTarget)) {\n this.activateTabGuards();\n }\n };\n TabGuardCtrl.prototype.onTabKeyDown = function (e) {\n var _this = this;\n if (this.providedOnTabKeyDown) {\n this.providedOnTabKeyDown(e);\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n var tabGuardsAreActive = this.tabGuardsAreActive();\n if (tabGuardsAreActive) {\n this.deactivateTabGuards();\n }\n var nextRoot = this.getNextFocusableElement(e.shiftKey);\n if (tabGuardsAreActive) {\n // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser\n // tabbing to the tab guard from inside the component\n setTimeout(function () { return _this.activateTabGuards(); }, 0);\n }\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n };\n TabGuardCtrl.prototype.getGridTabIndex = function () {\n return this.gridOptionsWrapper.getGridTabIndex();\n };\n TabGuardCtrl.prototype.focusInnerElement = function (fromBottom) {\n if (fromBottom === void 0) { fromBottom = false; }\n var focusable = this.focusService.findFocusableElements(this.eFocusableElement);\n if (this.tabGuardsAreActive()) {\n // remove tab guards from this component from list of focusable elements\n focusable.splice(0, 1);\n focusable.splice(focusable.length - 1, 1);\n }\n if (!focusable.length) {\n return;\n }\n focusable[fromBottom ? focusable.length - 1 : 0].focus();\n };\n TabGuardCtrl.prototype.getNextFocusableElement = function (backwards) {\n return this.focusService.findNextFocusableElement(this.eFocusableElement, false, backwards);\n };\n TabGuardCtrl.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n var tabGuardToFocus = up ? this.eTopGuard : this.eBottomGuard;\n this.activateTabGuards();\n this.skipTabGuardFocus = true;\n tabGuardToFocus.focus();\n };\n __decorate$1H([\n Autowired('focusService')\n ], TabGuardCtrl.prototype, \"focusService\", void 0);\n __decorate$1H([\n PostConstruct\n ], TabGuardCtrl.prototype, \"postConstruct\", null);\n return TabGuardCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$21 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$f = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$b = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$f(arguments[i]));\n return ar;\n};\nvar TabGuardComp = /** @class */ (function (_super) {\n __extends$21(TabGuardComp, _super);\n function TabGuardComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TabGuardComp.prototype.initialiseTabGuard = function (params) {\n this.eTopGuard = this.createTabGuard('top');\n this.eBottomGuard = this.createTabGuard('bottom');\n this.eFocusableElement = this.getFocusableElement();\n var tabGuards = [this.eTopGuard, this.eBottomGuard];\n var compProxy = {\n setTabIndex: function (tabIndex) {\n tabGuards.forEach(function (tabGuard) { return tabIndex != null ? tabGuard.setAttribute('tabIndex', tabIndex) : tabGuard.removeAttribute('tabIndex'); });\n }\n };\n this.addTabGuards(this.eTopGuard, this.eBottomGuard);\n this.tabGuardCtrl = this.createManagedBean(new TabGuardCtrl({\n comp: compProxy,\n eTopGuard: this.eTopGuard,\n eBottomGuard: this.eBottomGuard,\n eFocusableElement: this.eFocusableElement,\n onFocusIn: params.onFocusIn,\n onFocusOut: params.onFocusOut,\n focusInnerElement: params.focusInnerElement,\n handleKeyDown: params.handleKeyDown,\n onTabKeyDown: params.onTabKeyDown,\n shouldStopEventPropagation: params.shouldStopEventPropagation\n }));\n };\n TabGuardComp.prototype.createTabGuard = function (side) {\n var tabGuard = document.createElement('div');\n tabGuard.classList.add('ag-tab-guard', \"ag-tab-guard-\" + side);\n setAriaRole(tabGuard, 'presentation');\n return tabGuard;\n };\n TabGuardComp.prototype.addTabGuards = function (topTabGuard, bottomTabGuard) {\n this.eFocusableElement.insertAdjacentElement('afterbegin', topTabGuard);\n this.eFocusableElement.insertAdjacentElement('beforeend', bottomTabGuard);\n };\n TabGuardComp.prototype.removeAllChildrenExceptTabGuards = function () {\n var tabGuards = [this.eTopGuard, this.eBottomGuard];\n clearElement(this.getFocusableElement());\n this.addTabGuards.apply(this, __spread$b(tabGuards));\n };\n TabGuardComp.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n this.tabGuardCtrl.forceFocusOutOfContainer(up);\n };\n TabGuardComp.prototype.appendChild = function (newChild, container) {\n if (!isNodeOrElement(newChild)) {\n newChild = newChild.getGui();\n }\n var bottomTabGuard = this.eBottomGuard;\n if (bottomTabGuard) {\n bottomTabGuard.insertAdjacentElement('beforebegin', newChild);\n }\n else {\n _super.prototype.appendChild.call(this, newChild, container);\n }\n };\n return TabGuardComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$22 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$f = (undefined && undefined.__assign) || function () {\n __assign$f = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$f.apply(this, arguments);\n};\nvar __decorate$1I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuList = /** @class */ (function (_super) {\n __extends$22(AgMenuList, _super);\n function AgMenuList(level) {\n if (level === void 0) { level = 1; }\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.level = level;\n _this.menuItems = [];\n return _this;\n }\n AgMenuList.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n };\n AgMenuList.prototype.onTabKeyDown = function (e) {\n var parent = this.getParentComponent();\n var parentGui = parent && parent.getGui();\n var isManaged = parentGui && parentGui.classList.contains('ag-focus-managed');\n if (!isManaged) {\n e.preventDefault();\n }\n if (e.shiftKey) {\n this.closeIfIsChild(e);\n }\n };\n AgMenuList.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n e.preventDefault();\n this.handleNavKey(e.key);\n break;\n case KeyCode.ESCAPE:\n var topMenu = this.findTopMenu();\n if (topMenu) {\n this.focusService.focusInto(topMenu.getGui());\n }\n break;\n }\n };\n AgMenuList.prototype.clearActiveItem = function () {\n if (this.activeMenuItem) {\n this.activeMenuItem.deactivate();\n this.activeMenuItem = null;\n }\n };\n AgMenuList.prototype.addMenuItems = function (menuItems) {\n var _this = this;\n if (menuItems == null) {\n return;\n }\n menuItems.forEach(function (menuItemOrString) {\n if (menuItemOrString === 'separator') {\n _this.addSeparator();\n }\n else if (typeof menuItemOrString === 'string') {\n console.warn(\"AG Grid: unrecognised menu item \" + menuItemOrString);\n }\n else {\n _this.addItem(menuItemOrString);\n }\n });\n };\n AgMenuList.prototype.addItem = function (menuItemDef) {\n var _this = this;\n var menuItem = this.createManagedBean(new AgMenuItemComponent(__assign$f(__assign$f({}, menuItemDef), { isAnotherSubMenuOpen: function () { return _this.menuItems.some(function (m) { return m.isSubMenuOpen(); }); } })));\n menuItem.setParentComponent(this);\n setAriaLevel(menuItem.getGui(), this.level);\n this.menuItems.push(menuItem);\n this.appendChild(menuItem.getGui());\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (event) {\n _this.dispatchEvent(event);\n });\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED, function (event) {\n if (_this.activeMenuItem && _this.activeMenuItem !== event.menuItem) {\n _this.activeMenuItem.deactivate();\n }\n _this.activeMenuItem = event.menuItem;\n });\n };\n AgMenuList.prototype.activateFirstItem = function () {\n var item = this.menuItems.filter(function (currentItem) { return !currentItem.isDisabled(); })[0];\n if (!item) {\n return;\n }\n item.activate();\n };\n AgMenuList.prototype.addSeparator = function () {\n var separatorHtml = /* html */ \"\\n
\\n
\\n
\\n
\\n
\\n
\";\n this.appendChild(loadTemplate(separatorHtml));\n };\n AgMenuList.prototype.findTopMenu = function () {\n var parent = this.getParentComponent();\n if (!parent && this instanceof AgMenuList) {\n return this;\n }\n while (true) {\n var nextParent = parent && parent.getParentComponent && parent.getParentComponent();\n if (!nextParent || (!(nextParent instanceof AgMenuList || nextParent instanceof AgMenuItemComponent))) {\n break;\n }\n parent = nextParent;\n }\n return parent instanceof AgMenuList ? parent : undefined;\n };\n AgMenuList.prototype.handleNavKey = function (key) {\n switch (key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n var nextItem = this.findNextItem(key === KeyCode.UP);\n if (nextItem && nextItem !== this.activeMenuItem) {\n nextItem.activate();\n }\n return;\n }\n var left = this.gridOptionsWrapper.isEnableRtl() ? KeyCode.RIGHT : KeyCode.LEFT;\n if (key === left) {\n this.closeIfIsChild();\n }\n else {\n this.openChild();\n }\n };\n AgMenuList.prototype.closeIfIsChild = function (e) {\n var parentItem = this.getParentComponent();\n if (parentItem && parentItem instanceof AgMenuItemComponent) {\n if (e) {\n e.preventDefault();\n }\n parentItem.closeSubMenu();\n parentItem.getGui().focus();\n }\n };\n AgMenuList.prototype.openChild = function () {\n if (this.activeMenuItem) {\n this.activeMenuItem.openSubMenu(true);\n }\n };\n AgMenuList.prototype.findNextItem = function (up) {\n var items = this.menuItems.filter(function (item) { return !item.isDisabled(); });\n if (!items.length) {\n return;\n }\n if (!this.activeMenuItem) {\n return up ? last(items) : items[0];\n }\n if (up) {\n items.reverse();\n }\n var nextItem;\n var foundCurrent = false;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (!foundCurrent) {\n if (item === this.activeMenuItem) {\n foundCurrent = true;\n }\n continue;\n }\n nextItem = item;\n break;\n }\n return nextItem || this.activeMenuItem;\n };\n AgMenuList.prototype.destroy = function () {\n this.clearActiveItem();\n _super.prototype.destroy.call(this);\n };\n __decorate$1I([\n Autowired('focusService')\n ], AgMenuList.prototype, \"focusService\", void 0);\n __decorate$1I([\n PostConstruct\n ], AgMenuList.prototype, \"postConstruct\", null);\n return AgMenuList;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$23 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuPanel = /** @class */ (function (_super) {\n __extends$23(AgMenuPanel, _super);\n function AgMenuPanel(wrappedComponent) {\n var _this = _super.call(this) || this;\n _this.wrappedComponent = wrappedComponent;\n _this.setTemplateFromElement(wrappedComponent.getGui());\n return _this;\n }\n AgMenuPanel.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n };\n AgMenuPanel.prototype.handleKeyDown = function (e) {\n if (e.key === KeyCode.ESCAPE) {\n this.closePanel();\n }\n };\n AgMenuPanel.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n this.closePanel();\n e.preventDefault();\n };\n AgMenuPanel.prototype.closePanel = function () {\n var menuItem = this.parentComponent;\n menuItem.closeSubMenu();\n setTimeout(function () { return menuItem.getGui().focus(); }, 0);\n };\n __decorate$1J([\n PostConstruct\n ], AgMenuPanel.prototype, \"postConstruct\", null);\n return AgMenuPanel;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$24 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuItemComponent = /** @class */ (function (_super) {\n __extends$24(AgMenuItemComponent, _super);\n function AgMenuItemComponent(params) {\n var _this = _super.call(this) || this;\n _this.params = params;\n _this.isActive = false;\n _this.subMenuIsOpen = false;\n _this.setTemplate(/* html */ \"
\");\n return _this;\n }\n AgMenuItemComponent.prototype.init = function () {\n var _this = this;\n this.addIcon();\n this.addName();\n this.addShortcut();\n this.addSubMenu();\n this.addTooltip();\n var eGui = this.getGui();\n if (this.params.disabled) {\n this.addCssClass(this.getClassName('disabled'));\n setAriaDisabled(eGui, true);\n }\n else {\n this.addGuiEventListener('click', function (e) { return _this.onItemSelected(e); });\n this.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n _this.onItemSelected(e);\n }\n });\n this.addGuiEventListener('mousedown', function (e) {\n // Prevent event bubbling to other event handlers such as PopupService triggering\n // premature closing of any open sub-menu popup.\n e.stopPropagation();\n e.preventDefault();\n });\n this.addGuiEventListener('mouseenter', function () { return _this.onMouseEnter(); });\n this.addGuiEventListener('mouseleave', function () { return _this.onMouseLeave(); });\n }\n if (this.params.cssClasses) {\n this.params.cssClasses.forEach(function (it) { return _this.addCssClass(it); });\n }\n };\n AgMenuItemComponent.prototype.isDisabled = function () {\n return !!this.params.disabled;\n };\n AgMenuItemComponent.prototype.openSubMenu = function (activateFirstItem) {\n var _this = this;\n if (activateFirstItem === void 0) { activateFirstItem = false; }\n this.closeSubMenu();\n if (!this.params.subMenu) {\n return;\n }\n var ePopup = loadTemplate(/* html */ \"
\");\n var destroySubMenu;\n if (this.params.subMenu instanceof Array) {\n var currentLevel = getAriaLevel(this.getGui());\n var nextLevel = isNaN(currentLevel) ? 1 : (currentLevel + 1);\n var childMenu_1 = this.createBean(new AgMenuList(nextLevel));\n childMenu_1.setParentComponent(this);\n childMenu_1.addMenuItems(this.params.subMenu);\n ePopup.appendChild(childMenu_1.getGui());\n // bubble menu item selected events\n this.addManagedListener(childMenu_1, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (e) { return _this.dispatchEvent(e); });\n childMenu_1.addGuiEventListener('mouseenter', function () { return _this.cancelDeactivate(); });\n destroySubMenu = function () { return _this.destroyBean(childMenu_1); };\n if (activateFirstItem) {\n setTimeout(function () { return childMenu_1.activateFirstItem(); }, 0);\n }\n }\n else {\n var subMenu_1 = this.params.subMenu;\n var menuPanel = this.createBean(new AgMenuPanel(subMenu_1));\n menuPanel.setParentComponent(this);\n var subMenuGui_1 = menuPanel.getGui();\n var mouseEvent_1 = 'mouseenter';\n var mouseEnterListener_1 = function () { return _this.cancelDeactivate(); };\n subMenuGui_1.addEventListener(mouseEvent_1, mouseEnterListener_1);\n destroySubMenu = function () { return subMenuGui_1.removeEventListener(mouseEvent_1, mouseEnterListener_1); };\n ePopup.appendChild(subMenuGui_1);\n if (subMenu_1.afterGuiAttached) {\n setTimeout(function () { return subMenu_1.afterGuiAttached(); }, 0);\n }\n }\n var eGui = this.getGui();\n var positionCallback = this.popupService.positionPopupForMenu.bind(this.popupService, { eventSource: eGui, ePopup: ePopup });\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: ePopup,\n positionCallback: positionCallback,\n anchorToElement: eGui,\n ariaLabel: translate('ariaLabelSubMenu', 'SubMenu')\n });\n this.subMenuIsOpen = true;\n setAriaExpanded(eGui, true);\n this.hideSubMenu = function () {\n if (addPopupRes) {\n addPopupRes.hideFunc();\n }\n _this.subMenuIsOpen = false;\n setAriaExpanded(eGui, false);\n destroySubMenu();\n };\n };\n AgMenuItemComponent.prototype.closeSubMenu = function () {\n if (!this.hideSubMenu) {\n return;\n }\n this.hideSubMenu();\n this.hideSubMenu = null;\n setAriaExpanded(this.getGui(), false);\n };\n AgMenuItemComponent.prototype.isSubMenuOpen = function () {\n return this.subMenuIsOpen;\n };\n AgMenuItemComponent.prototype.activate = function (openSubMenu) {\n var _this = this;\n this.cancelActivate();\n if (this.params.disabled) {\n return;\n }\n this.isActive = true;\n this.addCssClass(this.getClassName('active'));\n this.getGui().focus();\n if (openSubMenu && this.params.subMenu) {\n window.setTimeout(function () {\n if (_this.isAlive() && _this.isActive) {\n _this.openSubMenu();\n }\n }, 300);\n }\n this.onItemActivated();\n };\n AgMenuItemComponent.prototype.deactivate = function () {\n this.cancelDeactivate();\n this.removeCssClass(this.getClassName('active'));\n this.isActive = false;\n if (this.subMenuIsOpen) {\n this.hideSubMenu();\n }\n };\n AgMenuItemComponent.prototype.addIcon = function () {\n if (!this.params.checked && !this.params.icon && this.params.isCompact) {\n return;\n }\n var icon = loadTemplate(/* html */ \"\");\n if (this.params.checked) {\n icon.appendChild(createIconNoSpan('check', this.gridOptionsWrapper));\n }\n else if (this.params.icon) {\n if (isNodeOrElement(this.params.icon)) {\n icon.appendChild(this.params.icon);\n }\n else if (typeof this.params.icon === 'string') {\n icon.innerHTML = this.params.icon;\n }\n else {\n console.warn('AG Grid: menu item icon must be DOM node or string');\n }\n }\n this.getGui().appendChild(icon);\n };\n AgMenuItemComponent.prototype.addName = function () {\n if (!this.params.name && this.params.isCompact) {\n return;\n }\n var name = loadTemplate(/* html */ \"\" + (this.params.name || '') + \"\");\n this.getGui().appendChild(name);\n };\n AgMenuItemComponent.prototype.addTooltip = function () {\n if (!this.params.tooltip) {\n return;\n }\n this.tooltip = this.params.tooltip;\n if (this.gridOptionsWrapper.isEnableBrowserTooltips()) {\n this.getGui().setAttribute('title', this.tooltip);\n }\n else {\n this.createManagedBean(new CustomTooltipFeature(this));\n }\n };\n AgMenuItemComponent.prototype.getTooltipParams = function () {\n return {\n location: 'menu',\n value: this.tooltip\n };\n };\n AgMenuItemComponent.prototype.addShortcut = function () {\n if (!this.params.shortcut && this.params.isCompact) {\n return;\n }\n var shortcut = loadTemplate(/* html */ \"\" + (this.params.shortcut || '') + \"\");\n this.getGui().appendChild(shortcut);\n };\n AgMenuItemComponent.prototype.addSubMenu = function () {\n if (!this.params.subMenu && this.params.isCompact) {\n return;\n }\n var pointer = loadTemplate(/* html */ \"\");\n var eGui = this.getGui();\n if (this.params.subMenu) {\n var iconName = this.gridOptionsWrapper.isEnableRtl() ? 'smallLeft' : 'smallRight';\n setAriaExpanded(eGui, false);\n pointer.appendChild(createIconNoSpan(iconName, this.gridOptionsWrapper));\n }\n eGui.appendChild(pointer);\n };\n AgMenuItemComponent.prototype.onItemSelected = function (event) {\n if (this.params.action) {\n this.params.action();\n }\n else {\n this.openSubMenu(event && event.type === 'keydown');\n }\n if (this.params.subMenu && !this.params.action) {\n return;\n }\n var e = {\n type: AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED,\n action: this.params.action,\n checked: this.params.checked,\n cssClasses: this.params.cssClasses,\n disabled: this.params.disabled,\n icon: this.params.icon,\n name: this.params.name,\n shortcut: this.params.shortcut,\n subMenu: this.params.subMenu,\n tooltip: this.params.tooltip,\n event: event\n };\n this.dispatchEvent(e);\n };\n AgMenuItemComponent.prototype.onItemActivated = function () {\n var event = {\n type: AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED,\n menuItem: this,\n };\n this.dispatchEvent(event);\n };\n AgMenuItemComponent.prototype.cancelActivate = function () {\n if (this.activateTimeoutId) {\n window.clearTimeout(this.activateTimeoutId);\n this.activateTimeoutId = 0;\n }\n };\n AgMenuItemComponent.prototype.cancelDeactivate = function () {\n if (this.deactivateTimeoutId) {\n window.clearTimeout(this.deactivateTimeoutId);\n this.deactivateTimeoutId = 0;\n }\n };\n AgMenuItemComponent.prototype.onMouseEnter = function () {\n var _this = this;\n this.cancelDeactivate();\n if (this.params.isAnotherSubMenuOpen()) {\n // wait to see if the user enters the open sub-menu\n this.activateTimeoutId = window.setTimeout(function () { return _this.activate(true); }, AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // activate immediately\n this.activate(true);\n }\n };\n AgMenuItemComponent.prototype.onMouseLeave = function () {\n var _this = this;\n this.cancelActivate();\n if (this.isSubMenuOpen()) {\n // wait to see if the user enters the sub-menu\n this.deactivateTimeoutId = window.setTimeout(function () { return _this.deactivate(); }, AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // de-activate immediately\n this.deactivate();\n }\n };\n AgMenuItemComponent.prototype.getClassName = function (suffix) {\n var prefix = this.params.isCompact ? 'ag-compact-menu-option' : 'ag-menu-option';\n return suffix ? prefix + \"-\" + suffix : prefix;\n };\n AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED = 'menuItemSelected';\n AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED = 'menuItemActivated';\n AgMenuItemComponent.ACTIVATION_DELAY = 80;\n __decorate$1K([\n Autowired('popupService')\n ], AgMenuItemComponent.prototype, \"popupService\", void 0);\n __decorate$1K([\n PostConstruct\n ], AgMenuItemComponent.prototype, \"init\", null);\n return AgMenuItemComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$25 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$g = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$c = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$g(arguments[i]));\n return ar;\n};\nvar FocusService = /** @class */ (function (_super) {\n __extends$25(FocusService, _super);\n function FocusService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FocusService_1 = FocusService;\n /**\n * Adds a gridCore to the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be monitored.\n */\n FocusService.addKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusService_1.instancesMonitored.get(doc);\n if (docControllers && docControllers.length > 0) {\n if (docControllers.indexOf(controller) === -1) {\n docControllers.push(controller);\n }\n }\n else {\n FocusService_1.instancesMonitored.set(doc, [controller]);\n doc.addEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.addEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n };\n /**\n * Removes a gridCore from the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be removed.\n */\n FocusService.removeKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusService_1.instancesMonitored.get(doc);\n var newControllers = [];\n if (docControllers && docControllers.length) {\n newControllers = __spread$c(docControllers).filter(function (currentGridCore) { return currentGridCore !== controller; });\n FocusService_1.instancesMonitored.set(doc, newControllers);\n }\n if (newControllers.length === 0) {\n doc.removeEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.removeEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n };\n /**\n * This method will be called by `keydown` and `mousedown` events on all Documents monitoring\n * KeyboardMode. It will then fire a KEYBOARD_FOCUS, MOUSE_FOCUS on each gridCore present in\n * the Document allowing each gridCore to maintain a state for KeyboardMode.\n *\n * @param event {KeyboardEvent | MouseEvent | TouchEvent} - The event triggered.\n */\n FocusService.toggleKeyboardMode = function (event) {\n var isKeyboardActive = FocusService_1.keyboardModeActive;\n var isKeyboardEvent = event.type === 'keydown';\n if (isKeyboardEvent) {\n // the following keys should not toggle keyboard mode.\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n }\n if (isKeyboardActive && isKeyboardEvent || !isKeyboardActive && !isKeyboardEvent) {\n return;\n }\n FocusService_1.keyboardModeActive = isKeyboardEvent;\n var doc = event.target.ownerDocument;\n if (!doc) {\n return;\n }\n var controllersForDoc = FocusService_1.instancesMonitored.get(doc);\n if (controllersForDoc) {\n controllersForDoc.forEach(function (controller) {\n controller.dispatchEvent({ type: isKeyboardEvent ? Events.EVENT_KEYBOARD_FOCUS : Events.EVENT_MOUSE_FOCUS });\n });\n }\n };\n FocusService.prototype.init = function () {\n var _this = this;\n var clearFocusedCellListener = this.clearFocusedCell.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n var doc = _this.gridOptionsWrapper.getDocument();\n FocusService_1.addKeyboardModeEvents(doc, _this.gridCtrl);\n _this.addDestroyFunc(function () { return _this.unregisterGridCompController(_this.gridCtrl); });\n });\n };\n FocusService.prototype.unregisterGridCompController = function (gridCompController) {\n var doc = this.gridOptionsWrapper.getDocument();\n FocusService_1.removeKeyboardModeEvents(doc, gridCompController);\n };\n FocusService.prototype.onColumnEverythingChanged = function () {\n // if the columns change, check and see if this column still exists. if it does, then\n // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.\n if (!this.focusedCellPosition) {\n return;\n }\n var col = this.focusedCellPosition.column;\n var colFromColumnModel = this.columnModel.getGridColumn(col.getId());\n if (col !== colFromColumnModel) {\n this.clearFocusedCell();\n }\n };\n FocusService.prototype.isKeyboardMode = function () {\n return FocusService_1.keyboardModeActive;\n };\n // we check if the browser is focusing something, and if it is, and\n // it's the cell we think is focused, then return the cell. so this\n // methods returns the cell if a) we think it has focus and b) the\n // browser thinks it has focus. this then returns nothing if we\n // first focus a cell, then second click outside the grid, as then the\n // grid cell will still be focused as far as the grid is concerned,\n // however the browser focus will have moved somewhere else.\n FocusService.prototype.getFocusCellToUseAfterRefresh = function () {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (this.gridOptionsWrapper.isSuppressFocusAfterRefresh() || !this.focusedCellPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about. we check for ROW data, as this covers both focused Rows (for Full Width Rows)\n // and Cells (covers cells as cells live in rows)\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL)) {\n return null;\n }\n return this.focusedCellPosition;\n };\n FocusService.prototype.getFocusHeaderToUseAfterRefresh = function () {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (this.gridOptionsWrapper.isSuppressFocusAfterRefresh() || !this.focusedHeaderPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL)) {\n return null;\n }\n return this.focusedHeaderPosition;\n };\n FocusService.prototype.isDomDataMissingInHierarchy = function (eBrowserCell, key) {\n var ePointer = eBrowserCell;\n while (ePointer) {\n var data = this.gridOptionsWrapper.getDomData(ePointer, key);\n if (data) {\n return false;\n }\n ePointer = ePointer.parentNode;\n }\n return true;\n };\n FocusService.prototype.clearFocusedCell = function () {\n this.focusedCellPosition = null;\n this.onCellFocused(false);\n };\n FocusService.prototype.getFocusedCell = function () {\n return this.focusedCellPosition;\n };\n FocusService.prototype.setFocusedCell = function (rowIndex, colKey, floating, forceBrowserFocus) {\n if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }\n var gridColumn = this.columnModel.getGridColumn(colKey);\n // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,\n // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries\n // to re-focus the focused cell.\n if (!gridColumn) {\n this.focusedCellPosition = null;\n return;\n }\n this.focusedCellPosition = gridColumn ? { rowIndex: rowIndex, rowPinned: makeNull(floating), column: gridColumn } : null;\n this.onCellFocused(forceBrowserFocus);\n };\n FocusService.prototype.isCellFocused = function (cellPosition) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.column === cellPosition.column &&\n this.isRowFocused(cellPosition.rowIndex, cellPosition.rowPinned);\n };\n FocusService.prototype.isRowNodeFocused = function (rowNode) {\n return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);\n };\n FocusService.prototype.isHeaderWrapperFocused = function (headerCtrl) {\n if (this.focusedHeaderPosition == null) {\n return false;\n }\n var column = headerCtrl.getColumnGroupChild();\n var headerRowIndex = headerCtrl.getRowIndex();\n var pinned = headerCtrl.getPinned();\n var _a = this.focusedHeaderPosition, focusedColumn = _a.column, focusedHeaderRowIndex = _a.headerRowIndex;\n return column === focusedColumn &&\n headerRowIndex === focusedHeaderRowIndex &&\n pinned == focusedColumn.getPinned();\n };\n FocusService.prototype.clearFocusedHeader = function () {\n this.focusedHeaderPosition = null;\n };\n FocusService.prototype.getFocusedHeader = function () {\n return this.focusedHeaderPosition;\n };\n FocusService.prototype.setFocusedHeader = function (headerRowIndex, column) {\n this.focusedHeaderPosition = { headerRowIndex: headerRowIndex, column: column };\n };\n FocusService.prototype.focusHeaderPosition = function (params) {\n var direction = params.direction, fromTab = params.fromTab, allowUserOverride = params.allowUserOverride, event = params.event;\n var headerPosition = params.headerPosition;\n if (allowUserOverride) {\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var currentPosition = this.getFocusedHeader();\n var headerRowCount = this.headerNavigationService.getHeaderRowCount();\n if (fromTab) {\n var userFunc = gridOptionsWrapper.getTabToNextHeaderFunc();\n if (userFunc) {\n var params_1 = {\n backwards: direction === 'Before',\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount,\n };\n headerPosition = userFunc(params_1);\n }\n }\n else {\n var userFunc = gridOptionsWrapper.getNavigateToNextHeaderFunc();\n if (userFunc && event) {\n var params_2 = {\n key: event.key,\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount,\n event: event,\n };\n headerPosition = userFunc(params_2);\n }\n }\n }\n if (!headerPosition) {\n return false;\n }\n if (headerPosition.headerRowIndex === -1) {\n return this.focusGridView(headerPosition.column);\n }\n this.headerNavigationService.scrollToColumn(headerPosition.column, direction);\n var headerRowContainerCtrl = this.ctrlsService.getHeaderRowContainerCtrl(headerPosition.column.getPinned());\n // this will automatically call the setFocusedHeader method above\n var focusSuccess = headerRowContainerCtrl.focusHeader(headerPosition.headerRowIndex, headerPosition.column, event);\n return focusSuccess;\n };\n FocusService.prototype.focusFirstHeader = function () {\n var firstColumn = this.columnModel.getAllDisplayedColumns()[0];\n if (!firstColumn) {\n return false;\n }\n if (firstColumn.getParent()) {\n firstColumn = this.columnModel.getColumnGroupAtLevel(firstColumn, 0);\n }\n return this.focusHeaderPosition({\n headerPosition: { headerRowIndex: 0, column: firstColumn }\n });\n };\n FocusService.prototype.focusLastHeader = function (event) {\n var headerRowIndex = this.headerNavigationService.getHeaderRowCount() - 1;\n var column = last(this.columnModel.getAllDisplayedColumns());\n return this.focusHeaderPosition({\n headerPosition: { headerRowIndex: headerRowIndex, column: column },\n event: event\n });\n };\n FocusService.prototype.isAnyCellFocused = function () {\n return !!this.focusedCellPosition;\n };\n FocusService.prototype.isRowFocused = function (rowIndex, floating) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === makeNull(floating);\n };\n FocusService.prototype.findFocusableElements = function (rootNode, exclude, onlyUnmanaged) {\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableString = Constants.FOCUSABLE_SELECTOR;\n var excludeString = Constants.FOCUSABLE_EXCLUDE;\n if (exclude) {\n excludeString += ', ' + exclude;\n }\n if (onlyUnmanaged) {\n excludeString += ', [tabindex=\"-1\"]';\n }\n var nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString));\n var excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));\n if (!excludeNodes.length) {\n return nodes;\n }\n var diff = function (a, b) { return a.filter(function (element) { return b.indexOf(element) === -1; }); };\n return diff(nodes, excludeNodes);\n };\n FocusService.prototype.focusInto = function (rootNode, up, onlyUnmanaged) {\n if (up === void 0) { up = false; }\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);\n var toFocus = up ? last(focusableElements) : focusableElements[0];\n if (toFocus) {\n toFocus.focus();\n return true;\n }\n return false;\n };\n FocusService.prototype.findNextFocusableElement = function (rootNode, onlyManaged, backwards) {\n if (rootNode === void 0) { rootNode = this.eGridDiv; }\n var focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex=\"-1\"])' : null);\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n var currentIndex;\n if (onlyManaged) {\n currentIndex = focusable.findIndex(function (el) { return el.contains(activeEl); });\n }\n else {\n currentIndex = focusable.indexOf(activeEl);\n }\n var nextIndex = currentIndex + (backwards ? -1 : 1);\n if (nextIndex < 0 || nextIndex >= focusable.length) {\n return null;\n }\n return focusable[nextIndex];\n };\n FocusService.prototype.isFocusUnderManagedComponent = function (rootNode) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var managedContainers = rootNode.querySelectorAll(\".\" + ManagedFocusFeature.FOCUS_MANAGED_CLASS);\n if (!managedContainers.length) {\n return false;\n }\n for (var i = 0; i < managedContainers.length; i++) {\n if (managedContainers[i].contains(eDocument.activeElement)) {\n return true;\n }\n }\n return false;\n };\n FocusService.prototype.findTabbableParent = function (node, limit) {\n if (limit === void 0) { limit = 5; }\n var counter = 0;\n while (node && getTabIndex(node) === null && ++counter <= limit) {\n node = node.parentElement;\n }\n if (getTabIndex(node) === null) {\n return null;\n }\n return node;\n };\n FocusService.prototype.onCellFocused = function (forceBrowserFocus) {\n var event = {\n type: Events.EVENT_CELL_FOCUSED,\n forceBrowserFocus: forceBrowserFocus,\n rowIndex: null,\n column: null,\n floating: null,\n api: this.gridApi,\n columnApi: this.columnApi,\n rowPinned: null,\n isFullWidthCell: false\n };\n if (this.focusedCellPosition) {\n var rowIndex = event.rowIndex = this.focusedCellPosition.rowIndex;\n var rowPinned = event.rowPinned = this.focusedCellPosition.rowPinned;\n event.column = this.focusedCellPosition.column;\n var rowCtrl = this.rowRenderer.getRowByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });\n if (rowCtrl) {\n event.isFullWidthCell = rowCtrl.isFullWidth();\n }\n }\n this.eventService.dispatchEvent(event);\n };\n FocusService.prototype.focusGridView = function (column, backwards) {\n // if suppressCellFocus is `true`, it means the user does not want to\n // navigate between the cells using tab. Instead, we put focus on either\n // the header or after the grid, depending on whether tab or shift-tab was pressed.\n if (this.gridOptionsWrapper.isSuppressCellFocus()) {\n if (backwards) {\n return this.focusLastHeader();\n }\n return this.focusNextGridCoreContainer(false);\n }\n var nextRow = backwards\n ? this.rowPositionUtils.getLastRow()\n : this.rowPositionUtils.getFirstRow();\n if (!nextRow) {\n return false;\n }\n var rowIndex = nextRow.rowIndex, rowPinned = nextRow.rowPinned;\n var focusedHeader = this.getFocusedHeader();\n if (!column && focusedHeader) {\n column = focusedHeader.column;\n }\n if (rowIndex == null || !column) {\n return false;\n }\n this.navigationService.ensureCellVisible({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n this.setFocusedCell(rowIndex, column, makeNull(rowPinned), true);\n if (this.rangeService) {\n var cellPosition = { rowIndex: rowIndex, rowPinned: rowPinned, column: column };\n this.rangeService.setRangeToCell(cellPosition);\n }\n return true;\n };\n FocusService.prototype.focusNextGridCoreContainer = function (backwards) {\n if (this.gridCtrl.focusNextInnerContainer(backwards)) {\n return true;\n }\n if (!backwards && !this.gridCtrl.isDetailGrid()) {\n this.gridCtrl.forceFocusOutOfContainer();\n }\n return false;\n };\n var FocusService_1;\n FocusService.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';\n FocusService.keyboardModeActive = false;\n FocusService.instancesMonitored = new Map();\n __decorate$1L([\n Autowired('eGridDiv')\n ], FocusService.prototype, \"eGridDiv\", void 0);\n __decorate$1L([\n Autowired('columnModel')\n ], FocusService.prototype, \"columnModel\", void 0);\n __decorate$1L([\n Autowired('headerNavigationService')\n ], FocusService.prototype, \"headerNavigationService\", void 0);\n __decorate$1L([\n Autowired('columnApi')\n ], FocusService.prototype, \"columnApi\", void 0);\n __decorate$1L([\n Autowired('gridApi')\n ], FocusService.prototype, \"gridApi\", void 0);\n __decorate$1L([\n Autowired('rowRenderer')\n ], FocusService.prototype, \"rowRenderer\", void 0);\n __decorate$1L([\n Autowired('rowPositionUtils')\n ], FocusService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1L([\n Optional('rangeService')\n ], FocusService.prototype, \"rangeService\", void 0);\n __decorate$1L([\n Autowired('navigationService')\n ], FocusService.prototype, \"navigationService\", void 0);\n __decorate$1L([\n Autowired('ctrlsService')\n ], FocusService.prototype, \"ctrlsService\", void 0);\n __decorate$1L([\n PostConstruct\n ], FocusService.prototype, \"init\", null);\n FocusService = FocusService_1 = __decorate$1L([\n Bean('focusService')\n ], FocusService);\n return FocusService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$26 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DIRECTION;\n(function (DIRECTION) {\n DIRECTION[DIRECTION[\"vertical\"] = 0] = \"vertical\";\n DIRECTION[DIRECTION[\"horizontal\"] = 1] = \"horizontal\";\n})(DIRECTION || (DIRECTION = {}));\nvar instanceIdSeq = 0;\nvar PopupService = /** @class */ (function (_super) {\n __extends$26(PopupService, _super);\n function PopupService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.popupList = [];\n return _this;\n }\n PopupService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n _this.addManagedListener(_this.gridCtrl, Events.EVENT_KEYBOARD_FOCUS, function () {\n _this.popupList.forEach(function (popup) { return popup.element.classList.add(FocusService.AG_KEYBOARD_FOCUS); });\n });\n _this.addManagedListener(_this.gridCtrl, Events.EVENT_MOUSE_FOCUS, function () {\n _this.popupList.forEach(function (popup) { return popup.element.classList.remove(FocusService.AG_KEYBOARD_FOCUS); });\n });\n });\n };\n PopupService.prototype.getPopupParent = function () {\n var ePopupParent = this.gridOptionsWrapper.getPopupParent();\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.gridCtrl.getGui();\n };\n PopupService.prototype.positionPopupForMenu = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n var y = this.keepXYWithinBounds(params.ePopup, sourceRect.top - parentRect.top, DIRECTION.vertical);\n var minWidth = (params.ePopup.clientWidth > 0) ? params.ePopup.clientWidth : 200;\n params.ePopup.style.minWidth = minWidth + \"px\";\n var widthOfParent = parentRect.right - parentRect.left;\n var maxX = widthOfParent - minWidth;\n // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup\n // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,\n // we try place it first to the left, and then if not to the right.\n var x;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, try left first\n x = xLeftPosition();\n if (x < 0) {\n x = xRightPosition();\n }\n if (x > maxX) {\n x = 0;\n }\n }\n else {\n // for LTR, try right first\n x = xRightPosition();\n if (x > maxX) {\n x = xLeftPosition();\n }\n if (x < 0) {\n x = 0;\n }\n }\n params.ePopup.style.left = x + \"px\";\n params.ePopup.style.top = y + \"px\";\n function xRightPosition() {\n return sourceRect.right - parentRect.left - 2;\n }\n function xLeftPosition() {\n return sourceRect.left - parentRect.left - minWidth;\n }\n };\n PopupService.prototype.positionPopupUnderMouseEvent = function (params) {\n var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY;\n var _a = this.calculatePointerAlign(params.mouseEvent), x = _a.x, y = _a.y;\n this.positionPopup({\n ePopup: ePopup,\n x: x,\n y: y,\n nudgeX: nudgeX,\n nudgeY: nudgeY,\n keepWithinBounds: true\n });\n this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode);\n };\n PopupService.prototype.calculatePointerAlign = function (e) {\n var parentRect = this.getParentRect();\n return {\n x: e.clientX - parentRect.left,\n y: e.clientY - parentRect.top\n };\n };\n PopupService.prototype.positionPopupUnderComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var alignSide = params.alignSide || 'left';\n var parentRect = this.getParentRect();\n var x = sourceRect.left - parentRect.left;\n if (alignSide === 'right') {\n x -= (params.ePopup.offsetWidth - sourceRect.width);\n }\n this.positionPopup({\n ePopup: params.ePopup,\n nudgeX: params.nudgeX,\n nudgeY: params.nudgeY,\n x: x,\n y: sourceRect.top - parentRect.top + sourceRect.height,\n keepWithinBounds: params.keepWithinBounds\n });\n this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);\n };\n PopupService.prototype.positionPopupOverComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n this.positionPopup({\n ePopup: params.ePopup,\n nudgeX: params.nudgeX,\n nudgeY: params.nudgeY,\n x: sourceRect.left - parentRect.left,\n y: sourceRect.top - parentRect.top,\n keepWithinBounds: params.keepWithinBounds\n });\n this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);\n };\n PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, column, rowNode) {\n var callback = this.gridOptionsWrapper.getPostProcessPopupFunc();\n if (callback) {\n var params = {\n column: column,\n rowNode: rowNode,\n ePopup: ePopup,\n type: type,\n eventSource: eventSource,\n mouseEvent: mouseEvent\n };\n callback(params);\n }\n };\n PopupService.prototype.positionPopup = function (params) {\n var ePopup = params.ePopup, keepWithinBounds = params.keepWithinBounds, nudgeX = params.nudgeX, nudgeY = params.nudgeY;\n var x = params.x, y = params.y;\n if (nudgeX) {\n x += nudgeX;\n }\n if (nudgeY) {\n y += nudgeY;\n }\n // if popup is overflowing to the bottom, move it up\n if (keepWithinBounds) {\n x = this.keepXYWithinBounds(ePopup, x, DIRECTION.horizontal);\n y = this.keepXYWithinBounds(ePopup, y, DIRECTION.vertical);\n }\n ePopup.style.left = x + \"px\";\n ePopup.style.top = y + \"px\";\n };\n PopupService.prototype.getActivePopups = function () {\n return this.popupList.map(function (popup) { return popup.element; });\n };\n PopupService.prototype.getPopupList = function () {\n return this.popupList;\n };\n PopupService.prototype.getParentRect = function () {\n // subtract the popup parent borders, because popupParent.getBoundingClientRect\n // returns the rect outside the borders, but the 0,0 coordinate for absolute\n // positioning is inside the border, leading the popup to be off by the width\n // of the border\n var eDocument = this.gridOptionsWrapper.getDocument();\n var popupParent = this.getPopupParent();\n if (popupParent === eDocument.body) {\n popupParent = eDocument.documentElement;\n }\n var style = getComputedStyle(popupParent);\n var bounds = popupParent.getBoundingClientRect();\n return {\n top: bounds.top + parseFloat(style.borderTopWidth) || 0,\n left: bounds.left + parseFloat(style.borderLeftWidth) || 0,\n right: bounds.right + parseFloat(style.borderRightWidth) || 0,\n bottom: bounds.bottom + parseFloat(style.borderBottomWidth) || 0,\n };\n };\n PopupService.prototype.keepXYWithinBounds = function (ePopup, position, direction) {\n var isVertical = direction === DIRECTION.vertical;\n var sizeProperty = isVertical ? 'clientHeight' : 'clientWidth';\n var anchorProperty = isVertical ? 'top' : 'left';\n var offsetProperty = isVertical ? 'offsetHeight' : 'offsetWidth';\n var scrollPositionProperty = isVertical ? 'scrollTop' : 'scrollLeft';\n var eDocument = this.gridOptionsWrapper.getDocument();\n var docElement = eDocument.documentElement;\n var popupParent = this.getPopupParent();\n var parentRect = popupParent.getBoundingClientRect();\n var documentRect = eDocument.documentElement.getBoundingClientRect();\n var isBody = popupParent === eDocument.body;\n var offsetSize = ePopup[offsetProperty];\n var getSize = isVertical ? getAbsoluteHeight : getAbsoluteWidth;\n var sizeOfParent = isBody ? (getSize(docElement) + docElement[scrollPositionProperty]) : popupParent[sizeProperty];\n if (isBody) {\n sizeOfParent -= Math.abs(documentRect[anchorProperty] - parentRect[anchorProperty]);\n }\n var max = sizeOfParent - offsetSize;\n return Math.min(Math.max(position, 0), Math.abs(max));\n };\n PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {\n var _this = this;\n var eParent = this.getPopupParent();\n var parentRect = eParent.getBoundingClientRect();\n var sourceRect = params.element.getBoundingClientRect();\n var initialDiffTop = parentRect.top - sourceRect.top;\n var initialDiffLeft = parentRect.left - sourceRect.left;\n var lastDiffTop = initialDiffTop;\n var lastDiffLeft = initialDiffLeft;\n var topPx = params.ePopup.style.top;\n var top = parseInt(topPx.substring(0, topPx.length - 1), 10);\n var leftPx = params.ePopup.style.left;\n var left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);\n return new AgPromise(function (resolve) {\n _this.getFrameworkOverrides().setInterval(function () {\n var pRect = eParent.getBoundingClientRect();\n var sRect = params.element.getBoundingClientRect();\n var elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;\n if (elementNotInDom) {\n params.hidePopup();\n return;\n }\n var currentDiffTop = pRect.top - sRect.top;\n if (currentDiffTop != lastDiffTop) {\n var newTop = _this.keepXYWithinBounds(params.ePopup, top + initialDiffTop - currentDiffTop, DIRECTION.vertical);\n params.ePopup.style.top = newTop + \"px\";\n }\n lastDiffTop = currentDiffTop;\n var currentDiffLeft = pRect.left - sRect.left;\n if (currentDiffLeft != lastDiffLeft) {\n var newLeft = _this.keepXYWithinBounds(params.ePopup, left + initialDiffLeft - currentDiffLeft, DIRECTION.horizontal);\n params.ePopup.style.left = newLeft + \"px\";\n }\n lastDiffLeft = currentDiffLeft;\n }, 200).then(function (intervalId) {\n var result = function () {\n if (intervalId != null) {\n window.clearInterval(intervalId);\n }\n };\n resolve(result);\n });\n });\n };\n PopupService.prototype.addPopup = function (params) {\n var _this = this;\n var modal = params.modal, eChild = params.eChild, closeOnEsc = params.closeOnEsc, closedCallback = params.closedCallback, click = params.click, alwaysOnTop = params.alwaysOnTop, afterGuiAttached = params.afterGuiAttached, positionCallback = params.positionCallback, anchorToElement = params.anchorToElement, ariaLabel = params.ariaLabel;\n var eDocument = this.gridOptionsWrapper.getDocument();\n var destroyPositionTracker = new AgPromise(function (resolve) { return resolve(function () { }); });\n if (!eDocument) {\n console.warn('ag-grid: could not find the document, document is empty');\n return { hideFunc: function () { }, stopAnchoringPromise: destroyPositionTracker };\n }\n var pos = this.popupList.findIndex(function (popup) { return popup.element === eChild; });\n if (pos !== -1) {\n var popup = this.popupList[pos];\n return { hideFunc: popup.hideFunc, stopAnchoringPromise: popup.stopAnchoringPromise };\n }\n var ePopupParent = this.getPopupParent();\n if (eChild.style.top == null) {\n eChild.style.top = '0px';\n }\n if (eChild.style.left == null) {\n eChild.style.left = '0px';\n }\n // add env CSS class to child, in case user provided a popup parent, which means\n // theme class may be missing\n var eWrapper = document.createElement('div');\n var theme = this.environment.getTheme().theme;\n if (theme) {\n eWrapper.classList.add(theme);\n }\n eWrapper.classList.add('ag-popup');\n eChild.classList.add(this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr', 'ag-popup-child');\n if (!eChild.hasAttribute('role')) {\n setAriaRole(eChild, 'dialog');\n }\n setAriaLabel(eChild, ariaLabel);\n if (this.focusService.isKeyboardMode()) {\n eChild.classList.add(FocusService.AG_KEYBOARD_FOCUS);\n }\n eWrapper.appendChild(eChild);\n ePopupParent.appendChild(eWrapper);\n if (alwaysOnTop) {\n this.setAlwaysOnTop(eWrapper, true);\n }\n else {\n this.bringPopupToFront(eWrapper);\n }\n var popupHidden = false;\n var hidePopupOnKeyboardEvent = function (event) {\n if (!eWrapper.contains(eDocument.activeElement)) {\n return;\n }\n var key = event.key;\n if (key === KeyCode.ESCAPE) {\n hidePopup({ keyboardEvent: event });\n }\n };\n var hidePopupOnMouseEvent = function (event) { return hidePopup({ mouseEvent: event }); };\n var hidePopupOnTouchEvent = function (event) { return hidePopup({ touchEvent: event }); };\n var hidePopup = function (popupParams) {\n if (popupParams === void 0) { popupParams = {}; }\n var mouseEvent = popupParams.mouseEvent, touchEvent = popupParams.touchEvent, keyboardEvent = popupParams.keyboardEvent;\n if (\n // we don't hide popup if the event was on the child, or any\n // children of this child\n _this.isEventFromCurrentPopup({ mouseEvent: mouseEvent, touchEvent: touchEvent }, eChild) ||\n // if the event to close is actually the open event, then ignore it\n _this.isEventSameChainAsOriginalEvent({ originalMouseEvent: click, mouseEvent: mouseEvent, touchEvent: touchEvent }) ||\n // this method should only be called once. the client can have different\n // paths, each one wanting to close, so this method may be called multiple times.\n popupHidden) {\n return;\n }\n popupHidden = true;\n ePopupParent.removeChild(eWrapper);\n eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);\n eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);\n eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);\n _this.eventService.removeEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n if (closedCallback) {\n closedCallback(mouseEvent || touchEvent || keyboardEvent);\n }\n _this.popupList = _this.popupList.filter(function (popup) { return popup.element !== eChild; });\n if (destroyPositionTracker) {\n destroyPositionTracker.then(function (destroyFunc) { return destroyFunc && destroyFunc(); });\n }\n };\n if (afterGuiAttached) {\n afterGuiAttached({ hidePopup: hidePopup });\n }\n // if we add these listeners now, then the current mouse\n // click will be included, which we don't want\n window.setTimeout(function () {\n if (closeOnEsc) {\n eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);\n }\n if (modal) {\n eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);\n _this.eventService.addEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);\n }\n }, 0);\n if (positionCallback) {\n positionCallback();\n }\n if (anchorToElement) {\n // keeps popup positioned under created, eg if context menu, if user scrolls\n // using touchpad and the cell moves, it moves the popup to keep it with the cell.\n destroyPositionTracker = this.keepPopupPositionedRelativeTo({\n element: anchorToElement,\n ePopup: eChild,\n hidePopup: hidePopup\n });\n }\n this.popupList.push({\n element: eChild,\n wrapper: eWrapper,\n hideFunc: hidePopup,\n stopAnchoringPromise: destroyPositionTracker,\n instanceId: instanceIdSeq++,\n isAnchored: !!anchorToElement\n });\n return {\n hideFunc: hidePopup,\n stopAnchoringPromise: destroyPositionTracker\n };\n };\n PopupService.prototype.hasAnchoredPopup = function () {\n return this.popupList.some(function (popup) { return popup.isAnchored; });\n };\n PopupService.prototype.isEventFromCurrentPopup = function (params, target) {\n var mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;\n var event = mouseEvent ? mouseEvent : touchEvent;\n if (!event) {\n return false;\n }\n var indexOfThisChild = this.popupList.findIndex(function (popup) { return popup.element === target; });\n if (indexOfThisChild === -1) {\n return false;\n }\n for (var i = indexOfThisChild; i < this.popupList.length; i++) {\n var popup = this.popupList[i];\n if (isElementInEventPath(popup.element, event)) {\n return true;\n }\n }\n // if the user did not write their own Custom Element to be rendered as popup\n // and this component has an additional popup element, they should have the\n // `ag-custom-component-popup` class to be detected as part of the Custom Component\n return this.isElementWithinCustomPopup(event.target);\n };\n PopupService.prototype.isElementWithinCustomPopup = function (el) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n while (el && el !== eDocument.body) {\n if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {\n return true;\n }\n el = el.parentElement;\n }\n return false;\n };\n // in some browsers, the context menu event can be fired before the click event, which means\n // the context menu event could open the popup, but then the click event closes it straight away.\n PopupService.prototype.isEventSameChainAsOriginalEvent = function (params) {\n var originalMouseEvent = params.originalMouseEvent, mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;\n // we check the coordinates of the event, to see if it's the same event. there is a 1 / 1000 chance that\n // the event is a different event, however that is an edge case that is not very relevant (the user clicking\n // twice on the same location isn't a normal path).\n // event could be mouse event or touch event.\n var mouseEventOrTouch = null;\n if (mouseEvent) {\n // mouse event can be used direction, it has coordinates\n mouseEventOrTouch = mouseEvent;\n }\n else if (touchEvent) {\n // touch event doesn't have coordinates, need it's touch object\n mouseEventOrTouch = touchEvent.touches[0];\n }\n if (mouseEventOrTouch && originalMouseEvent) {\n // for x, allow 4px margin, to cover iPads, where touch (which opens menu) is followed\n // by browser click (when you finger up, touch is interrupted as click in browser)\n var screenX_1 = mouseEvent ? mouseEvent.screenX : 0;\n var screenY_1 = mouseEvent ? mouseEvent.screenY : 0;\n var xMatch = Math.abs(originalMouseEvent.screenX - screenX_1) < 5;\n var yMatch = Math.abs(originalMouseEvent.screenY - screenY_1) < 5;\n if (xMatch && yMatch) {\n return true;\n }\n }\n return false;\n };\n PopupService.prototype.getWrapper = function (ePopup) {\n while (!ePopup.classList.contains('ag-popup') && ePopup.parentElement) {\n ePopup = ePopup.parentElement;\n }\n return ePopup.classList.contains('ag-popup') ? ePopup : null;\n };\n PopupService.prototype.setAlwaysOnTop = function (ePopup, alwaysOnTop) {\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper) {\n return;\n }\n eWrapper.classList.toggle('ag-always-on-top', !!alwaysOnTop);\n if (alwaysOnTop) {\n this.bringPopupToFront(eWrapper);\n }\n };\n PopupService.prototype.bringPopupToFront = function (ePopup) {\n var parent = this.getPopupParent();\n var popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));\n var popupLen = popupList.length;\n var alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));\n var onTopLength = alwaysOnTopList.length;\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {\n return;\n }\n var pos = popupList.indexOf(eWrapper);\n var innerEls = eWrapper.querySelectorAll('div');\n var innerElsScrollMap = [];\n innerEls.forEach(function (el) {\n if (el.scrollTop !== 0) {\n innerElsScrollMap.push([el, el.scrollTop]);\n }\n });\n if (onTopLength) {\n var isPopupAlwaysOnTop = eWrapper.classList.contains('ag-always-on-top');\n if (isPopupAlwaysOnTop) {\n if (pos !== popupLen - 1) {\n last(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);\n }\n }\n else if (pos !== popupLen - onTopLength - 1) {\n alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);\n }\n }\n else if (pos !== popupLen - 1) {\n last(popupList).insertAdjacentElement('afterend', eWrapper);\n }\n while (innerElsScrollMap.length) {\n var currentEl = innerElsScrollMap.pop();\n currentEl[0].scrollTop = currentEl[1];\n }\n var params = {\n type: 'popupToFront',\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n eWrapper: eWrapper\n };\n this.eventService.dispatchEvent(params);\n };\n __decorate$1M([\n Autowired('environment')\n ], PopupService.prototype, \"environment\", void 0);\n __decorate$1M([\n Autowired('focusService')\n ], PopupService.prototype, \"focusService\", void 0);\n __decorate$1M([\n Autowired('ctrlsService')\n ], PopupService.prototype, \"ctrlsService\", void 0);\n __decorate$1M([\n PostConstruct\n ], PopupService.prototype, \"postConstruct\", null);\n PopupService = __decorate$1M([\n Bean('popupService')\n ], PopupService);\n return PopupService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$27 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar VirtualList = /** @class */ (function (_super) {\n __extends$27(VirtualList, _super);\n function VirtualList(cssIdentifier, ariaRole, listName) {\n if (cssIdentifier === void 0) { cssIdentifier = 'default'; }\n if (ariaRole === void 0) { ariaRole = 'listbox'; }\n var _this = _super.call(this, VirtualList.getTemplate(cssIdentifier)) || this;\n _this.cssIdentifier = cssIdentifier;\n _this.ariaRole = ariaRole;\n _this.listName = listName;\n _this.renderedRows = new Map();\n _this.rowHeight = 20;\n _this.isDestroyed = false;\n return _this;\n }\n VirtualList.prototype.postConstruct = function () {\n var _this = this;\n this.addScrollListener();\n this.rowHeight = this.getItemHeight();\n this.addResizeObserver();\n this.initialiseTabGuard({\n onFocusIn: function (e) { return _this.onFocusIn(e); },\n onFocusOut: function (e) { return _this.onFocusOut(e); },\n focusInnerElement: function (fromBottom) { return _this.focusInnerElement(fromBottom); },\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n this.setAriaProperties();\n };\n VirtualList.prototype.setAriaProperties = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var listName = translate('ariaDefaultListName', this.listName || 'List');\n var ariaEl = this.eContainer;\n setAriaRole(ariaEl, this.ariaRole);\n setAriaLabel(ariaEl, listName);\n };\n VirtualList.prototype.addResizeObserver = function () {\n var listener = this.drawVirtualRows.bind(this);\n var destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);\n this.addDestroyFunc(destroyObserver);\n };\n VirtualList.prototype.focusInnerElement = function (fromBottom) {\n this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);\n };\n VirtualList.prototype.onFocusIn = function (e) {\n var target = e.target;\n if (target.classList.contains('ag-virtual-list-item')) {\n this.lastFocusedRowIndex = getAriaPosInSet(target) - 1;\n }\n return false;\n };\n VirtualList.prototype.onFocusOut = function (e) {\n if (!this.getFocusableElement().contains(e.relatedTarget)) {\n this.lastFocusedRowIndex = null;\n }\n return false;\n };\n VirtualList.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (this.navigate(e.key === KeyCode.UP)) {\n e.preventDefault();\n }\n break;\n }\n };\n VirtualList.prototype.onTabKeyDown = function (e) {\n if (this.navigate(e.shiftKey)) {\n e.preventDefault();\n }\n else {\n // focus on the first or last focusable element to ensure that any other handlers start from there\n this.focusService.focusInto(this.getGui(), !e.shiftKey);\n }\n };\n VirtualList.prototype.navigate = function (up) {\n if (this.lastFocusedRowIndex == null) {\n return false;\n }\n var nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);\n if (nextRow < 0 || nextRow >= this.model.getRowCount()) {\n return false;\n }\n this.focusRow(nextRow);\n return true;\n };\n VirtualList.prototype.getLastFocusedRow = function () {\n return this.lastFocusedRowIndex;\n };\n VirtualList.prototype.focusRow = function (rowNumber) {\n var _this = this;\n this.ensureIndexVisible(rowNumber);\n window.setTimeout(function () {\n var renderedRow = _this.renderedRows.get(rowNumber);\n if (renderedRow) {\n renderedRow.eDiv.focus();\n }\n }, 10);\n };\n VirtualList.prototype.getComponentAt = function (rowIndex) {\n var comp = this.renderedRows.get(rowIndex);\n return comp && comp.rowComponent;\n };\n VirtualList.getTemplate = function (cssIdentifier) {\n return /* html */ \"\\n
\\n
\\n
\";\n };\n VirtualList.prototype.getItemHeight = function () {\n return this.gridOptionsWrapper.getListItemHeight();\n };\n VirtualList.prototype.ensureIndexVisible = function (index) {\n var lastRow = this.model.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= lastRow) {\n console.warn('AG Grid: invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var rowTopPixel = index * this.rowHeight;\n var rowBottomPixel = rowTopPixel + this.rowHeight;\n var eGui = this.getGui();\n var viewportTopPixel = eGui.scrollTop;\n var viewportHeight = eGui.offsetHeight;\n var viewportBottomPixel = viewportTopPixel + viewportHeight;\n var viewportScrolledPastRow = viewportTopPixel > rowTopPixel;\n var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel;\n if (viewportScrolledPastRow) {\n // if row is before, scroll up with row at top\n eGui.scrollTop = rowTopPixel;\n }\n else if (viewportScrolledBeforeRow) {\n // if row is below, scroll down with row at bottom\n var newScrollPosition = rowBottomPixel - viewportHeight;\n eGui.scrollTop = newScrollPosition;\n }\n };\n VirtualList.prototype.setComponentCreator = function (componentCreator) {\n this.componentCreator = componentCreator;\n };\n VirtualList.prototype.getRowHeight = function () {\n return this.rowHeight;\n };\n VirtualList.prototype.getScrollTop = function () {\n return this.getGui().scrollTop;\n };\n VirtualList.prototype.setRowHeight = function (rowHeight) {\n this.rowHeight = rowHeight;\n this.refresh();\n };\n VirtualList.prototype.refresh = function () {\n var _this = this;\n if (this.model == null || this.isDestroyed) {\n return;\n }\n var rowCount = this.model.getRowCount();\n this.eContainer.style.height = rowCount * this.rowHeight + \"px\";\n // ensure height is applied before attempting to redraw rows\n waitUntil(function () { return _this.eContainer.clientHeight >= rowCount * _this.rowHeight; }, function () {\n if (_this.isDestroyed) {\n return;\n }\n _this.clearVirtualRows();\n _this.drawVirtualRows();\n });\n };\n VirtualList.prototype.clearVirtualRows = function () {\n var _this = this;\n this.renderedRows.forEach(function (_, rowIndex) { return _this.removeRow(rowIndex); });\n };\n VirtualList.prototype.drawVirtualRows = function () {\n var gui = this.getGui();\n var topPixel = gui.scrollTop;\n var bottomPixel = topPixel + gui.offsetHeight;\n var firstRow = Math.floor(topPixel / this.rowHeight);\n var lastRow = Math.floor(bottomPixel / this.rowHeight);\n this.ensureRowsRendered(firstRow, lastRow);\n };\n VirtualList.prototype.ensureRowsRendered = function (start, finish) {\n var _this = this;\n // remove any rows that are no longer required\n this.renderedRows.forEach(function (_, rowIndex) {\n if ((rowIndex < start || rowIndex > finish) && rowIndex !== _this.lastFocusedRowIndex) {\n _this.removeRow(rowIndex);\n }\n });\n // insert any required new rows\n for (var rowIndex = start; rowIndex <= finish; rowIndex++) {\n if (this.renderedRows.has(rowIndex)) {\n continue;\n }\n // check this row actually exists (in case overflow buffer window exceeds real data)\n if (rowIndex < this.model.getRowCount()) {\n this.insertRow(rowIndex);\n }\n }\n };\n VirtualList.prototype.insertRow = function (rowIndex) {\n var _this = this;\n var value = this.model.getRow(rowIndex);\n var eDiv = document.createElement('div');\n eDiv.classList.add('ag-virtual-list-item', \"ag-\" + this.cssIdentifier + \"-virtual-list-item\");\n setAriaRole(eDiv, this.ariaRole === 'tree' ? 'treeitem' : 'option');\n setAriaSetSize(eDiv, this.model.getRowCount());\n setAriaPosInSet(eDiv, rowIndex + 1);\n eDiv.setAttribute('tabindex', '-1');\n if (typeof this.model.isRowSelected === 'function') {\n var isSelected = this.model.isRowSelected(rowIndex);\n setAriaSelected(eDiv, !!isSelected);\n setAriaChecked(eDiv, isSelected);\n }\n eDiv.style.height = this.rowHeight + \"px\";\n eDiv.style.top = this.rowHeight * rowIndex + \"px\";\n var rowComponent = this.componentCreator(value, eDiv);\n rowComponent.addGuiEventListener('focusin', function () { return _this.lastFocusedRowIndex = rowIndex; });\n eDiv.appendChild(rowComponent.getGui());\n // keep the DOM order consistent with the order of the rows\n if (this.renderedRows.has(rowIndex - 1)) {\n this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);\n }\n else if (this.renderedRows.has(rowIndex + 1)) {\n this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);\n }\n else {\n this.eContainer.appendChild(eDiv);\n }\n this.renderedRows.set(rowIndex, { rowComponent: rowComponent, eDiv: eDiv });\n };\n VirtualList.prototype.removeRow = function (rowIndex) {\n var component = this.renderedRows.get(rowIndex);\n this.eContainer.removeChild(component.eDiv);\n this.destroyBean(component.rowComponent);\n this.renderedRows.delete(rowIndex);\n };\n VirtualList.prototype.addScrollListener = function () {\n var _this = this;\n this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); });\n };\n VirtualList.prototype.setModel = function (model) {\n this.model = model;\n };\n VirtualList.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n this.clearVirtualRows();\n this.isDestroyed = true;\n _super.prototype.destroy.call(this);\n };\n __decorate$1N([\n Autowired('resizeObserverService')\n ], VirtualList.prototype, \"resizeObserverService\", void 0);\n __decorate$1N([\n Autowired('focusService')\n ], VirtualList.prototype, \"focusService\", void 0);\n __decorate$1N([\n RefSelector('eContainer')\n ], VirtualList.prototype, \"eContainer\", void 0);\n __decorate$1N([\n PostConstruct\n ], VirtualList.prototype, \"postConstruct\", null);\n return VirtualList;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave'];\nvar PASSIVE_EVENTS$1 = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];\n/** The base frameworks, eg React & Angular, override this bean with implementations specific to their requirement. */\nvar VanillaFrameworkOverrides = /** @class */ (function () {\n function VanillaFrameworkOverrides() {\n this.isOutsideAngular = function (eventType) { return includes(OUTSIDE_ANGULAR_EVENTS, eventType); };\n }\n // for Vanilla JS, we use simple timeout\n VanillaFrameworkOverrides.prototype.setTimeout = function (action, timeout) {\n window.setTimeout(action, timeout);\n };\n VanillaFrameworkOverrides.prototype.setInterval = function (action, timeout) {\n return new AgPromise(function (resolve) {\n resolve(window.setInterval(action, timeout));\n });\n };\n // for Vanilla JS, we just add the event to the element\n VanillaFrameworkOverrides.prototype.addEventListener = function (element, type, listener, useCapture) {\n var isPassive = includes(PASSIVE_EVENTS$1, type);\n element.addEventListener(type, listener, { capture: !!useCapture, passive: isPassive });\n };\n // for Vanilla JS, we just execute the listener\n VanillaFrameworkOverrides.prototype.dispatchEvent = function (eventType, listener, global) {\n listener();\n };\n VanillaFrameworkOverrides.prototype.frameworkComponent = function (name) {\n return null;\n };\n VanillaFrameworkOverrides.prototype.isFrameworkComponent = function (comp) {\n return false;\n };\n return VanillaFrameworkOverrides;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$28 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CellNavigationService = /** @class */ (function (_super) {\n __extends$28(CellNavigationService, _super);\n function CellNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // returns null if no cell to focus on, ie at the end of the grid\n CellNavigationService.prototype.getNextCellToFocus = function (key, focusedCell, ctrlPressed) {\n if (ctrlPressed === void 0) { ctrlPressed = false; }\n if (ctrlPressed) {\n return this.getNextCellToFocusWithCtrlPressed(key, focusedCell);\n }\n return this.getNextCellToFocusWithoutCtrlPressed(key, focusedCell);\n };\n CellNavigationService.prototype.getNextCellToFocusWithCtrlPressed = function (key, focusedCell) {\n var upKey = key === KeyCode.UP;\n var downKey = key === KeyCode.DOWN;\n var leftKey = key === KeyCode.LEFT;\n var column;\n var rowIndex;\n if (upKey || downKey) {\n rowIndex = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n column = focusedCell.column;\n }\n else {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n rowIndex = focusedCell.rowIndex;\n column = leftKey !== isRtl ? allColumns[0] : last(allColumns);\n }\n return {\n rowIndex: rowIndex,\n rowPinned: null,\n column: column\n };\n };\n CellNavigationService.prototype.getNextCellToFocusWithoutCtrlPressed = function (key, focusedCell) {\n // starting with the provided cell, we keep moving until we find a cell we can\n // focus on.\n var pointer = focusedCell;\n var finished = false;\n // finished will be true when either:\n // a) cell found that we can focus on\n // b) run out of cells (ie the method returns null)\n while (!finished) {\n switch (key) {\n case KeyCode.UP:\n pointer = this.getCellAbove(pointer);\n break;\n case KeyCode.DOWN:\n pointer = this.getCellBelow(pointer);\n break;\n case KeyCode.RIGHT:\n if (this.gridOptionsWrapper.isEnableRtl()) {\n pointer = this.getCellToLeft(pointer);\n }\n else {\n pointer = this.getCellToRight(pointer);\n }\n break;\n case KeyCode.LEFT:\n if (this.gridOptionsWrapper.isEnableRtl()) {\n pointer = this.getCellToRight(pointer);\n }\n else {\n pointer = this.getCellToLeft(pointer);\n }\n break;\n default:\n pointer = null;\n console.warn('AG Grid: unknown key for navigation ' + key);\n break;\n }\n if (pointer) {\n finished = this.isCellGoodToFocusOn(pointer);\n }\n else {\n finished = true;\n }\n }\n return pointer;\n };\n CellNavigationService.prototype.isCellGoodToFocusOn = function (gridCell) {\n var column = gridCell.column;\n var rowNode;\n switch (gridCell.rowPinned) {\n case Constants.PINNED_TOP:\n rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);\n break;\n case Constants.PINNED_BOTTOM:\n rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);\n break;\n default:\n rowNode = this.rowModel.getRow(gridCell.rowIndex);\n break;\n }\n if (!rowNode) {\n return false;\n }\n var suppressNavigable = column.isSuppressNavigable(rowNode);\n return !suppressNavigable;\n };\n CellNavigationService.prototype.getCellToLeft = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToLeft = this.columnModel.getDisplayedColBefore(lastCell.column);\n if (!colToLeft) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToLeft,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getCellToRight = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToRight = this.columnModel.getDisplayedColAfter(lastCell.column);\n // if already on right, do nothing\n if (!colToRight) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToRight,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getRowBelow = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n if (this.isLastRowInContainer(rowPosition)) {\n switch (pinned) {\n case Constants.PINNED_BOTTOM:\n // never any rows after pinned bottom\n return null;\n case Constants.PINNED_TOP:\n // if on last row of pinned top, then next row is main body (if rows exist),\n // otherwise it's the pinned bottom\n if (this.rowModel.isRowsToRender()) {\n return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };\n }\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_BOTTOM)) {\n return { rowIndex: 0, rowPinned: Constants.PINNED_BOTTOM };\n }\n return null;\n default:\n // if in the main body, then try pinned bottom, otherwise return nothing\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_BOTTOM)) {\n return { rowIndex: 0, rowPinned: Constants.PINNED_BOTTOM };\n }\n return null;\n }\n }\n return { rowIndex: index + 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getCellBelow = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowBelow = this.getRowBelow(lastCell);\n if (rowBelow) {\n return {\n rowIndex: rowBelow.rowIndex,\n column: lastCell.column,\n rowPinned: rowBelow.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.isLastRowInContainer = function (rowPosition) {\n var pinned = rowPosition.rowPinned;\n var index = rowPosition.rowIndex;\n if (pinned === Constants.PINNED_TOP) {\n var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return lastTopIndex <= index;\n }\n if (pinned === Constants.PINNED_BOTTOM) {\n var lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;\n return lastBottomIndex <= index;\n }\n var lastBodyIndex = this.paginationProxy.getPageLastRow();\n return lastBodyIndex <= index;\n };\n CellNavigationService.prototype.getRowAbove = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n var isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();\n // if already on top row, do nothing\n if (isFirstRow) {\n if (pinned === Constants.PINNED_TOP) {\n return null;\n }\n if (!pinned) {\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_TOP)) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n // last floating bottom\n if (this.rowModel.isRowsToRender()) {\n return this.getLastBodyCell();\n }\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_TOP)) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n return { rowIndex: index - 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getCellAbove = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });\n if (rowAbove) {\n return {\n rowIndex: rowAbove.rowIndex,\n column: lastCell.column,\n rowPinned: rowAbove.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.getLastBodyCell = function () {\n var lastBodyRow = this.paginationProxy.getPageLastRow();\n return { rowIndex: lastBodyRow, rowPinned: null };\n };\n CellNavigationService.prototype.getLastFloatingTopRow = function () {\n var lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return { rowIndex: lastFloatingRow, rowPinned: Constants.PINNED_TOP };\n };\n CellNavigationService.prototype.getNextTabbedCell = function (gridCell, backwards) {\n if (backwards) {\n return this.getNextTabbedCellBackwards(gridCell);\n }\n return this.getNextTabbedCellForwards(gridCell);\n };\n CellNavigationService.prototype.getNextTabbedCellForwards = function (gridCell) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnModel.getDisplayedColAfter(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = displayedColumns[0];\n var rowBelow = this.getRowBelow(gridCell);\n if (missing(rowBelow)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {\n return null;\n }\n newRowIndex = rowBelow ? rowBelow.rowIndex : null;\n newFloating = rowBelow ? rowBelow.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n CellNavigationService.prototype.getNextTabbedCellBackwards = function (gridCell) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnModel.getDisplayedColBefore(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = last(displayedColumns);\n var rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });\n if (missing(rowAbove)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {\n return null;\n }\n newRowIndex = rowAbove ? rowAbove.rowIndex : null;\n newFloating = rowAbove ? rowAbove.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n __decorate$1O([\n Autowired('columnModel')\n ], CellNavigationService.prototype, \"columnModel\", void 0);\n __decorate$1O([\n Autowired('rowModel')\n ], CellNavigationService.prototype, \"rowModel\", void 0);\n __decorate$1O([\n Autowired('pinnedRowModel')\n ], CellNavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$1O([\n Autowired('paginationProxy')\n ], CellNavigationService.prototype, \"paginationProxy\", void 0);\n CellNavigationService = __decorate$1O([\n Bean('cellNavigationService')\n ], CellNavigationService);\n return CellNavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$29 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$5 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AlignedGridsService = /** @class */ (function (_super) {\n __extends$29(AlignedGridsService, _super);\n function AlignedGridsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master\n // while processing a master event) we mark this if consuming an event, and if we are, then\n // we don't fire back any events.\n _this.consuming = false;\n return _this;\n }\n AlignedGridsService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('AlignedGridsService');\n };\n AlignedGridsService.prototype.init = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));\n };\n // common logic across all the fire methods\n AlignedGridsService.prototype.fireEvent = function (callback) {\n // if we are already consuming, then we are acting on an event from a master,\n // so we don't cause a cyclic firing of events\n if (this.consuming) {\n return;\n }\n // iterate through the aligned grids, and pass each aligned grid service to the callback\n var otherGrids = this.gridOptionsWrapper.getAlignedGrids();\n if (otherGrids) {\n otherGrids.forEach(function (otherGridOptions) {\n if (otherGridOptions.api) {\n var alignedGridService = otherGridOptions.api.__getAlignedGridService();\n callback(alignedGridService);\n }\n });\n }\n };\n // common logic across all consume methods. very little common logic, however extracting\n // guarantees consistency across the methods.\n AlignedGridsService.prototype.onEvent = function (callback) {\n this.consuming = true;\n callback();\n this.consuming = false;\n };\n AlignedGridsService.prototype.fireColumnEvent = function (event) {\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onColumnEvent(event);\n });\n };\n AlignedGridsService.prototype.fireScrollEvent = function (event) {\n if (event.direction !== 'horizontal') {\n return;\n }\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onScrollEvent(event);\n });\n };\n AlignedGridsService.prototype.onScrollEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left);\n });\n };\n AlignedGridsService.prototype.getMasterColumns = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column);\n });\n }\n else if (event.column) {\n result.push(event.column);\n }\n return result;\n };\n AlignedGridsService.prototype.getColumnIds = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column.getColId());\n });\n }\n else if (event.column) {\n result.push(event.column.getColId());\n }\n return result;\n };\n AlignedGridsService.prototype.onColumnEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n switch (event.type) {\n case Events.EVENT_COLUMN_MOVED:\n case Events.EVENT_COLUMN_VISIBLE:\n case Events.EVENT_COLUMN_PINNED:\n case Events.EVENT_COLUMN_RESIZED:\n var colEvent = event;\n _this.processColumnEvent(colEvent);\n break;\n case Events.EVENT_COLUMN_GROUP_OPENED:\n var groupOpenedEvent = event;\n _this.processGroupOpenedEvent(groupOpenedEvent);\n break;\n case Events.EVENT_COLUMN_PIVOT_CHANGED:\n // we cannot support pivoting with aligned grids as the columns will be out of sync as the\n // grids will have columns created based on the row data of the grid.\n console.warn('AG Grid: pivoting is not supported with aligned grids. ' +\n 'You can only use one of these features at a time in a grid.');\n break;\n }\n });\n };\n AlignedGridsService.prototype.processGroupOpenedEvent = function (groupOpenedEvent) {\n // likewise for column group\n var masterColumnGroup = groupOpenedEvent.columnGroup;\n var otherColumnGroup = null;\n if (masterColumnGroup) {\n var groupId = masterColumnGroup.getGroupId();\n otherColumnGroup = this.columnModel.getProvidedColumnGroup(groupId);\n }\n if (masterColumnGroup && !otherColumnGroup) {\n return;\n }\n this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterColumnGroup.isExpanded());\n this.columnModel.setColumnGroupOpened(otherColumnGroup, masterColumnGroup.isExpanded(), \"alignedGridChanged\");\n };\n AlignedGridsService.prototype.processColumnEvent = function (colEvent) {\n var _this = this;\n // the column in the event is from the master grid. need to\n // look up the equivalent from this (other) grid\n var masterColumn = colEvent.column;\n var otherColumn = null;\n if (masterColumn) {\n otherColumn = this.columnModel.getPrimaryColumn(masterColumn.getColId());\n }\n // if event was with respect to a master column, that is not present in this\n // grid, then we ignore the event\n if (masterColumn && !otherColumn) {\n return;\n }\n // in time, all the methods below should use the column ids, it's a more generic way\n // of handling columns, and also allows for single or multi column events\n var masterColumns = this.getMasterColumns(colEvent);\n switch (colEvent.type) {\n case Events.EVENT_COLUMN_MOVED:\n // when the user moves columns via setColumnState, we can't depend on moving specific columns\n // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).\n // so only way to be sure is match the order of all columns using Column State.\n {\n var movedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId }); });\n this.columnModel.applyColumnState({ state: destColState, applyOrder: true }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" toIndex = \" + movedEvent.toIndex);\n }\n break;\n case Events.EVENT_COLUMN_VISIBLE:\n // when the user changes visibility via setColumnState, we can't depend on visibility flag in event\n // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).\n // so only way to be sure is match the visibility of all columns using Column State.\n {\n var visibleEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, hide: s.hide }); });\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" visible = \" + visibleEvent.visible);\n }\n break;\n case Events.EVENT_COLUMN_PINNED:\n {\n var pinnedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, pinned: s.pinned }); });\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" pinned = \" + pinnedEvent.pinned);\n }\n break;\n case Events.EVENT_COLUMN_RESIZED:\n var resizedEvent_1 = colEvent;\n masterColumns.forEach(function (column) {\n _this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" actualWidth = \" + column.getActualWidth());\n var columnWidths = [{ key: column.getColId(), newWidth: column.getActualWidth() }];\n _this.columnModel.setColumnWidths(columnWidths, false, resizedEvent_1.finished, \"alignedGridChanged\");\n });\n break;\n }\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();\n var alignedGrids = this.gridOptionsWrapper.getAlignedGrids();\n if (alignedGrids) {\n alignedGrids.forEach(function (grid) {\n if (grid.api) {\n grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);\n }\n });\n }\n };\n __decorate$1P([\n Autowired('columnModel')\n ], AlignedGridsService.prototype, \"columnModel\", void 0);\n __decorate$1P([\n Autowired('ctrlsService')\n ], AlignedGridsService.prototype, \"ctrlsService\", void 0);\n __decorate$1P([\n __param$5(0, Qualifier('loggerFactory'))\n ], AlignedGridsService.prototype, \"setBeans\", null);\n __decorate$1P([\n PostConstruct\n ], AlignedGridsService.prototype, \"init\", null);\n AlignedGridsService = __decorate$1P([\n Bean('alignedGridsService')\n ], AlignedGridsService);\n return AlignedGridsService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$6 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SelectionService = /** @class */ (function (_super) {\n __extends$2a(SelectionService, _super);\n function SelectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('selectionService');\n this.reset();\n };\n SelectionService.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.addManagedListener(this.eventService, Events.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n };\n SelectionService.prototype.setLastSelectedNode = function (rowNode) {\n this.lastSelectedNode = rowNode;\n };\n SelectionService.prototype.getLastSelectedNode = function () {\n return this.lastSelectedNode;\n };\n SelectionService.prototype.getSelectedNodes = function () {\n var selectedNodes = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode) {\n selectedNodes.push(rowNode);\n }\n });\n return selectedNodes;\n };\n SelectionService.prototype.getSelectedRows = function () {\n var selectedRows = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode && rowNode.data) {\n selectedRows.push(rowNode.data);\n }\n });\n return selectedRows;\n };\n SelectionService.prototype.removeGroupsFromSelection = function () {\n var _this = this;\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode && rowNode.group) {\n _this.selectedNodes[rowNode.id] = undefined;\n }\n });\n };\n // should only be called if groupSelectsChildren=true\n SelectionService.prototype.updateGroupsFromChildrenSelections = function (changedPath) {\n // we only do this when group selection state depends on selected children\n if (!this.gridOptionsWrapper.isGroupSelectsChildren()) {\n return;\n }\n // also only do it if CSRM (code should never allow this anyway)\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n return;\n }\n var clientSideRowModel = this.rowModel;\n var rootNode = clientSideRowModel.getRootNode();\n if (!changedPath) {\n changedPath = new ChangedPath(true, rootNode);\n changedPath.setInactive();\n }\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n if (rowNode !== rootNode) {\n rowNode.calculateSelectedFromChildren();\n }\n });\n // clientSideRowModel.getTopLevelNodes()!.forEach((rowNode: RowNode) => {\n // rowNode.depthFirstSearch((node) => {\n // if (node.group) {\n // }\n // });\n // });\n };\n SelectionService.prototype.getNodeForIdIfSelected = function (id) {\n return this.selectedNodes[id];\n };\n SelectionService.prototype.clearOtherNodes = function (rowNodeToKeepSelected) {\n var _this = this;\n var groupsToRefresh = {};\n var updatedCount = 0;\n iterateObject(this.selectedNodes, function (key, otherRowNode) {\n if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {\n var rowNode = _this.selectedNodes[otherRowNode.id];\n updatedCount += rowNode.setSelectedParams({\n newValue: false,\n clearSelection: false,\n suppressFinishActions: true\n });\n if (_this.groupSelectsChildren && otherRowNode.parent) {\n groupsToRefresh[otherRowNode.parent.id] = otherRowNode.parent;\n }\n }\n });\n iterateObject(groupsToRefresh, function (key, group) {\n group.calculateSelectedFromChildren();\n });\n return updatedCount;\n };\n SelectionService.prototype.onRowSelected = function (event) {\n var rowNode = event.node;\n // we do not store the group rows when the groups select children\n if (this.groupSelectsChildren && rowNode.group) {\n return;\n }\n if (rowNode.isSelected()) {\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n this.selectedNodes[rowNode.id] = undefined;\n }\n };\n SelectionService.prototype.syncInRowNode = function (rowNode, oldNode) {\n this.syncInOldRowNode(rowNode, oldNode);\n this.syncInNewRowNode(rowNode);\n };\n // if the id has changed for the node, then this means the rowNode\n // is getting used for a different data item, which breaks\n // our selectedNodes, as the node now is mapped by the old id\n // which is inconsistent. so to keep the old node as selected,\n // we swap in the clone (with the old id and old data). this means\n // the oldNode is effectively a daemon we keep a reference to,\n // so if client calls api.getSelectedNodes(), it gets the daemon\n // in the result. when the client un-selects, the reference to the\n // daemon is removed. the daemon, because it's an oldNode, is not\n // used by the grid for rendering, it's a copy of what the node used\n // to be like before the id was changed.\n SelectionService.prototype.syncInOldRowNode = function (rowNode, oldNode) {\n var oldNodeHasDifferentId = exists(oldNode) && (rowNode.id !== oldNode.id);\n if (oldNodeHasDifferentId && oldNode) {\n var id = oldNode.id;\n var oldNodeSelected = this.selectedNodes[id] == rowNode;\n if (oldNodeSelected) {\n this.selectedNodes[oldNode.id] = oldNode;\n }\n }\n };\n SelectionService.prototype.syncInNewRowNode = function (rowNode) {\n if (exists(this.selectedNodes[rowNode.id])) {\n rowNode.setSelectedInitialValue(true);\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n rowNode.setSelectedInitialValue(false);\n }\n };\n SelectionService.prototype.reset = function () {\n this.logger.log('reset');\n this.selectedNodes = {};\n this.lastSelectedNode = null;\n };\n // returns a list of all nodes at 'best cost' - a feature to be used\n // with groups / trees. if a group has all it's children selected,\n // then the group appears in the result, but not the children.\n // Designed for use with 'children' as the group selection type,\n // where groups don't actually appear in the selection normally.\n SelectionService.prototype.getBestCostNodeSelection = function () {\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n console.warn('AG Grid: `getBestCostNodeSelection` is only available when using normal row model');\n return;\n }\n var clientSideRowModel = this.rowModel;\n var topLevelNodes = clientSideRowModel.getTopLevelNodes();\n if (topLevelNodes === null) {\n console.warn('AG Grid: `selectAll` not available doing `rowModel=virtual`');\n return;\n }\n var result = [];\n // recursive function, to find the selected nodes\n function traverse(nodes) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n var node = nodes[i];\n if (node.isSelected()) {\n result.push(node);\n }\n else {\n // if not selected, then if it's a group, and the group\n // has children, continue to search for selections\n var maybeGroup = node;\n if (maybeGroup.group && maybeGroup.children) {\n traverse(maybeGroup.children);\n }\n }\n }\n }\n traverse(topLevelNodes);\n return result;\n };\n SelectionService.prototype.setRowModel = function (rowModel) {\n this.rowModel = rowModel;\n };\n SelectionService.prototype.isEmpty = function () {\n var count = 0;\n iterateObject(this.selectedNodes, function (nodeId, rowNode) {\n if (rowNode) {\n count++;\n }\n });\n return count === 0;\n };\n SelectionService.prototype.deselectAllRowNodes = function (justFiltered) {\n if (justFiltered === void 0) { justFiltered = false; }\n var callback = function (rowNode) { return rowNode.selectThisNode(false); };\n var rowModelClientSide = this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n if (justFiltered) {\n if (!rowModelClientSide) {\n console.error('AG Grid: selecting just filtered only works with In Memory Row Model');\n return;\n }\n var clientSideRowModel = this.rowModel;\n clientSideRowModel.forEachNodeAfterFilter(callback);\n }\n else {\n iterateObject(this.selectedNodes, function (id, rowNode) {\n // remember the reference can be to null, as we never 'delete' from the map\n if (rowNode) {\n callback(rowNode);\n }\n });\n // this clears down the map (whereas above only sets the items in map to 'undefined')\n this.reset();\n }\n // the above does not clean up the parent rows if they are selected\n if (rowModelClientSide && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections();\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n SelectionService.prototype.selectAllRowNodes = function (justFiltered) {\n if (justFiltered === void 0) { justFiltered = false; }\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n throw new Error(\"selectAll only available with normal row model, ie not \" + this.rowModel.getType());\n }\n var clientSideRowModel = this.rowModel;\n var callback = function (rowNode) { return rowNode.selectThisNode(true); };\n if (justFiltered) {\n clientSideRowModel.forEachNodeAfterFilter(callback);\n }\n else {\n clientSideRowModel.forEachNode(callback);\n }\n // the above does not clean up the parent rows if they are selected\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections();\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.selectNode = function (rowNode, tryMulti) {\n if (rowNode) {\n rowNode.setSelectedParams({ newValue: true, clearSelection: !tryMulti });\n }\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.deselectIndex = function (rowIndex) {\n var node = this.rowModel.getRow(rowIndex);\n this.deselectNode(node);\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.deselectNode = function (rowNode) {\n if (rowNode) {\n rowNode.setSelectedParams({ newValue: false, clearSelection: false });\n }\n };\n /**\n * @method\n * @deprecated\n */\n SelectionService.prototype.selectIndex = function (index, tryMulti) {\n var node = this.rowModel.getRow(index);\n this.selectNode(node, tryMulti);\n };\n __decorate$1Q([\n Autowired('rowModel')\n ], SelectionService.prototype, \"rowModel\", void 0);\n __decorate$1Q([\n Autowired('columnApi')\n ], SelectionService.prototype, \"columnApi\", void 0);\n __decorate$1Q([\n Autowired('gridApi')\n ], SelectionService.prototype, \"gridApi\", void 0);\n __decorate$1Q([\n __param$6(0, Qualifier('loggerFactory'))\n ], SelectionService.prototype, \"setBeans\", null);\n __decorate$1Q([\n PostConstruct\n ], SelectionService.prototype, \"init\", null);\n SelectionService = __decorate$1Q([\n Bean('selectionService')\n ], SelectionService);\n return SelectionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnApi = /** @class */ (function () {\n function ColumnApi() {\n }\n /** Gets the grid to size the columns to the specified width in pixels, e.g. `sizeColumnsToFit(900)`. To have the grid fit the columns to the grid's width, use the Grid API `gridApi.sizeColumnsToFit()` instead. */\n ColumnApi.prototype.sizeColumnsToFit = function (gridWidth) {\n // AG-3403 validate that gridWidth is provided because this method has the same name as\n // a method on the grid API that takes no arguments, and it's easy to confuse the two\n if (typeof gridWidth === \"undefined\") {\n console.error('AG Grid: missing parameter to columnApi.sizeColumnsToFit(gridWidth)');\n }\n this.columnModel.sizeColumnsToFit(gridWidth, 'api');\n };\n /** Call this if you want to open or close a column group. */\n ColumnApi.prototype.setColumnGroupOpened = function (group, newValue) { this.columnModel.setColumnGroupOpened(group, newValue, 'api'); };\n /** Returns the column group with the given name. */\n ColumnApi.prototype.getColumnGroup = function (name, instanceId) { return this.columnModel.getColumnGroup(name, instanceId); };\n /** Returns the provided column group with the given name. */\n ColumnApi.prototype.getProvidedColumnGroup = function (name) { return this.columnModel.getProvidedColumnGroup(name); };\n /** Returns the display name for a column. Useful if you are doing your own header rendering and want the grid to work out if `headerValueGetter` is used, or if you are doing your own column management GUI, to know what to show as the column name. */\n ColumnApi.prototype.getDisplayNameForColumn = function (column, location) { return this.columnModel.getDisplayNameForColumn(column, location) || ''; };\n /** Returns the display name for a column group (when grouping columns). */\n ColumnApi.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) { return this.columnModel.getDisplayNameForColumnGroup(columnGroup, location) || ''; };\n /** Returns the column with the given `colKey`, which can either be the `colId` (a string) or the `colDef` (an object). */\n ColumnApi.prototype.getColumn = function (key) { return this.columnModel.getPrimaryColumn(key); };\n /** Applies the state of the columns from a previous state. Returns `false` if one or more columns could not be found. */\n ColumnApi.prototype.applyColumnState = function (params) { return this.columnModel.applyColumnState(params, 'api'); };\n /** Gets the state of the columns. Typically used when saving column state. */\n ColumnApi.prototype.getColumnState = function () { return this.columnModel.getColumnState(); };\n /** Sets the state back to match the originally provided column definitions. */\n ColumnApi.prototype.resetColumnState = function () { this.columnModel.resetColumnState('api'); };\n /** Gets the state of the column groups. Typically used when saving column group state. */\n ColumnApi.prototype.getColumnGroupState = function () { return this.columnModel.getColumnGroupState(); };\n /** Sets the state of the column group state from a previous state. */\n ColumnApi.prototype.setColumnGroupState = function (stateItems) { this.columnModel.setColumnGroupState(stateItems, 'api'); };\n /** Sets the state back to match the originally provided column definitions. */\n ColumnApi.prototype.resetColumnGroupState = function () { this.columnModel.resetColumnGroupState('api'); };\n /** Returns `true` if pinning left or right, otherwise `false`. */\n ColumnApi.prototype.isPinning = function () { return this.columnModel.isPinningLeft() || this.columnModel.isPinningRight(); };\n /** Returns `true` if pinning left, otherwise `false`. */\n ColumnApi.prototype.isPinningLeft = function () { return this.columnModel.isPinningLeft(); };\n /** Returns `true` if pinning right, otherwise `false`. */\n ColumnApi.prototype.isPinningRight = function () { return this.columnModel.isPinningRight(); };\n /** Returns the column to the right of the provided column, taking into consideration open / closed column groups and visible columns. This is useful if you need to know what column is beside yours e.g. if implementing your own cell navigation. */\n ColumnApi.prototype.getDisplayedColAfter = function (col) { return this.columnModel.getDisplayedColAfter(col); };\n /** Same as `getVisibleColAfter` except gives column to the left. */\n ColumnApi.prototype.getDisplayedColBefore = function (col) { return this.columnModel.getDisplayedColBefore(col); };\n /** Sets the visibility of a column. Key can be the column ID or `Column` object. */\n ColumnApi.prototype.setColumnVisible = function (key, visible) { this.columnModel.setColumnVisible(key, visible, 'api'); };\n /** Same as `setColumnVisible`, but provide a list of column keys. */\n ColumnApi.prototype.setColumnsVisible = function (keys, visible) { this.columnModel.setColumnsVisible(keys, visible, 'api'); };\n /** Sets the column pinned / unpinned. Key can be the column ID, field, `ColDef` object or `Column` object. */\n ColumnApi.prototype.setColumnPinned = function (key, pinned) { this.columnModel.setColumnPinned(key, pinned, 'api'); };\n /** Same as `setColumnPinned`, but provide a list of column keys. */\n ColumnApi.prototype.setColumnsPinned = function (keys, pinned) { this.columnModel.setColumnsPinned(keys, pinned, 'api'); };\n /** Returns all the columns, regardless of visible or not. */\n ColumnApi.prototype.getAllColumns = function () { return this.columnModel.getAllPrimaryColumns(); };\n /**\n * Returns all the grid columns, same as `getAllColumns()`, except\n *\n * a) it has the order of the columns that are presented in the grid\n *\n * b) it's after the 'pivot' step, so if pivoting, has the value columns for the pivot.\n */\n ColumnApi.prototype.getAllGridColumns = function () { return this.columnModel.getAllGridColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the pinned left portion of the grid. */\n ColumnApi.prototype.getDisplayedLeftColumns = function () { return this.columnModel.getDisplayedLeftColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the center portion of the grid. */\n ColumnApi.prototype.getDisplayedCenterColumns = function () { return this.columnModel.getDisplayedCenterColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the pinned right portion of the grid. */\n ColumnApi.prototype.getDisplayedRightColumns = function () { return this.columnModel.getDisplayedRightColumns(); };\n /** Returns all columns currently displayed (e.g. are visible and if in a group, the group is showing the columns) for the pinned left, centre and pinned right portions of the grid. */\n ColumnApi.prototype.getAllDisplayedColumns = function () { return this.columnModel.getAllDisplayedColumns(); };\n /** Same as `getAllGridColumns()`, except only returns rendered columns, i.e. columns that are not within the viewport and therefore not rendered, due to column virtualisation, are not displayed. */\n ColumnApi.prototype.getAllDisplayedVirtualColumns = function () { return this.columnModel.getViewportColumns(); };\n /** Moves a column to `toIndex`. The column is first removed, then added at the `toIndex` location, thus index locations will change to the right of the column after the removal. */\n ColumnApi.prototype.moveColumn = function (key, toIndex) {\n if (typeof key === 'number') {\n // moveColumn used to take indexes, so this is advising user who hasn't moved to new method name\n console.warn('AG Grid: you are using moveColumn(fromIndex, toIndex) - moveColumn takes a column key and a destination index, not two indexes, to move with indexes use moveColumnByIndex(from,to) instead');\n this.columnModel.moveColumnByIndex(key, toIndex, 'api');\n }\n else {\n this.columnModel.moveColumn(key, toIndex, 'api');\n }\n };\n /** Same as `moveColumn` but works on index locations. */\n ColumnApi.prototype.moveColumnByIndex = function (fromIndex, toIndex) { this.columnModel.moveColumnByIndex(fromIndex, toIndex, 'api'); };\n /** Same as `moveColumn` but works on list. */\n ColumnApi.prototype.moveColumns = function (columnsToMoveKeys, toIndex) { this.columnModel.moveColumns(columnsToMoveKeys, toIndex, 'api'); };\n /** Move the column to a new position in the row grouping order. */\n ColumnApi.prototype.moveRowGroupColumn = function (fromIndex, toIndex) { this.columnModel.moveRowGroupColumn(fromIndex, toIndex); };\n /** Sets the agg function for a column. `aggFunc` can be one of `'min' | 'max' | 'sum'`. */\n ColumnApi.prototype.setColumnAggFunc = function (key, aggFunc) { this.columnModel.setColumnAggFunc(key, aggFunc); };\n /** Sets the column width on a single column. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */\n ColumnApi.prototype.setColumnWidth = function (key, newWidth, finished, source) {\n if (finished === void 0) { finished = true; }\n this.columnModel.setColumnWidths([{ key: key, newWidth: newWidth }], false, finished, source);\n };\n /** Sets the column widths on multiple columns. This method offers better performance than calling `setColumnWidth` multiple times. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */\n ColumnApi.prototype.setColumnWidths = function (columnWidths, finished, source) {\n if (finished === void 0) { finished = true; }\n this.columnModel.setColumnWidths(columnWidths, false, finished, source);\n };\n /** Set the pivot mode. */\n ColumnApi.prototype.setPivotMode = function (pivotMode) { this.columnModel.setPivotMode(pivotMode); };\n /** Get the pivot mode. */\n ColumnApi.prototype.isPivotMode = function () { return this.columnModel.isPivotMode(); };\n /** Returns the pivot column for the given `pivotKeys` and `valueColId`. Useful to then call operations on the pivot column. */\n ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) { return this.columnModel.getSecondaryPivotColumn(pivotKeys, valueColKey); };\n /** Set the value columns. */\n ColumnApi.prototype.setValueColumns = function (colKeys) { this.columnModel.setValueColumns(colKeys, 'api'); };\n /** Get value columns. */\n ColumnApi.prototype.getValueColumns = function () { return this.columnModel.getValueColumns(); };\n /** Remove a value column. */\n ColumnApi.prototype.removeValueColumn = function (colKey) { this.columnModel.removeValueColumn(colKey, 'api'); };\n /** Same as `removeValueColumns` but provide a list. */\n ColumnApi.prototype.removeValueColumns = function (colKeys) { this.columnModel.removeValueColumns(colKeys, 'api'); };\n /** Add a value column. */\n ColumnApi.prototype.addValueColumn = function (colKey) { this.columnModel.addValueColumn(colKey, 'api'); };\n /** Same as `addValueColumn` but provide a list. */\n ColumnApi.prototype.addValueColumns = function (colKeys) { this.columnModel.addValueColumns(colKeys, 'api'); };\n /** Set the row group columns. */\n ColumnApi.prototype.setRowGroupColumns = function (colKeys) { this.columnModel.setRowGroupColumns(colKeys, 'api'); };\n /** Remove a column from the row groups. */\n ColumnApi.prototype.removeRowGroupColumn = function (colKey) { this.columnModel.removeRowGroupColumn(colKey, 'api'); };\n /** Same as `removeRowGroupColumn` but provide a list of columns. */\n ColumnApi.prototype.removeRowGroupColumns = function (colKeys) { this.columnModel.removeRowGroupColumns(colKeys, 'api'); };\n /** Add a column to the row groups. */\n ColumnApi.prototype.addRowGroupColumn = function (colKey) { this.columnModel.addRowGroupColumn(colKey, 'api'); };\n /** Same as `addRowGroupColumn` but provide a list of columns. */\n ColumnApi.prototype.addRowGroupColumns = function (colKeys) { this.columnModel.addRowGroupColumns(colKeys, 'api'); };\n /** Get row group columns. */\n ColumnApi.prototype.getRowGroupColumns = function () { return this.columnModel.getRowGroupColumns(); };\n /** Set the pivot columns. */\n ColumnApi.prototype.setPivotColumns = function (colKeys) { this.columnModel.setPivotColumns(colKeys, 'api'); };\n /** Remove a pivot column. */\n ColumnApi.prototype.removePivotColumn = function (colKey) { this.columnModel.removePivotColumn(colKey, 'api'); };\n /** Same as `removePivotColumn` but provide a list of columns. */\n ColumnApi.prototype.removePivotColumns = function (colKeys) { this.columnModel.removePivotColumns(colKeys, 'api'); };\n /** Add a pivot column. */\n ColumnApi.prototype.addPivotColumn = function (colKey) { this.columnModel.addPivotColumn(colKey, 'api'); };\n /** Same as `addPivotColumn` but provide a list of columns. */\n ColumnApi.prototype.addPivotColumns = function (colKeys) { this.columnModel.addPivotColumns(colKeys, 'api'); };\n /** Get the pivot columns. */\n ColumnApi.prototype.getPivotColumns = function () { return this.columnModel.getPivotColumns(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned left portion of the grid. */\n ColumnApi.prototype.getLeftDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeLeft(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the center portion of the grid. */\n ColumnApi.prototype.getCenterDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeCentre(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned right portion of the grid. */\n ColumnApi.prototype.getRightDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeRight(); };\n /** Returns all 'root' column headers. If you are not grouping columns, these return the columns. If you are grouping, these return the top level groups - you can navigate down through each one to get the other lower level headers and finally the columns at the bottom. */\n ColumnApi.prototype.getAllDisplayedColumnGroups = function () { return this.columnModel.getAllDisplayedTrees(); };\n /** Auto-sizes a column based on its contents. */\n ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnModel.autoSizeColumn(key, skipHeader, 'api'); };\n /** Same as `autoSizeColumn`, but provide a list of column keys. */\n ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) {\n this.columnModel.autoSizeColumns({ columns: keys, skipHeader: skipHeader });\n };\n /** Calls `autoSizeColumns` on all displayed columns. */\n ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnModel.autoSizeAllColumns(skipHeader, 'api'); };\n /** Set the secondary pivot columns. */\n ColumnApi.prototype.setSecondaryColumns = function (colDefs) { this.columnModel.setSecondaryColumns(colDefs, 'api'); };\n /** Returns the grid's secondary columns. */\n ColumnApi.prototype.getSecondaryColumns = function () { return this.columnModel.getSecondaryColumns(); };\n /** Returns the grid's primary columns. */\n ColumnApi.prototype.getPrimaryColumns = function () { return this.columnModel.getAllPrimaryColumns(); };\n ColumnApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in the API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(_.removeAllReferences.bind(window, this, 'Column API'), 100);\n };\n // below goes through deprecated items, prints message to user, then calls the new version of the same method\n // public getColumnDefs(): (ColDef | ColGroupDef)[] {\n // this.setColumnGroupOpened(group, newValue);\n // return null;\n // }\n /** @deprecated columnGroupOpened no longer exists, use setColumnGroupOpened */\n ColumnApi.prototype.columnGroupOpened = function (group, newValue) {\n console.error('AG Grid: columnGroupOpened no longer exists, use setColumnGroupOpened');\n this.setColumnGroupOpened(group, newValue);\n };\n /** @deprecated hideColumns is deprecated, use setColumnsVisible */\n ColumnApi.prototype.hideColumns = function (colIds, hide) {\n console.error('AG Grid: hideColumns is deprecated, use setColumnsVisible');\n this.columnModel.setColumnsVisible(colIds, !hide, 'api');\n };\n /** @deprecated hideColumn is deprecated, use setColumnVisible */\n ColumnApi.prototype.hideColumn = function (colId, hide) {\n console.error('AG Grid: hideColumn is deprecated, use setColumnVisible');\n this.columnModel.setColumnVisible(colId, !hide, 'api');\n };\n /** @deprecated setState is deprecated, use setColumnState */\n ColumnApi.prototype.setState = function (columnState) {\n console.error('AG Grid: setState is deprecated, use setColumnState');\n return this.setColumnState(columnState);\n };\n /** @deprecated getState is deprecated, use getColumnState */\n ColumnApi.prototype.getState = function () {\n console.error('AG Grid: getState is deprecated, use getColumnState');\n return this.getColumnState();\n };\n /** @deprecated resetState is deprecated, use resetColumnState */\n ColumnApi.prototype.resetState = function () {\n console.error('AG Grid: resetState is deprecated, use resetColumnState');\n this.resetColumnState();\n };\n /** @deprecated getAggregationColumns is deprecated, use getValueColumns */\n ColumnApi.prototype.getAggregationColumns = function () {\n console.error('AG Grid: getAggregationColumns is deprecated, use getValueColumns');\n return this.columnModel.getValueColumns();\n };\n /** @deprecated removeAggregationColumn is deprecated, use removeValueColumn */\n ColumnApi.prototype.removeAggregationColumn = function (colKey) {\n console.error('AG Grid: removeAggregationColumn is deprecated, use removeValueColumn');\n this.columnModel.removeValueColumn(colKey, 'api');\n };\n /** @deprecated removeAggregationColumns is deprecated, use removeValueColumns */\n ColumnApi.prototype.removeAggregationColumns = function (colKeys) {\n console.error('AG Grid: removeAggregationColumns is deprecated, use removeValueColumns');\n this.columnModel.removeValueColumns(colKeys, 'api');\n };\n /** @deprecated addAggregationColumn is deprecated, use addValueColumn */\n ColumnApi.prototype.addAggregationColumn = function (colKey) {\n console.error('AG Grid: addAggregationColumn is deprecated, use addValueColumn');\n this.columnModel.addValueColumn(colKey, 'api');\n };\n /** @deprecated addAggregationColumns is deprecated, use addValueColumns */\n ColumnApi.prototype.addAggregationColumns = function (colKeys) {\n console.error('AG Grid: addAggregationColumns is deprecated, use addValueColumns');\n this.columnModel.addValueColumns(colKeys, 'api');\n };\n /** @deprecated setColumnAggFunction is deprecated, use setColumnAggFunc */\n ColumnApi.prototype.setColumnAggFunction = function (column, aggFunc) {\n console.error('AG Grid: setColumnAggFunction is deprecated, use setColumnAggFunc');\n this.columnModel.setColumnAggFunc(column, aggFunc, 'api');\n };\n /** @deprecated getDisplayNameForCol is deprecated, use getDisplayNameForColumn */\n ColumnApi.prototype.getDisplayNameForCol = function (column) {\n console.error('AG Grid: getDisplayNameForCol is deprecated, use getDisplayNameForColumn');\n return this.getDisplayNameForColumn(column, null);\n };\n /** @deprecated setColumnState is deprecated, use applyColumnState. */\n ColumnApi.prototype.setColumnState = function (columnState) {\n console.error('AG Grid: setColumnState is deprecated, use applyColumnState');\n return this.columnModel.applyColumnState({ state: columnState, applyOrder: true }, 'api');\n };\n /** @deprecated getOriginalColumnGroup is deprecated, use getProvidedColumnGroup. */\n ColumnApi.prototype.getOriginalColumnGroup = function (name) {\n console.error('AG Grid: getOriginalColumnGroup is deprecated, use getProvidedColumnGroup');\n return this.columnModel.getProvidedColumnGroup(name);\n };\n __decorate$1R([\n Autowired('columnModel')\n ], ColumnApi.prototype, \"columnModel\", void 0);\n __decorate$1R([\n PreDestroy\n ], ColumnApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n ColumnApi = __decorate$1R([\n Bean('columnApi')\n ], ColumnApi);\n return ColumnApi;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueService = /** @class */ (function (_super) {\n __extends$2b(ValueService, _super);\n function ValueService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.initialised = false;\n return _this;\n }\n ValueService.prototype.init = function () {\n var _this = this;\n this.cellExpressions = this.gridOptionsWrapper.isEnableCellExpressions();\n this.initialised = true;\n // We listen to our own event and use it to call the columnSpecific callback,\n // this way the handler calls are correctly interleaved with other global events\n this.eventService.addEventListener(Events.EVENT_CELL_VALUE_CHANGED, function (event) { return _this.callColumnCellValueChangedHandler(event); }, this.gridOptionsWrapper.useAsyncEvents());\n };\n ValueService.prototype.getValue = function (column, rowNode, forFilter, ignoreAggData) {\n if (forFilter === void 0) { forFilter = false; }\n if (ignoreAggData === void 0) { ignoreAggData = false; }\n // hack - the grid is getting refreshed before this bean gets initialised, race condition.\n // really should have a way so they get initialised in the right order???\n if (!this.initialised) {\n this.init();\n }\n if (!rowNode) {\n return;\n }\n // pull these out to make code below easier to read\n var colDef = column.getColDef();\n var field = colDef.field;\n var colId = column.getId();\n var data = rowNode.data;\n var result;\n // if there is a value getter, this gets precedence over a field\n var groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;\n var aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;\n if (forFilter && colDef.filterValueGetter) {\n result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);\n }\n else if (this.gridOptionsWrapper.isTreeData() && aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (this.gridOptionsWrapper.isTreeData() && colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (this.gridOptionsWrapper.isTreeData() && (field && data)) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n else if (groupDataExists) {\n result = rowNode.groupData[colId];\n }\n else if (aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (field && data) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n // the result could be an expression itself, if we are allowing cell values to be expressions\n if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {\n var cellValueGetter = result.substring(1);\n result = this.executeValueGetter(cellValueGetter, data, column, rowNode);\n }\n if (result == null) {\n var openedGroup = this.getOpenedGroup(rowNode, column);\n if (openedGroup != null) {\n return openedGroup;\n }\n }\n return result;\n };\n ValueService.prototype.getOpenedGroup = function (rowNode, column) {\n if (!this.gridOptionsWrapper.isShowOpenedGroup()) {\n return;\n }\n var colDef = column.getColDef();\n if (!colDef.showRowGroup) {\n return;\n }\n var showRowGroup = column.getColDef().showRowGroup;\n var pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getId())) {\n return pointer.key;\n }\n pointer = pointer.parent;\n }\n return undefined;\n };\n /**\n * Sets the value of a GridCell\n * @param rowNode The `RowNode` to be updated\n * @param colKey The `Column` to be updated\n * @param newValue The new value to be set\n * @param eventSource The event source\n * @returns `True` if the value has been updated, otherwise`False`.\n */\n ValueService.prototype.setValue = function (rowNode, colKey, newValue, eventSource) {\n var column = this.columnModel.getPrimaryColumn(colKey);\n if (!rowNode || !column) {\n return false;\n }\n // this will only happen if user is trying to paste into a group row, which doesn't make sense\n // the user should not be trying to paste into group rows\n if (missing(rowNode.data)) {\n rowNode.data = {};\n }\n // for backwards compatibility we are also retrieving the newValueHandler as well as the valueSetter\n var _a = column.getColDef(), field = _a.field, newValueHandler = _a.newValueHandler, valueSetter = _a.valueSetter;\n // need either a field or a newValueHandler for this to work\n if (missing(field) && missing(newValueHandler) && missing(valueSetter)) {\n // we don't tell user about newValueHandler, as that is deprecated\n console.warn(\"AG Grid: you need either field or valueSetter set on colDef for editing to work\");\n return false;\n }\n var params = {\n node: rowNode,\n data: rowNode.data,\n oldValue: this.getValue(column, rowNode),\n newValue: newValue,\n colDef: column.getColDef(),\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n params.newValue = newValue;\n var valueWasDifferent;\n if (newValueHandler && exists(newValueHandler)) {\n valueWasDifferent = newValueHandler(params);\n }\n else if (exists(valueSetter)) {\n valueWasDifferent = this.expressionService.evaluate(valueSetter, params);\n }\n else {\n valueWasDifferent = this.setValueUsingField(rowNode.data, field, newValue, column.isFieldContainsDots());\n }\n // in case user forgot to return something (possible if they are not using TypeScript\n // and just forgot, or using an old newValueHandler we didn't always expect a return\n // value here), we default the return value to true, so we always refresh.\n if (valueWasDifferent === undefined) {\n valueWasDifferent = true;\n }\n // if no change to the value, then no need to do the updating, or notifying via events.\n // otherwise the user could be tabbing around the grid, and cellValueChange would get called\n // all the time.\n if (!valueWasDifferent) {\n return false;\n }\n // reset quick filter on this row\n rowNode.resetQuickFilterAggregateText();\n this.valueCache.onDataChanged();\n params.newValue = this.getValue(column, rowNode);\n var event = {\n type: Events.EVENT_CELL_VALUE_CHANGED,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: params.column,\n api: params.api,\n columnApi: params.columnApi,\n colDef: params.colDef,\n context: params.context,\n data: rowNode.data,\n node: rowNode,\n oldValue: params.oldValue,\n newValue: params.newValue,\n value: params.newValue,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n return true;\n };\n ValueService.prototype.callColumnCellValueChangedHandler = function (event) {\n var onCellValueChanged = event.colDef.onCellValueChanged;\n if (typeof onCellValueChanged === 'function') {\n onCellValueChanged({\n node: event.node,\n data: event.data,\n oldValue: event.oldValue,\n newValue: event.newValue,\n colDef: event.colDef,\n column: event.column,\n api: event.api,\n columnApi: event.columnApi,\n context: event.context\n });\n }\n };\n ValueService.prototype.setValueUsingField = function (data, field, newValue, isFieldContainsDots) {\n if (!field) {\n return false;\n }\n // if no '.', then it's not a deep value\n var valuesAreSame = false;\n if (!isFieldContainsDots) {\n data[field] = newValue;\n }\n else {\n // otherwise it is a deep value, so need to dig for it\n var fieldPieces = field.split('.');\n var currentObject = data;\n while (fieldPieces.length > 0 && currentObject) {\n var fieldPiece = fieldPieces.shift();\n if (fieldPieces.length === 0) {\n currentObject[fieldPiece] = newValue;\n }\n else {\n currentObject = currentObject[fieldPiece];\n }\n }\n }\n return !valuesAreSame;\n };\n ValueService.prototype.executeFilterValueGetter = function (valueGetter, data, column, rowNode) {\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n return this.expressionService.evaluate(valueGetter, params);\n };\n ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {\n var colId = column.getId();\n // if inside the same turn, just return back the value we got last time\n var valueFromCache = this.valueCache.getValue(rowNode, colId);\n if (valueFromCache !== undefined) {\n return valueFromCache;\n }\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n var result = this.expressionService.evaluate(valueGetter, params);\n // if a turn is active, store the value in case the grid asks for it again\n this.valueCache.setValue(rowNode, colId, result);\n return result;\n };\n ValueService.prototype.getValueCallback = function (node, field) {\n var otherColumn = this.columnModel.getPrimaryColumn(field);\n if (otherColumn) {\n return this.getValue(otherColumn, node);\n }\n return null;\n };\n // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col\n ValueService.prototype.getKeyForNode = function (col, rowNode) {\n var value = this.getValue(col, rowNode);\n var keyCreator = col.getColDef().keyCreator;\n var result = value;\n if (keyCreator) {\n var keyParams = {\n value: value,\n colDef: col.getColDef(),\n column: col,\n node: rowNode,\n data: rowNode.data,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n result = keyCreator(keyParams);\n }\n // if already a string, or missing, just return it\n if (typeof result === 'string' || result == null) {\n return result;\n }\n result = String(result);\n if (result === '[object Object]') {\n doOnce(function () {\n console.warn('AG Grid: a column you are grouping or pivoting by has objects as values. If you want to group by complex objects then either a) use a colDef.keyCreator (se AG Grid docs) or b) to toString() on the object to return a key');\n }, 'getKeyForNode - warn about [object,object]');\n }\n return result;\n };\n __decorate$1S([\n Autowired('expressionService')\n ], ValueService.prototype, \"expressionService\", void 0);\n __decorate$1S([\n Autowired('columnModel')\n ], ValueService.prototype, \"columnModel\", void 0);\n __decorate$1S([\n Autowired('valueCache')\n ], ValueService.prototype, \"valueCache\", void 0);\n __decorate$1S([\n PostConstruct\n ], ValueService.prototype, \"init\", null);\n ValueService = __decorate$1S([\n Bean('valueService')\n ], ValueService);\n return ValueService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$7 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ExpressionService = /** @class */ (function (_super) {\n __extends$2c(ExpressionService, _super);\n function ExpressionService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.expressionToFunctionCache = {};\n return _this;\n }\n ExpressionService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ExpressionService');\n };\n ExpressionService.prototype.evaluate = function (expressionOrFunc, params) {\n if (typeof expressionOrFunc === 'function') {\n // valueGetter is a function, so just call it\n var func = expressionOrFunc;\n return func(params);\n }\n else if (typeof expressionOrFunc === 'string') {\n // valueGetter is an expression, so execute the expression\n var expression = expressionOrFunc;\n return this.evaluateExpression(expression, params);\n }\n else {\n console.error('AG Grid: value should be either a string or a function', expressionOrFunc);\n }\n };\n ExpressionService.prototype.evaluateExpression = function (expression, params) {\n try {\n var javaScriptFunction = this.createExpressionFunction(expression);\n // the params don't have all these values, rather we add every possible\n // value a params can have, which makes whatever is in the params available.\n var result = javaScriptFunction(params.value, params.context, params.oldValue, params.newValue, params.value, params.node, params.data, params.colDef, params.rowIndex, params.api, params.columnApi, params.getValue, params.column, params.columnGroup);\n return result;\n }\n catch (e) {\n // the expression failed, which can happen, as it's the client that\n // provides the expression. so print a nice message\n // tslint:disable-next-line\n console.log('Processing of the expression failed');\n // tslint:disable-next-line\n console.log('Expression = ' + expression);\n // tslint:disable-next-line\n console.log('Params =', params);\n // tslint:disable-next-line\n console.log('Exception = ' + e);\n return null;\n }\n };\n ExpressionService.prototype.createExpressionFunction = function (expression) {\n // check cache first\n if (this.expressionToFunctionCache[expression]) {\n return this.expressionToFunctionCache[expression];\n }\n // if not found in cache, return the function\n var functionBody = this.createFunctionBody(expression);\n var theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);\n // store in cache\n this.expressionToFunctionCache[expression] = theFunction;\n return theFunction;\n };\n ExpressionService.prototype.createFunctionBody = function (expression) {\n // if the expression has the 'return' word in it, then use as is,\n // if not, then wrap it with return and ';' to make a function\n if (expression.indexOf('return') >= 0) {\n return expression;\n }\n else {\n return 'return ' + expression + ';';\n }\n };\n __decorate$1T([\n __param$7(0, Qualifier('loggerFactory'))\n ], ExpressionService.prototype, \"setBeans\", null);\n ExpressionService = __decorate$1T([\n Bean('expressionService')\n ], ExpressionService);\n return ExpressionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TemplateService = /** @class */ (function (_super) {\n __extends$2d(TemplateService, _super);\n function TemplateService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.templateCache = {};\n _this.waitingCallbacks = {};\n return _this;\n }\n // returns the template if it is loaded, or null if it is not loaded\n // but will call the callback when it is loaded\n TemplateService.prototype.getTemplate = function (url, callback) {\n var templateFromCache = this.templateCache[url];\n if (templateFromCache) {\n return templateFromCache;\n }\n var callbackList = this.waitingCallbacks[url];\n var that = this;\n if (!callbackList) {\n // first time this was called, so need a new list for callbacks\n callbackList = [];\n this.waitingCallbacks[url] = callbackList;\n // and also need to do the http request\n var client = new XMLHttpRequest();\n client.onload = function () {\n that.handleHttpResult(this, url);\n };\n client.open(\"GET\", url);\n client.send();\n }\n // add this callback\n if (callback) {\n callbackList.push(callback);\n }\n // caller needs to wait for template to load, so return null\n return null;\n };\n TemplateService.prototype.handleHttpResult = function (httpResult, url) {\n if (httpResult.status !== 200 || httpResult.response === null) {\n console.warn(\"AG Grid: Unable to get template error \" + httpResult.status + \" - \" + url);\n return;\n }\n // response success, so process it\n // in IE9 the response is in - responseText\n this.templateCache[url] = httpResult.response || httpResult.responseText;\n // inform all listeners that this is now in the cache\n var callbacks = this.waitingCallbacks[url];\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n // we could pass the callback the response, however we know the client of this code\n // is the cell renderer, and it passes the 'cellRefresh' method in as the callback\n // which doesn't take any parameters.\n callback();\n }\n };\n TemplateService = __decorate$1U([\n Bean('templateService')\n ], TemplateService);\n return TemplateService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$8 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LoggerFactory = /** @class */ (function (_super) {\n __extends$2e(LoggerFactory, _super);\n function LoggerFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoggerFactory.prototype.setBeans = function (gridOptionsWrapper) {\n this.logging = gridOptionsWrapper.isDebug();\n };\n LoggerFactory.prototype.create = function (name) {\n return new Logger(name, this.isLogging.bind(this));\n };\n LoggerFactory.prototype.isLogging = function () {\n return this.logging;\n };\n __decorate$1V([\n __param$8(0, Qualifier('gridOptionsWrapper'))\n ], LoggerFactory.prototype, \"setBeans\", null);\n LoggerFactory = __decorate$1V([\n Bean('loggerFactory')\n ], LoggerFactory);\n return LoggerFactory;\n}(BeanStub));\nvar Logger = /** @class */ (function () {\n function Logger(name, isLoggingFunc) {\n this.name = name;\n this.isLoggingFunc = isLoggingFunc;\n }\n Logger.prototype.isLogging = function () {\n return this.isLoggingFunc();\n };\n Logger.prototype.log = function (message) {\n if (this.isLoggingFunc()) {\n // tslint:disable-next-line\n console.log('AG Grid.' + this.name + ': ' + message);\n }\n };\n return Logger;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridCtrl = /** @class */ (function (_super) {\n __extends$2f(GridCtrl, _super);\n function GridCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridCtrl.prototype.setComp = function (view, eGridDiv, eGui) {\n var _this = this;\n this.view = view;\n this.eGridHostDiv = eGridDiv;\n this.eGui = eGui;\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);\n this.createManagedBean(new LayoutFeature(this.view));\n // important to set rtl before doLayout, as setting the RTL class impacts the scroll position,\n // which doLayout indirectly depends on\n this.addRtlSupport();\n this.addManagedListener(this, Events.EVENT_KEYBOARD_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(true);\n });\n this.addManagedListener(this, Events.EVENT_MOUSE_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(false);\n });\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n this.ctrlsService.registerGridCtrl(this);\n };\n GridCtrl.prototype.isDetailGrid = function () {\n var _a, _b;\n var el = this.focusService.findTabbableParent(this.getGui());\n return ((_b = (_a = el) === null || _a === void 0 ? void 0 : _a.getAttribute('row-id')) === null || _b === void 0 ? void 0 : _b.startsWith('detail')) || false;\n };\n GridCtrl.prototype.showDropZones = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.RowGroupingModule);\n };\n GridCtrl.prototype.showSideBar = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.SideBarModule);\n };\n GridCtrl.prototype.showStatusBar = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.StatusBarModule);\n };\n GridCtrl.prototype.showWatermark = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.EnterpriseCoreModule);\n };\n GridCtrl.prototype.onGridSizeChanged = function () {\n var event = {\n type: Events.EVENT_GRID_SIZE_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi,\n clientWidth: this.eGridHostDiv.clientWidth,\n clientHeight: this.eGridHostDiv.clientHeight\n };\n this.eventService.dispatchEvent(event);\n };\n GridCtrl.prototype.addRtlSupport = function () {\n var cssClass = this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr';\n this.view.setRtlClass(cssClass);\n };\n GridCtrl.prototype.destroyGridUi = function () {\n this.view.destroyGridUi();\n };\n GridCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n GridCtrl.prototype.setResizeCursor = function (on) {\n this.view.setCursor(on ? 'ew-resize' : null);\n };\n GridCtrl.prototype.disableUserSelect = function (on) {\n this.view.setUserSelect(on ? 'none' : null);\n };\n GridCtrl.prototype.focusNextInnerContainer = function (backwards) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var focusableContainers = this.view.getFocusableContainers();\n var idxWithFocus = focusableContainers.findIndex(function (container) { return container.contains(eDocument.activeElement); });\n var nextIdx = idxWithFocus + (backwards ? -1 : 1);\n if (nextIdx <= 0 || nextIdx >= focusableContainers.length) {\n return false;\n }\n return this.focusService.focusInto(focusableContainers[nextIdx]);\n };\n GridCtrl.prototype.focusInnerElement = function (fromBottom) {\n var focusableContainers = this.view.getFocusableContainers();\n if (fromBottom) {\n if (focusableContainers.length > 1) {\n return this.focusService.focusInto(last(focusableContainers), true);\n }\n var lastColumn = last(this.columnModel.getAllDisplayedColumns());\n if (this.focusService.focusGridView(lastColumn, true)) {\n return true;\n }\n }\n return this.focusService.focusFirstHeader();\n };\n GridCtrl.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n this.view.forceFocusOutOfContainer(up);\n };\n __decorate$1W([\n Autowired('columnApi')\n ], GridCtrl.prototype, \"columnApi\", void 0);\n __decorate$1W([\n Autowired('gridApi')\n ], GridCtrl.prototype, \"gridApi\", void 0);\n __decorate$1W([\n Autowired('focusService')\n ], GridCtrl.prototype, \"focusService\", void 0);\n __decorate$1W([\n Autowired('resizeObserverService')\n ], GridCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$1W([\n Autowired('columnModel')\n ], GridCtrl.prototype, \"columnModel\", void 0);\n __decorate$1W([\n Autowired('ctrlsService')\n ], GridCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1W([\n Autowired('mouseEventService')\n ], GridCtrl.prototype, \"mouseEventService\", void 0);\n return GridCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridComp = /** @class */ (function (_super) {\n __extends$2g(GridComp, _super);\n function GridComp(eGridDiv) {\n var _this = _super.call(this, undefined) || this;\n _this.eGridDiv = eGridDiv;\n return _this;\n }\n GridComp.prototype.postConstruct = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('GridComp');\n var compProxy = {\n destroyGridUi: function () { return _this.destroyBean(_this); },\n setRtlClass: function (cssClass) { return _this.addCssClass(cssClass); },\n addOrRemoveKeyboardFocusClass: function (addOrRemove) { return _this.addOrRemoveCssClass(FocusService.AG_KEYBOARD_FOCUS, addOrRemove); },\n forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),\n updateLayoutClasses: this.updateLayoutClasses.bind(this),\n getFocusableContainers: this.getFocusableContainers.bind(this),\n setUserSelect: function (value) {\n _this.getGui().style.userSelect = value != null ? value : '';\n _this.getGui().style.webkitUserSelect = value != null ? value : '';\n },\n setCursor: function (value) {\n _this.getGui().style.cursor = value != null ? value : '';\n }\n };\n this.ctrl = this.createManagedBean(new GridCtrl());\n var template = this.createTemplate();\n this.setTemplate(template);\n this.ctrl.setComp(compProxy, this.eGridDiv, this.getGui());\n this.insertGridIntoDom();\n this.initialiseTabGuard({\n // we want to override the default behaviour to do nothing for onTabKeyDown\n onTabKeyDown: function () { return undefined; },\n focusInnerElement: function (fromBottom) { return _this.ctrl.focusInnerElement(fromBottom); }\n });\n };\n GridComp.prototype.insertGridIntoDom = function () {\n var _this = this;\n var eGui = this.getGui();\n this.eGridDiv.appendChild(eGui);\n this.addDestroyFunc(function () {\n _this.eGridDiv.removeChild(eGui);\n _this.logger.log('Grid removed from DOM');\n });\n };\n GridComp.prototype.updateLayoutClasses = function (cssClass, params) {\n var eRootWrapperBodyClassList = this.eRootWrapperBody.classList;\n eRootWrapperBodyClassList.toggle(exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n eRootWrapperBodyClassList.toggle(exports.LayoutCssClasses.NORMAL, params.normal);\n eRootWrapperBodyClassList.toggle(exports.LayoutCssClasses.PRINT, params.print);\n this.addOrRemoveCssClass(exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n this.addOrRemoveCssClass(exports.LayoutCssClasses.NORMAL, params.normal);\n this.addOrRemoveCssClass(exports.LayoutCssClasses.PRINT, params.print);\n };\n GridComp.prototype.createTemplate = function () {\n var dropZones = this.ctrl.showDropZones() ? '' : '';\n var sideBar = this.ctrl.showSideBar() ? '' : '';\n var statusBar = this.ctrl.showStatusBar() ? '' : '';\n var watermark = this.ctrl.showWatermark() ? '' : '';\n var template = /* html */ \"
\\n \" + dropZones + \"\\n
\\n \\n \" + sideBar + \"\\n
\\n \" + statusBar + \"\\n \\n \" + watermark + \"\\n
\";\n return template;\n };\n GridComp.prototype.getFocusableElement = function () {\n return this.eRootWrapperBody;\n };\n GridComp.prototype.getFocusableContainers = function () {\n var focusableContainers = [\n this.gridBodyComp.getGui()\n ];\n if (this.sideBarComp) {\n focusableContainers.push(this.sideBarComp.getGui());\n }\n return focusableContainers.filter(function (el) { return isVisible(el); });\n };\n __decorate$1X([\n Autowired('loggerFactory')\n ], GridComp.prototype, \"loggerFactory\", void 0);\n __decorate$1X([\n RefSelector('gridBody')\n ], GridComp.prototype, \"gridBodyComp\", void 0);\n __decorate$1X([\n RefSelector('sideBar')\n ], GridComp.prototype, \"sideBarComp\", void 0);\n __decorate$1X([\n RefSelector('rootWrapperBody')\n ], GridComp.prototype, \"eRootWrapperBody\", void 0);\n __decorate$1X([\n PostConstruct\n ], GridComp.prototype, \"postConstruct\", null);\n return GridComp;\n}(TabGuardComp));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortController = /** @class */ (function (_super) {\n __extends$2h(SortController, _super);\n function SortController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortController_1 = SortController;\n SortController.prototype.progressSort = function (column, multiSort, source) {\n var nextDirection = this.getNextSortDirection(column);\n this.setSortForColumn(column, nextDirection, multiSort, source);\n };\n SortController.prototype.setSortForColumn = function (column, sort, multiSort, source) {\n // auto correct - if sort not legal value, then set it to 'no sort' (which is null)\n if (sort !== Constants.SORT_ASC && sort !== Constants.SORT_DESC) {\n sort = null;\n }\n // update sort on current col\n column.setSort(sort, source);\n var doingMultiSort = (multiSort || this.gridOptionsWrapper.isAlwaysMultiSort()) && !this.gridOptionsWrapper.isSuppressMultiSort();\n // clear sort on all columns except this one, and update the icons\n if (!doingMultiSort) {\n this.clearSortBarThisColumn(column, source);\n }\n // sortIndex used for knowing order of cols when multi-col sort\n this.updateSortIndex(column);\n this.dispatchSortChangedEvents(source);\n };\n SortController.prototype.updateSortIndex = function (lastColToChange) {\n // update sortIndex on all sorting cols\n var allSortedCols = this.getColumnsWithSortingOrdered();\n var sortIndex = 0;\n allSortedCols.forEach(function (col) {\n if (col !== lastColToChange) {\n col.setSortIndex(sortIndex);\n sortIndex++;\n }\n });\n // last col to change always gets the last sort index, it's added to the end\n if (lastColToChange.getSort()) {\n lastColToChange.setSortIndex(sortIndex);\n }\n // clear sort index on all cols not sorting\n var allCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();\n allCols.filter(function (col) { return col.getSort() == null; }).forEach(function (col) { return col.setSortIndex(); });\n };\n // gets called by API, so if data changes, use can call this, which will end up\n // working out the sort order again of the rows.\n SortController.prototype.onSortChanged = function (source) {\n this.dispatchSortChangedEvents(source);\n };\n SortController.prototype.isSortActive = function () {\n // pull out all the columns that have sorting set\n var allCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();\n var sortedCols = allCols.filter(function (column) { return !!column.getSort(); });\n return sortedCols && sortedCols.length > 0;\n };\n SortController.prototype.dispatchSortChangedEvents = function (source) {\n var event = {\n type: Events.EVENT_SORT_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n SortController.prototype.clearSortBarThisColumn = function (columnToSkip, source) {\n this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(function (columnToClear) {\n // Do not clear if either holding shift, or if column in question was clicked\n if (columnToClear !== columnToSkip) {\n // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise\n // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.\n columnToClear.setSort(undefined, source);\n }\n });\n };\n SortController.prototype.getNextSortDirection = function (column) {\n var sortingOrder;\n if (column.getColDef().sortingOrder) {\n sortingOrder = column.getColDef().sortingOrder;\n }\n else if (this.gridOptionsWrapper.getSortingOrder()) {\n sortingOrder = this.gridOptionsWrapper.getSortingOrder();\n }\n else {\n sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;\n }\n if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {\n console.warn(\"AG Grid: sortingOrder must be an array with at least one element, currently it's \" + sortingOrder);\n return null;\n }\n var currentIndex = sortingOrder.indexOf(column.getSort());\n var notInArray = currentIndex < 0;\n var lastItemInArray = currentIndex == sortingOrder.length - 1;\n var result;\n if (notInArray || lastItemInArray) {\n result = sortingOrder[0];\n }\n else {\n result = sortingOrder[currentIndex + 1];\n }\n // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid\n if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {\n console.warn('AG Grid: invalid sort type ' + result);\n return null;\n }\n return result;\n };\n SortController.prototype.getColumnsWithSortingOrdered = function () {\n // pull out all the columns that have sorting set\n var allColumnsIncludingAuto = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();\n var columnsWithSorting = allColumnsIncludingAuto.filter(function (column) { return !!column.getSort(); });\n // when both cols are missing sortIndex, we use the position of the col in all cols list.\n // this means if colDefs only have sort, but no sortIndex, we deterministically pick which\n // cols is sorted by first.\n var allColsIndexes = {};\n allColumnsIncludingAuto.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });\n // put the columns in order of which one got sorted first\n columnsWithSorting.sort(function (a, b) {\n var iA = a.getSortIndex();\n var iB = b.getSortIndex();\n if (iA != null && iB != null) {\n return iA - iB; // both present, normal comparison\n }\n else if (iA == null && iB == null) {\n // both missing, compare using column positions\n var posA = allColsIndexes[a.getId()];\n var posB = allColsIndexes[b.getId()];\n return posA > posB ? 1 : -1;\n }\n else if (iB == null) {\n return -1; // iB missing\n }\n else {\n return 1; // iA missing\n }\n });\n return columnsWithSorting;\n };\n // used by server side row models, to sent sort to server\n SortController.prototype.getSortModel = function () {\n return this.getColumnsWithSortingOrdered().map(function (column) { return ({\n sort: column.getSort(),\n colId: column.getId()\n }); });\n };\n SortController.prototype.getSortOptions = function () {\n return this.getColumnsWithSortingOrdered().map(function (column) { return ({\n sort: column.getSort(),\n column: column\n }); });\n };\n var SortController_1;\n SortController.DEFAULT_SORTING_ORDER = [Constants.SORT_ASC, Constants.SORT_DESC, null];\n __decorate$1Y([\n Autowired('columnModel')\n ], SortController.prototype, \"columnModel\", void 0);\n __decorate$1Y([\n Autowired('columnApi')\n ], SortController.prototype, \"columnApi\", void 0);\n __decorate$1Y([\n Autowired('gridApi')\n ], SortController.prototype, \"gridApi\", void 0);\n SortController = SortController_1 = __decorate$1Y([\n Bean('sortController')\n ], SortController);\n return SortController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnHoverService = /** @class */ (function (_super) {\n __extends$2i(ColumnHoverService, _super);\n function ColumnHoverService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnHoverService.prototype.setMouseOver = function (columns) {\n this.selectedColumns = columns;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.clearMouseOver = function () {\n this.selectedColumns = null;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.isHovered = function (column) {\n return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;\n };\n __decorate$1Z([\n Autowired('columnApi')\n ], ColumnHoverService.prototype, \"columnApi\", void 0);\n __decorate$1Z([\n Autowired('gridApi')\n ], ColumnHoverService.prototype, \"gridApi\", void 0);\n ColumnHoverService = __decorate$1Z([\n Bean('columnHoverService')\n ], ColumnHoverService);\n return ColumnHoverService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnAnimationService = /** @class */ (function (_super) {\n __extends$2j(ColumnAnimationService, _super);\n function ColumnAnimationService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.executeNextFuncs = [];\n _this.executeLaterFuncs = [];\n _this.active = false;\n _this.animationThreadCount = 0;\n return _this;\n }\n ColumnAnimationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) { return _this.gridBodyCtrl = p.gridBodyCtrl; });\n };\n ColumnAnimationService.prototype.isActive = function () {\n return this.active;\n };\n ColumnAnimationService.prototype.start = function () {\n if (this.active) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressColumnMoveAnimation()) {\n return;\n }\n // if doing RTL, we don't animate open / close as due to how the pixels are inverted,\n // the animation moves all the row the the right rather than to the left (ie it's the static\n // columns that actually get their coordinates updated)\n if (this.gridOptionsWrapper.isEnableRtl()) {\n return;\n }\n this.ensureAnimationCssClassPresent();\n this.active = true;\n };\n ColumnAnimationService.prototype.finish = function () {\n if (!this.active) {\n return;\n }\n this.flush();\n this.active = false;\n };\n ColumnAnimationService.prototype.executeNextVMTurn = function (func) {\n if (this.active) {\n this.executeNextFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {\n if (this.active) {\n this.executeLaterFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {\n var _this = this;\n // up the count, so we can tell if someone else has updated the count\n // by the time the 'wait' func executes\n this.animationThreadCount++;\n var animationThreadCountCopy = this.animationThreadCount;\n this.gridBodyCtrl.setColumnMovingCss(true);\n this.executeLaterFuncs.push(function () {\n // only remove the class if this thread was the last one to update it\n if (_this.animationThreadCount === animationThreadCountCopy) {\n _this.gridBodyCtrl.setColumnMovingCss(false);\n }\n });\n };\n ColumnAnimationService.prototype.flush = function () {\n var nowFuncs = this.executeNextFuncs;\n this.executeNextFuncs = [];\n var waitFuncs = this.executeLaterFuncs;\n this.executeLaterFuncs = [];\n if (nowFuncs.length === 0 && waitFuncs.length === 0) {\n return;\n }\n window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);\n window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);\n };\n __decorate$1_([\n Autowired('ctrlsService')\n ], ColumnAnimationService.prototype, \"ctrlsService\", void 0);\n __decorate$1_([\n PostConstruct\n ], ColumnAnimationService.prototype, \"postConstruct\", null);\n ColumnAnimationService = __decorate$1_([\n Bean('columnAnimationService')\n ], ColumnAnimationService);\n return ColumnAnimationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AutoGroupColService = /** @class */ (function (_super) {\n __extends$2k(AutoGroupColService, _super);\n function AutoGroupColService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoGroupColService_1 = AutoGroupColService;\n AutoGroupColService.prototype.createAutoGroupColumns = function (existingCols, rowGroupColumns) {\n var _this = this;\n var groupAutoColumns = [];\n var doingTreeData = this.gridOptionsWrapper.isTreeData();\n var doingMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();\n if (doingTreeData && doingMultiAutoColumn) {\n console.warn('AG Grid: you cannot mix groupMultiAutoColumn with treeData, only one column can be used to display groups when doing tree data');\n doingMultiAutoColumn = false;\n }\n // if doing groupMultiAutoColumn, then we call the method multiple times, once\n // for each column we are grouping by\n if (doingMultiAutoColumn) {\n rowGroupColumns.forEach(function (rowGroupCol, index) {\n groupAutoColumns.push(_this.createOneAutoGroupColumn(existingCols, rowGroupCol, index));\n });\n }\n else {\n groupAutoColumns.push(this.createOneAutoGroupColumn(existingCols));\n }\n return groupAutoColumns;\n };\n // rowGroupCol and index are missing if groupMultiAutoColumn=false\n AutoGroupColService.prototype.createOneAutoGroupColumn = function (existingCols, rowGroupCol, index) {\n // if one provided by user, use it, otherwise create one\n var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol);\n // if doing multi, set the field\n var colId;\n if (rowGroupCol) {\n colId = Constants.GROUP_AUTO_COLUMN_ID + \"-\" + rowGroupCol.getId();\n }\n else {\n colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_BUNDLE_ID;\n }\n var userAutoColDef = this.gridOptionsWrapper.getAutoGroupColumnDef();\n mergeDeep(defaultAutoColDef, userAutoColDef);\n defaultAutoColDef = this.columnFactory.mergeColDefs(defaultAutoColDef);\n defaultAutoColDef.colId = colId;\n // For tree data the filter is always allowed\n if (!this.gridOptionsWrapper.isTreeData()) {\n // we would only allow filter if the user has provided field or value getter. otherwise the filter\n // would not be able to work.\n var noFieldOrValueGetter = missing(defaultAutoColDef.field) && missing(defaultAutoColDef.valueGetter) && missing(defaultAutoColDef.filterValueGetter);\n if (noFieldOrValueGetter) {\n defaultAutoColDef.filter = false;\n }\n }\n // if showing many cols, we don't want to show more than one with a checkbox for selection\n if (index && index > 0) {\n defaultAutoColDef.headerCheckboxSelection = false;\n }\n var existingCol = existingCols.find(function (col) { return col.getId() == colId; });\n if (existingCol) {\n existingCol.setColDef(defaultAutoColDef, null);\n this.columnFactory.applyColumnState(existingCol, defaultAutoColDef);\n return existingCol;\n }\n var newCol = new Column(defaultAutoColDef, null, colId, true);\n this.context.createBean(newCol);\n return newCol;\n };\n AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) {\n var userDef = this.gridOptionsWrapper.getAutoGroupColumnDef();\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var res = {\n headerName: localeTextFunc('group', 'Group')\n };\n var userHasProvidedGroupCellRenderer = userDef &&\n (userDef.cellRenderer || userDef.cellRendererFramework || userDef.cellRendererSelector);\n // only add the default group cell renderer if user hasn't provided one\n if (!userHasProvidedGroupCellRenderer) {\n res.cellRenderer = 'agGroupCellRenderer';\n }\n // we never allow moving the group column\n // defaultAutoColDef.suppressMovable = true;\n if (rowGroupCol) {\n var colDef = rowGroupCol.getColDef();\n Object.assign(res, {\n // cellRendererParams.groupKey: colDefToCopy.field;\n headerName: this.columnModel.getDisplayNameForColumn(rowGroupCol, 'header'),\n headerValueGetter: colDef.headerValueGetter\n });\n if (colDef.cellRenderer || colDef.cellRendererFramework) {\n Object.assign(res, {\n cellRendererParams: {\n innerRenderer: colDef.cellRenderer,\n innerRendererFramework: colDef.cellRendererFramework,\n innerRendererParams: colDef.cellRendererParams\n }\n });\n }\n res.showRowGroup = rowGroupCol.getColId();\n }\n else {\n res.showRowGroup = true;\n }\n return res;\n };\n var AutoGroupColService_1;\n AutoGroupColService.GROUP_AUTO_COLUMN_BUNDLE_ID = Constants.GROUP_AUTO_COLUMN_ID;\n __decorate$1$([\n Autowired('columnModel')\n ], AutoGroupColService.prototype, \"columnModel\", void 0);\n __decorate$1$([\n Autowired('columnFactory')\n ], AutoGroupColService.prototype, \"columnFactory\", void 0);\n AutoGroupColService = AutoGroupColService_1 = __decorate$1$([\n Bean('autoGroupColService')\n ], AutoGroupColService);\n return AutoGroupColService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$20 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationAutoPageSizeService = /** @class */ (function (_super) {\n __extends$2l(PaginationAutoPageSizeService, _super);\n function PaginationAutoPageSizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PaginationAutoPageSizeService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCon = p.centerRowContainerCtrl;\n _this.addManagedListener(_this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, _this.onBodyHeightChanged.bind(_this));\n _this.addManagedListener(_this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, _this.onScrollVisibilityChanged.bind(_this));\n _this.checkPageSize();\n });\n };\n PaginationAutoPageSizeService.prototype.notActive = function () {\n return !this.gridOptionsWrapper.isPaginationAutoPageSize();\n };\n PaginationAutoPageSizeService.prototype.onScrollVisibilityChanged = function () {\n this.checkPageSize();\n };\n PaginationAutoPageSizeService.prototype.onBodyHeightChanged = function () {\n this.checkPageSize();\n };\n PaginationAutoPageSizeService.prototype.checkPageSize = function () {\n if (this.notActive()) {\n return;\n }\n var rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();\n if (bodyHeight > 0) {\n var newPageSize = Math.floor(bodyHeight / rowHeight);\n this.gridOptionsWrapper.setProperty('paginationPageSize', newPageSize);\n }\n };\n __decorate$20([\n Autowired('ctrlsService')\n ], PaginationAutoPageSizeService.prototype, \"ctrlsService\", void 0);\n __decorate$20([\n PostConstruct\n ], PaginationAutoPageSizeService.prototype, \"postConstruct\", null);\n PaginationAutoPageSizeService = __decorate$20([\n Bean('paginationAutoPageSizeService')\n ], PaginationAutoPageSizeService);\n return PaginationAutoPageSizeService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$21 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueCache = /** @class */ (function (_super) {\n __extends$2m(ValueCache, _super);\n function ValueCache() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cacheVersion = 0;\n return _this;\n }\n ValueCache.prototype.init = function () {\n this.active = this.gridOptionsWrapper.isValueCache();\n this.neverExpires = this.gridOptionsWrapper.isValueCacheNeverExpires();\n };\n ValueCache.prototype.onDataChanged = function () {\n if (this.neverExpires) {\n return;\n }\n this.expire();\n };\n ValueCache.prototype.expire = function () {\n this.cacheVersion++;\n };\n ValueCache.prototype.setValue = function (rowNode, colId, value) {\n if (this.active) {\n if (rowNode.__cacheVersion !== this.cacheVersion) {\n rowNode.__cacheVersion = this.cacheVersion;\n rowNode.__cacheData = {};\n }\n rowNode.__cacheData[colId] = value;\n }\n };\n ValueCache.prototype.getValue = function (rowNode, colId) {\n if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {\n return undefined;\n }\n return rowNode.__cacheData[colId];\n };\n __decorate$21([\n PostConstruct\n ], ValueCache.prototype, \"init\", null);\n ValueCache = __decorate$21([\n Bean('valueCache')\n ], ValueCache);\n return ValueCache;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$22 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChangeDetectionService = /** @class */ (function (_super) {\n __extends$2n(ChangeDetectionService, _super);\n function ChangeDetectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChangeDetectionService.prototype.init = function () {\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));\n };\n ChangeDetectionService.prototype.onCellValueChanged = function (event) {\n // Clipboard service manages its own change detection, so no need to do it here.\n // The clipboard manages its own as otherwise this would happen once for every cell\n // that got updated as part of a paste operation, so e.g. if 100 cells in a paste operation,\n // this doChangeDetection would get called 100 times (once for each cell), instead clipboard\n // service executes the logic we have here once (in essence batching up all cell changes\n // into one change detection).\n if (event.source === Constants.SOURCE_PASTE) {\n return;\n }\n this.doChangeDetection(event.node, event.column);\n };\n ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {\n if (this.gridOptionsWrapper.isSuppressChangeDetection()) {\n return;\n }\n // step 1 of change detection is to update the aggregated values\n if (this.clientSideRowModel && !rowNode.isRowPinned()) {\n var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();\n var changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n changedPath.addParentNode(rowNode.parent, [column]);\n this.clientSideRowModel.doAggregate(changedPath);\n }\n // step 2 of change detection is to refresh the cells\n this.rowRenderer.refreshCells();\n };\n __decorate$22([\n Autowired('rowModel')\n ], ChangeDetectionService.prototype, \"rowModel\", void 0);\n __decorate$22([\n Autowired('rowRenderer')\n ], ChangeDetectionService.prototype, \"rowRenderer\", void 0);\n __decorate$22([\n PostConstruct\n ], ChangeDetectionService.prototype, \"init\", null);\n ChangeDetectionService = __decorate$22([\n Bean('changeDetectionService')\n ], ChangeDetectionService);\n return ChangeDetectionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$23 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgComponentUtils = /** @class */ (function (_super) {\n __extends$2o(AgComponentUtils, _super);\n function AgComponentUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AgComponentUtils.prototype.adaptFunction = function (propertyName, jsCompFunc) {\n var metadata = this.componentMetadataProvider.retrieve(propertyName);\n if (metadata && metadata.functionAdapter) {\n return metadata.functionAdapter(jsCompFunc);\n }\n return null;\n };\n AgComponentUtils.prototype.adaptCellRendererFunction = function (callback) {\n var Adapter = /** @class */ (function () {\n function Adapter() {\n }\n Adapter.prototype.refresh = function (params) {\n return false;\n };\n Adapter.prototype.getGui = function () {\n return this.eGui;\n };\n Adapter.prototype.init = function (params) {\n var callbackResult = callback(params);\n var type = typeof callbackResult;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n this.eGui = loadTemplate('' + callbackResult + '');\n return;\n }\n if (callbackResult == null) {\n this.eGui = loadTemplate('');\n return;\n }\n this.eGui = callbackResult;\n };\n return Adapter;\n }());\n return Adapter;\n };\n AgComponentUtils.prototype.doesImplementIComponent = function (candidate) {\n if (!candidate) {\n return false;\n }\n return candidate.prototype && 'getGui' in candidate.prototype;\n };\n __decorate$23([\n Autowired(\"componentMetadataProvider\")\n ], AgComponentUtils.prototype, \"componentMetadataProvider\", void 0);\n AgComponentUtils = __decorate$23([\n Bean(\"agComponentUtils\")\n ], AgComponentUtils);\n return AgComponentUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$24 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ComponentMetadataProvider = /** @class */ (function (_super) {\n __extends$2p(ComponentMetadataProvider, _super);\n function ComponentMetadataProvider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComponentMetadataProvider.prototype.postConstruct = function () {\n this.componentMetaData = {\n dateComponent: {\n mandatoryMethodList: ['getDate', 'setDate'],\n optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel']\n },\n detailCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n headerComponent: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n headerGroupComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n noRowsOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n floatingFilterComponent: {\n mandatoryMethodList: ['onParentModelChanged'],\n optionalMethodList: ['afterGuiAttached']\n },\n floatingFilterWrapperComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n cellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n cellEditor: {\n mandatoryMethodList: ['getValue'],\n optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached']\n },\n innerRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n fullWidthCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n pinnedRowCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n groupRowRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n filter: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']\n },\n filterComponent: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']\n },\n statusPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n },\n toolPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached']\n },\n tooltipComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n }\n };\n };\n ComponentMetadataProvider.prototype.retrieve = function (name) {\n return this.componentMetaData[name];\n };\n __decorate$24([\n Autowired(\"agComponentUtils\")\n ], ComponentMetadataProvider.prototype, \"agComponentUtils\", void 0);\n __decorate$24([\n PostConstruct\n ], ComponentMetadataProvider.prototype, \"postConstruct\", null);\n ComponentMetadataProvider = __decorate$24([\n Bean(\"componentMetadataProvider\")\n ], ComponentMetadataProvider);\n return ComponentMetadataProvider;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$25 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MAT_GRID_SIZE = 8;\nvar BASE_GRID_SIZE = 4;\nvar BALHAM_GRID_SIZE = 4;\nvar ALPINE_GRID_SIZE = 6;\nvar HARD_CODED_SIZES = {\n // this item is required for custom themes\n 'ag-theme-custom': {\n headerHeight: 25,\n headerCellMinWidth: 24,\n listItemHeight: BASE_GRID_SIZE * 5,\n rowHeight: 25,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-material': {\n headerHeight: MAT_GRID_SIZE * 7,\n headerCellMinWidth: 48,\n listItemHeight: MAT_GRID_SIZE * 4,\n rowHeight: MAT_GRID_SIZE * 6,\n chartMenuPanelWidth: 240\n },\n 'ag-theme-balham': {\n headerHeight: BALHAM_GRID_SIZE * 8,\n headerCellMinWidth: 24,\n listItemHeight: BALHAM_GRID_SIZE * 6,\n rowHeight: BALHAM_GRID_SIZE * 7,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-alpine': {\n headerHeight: ALPINE_GRID_SIZE * 8,\n headerCellMinWidth: 36,\n listItemHeight: ALPINE_GRID_SIZE * 4,\n rowHeight: ALPINE_GRID_SIZE * 7,\n chartMenuPanelWidth: 240\n }\n};\n/**\n * this object contains a list of Sass variables and an array\n * of CSS styles required to get the correct value.\n * eg. $virtual-item-height requires a structure, so we can get its height.\n *
\n *
\n *
\n *
\n *
\n */\nvar SASS_PROPERTY_BUILDER = {\n headerHeight: ['ag-header-row'],\n headerCellMinWidth: ['ag-header-cell'],\n listItemHeight: ['ag-virtual-list-item'],\n rowHeight: ['ag-row'],\n chartMenuPanelWidth: ['ag-chart-docked-container']\n};\nvar CALCULATED_SIZES = {};\nvar Environment = /** @class */ (function (_super) {\n __extends$2q(Environment, _super);\n function Environment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Environment.prototype.getSassVariable = function (theme, key) {\n var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');\n var defaultValue = HARD_CODED_SIZES[useTheme][key];\n var calculatedValue = 0;\n if (!CALCULATED_SIZES[theme]) {\n CALCULATED_SIZES[theme] = {};\n }\n var size = CALCULATED_SIZES[theme][key];\n if (size != null) {\n return size;\n }\n if (SASS_PROPERTY_BUILDER[key]) {\n var classList = SASS_PROPERTY_BUILDER[key];\n var div = document.createElement('div');\n div.classList.add(theme);\n div.style.position = 'absolute';\n var el = classList.reduce(function (prevEl, currentClass) {\n var currentDiv = document.createElement('div');\n currentDiv.style.position = 'static';\n currentDiv.classList.add(currentClass);\n prevEl.appendChild(currentDiv);\n return currentDiv;\n }, div);\n if (document.body) {\n document.body.appendChild(div);\n var sizeName = key.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';\n calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);\n document.body.removeChild(div);\n }\n }\n CALCULATED_SIZES[theme][key] = calculatedValue || defaultValue;\n return CALCULATED_SIZES[theme][key];\n };\n Environment.prototype.isThemeDark = function () {\n var theme = this.getTheme().theme;\n return !!theme && theme.indexOf('dark') >= 0;\n };\n Environment.prototype.chartMenuPanelWidth = function () {\n var theme = this.getTheme().themeFamily;\n return this.getSassVariable(theme, 'chartMenuPanelWidth');\n };\n Environment.prototype.getTheme = function () {\n var reg = /\\bag-(material|(?:theme-([\\w\\-]*)))\\b/;\n var el = this.eGridDiv;\n var themeMatch = null;\n while (el) {\n themeMatch = reg.exec(el.className);\n if (!themeMatch) {\n el = el.parentElement || undefined;\n }\n else {\n break;\n }\n }\n if (!themeMatch) {\n return {};\n }\n var theme = themeMatch[0];\n var usingOldTheme = themeMatch[2] === undefined;\n if (usingOldTheme) {\n var newTheme_1 = theme.replace('ag-', 'ag-theme-');\n doOnce(function () { return console.warn(\"AG Grid: As of v19 old theme are no longer provided. Please replace \" + theme + \" with \" + newTheme_1 + \".\"); }, 'using-old-theme');\n }\n return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, '') };\n };\n __decorate$25([\n Autowired('eGridDiv')\n ], Environment.prototype, \"eGridDiv\", void 0);\n Environment = __decorate$25([\n Bean('environment')\n ], Environment);\n return Environment;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$26 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$9 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n/**\n * This class solves the 'max height' problem, where the user might want to show more data than\n * the max div height actually allows.\n */\nvar RowContainerHeightService = /** @class */ (function (_super) {\n __extends$2r(RowContainerHeightService, _super);\n function RowContainerHeightService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // the scrollY position\n _this.scrollY = 0;\n // how tall the body is\n _this.uiBodyHeight = 0;\n return _this;\n }\n RowContainerHeightService.prototype.agWire = function (loggerFactory) {\n this.logger = loggerFactory.create(\"RowContainerHeightService\");\n };\n RowContainerHeightService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));\n this.maxDivHeight = getMaxDivHeight();\n this.logger.log('maxDivHeight = ' + this.maxDivHeight);\n };\n RowContainerHeightService.prototype.isStretching = function () {\n return this.stretching;\n };\n RowContainerHeightService.prototype.getDivStretchOffset = function () {\n return this.divStretchOffset;\n };\n RowContainerHeightService.prototype.updateOffset = function () {\n if (!this.stretching) {\n return;\n }\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;\n var newBodyHeight = this.getUiBodyHeight();\n var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;\n if (atLeastOneChanged) {\n this.scrollY = newScrollY;\n this.uiBodyHeight = newBodyHeight;\n this.calculateOffset();\n }\n };\n RowContainerHeightService.prototype.calculateOffset = function () {\n this.setUiContainerHeight(this.maxDivHeight);\n this.pixelsToShave = this.modelHeight - this.uiContainerHeight;\n this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;\n var scrollPercent = this.scrollY / this.maxScrollY;\n var divStretchOffset = scrollPercent * this.pixelsToShave;\n this.logger.log(\"Div Stretch Offset = \" + divStretchOffset + \" (\" + this.pixelsToShave + \" * \" + scrollPercent + \")\");\n this.setDivStretchOffset(divStretchOffset);\n };\n RowContainerHeightService.prototype.setUiContainerHeight = function (height) {\n if (height !== this.uiContainerHeight) {\n this.uiContainerHeight = height;\n this.eventService.dispatchEvent({ type: Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED });\n }\n };\n RowContainerHeightService.prototype.clearOffset = function () {\n this.setUiContainerHeight(this.modelHeight);\n this.pixelsToShave = 0;\n this.setDivStretchOffset(0);\n };\n RowContainerHeightService.prototype.setDivStretchOffset = function (newOffset) {\n // because we are talking pixels, no point in confusing things with half numbers\n var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;\n if (this.divStretchOffset === newOffsetFloor) {\n return;\n }\n this.divStretchOffset = newOffsetFloor;\n this.eventService.dispatchEvent({ type: Events.EVENT_HEIGHT_SCALE_CHANGED });\n };\n RowContainerHeightService.prototype.setModelHeight = function (modelHeight) {\n this.modelHeight = modelHeight;\n this.stretching = modelHeight != null // null happens when in print layout\n && this.maxDivHeight > 0\n && modelHeight > this.maxDivHeight;\n if (this.stretching) {\n this.calculateOffset();\n }\n else {\n this.clearOffset();\n }\n };\n RowContainerHeightService.prototype.getUiContainerHeight = function () {\n return this.uiContainerHeight;\n };\n RowContainerHeightService.prototype.getRealPixelPosition = function (modelPixel) {\n return modelPixel - this.divStretchOffset;\n };\n RowContainerHeightService.prototype.getUiBodyHeight = function () {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var pos = gridBodyCon.getScrollFeature().getVScrollPosition();\n return pos.bottom - pos.top;\n };\n RowContainerHeightService.prototype.getScrollPositionForPixel = function (rowTop) {\n if (this.pixelsToShave <= 0) {\n return rowTop;\n }\n var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();\n var scrollPercent = rowTop / modelMaxScroll;\n var scrollPixel = this.maxScrollY * scrollPercent;\n return scrollPixel;\n };\n __decorate$26([\n Autowired('ctrlsService')\n ], RowContainerHeightService.prototype, \"ctrlsService\", void 0);\n __decorate$26([\n __param$9(0, Qualifier(\"loggerFactory\"))\n ], RowContainerHeightService.prototype, \"agWire\", null);\n __decorate$26([\n PostConstruct\n ], RowContainerHeightService.prototype, \"postConstruct\", null);\n RowContainerHeightService = __decorate$26([\n Bean('rowContainerHeightService')\n ], RowContainerHeightService);\n return RowContainerHeightService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$27 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectableService = /** @class */ (function (_super) {\n __extends$2s(SelectableService, _super);\n function SelectableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectableService.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n };\n SelectableService.prototype.updateSelectableAfterGrouping = function (rowNode) {\n if (this.isRowSelectableFunc) {\n var nextChildrenFunc = function (node) { return node.childrenAfterGroup; };\n this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);\n }\n };\n SelectableService.prototype.recurseDown = function (children, nextChildrenFunc) {\n var _this = this;\n if (!children) {\n return;\n }\n children.forEach(function (child) {\n if (!child.group) {\n return;\n } // only interested in groups\n if (child.hasChildren()) {\n _this.recurseDown(nextChildrenFunc(child), nextChildrenFunc);\n }\n var rowSelectable;\n if (_this.groupSelectsChildren) {\n // have this group selectable if at least one direct child is selectable\n var firstSelectable = (nextChildrenFunc(child) || []).find(function (rowNode) { return rowNode.selectable === true; });\n rowSelectable = exists(firstSelectable);\n }\n else {\n // directly retrieve selectable value from user callback\n rowSelectable = _this.isRowSelectableFunc ? _this.isRowSelectableFunc(child) : false;\n }\n child.setRowSelectable(rowSelectable);\n });\n };\n __decorate$27([\n PostConstruct\n ], SelectableService.prototype, \"init\", null);\n SelectableService = __decorate$27([\n Bean('selectableService')\n ], SelectableService);\n return SelectableService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$28 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationComp = /** @class */ (function (_super) {\n __extends$2t(PaginationComp, _super);\n function PaginationComp() {\n var _this = _super.call(this) || this;\n _this.previousAndFirstButtonsDisabled = false;\n _this.nextButtonDisabled = false;\n _this.lastButtonDisabled = false;\n return _this;\n }\n PaginationComp.prototype.postConstruct = function () {\n var _this = this;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n this.setTemplate(this.getTemplate());\n this.btFirst.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'last' : 'first', this.gridOptionsWrapper));\n this.btPrevious.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'next' : 'previous', this.gridOptionsWrapper));\n this.btNext.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'previous' : 'next', this.gridOptionsWrapper));\n this.btLast.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'first' : 'last', this.gridOptionsWrapper));\n var isPaging = this.gridOptionsWrapper.isPagination();\n var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();\n if (!paginationPanelEnabled) {\n this.setDisplayed(false);\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n [\n { el: this.btFirst, fn: this.onBtFirst.bind(this) },\n { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },\n { el: this.btNext, fn: this.onBtNext.bind(this) },\n { el: this.btLast, fn: this.onBtLast.bind(this) }\n ].forEach(function (item) {\n var el = item.el, fn = item.fn;\n _this.addManagedListener(el, 'click', fn);\n _this.addManagedListener(el, 'keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n fn();\n }\n });\n });\n this.onPaginationChanged();\n };\n PaginationComp.prototype.onPaginationChanged = function () {\n this.enableOrDisableButtons();\n this.updateRowLabels();\n this.setCurrentPageLabel();\n this.setTotalLabels();\n };\n PaginationComp.prototype.onBtFirst = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToFirstPage();\n }\n };\n PaginationComp.prototype.setCurrentPageLabel = function () {\n var pagesExist = this.paginationProxy.getTotalPages() > 0;\n var currentPage = this.paginationProxy.getCurrentPage();\n var toDisplay = pagesExist ? currentPage + 1 : 0;\n this.lbCurrent.innerHTML = this.formatNumber(toDisplay);\n };\n PaginationComp.prototype.formatNumber = function (value) {\n var userFunc = this.gridOptionsWrapper.getPaginationNumberFormatterFunc();\n if (userFunc) {\n var params = { value: value };\n return userFunc(params);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n return formatNumberCommas(value, thousandSeparator, decimalSeparator);\n };\n PaginationComp.prototype.getTemplate = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var strPage = localeTextFunc('page', 'Page');\n var strTo = localeTextFunc('to', 'to');\n var strOf = localeTextFunc('of', 'of');\n var strFirst = localeTextFunc('firstPage', 'First Page');\n var strPrevious = localeTextFunc('previousPage', 'Previous Page');\n var strNext = localeTextFunc('nextPage', 'Next Page');\n var strLast = localeTextFunc('lastPage', 'Last Page');\n var compId = this.getCompId();\n return /* html */ \"
\\n \\n \\n \" + strTo + \"\\n \\n \" + strOf + \"\\n \\n \\n \\n
\\n
\\n \\n \" + strPage + \"\\n \\n \" + strOf + \"\\n \\n \\n
\\n
\\n
\\n
\";\n };\n PaginationComp.prototype.onBtNext = function () {\n if (!this.nextButtonDisabled) {\n this.paginationProxy.goToNextPage();\n }\n };\n PaginationComp.prototype.onBtPrevious = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToPreviousPage();\n }\n };\n PaginationComp.prototype.onBtLast = function () {\n if (!this.lastButtonDisabled) {\n this.paginationProxy.goToLastPage();\n }\n };\n PaginationComp.prototype.enableOrDisableButtons = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n this.previousAndFirstButtonsDisabled = currentPage === 0;\n this.toggleButtonDisabled(this.btFirst, this.previousAndFirstButtonsDisabled);\n this.toggleButtonDisabled(this.btPrevious, this.previousAndFirstButtonsDisabled);\n var zeroPagesToDisplay = this.isZeroPagesToDisplay();\n var onLastPage = maxRowFound && currentPage === (totalPages - 1);\n this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;\n this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);\n this.toggleButtonDisabled(this.btNext, this.nextButtonDisabled);\n this.toggleButtonDisabled(this.btLast, this.lastButtonDisabled);\n };\n PaginationComp.prototype.toggleButtonDisabled = function (button, disabled) {\n setAriaDisabled(button, disabled);\n button.classList.toggle('ag-disabled', disabled);\n if (disabled) {\n button.removeAttribute('tabindex');\n }\n else {\n button.setAttribute('tabindex', '0');\n }\n };\n PaginationComp.prototype.updateRowLabels = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var pageSize = this.paginationProxy.getPageSize();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var rowCount = this.paginationProxy.isLastPageFound() ?\n this.paginationProxy.getMasterRowCount() : null;\n var startRow;\n var endRow;\n if (this.isZeroPagesToDisplay()) {\n startRow = endRow = 0;\n }\n else {\n startRow = (pageSize * currentPage) + 1;\n endRow = startRow + pageSize - 1;\n if (maxRowFound && endRow > rowCount) {\n endRow = rowCount;\n }\n }\n this.lbFirstRowOnPage.innerHTML = this.formatNumber(startRow);\n if (this.rowNodeBlockLoader.isLoading()) {\n this.lbLastRowOnPage.innerHTML = '?';\n }\n else {\n this.lbLastRowOnPage.innerHTML = this.formatNumber(endRow);\n }\n };\n PaginationComp.prototype.isZeroPagesToDisplay = function () {\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n return maxRowFound && totalPages === 0;\n };\n PaginationComp.prototype.setTotalLabels = function () {\n var lastPageFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n var rowCount = lastPageFound ? this.paginationProxy.getMasterRowCount() : null;\n // When `pivotMode=true` and no grouping or value columns exist, a single 'hidden' group row (root node) is in\n // the grid and the pagination totals will correctly display total = 1. However this is confusing to users as\n // they can't see it. To address this UX issue we simply set the totals to zero in the pagination panel.\n if (rowCount === 1) {\n var firstRow = this.paginationProxy.getRow(0);\n // a group node with no group or agg data will not be visible to users\n var hiddenGroupRow = firstRow && firstRow.group && !(firstRow.groupData || firstRow.aggData);\n if (hiddenGroupRow) {\n this.setTotalLabelsToZero();\n return;\n }\n }\n if (lastPageFound) {\n this.lbTotal.innerHTML = this.formatNumber(totalPages);\n this.lbRecordCount.innerHTML = this.formatNumber(rowCount);\n }\n else {\n var moreText = this.gridOptionsWrapper.getLocaleTextFunc()('more', 'more');\n this.lbTotal.innerHTML = moreText;\n this.lbRecordCount.innerHTML = moreText;\n }\n };\n PaginationComp.prototype.setTotalLabelsToZero = function () {\n this.lbFirstRowOnPage.innerHTML = this.formatNumber(0);\n this.lbCurrent.innerHTML = this.formatNumber(0);\n this.lbLastRowOnPage.innerHTML = this.formatNumber(0);\n this.lbTotal.innerHTML = this.formatNumber(0);\n this.lbRecordCount.innerHTML = this.formatNumber(0);\n };\n __decorate$28([\n Autowired('paginationProxy')\n ], PaginationComp.prototype, \"paginationProxy\", void 0);\n __decorate$28([\n Autowired('rowNodeBlockLoader')\n ], PaginationComp.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$28([\n RefSelector('btFirst')\n ], PaginationComp.prototype, \"btFirst\", void 0);\n __decorate$28([\n RefSelector('btPrevious')\n ], PaginationComp.prototype, \"btPrevious\", void 0);\n __decorate$28([\n RefSelector('btNext')\n ], PaginationComp.prototype, \"btNext\", void 0);\n __decorate$28([\n RefSelector('btLast')\n ], PaginationComp.prototype, \"btLast\", void 0);\n __decorate$28([\n RefSelector('lbRecordCount')\n ], PaginationComp.prototype, \"lbRecordCount\", void 0);\n __decorate$28([\n RefSelector('lbFirstRowOnPage')\n ], PaginationComp.prototype, \"lbFirstRowOnPage\", void 0);\n __decorate$28([\n RefSelector('lbLastRowOnPage')\n ], PaginationComp.prototype, \"lbLastRowOnPage\", void 0);\n __decorate$28([\n RefSelector('lbCurrent')\n ], PaginationComp.prototype, \"lbCurrent\", void 0);\n __decorate$28([\n RefSelector('lbTotal')\n ], PaginationComp.prototype, \"lbTotal\", void 0);\n __decorate$28([\n PostConstruct\n ], PaginationComp.prototype, \"postConstruct\", null);\n return PaginationComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$29 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LoadingType;\n(function (LoadingType) {\n LoadingType[LoadingType[\"Loading\"] = 0] = \"Loading\";\n LoadingType[LoadingType[\"NoRows\"] = 1] = \"NoRows\";\n})(LoadingType || (LoadingType = {}));\nvar OverlayWrapperComponent = /** @class */ (function (_super) {\n __extends$2u(OverlayWrapperComponent, _super);\n function OverlayWrapperComponent() {\n var _this = _super.call(this, OverlayWrapperComponent.TEMPLATE) || this;\n _this.inProgress = false;\n _this.destroyRequested = false;\n _this.manuallyDisplayed = false;\n return _this;\n }\n OverlayWrapperComponent.prototype.updateLayoutClasses = function (cssClass, params) {\n var overlayWrapperClassList = this.eOverlayWrapper.classList;\n overlayWrapperClassList.toggle(exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n overlayWrapperClassList.toggle(exports.LayoutCssClasses.NORMAL, params.normal);\n overlayWrapperClassList.toggle(exports.LayoutCssClasses.PRINT, params.print);\n };\n OverlayWrapperComponent.prototype.postConstruct = function () {\n this.createManagedBean(new LayoutFeature(this));\n this.setDisplayed(false);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_CHANGED, this.onRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATED, this.onRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n if (this.gridOptionsWrapper.isRowModelDefault() && !this.gridOptionsWrapper.getRowData()) {\n this.showLoadingOverlay();\n }\n this.gridApi.registerOverlayWrapperComp(this);\n };\n OverlayWrapperComponent.prototype.setWrapperTypeClass = function (loadingType) {\n var overlayWrapperClassList = this.eOverlayWrapper.classList;\n overlayWrapperClassList.toggle('ag-overlay-loading-wrapper', loadingType === LoadingType.Loading);\n overlayWrapperClassList.toggle('ag-overlay-no-rows-wrapper', loadingType === LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showLoadingOverlay = function () {\n if (this.gridOptionsWrapper.isSuppressLoadingOverlay()) {\n return;\n }\n var params = {};\n var compDetails = this.userComponentFactory.getLoadingOverlayCompDetails(params);\n var promise = compDetails.newAgStackInstance();\n this.showOverlay(promise, LoadingType.Loading);\n };\n OverlayWrapperComponent.prototype.showNoRowsOverlay = function () {\n if (this.gridOptionsWrapper.isSuppressNoRowsOverlay()) {\n return;\n }\n var params = {};\n var compDetails = this.userComponentFactory.getNoRowsOverlayCompDetails(params);\n var promise = compDetails.newAgStackInstance();\n this.showOverlay(promise, LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showOverlay = function (workItem, type) {\n var _this = this;\n if (this.inProgress) {\n return;\n }\n this.setWrapperTypeClass(type);\n this.destroyActiveOverlay();\n this.inProgress = true;\n if (workItem) {\n workItem.then(function (comp) {\n _this.inProgress = false;\n _this.eOverlayWrapper.appendChild(comp.getGui());\n _this.activeOverlay = comp;\n if (_this.destroyRequested) {\n _this.destroyRequested = false;\n _this.destroyActiveOverlay();\n }\n });\n }\n this.manuallyDisplayed = this.columnModel.isReady() && !this.paginationProxy.isEmpty();\n this.setDisplayed(true);\n };\n OverlayWrapperComponent.prototype.destroyActiveOverlay = function () {\n if (this.inProgress) {\n this.destroyRequested = true;\n return;\n }\n if (!this.activeOverlay) {\n return;\n }\n this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);\n clearElement(this.eOverlayWrapper);\n };\n OverlayWrapperComponent.prototype.hideOverlay = function () {\n this.manuallyDisplayed = false;\n this.destroyActiveOverlay();\n this.setDisplayed(false);\n };\n OverlayWrapperComponent.prototype.destroy = function () {\n this.destroyActiveOverlay();\n _super.prototype.destroy.call(this);\n };\n OverlayWrapperComponent.prototype.showOrHideOverlay = function () {\n var isEmpty = this.paginationProxy.isEmpty();\n var isSuppressNoRowsOverlay = this.gridOptionsWrapper.isSuppressNoRowsOverlay();\n if (isEmpty && !isSuppressNoRowsOverlay) {\n this.showNoRowsOverlay();\n }\n else {\n this.hideOverlay();\n }\n };\n OverlayWrapperComponent.prototype.onRowDataChanged = function () {\n this.showOrHideOverlay();\n };\n OverlayWrapperComponent.prototype.onNewColumnsLoaded = function () {\n // hide overlay if columns and rows exist, this can happen if columns are loaded after data.\n // this problem exists before of the race condition between the services (column controller in this case)\n // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,\n // this race condition would not happen.\n if (this.columnModel.isReady() && !this.paginationProxy.isEmpty() && !this.manuallyDisplayed) {\n this.hideOverlay();\n }\n };\n // wrapping in outer div, and wrapper, is needed to center the loading icon\n // The idea for centering came from here: http://www.vanseodesign.com/css/vertical-centering/\n OverlayWrapperComponent.TEMPLATE = \"\\n
\\n
\\n
\\n
\\n
\";\n __decorate$29([\n Autowired('userComponentFactory')\n ], OverlayWrapperComponent.prototype, \"userComponentFactory\", void 0);\n __decorate$29([\n Autowired('paginationProxy')\n ], OverlayWrapperComponent.prototype, \"paginationProxy\", void 0);\n __decorate$29([\n Autowired('gridApi')\n ], OverlayWrapperComponent.prototype, \"gridApi\", void 0);\n __decorate$29([\n Autowired('columnModel')\n ], OverlayWrapperComponent.prototype, \"columnModel\", void 0);\n __decorate$29([\n RefSelector('eOverlayWrapper')\n ], OverlayWrapperComponent.prototype, \"eOverlayWrapper\", void 0);\n __decorate$29([\n PostConstruct\n ], OverlayWrapperComponent.prototype, \"postConstruct\", null);\n return OverlayWrapperComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowPositionUtils = /** @class */ (function (_super) {\n __extends$2v(RowPositionUtils, _super);\n function RowPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowPositionUtils.prototype.getFirstRow = function () {\n var rowIndex = 0;\n var rowPinned;\n if (this.pinnedRowModel.getPinnedTopRowCount()) {\n rowPinned = Constants.PINNED_TOP;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageFirstRow();\n }\n else if (this.pinnedRowModel.getPinnedBottomRowCount()) {\n rowPinned = Constants.PINNED_BOTTOM;\n }\n return rowPinned === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getLastRow = function () {\n var rowIndex;\n var rowPinned = null;\n var pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();\n var pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();\n if (pinnedBottomCount) {\n rowPinned = Constants.PINNED_BOTTOM;\n rowIndex = pinnedBottomCount - 1;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageLastRow();\n }\n else if (pinnedTopCount) {\n rowPinned = Constants.PINNED_TOP;\n rowIndex = pinnedTopCount - 1;\n }\n return rowIndex === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n RowPositionUtils.prototype.sameRow = function (rowA, rowB) {\n // if both missing\n if (!rowA && !rowB) {\n return true;\n }\n // if only one missing\n if ((rowA && !rowB) || (!rowA && rowB)) {\n return false;\n }\n // otherwise compare (use == to compare rowPinned because it can be null or undefined)\n return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;\n };\n // tests if this row selection is before the other row selection\n RowPositionUtils.prototype.before = function (rowA, rowB) {\n switch (rowA.rowPinned) {\n case Constants.PINNED_TOP:\n // we we are floating top, and other isn't, then we are always before\n if (rowB.rowPinned !== Constants.PINNED_TOP) {\n return true;\n }\n break;\n case Constants.PINNED_BOTTOM:\n // if we are floating bottom, and the other isn't, then we are never before\n if (rowB.rowPinned !== Constants.PINNED_BOTTOM) {\n return false;\n }\n break;\n default:\n // if we are not floating, but the other one is floating...\n if (exists(rowB.rowPinned)) {\n return rowB.rowPinned !== Constants.PINNED_TOP;\n }\n break;\n }\n return rowA.rowIndex < rowB.rowIndex;\n };\n __decorate$2a([\n Autowired('rowModel')\n ], RowPositionUtils.prototype, \"rowModel\", void 0);\n __decorate$2a([\n Autowired('pinnedRowModel')\n ], RowPositionUtils.prototype, \"pinnedRowModel\", void 0);\n __decorate$2a([\n Autowired('paginationProxy')\n ], RowPositionUtils.prototype, \"paginationProxy\", void 0);\n RowPositionUtils = __decorate$2a([\n Bean('rowPositionUtils')\n ], RowPositionUtils);\n return RowPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CellPositionUtils = /** @class */ (function (_super) {\n __extends$2w(CellPositionUtils, _super);\n function CellPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CellPositionUtils.prototype.createId = function (cellPosition) {\n var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;\n return this.createIdFromValues(rowIndex, column, rowPinned);\n };\n CellPositionUtils.prototype.createIdFromValues = function (rowIndex, column, rowPinned) {\n return rowIndex + \".\" + (rowPinned == null ? 'null' : rowPinned) + \".\" + column.getId();\n };\n CellPositionUtils.prototype.equals = function (cellA, cellB) {\n var colsMatch = cellA.column === cellB.column;\n var floatingMatch = cellA.rowPinned === cellB.rowPinned;\n var indexMatch = cellA.rowIndex === cellB.rowIndex;\n return colsMatch && floatingMatch && indexMatch;\n };\n CellPositionUtils = __decorate$2b([\n Bean('cellPositionUtils')\n ], CellPositionUtils);\n return CellPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar UndoRedoAction = /** @class */ (function () {\n function UndoRedoAction(cellValueChanges) {\n this.cellValueChanges = cellValueChanges;\n }\n return UndoRedoAction;\n}());\nvar FillUndoRedoAction = /** @class */ (function (_super) {\n __extends$2x(FillUndoRedoAction, _super);\n function FillUndoRedoAction(cellValueChanges, initialRange, finalRange) {\n var _this = _super.call(this, cellValueChanges) || this;\n _this.initialRange = initialRange;\n _this.finalRange = finalRange;\n return _this;\n }\n return FillUndoRedoAction;\n}(UndoRedoAction));\nvar UndoRedoStack = /** @class */ (function () {\n function UndoRedoStack(maxStackSize) {\n this.actionStack = [];\n this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;\n this.actionStack = new Array(this.maxStackSize);\n }\n UndoRedoStack.prototype.pop = function () {\n return this.actionStack.pop();\n };\n UndoRedoStack.prototype.push = function (item) {\n var shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;\n if (!shouldAddActions) {\n return;\n }\n if (this.actionStack.length === this.maxStackSize) {\n this.actionStack.shift();\n }\n this.actionStack.push(item);\n };\n UndoRedoStack.prototype.clear = function () {\n this.actionStack = [];\n };\n UndoRedoStack.prototype.getCurrentStackSize = function () {\n return this.actionStack.length;\n };\n UndoRedoStack.DEFAULT_STACK_SIZE = 10;\n return UndoRedoStack;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UndoRedoService = /** @class */ (function (_super) {\n __extends$2y(UndoRedoService, _super);\n function UndoRedoService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellValueChanges = [];\n _this.activeCellEdit = null;\n _this.activeRowEdit = null;\n _this.isPasting = false;\n _this.isFilling = false;\n _this.onCellValueChanged = function (event) {\n var eventCell = { column: event.column, rowIndex: event.rowIndex, rowPinned: event.rowPinned };\n var isCellEditing = _this.activeCellEdit !== null && _this.cellPositionUtils.equals(_this.activeCellEdit, eventCell);\n var isRowEditing = _this.activeRowEdit !== null && _this.rowPositionUtils.sameRow(_this.activeRowEdit, eventCell);\n var shouldCaptureAction = isCellEditing || isRowEditing || _this.isPasting || _this.isFilling;\n if (!shouldCaptureAction) {\n return;\n }\n var rowPinned = event.rowPinned, rowIndex = event.rowIndex, column = event.column, oldValue = event.oldValue, value = event.value;\n var cellValueChange = {\n rowPinned: rowPinned,\n rowIndex: rowIndex,\n columnId: column.getColId(),\n newValue: value,\n oldValue: oldValue\n };\n _this.cellValueChanges.push(cellValueChange);\n };\n _this.clearStacks = function () {\n _this.undoStack.clear();\n _this.redoStack.clear();\n };\n return _this;\n }\n UndoRedoService.prototype.init = function () {\n if (!this.gridOptionsWrapper.isUndoRedoCellEditing()) {\n return;\n }\n var undoRedoLimit = this.gridOptionsWrapper.getUndoRedoCellEditingLimit();\n if (undoRedoLimit <= 0) {\n return;\n }\n this.undoStack = new UndoRedoStack(undoRedoLimit);\n this.redoStack = new UndoRedoStack(undoRedoLimit);\n this.addRowEditingListeners();\n this.addCellEditingListeners();\n this.addPasteListeners();\n this.addFillListeners();\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);\n // undo / redo is restricted to actual editing so we clear the stacks when other operations are\n // performed that change the order of the row / cols.\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DRAG_END, this.clearStacks);\n };\n UndoRedoService.prototype.getCurrentUndoStackSize = function () {\n return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.getCurrentRedoStackSize = function () {\n return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.undo = function () {\n if (!this.undoStack) {\n return;\n }\n var undoAction = this.undoStack.pop();\n if (!undoAction || !undoAction.cellValueChanges) {\n return;\n }\n this.processAction(undoAction, function (cellValueChange) { return cellValueChange.oldValue; });\n if (undoAction instanceof FillUndoRedoAction) {\n this.processRangeAndCellFocus(undoAction.cellValueChanges, undoAction.initialRange);\n }\n else {\n this.processRangeAndCellFocus(undoAction.cellValueChanges);\n }\n this.redoStack.push(undoAction);\n };\n UndoRedoService.prototype.redo = function () {\n if (!this.redoStack) {\n return;\n }\n var redoAction = this.redoStack.pop();\n if (!redoAction || !redoAction.cellValueChanges) {\n return;\n }\n this.processAction(redoAction, function (cellValueChange) { return cellValueChange.newValue; });\n if (redoAction instanceof FillUndoRedoAction) {\n this.processRangeAndCellFocus(redoAction.cellValueChanges, redoAction.finalRange);\n }\n else {\n this.processRangeAndCellFocus(redoAction.cellValueChanges);\n }\n this.undoStack.push(redoAction);\n };\n UndoRedoService.prototype.processAction = function (action, valueExtractor) {\n var _this = this;\n action.cellValueChanges.forEach(function (cellValueChange) {\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned, columnId = cellValueChange.columnId;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var currentRow = _this.getRowNode(rowPosition);\n // checks if the row has been filtered out\n if (!currentRow.displayed) {\n return;\n }\n currentRow.setDataValue(columnId, valueExtractor(cellValueChange));\n });\n };\n UndoRedoService.prototype.processRangeAndCellFocus = function (cellValueChanges, range) {\n var lastFocusedCell;\n if (range) {\n var startRow = range.startRow;\n var endRow = range.endRow;\n lastFocusedCell = {\n rowPinned: startRow.rowPinned,\n rowIndex: startRow.rowIndex,\n columnId: range.startColumn.getColId()\n };\n this.setLastFocusedCell(lastFocusedCell);\n var cellRangeParams = {\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n rowEndIndex: endRow.rowIndex,\n rowEndPinned: endRow.rowPinned,\n columnStart: range.startColumn,\n columns: range.columns\n };\n this.gridApi.addCellRange(cellRangeParams);\n return;\n }\n var cellValueChange = cellValueChanges[0];\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var row = this.getRowNode(rowPosition);\n lastFocusedCell = {\n rowPinned: cellValueChange.rowPinned,\n rowIndex: row.rowIndex,\n columnId: cellValueChange.columnId\n };\n this.setLastFocusedCell(lastFocusedCell);\n };\n UndoRedoService.prototype.setLastFocusedCell = function (lastFocusedCell) {\n var rowIndex = lastFocusedCell.rowIndex, columnId = lastFocusedCell.columnId, rowPinned = lastFocusedCell.rowPinned;\n this.gridApi.ensureIndexVisible(rowIndex);\n this.gridApi.ensureColumnVisible(columnId);\n if (ModuleRegistry.isRegistered(exports.ModuleNames.RangeSelectionModule)) {\n this.gridApi.clearRangeSelection();\n }\n this.focusService.setFocusedCell(rowIndex, columnId, rowPinned, true);\n };\n UndoRedoService.prototype.addRowEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STARTED, function (e) {\n _this.activeRowEdit = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STOPPED, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.activeRowEdit = null;\n });\n };\n UndoRedoService.prototype.addCellEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STARTED, function (e) {\n _this.activeCellEdit = { column: e.column, rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STOPPED, function () {\n _this.activeCellEdit = null;\n var shouldPushAction = !_this.activeRowEdit && !_this.isPasting && !_this.isFilling;\n if (shouldPushAction) {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n }\n });\n };\n UndoRedoService.prototype.addPasteListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_START, function () {\n _this.isPasting = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_END, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.isPasting = false;\n });\n };\n UndoRedoService.prototype.addFillListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_FILL_START, function () {\n _this.isFilling = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_FILL_END, function (event) {\n var action = new FillUndoRedoAction(_this.cellValueChanges, event.initialRange, event.finalRange);\n _this.pushActionsToUndoStack(action);\n _this.isFilling = false;\n });\n };\n UndoRedoService.prototype.pushActionsToUndoStack = function (action) {\n this.undoStack.push(action);\n this.cellValueChanges = [];\n this.redoStack.clear();\n };\n UndoRedoService.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n __decorate$2c([\n Autowired('focusService')\n ], UndoRedoService.prototype, \"focusService\", void 0);\n __decorate$2c([\n Autowired('gridApi')\n ], UndoRedoService.prototype, \"gridApi\", void 0);\n __decorate$2c([\n Autowired('rowModel')\n ], UndoRedoService.prototype, \"rowModel\", void 0);\n __decorate$2c([\n Autowired('pinnedRowModel')\n ], UndoRedoService.prototype, \"pinnedRowModel\", void 0);\n __decorate$2c([\n Autowired('cellPositionUtils')\n ], UndoRedoService.prototype, \"cellPositionUtils\", void 0);\n __decorate$2c([\n Autowired('rowPositionUtils')\n ], UndoRedoService.prototype, \"rowPositionUtils\", void 0);\n __decorate$2c([\n PostConstruct\n ], UndoRedoService.prototype, \"init\", null);\n UndoRedoService = __decorate$2c([\n Bean('undoRedoService')\n ], UndoRedoService);\n return UndoRedoService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderPositionUtils = /** @class */ (function (_super) {\n __extends$2z(HeaderPositionUtils, _super);\n function HeaderPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderPositionUtils.prototype.findHeader = function (focusedHeader, direction) {\n var nextColumn;\n var getGroupMethod;\n var getColMethod;\n if (focusedHeader.column instanceof ColumnGroup) {\n getGroupMethod = \"getDisplayedGroup\" + direction;\n nextColumn = this.columnModel[getGroupMethod](focusedHeader.column);\n }\n else {\n getColMethod = \"getDisplayedCol\" + direction;\n nextColumn = this.columnModel[getColMethod](focusedHeader.column);\n }\n if (nextColumn) {\n return {\n column: nextColumn,\n headerRowIndex: focusedHeader.headerRowIndex\n };\n }\n };\n HeaderPositionUtils.prototype.findColAtEdgeForHeaderRow = function (level, position) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];\n if (!column) {\n return;\n }\n var childContainer = this.ctrlsService.getHeaderRowContainerCtrl(column.getPinned());\n var type = childContainer.getRowType(level);\n if (type == exports.HeaderRowType.COLUMN_GROUP) {\n var columnGroup = this.columnModel.getColumnGroupAtLevel(column, level);\n return {\n headerRowIndex: level,\n column: columnGroup\n };\n }\n return {\n // if type==null, means the header level didn't exist\n headerRowIndex: type == null ? -1 : level,\n column: column\n };\n };\n __decorate$2d([\n Autowired('columnModel')\n ], HeaderPositionUtils.prototype, \"columnModel\", void 0);\n __decorate$2d([\n Autowired('ctrlsService')\n ], HeaderPositionUtils.prototype, \"ctrlsService\", void 0);\n HeaderPositionUtils = __decorate$2d([\n Bean('headerPositionUtils')\n ], HeaderPositionUtils);\n return HeaderPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnDefFactory = /** @class */ (function () {\n function ColumnDefFactory() {\n }\n ColumnDefFactory.prototype.buildColumnDefs = function (cols, rowGroupColumns, pivotColumns) {\n var _this = this;\n var res = [];\n var colGroupDefs = {};\n cols.forEach(function (col) {\n var colDef = _this.createDefFromColumn(col, rowGroupColumns, pivotColumns);\n var addToResult = true;\n var childDef = colDef;\n var pointer = col.getOriginalParent();\n while (pointer) {\n var parentDef = null;\n // we don't include padding groups, as the column groups provided\n // by application didn't have these. the whole point of padding groups\n // is to balance the column tree that the user provided.\n if (pointer.isPadding()) {\n pointer = pointer.getOriginalParent();\n continue;\n }\n // if colDef for this group already exists, use it\n var existingParentDef = colGroupDefs[pointer.getGroupId()];\n if (existingParentDef) {\n existingParentDef.children.push(childDef);\n // if we added to result, it would be the second time we did it\n addToResult = false;\n // we don't want to continue up the tree, as it has already been\n // done for this group\n break;\n }\n parentDef = _this.createDefFromGroup(pointer);\n if (parentDef) {\n parentDef.children = [childDef];\n colGroupDefs[parentDef.groupId] = parentDef;\n childDef = parentDef;\n pointer = pointer.getOriginalParent();\n }\n }\n if (addToResult) {\n res.push(childDef);\n }\n });\n return res;\n };\n ColumnDefFactory.prototype.createDefFromGroup = function (group) {\n var defCloned = deepCloneDefinition(group.getColGroupDef(), ['children']);\n if (defCloned) {\n defCloned.groupId = group.getGroupId();\n }\n return defCloned;\n };\n ColumnDefFactory.prototype.createDefFromColumn = function (col, rowGroupColumns, pivotColumns) {\n var colDefCloned = deepCloneDefinition(col.getColDef());\n colDefCloned.colId = col.getColId();\n colDefCloned.width = col.getActualWidth();\n colDefCloned.rowGroup = col.isRowGroupActive();\n colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;\n colDefCloned.pivot = col.isPivotActive();\n colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;\n colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;\n colDefCloned.hide = col.isVisible() ? undefined : true;\n colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;\n colDefCloned.sort = col.getSort() ? col.getSort() : null;\n colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;\n return colDefCloned;\n };\n ColumnDefFactory = __decorate$2e([\n Bean('columnDefFactory')\n ], ColumnDefFactory);\n return ColumnDefFactory;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowCssClassCalculator = /** @class */ (function () {\n function RowCssClassCalculator() {\n }\n RowCssClassCalculator.prototype.getInitialRowClasses = function (params) {\n var classes = [];\n if (exists(params.extraCssClass)) {\n classes.push(params.extraCssClass);\n }\n classes.push('ag-row');\n classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');\n if (params.fadeRowIn) {\n classes.push('ag-opacity-zero');\n }\n classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');\n if (params.rowNode.isRowPinned()) {\n classes.push('ag-row-pinned');\n }\n if (params.rowNode.isSelected()) {\n classes.push('ag-row-selected');\n }\n if (params.rowNode.footer) {\n classes.push('ag-row-footer');\n }\n classes.push('ag-row-level-' + params.rowLevel);\n if (params.rowNode.stub) {\n classes.push('ag-row-loading');\n }\n if (params.fullWidthRow) {\n classes.push('ag-full-width-row');\n }\n if (params.expandable) {\n classes.push('ag-row-group');\n classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');\n }\n if (params.rowNode.dragging) {\n classes.push('ag-row-dragging');\n }\n pushAll(classes, this.processClassesFromGridOptions(params.rowNode));\n pushAll(classes, this.preProcessRowClassRules(params.rowNode));\n // we use absolute position unless we are doing print layout\n classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');\n if (params.firstRowOnPage) {\n classes.push('ag-row-first');\n }\n if (params.lastRowOnPage) {\n classes.push('ag-row-last');\n }\n if (params.fullWidthRow) {\n if (params.pinned === Constants.PINNED_LEFT) {\n classes.push('ag-cell-last-left-pinned');\n }\n if (params.pinned === Constants.PINNED_RIGHT) {\n classes.push('ag-cell-first-right-pinned');\n }\n }\n return classes;\n };\n RowCssClassCalculator.prototype.processClassesFromGridOptions = function (rowNode) {\n var res = [];\n var process = function (rowCls) {\n if (typeof rowCls === 'string') {\n res.push(rowCls);\n }\n else if (Array.isArray(rowCls)) {\n rowCls.forEach(function (e) { return res.push(e); });\n }\n };\n // part 1 - rowClass\n var rowClass = this.gridOptionsWrapper.getRowClass();\n if (rowClass) {\n if (typeof rowClass === 'function') {\n console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');\n return [];\n }\n process(rowClass);\n }\n // part 2 - rowClassFunc\n var rowClassFunc = this.gridOptionsWrapper.getRowClassFunc();\n if (rowClassFunc) {\n var params = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex\n };\n var rowClassFuncResult = rowClassFunc(params);\n process(rowClassFuncResult);\n }\n return res;\n };\n RowCssClassCalculator.prototype.preProcessRowClassRules = function (rowNode) {\n var res = [];\n this.processRowClassRules(rowNode, function (className) {\n res.push(className);\n }, function (className) {\n // not catered for, if creating, no need\n // to remove class as it was never there\n });\n return res;\n };\n RowCssClassCalculator.prototype.processRowClassRules = function (rowNode, onApplicableClass, onNotApplicableClass) {\n var rowClassParams = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n this.stylingService.processClassRules(this.gridOptionsWrapper.rowClassRules(), rowClassParams, onApplicableClass, onNotApplicableClass);\n };\n RowCssClassCalculator.prototype.calculateRowLevel = function (rowNode) {\n if (rowNode.group) {\n return rowNode.level;\n }\n // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item\n return rowNode.parent ? (rowNode.parent.level + 1) : 0;\n };\n __decorate$2f([\n Autowired('stylingService')\n ], RowCssClassCalculator.prototype, \"stylingService\", void 0);\n __decorate$2f([\n Autowired('gridOptionsWrapper')\n ], RowCssClassCalculator.prototype, \"gridOptionsWrapper\", void 0);\n RowCssClassCalculator = __decorate$2f([\n Bean('rowCssClassCalculator')\n ], RowCssClassCalculator);\n return RowCssClassCalculator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// this logic is used by both SSRM and CSRM\nvar RowNodeSorter = /** @class */ (function () {\n function RowNodeSorter() {\n }\n RowNodeSorter.prototype.doFullSort = function (rowNodes, sortOptions) {\n var mapper = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };\n var sortedRowNodes = rowNodes.map(mapper);\n sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));\n return sortedRowNodes.map(function (item) { return item.rowNode; });\n };\n RowNodeSorter.prototype.compareRowNodes = function (sortOptions, sortedNodeA, sortedNodeB) {\n var nodeA = sortedNodeA.rowNode;\n var nodeB = sortedNodeB.rowNode;\n // Iterate columns, return the first that doesn't match\n for (var i = 0, len = sortOptions.length; i < len; i++) {\n var sortOption = sortOptions[i];\n var isInverted = sortOption.sort === Constants.SORT_DESC;\n var valueA = this.getValue(nodeA, sortOption.column);\n var valueB = this.getValue(nodeB, sortOption.column);\n var comparatorResult = void 0;\n var providedComparator = this.getComparator(sortOption, nodeA);\n if (providedComparator) {\n //if comparator provided, use it\n comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isInverted);\n }\n else {\n //otherwise do our own comparison\n comparatorResult = _.defaultComparator(valueA, valueB, this.gridOptionsWrapper.isAccentedSort());\n }\n // user provided comparators can return 'NaN' if they don't correctly handle 'undefined' values, this\n // typically occurs when the comparator is used on a group row\n var validResult = !isNaN(comparatorResult);\n if (validResult && comparatorResult !== 0) {\n return sortOption.sort === Constants.SORT_ASC ? comparatorResult : comparatorResult * -1;\n }\n }\n // All matched, we make is so that the original sort order is kept:\n return sortedNodeA.currentPos - sortedNodeB.currentPos;\n };\n RowNodeSorter.prototype.getComparator = function (sortOption, rowNode) {\n var column = sortOption.column;\n // comparator on col get preference over everything else\n var comparatorOnCol = column.getColDef().comparator;\n if (comparatorOnCol != null) {\n return comparatorOnCol;\n }\n // if no comparator on col, see if we are showing a group, and if we are, get comparator from row group col\n if (rowNode.rowGroupColumn) {\n return rowNode.rowGroupColumn.getColDef().comparator;\n }\n if (!column.getColDef().showRowGroup) {\n return;\n }\n // if a 'field' is supplied on the autoGroupColumnDef we need to use the associated column comparator\n var groupLeafField = !rowNode.group && column.getColDef().field;\n if (!groupLeafField) {\n return;\n }\n var primaryColumn = this.columnModel.getPrimaryColumn(groupLeafField);\n if (!primaryColumn) {\n return;\n }\n return primaryColumn.getColDef().comparator;\n };\n RowNodeSorter.prototype.getValue = function (nodeA, column) {\n return this.valueService.getValue(column, nodeA, false, false);\n };\n __decorate$2g([\n Autowired('gridOptionsWrapper')\n ], RowNodeSorter.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$2g([\n Autowired('valueService')\n ], RowNodeSorter.prototype, \"valueService\", void 0);\n __decorate$2g([\n Autowired('columnModel')\n ], RowNodeSorter.prototype, \"columnModel\", void 0);\n RowNodeSorter = __decorate$2g([\n Bean('rowNodeSorter')\n ], RowNodeSorter);\n return RowNodeSorter;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CtrlsService = /** @class */ (function (_super) {\n __extends$2A(CtrlsService, _super);\n function CtrlsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ready = false;\n _this.readyCallbacks = [];\n return _this;\n }\n CtrlsService_1 = CtrlsService;\n CtrlsService.prototype.checkReady = function () {\n this.ready =\n this.gridCtrl != null\n && this.gridBodyCtrl != null\n && this.centerRowContainerCtrl != null\n && this.leftRowContainerCtrl != null\n && this.rightRowContainerCtrl != null\n && this.bottomCenterRowContainerCtrl != null\n && this.bottomLeftRowContainerCtrl != null\n && this.bottomRightRowContainerCtrl != null\n && this.topCenterRowContainerCtrl != null\n && this.topLeftRowContainerCtrl != null\n && this.topRightRowContainerCtrl != null\n && this.centerHeaderRowContainerCtrl != null\n && this.leftHeaderRowContainerCtrl != null\n && this.rightHeaderRowContainerCtrl != null\n && this.fakeHScrollCtrl != null\n && this.gridHeaderCtrl != null;\n if (this.ready) {\n var p_1 = this.createReadyParams();\n this.readyCallbacks.forEach(function (c) { return c(p_1); });\n this.readyCallbacks.length = 0;\n }\n };\n CtrlsService.prototype.whenReady = function (callback) {\n if (this.ready) {\n callback(this.createReadyParams());\n }\n else {\n this.readyCallbacks.push(callback);\n }\n };\n CtrlsService.prototype.createReadyParams = function () {\n return {\n centerRowContainerCtrl: this.centerRowContainerCtrl,\n leftRowContainerCtrl: this.leftRowContainerCtrl,\n rightRowContainerCtrl: this.rightRowContainerCtrl,\n bottomCenterRowContainerCtrl: this.bottomCenterRowContainerCtrl,\n bottomLeftRowContainerCtrl: this.bottomLeftRowContainerCtrl,\n bottomRightRowContainerCtrl: this.bottomRightRowContainerCtrl,\n topCenterRowContainerCtrl: this.topCenterRowContainerCtrl,\n topLeftRowContainerCtrl: this.topLeftRowContainerCtrl,\n topRightRowContainerCtrl: this.topRightRowContainerCtrl,\n centerHeaderRowContainerCtrl: this.centerHeaderRowContainerCtrl,\n leftHeaderRowContainerCtrl: this.leftHeaderRowContainerCtrl,\n rightHeaderRowContainerCtrl: this.rightHeaderRowContainerCtrl,\n fakeHScrollCtrl: this.fakeHScrollCtrl,\n gridBodyCtrl: this.gridBodyCtrl,\n gridCtrl: this.gridCtrl,\n gridHeaderCtrl: this.gridHeaderCtrl,\n };\n };\n CtrlsService.prototype.registerFakeHScrollCtrl = function (ctrl) {\n this.fakeHScrollCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerGridHeaderCtrl = function (gridHeaderCtrl) {\n this.gridHeaderCtrl = gridHeaderCtrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerCenterRowContainerCtrl = function (ctrl) {\n this.centerRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerLeftRowContainerCtrl = function (ctrl) {\n this.leftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerRightRowContainerCtrl = function (ctrl) {\n this.rightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopCenterRowContainerCtrl = function (ctrl) {\n this.topCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopLeftRowContainerCon = function (ctrl) {\n this.topLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopRightRowContainerCtrl = function (ctrl) {\n this.topRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomCenterRowContainerCtrl = function (ctrl) {\n this.bottomCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomLeftRowContainerCtrl = function (ctrl) {\n this.bottomLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomRightRowContainerCtrl = function (ctrl) {\n this.bottomRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerHeaderContainer = function (ctrl, pinned) {\n switch (pinned) {\n case Constants.PINNED_LEFT:\n this.leftHeaderRowContainerCtrl = ctrl;\n break;\n case Constants.PINNED_RIGHT:\n this.rightHeaderRowContainerCtrl = ctrl;\n break;\n default:\n this.centerHeaderRowContainerCtrl = ctrl;\n break;\n }\n this.checkReady();\n };\n CtrlsService.prototype.registerGridBodyCtrl = function (ctrl) {\n this.gridBodyCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerGridCtrl = function (ctrl) {\n this.gridCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.getFakeHScrollCtrl = function () {\n return this.fakeHScrollCtrl;\n };\n CtrlsService.prototype.getGridHeaderCtrl = function () {\n return this.gridHeaderCtrl;\n };\n CtrlsService.prototype.getGridCtrl = function () {\n return this.gridCtrl;\n };\n CtrlsService.prototype.getCenterRowContainerCtrl = function () {\n return this.centerRowContainerCtrl;\n };\n CtrlsService.prototype.getTopCenterRowContainerCtrl = function () {\n return this.topCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getBottomCenterRowContainerCtrl = function () {\n return this.bottomCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getGridBodyCtrl = function () {\n return this.gridBodyCtrl;\n };\n CtrlsService.prototype.getHeaderRowContainerCtrls = function () {\n return [this.leftHeaderRowContainerCtrl, this.rightHeaderRowContainerCtrl, this.centerHeaderRowContainerCtrl];\n };\n CtrlsService.prototype.getHeaderRowContainerCtrl = function (pinned) {\n switch (pinned) {\n case Constants.PINNED_LEFT: return this.leftHeaderRowContainerCtrl;\n case Constants.PINNED_RIGHT: return this.rightHeaderRowContainerCtrl;\n default: return this.centerHeaderRowContainerCtrl;\n }\n };\n var CtrlsService_1;\n CtrlsService.NAME = 'ctrlsService';\n CtrlsService = CtrlsService_1 = __decorate$2h([\n Bean(CtrlsService_1.NAME)\n ], CtrlsService);\n return CtrlsService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CtrlsFactory = /** @class */ (function (_super) {\n __extends$2B(CtrlsFactory, _super);\n function CtrlsFactory() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registry = {};\n return _this;\n }\n CtrlsFactory.prototype.register = function (meta) {\n this.registry[meta.controllerName] = meta.controllerClass;\n };\n CtrlsFactory.prototype.getInstance = function (name) {\n var ControllerClass = this.registry[name];\n if (ControllerClass == null) {\n return undefined;\n }\n return new ControllerClass();\n };\n CtrlsFactory = __decorate$2i([\n Bean('ctrlsFactory')\n ], CtrlsFactory);\n return CtrlsFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FakeHScrollCtrl = /** @class */ (function (_super) {\n __extends$2C(FakeHScrollCtrl, _super);\n function FakeHScrollCtrl() {\n return _super.call(this) || this;\n }\n FakeHScrollCtrl.prototype.setComp = function (view, eGui, eViewport, eContainer) {\n this.view = view;\n this.eViewport = eViewport;\n this.eContainer = eContainer;\n this.eGui = eGui;\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.onScrollVisibilityChanged();\n // When doing printing, this changes whether cols are pinned or not\n var spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, spacerWidthsListener);\n this.setFakeHScrollSpacerWidths();\n if (this.invisibleScrollbar) {\n this.hideAndShowInvisibleScrollAsNeeded();\n this.addActiveListenerToggles();\n }\n this.ctrlsService.registerFakeHScrollCtrl(this);\n };\n FakeHScrollCtrl.prototype.addActiveListenerToggles = function () {\n var _this = this;\n var activateEvents = ['mouseenter', 'mousedown', 'touchstart'];\n var deactivateEvents = ['mouseleave', 'mouseup', 'touchend'];\n activateEvents.forEach(function (eventName) { return _this.addManagedListener(_this.eGui, eventName, function () { return _this.view.addOrRemoveCssClass('ag-scrollbar-active', true); }); });\n deactivateEvents.forEach(function (eventName) { return _this.addManagedListener(_this.eGui, eventName, function () { return _this.view.addOrRemoveCssClass('ag-scrollbar-active', false); }); });\n };\n FakeHScrollCtrl.prototype.postConstruct = function () {\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.invisibleScrollbar = isInvisibleScrollbar();\n };\n FakeHScrollCtrl.prototype.onScrollVisibilityChanged = function () {\n this.setScrollVisible();\n this.setFakeHScrollSpacerWidths();\n };\n FakeHScrollCtrl.prototype.hideAndShowInvisibleScrollAsNeeded = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, function (params) {\n if (params.direction === 'horizontal') {\n _this.view.addOrRemoveCssClass('ag-scrollbar-scrolling', true);\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL_END, function () { return _this.view.addOrRemoveCssClass('ag-scrollbar-scrolling', false); });\n };\n FakeHScrollCtrl.prototype.setFakeHScrollSpacerWidths = function () {\n var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n // we pad the right based on a) if cols are pinned to the right and\n // b) if v scroll is showing on the right (normal position of scroll)\n var rightSpacing = this.columnModel.getDisplayedColumnsRightWidth();\n var scrollOnRight = !this.enableRtl && vScrollShowing;\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n if (scrollOnRight) {\n rightSpacing += scrollbarWidth;\n }\n this.view.setRightSpacerFixedWidth(rightSpacing);\n this.view.includeRightSpacerScrollerCss('ag-scroller-corner', rightSpacing <= scrollbarWidth);\n // we pad the left based on a) if cols are pinned to the left and\n // b) if v scroll is showing on the left (happens in LTR layout only)\n var leftSpacing = this.columnModel.getDisplayedColumnsLeftWidth();\n var scrollOnLeft = this.enableRtl && vScrollShowing;\n if (scrollOnLeft) {\n leftSpacing += scrollbarWidth;\n }\n this.view.setLeftSpacerFixedWidth(leftSpacing);\n this.view.includeLeftSpacerScrollerCss('ag-scroller-corner', leftSpacing <= scrollbarWidth);\n };\n FakeHScrollCtrl.prototype.setScrollVisible = function () {\n var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();\n var invisibleScrollbar = this.invisibleScrollbar;\n var isSuppressHorizontalScroll = this.gridOptionsWrapper.isSuppressHorizontalScroll();\n var scrollbarWidth = hScrollShowing ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;\n var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 15 : scrollbarWidth;\n var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;\n this.view.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n this.view.setHeight(scrollContainerSize);\n this.view.setViewportHeight(scrollContainerSize);\n this.view.setContainerHeight(scrollContainerSize);\n };\n FakeHScrollCtrl.prototype.getViewport = function () {\n return this.eViewport;\n };\n FakeHScrollCtrl.prototype.getContainer = function () {\n return this.eContainer;\n };\n __decorate$2j([\n Autowired('scrollVisibleService')\n ], FakeHScrollCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$2j([\n Autowired('columnModel')\n ], FakeHScrollCtrl.prototype, \"columnModel\", void 0);\n __decorate$2j([\n Autowired('ctrlsService')\n ], FakeHScrollCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$2j([\n PostConstruct\n ], FakeHScrollCtrl.prototype, \"postConstruct\", null);\n return FakeHScrollCtrl;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FakeHScrollComp = /** @class */ (function (_super) {\n __extends$2D(FakeHScrollComp, _super);\n function FakeHScrollComp() {\n return _super.call(this, FakeHScrollComp.TEMPLATE) || this;\n }\n FakeHScrollComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setHeight: function (height) { return setFixedHeight(_this.getGui(), height); },\n setContainerHeight: function (height) { return setFixedHeight(_this.eContainer, height); },\n setViewportHeight: function (height) { return setFixedHeight(_this.eViewport, height); },\n setRightSpacerFixedWidth: function (width) { return setFixedWidth(_this.eRightSpacer, width); },\n setLeftSpacerFixedWidth: function (width) { return setFixedWidth(_this.eLeftSpacer, width); },\n includeLeftSpacerScrollerCss: function (cssClass, include) {\n return _this.eLeftSpacer.classList.toggle(cssClass, include);\n },\n includeRightSpacerScrollerCss: function (cssClass, include) {\n return _this.eRightSpacer.classList.toggle(cssClass, include);\n },\n };\n var ctrl = this.createManagedBean(new FakeHScrollCtrl());\n ctrl.setComp(compProxy, this.getGui(), this.eViewport, this.eContainer);\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.eContainer.style.width = width + \"px\"; }));\n };\n FakeHScrollComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$2k([\n RefSelector('eLeftSpacer')\n ], FakeHScrollComp.prototype, \"eLeftSpacer\", void 0);\n __decorate$2k([\n RefSelector('eRightSpacer')\n ], FakeHScrollComp.prototype, \"eRightSpacer\", void 0);\n __decorate$2k([\n RefSelector('eViewport')\n ], FakeHScrollComp.prototype, \"eViewport\", void 0);\n __decorate$2k([\n RefSelector('eContainer')\n ], FakeHScrollComp.prototype, \"eContainer\", void 0);\n __decorate$2k([\n PostConstruct\n ], FakeHScrollComp.prototype, \"postConstruct\", null);\n return FakeHScrollComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PinnedWidthService = /** @class */ (function (_super) {\n __extends$2E(PinnedWidthService, _super);\n function PinnedWidthService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedWidthService.prototype.postConstruct = function () {\n var listener = this.checkContainerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n };\n PinnedWidthService.prototype.checkContainerWidths = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var newLeftWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsLeftWidth();\n var newRightWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsRightWidth();\n if (newLeftWidth != this.leftWidth) {\n this.leftWidth = newLeftWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_LEFT_PINNED_WIDTH_CHANGED });\n }\n if (newRightWidth != this.rightWidth) {\n this.rightWidth = newRightWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED });\n }\n };\n PinnedWidthService.prototype.getPinnedRightWidth = function () {\n return this.rightWidth;\n };\n PinnedWidthService.prototype.getPinnedLeftWidth = function () {\n return this.leftWidth;\n };\n __decorate$2l([\n Autowired('columnModel')\n ], PinnedWidthService.prototype, \"columnModel\", void 0);\n __decorate$2l([\n PostConstruct\n ], PinnedWidthService.prototype, \"postConstruct\", null);\n PinnedWidthService = __decorate$2l([\n Bean('pinnedWidthService')\n ], PinnedWidthService);\n return PinnedWidthService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowNodeEventThrottle = /** @class */ (function (_super) {\n __extends$2F(RowNodeEventThrottle, _super);\n function RowNodeEventThrottle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.events = [];\n return _this;\n }\n RowNodeEventThrottle.prototype.postConstruct = function () {\n if (this.rowModel.getType() == Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n };\n // because the user can call rowNode.setExpanded() many times in one VM turn,\n // we throttle the calls to ClientSideRowModel using animationFrameService. this means for 100\n // row nodes getting expanded, we only update the CSRM once, and then we fire all events after\n // CSRM has updated.\n //\n // if we did not do this, then the user could call setExpanded on 100+ rows, causing the grid\n // to re-render 100+ times, which would be a performance lag.\n //\n // we use animationFrameService\n // rather than _.debounce() so this will get done if anyone flushes the animationFrameService\n // (eg user calls api.ensureRowVisible(), which in turn flushes ).\n RowNodeEventThrottle.prototype.dispatchExpanded = function (event) {\n var _this = this;\n // if not using CSRM, we don't debounce. otherwise this breaks the SSRM.\n if (this.clientSideRowModel == null) {\n this.eventService.dispatchEvent(event);\n return;\n }\n this.events.push(event);\n var func = function () {\n if (_this.clientSideRowModel) {\n _this.clientSideRowModel.onRowGroupOpened();\n }\n _this.events.forEach(function (e) { return _this.eventService.dispatchEvent(e); });\n _this.events = [];\n };\n if (this.dispatchExpandedDebounced == null) {\n this.dispatchExpandedDebounced = this.animationFrameService.debounce(func);\n }\n this.dispatchExpandedDebounced();\n };\n __decorate$2m([\n Autowired('animationFrameService')\n ], RowNodeEventThrottle.prototype, \"animationFrameService\", void 0);\n __decorate$2m([\n Autowired('rowModel')\n ], RowNodeEventThrottle.prototype, \"rowModel\", void 0);\n __decorate$2m([\n PostConstruct\n ], RowNodeEventThrottle.prototype, \"postConstruct\", null);\n RowNodeEventThrottle = __decorate$2m([\n Bean('rowNodeEventThrottle')\n ], RowNodeEventThrottle);\n return RowNodeEventThrottle;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar __read$h = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$d = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$h(arguments[i]));\n return ar;\n};\n// creates JavaScript vanilla Grid, including JavaScript (ag-stack) components, which can\n// be wrapped by the framework wrappers\nvar Grid = /** @class */ (function () {\n function Grid(eGridDiv, gridOptions, params) {\n if (!gridOptions) {\n console.error('AG Grid: no gridOptions provided to the grid');\n return;\n }\n this.gridOptions = gridOptions;\n new GridCoreCreator().create(eGridDiv, gridOptions, function (context) {\n var gridComp = new GridComp(eGridDiv);\n context.createBean(gridComp);\n }, undefined, params);\n }\n Grid.prototype.destroy = function () {\n if (this.gridOptions && this.gridOptions.api) {\n this.gridOptions.api.destroy();\n }\n };\n return Grid;\n}());\n// created services of grid only, no UI, so frameworks can use this if providing\n// their own UI\nvar GridCoreCreator = /** @class */ (function () {\n function GridCoreCreator() {\n }\n GridCoreCreator.prototype.create = function (eGridDiv, gridOptions, createUi, acceptChanges, params) {\n var _this = this;\n var debug = !!gridOptions.debug;\n var registeredModules = this.getRegisteredModules(params);\n var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules);\n var providedBeanInstances = this.createProvidedBeans(eGridDiv, gridOptions, params);\n if (!beanClasses) {\n return;\n } // happens when no row model found\n var contextParams = {\n providedBeanInstances: providedBeanInstances,\n beanClasses: beanClasses,\n debug: debug\n };\n var logger = new Logger('AG Grid', function () { return gridOptions.debug; });\n var contextLogger = new Logger('Context', function () { return contextParams.debug; });\n var context = new Context(contextParams, contextLogger);\n var beans = context.getBean('beans');\n this.registerModuleUserComponents(beans, registeredModules);\n this.registerStackComponents(beans, registeredModules);\n this.registerControllers(beans, registeredModules);\n createUi(context);\n // we wait until the UI has finished initialising before setting in columns and rows\n beans.ctrlsService.whenReady(function () {\n _this.setColumnsAndData(beans);\n _this.dispatchGridReadyEvent(beans, gridOptions);\n var isEnterprise = ModuleRegistry.isRegistered(exports.ModuleNames.EnterpriseCoreModule);\n logger.log(\"initialised successfully, enterprise = \" + isEnterprise);\n });\n if (acceptChanges) {\n acceptChanges(context);\n }\n };\n GridCoreCreator.prototype.registerControllers = function (beans, registeredModules) {\n registeredModules.forEach(function (module) {\n if (module.controllers) {\n module.controllers.forEach(function (meta) { return beans.ctrlsFactory.register(meta); });\n }\n });\n };\n GridCoreCreator.prototype.registerStackComponents = function (beans, registeredModules) {\n var agStackComponents = this.createAgStackComponentsList(registeredModules);\n beans.agStackComponentsRegistry.setupComponents(agStackComponents);\n };\n GridCoreCreator.prototype.getRegisteredModules = function (params) {\n var passedViaConstructor = params ? params.modules : null;\n var registered = ModuleRegistry.getRegisteredModules();\n var allModules = [];\n var mapNames = {};\n // adds to list and removes duplicates\n function addModule(moduleBased, mod) {\n function addIndividualModule(currentModule) {\n if (!mapNames[currentModule.moduleName]) {\n mapNames[currentModule.moduleName] = true;\n allModules.push(currentModule);\n ModuleRegistry.register(currentModule, moduleBased);\n }\n }\n addIndividualModule(mod);\n if (mod.dependantModules) {\n mod.dependantModules.forEach(addModule.bind(null, moduleBased));\n }\n }\n if (passedViaConstructor) {\n passedViaConstructor.forEach(addModule.bind(null, true));\n }\n if (registered) {\n registered.forEach(addModule.bind(null, !ModuleRegistry.isPackageBased()));\n }\n return allModules;\n };\n GridCoreCreator.prototype.registerModuleUserComponents = function (beans, registeredModules) {\n var moduleUserComps = this.extractModuleEntity(registeredModules, function (module) { return module.userComponents ? module.userComponents : []; });\n moduleUserComps.forEach(function (compMeta) {\n beans.userComponentRegistry.registerDefaultComponent(compMeta.componentName, compMeta.componentClass);\n });\n };\n GridCoreCreator.prototype.createProvidedBeans = function (eGridDiv, gridOptions, params) {\n var frameworkOverrides = params ? params.frameworkOverrides : null;\n if (missing(frameworkOverrides)) {\n frameworkOverrides = new VanillaFrameworkOverrides();\n }\n var seed = {\n gridOptions: gridOptions,\n eGridDiv: eGridDiv,\n globalEventListener: params ? params.globalEventListener : null,\n frameworkOverrides: frameworkOverrides\n };\n if (params && params.providedBeanInstances) {\n Object.assign(seed, params.providedBeanInstances);\n }\n return seed;\n };\n GridCoreCreator.prototype.createAgStackComponentsList = function (registeredModules) {\n var components = [\n { componentName: 'AgCheckbox', componentClass: AgCheckbox },\n { componentName: 'AgRadioButton', componentClass: AgRadioButton },\n { componentName: 'AgToggleButton', componentClass: AgToggleButton },\n { componentName: 'AgInputTextField', componentClass: AgInputTextField },\n { componentName: 'AgInputTextArea', componentClass: AgInputTextArea },\n { componentName: 'AgInputNumberField', componentClass: AgInputNumberField },\n { componentName: 'AgInputRange', componentClass: AgInputRange },\n { componentName: 'AgSelect', componentClass: AgSelect },\n { componentName: 'AgSlider', componentClass: AgSlider },\n { componentName: 'AgAngleSelect', componentClass: AgAngleSelect },\n { componentName: 'AgColorPicker', componentClass: AgColorPicker },\n { componentName: 'AgGridBody', componentClass: GridBodyComp },\n { componentName: 'AgHeaderRoot', componentClass: GridHeaderComp },\n { componentName: 'AgPagination', componentClass: PaginationComp },\n { componentName: 'AgOverlayWrapper', componentClass: OverlayWrapperComponent },\n { componentName: 'AgGroupComponent', componentClass: AgGroupComponent },\n { componentName: 'AgPanel', componentClass: AgPanel },\n { componentName: 'AgDialog', componentClass: AgDialog },\n { componentName: 'AgRowContainer', componentClass: RowContainerComp },\n { componentName: 'AgFakeHorizontalScroll', componentClass: FakeHScrollComp }\n ];\n var moduleAgStackComps = this.extractModuleEntity(registeredModules, function (module) { return module.agStackComponents ? module.agStackComponents : []; });\n components = components.concat(moduleAgStackComps);\n return components;\n };\n GridCoreCreator.prototype.createBeansList = function (rowModelType, registeredModules) {\n var rowModelClass = this.getRowModelClass(rowModelType, registeredModules);\n if (!rowModelClass) {\n return;\n }\n // beans should only contain SERVICES, it should NEVER contain COMPONENTS\n var beans = [\n rowModelClass, Beans, RowPositionUtils, CellPositionUtils, HeaderPositionUtils,\n PaginationAutoPageSizeService, GridApi, UserComponentRegistry, AgComponentUtils,\n ComponentMetadataProvider, ResizeObserverService, UserComponentFactory,\n RowContainerHeightService, HorizontalResizeService,\n PinnedRowModel, DragService, DisplayedGroupCreator, EventService, GridOptionsWrapper,\n PopupService, SelectionService, FilterManager, ColumnModel, HeaderNavigationService,\n PaginationProxy, RowRenderer, ExpressionService, ColumnFactory, TemplateService,\n AlignedGridsService, NavigationService, ValueCache, ValueService, LoggerFactory,\n ColumnUtils, AutoWidthCalculator, StandardMenuFactory, DragAndDropService, ColumnApi,\n FocusService, MouseEventService, Environment, CellNavigationService, ValueFormatterService,\n StylingService, ScrollVisibleService, SortController, ColumnHoverService, ColumnAnimationService,\n SelectableService, AutoGroupColService, ChangeDetectionService, AnimationFrameService,\n UndoRedoService, AgStackComponentsRegistry, ColumnDefFactory,\n RowCssClassCalculator, RowNodeBlockLoader, RowNodeSorter, CtrlsService,\n PinnedWidthService, RowNodeEventThrottle, CtrlsFactory\n ];\n var moduleBeans = this.extractModuleEntity(registeredModules, function (module) { return module.beans ? module.beans : []; });\n beans.push.apply(beans, __spread$d(moduleBeans));\n // check for duplicates, as different modules could include the same beans that\n // they depend on, eg ClientSideRowModel in enterprise, and ClientSideRowModel in community\n var beansNoDuplicates = [];\n beans.forEach(function (bean) {\n if (beansNoDuplicates.indexOf(bean) < 0) {\n beansNoDuplicates.push(bean);\n }\n });\n return beansNoDuplicates;\n };\n GridCoreCreator.prototype.extractModuleEntity = function (moduleEntities, extractor) {\n return [].concat.apply([], __spread$d(moduleEntities.map(extractor)));\n };\n GridCoreCreator.prototype.setColumnsAndData = function (beans) {\n var columnDefs = beans.gridOptionsWrapper.getColumnDefs();\n beans.columnModel.setColumnDefs(columnDefs || [], \"gridInitializing\");\n beans.rowModel.start();\n };\n GridCoreCreator.prototype.dispatchGridReadyEvent = function (beans, gridOptions) {\n var readyEvent = {\n type: Events.EVENT_GRID_READY,\n api: gridOptions.api,\n columnApi: gridOptions.columnApi\n };\n beans.eventService.dispatchEvent(readyEvent);\n };\n GridCoreCreator.prototype.getRowModelClass = function (rowModelType, registeredModules) {\n // default to client side\n if (!rowModelType) {\n rowModelType = Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n }\n var rowModelClasses = {};\n registeredModules.forEach(function (module) {\n iterateObject(module.rowModels, function (key, value) {\n rowModelClasses[key] = value;\n });\n });\n var rowModelClass = rowModelClasses[rowModelType];\n if (exists(rowModelClass)) {\n return rowModelClass;\n }\n if (ModuleRegistry.isPackageBased()) {\n if ([Constants.ROW_MODEL_TYPE_VIEWPORT, Constants.ROW_MODEL_TYPE_SERVER_SIDE].includes(rowModelType))\n // If package based only the enterprise row models could be missing.\n console.error(\"AG Grid: Row Model \\\"\" + rowModelType + \"\\\" not found. Please ensure the package 'ag-grid-enterprise' is imported. Please see: https://www.ag-grid.com/javascript-grid/packages/\");\n else {\n console.error('AG Grid: could not find row model for rowModelType ' + rowModelType);\n }\n }\n else {\n if (rowModelType === Constants.ROW_MODEL_TYPE_INFINITE) {\n console.error(\"AG Grid: Row Model \\\"Infinite\\\" not found. Please ensure the \" + exports.ModuleNames.InfiniteRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else if (rowModelType === Constants.ROW_MODEL_TYPE_VIEWPORT) {\n console.error(\"AG Grid: Row Model \\\"Viewport\\\" not found. Please ensure the AG Grid Enterprise Module \" + exports.ModuleNames.ViewportRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else if (rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE) {\n console.error(\"AG Grid: Row Model \\\"Server Side\\\" not found. Please ensure the AG Grid Enterprise Module \" + exports.ModuleNames.ServerSideRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else if (rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n console.error(\"AG Grid: Row Model \\\"Client Side\\\" not found. Please ensure the \" + exports.ModuleNames.ClientSideRowModelModule + \" module is registered. Please see: https://www.ag-grid.com/javascript-grid/modules/\");\n }\n else {\n console.error('AG Grid: could not find row model for rowModelType ' + rowModelType);\n }\n }\n };\n return GridCoreCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nfunction defaultGroupComparator(valueA, valueB, nodeA, nodeB, accentedCompare) {\n if (accentedCompare === void 0) { accentedCompare = false; }\n console.warn('AG Grid: Since ag-grid 11.0.0 defaultGroupComparator is not necessary. You can remove this from your colDef');\n var nodeAIsGroup = exists(nodeA) && nodeA.group;\n var nodeBIsGroup = exists(nodeB) && nodeB.group;\n var bothAreGroups = nodeAIsGroup && nodeBIsGroup;\n var bothAreNormal = !nodeAIsGroup && !nodeBIsGroup;\n if (bothAreGroups) {\n return defaultComparator(nodeA.key, nodeB.key, accentedCompare);\n }\n if (bothAreNormal) {\n return defaultComparator(valueA, valueB, accentedCompare);\n }\n if (nodeAIsGroup) {\n return 1;\n }\n return -1;\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar BaseComponentWrapper = /** @class */ (function () {\n function BaseComponentWrapper() {\n }\n BaseComponentWrapper.prototype.wrap = function (OriginalConstructor, mandatoryMethodList, optionalMethodList, componentType) {\n var _this = this;\n if (optionalMethodList === void 0) { optionalMethodList = []; }\n var wrapper = this.createWrapper(OriginalConstructor, componentType);\n mandatoryMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, true);\n }));\n optionalMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, false);\n }));\n return wrapper;\n };\n BaseComponentWrapper.prototype.unwrap = function (comp) {\n return comp;\n };\n BaseComponentWrapper.prototype.createMethod = function (wrapper, methodName, mandatory) {\n wrapper.addMethod(methodName, this.createMethodProxy(wrapper, methodName, mandatory));\n };\n BaseComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {\n return function () {\n if (wrapper.hasMethod(methodName)) {\n return wrapper.callMethod(methodName, arguments);\n }\n if (mandatory) {\n console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');\n }\n return null;\n };\n };\n return BaseComponentWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n(function (BarColumnLabelPlacement) {\n BarColumnLabelPlacement[\"InsideBase\"] = \"insideBase\";\n BarColumnLabelPlacement[\"InsideEnd\"] = \"insideEnd\";\n BarColumnLabelPlacement[\"Center\"] = \"center\";\n BarColumnLabelPlacement[\"OutsideEnd\"] = \"outsideEnd\";\n})(exports.BarColumnLabelPlacement || (exports.BarColumnLabelPlacement = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v27.3.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar globalObj = typeof global === 'undefined' ? {} : global;\nglobalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;\nglobalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;\nglobalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;\nglobalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;\nglobalObj.Node = typeof Node === 'undefined' ? {} : Node;\nglobalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;\n\nvar __read$i = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$e = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$i(arguments[i]));\n return ar;\n};\nvar ClientSideNodeManager = /** @class */ (function () {\n function ClientSideNodeManager(rootNode, gridOptionsWrapper, eventService, columnModel, gridApi, columnApi, selectionService, beans) {\n this.nextId = 0;\n // when user is provide the id's, we also keep a map of ids to row nodes for convenience\n this.allNodesMap = {};\n this.rootNode = rootNode;\n this.gridOptionsWrapper = gridOptionsWrapper;\n this.eventService = eventService;\n this.columnModel = columnModel;\n this.gridApi = gridApi;\n this.columnApi = columnApi;\n this.beans = beans;\n this.selectionService = selectionService;\n this.rootNode.group = true;\n this.rootNode.level = -1;\n this.rootNode.id = ClientSideNodeManager.ROOT_NODE_ID;\n this.rootNode.allLeafChildren = [];\n this.rootNode.childrenAfterGroup = [];\n this.rootNode.childrenAfterSort = [];\n this.rootNode.childrenAfterAggFilter = [];\n this.rootNode.childrenAfterFilter = [];\n // if we make this class a bean, then can annotate postConstruct\n this.postConstruct();\n }\n // @PostConstruct - this is not a bean, so postConstruct called by constructor\n ClientSideNodeManager.prototype.postConstruct = function () {\n // func below doesn't have 'this' pointer, so need to pull out these bits\n this.suppressParentsInRowNodes = this.gridOptionsWrapper.isSuppressParentsInRowNodes();\n this.isRowMasterFunc = this.gridOptionsWrapper.getIsRowMasterFunc();\n this.doingTreeData = this.gridOptionsWrapper.isTreeData();\n this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n };\n ClientSideNodeManager.prototype.getCopyOfNodesMap = function () {\n return _.cloneObject(this.allNodesMap);\n };\n ClientSideNodeManager.prototype.getRowNode = function (id) {\n return this.allNodesMap[id];\n };\n ClientSideNodeManager.prototype.setRowData = function (rowData) {\n var _this = this;\n if (typeof rowData === 'string') {\n console.warn('AG Grid: rowData must be an array, however you passed in a string. If you are loading JSON, make sure you convert the JSON string to JavaScript objects first');\n return;\n }\n var rootNode = this.rootNode;\n var sibling = this.rootNode.sibling;\n rootNode.childrenAfterFilter = null;\n rootNode.childrenAfterGroup = null;\n rootNode.childrenAfterAggFilter = null;\n rootNode.childrenAfterSort = null;\n rootNode.childrenMapped = null;\n rootNode.updateHasChildren();\n this.nextId = 0;\n this.allNodesMap = {};\n if (rowData) {\n // we use rootNode as the parent, however if using ag-grid-enterprise, the grouping stage\n // sets the parent node on each row (even if we are not grouping). so setting parent node\n // here is for benefit of ag-grid-community users\n rootNode.allLeafChildren = rowData.map(function (dataItem) { return _this.createNode(dataItem, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });\n }\n else {\n rootNode.allLeafChildren = [];\n rootNode.childrenAfterGroup = [];\n }\n if (sibling) {\n sibling.childrenAfterFilter = rootNode.childrenAfterFilter;\n sibling.childrenAfterGroup = rootNode.childrenAfterGroup;\n sibling.childrenAfterAggFilter = rootNode.childrenAfterAggFilter;\n sibling.childrenAfterSort = rootNode.childrenAfterSort;\n sibling.childrenMapped = rootNode.childrenMapped;\n sibling.allLeafChildren = rootNode.allLeafChildren;\n }\n };\n ClientSideNodeManager.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n var rowNodeTransaction = {\n remove: [],\n update: [],\n add: []\n };\n var nodesToUnselect = [];\n this.executeRemove(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeUpdate(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeAdd(rowDataTran, rowNodeTransaction);\n this.updateSelection(nodesToUnselect);\n if (rowNodeOrder) {\n _.sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);\n }\n return rowNodeTransaction;\n };\n ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n nodesToUnselect.forEach(function (rowNode) {\n rowNode.setSelected(false, false, true);\n });\n }\n // we do this regardless of nodes to unselect or not, as it's possible\n // a new node was inserted, so a parent that was previously selected (as all\n // children were selected) should not be tri-state (as new one unselected against\n // all other selected children).\n this.selectionService.updateGroupsFromChildrenSelections();\n if (selectionChanged) {\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var add = rowDataTran.add, addIndex = rowDataTran.addIndex;\n if (_.missingOrEmpty(add)) {\n return;\n }\n // create new row nodes for each data item\n var newNodes = add.map(function (item) { return _this.createNode(item, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });\n // add new row nodes to the root nodes 'allLeafChildren'\n var useIndex = typeof addIndex === 'number' && addIndex >= 0;\n var nodesBeforeIndex;\n var nodesAfterIndex;\n if (useIndex) {\n // new rows are inserted in one go by concatenating them in between the existing rows at the desired index.\n // this is much faster than splicing them individually into 'allLeafChildren' when there are large inserts.\n // allLeafChildren can be out of order, so we loop over all the Nodes to find the correct index that\n // represents the position `addIndex` intended to be.\n var allLeafChildren_1 = this.rootNode.allLeafChildren;\n // if addIndex is 0, it should always be added at the start of the array\n // there is no need to verify the order of node by nodeIndex.\n var normalizedAddIndex = addIndex === 0 ? 0 : (allLeafChildren_1.reduce(function (prevIdx, currNode, currIdx) {\n var _a;\n var rowIndex = currNode.rowIndex;\n var prevValueAtIndex = (_a = allLeafChildren_1[prevIdx]) === null || _a === void 0 ? void 0 : _a.rowIndex;\n var shouldUpdateIndex = rowIndex != null && prevValueAtIndex != null && rowIndex < addIndex && rowIndex > prevValueAtIndex;\n return shouldUpdateIndex ? currIdx : prevIdx;\n }, 0) + 1);\n nodesBeforeIndex = allLeafChildren_1.slice(0, normalizedAddIndex);\n nodesAfterIndex = allLeafChildren_1.slice(normalizedAddIndex, allLeafChildren_1.length);\n }\n else {\n nodesBeforeIndex = this.rootNode.allLeafChildren;\n nodesAfterIndex = [];\n }\n this.rootNode.allLeafChildren = __spread$e(nodesBeforeIndex, newNodes, nodesAfterIndex);\n if (this.rootNode.sibling) {\n this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;\n }\n // add new row nodes to the transaction add items\n rowNodeTransaction.add = newNodes;\n };\n ClientSideNodeManager.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var remove = rowDataTran.remove;\n if (_.missingOrEmpty(remove)) {\n return;\n }\n var rowIdsRemoved = {};\n remove.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for\n // each row node updated, instead it is raised once by the calling code if any selected nodes exist.\n if (rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n // so row renderer knows to fade row out (and not reposition it)\n rowNode.clearRowTopAndRowIndex();\n // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially\n // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list\n rowIdsRemoved[rowNode.id] = true;\n // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);\n delete _this.allNodesMap[rowNode.id];\n rowNodeTransaction.remove.push(rowNode);\n });\n this.rootNode.allLeafChildren = this.rootNode.allLeafChildren.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });\n if (this.rootNode.sibling) {\n this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;\n }\n };\n ClientSideNodeManager.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var update = rowDataTran.update;\n if (_.missingOrEmpty(update)) {\n return;\n }\n update.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n rowNode.updateData(item);\n if (!rowNode.selectable && rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n _this.setMasterForRow(rowNode, item, ClientSideNodeManager.TOP_LEVEL, false);\n rowNodeTransaction.update.push(rowNode);\n });\n };\n ClientSideNodeManager.prototype.lookupRowNode = function (data) {\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n var rowNode;\n if (getRowIdFunc) {\n // find rowNode using id\n var id = getRowIdFunc({ data: data, level: 0 });\n rowNode = this.allNodesMap[id];\n if (!rowNode) {\n console.error(\"AG Grid: could not find row id=\" + id + \", data item was not found for this id\");\n return null;\n }\n }\n else {\n // find rowNode using object references\n rowNode = this.rootNode.allLeafChildren.find(function (node) { return node.data === data; });\n if (!rowNode) {\n console.error(\"AG Grid: could not find data item as object was not found\", data);\n console.error(\"Consider using getRowId to help the Grid find matching row data\");\n return null;\n }\n }\n return rowNode || null;\n };\n ClientSideNodeManager.prototype.createNode = function (dataItem, parent, level) {\n var node = new RowNode(this.beans);\n node.group = false;\n this.setMasterForRow(node, dataItem, level, true);\n if (parent && !this.suppressParentsInRowNodes) {\n node.parent = parent;\n }\n node.level = level;\n node.setDataAndId(dataItem, this.nextId.toString());\n if (this.allNodesMap[node.id]) {\n console.warn(\"AG Grid: duplicate node id '\" + node.id + \"' detected from getRowId callback, this could cause issues in your grid.\");\n }\n this.allNodesMap[node.id] = node;\n this.nextId++;\n return node;\n };\n ClientSideNodeManager.prototype.setMasterForRow = function (rowNode, data, level, setExpanded) {\n if (this.doingTreeData) {\n rowNode.setMaster(false);\n if (setExpanded) {\n rowNode.expanded = false;\n }\n }\n else {\n // this is the default, for when doing grid data\n if (this.doingMasterDetail) {\n // if we are doing master detail, then the\n // default is that everything can be a Master Row.\n if (this.isRowMasterFunc) {\n rowNode.setMaster(this.isRowMasterFunc(data));\n }\n else {\n rowNode.setMaster(true);\n }\n }\n else {\n rowNode.setMaster(false);\n }\n if (setExpanded) {\n var rowGroupColumns = this.columnModel.getRowGroupColumns();\n var numRowGroupColumns = rowGroupColumns ? rowGroupColumns.length : 0;\n // need to take row group into account when determining level\n var masterRowLevel = level + numRowGroupColumns;\n rowNode.expanded = rowNode.master ? this.isExpanded(masterRowLevel) : false;\n }\n }\n };\n ClientSideNodeManager.prototype.isExpanded = function (level) {\n var expandByDefault = this.gridOptionsWrapper.getGroupDefaultExpanded();\n if (expandByDefault === -1) {\n return true;\n }\n return level < expandByDefault;\n };\n ClientSideNodeManager.TOP_LEVEL = 0;\n ClientSideNodeManager.ROOT_NODE_ID = 'ROOT_NODE_ID';\n return ClientSideNodeManager;\n}());\n\nvar __extends$2G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RecursionType;\n(function (RecursionType) {\n RecursionType[RecursionType[\"Normal\"] = 0] = \"Normal\";\n RecursionType[RecursionType[\"AfterFilter\"] = 1] = \"AfterFilter\";\n RecursionType[RecursionType[\"AfterFilterAndSort\"] = 2] = \"AfterFilterAndSort\";\n RecursionType[RecursionType[\"PivotNodes\"] = 3] = \"PivotNodes\";\n})(RecursionType || (RecursionType = {}));\nvar ClientSideRowModel = /** @class */ (function (_super) {\n __extends$2G(ClientSideRowModel, _super);\n function ClientSideRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClientSideRowModel.prototype.init = function () {\n var refreshEverythingFunc = this.refreshModel.bind(this, { step: exports.ClientSideRowModelSteps.EVERYTHING });\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n var refreshEverythingAfterColsChangedFunc = this.refreshModel.bind(this, {\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n afterColumnsChanged: true,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refreshEverythingAfterColsChangedFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, refreshEverythingFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.refreshModel.bind(this, { step: exports.ClientSideRowModelSteps.PIVOT }));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, refreshEverythingFunc);\n var refreshMapListener = this.refreshModel.bind(this, {\n step: exports.ClientSideRowModelSteps.MAP,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN, refreshMapListener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, refreshMapListener);\n this.rootNode = new RowNode(this.beans);\n this.nodeManager = new ClientSideNodeManager(this.rootNode, this.gridOptionsWrapper, this.eventService, this.columnModel, this.gridApi, this.columnApi, this.selectionService, this.beans);\n };\n ClientSideRowModel.prototype.start = function () {\n var rowData = this.gridOptionsWrapper.getRowData();\n if (rowData) {\n this.setRowData(rowData);\n }\n };\n ClientSideRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var atLeastOneChange;\n var res = false;\n // we do this multiple times as changing the row heights can also change the first and last rows,\n // so the first pass can make lots of rows smaller, which means the second pass we end up changing\n // more rows.\n do {\n atLeastOneChange = false;\n var rowAtStartPixel = this.getRowIndexAtPixel(startPixel);\n var rowAtEndPixel = this.getRowIndexAtPixel(endPixel);\n // keep check to current page if doing pagination\n var firstRow = Math.max(rowAtStartPixel, startLimitIndex);\n var lastRow = Math.min(rowAtEndPixel, endLimitIndex);\n for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {\n var rowNode = this.getRow(rowIndex);\n if (rowNode.rowHeightEstimated) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode);\n rowNode.setRowHeight(rowHeight.height);\n atLeastOneChange = true;\n res = true;\n }\n }\n if (atLeastOneChange) {\n this.setRowTopAndRowIndex();\n }\n } while (atLeastOneChange);\n return res;\n };\n ClientSideRowModel.prototype.setRowTopAndRowIndex = function () {\n var defaultRowHeight = this.gridOptionsWrapper.getDefaultRowHeight();\n var nextRowTop = 0;\n // mapping displayed rows is not needed for this method, however it's used in\n // clearRowTopAndRowIndex(), and given we are looping through this.rowsToDisplay here,\n // we create the map here for performance reasons, so we don't loop a second time\n // in clearRowTopAndRowIndex()\n var displayedRowsMapped = new Set();\n // we don't estimate if doing fullHeight or autoHeight, as all rows get rendered all the time\n // with these two layouts.\n var allowEstimate = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n for (var i = 0; i < this.rowsToDisplay.length; i++) {\n var rowNode = this.rowsToDisplay[i];\n if (rowNode.id != null) {\n displayedRowsMapped.add(rowNode.id);\n }\n if (rowNode.rowHeight == null) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode, allowEstimate, defaultRowHeight);\n rowNode.setRowHeight(rowHeight.height, rowHeight.estimated);\n }\n rowNode.setRowTop(nextRowTop);\n rowNode.setRowIndex(i);\n nextRowTop += rowNode.rowHeight;\n }\n return displayedRowsMapped;\n };\n ClientSideRowModel.prototype.clearRowTopAndRowIndex = function (changedPath, displayedRowsMapped) {\n var changedPathActive = changedPath.isActive();\n var clearIfNotDisplayed = function (rowNode) {\n if (rowNode && rowNode.id != null && !displayedRowsMapped.has(rowNode.id)) {\n rowNode.clearRowTopAndRowIndex();\n }\n };\n var recurse = function (rowNode) {\n clearIfNotDisplayed(rowNode);\n clearIfNotDisplayed(rowNode.detailNode);\n clearIfNotDisplayed(rowNode.sibling);\n if (rowNode.hasChildren()) {\n if (rowNode.childrenAfterGroup) {\n // if a changedPath is active, it means we are here because of a transaction update or\n // a change detection. neither of these impacts the open/closed state of groups. so if\n // a group is not open this time, it was not open last time. so we know all closed groups\n // already have their top positions cleared. so there is no need to traverse all the way\n // when changedPath is active and the rowNode is not expanded.\n var isRootNode = rowNode.level == -1; // we need to give special consideration for root node,\n // as expanded=undefined for root node\n var skipChildren = changedPathActive && !isRootNode && !rowNode.expanded;\n if (!skipChildren) {\n rowNode.childrenAfterGroup.forEach(recurse);\n }\n }\n }\n };\n recurse(this.rootNode);\n };\n // returns false if row was moved, otherwise true\n ClientSideRowModel.prototype.ensureRowsAtPixel = function (rowNodes, pixel, increment) {\n var _this = this;\n if (increment === void 0) { increment = 0; }\n var indexAtPixelNow = this.getRowIndexAtPixel(pixel);\n var rowNodeAtPixelNow = this.getRow(indexAtPixelNow);\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n if (rowNodeAtPixelNow === rowNodes[0]) {\n return false;\n }\n rowNodes.forEach(function (rowNode) {\n _.removeFromArray(_this.rootNode.allLeafChildren, rowNode);\n });\n rowNodes.forEach(function (rowNode, idx) {\n _.insertIntoArray(_this.rootNode.allLeafChildren, rowNode, Math.max(indexAtPixelNow + increment, 0) + idx);\n });\n this.refreshModel({\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n });\n return true;\n };\n ClientSideRowModel.prototype.highlightRowAtPixel = function (rowNode, pixel) {\n var indexAtPixelNow = pixel != null ? this.getRowIndexAtPixel(pixel) : null;\n var rowNodeAtPixelNow = indexAtPixelNow != null ? this.getRow(indexAtPixelNow) : null;\n if (!rowNodeAtPixelNow || !rowNode || rowNodeAtPixelNow === rowNode || pixel == null) {\n if (this.lastHighlightedRow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n return;\n }\n var highlight = this.getHighlightPosition(pixel, rowNodeAtPixelNow);\n if (this.lastHighlightedRow && this.lastHighlightedRow !== rowNodeAtPixelNow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n rowNodeAtPixelNow.setHighlighted(highlight);\n this.lastHighlightedRow = rowNodeAtPixelNow;\n };\n ClientSideRowModel.prototype.getHighlightPosition = function (pixel, rowNode) {\n if (!rowNode) {\n var index = this.getRowIndexAtPixel(pixel);\n rowNode = this.getRow(index || 0);\n if (!rowNode) {\n return exports.RowHighlightPosition.Below;\n }\n }\n var rowTop = rowNode.rowTop, rowHeight = rowNode.rowHeight;\n return pixel - rowTop < rowHeight / 2 ? exports.RowHighlightPosition.Above : exports.RowHighlightPosition.Below;\n };\n ClientSideRowModel.prototype.getLastHighlightedRowNode = function () {\n return this.lastHighlightedRow;\n };\n ClientSideRowModel.prototype.isLastRowIndexKnown = function () {\n return true;\n };\n ClientSideRowModel.prototype.getRowCount = function () {\n if (this.rowsToDisplay) {\n return this.rowsToDisplay.length;\n }\n return 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowCount = function () {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return 1;\n }\n var filteredChildren = this.rootNode.childrenAfterAggFilter;\n return filteredChildren ? filteredChildren.length : 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return topLevelIndex;\n }\n var rowNode = this.rootNode.childrenAfterSort[topLevelIndex];\n if (this.gridOptionsWrapper.isGroupHideOpenParents()) {\n // if hideOpenParents, and this row open, then this row is now displayed at this index, first child is\n while (rowNode.expanded && rowNode.childrenAfterSort && rowNode.childrenAfterSort.length > 0) {\n rowNode = rowNode.childrenAfterSort[0];\n }\n }\n return rowNode.rowIndex;\n };\n ClientSideRowModel.prototype.getRowBounds = function (index) {\n if (_.missing(this.rowsToDisplay)) {\n return null;\n }\n var rowNode = this.rowsToDisplay[index];\n if (rowNode) {\n return {\n rowTop: rowNode.rowTop,\n rowHeight: rowNode.rowHeight\n };\n }\n return null;\n };\n ClientSideRowModel.prototype.onRowGroupOpened = function () {\n var animate = this.gridOptionsWrapper.isAnimateRows();\n this.refreshModel({ step: exports.ClientSideRowModelSteps.MAP, keepRenderedRows: true, animate: animate });\n };\n ClientSideRowModel.prototype.onFilterChanged = function (event) {\n if (event.afterDataChange) {\n return;\n }\n var animate = this.gridOptionsWrapper.isAnimateRows();\n var primaryOrQuickFilterChanged = event.columns.length === 0 || event.columns.some(function (col) { return col.isPrimary(); });\n var step = primaryOrQuickFilterChanged ? exports.ClientSideRowModelSteps.FILTER : exports.ClientSideRowModelSteps.FILTER_AGGREGATES;\n this.refreshModel({ step: step, keepRenderedRows: true, animate: animate });\n };\n ClientSideRowModel.prototype.onSortChanged = function () {\n var animate = this.gridOptionsWrapper.isAnimateRows();\n this.refreshModel({ step: exports.ClientSideRowModelSteps.SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });\n };\n ClientSideRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n };\n ClientSideRowModel.prototype.onValueChanged = function () {\n if (this.columnModel.isPivotActive()) {\n this.refreshModel({ step: exports.ClientSideRowModelSteps.PIVOT });\n }\n else {\n this.refreshModel({ step: exports.ClientSideRowModelSteps.AGGREGATE });\n }\n };\n ClientSideRowModel.prototype.createChangePath = function (rowNodeTransactions) {\n // for updates, if the row is updated at all, then we re-calc all the values\n // in that row. we could compare each value to each old value, however if we\n // did this, we would be calling the valueService twice, once on the old value\n // and once on the new value. so it's less valueGetter calls if we just assume\n // each column is different. that way the changedPath is used so that only\n // the impacted parent rows are recalculated, parents who's children have\n // not changed are not impacted.\n var noTransactions = _.missingOrEmpty(rowNodeTransactions);\n var changedPath = new ChangedPath(false, this.rootNode);\n if (noTransactions || this.gridOptionsWrapper.isTreeData()) {\n changedPath.setInactive();\n }\n return changedPath;\n };\n ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {\n if (!this.gridOptionsWrapper.isSuppressModelUpdateAfterUpdateTransaction()) {\n return false;\n }\n // return true if we are only doing update transactions\n if (params.rowNodeTransactions == null) {\n return false;\n }\n var transWithAddsOrDeletes = params.rowNodeTransactions.filter(function (tx) {\n return (tx.add != null && tx.add.length > 0) || (tx.remove != null && tx.remove.length > 0);\n });\n var transactionsContainUpdatesOnly = transWithAddsOrDeletes == null || transWithAddsOrDeletes.length == 0;\n return transactionsContainUpdatesOnly;\n };\n ClientSideRowModel.prototype.refreshModel = function (params) {\n if (this.isSuppressModelUpdateAfterUpdateTransaction(params)) {\n return;\n }\n // this goes through the pipeline of stages. what's in my head is similar\n // to the diagram on this page:\n // http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html\n // however we want to keep the results of each stage, hence we manually call\n // each step rather than have them chain each other.\n // fallthrough in below switch is on purpose,\n // eg if STEP_FILTER, then all steps below this\n // step get done\n // let start: number;\n // console.log('======= start =======');\n var changedPath = this.createChangePath(params.rowNodeTransactions);\n switch (params.step) {\n case exports.ClientSideRowModelSteps.EVERYTHING:\n this.doRowGrouping(params.groupState, params.rowNodeTransactions, params.rowNodeOrder, changedPath, !!params.afterColumnsChanged);\n case exports.ClientSideRowModelSteps.FILTER:\n this.doFilter(changedPath);\n case exports.ClientSideRowModelSteps.PIVOT:\n this.doPivot(changedPath);\n case exports.ClientSideRowModelSteps.AGGREGATE: // depends on agg fields\n this.doAggregate(changedPath);\n case exports.ClientSideRowModelSteps.FILTER_AGGREGATES:\n this.doFilterAggregates(changedPath);\n case exports.ClientSideRowModelSteps.SORT:\n this.doSort(params.rowNodeTransactions, changedPath);\n case exports.ClientSideRowModelSteps.MAP:\n this.doRowsToDisplay();\n }\n // set all row tops to null, then set row tops on all visible rows. if we don't\n // do this, then the algorithm below only sets row tops, old row tops from old rows\n // will still lie around\n var displayedNodesMapped = this.setRowTopAndRowIndex();\n this.clearRowTopAndRowIndex(changedPath, displayedNodesMapped);\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi,\n animate: params.animate,\n keepRenderedRows: params.keepRenderedRows,\n newData: params.newData,\n newPage: false\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.isEmpty = function () {\n var rowsMissing = _.missing(this.rootNode.allLeafChildren) || this.rootNode.allLeafChildren.length === 0;\n return _.missing(this.rootNode) || rowsMissing || !this.columnModel.isReady();\n };\n ClientSideRowModel.prototype.isRowsToRender = function () {\n return _.exists(this.rowsToDisplay) && this.rowsToDisplay.length > 0;\n };\n ClientSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n // if lastSelectedNode is missing, we start at the first row\n var firstRowHit = !lastInRange;\n var lastRowHit = false;\n var lastRow;\n var result = [];\n var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.forEachNodeAfterFilterAndSort(function (rowNode) {\n var lookingForLastRow = firstRowHit && !lastRowHit;\n // check if we need to flip the select switch\n if (!firstRowHit) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n firstRowHit = true;\n }\n }\n var skipThisGroupNode = rowNode.group && groupsSelectChildren;\n if (!skipThisGroupNode) {\n var inRange = firstRowHit && !lastRowHit;\n var childOfLastRow = rowNode.isParentOfNode(lastRow);\n if (inRange || childOfLastRow) {\n result.push(rowNode);\n }\n }\n if (lookingForLastRow) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n lastRowHit = true;\n if (rowNode === lastInRange) {\n lastRow = lastInRange;\n }\n else {\n lastRow = firstInRange;\n }\n }\n }\n });\n return result;\n };\n ClientSideRowModel.prototype.setDatasource = function (datasource) {\n console.error('AG Grid: should never call setDatasource on clientSideRowController');\n };\n ClientSideRowModel.prototype.getTopLevelNodes = function () {\n return this.rootNode ? this.rootNode.childrenAfterGroup : null;\n };\n ClientSideRowModel.prototype.getRootNode = function () {\n return this.rootNode;\n };\n ClientSideRowModel.prototype.getRow = function (index) {\n return this.rowsToDisplay[index];\n };\n ClientSideRowModel.prototype.isRowPresent = function (rowNode) {\n return this.rowsToDisplay.indexOf(rowNode) >= 0;\n };\n ClientSideRowModel.prototype.getRowIndexAtPixel = function (pixelToMatch) {\n if (this.isEmpty()) {\n return -1;\n }\n // do binary search of tree\n // http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/\n var bottomPointer = 0;\n var topPointer = this.rowsToDisplay.length - 1;\n // quick check, if the pixel is out of bounds, then return last row\n if (pixelToMatch <= 0) {\n // if pixel is less than or equal zero, it's always the first row\n return 0;\n }\n var lastNode = _.last(this.rowsToDisplay);\n if (lastNode.rowTop <= pixelToMatch) {\n return this.rowsToDisplay.length - 1;\n }\n while (true) {\n var midPointer = Math.floor((bottomPointer + topPointer) / 2);\n var currentRowNode = this.rowsToDisplay[midPointer];\n if (this.isRowInPixel(currentRowNode, pixelToMatch)) {\n return midPointer;\n }\n if (currentRowNode.rowTop < pixelToMatch) {\n bottomPointer = midPointer + 1;\n }\n else if (currentRowNode.rowTop > pixelToMatch) {\n topPointer = midPointer - 1;\n }\n }\n };\n ClientSideRowModel.prototype.isRowInPixel = function (rowNode, pixelToMatch) {\n var topPixel = rowNode.rowTop;\n var bottomPixel = rowNode.rowTop + rowNode.rowHeight;\n var pixelInRow = topPixel <= pixelToMatch && bottomPixel > pixelToMatch;\n return pixelInRow;\n };\n ClientSideRowModel.prototype.forEachLeafNode = function (callback) {\n if (this.rootNode.allLeafChildren) {\n this.rootNode.allLeafChildren.forEach(function (rowNode, index) { return callback(rowNode, index); });\n }\n };\n ClientSideRowModel.prototype.forEachNode = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterGroup, callback, RecursionType.Normal, 0);\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterAggFilter, callback, RecursionType.AfterFilter, 0);\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterSort, callback, RecursionType.AfterFilterAndSort, 0);\n };\n ClientSideRowModel.prototype.forEachPivotNode = function (callback) {\n this.recursivelyWalkNodesAndCallback([this.rootNode], callback, RecursionType.PivotNodes, 0);\n };\n // iterates through each item in memory, and calls the callback function\n // nodes - the rowNodes to traverse\n // callback - the user provided callback\n // recursion type - need this to know what child nodes to recurse, eg if looking at all nodes, or filtered notes etc\n // index - works similar to the index in forEach in javascript's array function\n ClientSideRowModel.prototype.recursivelyWalkNodesAndCallback = function (nodes, callback, recursionType, index) {\n if (!nodes) {\n return index;\n }\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n callback(node, index++);\n // go to the next level if it is a group\n if (node.hasChildren()) {\n // depending on the recursion type, we pick a difference set of children\n var nodeChildren = null;\n switch (recursionType) {\n case RecursionType.Normal:\n nodeChildren = node.childrenAfterGroup;\n break;\n case RecursionType.AfterFilter:\n nodeChildren = node.childrenAfterAggFilter;\n break;\n case RecursionType.AfterFilterAndSort:\n nodeChildren = node.childrenAfterSort;\n break;\n case RecursionType.PivotNodes:\n // for pivot, we don't go below leafGroup levels\n nodeChildren = !node.leafGroup ? node.childrenAfterSort : null;\n break;\n }\n if (nodeChildren) {\n index = this.recursivelyWalkNodesAndCallback(nodeChildren, callback, recursionType, index);\n }\n }\n }\n return index;\n };\n // it's possible to recompute the aggregate without doing the other parts\n // + gridApi.recomputeAggregates()\n ClientSideRowModel.prototype.doAggregate = function (changedPath) {\n if (this.aggregationStage) {\n this.aggregationStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n ClientSideRowModel.prototype.doFilterAggregates = function (changedPath) {\n if (this.filterAggregatesStage) {\n this.filterAggregatesStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n else {\n // If filterAggregatesStage is undefined, then so is the grouping stage, so all children should be on the rootNode.\n this.rootNode.childrenAfterAggFilter = this.rootNode.childrenAfterFilter;\n }\n };\n // + gridApi.expandAll()\n // + gridApi.collapseAll()\n ClientSideRowModel.prototype.expandOrCollapseAll = function (expand) {\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n var usingPivotMode = this.columnModel.isPivotActive();\n var recursiveExpandOrCollapse = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var actionRow = function () {\n rowNode.expanded = expand;\n recursiveExpandOrCollapse(rowNode.childrenAfterGroup);\n };\n if (usingTreeData) {\n var hasChildren = _.exists(rowNode.childrenAfterGroup);\n if (hasChildren) {\n actionRow();\n }\n return;\n }\n if (usingPivotMode) {\n var notLeafGroup = !rowNode.leafGroup;\n if (notLeafGroup) {\n actionRow();\n }\n return;\n }\n var isRowGroup = rowNode.group;\n if (isRowGroup) {\n actionRow();\n }\n });\n };\n if (this.rootNode) {\n recursiveExpandOrCollapse(this.rootNode.childrenAfterGroup);\n }\n this.refreshModel({ step: exports.ClientSideRowModelSteps.MAP });\n var eventSource = expand ? 'expandAll' : 'collapseAll';\n var event = {\n api: this.gridApi,\n columnApi: this.columnApi,\n type: Events.EVENT_EXPAND_COLLAPSE_ALL,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doSort = function (rowNodeTransactions, changedPath) {\n this.sortStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n changedPath: changedPath\n });\n };\n ClientSideRowModel.prototype.doRowGrouping = function (groupState, rowNodeTransactions, rowNodeOrder, changedPath, afterColumnsChanged) {\n if (this.groupStage) {\n if (rowNodeTransactions) {\n this.groupStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n rowNodeOrder: rowNodeOrder,\n changedPath: changedPath\n });\n }\n else {\n this.groupStage.execute({\n rowNode: this.rootNode,\n changedPath: changedPath,\n afterColumnsChanged: afterColumnsChanged\n });\n // set open/closed state on groups\n this.restoreGroupState(groupState);\n }\n if (this.gridOptionsWrapper.isGroupSelectsChildren()) {\n this.selectionService.updateGroupsFromChildrenSelections(changedPath);\n }\n }\n else {\n this.rootNode.childrenAfterGroup = this.rootNode.allLeafChildren;\n if (this.rootNode.sibling) {\n this.rootNode.sibling.childrenAfterGroup = this.rootNode.childrenAfterGroup;\n }\n this.rootNode.updateHasChildren();\n }\n };\n ClientSideRowModel.prototype.restoreGroupState = function (groupState) {\n if (!groupState) {\n return;\n }\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) {\n // if the group was open last time, then open it this time. however\n // if was not open last time, then don't touch the group, so the 'groupDefaultExpanded'\n // setting will take effect.\n if (typeof groupState[key] === 'boolean') {\n node.expanded = groupState[key];\n }\n });\n };\n ClientSideRowModel.prototype.doFilter = function (changedPath) {\n this.filterStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n };\n ClientSideRowModel.prototype.doPivot = function (changedPath) {\n if (this.pivotStage) {\n this.pivotStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n ClientSideRowModel.prototype.getGroupState = function () {\n if (!this.rootNode.childrenAfterGroup || !this.gridOptionsWrapper.isRememberGroupStateWhenNewData()) {\n return null;\n }\n var result = {};\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) { return result[key] = node.expanded; });\n return result;\n };\n ClientSideRowModel.prototype.getCopyOfNodesMap = function () {\n return this.nodeManager.getCopyOfNodesMap();\n };\n ClientSideRowModel.prototype.getRowNode = function (id) {\n // although id is typed a string, this could be called by the user, and they could have passed a number\n var idIsGroup = typeof id == 'string' && id.indexOf(RowNode.ID_PREFIX_ROW_GROUP) == 0;\n if (idIsGroup) {\n // only one users complained about getRowNode not working for groups, after years of\n // this working for normal rows. so have done quick implementation. if users complain\n // about performance, then GroupStage should store / manage created groups in a map,\n // which is a chunk of work.\n var res_1 = undefined;\n this.forEachNode(function (node) {\n if (node.id === id) {\n res_1 = node;\n }\n });\n return res_1;\n }\n return this.nodeManager.getRowNode(id);\n };\n // rows: the rows to put into the model\n ClientSideRowModel.prototype.setRowData = function (rowData) {\n // no need to invalidate cache, as the cache is stored on the rowNode,\n // so new rowNodes means the cache is wiped anyway.\n // remember group state, so we can expand groups that should be expanded\n var groupState = this.getGroupState();\n this.nodeManager.setRowData(rowData);\n // - clears selection\n this.selectionService.reset();\n // - updates filters\n this.filterManager.onNewRowsLoaded('rowDataUpdated');\n // this event kicks off:\n // - shows 'no rows' overlay if needed\n var rowDataChangedEvent = {\n type: Events.EVENT_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(rowDataChangedEvent);\n this.refreshModel({\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n groupState: groupState,\n newData: true\n });\n };\n ClientSideRowModel.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {\n var _this = this;\n if (this.applyAsyncTransactionsTimeout == null) {\n this.rowDataTransactionBatch = [];\n var waitMillis = this.gridOptionsWrapper.getAsyncTransactionWaitMillis();\n this.applyAsyncTransactionsTimeout = window.setTimeout(function () {\n _this.executeBatchUpdateRowData();\n }, waitMillis);\n }\n this.rowDataTransactionBatch.push({ rowDataTransaction: rowDataTransaction, callback: callback });\n };\n ClientSideRowModel.prototype.flushAsyncTransactions = function () {\n if (this.applyAsyncTransactionsTimeout != null) {\n clearTimeout(this.applyAsyncTransactionsTimeout);\n this.executeBatchUpdateRowData();\n }\n };\n ClientSideRowModel.prototype.executeBatchUpdateRowData = function () {\n var _this = this;\n this.valueCache.onDataChanged();\n var callbackFuncsBound = [];\n var rowNodeTrans = [];\n // The rowGroup stage uses rowNodeOrder if order was provided. if we didn't pass 'true' to\n // commonUpdateRowData, using addIndex would have no effect when grouping.\n var forceRowNodeOrder = false;\n if (this.rowDataTransactionBatch) {\n this.rowDataTransactionBatch.forEach(function (tranItem) {\n var rowNodeTran = _this.nodeManager.updateRowData(tranItem.rowDataTransaction, undefined);\n rowNodeTrans.push(rowNodeTran);\n if (tranItem.callback) {\n callbackFuncsBound.push(tranItem.callback.bind(null, rowNodeTran));\n }\n if (typeof tranItem.rowDataTransaction.addIndex === 'number') {\n forceRowNodeOrder = true;\n }\n });\n }\n this.commonUpdateRowData(rowNodeTrans, undefined, forceRowNodeOrder);\n // do callbacks in next VM turn so it's async\n if (callbackFuncsBound.length > 0) {\n window.setTimeout(function () {\n callbackFuncsBound.forEach(function (func) { return func(); });\n }, 0);\n }\n if (rowNodeTrans.length > 0) {\n var event_1 = {\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n type: Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: rowNodeTrans\n };\n this.eventService.dispatchEvent(event_1);\n }\n this.rowDataTransactionBatch = null;\n this.applyAsyncTransactionsTimeout = undefined;\n };\n ClientSideRowModel.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n this.valueCache.onDataChanged();\n var rowNodeTran = this.nodeManager.updateRowData(rowDataTran, rowNodeOrder);\n // if doing immutableData, addIndex is never present. however if doing standard transaction, and user\n // provided addIndex, then this is used in updateRowData. However if doing Enterprise, then the rowGroup\n // stage also uses the\n var forceRowNodeOrder = typeof rowDataTran.addIndex === 'number';\n this.commonUpdateRowData([rowNodeTran], rowNodeOrder, forceRowNodeOrder);\n return rowNodeTran;\n };\n ClientSideRowModel.prototype.createRowNodeOrder = function () {\n var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();\n if (suppressSortOrder) {\n return;\n }\n var orderMap = {};\n if (this.rootNode && this.rootNode.allLeafChildren) {\n for (var index = 0; index < this.rootNode.allLeafChildren.length; index++) {\n var node = this.rootNode.allLeafChildren[index];\n orderMap[node.id] = index;\n }\n }\n return orderMap;\n };\n // common to updateRowData and batchUpdateRowData\n ClientSideRowModel.prototype.commonUpdateRowData = function (rowNodeTrans, rowNodeOrder, forceRowNodeOrder) {\n var animate = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n if (forceRowNodeOrder) {\n rowNodeOrder = this.createRowNodeOrder();\n }\n this.refreshModel({\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n rowNodeTransactions: rowNodeTrans,\n rowNodeOrder: rowNodeOrder,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n });\n var event = {\n type: Events.EVENT_ROW_DATA_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doRowsToDisplay = function () {\n this.rowsToDisplay = this.flattenStage.execute({ rowNode: this.rootNode });\n };\n ClientSideRowModel.prototype.onRowHeightChanged = function () {\n this.refreshModel({ step: exports.ClientSideRowModelSteps.MAP, keepRenderedRows: true, keepEditingRows: true });\n };\n ClientSideRowModel.prototype.resetRowHeights = function () {\n var atLeastOne = false;\n this.forEachNode(function (rowNode) {\n rowNode.setRowHeight(rowNode.rowHeight, true);\n // we keep the height each row is at, however we set estimated=true rather than clear the height.\n // this means the grid will not reset the row heights back to defaults, rather it will re-calc\n // the height for each row as the row is displayed. otherwise the scroll will jump when heights are reset.\n var detailNode = rowNode.detailNode;\n if (detailNode) {\n detailNode.setRowHeight(detailNode.rowHeight, true);\n }\n atLeastOne = true;\n });\n if (atLeastOne) {\n this.onRowHeightChanged();\n }\n };\n __decorate$2n([\n Autowired('columnModel')\n ], ClientSideRowModel.prototype, \"columnModel\", void 0);\n __decorate$2n([\n Autowired('selectionService')\n ], ClientSideRowModel.prototype, \"selectionService\", void 0);\n __decorate$2n([\n Autowired('filterManager')\n ], ClientSideRowModel.prototype, \"filterManager\", void 0);\n __decorate$2n([\n Autowired('valueCache')\n ], ClientSideRowModel.prototype, \"valueCache\", void 0);\n __decorate$2n([\n Autowired('columnApi')\n ], ClientSideRowModel.prototype, \"columnApi\", void 0);\n __decorate$2n([\n Autowired('gridApi')\n ], ClientSideRowModel.prototype, \"gridApi\", void 0);\n __decorate$2n([\n Autowired('animationFrameService')\n ], ClientSideRowModel.prototype, \"animationFrameService\", void 0);\n __decorate$2n([\n Autowired('beans')\n ], ClientSideRowModel.prototype, \"beans\", void 0);\n __decorate$2n([\n Autowired('filterStage')\n ], ClientSideRowModel.prototype, \"filterStage\", void 0);\n __decorate$2n([\n Autowired('sortStage')\n ], ClientSideRowModel.prototype, \"sortStage\", void 0);\n __decorate$2n([\n Autowired('flattenStage')\n ], ClientSideRowModel.prototype, \"flattenStage\", void 0);\n __decorate$2n([\n Optional('groupStage')\n ], ClientSideRowModel.prototype, \"groupStage\", void 0);\n __decorate$2n([\n Optional('aggregationStage')\n ], ClientSideRowModel.prototype, \"aggregationStage\", void 0);\n __decorate$2n([\n Optional('pivotStage')\n ], ClientSideRowModel.prototype, \"pivotStage\", void 0);\n __decorate$2n([\n Optional('filterAggregatesStage')\n ], ClientSideRowModel.prototype, \"filterAggregatesStage\", void 0);\n __decorate$2n([\n PostConstruct\n ], ClientSideRowModel.prototype, \"init\", null);\n ClientSideRowModel = __decorate$2n([\n Bean('rowModel')\n ], ClientSideRowModel);\n return ClientSideRowModel;\n}(BeanStub));\n\nvar __extends$2H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterStage = /** @class */ (function (_super) {\n __extends$2H(FilterStage, _super);\n function FilterStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterStage.prototype.execute = function (params) {\n var changedPath = params.changedPath;\n this.filterService.filter(changedPath);\n };\n __decorate$2o([\n Autowired('filterService')\n ], FilterStage.prototype, \"filterService\", void 0);\n FilterStage = __decorate$2o([\n Bean('filterStage')\n ], FilterStage);\n return FilterStage;\n}(BeanStub));\n\nvar __extends$2I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortStage = /** @class */ (function (_super) {\n __extends$2I(SortStage, _super);\n function SortStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortStage.prototype.execute = function (params) {\n var sortOptions = this.sortController.getSortOptions();\n var sortActive = _.exists(sortOptions) && sortOptions.length > 0;\n var deltaSort = sortActive\n && _.exists(params.rowNodeTransactions)\n // in time we can remove this check, so that delta sort is always\n // on if transactions are present. it's off for now so that we can\n // selectively turn it on and test it with some select users before\n // rolling out to everyone.\n && this.gridOptionsWrapper.isDeltaSort();\n var sortContainsGroupColumns = sortOptions.some(function (opt) { return !!opt.column.getColDef().showRowGroup; });\n this.sortService.sort(sortOptions, sortActive, deltaSort, params.rowNodeTransactions, params.changedPath, sortContainsGroupColumns);\n };\n __decorate$2p([\n Autowired('sortService')\n ], SortStage.prototype, \"sortService\", void 0);\n __decorate$2p([\n Autowired('sortController')\n ], SortStage.prototype, \"sortController\", void 0);\n __decorate$2p([\n Autowired('columnModel')\n ], SortStage.prototype, \"columnModel\", void 0);\n SortStage = __decorate$2p([\n Bean('sortStage')\n ], SortStage);\n return SortStage;\n}(BeanStub));\n\nvar __extends$2J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FlattenStage = /** @class */ (function (_super) {\n __extends$2J(FlattenStage, _super);\n function FlattenStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FlattenStage.prototype.execute = function (params) {\n var rootNode = params.rowNode;\n // even if not doing grouping, we do the mapping, as the client might\n // of passed in data that already has a grouping in it somewhere\n var result = [];\n // putting value into a wrapper so it's passed by reference\n var nextRowTop = { value: 0 };\n var skipLeafNodes = this.columnModel.isPivotMode();\n // if we are reducing, and not grouping, then we want to show the root node, as that\n // is where the pivot values are\n var showRootNode = skipLeafNodes && rootNode.leafGroup;\n var topList = showRootNode ? [rootNode] : rootNode.childrenAfterSort;\n this.recursivelyAddToRowsToDisplay(topList, result, nextRowTop, skipLeafNodes, 0);\n // we do not want the footer total if the gris is empty\n var atLeastOneRowPresent = result.length > 0;\n var includeGroupTotalFooter = !showRootNode\n // don't show total footer when showRootNode is true (i.e. in pivot mode and no groups)\n && atLeastOneRowPresent\n && this.gridOptionsWrapper.isGroupIncludeTotalFooter();\n if (includeGroupTotalFooter) {\n this.ensureFooterNodeExists(rootNode);\n this.addRowNodeToRowsToDisplay(rootNode.sibling, result, nextRowTop, 0);\n }\n return result;\n };\n FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (rowsToFlatten, result, nextRowTop, skipLeafNodes, uiLevel) {\n if (_.missingOrEmpty(rowsToFlatten)) {\n return;\n }\n var hideOpenParents = this.gridOptionsWrapper.isGroupHideOpenParents();\n // these two are mutually exclusive, so if first set, we don't set the second\n var groupRemoveSingleChildren = this.gridOptionsWrapper.isGroupRemoveSingleChildren();\n var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsWrapper.isGroupRemoveLowestSingleChildren();\n for (var i = 0; i < rowsToFlatten.length; i++) {\n var rowNode = rowsToFlatten[i];\n // check all these cases, for working out if this row should be included in the final mapped list\n var isParent = rowNode.hasChildren();\n var isSkippedLeafNode = skipLeafNodes && !isParent;\n var isRemovedSingleChildrenGroup = groupRemoveSingleChildren &&\n isParent &&\n rowNode.childrenAfterGroup.length === 1;\n var isRemovedLowestSingleChildrenGroup = groupRemoveLowestSingleChildren &&\n isParent &&\n rowNode.leafGroup &&\n rowNode.childrenAfterGroup.length === 1;\n // hide open parents means when group is open, we don't show it. we also need to make sure the\n // group is expandable in the first place (as leaf groups are not expandable if pivot mode is on).\n // the UI will never allow expanding leaf groups, however the user might via the API (or menu option 'expand all')\n var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;\n var isHiddenOpenParent = hideOpenParents && rowNode.expanded && !rowNode.master && (!neverAllowToExpand);\n var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&\n !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;\n if (thisRowShouldBeRendered) {\n this.addRowNodeToRowsToDisplay(rowNode, result, nextRowTop, uiLevel);\n }\n // if we are pivoting, we never map below the leaf group\n if (skipLeafNodes && rowNode.leafGroup) {\n continue;\n }\n if (isParent) {\n var excludedParent = isRemovedSingleChildrenGroup || isRemovedLowestSingleChildrenGroup;\n // we traverse the group if it is expended, however we always traverse if the parent node\n // was removed (as the group will never be opened if it is not displayed, we show the children instead)\n if (rowNode.expanded || excludedParent) {\n // if the parent was excluded, then ui level is that of the parent\n var uiLevelForChildren = excludedParent ? uiLevel : uiLevel + 1;\n this.recursivelyAddToRowsToDisplay(rowNode.childrenAfterSort, result, nextRowTop, skipLeafNodes, uiLevelForChildren);\n // put a footer in if user is looking for it\n if (this.gridOptionsWrapper.isGroupIncludeFooter()) {\n this.ensureFooterNodeExists(rowNode);\n this.addRowNodeToRowsToDisplay(rowNode.sibling, result, nextRowTop, uiLevel);\n }\n }\n }\n else if (rowNode.master && rowNode.expanded) {\n var detailNode = this.createDetailNode(rowNode);\n this.addRowNodeToRowsToDisplay(detailNode, result, nextRowTop, uiLevel);\n }\n }\n };\n // duplicated method, it's also in floatingRowModel\n FlattenStage.prototype.addRowNodeToRowsToDisplay = function (rowNode, result, nextRowTop, uiLevel) {\n var isGroupMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();\n result.push(rowNode);\n rowNode.setUiLevel(isGroupMultiAutoColumn ? 0 : uiLevel);\n };\n FlattenStage.prototype.ensureFooterNodeExists = function (groupNode) {\n // only create footer node once, otherwise we have daemons and\n // the animate screws up with the daemons hanging around\n if (_.exists(groupNode.sibling)) {\n return;\n }\n var footerNode = new RowNode(this.beans);\n Object.keys(groupNode).forEach(function (key) {\n footerNode[key] = groupNode[key];\n });\n footerNode.footer = true;\n footerNode.setRowTop(null);\n footerNode.setRowIndex(null);\n // manually set oldRowTop to null so we discard any\n // previous information about its position.\n footerNode.oldRowTop = null;\n if (_.exists(footerNode.id)) {\n footerNode.id = 'rowGroupFooter_' + footerNode.id;\n }\n // get both header and footer to reference each other as siblings. this is never undone,\n // only overwritten. so if a group is expanded, then contracted, it will have a ghost\n // sibling - but that's fine, as we can ignore this if the header is contracted.\n footerNode.sibling = groupNode;\n groupNode.sibling = footerNode;\n };\n FlattenStage.prototype.createDetailNode = function (masterNode) {\n if (_.exists(masterNode.detailNode)) {\n return masterNode.detailNode;\n }\n var detailNode = new RowNode(this.beans);\n detailNode.detail = true;\n detailNode.selectable = false;\n detailNode.parent = masterNode;\n if (_.exists(masterNode.id)) {\n detailNode.id = 'detail_' + masterNode.id;\n }\n detailNode.data = masterNode.data;\n detailNode.level = masterNode.level + 1;\n masterNode.detailNode = detailNode;\n return detailNode;\n };\n __decorate$2q([\n Autowired('columnModel')\n ], FlattenStage.prototype, \"columnModel\", void 0);\n __decorate$2q([\n Autowired('beans')\n ], FlattenStage.prototype, \"beans\", void 0);\n FlattenStage = __decorate$2q([\n Bean('flattenStage')\n ], FlattenStage);\n return FlattenStage;\n}(BeanStub));\n\nvar __extends$2K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortService = /** @class */ (function (_super) {\n __extends$2K(SortService, _super);\n function SortService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortService.prototype.init = function () {\n this.postSortFunc = this.gridOptionsWrapper.getPostSortFunc();\n };\n SortService.prototype.sort = function (sortOptions, sortActive, useDeltaSort, rowNodeTransactions, changedPath, sortContainsGroupColumns) {\n var _this = this;\n var groupMaintainOrder = this.gridOptionsWrapper.isGroupMaintainOrder();\n var groupColumnsPresent = this.columnModel.getAllGridColumns().some(function (c) { return c.isRowGroupActive(); });\n var allDirtyNodes = {};\n if (useDeltaSort && rowNodeTransactions) {\n allDirtyNodes = this.calculateDirtyNodes(rowNodeTransactions);\n }\n var isPivotMode = this.columnModel.isPivotMode();\n var callback = function (rowNode) {\n // we clear out the 'pull down open parents' first, as the values mix up the sorting\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterAggFilter, true);\n // It's pointless to sort rows which aren't being displayed. in pivot mode we don't need to sort the leaf group children.\n var skipSortingPivotLeafs = isPivotMode && rowNode.leafGroup;\n // Javascript sort is non deterministic when all the array items are equals, ie Comparator always returns 0,\n // so to ensure the array keeps its order, add an additional sorting condition manually, in this case we\n // are going to inspect the original array position. This is what sortedRowNodes is for.\n var skipSortingGroups = groupMaintainOrder && groupColumnsPresent && !rowNode.leafGroup && !sortContainsGroupColumns;\n if (!sortActive || skipSortingGroups || skipSortingPivotLeafs) {\n // when 'groupMaintainOrder' is enabled we skip sorting groups unless we are sorting on group columns\n var childrenToBeSorted = rowNode.childrenAfterAggFilter.slice(0);\n if (groupMaintainOrder && rowNode.childrenAfterSort) {\n var indexedOrders_1 = rowNode.childrenAfterSort.reduce(function (acc, row, idx) {\n acc[row.id] = idx;\n return acc;\n }, {});\n childrenToBeSorted.sort(function (row1, row2) { return (indexedOrders_1[row1.id] || 0) - (indexedOrders_1[row2.id] || 0); });\n }\n rowNode.childrenAfterSort = childrenToBeSorted;\n }\n else if (useDeltaSort) {\n rowNode.childrenAfterSort = _this.doDeltaSort(rowNode, allDirtyNodes, changedPath, sortOptions);\n }\n else {\n rowNode.childrenAfterSort = _this.rowNodeSorter.doFullSort(rowNode.childrenAfterAggFilter, sortOptions);\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenAfterSort = rowNode.childrenAfterSort;\n }\n _this.updateChildIndexes(rowNode);\n if (_this.postSortFunc) {\n var params = { nodes: rowNode.childrenAfterSort };\n _this.postSortFunc(params);\n }\n };\n if (changedPath) {\n changedPath.forEachChangedNodeDepthFirst(callback);\n }\n this.updateGroupDataForHideOpenParents(changedPath);\n };\n SortService.prototype.calculateDirtyNodes = function (rowNodeTransactions) {\n var dirtyNodes = {};\n var addNodesFunc = function (rowNodes) {\n if (rowNodes) {\n rowNodes.forEach(function (rowNode) { return dirtyNodes[rowNode.id] = true; });\n }\n };\n // all leaf level nodes in the transaction were impacted\n if (rowNodeTransactions) {\n rowNodeTransactions.forEach(function (tran) {\n addNodesFunc(tran.add);\n addNodesFunc(tran.update);\n addNodesFunc(tran.remove);\n });\n }\n return dirtyNodes;\n };\n SortService.prototype.doDeltaSort = function (rowNode, allTouchedNodes, changedPath, sortOptions) {\n var _this = this;\n var unsortedRows = rowNode.childrenAfterAggFilter;\n var oldSortedRows = rowNode.childrenAfterSort;\n if (!oldSortedRows) {\n return this.rowNodeSorter.doFullSort(unsortedRows, sortOptions);\n }\n var untouchedRowsMap = {};\n var touchedRows = [];\n unsortedRows.forEach(function (row) {\n if (allTouchedNodes[row.id] || !changedPath.canSkip(row)) {\n touchedRows.push(row);\n }\n else {\n untouchedRowsMap[row.id] = true;\n }\n });\n var sortedUntouchedRows = oldSortedRows.filter(function (child) { return untouchedRowsMap[child.id]; });\n var mapNodeToSortedNode = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };\n var sortedChangedRows = touchedRows\n .map(mapNodeToSortedNode)\n .sort(function (a, b) { return _this.rowNodeSorter.compareRowNodes(sortOptions, a, b); });\n return this.mergeSortedArrays(sortOptions, sortedChangedRows, sortedUntouchedRows.map(mapNodeToSortedNode)).map(function (_a) {\n var rowNode = _a.rowNode;\n return rowNode;\n });\n };\n // Merge two sorted arrays into each other\n SortService.prototype.mergeSortedArrays = function (sortOptions, arr1, arr2) {\n var res = [];\n var i = 0;\n var j = 0;\n // Traverse both array, adding them in order\n while (i < arr1.length && j < arr2.length) {\n // Check if current element of first\n // array is smaller than current element\n // of second array. If yes, store first\n // array element and increment first array\n // index. Otherwise do same with second array\n var compareResult = this.rowNodeSorter.compareRowNodes(sortOptions, arr1[i], arr2[j]);\n if (compareResult < 0) {\n res.push(arr1[i++]);\n }\n else {\n res.push(arr2[j++]);\n }\n }\n // add remaining from arr1\n while (i < arr1.length) {\n res.push(arr1[i++]);\n }\n // add remaining from arr2\n while (j < arr2.length) {\n res.push(arr2[j++]);\n }\n return res;\n };\n SortService.prototype.updateChildIndexes = function (rowNode) {\n if (_.missing(rowNode.childrenAfterSort)) {\n return;\n }\n var listToSort = rowNode.childrenAfterSort;\n for (var i = 0; i < listToSort.length; i++) {\n var child = listToSort[i];\n var firstChild = i === 0;\n var lastChild = i === rowNode.childrenAfterSort.length - 1;\n child.setFirstChild(firstChild);\n child.setLastChild(lastChild);\n child.setChildIndex(i);\n }\n };\n SortService.prototype.updateGroupDataForHideOpenParents = function (changedPath) {\n var _this = this;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {\n return;\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n var msg_1 = \"AG Grid: The property hideOpenParents dose not work with Tree Data. This is because Tree Data has values at the group level, it doesn't make sense to hide them (as opposed to Row Grouping, which only has Aggregated Values at the group level).\";\n _.doOnce(function () { return console.warn(msg_1); }, 'sortService.hideOpenParentsWithTreeData');\n return false;\n }\n // recurse breadth first over group nodes after sort to 'pull down' group data to child groups\n var callback = function (rowNode) {\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterSort, false);\n rowNode.childrenAfterSort.forEach(function (child) {\n if (child.hasChildren()) {\n callback(child);\n }\n });\n };\n if (changedPath) {\n changedPath.executeFromRootNode(function (rowNode) { return callback(rowNode); });\n }\n };\n SortService.prototype.pullDownGroupDataForHideOpenParents = function (rowNodes, clearOperation) {\n var _this = this;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents() || _.missing(rowNodes)) {\n return;\n }\n rowNodes.forEach(function (childRowNode) {\n var groupDisplayCols = _this.columnModel.getGroupDisplayColumns();\n groupDisplayCols.forEach(function (groupDisplayCol) {\n var showRowGroup = groupDisplayCol.getColDef().showRowGroup;\n if (typeof showRowGroup !== 'string') {\n console.error('AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup');\n return;\n }\n var displayingGroupKey = showRowGroup;\n var rowGroupColumn = _this.columnModel.getPrimaryColumn(displayingGroupKey);\n var thisRowNodeMatches = rowGroupColumn === childRowNode.rowGroupColumn;\n if (thisRowNodeMatches) {\n return;\n }\n if (clearOperation) {\n // if doing a clear operation, we clear down the value for every possible group column\n childRowNode.setGroupValue(groupDisplayCol.getId(), undefined);\n }\n else {\n // if doing a set operation, we set only where the pull down is to occur\n var parentToStealFrom = childRowNode.getFirstChildOfFirstChild(rowGroupColumn);\n if (parentToStealFrom) {\n childRowNode.setGroupValue(groupDisplayCol.getId(), parentToStealFrom.key);\n }\n }\n });\n });\n };\n __decorate$2r([\n Autowired('columnModel')\n ], SortService.prototype, \"columnModel\", void 0);\n __decorate$2r([\n Autowired('rowNodeSorter')\n ], SortService.prototype, \"rowNodeSorter\", void 0);\n __decorate$2r([\n PostConstruct\n ], SortService.prototype, \"init\", null);\n SortService = __decorate$2r([\n Bean('sortService')\n ], SortService);\n return SortService;\n}(BeanStub));\n\nvar __extends$2L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterService = /** @class */ (function (_super) {\n __extends$2L(FilterService, _super);\n function FilterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterService.prototype.filter = function (changedPath) {\n var filterActive = this.filterManager.isColumnFilterPresent()\n || this.filterManager.isQuickFilterPresent()\n || this.gridOptionsWrapper.isExternalFilterPresent();\n this.filterNodes(filterActive, changedPath);\n };\n FilterService.prototype.filterNodes = function (filterActive, changedPath) {\n var _this = this;\n var filterCallback = function (rowNode, includeChildNodes) {\n // recursively get all children that are groups to also filter\n if (rowNode.hasChildren()) {\n // result of filter for this node. when filtering tree data, includeChildNodes = true when parent passes\n if (filterActive && !includeChildNodes) {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup.filter(function (childNode) {\n // a group is included in the result if it has any children of it's own.\n // by this stage, the child groups are already filtered\n var passBecauseChildren = childNode.childrenAfterFilter && childNode.childrenAfterFilter.length > 0;\n // both leaf level nodes and tree data nodes have data. these get added if\n // the data passes the filter\n var passBecauseDataPasses = childNode.data\n && _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n // note - tree data nodes pass either if a) they pass themselves or b) any children of that node pass\n return passBecauseChildren || passBecauseDataPasses;\n });\n }\n else {\n // if not filtering, the result is the original list\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n }\n }\n else {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenAfterFilter = rowNode.childrenAfterFilter;\n }\n };\n if (this.doingTreeDataFiltering()) {\n var treeDataDepthFirstFilter_1 = function (rowNode, alreadyFoundInParent) {\n // tree data filter traverses the hierarchy depth first and includes child nodes if parent passes\n // filter, and parent nodes will be include if any children exist.\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n // first check if current node passes filter before invoking child nodes\n var foundInParent = alreadyFoundInParent\n || _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n if (childNode.childrenAfterGroup) {\n treeDataDepthFirstFilter_1(rowNode.childrenAfterGroup[i], foundInParent);\n }\n else {\n filterCallback(childNode, foundInParent);\n }\n }\n }\n filterCallback(rowNode, alreadyFoundInParent);\n };\n var treeDataFilterCallback = function (rowNode) { return treeDataDepthFirstFilter_1(rowNode, false); };\n changedPath.executeFromRootNode(treeDataFilterCallback);\n }\n else {\n var defaultFilterCallback = function (rowNode) { return filterCallback(rowNode, false); };\n changedPath.forEachChangedNodeDepthFirst(defaultFilterCallback, true);\n }\n };\n FilterService.prototype.doingTreeDataFiltering = function () {\n return this.gridOptionsWrapper.isTreeData() && !this.gridOptionsWrapper.isExcludeChildrenWhenTreeDataFiltering();\n };\n __decorate$2s([\n Autowired('filterManager')\n ], FilterService.prototype, \"filterManager\", void 0);\n FilterService = __decorate$2s([\n Bean(\"filterService\")\n ], FilterService);\n return FilterService;\n}(BeanStub));\n\nvar __extends$2M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$j = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar ImmutableService = /** @class */ (function (_super) {\n __extends$2M(ImmutableService, _super);\n function ImmutableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ImmutableService.prototype.postConstruct = function () {\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n };\n ImmutableService.prototype.isActive = function () {\n return this.gridOptionsWrapper.isImmutableData();\n };\n ImmutableService.prototype.setRowData = function (rowData) {\n var transactionAndMap = this.createTransactionForRowData(rowData);\n if (!transactionAndMap) {\n return;\n }\n var _a = __read$j(transactionAndMap, 2), transaction = _a[0], orderIdMap = _a[1];\n var nodeTransaction = this.clientSideRowModel.updateRowData(transaction, orderIdMap);\n // need to force updating of full width rows - note this wouldn't be necessary the full width cell comp listened\n // to the data change event on the row node and refreshed itself.\n if (nodeTransaction) {\n this.rowRenderer.refreshFullWidthRows(nodeTransaction.update);\n }\n // - shows 'no rows' overlay if needed\n var rowDataChangedEvent = {\n type: Events.EVENT_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(rowDataChangedEvent);\n };\n // converts the setRowData() command to a transaction\n ImmutableService.prototype.createTransactionForRowData = function (rowData) {\n if (_.missing(this.clientSideRowModel)) {\n console.error('AG Grid: ImmutableService only works with ClientSideRowModel');\n return;\n }\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n if (getRowIdFunc == null) {\n console.error('AG Grid: ImmutableService requires getRowId() callback to be implemented, your row data needs IDs!');\n return;\n }\n // convert the data into a transaction object by working out adds, removes and updates\n var transaction = {\n remove: [],\n update: [],\n add: []\n };\n var existingNodesMap = this.clientSideRowModel.getCopyOfNodesMap();\n var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();\n var orderMap = suppressSortOrder ? undefined : {};\n if (_.exists(rowData)) {\n // split all the new data in the following:\n // if new, push to 'add'\n // if update, push to 'update'\n // if not changed, do not include in the transaction\n rowData.forEach(function (data, index) {\n var id = getRowIdFunc({ data: data, level: 0 });\n var existingNode = existingNodesMap[id];\n if (orderMap) {\n orderMap[id] = index;\n }\n if (existingNode) {\n var dataHasChanged = existingNode.data !== data;\n if (dataHasChanged) {\n transaction.update.push(data);\n }\n // otherwise, if data not changed, we just don't include it anywhere, as it's not a delta\n // remove from list, so we know the item is not to be removed\n existingNodesMap[id] = undefined;\n }\n else {\n transaction.add.push(data);\n }\n });\n }\n // at this point, all rows that are left, should be removed\n _.iterateObject(existingNodesMap, function (id, rowNode) {\n if (rowNode) {\n transaction.remove.push(rowNode.data);\n }\n });\n return [transaction, orderMap];\n };\n __decorate$2t([\n Autowired('rowModel')\n ], ImmutableService.prototype, \"rowModel\", void 0);\n __decorate$2t([\n Autowired('rowRenderer')\n ], ImmutableService.prototype, \"rowRenderer\", void 0);\n __decorate$2t([\n Autowired('columnApi')\n ], ImmutableService.prototype, \"columnApi\", void 0);\n __decorate$2t([\n Autowired('gridApi')\n ], ImmutableService.prototype, \"gridApi\", void 0);\n __decorate$2t([\n PostConstruct\n ], ImmutableService.prototype, \"postConstruct\", null);\n ImmutableService = __decorate$2t([\n Bean('immutableService')\n ], ImmutableService);\n return ImmutableService;\n}(BeanStub));\n\nvar ClientSideRowModelModule = {\n moduleName: exports.ModuleNames.ClientSideRowModelModule,\n beans: [FilterStage, SortStage, FlattenStage, SortService, FilterService, ImmutableService],\n rowModels: { clientSide: ClientSideRowModel }\n};\n\nvar __extends$2N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar InfiniteBlock = /** @class */ (function (_super) {\n __extends$2N(InfiniteBlock, _super);\n function InfiniteBlock(id, parentCache, params) {\n var _this = _super.call(this, id) || this;\n _this.parentCache = parentCache;\n _this.params = params;\n // we don't need to calculate these now, as the inputs don't change,\n // however it makes the code easier to read if we work them out up front\n _this.startRow = id * params.blockSize;\n _this.endRow = _this.startRow + params.blockSize;\n return _this;\n }\n InfiniteBlock.prototype.postConstruct = function () {\n this.createRowNodes();\n };\n InfiniteBlock.prototype.getBlockStateJson = function () {\n return {\n id: '' + this.getId(),\n state: {\n blockNumber: this.getId(),\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n pageStatus: this.getState()\n }\n };\n };\n InfiniteBlock.prototype.setDataAndId = function (rowNode, data, index) {\n // if there's no id and the rowNode was rendered before, it means this\n // was a placeholder rowNode and should not be recycled. Setting\n // `alreadyRendered` to `false` forces the rowRenderer to flush it.\n if (!rowNode.id && rowNode.alreadyRendered) {\n rowNode.alreadyRendered = false;\n }\n if (_.exists(data)) {\n // this means if the user is not providing id's we just use the\n // index for the row. this will allow selection to work (that is based\n // on index) as long user is not inserting or deleting rows,\n // or wanting to keep selection between server side sorting or filtering\n rowNode.setDataAndId(data, index.toString());\n }\n else {\n rowNode.setDataAndId(undefined, undefined);\n }\n };\n InfiniteBlock.prototype.loadFromDatasource = function () {\n var _this = this;\n var params = this.createLoadParams();\n if (_.missing(this.params.datasource.getRows)) {\n console.warn(\"AG Grid: datasource is missing getRows method\");\n return;\n }\n // put in timeout, to force result to be async\n window.setTimeout(function () {\n _this.params.datasource.getRows(params);\n }, 0);\n };\n InfiniteBlock.prototype.processServerFail = function () {\n // todo - this method has better handling in SSRM\n };\n InfiniteBlock.prototype.createLoadParams = function () {\n // PROBLEM . . . . when the user sets sort via colDef.sort, then this code\n // is executing before the sort is set up, so server is not getting the sort\n // model. need to change with regards order - so the server side request is\n // AFTER thus it gets the right sort model.\n var params = {\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n sortModel: this.params.sortModel,\n filterModel: this.params.filterModel,\n context: this.gridOptionsWrapper.getContext()\n };\n return params;\n };\n InfiniteBlock.prototype.forEachNode = function (callback, sequence, rowCount) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var rowIndex = _this.startRow + index;\n if (rowIndex < rowCount) {\n callback(rowNode, sequence.next());\n }\n });\n };\n InfiniteBlock.prototype.getLastAccessed = function () {\n return this.lastAccessed;\n };\n InfiniteBlock.prototype.getRow = function (rowIndex, dontTouchLastAccessed) {\n if (dontTouchLastAccessed === void 0) { dontTouchLastAccessed = false; }\n if (!dontTouchLastAccessed) {\n this.lastAccessed = this.params.lastAccessedSequence.next();\n }\n var localIndex = rowIndex - this.startRow;\n return this.rowNodes[localIndex];\n };\n InfiniteBlock.prototype.getStartRow = function () {\n return this.startRow;\n };\n InfiniteBlock.prototype.getEndRow = function () {\n return this.endRow;\n };\n // creates empty row nodes, data is missing as not loaded yet\n InfiniteBlock.prototype.createRowNodes = function () {\n this.rowNodes = [];\n for (var i = 0; i < this.params.blockSize; i++) {\n var rowIndex = this.startRow + i;\n var rowNode = new RowNode(this.beans);\n rowNode.setRowHeight(this.params.rowHeight);\n rowNode.uiLevel = 0;\n rowNode.setRowIndex(rowIndex);\n rowNode.setRowTop(this.params.rowHeight * rowIndex);\n this.rowNodes.push(rowNode);\n }\n };\n InfiniteBlock.prototype.processServerResult = function (params) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var data = params.rowData ? params.rowData[index] : undefined;\n _this.setDataAndId(rowNode, data, _this.startRow + index);\n });\n var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;\n this.parentCache.pageLoaded(this, finalRowCount);\n };\n InfiniteBlock.prototype.destroyRowNodes = function () {\n this.rowNodes.forEach(function (rowNode) {\n // this is needed, so row render knows to fade out the row, otherwise it\n // sees row top is present, and thinks the row should be shown.\n rowNode.clearRowTopAndRowIndex();\n });\n };\n __decorate$2u([\n Autowired('beans')\n ], InfiniteBlock.prototype, \"beans\", void 0);\n __decorate$2u([\n PostConstruct\n ], InfiniteBlock.prototype, \"postConstruct\", null);\n __decorate$2u([\n PreDestroy\n ], InfiniteBlock.prototype, \"destroyRowNodes\", null);\n return InfiniteBlock;\n}(RowNodeBlock));\n\nvar __extends$2O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$a = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InfiniteCache = /** @class */ (function (_super) {\n __extends$2O(InfiniteCache, _super);\n function InfiniteCache(params) {\n var _this = _super.call(this) || this;\n _this.lastRowIndexKnown = false;\n _this.blocks = {};\n _this.blockCount = 0;\n _this.rowCount = params.initialRowCount;\n _this.params = params;\n return _this;\n }\n InfiniteCache.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('InfiniteCache');\n };\n // the rowRenderer will not pass dontCreatePage, meaning when rendering the grid,\n // it will want new pages in the cache as it asks for rows. only when we are inserting /\n // removing rows via the api is dontCreatePage set, where we move rows between the pages.\n InfiniteCache.prototype.getRow = function (rowIndex, dontCreatePage) {\n if (dontCreatePage === void 0) { dontCreatePage = false; }\n var blockId = Math.floor(rowIndex / this.params.blockSize);\n var block = this.blocks[blockId];\n if (!block) {\n if (dontCreatePage) {\n return undefined;\n }\n block = this.createBlock(blockId);\n }\n return block.getRow(rowIndex);\n };\n InfiniteCache.prototype.createBlock = function (blockNumber) {\n var newBlock = this.createBean(new InfiniteBlock(blockNumber, this, this.params));\n this.blocks[newBlock.getId()] = newBlock;\n this.blockCount++;\n this.purgeBlocksIfNeeded(newBlock);\n this.params.rowNodeBlockLoader.addBlock(newBlock);\n return newBlock;\n };\n // we have this on infinite row model only, not server side row model,\n // because for server side, it would leave the children in inconsistent\n // state - eg if a node had children, but after the refresh it had data\n // for a different row, then the children would be with the wrong row node.\n InfiniteCache.prototype.refreshCache = function () {\n var nothingToRefresh = this.blockCount == 0;\n if (nothingToRefresh) {\n this.purgeCache();\n return;\n }\n this.getBlocksInOrder().forEach(function (block) { return block.setStateWaitingToLoad(); });\n this.params.rowNodeBlockLoader.checkBlockToLoad();\n };\n InfiniteCache.prototype.destroyAllBlocks = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });\n };\n InfiniteCache.prototype.getRowCount = function () {\n return this.rowCount;\n };\n InfiniteCache.prototype.isLastRowIndexKnown = function () {\n return this.lastRowIndexKnown;\n };\n // block calls this, when page loaded\n InfiniteCache.prototype.pageLoaded = function (block, lastRow) {\n // if we are not active, then we ignore all events, otherwise we could end up getting the\n // grid to refresh even though we are no longer the active cache\n if (!this.isAlive()) {\n return;\n }\n this.logger.log(\"onPageLoaded: page = \" + block.getId() + \", lastRow = \" + lastRow);\n this.checkRowCount(block, lastRow);\n // we fire cacheUpdated even if the row count has not changed, as some items need updating even\n // if no new rows to render. for example the pagination panel has '?' as the total rows when loading\n // is underway, which would need to get updated when loading finishes.\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.purgeBlocksIfNeeded = function (blockToExclude) {\n var _this = this;\n // we exclude checking for the page just created, as this has yet to be accessed and hence\n // the lastAccessed stamp will not be updated for the first time yet\n var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });\n var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };\n blocksForPurging.sort(lastAccessedComparator);\n // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.\n // in other words, after the splice operation below, we have taken out the blocks\n // we want to keep, which means we are left with blocks that we can potentially purge\n var maxBlocksProvided = this.params.maxBlocksInCache > 0;\n var blocksToKeep = maxBlocksProvided ? this.params.maxBlocksInCache - 1 : null;\n var emptyBlocksToKeep = InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP - 1;\n blocksForPurging.forEach(function (block, index) {\n var purgeBecauseBlockEmpty = block.getState() === InfiniteBlock.STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;\n var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;\n if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {\n // if the block currently has rows been displayed, then don't remove it either.\n // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)\n // but the screen is showing 20 rows, so at least 4 blocks are needed.\n if (_this.isBlockCurrentlyDisplayed(block)) {\n return;\n }\n // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.\n if (_this.isBlockFocused(block)) {\n return;\n }\n // at this point, block is not needed, so burn baby burn\n _this.removeBlockFromCache(block);\n }\n });\n };\n InfiniteCache.prototype.isBlockFocused = function (block) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var blockIndexStart = block.getStartRow();\n var blockIndexEnd = block.getEndRow();\n var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;\n return hasFocus;\n };\n InfiniteCache.prototype.isBlockCurrentlyDisplayed = function (block) {\n var startIndex = block.getStartRow();\n var endIndex = block.getEndRow() - 1;\n return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);\n };\n InfiniteCache.prototype.removeBlockFromCache = function (blockToRemove) {\n if (!blockToRemove) {\n return;\n }\n this.destroyBlock(blockToRemove);\n // we do not want to remove the 'loaded' event listener, as the\n // concurrent loads count needs to be updated when the load is complete\n // if the purged page is in loading state\n };\n InfiniteCache.prototype.checkRowCount = function (block, lastRow) {\n // if client provided a last row, we always use it, as it could change between server calls\n // if user deleted data and then called refresh on the grid.\n if (typeof lastRow === 'number' && lastRow >= 0) {\n this.rowCount = lastRow;\n this.lastRowIndexKnown = true;\n }\n else if (!this.lastRowIndexKnown) {\n // otherwise, see if we need to add some virtual rows\n var lastRowIndex = (block.getId() + 1) * this.params.blockSize;\n var lastRowIndexPlusOverflow = lastRowIndex + this.params.overflowSize;\n if (this.rowCount < lastRowIndexPlusOverflow) {\n this.rowCount = lastRowIndexPlusOverflow;\n }\n }\n };\n InfiniteCache.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n this.rowCount = rowCount;\n // if undefined is passed, we do not set this value, if one of {true,false}\n // is passed, we do set the value.\n if (_.exists(lastRowIndexKnown)) {\n this.lastRowIndexKnown = lastRowIndexKnown;\n }\n // if we are still searching, then the row count must not end at the end\n // of a particular page, otherwise the searching will not pop into the\n // next page\n if (!this.lastRowIndexKnown) {\n if (this.rowCount % this.params.blockSize === 0) {\n this.rowCount++;\n }\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.forEachNodeDeep = function (callback) {\n var _this = this;\n var sequence = new NumberSequence();\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNode(callback, sequence, _this.rowCount); });\n };\n InfiniteCache.prototype.getBlocksInOrder = function () {\n // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order\n var blockComparator = function (a, b) { return a.getId() - b.getId(); };\n var blocks = _.getAllValuesInObject(this.blocks).sort(blockComparator);\n return blocks;\n };\n InfiniteCache.prototype.destroyBlock = function (block) {\n delete this.blocks[block.getId()];\n this.destroyBean(block);\n this.blockCount--;\n this.params.rowNodeBlockLoader.removeBlock(block);\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n InfiniteCache.prototype.onCacheUpdated = function () {\n if (this.isAlive()) {\n // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer\n // in the valid range. so we must remove these. this can happen if user explicitly sets\n // the virtual row count, or the datasource returns a result and sets lastRow to something\n // less than virtualRowCount (can happen if user scrolls down, server reduces dataset size).\n this.destroyAllBlocksPastVirtualRowCount();\n // this results in both row models (infinite and server side) firing ModelUpdated,\n // however server side row model also updates the row indexes first\n var event_1 = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n InfiniteCache.prototype.destroyAllBlocksPastVirtualRowCount = function () {\n var _this = this;\n var blocksToDestroy = [];\n this.getBlocksInOrder().forEach(function (block) {\n var startRow = block.getId() * _this.params.blockSize;\n if (startRow >= _this.rowCount) {\n blocksToDestroy.push(block);\n }\n });\n if (blocksToDestroy.length > 0) {\n blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });\n }\n };\n InfiniteCache.prototype.purgeCache = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.removeBlockFromCache(block); });\n this.lastRowIndexKnown = false;\n // if zero rows in the cache, we need to get the SSRM to start asking for rows again.\n // otherwise if set to zero rows last time, and we don't update the row count, then after\n // the purge there will still be zero rows, meaning the SSRM won't request any rows.\n // to kick things off, at least one row needs to be asked for.\n if (this.rowCount === 0) {\n this.rowCount = this.params.initialRowCount;\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var _this = this;\n var result = [];\n var lastBlockId = -1;\n var inActiveRange = false;\n var numberSequence = new NumberSequence();\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) {\n inActiveRange = true;\n }\n var foundGapInSelection = false;\n this.getBlocksInOrder().forEach(function (block) {\n if (foundGapInSelection) {\n return;\n }\n if (inActiveRange && (lastBlockId + 1 !== block.getId())) {\n foundGapInSelection = true;\n return;\n }\n lastBlockId = block.getId();\n block.forEachNode(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n }, numberSequence, _this.rowCount);\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = foundGapInSelection || inActiveRange;\n return invalidRange ? [] : result;\n };\n // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10\n // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly\n // scrolled over are not needed to be loaded.\n InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP = 2;\n __decorate$2v([\n Autowired('rowRenderer')\n ], InfiniteCache.prototype, \"rowRenderer\", void 0);\n __decorate$2v([\n Autowired(\"focusService\")\n ], InfiniteCache.prototype, \"focusService\", void 0);\n __decorate$2v([\n __param$a(0, Qualifier('loggerFactory'))\n ], InfiniteCache.prototype, \"setBeans\", null);\n __decorate$2v([\n PreDestroy\n ], InfiniteCache.prototype, \"destroyAllBlocks\", null);\n return InfiniteCache;\n}(BeanStub));\n\nvar __extends$2P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar InfiniteRowModel = /** @class */ (function (_super) {\n __extends$2P(InfiniteRowModel, _super);\n function InfiniteRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InfiniteRowModel.prototype.getRowBounds = function (index) {\n return {\n rowHeight: this.rowHeight,\n rowTop: this.rowHeight * index\n };\n };\n // we don't implement as lazy row heights is not supported in this row model\n InfiniteRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n return false;\n };\n InfiniteRowModel.prototype.init = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isRowModelInfinite()) {\n return;\n }\n this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n this.addEventListeners();\n this.addDestroyFunc(function () { return _this.destroyCache(); });\n this.verifyProps();\n };\n InfiniteRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsWrapper.getInitialGroupOrderComparator() != null) {\n var message_1 = \"AG Grid: initialGroupOrderComparator cannot be used with Infinite Row Model. If using Infinite Row Model, then sorting is done on the server side, nothing to do with the client.\";\n _.doOnce(function () { return console.warn(message_1); }, 'IRM.InitialGroupOrderComparator');\n }\n };\n InfiniteRowModel.prototype.start = function () {\n this.setDatasource(this.gridOptionsWrapper.getDatasource());\n };\n InfiniteRowModel.prototype.destroyDatasource = function () {\n if (this.datasource) {\n this.getContext().destroyBean(this.datasource);\n this.rowRenderer.datasourceChanged();\n this.datasource = null;\n }\n };\n InfiniteRowModel.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_STORE_UPDATED, this.onCacheUpdated.bind(this));\n };\n InfiniteRowModel.prototype.onFilterChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onSortChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onColumnEverything = function () {\n var resetRequired;\n // if cache params, we require reset only if sort model has changed. we don't need to check\n // for filter model, as the filter manager will fire an event when columns change that result\n // in the filter changing.\n if (this.cacheParams) {\n resetRequired = this.isSortModelDifferent();\n }\n else {\n // if no cacheParams, means first time creating the cache, so always create one\n resetRequired = true;\n }\n if (resetRequired) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isSortModelDifferent = function () {\n return !_.jsonEquals(this.cacheParams.sortModel, this.sortController.getSortModel());\n };\n InfiniteRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_INFINITE;\n };\n InfiniteRowModel.prototype.setDatasource = function (datasource) {\n this.destroyDatasource();\n this.datasource = datasource;\n // only reset if we have a valid datasource to working with\n if (datasource) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isEmpty = function () {\n return !this.infiniteCache;\n };\n InfiniteRowModel.prototype.isRowsToRender = function () {\n return !!this.infiniteCache;\n };\n InfiniteRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n return this.infiniteCache ? this.infiniteCache.getRowNodesInRange(firstInRange, lastInRange) : [];\n };\n InfiniteRowModel.prototype.reset = function () {\n // important to return here, as the user could be setting filter or sort before\n // data-source is set\n if (!this.datasource) {\n return;\n }\n // if user is providing id's, then this means we can keep the selection between datasource hits,\n // as the rows will keep their unique id's even if, for example, server side sorting or filtering\n // is done.\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n var userGeneratingIds = getRowIdFunc != null;\n if (!userGeneratingIds) {\n this.selectionService.reset();\n }\n this.resetCache();\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.createModelUpdatedEvent = function () {\n return {\n type: Events.EVENT_MODEL_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi,\n // not sure if these should all be false - noticed if after implementing,\n // maybe they should be true?\n newPage: false,\n newData: false,\n keepRenderedRows: true,\n animate: false\n };\n };\n InfiniteRowModel.prototype.resetCache = function () {\n // if not first time creating a cache, need to destroy the old one\n this.destroyCache();\n this.cacheParams = {\n // the user provided datasource\n datasource: this.datasource,\n // sort and filter model\n filterModel: this.filterManager.getFilterModel(),\n sortModel: this.sortController.getSortModel(),\n rowNodeBlockLoader: this.rowNodeBlockLoader,\n // properties - this way we take a snapshot of them, so if user changes any, they will be\n // used next time we create a new cache, which is generally after a filter or sort change,\n // or a new datasource is set\n initialRowCount: this.defaultIfInvalid(this.gridOptionsWrapper.getInfiniteInitialRowCount(), 1),\n maxBlocksInCache: this.gridOptionsWrapper.getMaxBlocksInCache(),\n rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),\n // if user doesn't provide overflow, we use default overflow of 1, so user can scroll past\n // the current page and request first row of next page\n overflowSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheOverflowSize(), 1),\n // page size needs to be 1 or greater. having it at 1 would be silly, as you would be hitting the\n // server for one page at a time. so the default if not specified is 100.\n blockSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheBlockSize(), 100),\n // the cache could create this, however it is also used by the pages, so handy to create it\n // here as the settings are also passed to the pages\n lastAccessedSequence: new NumberSequence()\n };\n this.infiniteCache = this.createBean(new InfiniteCache(this.cacheParams));\n };\n InfiniteRowModel.prototype.defaultIfInvalid = function (value, defaultValue) {\n return value > 0 ? value : defaultValue;\n };\n InfiniteRowModel.prototype.destroyCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache = this.destroyBean(this.infiniteCache);\n }\n };\n InfiniteRowModel.prototype.onCacheUpdated = function () {\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.getRow = function (rowIndex) {\n if (!this.infiniteCache) {\n return undefined;\n }\n if (rowIndex >= this.infiniteCache.getRowCount()) {\n return undefined;\n }\n return this.infiniteCache.getRow(rowIndex);\n };\n InfiniteRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n });\n return result;\n };\n InfiniteRowModel.prototype.forEachNode = function (callback) {\n if (this.infiniteCache) {\n this.infiniteCache.forEachNodeDeep(callback);\n }\n };\n InfiniteRowModel.prototype.getTopLevelRowCount = function () {\n return this.getRowCount();\n };\n InfiniteRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n return topLevelIndex;\n };\n InfiniteRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n if (this.rowHeight !== 0) { // avoid divide by zero error\n var rowIndexForPixel = Math.floor(pixel / this.rowHeight);\n var lastRowIndex = this.getRowCount() - 1;\n if (rowIndexForPixel > lastRowIndex) {\n return lastRowIndex;\n }\n return rowIndexForPixel;\n }\n return 0;\n };\n InfiniteRowModel.prototype.getRowCount = function () {\n return this.infiniteCache ? this.infiniteCache.getRowCount() : 0;\n };\n InfiniteRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n InfiniteRowModel.prototype.refreshCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.refreshCache();\n }\n };\n InfiniteRowModel.prototype.purgeCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.purgeCache();\n }\n };\n // for iRowModel\n InfiniteRowModel.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteCache) {\n return this.infiniteCache.isLastRowIndexKnown();\n }\n return false;\n };\n InfiniteRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n if (this.infiniteCache) {\n this.infiniteCache.setRowCount(rowCount, lastRowIndexKnown);\n }\n };\n __decorate$2w([\n Autowired('filterManager')\n ], InfiniteRowModel.prototype, \"filterManager\", void 0);\n __decorate$2w([\n Autowired('sortController')\n ], InfiniteRowModel.prototype, \"sortController\", void 0);\n __decorate$2w([\n Autowired('selectionService')\n ], InfiniteRowModel.prototype, \"selectionService\", void 0);\n __decorate$2w([\n Autowired('gridApi')\n ], InfiniteRowModel.prototype, \"gridApi\", void 0);\n __decorate$2w([\n Autowired('columnApi')\n ], InfiniteRowModel.prototype, \"columnApi\", void 0);\n __decorate$2w([\n Autowired('rowRenderer')\n ], InfiniteRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$2w([\n Autowired('rowNodeBlockLoader')\n ], InfiniteRowModel.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$2w([\n PostConstruct\n ], InfiniteRowModel.prototype, \"init\", null);\n __decorate$2w([\n PreDestroy\n ], InfiniteRowModel.prototype, \"destroyDatasource\", null);\n InfiniteRowModel = __decorate$2w([\n Bean('rowModel')\n ], InfiniteRowModel);\n return InfiniteRowModel;\n}(BeanStub));\n\nvar InfiniteRowModelModule = {\n moduleName: exports.ModuleNames.InfiniteRowModelModule,\n rowModels: { infinite: InfiniteRowModel }\n};\n\nvar BaseCreator = /** @class */ (function () {\n function BaseCreator() {\n }\n BaseCreator.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseCreator.prototype.getFileName = function (fileName) {\n var extension = this.getDefaultFileExtension();\n if (fileName == null || !fileName.length) {\n fileName = this.getDefaultFileName();\n }\n return fileName.indexOf('.') === -1 ? fileName + \".\" + extension : fileName;\n };\n BaseCreator.prototype.getData = function (params) {\n var serializingSession = this.createSerializingSession(params);\n var data = this.beans.gridSerializer.serialize(serializingSession, params);\n return data;\n };\n return BaseCreator;\n}());\n\nvar BaseGridSerializingSession = /** @class */ (function () {\n function BaseGridSerializingSession(config) {\n this.groupColumns = [];\n var columnModel = config.columnModel, valueService = config.valueService, gridOptionsWrapper = config.gridOptionsWrapper, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;\n this.columnModel = columnModel;\n this.valueService = valueService;\n this.gridOptionsWrapper = gridOptionsWrapper;\n this.processCellCallback = processCellCallback;\n this.processHeaderCallback = processHeaderCallback;\n this.processGroupHeaderCallback = processGroupHeaderCallback;\n this.processRowGroupCallback = processRowGroupCallback;\n }\n BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {\n this.groupColumns = columnsToExport.filter(function (col) { return !!col.getColDef().showRowGroup; });\n };\n BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {\n var value = this.getHeaderName(this.processHeaderCallback, column);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {\n // we render the group summary text e.g. \"-> Parent -> Child\"...\n var groupIndex = this.gridOptionsWrapper.isGroupMultiAutoColumn() ? node.rowGroupIndex : 0;\n var renderGroupSummaryCell = \n // on group rows\n node && node.group\n && (\n // in the group column if groups appear in regular grid cells\n index === groupIndex && this.groupColumns.indexOf(column) !== -1\n // or the first cell in the row, if we're doing full width rows\n || (index === 0 && this.gridOptionsWrapper.isGroupUseEntireRow(this.columnModel.isPivotMode())));\n var valueForCell;\n if (renderGroupSummaryCell) {\n valueForCell = this.createValueForGroupNode(node);\n }\n else {\n valueForCell = this.valueService.getValue(column, node);\n }\n var value = this.processCell(accumulatedRowIndex, node, column, valueForCell, this.processCellCallback, type);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {\n if (callback) {\n return callback({\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n });\n }\n return this.columnModel.getDisplayNameForColumn(column, 'csv', true);\n };\n BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {\n if (this.processRowGroupCallback) {\n return this.processRowGroupCallback({\n node: node,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n });\n }\n var keys = [node.key];\n if (!this.gridOptionsWrapper.isGroupMultiAutoColumn()) {\n while (node.parent) {\n node = node.parent;\n keys.push(node.key);\n }\n }\n return keys.reverse().join(' -> ');\n };\n BaseGridSerializingSession.prototype.processCell = function (accumulatedRowIndex, rowNode, column, value, processCellCallback, type) {\n if (processCellCallback) {\n return processCellCallback({\n accumulatedRowIndex: accumulatedRowIndex,\n column: column,\n node: rowNode,\n value: value,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n type: type\n });\n }\n return value != null ? value : '';\n };\n return BaseGridSerializingSession;\n}());\n\nvar Downloader = /** @class */ (function () {\n function Downloader() {\n }\n Downloader.download = function (fileName, content) {\n var win = document.defaultView || window;\n if (!win) {\n console.warn('AG Grid: There is no `window` associated with the current `document`');\n return;\n }\n var element = document.createElement('a');\n // @ts-ignore\n var url = win.URL.createObjectURL(content);\n element.setAttribute('href', url);\n element.setAttribute('download', fileName);\n element.style.display = 'none';\n document.body.appendChild(element);\n element.dispatchEvent(new MouseEvent('click', {\n bubbles: false,\n cancelable: true,\n view: win\n }));\n document.body.removeChild(element);\n win.setTimeout(function () {\n // @ts-ignore\n win.URL.revokeObjectURL(url);\n }, 0);\n };\n return Downloader;\n}());\n\nvar __extends$2Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LINE_SEPARATOR = '\\r\\n';\nvar CsvSerializingSession = /** @class */ (function (_super) {\n __extends$2Q(CsvSerializingSession, _super);\n function CsvSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.isFirstLine = true;\n _this.result = '';\n var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;\n _this.suppressQuotes = suppressQuotes;\n _this.columnSeparator = columnSeparator;\n return _this;\n }\n CsvSerializingSession.prototype.addCustomContent = function (content) {\n var _this = this;\n if (!content) {\n return;\n }\n if (typeof content === 'string') {\n if (!/^\\s*\\n/.test(content)) {\n this.beginNewLine();\n }\n // replace whatever newlines are supplied with the style we're using\n content = content.replace(/\\r?\\n/g, LINE_SEPARATOR);\n this.result += content;\n }\n else {\n content.forEach(function (row) {\n _this.beginNewLine();\n row.forEach(function (cell, index) {\n if (index !== 0) {\n _this.result += _this.columnSeparator;\n }\n _this.result += _this.putInQuotes(cell.data.value || '');\n if (cell.mergeAcross) {\n _this.appendEmptyCells(cell.mergeAcross);\n }\n });\n });\n }\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderGroupingRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (header, index, span) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(header);\n this.appendEmptyCells(span);\n };\n CsvSerializingSession.prototype.appendEmptyCells = function (count) {\n for (var i = 1; i <= count; i++) {\n this.result += this.columnSeparator + this.putInQuotes(\"\");\n }\n };\n CsvSerializingSession.prototype.onNewHeaderRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractHeaderValue(column));\n };\n CsvSerializingSession.prototype.onNewBodyRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewBodyRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractRowCellValue(column, index, index, Constants.EXPORT_TYPE_CSV, node));\n };\n CsvSerializingSession.prototype.putInQuotes = function (value) {\n if (this.suppressQuotes) {\n return value;\n }\n if (value === null || value === undefined) {\n return '\"\"';\n }\n var stringValue;\n if (typeof value === 'string') {\n stringValue = value;\n }\n else if (typeof value.toString === 'function') {\n stringValue = value.toString();\n }\n else {\n console.warn('AG Grid: unknown value type during csv conversion');\n stringValue = '';\n }\n // replace each \" with \"\" (ie two sets of double quotes is how to do double quotes in csv)\n var valueEscaped = stringValue.replace(/\"/g, \"\\\"\\\"\");\n return '\"' + valueEscaped + '\"';\n };\n CsvSerializingSession.prototype.parse = function () {\n return this.result;\n };\n CsvSerializingSession.prototype.beginNewLine = function () {\n if (!this.isFirstLine) {\n this.result += LINE_SEPARATOR;\n }\n this.isFirstLine = false;\n };\n return CsvSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$2R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CsvCreator = /** @class */ (function (_super) {\n __extends$2R(CsvCreator, _super);\n function CsvCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CsvCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsWrapper: this.gridOptionsWrapper\n });\n };\n CsvCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsWrapper.getDefaultExportParams('csv');\n return Object.assign({}, baseParams, params);\n };\n CsvCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"AG Grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var mergedParams = this.getMergedParams(userParams);\n var data = this.getData(mergedParams);\n var packagedFile = new Blob([\"\\ufeff\", data], { type: 'text/plain' });\n Downloader.download(this.getFileName(mergedParams.fileName), packagedFile);\n return data;\n };\n CsvCreator.prototype.exportDataAsCsv = function (params) {\n return this.export(params);\n };\n CsvCreator.prototype.getDataAsCsv = function (params) {\n var mergedParams = this.getMergedParams(params);\n return this.getData(mergedParams);\n };\n CsvCreator.prototype.getDefaultFileName = function () {\n return 'export.csv';\n };\n CsvCreator.prototype.getDefaultFileExtension = function () {\n return 'csv';\n };\n CsvCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;\n return new CsvSerializingSession({\n columnModel: columnModel,\n valueService: valueService,\n gridOptionsWrapper: gridOptionsWrapper,\n processCellCallback: processCellCallback || undefined,\n processHeaderCallback: processHeaderCallback || undefined,\n processGroupHeaderCallback: processGroupHeaderCallback || undefined,\n processRowGroupCallback: processRowGroupCallback || undefined,\n suppressQuotes: suppressQuotes || false,\n columnSeparator: columnSeparator || ','\n });\n };\n CsvCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsWrapper.isSuppressCsvExport();\n };\n __decorate$2x([\n Autowired('columnModel')\n ], CsvCreator.prototype, \"columnModel\", void 0);\n __decorate$2x([\n Autowired('valueService')\n ], CsvCreator.prototype, \"valueService\", void 0);\n __decorate$2x([\n Autowired('gridSerializer')\n ], CsvCreator.prototype, \"gridSerializer\", void 0);\n __decorate$2x([\n Autowired('gridOptionsWrapper')\n ], CsvCreator.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$2x([\n PostConstruct\n ], CsvCreator.prototype, \"postConstruct\", null);\n CsvCreator = __decorate$2x([\n Bean('csvCreator')\n ], CsvCreator);\n return CsvCreator;\n}(BaseCreator));\n\nvar __extends$2S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n(function (RowType) {\n RowType[RowType[\"HEADER_GROUPING\"] = 0] = \"HEADER_GROUPING\";\n RowType[RowType[\"HEADER\"] = 1] = \"HEADER\";\n RowType[RowType[\"BODY\"] = 2] = \"BODY\";\n})(exports.RowType || (exports.RowType = {}));\nvar GridSerializer = /** @class */ (function (_super) {\n __extends$2S(GridSerializer, _super);\n function GridSerializer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridSerializer.prototype.serialize = function (gridSerializingSession, params) {\n if (params === void 0) { params = {}; }\n var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);\n var serializeChain = _.compose(\n // first pass, put in the header names of the cols\n this.prepareSession(columnsToExport), this.prependContent(params), this.exportColumnGroups(params, columnsToExport), this.exportHeaders(params, columnsToExport), this.processPinnedTopRows(params, columnsToExport), this.processRows(params, columnsToExport), this.processPinnedBottomRows(params, columnsToExport), this.appendContent(params));\n return serializeChain(gridSerializingSession).parse();\n };\n GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {\n var _this = this;\n var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var context = gridOptionsWrapper.getContext();\n var api = gridOptionsWrapper.getApi();\n var columnApi = gridOptionsWrapper.getColumnApi();\n var skipSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveSingleChildren();\n var hideOpenParents = gridOptionsWrapper.isGroupHideOpenParents();\n var skipLowestSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveLowestSingleChildren();\n var isLeafNode = this.columnModel.isPivotMode() ? node.leafGroup : !node.group;\n var skipRowGroups = params.skipGroups || params.skipRowGroups;\n var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;\n var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);\n if (skipRowGroups && params.skipGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 `skipGroups` has been renamed to `skipRowGroups`.'); }, 'gridSerializer-skipGroups');\n }\n var rowPosition = { rowIndex: node.rowIndex, rowPinned: node.rowPinned };\n if ((!isLeafNode && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||\n (params.onlySelected && !node.isSelected()) ||\n (params.rowNodes && !params.rowNodes.some(function (position) { return _this.rowPositionUtils.sameRow(position, rowPosition); })) ||\n (params.skipPinnedTop && node.rowPinned === 'top') ||\n (params.skipPinnedBottom && node.rowPinned === 'bottom')) {\n return;\n }\n // if we are in pivotMode, then the grid will show the root node only\n // if it's not a leaf group\n var nodeIsRootNode = node.level === -1;\n if (nodeIsRootNode && !node.leafGroup) {\n return;\n }\n var shouldRowBeSkipped = rowSkipper({ node: node, api: api, columnApi: columnApi, context: context });\n if (shouldRowBeSkipped) {\n return;\n }\n var rowAccumulator = gridSerializingSession.onNewBodyRow();\n columnsToExport.forEach(function (column, index) {\n rowAccumulator.onColumn(column, index, node);\n });\n if (params.getCustomContentBelowRow) {\n var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });\n if (content) {\n gridSerializingSession.addCustomContent(content);\n }\n }\n };\n GridSerializer.prototype.appendContent = function (params) {\n return function (gridSerializingSession) {\n var appendContent = params.customFooter || params.appendContent;\n if (appendContent) {\n if (params.customFooter) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customFooter` param has been deprecated. Use `appendContent` instead.'); }, 'gridSerializer-customFooter');\n }\n gridSerializingSession.addCustomContent(appendContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prependContent = function (params) {\n return function (gridSerializingSession) {\n var prependContent = params.customHeader || params.prependContent;\n if (prependContent) {\n if (params.customHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customHeader` param has been deprecated. Use `prependContent` instead.'); }, 'gridSerializer-customHeader');\n }\n gridSerializingSession.addCustomContent(prependContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prepareSession = function (columnsToExport) {\n return function (gridSerializingSession) {\n gridSerializingSession.prepare(columnsToExport);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n if (!params.skipColumnGroupHeaders) {\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, _this.columnModel.getGridBalancedTree(), groupInstanceIdCreator, null);\n _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);\n }\n else if (params.columnGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `columnGroups` param has deprecated, and groups are exported by default.'); }, 'gridSerializer-columnGroups');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {\n return function (gridSerializingSession) {\n if (!params.skipHeader && !params.skipColumnHeaders) {\n var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();\n columnsToExport.forEach(function (column, index) {\n gridRowIterator_1.onColumn(column, index, undefined);\n });\n }\n else if (params.skipHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `skipHeader` param has been renamed to `skipColumnHeaders`.'); }, 'gridSerializer-skipHeader');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n _this.pinnedRowModel.forEachPinnedTopRow(processRow);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n // when in pivot mode, we always render cols on screen, never 'all columns'\n var rowModel = _this.rowModel;\n var rowModelType = rowModel.getType();\n var usingCsrm = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n var usingSsrm = rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n if (_this.columnModel.isPivotMode()) {\n if (usingCsrm) {\n rowModel.forEachPivotNode(processRow);\n }\n else {\n // must be enterprise, so we can just loop through all the nodes\n rowModel.forEachNode(processRow);\n }\n }\n else {\n // onlySelectedAllPages: user doing pagination and wants selected items from\n // other pages, so cannot use the standard row model as it won't have rows from\n // other pages.\n // onlySelectedNonStandardModel: if user wants selected in non standard row model\n // (eg viewport) then again RowModel cannot be used, so need to use selected instead.\n if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {\n var selectedNodes = _this.selectionService.getSelectedNodes();\n selectedNodes.forEach(processRow);\n }\n else {\n // here is everything else - including standard row model and selected. we don't use\n // the selection model even when just using selected, so that the result is the order\n // of the rows appearing on the screen.\n if (usingCsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else {\n rowModel.forEachNode(processRow);\n }\n }\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n _this.pinnedRowModel.forEachPinnedBottomRow(processRow);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {\n if (allColumns === void 0) { allColumns = false; }\n var isPivotMode = this.columnModel.isPivotMode();\n if (columnKeys && columnKeys.length) {\n return this.columnModel.getGridColumns(columnKeys);\n }\n if (allColumns && !isPivotMode) {\n // add auto group column for tree data\n var columns = this.gridOptionsWrapper.isTreeData()\n ? this.columnModel.getGridColumns([Constants.GROUP_AUTO_COLUMN_ID])\n : [];\n return columns.concat(this.columnModel.getAllPrimaryColumns() || []);\n }\n return this.columnModel.getAllDisplayedColumns();\n };\n GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {\n var directChildrenHeaderGroups = [];\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n if (!columnGroup.getChildren) {\n return;\n }\n columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });\n });\n if (displayedGroups.length > 0 && displayedGroups[0] instanceof ColumnGroup) {\n this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);\n }\n if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {\n this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);\n }\n };\n GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {\n var _this = this;\n var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();\n var columnIndex = 0;\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n var name;\n if (processGroupHeaderCallback) {\n name = processGroupHeaderCallback({\n columnGroup: columnGroup,\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi(),\n context: _this.gridOptionsWrapper.getContext()\n });\n }\n else {\n name = _this.columnModel.getDisplayNameForColumnGroup(columnGroup, 'header');\n }\n var collapsibleGroupRanges = columnGroup.getLeafColumns().reduce(function (collapsibleGroups, currentColumn, currentIdx, arr) {\n var lastGroup = _.last(collapsibleGroups);\n var groupShow = currentColumn.getColumnGroupShow() === 'open';\n if (!groupShow) {\n if (lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx - 1;\n }\n }\n else if (!lastGroup || lastGroup[1] != null) {\n lastGroup = [currentIdx];\n collapsibleGroups.push(lastGroup);\n }\n if (currentIdx === arr.length - 1 && lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx;\n }\n return collapsibleGroups;\n }, []);\n gridRowIterator.onColumn(name || '', columnIndex++, columnGroup.getLeafColumns().length - 1, collapsibleGroupRanges);\n });\n };\n __decorate$2y([\n Autowired('displayedGroupCreator')\n ], GridSerializer.prototype, \"displayedGroupCreator\", void 0);\n __decorate$2y([\n Autowired('columnModel')\n ], GridSerializer.prototype, \"columnModel\", void 0);\n __decorate$2y([\n Autowired('rowModel')\n ], GridSerializer.prototype, \"rowModel\", void 0);\n __decorate$2y([\n Autowired('pinnedRowModel')\n ], GridSerializer.prototype, \"pinnedRowModel\", void 0);\n __decorate$2y([\n Autowired('selectionService')\n ], GridSerializer.prototype, \"selectionService\", void 0);\n __decorate$2y([\n Autowired('rowPositionUtils')\n ], GridSerializer.prototype, \"rowPositionUtils\", void 0);\n GridSerializer = __decorate$2y([\n Bean(\"gridSerializer\")\n ], GridSerializer);\n return GridSerializer;\n}(BeanStub));\n\nvar CsvExportModule = {\n moduleName: exports.ModuleNames.CsvExportModule,\n beans: [CsvCreator, GridSerializer]\n};\n\nvar LINE_SEPARATOR$1 = '\\r\\n';\nvar XmlFactory = /** @class */ (function () {\n function XmlFactory() {\n }\n XmlFactory.createHeader = function (headerElement) {\n if (headerElement === void 0) { headerElement = {}; }\n var headerStart = '';\n var keys = ['version'];\n if (!headerElement.version) {\n headerElement.version = \"1.0\";\n }\n if (headerElement.encoding) {\n keys.push('encoding');\n }\n if (headerElement.standalone) {\n keys.push('standalone');\n }\n var att = keys.map(function (key) { return key + \"=\\\"\" + headerElement[key] + \"\\\"\"; }).join(' ');\n return headerStart + \"xml \" + att + \" \" + headerEnd;\n };\n XmlFactory.createXml = function (xmlElement, booleanTransformer) {\n var _this = this;\n var props = '';\n if (xmlElement.properties) {\n if (xmlElement.properties.prefixedAttributes) {\n xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {\n Object.keys(prefixedSet.map).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);\n });\n });\n }\n if (xmlElement.properties.rawMap) {\n Object.keys(xmlElement.properties.rawMap).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);\n });\n }\n }\n var result = '<' + xmlElement.name + props;\n if (!xmlElement.children && xmlElement.textNode == null) {\n return result + '/>' + LINE_SEPARATOR$1;\n }\n if (xmlElement.textNode != null) {\n return result + '>' + xmlElement.textNode + '' + LINE_SEPARATOR$1;\n }\n result += '>' + LINE_SEPARATOR$1;\n if (xmlElement.children) {\n xmlElement.children.forEach(function (it) {\n result += _this.createXml(it, booleanTransformer);\n });\n }\n return result + '' + LINE_SEPARATOR$1;\n };\n XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {\n if (!value && value !== '' && value !== 0) {\n return '';\n }\n var xmlValue = value;\n if ((typeof (value) === 'boolean')) {\n if (booleanTransformer) {\n xmlValue = booleanTransformer(value);\n }\n }\n return \" \" + key + \"=\\\"\" + xmlValue + \"\\\"\";\n };\n return XmlFactory;\n}());\n\nvar __values$3 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// table for crc calculation\n// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references\nvar crcTable = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n]);\nvar ZipContainer = /** @class */ (function () {\n function ZipContainer() {\n }\n ZipContainer.addFolders = function (paths) {\n paths.forEach(this.addFolder.bind(this));\n };\n ZipContainer.addFolder = function (path) {\n this.folders.push({\n path: path,\n created: new Date(),\n isBase64: false\n });\n };\n ZipContainer.addFile = function (path, content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n this.files.push({\n path: path,\n created: new Date(),\n content: content,\n isBase64: isBase64\n });\n };\n ZipContainer.getContent = function (mimeType) {\n if (mimeType === void 0) { mimeType = 'application/zip'; }\n var textOutput = this.buildFileStream();\n var uInt8Output = this.buildUint8Array(textOutput);\n this.clearStream();\n return new Blob([uInt8Output], { type: mimeType });\n };\n ZipContainer.clearStream = function () {\n this.folders = [];\n this.files = [];\n };\n ZipContainer.buildFileStream = function (fData) {\n var e_1, _a;\n if (fData === void 0) { fData = ''; }\n var totalFiles = this.folders.concat(this.files);\n var len = totalFiles.length;\n var foData = '';\n var lL = 0;\n var cL = 0;\n try {\n for (var totalFiles_1 = __values$3(totalFiles), totalFiles_1_1 = totalFiles_1.next(); !totalFiles_1_1.done; totalFiles_1_1 = totalFiles_1.next()) {\n var currentFile = totalFiles_1_1.value;\n var _b = this.getHeader(currentFile, lL), fileHeader = _b.fileHeader, folderHeader = _b.folderHeader, content = _b.content;\n lL += fileHeader.length + content.length;\n cL += folderHeader.length;\n fData += fileHeader + content;\n foData += folderHeader;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (totalFiles_1_1 && !totalFiles_1_1.done && (_a = totalFiles_1.return)) _a.call(totalFiles_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var foEnd = this.buildFolderEnd(len, cL, lL);\n return fData + foData + foEnd;\n };\n ZipContainer.getHeader = function (currentFile, offset) {\n var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;\n var utf8_encode = _.utf8_encode, decToHex = _.decToHex;\n var utfPath = utf8_encode(path);\n var isUTF8 = utfPath !== path;\n var time = this.convertTime(created);\n var dt = this.convertDate(created);\n var extraFields = '';\n if (isUTF8) {\n var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;\n extraFields = \"\\x75\\x70\" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;\n }\n var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;\n var header = '\\x0A\\x00' +\n (isUTF8 ? '\\x00\\x08' : '\\x00\\x00') +\n '\\x00\\x00' +\n decToHex(time, 2) + // last modified time\n decToHex(dt, 2) + // last modified date\n decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +\n decToHex(size, 4) + // compressed size\n decToHex(size, 4) + // uncompressed size\n decToHex(utfPath.length, 2) + // file name length\n decToHex(extraFields.length, 2); // extra field length\n var fileHeader = 'PK\\x03\\x04' + header + utfPath + extraFields;\n var folderHeader = 'PK\\x01\\x02' + // central header\n '\\x14\\x00' +\n header + // file header\n '\\x00\\x00' +\n '\\x00\\x00' +\n '\\x00\\x00' +\n (content ? '\\x00\\x00\\x00\\x00' : '\\x10\\x00\\x00\\x00') + // external file attributes\n decToHex(offset, 4) + // relative offset of local header\n utfPath + // file name\n extraFields; // extra field\n return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };\n };\n ZipContainer.getConvertedContent = function (content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n if (isBase64) {\n content = content.split(';base64,')[1];\n }\n content = isBase64 ? atob(content) : content;\n return {\n size: content.length,\n content: content\n };\n };\n ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {\n var decToHex = _.decToHex;\n return 'PK\\x05\\x06' + // central folder end\n '\\x00\\x00' +\n '\\x00\\x00' +\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(cLen, 4) + // size of the central folder\n decToHex(lLen, 4) + // central folder start offset\n '\\x00\\x00';\n };\n ZipContainer.buildUint8Array = function (content) {\n var uint8 = new Uint8Array(content.length);\n for (var i = 0; i < uint8.length; i++) {\n uint8[i] = content.charCodeAt(i);\n }\n return uint8;\n };\n ZipContainer.getFromCrc32Table = function (content) {\n if (!content.length) {\n return 0;\n }\n var size = content.length;\n var iterable = new Uint8Array(size);\n for (var i = 0; i < size; i++) {\n iterable[i] = content.charCodeAt(i);\n }\n var crc = 0 ^ (-1);\n var j = 0;\n var k = 0;\n var l = 0;\n for (var i = 0; i < size; i++) {\n j = iterable[i];\n k = (crc ^ j) & 0xFF;\n l = crcTable[k];\n crc = (crc >>> 8) ^ l;\n }\n return crc ^ (-1);\n };\n ZipContainer.convertTime = function (date) {\n var time = date.getHours();\n time <<= 6;\n time = time | date.getMinutes();\n time <<= 5;\n time = time | date.getSeconds() / 2;\n return time;\n };\n ZipContainer.convertDate = function (date) {\n var dt = date.getFullYear() - 1980;\n dt <<= 4;\n dt = dt | (date.getMonth() + 1);\n dt <<= 5;\n dt = dt | date.getDate();\n return dt;\n };\n ZipContainer.folders = [];\n ZipContainer.files = [];\n return ZipContainer;\n}());\n\nModuleRegistry.register(ClientSideRowModelModule, false);\r\nModuleRegistry.register(InfiniteRowModelModule, false);\r\nModuleRegistry.register(CsvExportModule, false);\n\nexports.AbstractHeaderCellCtrl = AbstractHeaderCellCtrl;\nexports.AgAbstractField = AgAbstractField;\nexports.AgAngleSelect = AgAngleSelect;\nexports.AgCheckbox = AgCheckbox;\nexports.AgColorPicker = AgColorPicker;\nexports.AgDialog = AgDialog;\nexports.AgGroupComponent = AgGroupComponent;\nexports.AgInputNumberField = AgInputNumberField;\nexports.AgInputRange = AgInputRange;\nexports.AgInputTextArea = AgInputTextArea;\nexports.AgInputTextField = AgInputTextField;\nexports.AgMenuItemComponent = AgMenuItemComponent;\nexports.AgMenuList = AgMenuList;\nexports.AgMenuPanel = AgMenuPanel;\nexports.AgPanel = AgPanel;\nexports.AgPromise = AgPromise;\nexports.AgRadioButton = AgRadioButton;\nexports.AgSelect = AgSelect;\nexports.AgSlider = AgSlider;\nexports.AgStackComponentsRegistry = AgStackComponentsRegistry;\nexports.AgToggleButton = AgToggleButton;\nexports.AlignedGridsService = AlignedGridsService;\nexports.AnimateShowChangeCellRenderer = AnimateShowChangeCellRenderer;\nexports.AnimateSlideCellRenderer = AnimateSlideCellRenderer;\nexports.AnimationFrameService = AnimationFrameService;\nexports.AutoScrollService = AutoScrollService;\nexports.AutoWidthCalculator = AutoWidthCalculator;\nexports.Autowired = Autowired;\nexports.BaseComponentWrapper = BaseComponentWrapper;\nexports.BaseCreator = BaseCreator;\nexports.BaseGridSerializingSession = BaseGridSerializingSession;\nexports.Bean = Bean;\nexports.BeanStub = BeanStub;\nexports.Beans = Beans;\nexports.BodyDropPivotTarget = BodyDropPivotTarget;\nexports.BodyDropTarget = BodyDropTarget;\nexports.CellComp = CellComp;\nexports.CellCtrl = CellCtrl;\nexports.CellNavigationService = CellNavigationService;\nexports.CellPositionUtils = CellPositionUtils;\nexports.ChangedPath = ChangedPath;\nexports.CheckboxSelectionComponent = CheckboxSelectionComponent;\nexports.ColDefUtil = ColDefUtil;\nexports.Color = Color;\nexports.Column = Column;\nexports.ColumnApi = ColumnApi;\nexports.ColumnFactory = ColumnFactory;\nexports.ColumnGroup = ColumnGroup;\nexports.ColumnKeyCreator = ColumnKeyCreator;\nexports.ColumnModel = ColumnModel;\nexports.ColumnUtils = ColumnUtils;\nexports.Component = Component;\nexports.ComponentUtil = ComponentUtil;\nexports.Constants = Constants;\nexports.Context = Context;\nexports.CssClassApplier = CssClassApplier;\nexports.CssClassManager = CssClassManager;\nexports.CsvCreator = CsvCreator;\nexports.CsvExportModule = CsvExportModule;\nexports.CtrlsService = CtrlsService;\nexports.CustomTooltipFeature = CustomTooltipFeature;\nexports.DateFilter = DateFilter;\nexports.DisplayedGroupCreator = DisplayedGroupCreator;\nexports.Downloader = Downloader;\nexports.DragAndDropService = DragAndDropService;\nexports.DragService = DragService;\nexports.Environment = Environment;\nexports.EventService = EventService;\nexports.Events = Events;\nexports.ExpressionService = ExpressionService;\nexports.FilterManager = FilterManager;\nexports.FloatingFilterMapper = FloatingFilterMapper;\nexports.FocusService = FocusService;\nexports.Grid = Grid;\nexports.GridApi = GridApi;\nexports.GridBodyComp = GridBodyComp;\nexports.GridBodyCtrl = GridBodyCtrl;\nexports.GridComp = GridComp;\nexports.GridCoreCreator = GridCoreCreator;\nexports.GridCtrl = GridCtrl;\nexports.GridHeaderComp = GridHeaderComp;\nexports.GridHeaderCtrl = GridHeaderCtrl;\nexports.GridOptionsWrapper = GridOptionsWrapper;\nexports.GridSerializer = GridSerializer;\nexports.GroupCellRenderer = GroupCellRenderer;\nexports.GroupCellRendererCtrl = GroupCellRendererCtrl;\nexports.GroupInstanceIdCreator = GroupInstanceIdCreator;\nexports.HeaderCellCtrl = HeaderCellCtrl;\nexports.HeaderFilterCellComp = HeaderFilterCellComp;\nexports.HeaderFilterCellCtrl = HeaderFilterCellCtrl;\nexports.HeaderGroupCellCtrl = HeaderGroupCellCtrl;\nexports.HeaderNavigationService = HeaderNavigationService;\nexports.HeaderPositionUtils = HeaderPositionUtils;\nexports.HeaderRowComp = HeaderRowComp;\nexports.HeaderRowContainerComp = HeaderRowContainerComp;\nexports.HeaderRowContainerCtrl = HeaderRowContainerCtrl;\nexports.HeaderRowCtrl = HeaderRowCtrl;\nexports.HorizontalResizeService = HorizontalResizeService;\nexports.KeyCode = KeyCode;\nexports.LargeTextCellEditor = LargeTextCellEditor;\nexports.Logger = Logger;\nexports.LoggerFactory = LoggerFactory;\nexports.ManagedFocusFeature = ManagedFocusFeature;\nexports.ModuleRegistry = ModuleRegistry;\nexports.MouseEventService = MouseEventService;\nexports.MoveColumnFeature = MoveColumnFeature;\nexports.NavigationService = NavigationService;\nexports.NumberFilter = NumberFilter;\nexports.NumberSequence = NumberSequence;\nexports.Optional = Optional;\nexports.PaginationProxy = PaginationProxy;\nexports.PinnedRowModel = PinnedRowModel;\nexports.PopupComponent = PopupComponent;\nexports.PopupEditorWrapper = PopupEditorWrapper;\nexports.PopupSelectCellEditor = PopupSelectCellEditor;\nexports.PopupService = PopupService;\nexports.PopupTextCellEditor = PopupTextCellEditor;\nexports.PositionableFeature = PositionableFeature;\nexports.PostConstruct = PostConstruct;\nexports.PreConstruct = PreConstruct;\nexports.PreDestroy = PreDestroy;\nexports.PropertyKeys = PropertyKeys;\nexports.ProvidedColumnGroup = ProvidedColumnGroup;\nexports.ProvidedFilter = ProvidedFilter;\nexports.Qualifier = Qualifier;\nexports.QuerySelector = QuerySelector;\nexports.RefSelector = RefSelector;\nexports.ResizeObserverService = ResizeObserverService;\nexports.RowContainerComp = RowContainerComp;\nexports.RowContainerCtrl = RowContainerCtrl;\nexports.RowCtrl = RowCtrl;\nexports.RowNode = RowNode;\nexports.RowNodeBlock = RowNodeBlock;\nexports.RowNodeBlockLoader = RowNodeBlockLoader;\nexports.RowNodeSorter = RowNodeSorter;\nexports.RowPositionUtils = RowPositionUtils;\nexports.RowRenderer = RowRenderer;\nexports.ScalarFilter = ScalarFilter;\nexports.ScrollVisibleService = ScrollVisibleService;\nexports.SelectCellEditor = SelectCellEditor;\nexports.SelectableService = SelectableService;\nexports.SelectionService = SelectionService;\nexports.SetLeftFeature = SetLeftFeature;\nexports.SimpleFilter = SimpleFilter;\nexports.SortController = SortController;\nexports.StandardMenuFactory = StandardMenuFactory;\nexports.StylingService = StylingService;\nexports.TabGuardComp = TabGuardComp;\nexports.TabGuardCtrl = TabGuardCtrl;\nexports.TabbedLayout = TabbedLayout;\nexports.TemplateService = TemplateService;\nexports.TextCellEditor = TextCellEditor;\nexports.TextFilter = TextFilter;\nexports.TextFloatingFilter = TextFloatingFilter;\nexports.Timer = Timer;\nexports.TouchListener = TouchListener;\nexports.UserComponentFactory = UserComponentFactory;\nexports.UserComponentRegistry = UserComponentRegistry;\nexports.ValueCache = ValueCache;\nexports.ValueFormatterService = ValueFormatterService;\nexports.ValueService = ValueService;\nexports.VanillaFrameworkOverrides = VanillaFrameworkOverrides;\nexports.VirtualList = VirtualList;\nexports.XmlFactory = XmlFactory;\nexports.ZipContainer = ZipContainer;\nexports._ = _;\nexports.defaultGroupComparator = defaultGroupComparator;\nexports.getRowContainerTypeForName = getRowContainerTypeForName;\nexports.simpleHttpRequest = simpleHttpRequest;\nexports.stringToArray = stringToArray;\n","/**\n * ag-grid-enterprise - AG Grid Enterprise Features * @version v27.3.0\n * @link https://www.ag-grid.com/\n' * @license Commercial\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar agGridCommunity = require('ag-grid-community');\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar LicenseManager = /** @class */ (function (_super) {\n __extends(LicenseManager, _super);\n function LicenseManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.watermarkMessage = undefined;\n return _this;\n }\n LicenseManager_1 = LicenseManager;\n LicenseManager.prototype.validateLicense = function () {\n if (agGridCommunity._.missingOrEmpty(LicenseManager_1.licenseKey)) {\n this.outputMissingLicenseKey();\n }\n else if (LicenseManager_1.licenseKey.length > 32) {\n var _a = LicenseManager_1.extractLicenseComponents(LicenseManager_1.licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n if (md5 === this.md5.md5(license)) {\n if (agGridCommunity._.exists(version) && version) {\n this.validateLicenseKeyForVersion(version, !!isTrial, license);\n }\n else {\n this.validateLegacyKey(license);\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n };\n LicenseManager.extractExpiry = function (license) {\n var restrictionHashed = license.substring(license.lastIndexOf('_') + 1, license.length);\n return new Date(parseInt(LicenseManager_1.decode(restrictionHashed), 10));\n };\n LicenseManager.extractLicenseComponents = function (licenseKey) {\n // when users copy the license key from a PDF extra zero width characters are sometimes copied too\n // carriage returns and line feeds are problematic too\n // all of which causes license key validation to fail - strip these out\n var cleanedLicenseKey = licenseKey.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n cleanedLicenseKey = cleanedLicenseKey.replace(/\\r?\\n|\\r/g, '');\n var hashStart = cleanedLicenseKey.length - 32;\n var md5 = cleanedLicenseKey.substring(hashStart);\n var license = cleanedLicenseKey.substring(0, hashStart);\n var _a = __read(LicenseManager_1.extractBracketedInformation(cleanedLicenseKey), 2), version = _a[0], isTrial = _a[1];\n return { md5: md5, license: license, version: version, isTrial: isTrial };\n };\n LicenseManager.prototype.getLicenseDetails = function (licenseKey) {\n var _a = LicenseManager_1.extractLicenseComponents(licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n var valid = (md5 === this.md5.md5(license));\n var expiry = null;\n if (valid) {\n expiry = LicenseManager_1.extractExpiry(license);\n valid = !isNaN(expiry.getTime());\n }\n return {\n licenseKey: licenseKey,\n valid: valid,\n expiry: valid ? LicenseManager_1.formatDate(expiry) : null,\n version: version ? version : 'legacy',\n isTrial: isTrial\n };\n };\n LicenseManager.prototype.isDisplayWatermark = function () {\n return !agGridCommunity._.missingOrEmpty(this.watermarkMessage);\n };\n LicenseManager.prototype.getWatermarkMessage = function () {\n return this.watermarkMessage || '';\n };\n LicenseManager.formatDate = function (date) {\n var monthNames = [\n 'January', 'February', 'March',\n 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ];\n var day = date.getDate();\n var monthIndex = date.getMonth();\n var year = date.getFullYear();\n return day + ' ' + monthNames[monthIndex] + ' ' + year;\n };\n LicenseManager.getGridReleaseDate = function () {\n return new Date(parseInt(LicenseManager_1.decode(LicenseManager_1.RELEASE_INFORMATION), 10));\n };\n LicenseManager.decode = function (input) {\n var keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var t = '';\n var n, r, i;\n var s, o, u, a;\n var f = 0;\n var e = input.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = keystr.indexOf(e.charAt(f++));\n o = keystr.indexOf(e.charAt(f++));\n u = keystr.indexOf(e.charAt(f++));\n a = keystr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u != 64) {\n t = t + String.fromCharCode(r);\n }\n if (a != 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = LicenseManager_1.utf8_decode(t);\n return t;\n };\n LicenseManager.utf8_decode = function (input) {\n input = input.replace(/rn/g, 'n');\n var t = '';\n for (var n = 0; n < input.length; n++) {\n var r = input.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n }\n else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n }\n else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n };\n LicenseManager.setLicenseKey = function (licenseKey) {\n LicenseManager_1.licenseKey = licenseKey;\n };\n LicenseManager.extractBracketedInformation = function (licenseKey) {\n var matches = licenseKey.split('[')\n .filter(function (v) {\n return v.indexOf(']') > -1;\n })\n .map(function (value) {\n return value.split(']')[0];\n });\n if (!matches || matches.length === 0) {\n return [null, null];\n }\n var isTrial = matches.filter(function (match) { return match === 'TRIAL'; }).length === 1;\n var version = matches.filter(function (match) { return match.indexOf(\"v\") === 0; }).map(function (match) { return match.replace(/^v/, \"\"); })[0];\n return [version, isTrial];\n };\n LicenseManager.prototype.validateLicenseKeyForVersion = function (version, isTrial, license) {\n if (version !== '2') {\n return;\n }\n if (isTrial) {\n this.validateForTrial(license);\n }\n else {\n this.validateLegacyKey(license);\n }\n };\n LicenseManager.prototype.validateLegacyKey = function (license) {\n var gridReleaseDate = LicenseManager_1.getGridReleaseDate();\n var expiry = LicenseManager_1.extractExpiry(license);\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (gridReleaseDate < expiry);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager_1.formatDate(expiry);\n var formattedReleaseDate = LicenseManager_1.formatDate(gridReleaseDate);\n this.outputIncompatibleVersion(formattedExpiryDate, formattedReleaseDate);\n }\n };\n LicenseManager.prototype.validateForTrial = function (license) {\n var expiry = LicenseManager_1.extractExpiry(license);\n var now = new Date();\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (expiry > now);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager_1.formatDate(expiry);\n this.outputExpiredTrialKey(formattedExpiryDate);\n }\n };\n LicenseManager.prototype.outputInvalidLicenseKey = function () {\n console.error('*****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License ********************************************');\n console.error('********************************************* Invalid License ***************************************************');\n console.error('* Your license for AG Grid Enterprise is not valid - please contact info@ag-grid.com to obtain a valid license. *');\n console.error('*****************************************************************************************************************');\n console.error('*****************************************************************************************************************');\n this.watermarkMessage = \"Invalid License\";\n };\n LicenseManager.prototype.outputExpiredTrialKey = function (formattedExpiryDate) {\n console.error('****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License *******************************************');\n console.error('***************************************** Trial Period Expired. *******************************************');\n console.error(\"* Your license for AG Grid Enterprise expired on \" + formattedExpiryDate + \". *\");\n console.error('* Please email info@ag-grid.com to purchase a license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"Trial Period Expired\";\n };\n LicenseManager.prototype.outputMissingLicenseKey = function () {\n console.error('****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License *******************************************');\n console.error('****************************************** License Key Not Found ***********************************************');\n console.error('* All AG Grid Enterprise features are unlocked. *');\n console.error('* This is an evaluation only version, it is not licensed for development projects intended for production. *');\n console.error('* If you want to hide the watermark, please email info@ag-grid.com for a trial license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"For Trial Use Only\";\n };\n LicenseManager.prototype.outputIncompatibleVersion = function (formattedExpiryDate, formattedReleaseDate) {\n console.error('****************************************************************************************************************************');\n console.error('****************************************************************************************************************************');\n console.error('* AG Grid Enterprise License *');\n console.error('* License not compatible with installed version of AG Grid Enterprise. *');\n console.error('* *');\n console.error(\"* Your AG Grid License entitles you to all versions of AG Grid that we release within the time covered by your license *\");\n console.error(\"* - typically we provide one year licenses which entitles you to all releases / updates of AG Grid within that year. *\");\n console.error(\"* Your license has an end (expiry) date which stops the license key working with versions of AG Grid released after the *\");\n console.error(\"* license end date. The license key that you have expires on \" + formattedExpiryDate + \", however the version of AG Grid you *\");\n console.error(\"* are trying to use was released on \" + formattedReleaseDate + \". *\");\n console.error('* *');\n console.error('* Please contact info@ag-grid.com to renew your subscription to new versions and get a new license key to work with this *');\n console.error('* version of AG Grid. *');\n console.error('****************************************************************************************************************************');\n console.error('****************************************************************************************************************************');\n this.watermarkMessage = \"License Expired\";\n };\n var LicenseManager_1;\n LicenseManager.RELEASE_INFORMATION = 'MTY1MjQ0MzczMDM1MQ==';\n __decorate([\n agGridCommunity.Autowired('md5')\n ], LicenseManager.prototype, \"md5\", void 0);\n __decorate([\n agGridCommunity.PreConstruct\n ], LicenseManager.prototype, \"validateLicense\", null);\n LicenseManager = LicenseManager_1 = __decorate([\n agGridCommunity.Bean('licenseManager')\n ], LicenseManager);\n return LicenseManager;\n}(agGridCommunity.BeanStub));\n\nvar __extends$1 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MD5 = /** @class */ (function (_super) {\n __extends$1(MD5, _super);\n function MD5() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ieCompatibility = false;\n return _this;\n }\n MD5.prototype.init = function () {\n this.ieCompatibility = (this.md5('hello') != '5d41402abc4b2a76b9719d911017c592');\n };\n MD5.prototype.md5cycle = function (x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a = this.ff(a, b, c, d, k[0], 7, -680876936);\n d = this.ff(d, a, b, c, k[1], 12, -389564586);\n c = this.ff(c, d, a, b, k[2], 17, 606105819);\n b = this.ff(b, c, d, a, k[3], 22, -1044525330);\n a = this.ff(a, b, c, d, k[4], 7, -176418897);\n d = this.ff(d, a, b, c, k[5], 12, 1200080426);\n c = this.ff(c, d, a, b, k[6], 17, -1473231341);\n b = this.ff(b, c, d, a, k[7], 22, -45705983);\n a = this.ff(a, b, c, d, k[8], 7, 1770035416);\n d = this.ff(d, a, b, c, k[9], 12, -1958414417);\n c = this.ff(c, d, a, b, k[10], 17, -42063);\n b = this.ff(b, c, d, a, k[11], 22, -1990404162);\n a = this.ff(a, b, c, d, k[12], 7, 1804603682);\n d = this.ff(d, a, b, c, k[13], 12, -40341101);\n c = this.ff(c, d, a, b, k[14], 17, -1502002290);\n b = this.ff(b, c, d, a, k[15], 22, 1236535329);\n a = this.gg(a, b, c, d, k[1], 5, -165796510);\n d = this.gg(d, a, b, c, k[6], 9, -1069501632);\n c = this.gg(c, d, a, b, k[11], 14, 643717713);\n b = this.gg(b, c, d, a, k[0], 20, -373897302);\n a = this.gg(a, b, c, d, k[5], 5, -701558691);\n d = this.gg(d, a, b, c, k[10], 9, 38016083);\n c = this.gg(c, d, a, b, k[15], 14, -660478335);\n b = this.gg(b, c, d, a, k[4], 20, -405537848);\n a = this.gg(a, b, c, d, k[9], 5, 568446438);\n d = this.gg(d, a, b, c, k[14], 9, -1019803690);\n c = this.gg(c, d, a, b, k[3], 14, -187363961);\n b = this.gg(b, c, d, a, k[8], 20, 1163531501);\n a = this.gg(a, b, c, d, k[13], 5, -1444681467);\n d = this.gg(d, a, b, c, k[2], 9, -51403784);\n c = this.gg(c, d, a, b, k[7], 14, 1735328473);\n b = this.gg(b, c, d, a, k[12], 20, -1926607734);\n a = this.hh(a, b, c, d, k[5], 4, -378558);\n d = this.hh(d, a, b, c, k[8], 11, -2022574463);\n c = this.hh(c, d, a, b, k[11], 16, 1839030562);\n b = this.hh(b, c, d, a, k[14], 23, -35309556);\n a = this.hh(a, b, c, d, k[1], 4, -1530992060);\n d = this.hh(d, a, b, c, k[4], 11, 1272893353);\n c = this.hh(c, d, a, b, k[7], 16, -155497632);\n b = this.hh(b, c, d, a, k[10], 23, -1094730640);\n a = this.hh(a, b, c, d, k[13], 4, 681279174);\n d = this.hh(d, a, b, c, k[0], 11, -358537222);\n c = this.hh(c, d, a, b, k[3], 16, -722521979);\n b = this.hh(b, c, d, a, k[6], 23, 76029189);\n a = this.hh(a, b, c, d, k[9], 4, -640364487);\n d = this.hh(d, a, b, c, k[12], 11, -421815835);\n c = this.hh(c, d, a, b, k[15], 16, 530742520);\n b = this.hh(b, c, d, a, k[2], 23, -995338651);\n a = this.ii(a, b, c, d, k[0], 6, -198630844);\n d = this.ii(d, a, b, c, k[7], 10, 1126891415);\n c = this.ii(c, d, a, b, k[14], 15, -1416354905);\n b = this.ii(b, c, d, a, k[5], 21, -57434055);\n a = this.ii(a, b, c, d, k[12], 6, 1700485571);\n d = this.ii(d, a, b, c, k[3], 10, -1894986606);\n c = this.ii(c, d, a, b, k[10], 15, -1051523);\n b = this.ii(b, c, d, a, k[1], 21, -2054922799);\n a = this.ii(a, b, c, d, k[8], 6, 1873313359);\n d = this.ii(d, a, b, c, k[15], 10, -30611744);\n c = this.ii(c, d, a, b, k[6], 15, -1560198380);\n b = this.ii(b, c, d, a, k[13], 21, 1309151649);\n a = this.ii(a, b, c, d, k[4], 6, -145523070);\n d = this.ii(d, a, b, c, k[11], 10, -1120210379);\n c = this.ii(c, d, a, b, k[2], 15, 718787259);\n b = this.ii(b, c, d, a, k[9], 21, -343485551);\n x[0] = this.add32(a, x[0]);\n x[1] = this.add32(b, x[1]);\n x[2] = this.add32(c, x[2]);\n x[3] = this.add32(d, x[3]);\n };\n MD5.prototype.cmn = function (q, a, b, x, s, t) {\n a = this.add32(this.add32(a, q), this.add32(x, t));\n return this.add32((a << s) | (a >>> (32 - s)), b);\n };\n MD5.prototype.ff = function (a, b, c, d, x, s, t) {\n return this.cmn((b & c) | ((~b) & d), a, b, x, s, t);\n };\n MD5.prototype.gg = function (a, b, c, d, x, s, t) {\n return this.cmn((b & d) | (c & (~d)), a, b, x, s, t);\n };\n MD5.prototype.hh = function (a, b, c, d, x, s, t) {\n return this.cmn(b ^ c ^ d, a, b, x, s, t);\n };\n MD5.prototype.ii = function (a, b, c, d, x, s, t) {\n return this.cmn(c ^ (b | (~d)), a, b, x, s, t);\n };\n MD5.prototype.md51 = function (s) {\n var n = s.length;\n var state = [1732584193, -271733879, -1732584194, 271733878];\n var i;\n for (i = 64; i <= s.length; i += 64) {\n this.md5cycle(state, this.md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n this.md5cycle(state, tail);\n for (i = 0; i < 16; i++) {\n tail[i] = 0;\n }\n }\n tail[14] = n * 8;\n this.md5cycle(state, tail);\n return state;\n };\n /* there needs to be support for Unicode here, * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise I suthis.ggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8 8-bit unsigned value arrays.\n */\n MD5.prototype.md5blk = function (s) {\n var md5blks = [];\n /* Andy King said do it this way. */\n for (var i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i)\n + (s.charCodeAt(i + 1) << 8)\n + (s.charCodeAt(i + 2) << 16)\n + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n };\n MD5.prototype.rhex = function (n) {\n var hex_chr = '0123456789abcdef'.split('');\n var s = '', j = 0;\n for (; j < 4; j++) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]\n + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n };\n MD5.prototype.hex = function (x) {\n for (var i = 0; i < x.length; i++) {\n x[i] = this.rhex(x[i]);\n }\n return x.join('');\n };\n MD5.prototype.md5 = function (s) {\n return this.hex(this.md51(s));\n };\n MD5.prototype.add32 = function (a, b) {\n return this.ieCompatibility ? this.add32Compat(a, b) : this.add32Std(a, b);\n };\n /* this function is much faster, so if possible we use it. Some IEs are the only ones I know of that\n need the idiotic second function, generated by an if clause. */\n MD5.prototype.add32Std = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n };\n MD5.prototype.add32Compat = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n __decorate$1([\n agGridCommunity.PostConstruct\n ], MD5.prototype, \"init\", null);\n MD5 = __decorate$1([\n agGridCommunity.Bean('md5')\n ], MD5);\n return MD5;\n}(agGridCommunity.BeanStub));\n\nvar __extends$2 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar WatermarkComp = /** @class */ (function (_super) {\n __extends$2(WatermarkComp, _super);\n function WatermarkComp() {\n return _super.call(this, \"
\\n
\\n
\") || this;\n }\n WatermarkComp.prototype.postConstruct = function () {\n var _this = this;\n var show = this.shouldDisplayWatermark();\n this.addOrRemoveCssClass('ag-hidden', !show);\n if (show) {\n this.eLicenseTextRef.innerText = this.licenseManager.getWatermarkMessage();\n window.setTimeout(function () { return _this.addCssClass('ag-opacity-zero'); }, 0);\n window.setTimeout(function () { return _this.addCssClass('ag-hidden'); }, 5000);\n }\n };\n WatermarkComp.prototype.shouldDisplayWatermark = function () {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var win = (eDocument.defaultView || window);\n var loc = win.location;\n var _a = loc.hostname, hostname = _a === void 0 ? '' : _a, pathname = loc.pathname;\n var isDisplayWatermark = this.licenseManager.isDisplayWatermark();\n var isWhiteListURL = hostname.match('^(?:127\\.0\\.0\\.1|localhost|(?:\\w+\\.)?ag-grid\\.com)$') != null;\n var isForceWatermark = pathname ? pathname.indexOf('forceWatermark') !== -1 : false;\n return isForceWatermark || (isDisplayWatermark && !isWhiteListURL);\n };\n __decorate$2([\n agGridCommunity.Autowired('licenseManager')\n ], WatermarkComp.prototype, \"licenseManager\", void 0);\n __decorate$2([\n agGridCommunity.RefSelector('eLicenseTextRef')\n ], WatermarkComp.prototype, \"eLicenseTextRef\", void 0);\n __decorate$2([\n agGridCommunity.PostConstruct\n ], WatermarkComp.prototype, \"postConstruct\", null);\n return WatermarkComp;\n}(agGridCommunity.Component));\n\nvar EnterpriseCoreModule = {\n moduleName: agGridCommunity.ModuleNames.EnterpriseCoreModule,\n beans: [LicenseManager, MD5],\n agStackComponents: [\n { componentName: 'AgWatermark', componentClass: WatermarkComp }\n ]\n};\n\nvar __extends$3 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ExpandState;\n(function (ExpandState) {\n ExpandState[ExpandState[\"EXPANDED\"] = 0] = \"EXPANDED\";\n ExpandState[ExpandState[\"COLLAPSED\"] = 1] = \"COLLAPSED\";\n ExpandState[ExpandState[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(ExpandState || (ExpandState = {}));\nvar PrimaryColsHeaderPanel = /** @class */ (function (_super) {\n __extends$3(PrimaryColsHeaderPanel, _super);\n function PrimaryColsHeaderPanel() {\n return _super.call(this, PrimaryColsHeaderPanel.TEMPLATE) || this;\n }\n PrimaryColsHeaderPanel.prototype.postConstruct = function () {\n var _this = this;\n this.createExpandIcons();\n this.addManagedListener(this.eExpand, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eExpand, 'keydown', function (e) {\n if (e.key === agGridCommunity.KeyCode.SPACE) {\n _this.onExpandClicked();\n }\n });\n this.addManagedListener(this.eSelect.getInputElement(), 'click', this.onSelectClicked.bind(this));\n this.eFilterTextField.onValueChange(function () { return _this.onFilterTextChanged(); });\n this.addManagedListener(this.eFilterTextField.getInputElement(), 'keypress', this.onMiniFilterKeyPress.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this));\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eSelect.setInputAriaLabel(translate('ariaColumnSelectAll', 'Toggle Select All Columns'));\n this.eFilterTextField.setInputAriaLabel(translate('ariaFilterColumnsInput', 'Filter Columns Input'));\n };\n PrimaryColsHeaderPanel.prototype.init = function (params) {\n this.params = params;\n if (this.columnModel.isReady()) {\n this.showOrHideOptions();\n }\n };\n PrimaryColsHeaderPanel.prototype.createExpandIcons = function () {\n this.eExpand.appendChild((this.eExpandChecked = agGridCommunity._.createIconNoSpan('columnSelectOpen', this.gridOptionsWrapper)));\n this.eExpand.appendChild((this.eExpandUnchecked = agGridCommunity._.createIconNoSpan('columnSelectClosed', this.gridOptionsWrapper)));\n this.eExpand.appendChild((this.eExpandIndeterminate = agGridCommunity._.createIconNoSpan('columnSelectIndeterminate', this.gridOptionsWrapper)));\n this.setExpandState(ExpandState.EXPANDED);\n };\n // we only show expand / collapse if we are showing columns\n PrimaryColsHeaderPanel.prototype.showOrHideOptions = function () {\n var showFilter = !this.params.suppressColumnFilter;\n var showSelect = !this.params.suppressColumnSelectAll;\n var showExpand = !this.params.suppressColumnExpandAll;\n var groupsPresent = this.columnModel.isPrimaryColumnGroupsPresent();\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFilterTextField.setInputPlaceholder(translate('searchOoo', 'Search...'));\n agGridCommunity._.setDisplayed(this.eFilterTextField.getGui(), showFilter);\n agGridCommunity._.setDisplayed(this.eSelect.getGui(), showSelect);\n agGridCommunity._.setDisplayed(this.eExpand, showExpand && groupsPresent);\n };\n PrimaryColsHeaderPanel.prototype.onFilterTextChanged = function () {\n var _this = this;\n if (!this.onFilterTextChangedDebounced) {\n this.onFilterTextChangedDebounced = agGridCommunity._.debounce(function () {\n var filterText = _this.eFilterTextField.getValue();\n _this.dispatchEvent({ type: \"filterChanged\", filterText: filterText });\n }, PrimaryColsHeaderPanel.DEBOUNCE_DELAY);\n }\n this.onFilterTextChangedDebounced();\n };\n PrimaryColsHeaderPanel.prototype.onMiniFilterKeyPress = function (e) {\n var _this = this;\n if (e.key === agGridCommunity.KeyCode.ENTER) {\n // we need to add a delay that corresponds to the filter text debounce delay to ensure\n // the text filtering has happened, otherwise all columns will be deselected\n setTimeout(function () { return _this.onSelectClicked(); }, PrimaryColsHeaderPanel.DEBOUNCE_DELAY);\n }\n };\n PrimaryColsHeaderPanel.prototype.onSelectClicked = function () {\n this.dispatchEvent({ type: this.selectState ? 'unselectAll' : 'selectAll' });\n };\n PrimaryColsHeaderPanel.prototype.onExpandClicked = function () {\n this.dispatchEvent({ type: this.expandState === ExpandState.EXPANDED ? 'collapseAll' : 'expandAll' });\n };\n PrimaryColsHeaderPanel.prototype.setExpandState = function (state) {\n this.expandState = state;\n agGridCommunity._.setDisplayed(this.eExpandChecked, this.expandState === ExpandState.EXPANDED);\n agGridCommunity._.setDisplayed(this.eExpandUnchecked, this.expandState === ExpandState.COLLAPSED);\n agGridCommunity._.setDisplayed(this.eExpandIndeterminate, this.expandState === ExpandState.INDETERMINATE);\n };\n PrimaryColsHeaderPanel.prototype.setSelectionState = function (state) {\n this.selectState = state;\n this.eSelect.setValue(this.selectState);\n };\n PrimaryColsHeaderPanel.DEBOUNCE_DELAY = 300;\n PrimaryColsHeaderPanel.TEMPLATE = \"
\\n
\\n \\n \\n
\";\n __decorate$3([\n agGridCommunity.Autowired('columnModel')\n ], PrimaryColsHeaderPanel.prototype, \"columnModel\", void 0);\n __decorate$3([\n agGridCommunity.RefSelector('eExpand')\n ], PrimaryColsHeaderPanel.prototype, \"eExpand\", void 0);\n __decorate$3([\n agGridCommunity.RefSelector('eSelect')\n ], PrimaryColsHeaderPanel.prototype, \"eSelect\", void 0);\n __decorate$3([\n agGridCommunity.RefSelector('eFilterTextField')\n ], PrimaryColsHeaderPanel.prototype, \"eFilterTextField\", void 0);\n __decorate$3([\n agGridCommunity.PostConstruct\n ], PrimaryColsHeaderPanel.prototype, \"postConstruct\", null);\n return PrimaryColsHeaderPanel;\n}(agGridCommunity.Component));\n\nvar ColumnModelItem = /** @class */ (function () {\n function ColumnModelItem(displayName, columnOrGroup, dept, group, expanded) {\n if (group === void 0) { group = false; }\n this.eventService = new agGridCommunity.EventService();\n this.displayName = displayName;\n this.dept = dept;\n this.group = group;\n if (group) {\n this.columnGroup = columnOrGroup;\n this.expanded = expanded;\n this.children = [];\n }\n else {\n this.column = columnOrGroup;\n }\n }\n ColumnModelItem.prototype.isGroup = function () { return this.group; };\n ColumnModelItem.prototype.getDisplayName = function () { return this.displayName; };\n ColumnModelItem.prototype.getColumnGroup = function () { return this.columnGroup; };\n ColumnModelItem.prototype.getColumn = function () { return this.column; };\n ColumnModelItem.prototype.getDept = function () { return this.dept; };\n ColumnModelItem.prototype.isExpanded = function () { return !!this.expanded; };\n ColumnModelItem.prototype.getChildren = function () { return this.children; };\n ColumnModelItem.prototype.isPassesFilter = function () { return this.passesFilter; };\n ColumnModelItem.prototype.setExpanded = function (expanded) {\n if (expanded === this.expanded) {\n return;\n }\n this.expanded = expanded;\n this.eventService.dispatchEvent({ type: ColumnModelItem.EVENT_EXPANDED_CHANGED });\n };\n ColumnModelItem.prototype.setPassesFilter = function (passesFilter) {\n this.passesFilter = passesFilter;\n };\n ColumnModelItem.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n ColumnModelItem.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n ColumnModelItem.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n return ColumnModelItem;\n}());\n\nvar __extends$4 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$1(arguments[i]));\n return ar;\n};\nvar __values = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ToolPanelContextMenu = /** @class */ (function (_super) {\n __extends$4(ToolPanelContextMenu, _super);\n function ToolPanelContextMenu(column, mouseEvent, parentEl) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.column = column;\n _this.mouseEvent = mouseEvent;\n _this.parentEl = parentEl;\n _this.displayName = null;\n return _this;\n }\n ToolPanelContextMenu.prototype.postConstruct = function () {\n this.initializeProperties(this.column);\n this.buildMenuItemMap();\n if (this.column instanceof agGridCommunity.Column) {\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnToolPanel');\n }\n else {\n this.displayName = this.columnModel.getDisplayNameForProvidedColumnGroup(null, this.column, 'columnToolPanel');\n }\n if (this.isActive()) {\n this.mouseEvent.preventDefault();\n this.displayContextMenu();\n }\n };\n ToolPanelContextMenu.prototype.initializeProperties = function (column) {\n if (column instanceof agGridCommunity.ProvidedColumnGroup) {\n this.columns = column.getLeafColumns();\n }\n else {\n this.columns = [column];\n }\n this.allowGrouping = this.columns.some(function (col) { return col.isPrimary() && col.isAllowRowGroup(); });\n this.allowValues = this.columns.some(function (col) { return col.isPrimary() && col.isAllowValue(); });\n this.allowPivoting = this.columnModel.isPivotMode() && this.columns.some(function (col) { return col.isPrimary() && col.isAllowPivot(); });\n };\n ToolPanelContextMenu.prototype.buildMenuItemMap = function () {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.menuItemMap = new Map();\n this.menuItemMap.set('rowGroup', {\n allowedFunction: function (col) { return col.isPrimary() && col.isAllowRowGroup(); },\n activeFunction: function (col) { return col.isRowGroupActive(); },\n activateLabel: function () { return localeTextFunc('groupBy', 'Group by') + \" \" + _this.displayName; },\n deactivateLabel: function () { return localeTextFunc('ungroupBy', 'Un-Group by') + \" \" + _this.displayName; },\n activateFunction: function () {\n var groupedColumns = _this.columnModel.getRowGroupColumns();\n _this.columnModel.setRowGroupColumns(_this.addColumnsToList(groupedColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var groupedColumns = _this.columnModel.getRowGroupColumns();\n _this.columnModel.setRowGroupColumns(_this.removeColumnsFromList(groupedColumns), \"toolPanelUi\");\n },\n addIcon: 'menuAddRowGroup',\n removeIcon: 'menuRemoveRowGroup'\n });\n this.menuItemMap.set('value', {\n allowedFunction: function (col) { return col.isPrimary() && col.isAllowValue(); },\n activeFunction: function (col) { return col.isValueActive(); },\n activateLabel: function () { return localeTextFunc('addToValues', \"Add \" + _this.displayName + \" to values\", [_this.displayName]); },\n deactivateLabel: function () { return localeTextFunc('removeFromValues', \"Remove \" + _this.displayName + \" from values\", [_this.displayName]); },\n activateFunction: function () {\n var valueColumns = _this.columnModel.getValueColumns();\n _this.columnModel.setValueColumns(_this.addColumnsToList(valueColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var valueColumns = _this.columnModel.getValueColumns();\n _this.columnModel.setValueColumns(_this.removeColumnsFromList(valueColumns), \"toolPanelUi\");\n },\n addIcon: 'valuePanel',\n removeIcon: 'valuePanel'\n });\n this.menuItemMap.set('pivot', {\n allowedFunction: function (col) { return _this.columnModel.isPivotMode() && col.isPrimary() && col.isAllowPivot(); },\n activeFunction: function (col) { return col.isPivotActive(); },\n activateLabel: function () { return localeTextFunc('addToLabels', \"Add \" + _this.displayName + \" to labels\", [_this.displayName]); },\n deactivateLabel: function () { return localeTextFunc('removeFromLabels', \"Remove \" + _this.displayName + \" from labels\", [_this.displayName]); },\n activateFunction: function () {\n var pivotColumns = _this.columnModel.getPivotColumns();\n _this.columnModel.setPivotColumns(_this.addColumnsToList(pivotColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var pivotColumns = _this.columnModel.getPivotColumns();\n _this.columnModel.setPivotColumns(_this.removeColumnsFromList(pivotColumns), \"toolPanelUi\");\n },\n addIcon: 'pivotPanel',\n removeIcon: 'pivotPanel'\n });\n };\n ToolPanelContextMenu.prototype.addColumnsToList = function (columnList) {\n return __spread(columnList).concat(this.columns.filter(function (col) { return columnList.indexOf(col) === -1; }));\n };\n ToolPanelContextMenu.prototype.removeColumnsFromList = function (columnList) {\n var _this = this;\n return columnList.filter(function (col) { return _this.columns.indexOf(col) === -1; });\n };\n ToolPanelContextMenu.prototype.displayContextMenu = function () {\n var _this = this;\n var eGui = this.getGui();\n var menuList = this.createBean(new agGridCommunity.AgMenuList());\n var menuItemsMapped = this.getMappedMenuItems();\n var hideFunc = function () { };\n eGui.appendChild(menuList.getGui());\n menuList.addMenuItems(menuItemsMapped);\n menuList.addManagedListener(menuList, agGridCommunity.AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function () {\n _this.parentEl.focus();\n hideFunc();\n });\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eGui,\n closeOnEsc: true,\n afterGuiAttached: function () { return _this.focusService.focusInto(menuList.getGui()); },\n ariaLabel: 'Foo',\n closedCallback: function (e) {\n if (e instanceof KeyboardEvent) {\n _this.parentEl.focus();\n }\n _this.destroyBean(menuList);\n }\n });\n if (addPopupRes) {\n hideFunc = addPopupRes.hideFunc;\n }\n this.popupService.positionPopupUnderMouseEvent({\n type: 'columnContextMenu',\n mouseEvent: this.mouseEvent,\n ePopup: eGui\n });\n };\n ToolPanelContextMenu.prototype.isActive = function () {\n return this.allowGrouping || this.allowValues || this.allowPivoting;\n };\n ToolPanelContextMenu.prototype.getMappedMenuItems = function () {\n var e_1, _a;\n var ret = [];\n var _loop_1 = function (val) {\n var isInactive = this_1.columns.some(function (col) { return val.allowedFunction(col) && !val.activeFunction(col); });\n var isActive = this_1.columns.some(function (col) { return val.allowedFunction(col) && val.activeFunction(col); });\n if (isInactive) {\n ret.push({\n name: val.activateLabel(this_1.displayName),\n icon: agGridCommunity._.createIconNoSpan(val.addIcon, this_1.gridOptionsWrapper, null),\n action: function () { return val.activateFunction(); }\n });\n }\n if (isActive) {\n ret.push({\n name: val.deactivateLabel(this_1.displayName),\n icon: agGridCommunity._.createIconNoSpan(val.removeIcon, this_1.gridOptionsWrapper, null),\n action: function () { return val.deActivateFunction(); }\n });\n }\n };\n var this_1 = this;\n try {\n for (var _b = __values(this.menuItemMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var val = _c.value;\n _loop_1(val);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return ret;\n };\n __decorate$4([\n agGridCommunity.Autowired('columnModel')\n ], ToolPanelContextMenu.prototype, \"columnModel\", void 0);\n __decorate$4([\n agGridCommunity.Autowired('popupService')\n ], ToolPanelContextMenu.prototype, \"popupService\", void 0);\n __decorate$4([\n agGridCommunity.Autowired('focusService')\n ], ToolPanelContextMenu.prototype, \"focusService\", void 0);\n __decorate$4([\n agGridCommunity.PostConstruct\n ], ToolPanelContextMenu.prototype, \"postConstruct\", null);\n return ToolPanelContextMenu;\n}(agGridCommunity.Component));\n\nvar __extends$5 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColumnGroupComp = /** @class */ (function (_super) {\n __extends$5(ToolPanelColumnGroupComp, _super);\n function ToolPanelColumnGroupComp(modelItem, allowDragging, eventType, focusWrapper) {\n var _this = _super.call(this) || this;\n _this.modelItem = modelItem;\n _this.allowDragging = allowDragging;\n _this.eventType = eventType;\n _this.focusWrapper = focusWrapper;\n _this.processingColumnStateChange = false;\n _this.modelItem = modelItem;\n _this.columnGroup = modelItem.getColumnGroup();\n _this.columnDept = modelItem.getDept();\n _this.allowDragging = allowDragging;\n return _this;\n }\n ToolPanelColumnGroupComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(ToolPanelColumnGroupComp.TEMPLATE);\n this.eDragHandle = agGridCommunity._.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n this.eDragHandle.classList.add('ag-drag-handle', 'ag-column-select-column-group-drag-handle');\n var checkboxGui = this.cbSelect.getGui();\n var checkboxInput = this.cbSelect.getInputElement();\n checkboxGui.insertAdjacentElement('afterend', this.eDragHandle);\n checkboxInput.setAttribute('tabindex', '-1');\n this.displayName = this.columnModel.getDisplayNameForProvidedColumnGroup(null, this.columnGroup, this.eventType);\n if (agGridCommunity._.missing(this.displayName)) {\n this.displayName = '>>';\n }\n this.eLabel.innerHTML = this.displayName ? this.displayName : '';\n this.setupExpandContract();\n this.addCssClass('ag-column-select-indent-' + this.columnDept);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.addManagedListener(this.cbSelect, agGridCommunity.AgCheckbox.EVENT_CHANGED, this.onCheckboxChanged.bind(this));\n this.addManagedListener(this.modelItem, ColumnModelItem.EVENT_EXPANDED_CHANGED, this.onExpandChanged.bind(this));\n this.addManagedListener(this.focusWrapper, 'keydown', this.handleKeyDown.bind(this));\n this.addManagedListener(this.focusWrapper, 'contextmenu', this.onContextMenu.bind(this));\n this.setOpenClosedIcons();\n this.setupDragging();\n this.onColumnStateChanged();\n this.addVisibilityListenersToAllChildren();\n this.refreshAriaExpanded();\n this.refreshAriaLabel();\n this.setupTooltip();\n var classes = agGridCommunity.CssClassApplier.getToolPanelClassesFromColDef(this.columnGroup.getColGroupDef(), this.gridOptionsWrapper, null, this.columnGroup);\n classes.forEach(function (c) { return _this.addOrRemoveCssClass(c, true); });\n };\n ToolPanelColumnGroupComp.prototype.getColumns = function () {\n return this.columnGroup.getLeafColumns();\n };\n ToolPanelColumnGroupComp.prototype.setupTooltip = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n if (!colGroupDef) {\n return;\n }\n var refresh = function () {\n var newTooltipText = colGroupDef.headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelColumnGroupComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'columnToolPanelColumnGroup';\n return res;\n };\n ToolPanelColumnGroupComp.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case agGridCommunity.KeyCode.LEFT:\n e.preventDefault();\n this.modelItem.setExpanded(false);\n break;\n case agGridCommunity.KeyCode.RIGHT:\n e.preventDefault();\n this.modelItem.setExpanded(true);\n break;\n case agGridCommunity.KeyCode.SPACE:\n e.preventDefault();\n if (this.isSelectable()) {\n this.onSelectAllChanged(!this.isSelected());\n }\n break;\n }\n };\n ToolPanelColumnGroupComp.prototype.onContextMenu = function (e) {\n var _this = this;\n var _a = this, columnGroup = _a.columnGroup, gridOptionsWrapper = _a.gridOptionsWrapper;\n if (gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var contextMenu = this.createBean(new ToolPanelContextMenu(columnGroup, e, this.focusWrapper));\n this.addDestroyFunc(function () {\n if (contextMenu.isAlive()) {\n _this.destroyBean(contextMenu);\n }\n });\n };\n ToolPanelColumnGroupComp.prototype.addVisibilityListenersToAllChildren = function () {\n var _this = this;\n this.columnGroup.getLeafColumns().forEach(function (column) {\n _this.addManagedListener(column, agGridCommunity.Column.EVENT_VISIBLE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, agGridCommunity.Column.EVENT_VALUE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, agGridCommunity.Column.EVENT_PIVOT_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, agGridCommunity.Column.EVENT_ROW_GROUP_CHANGED, _this.onColumnStateChanged.bind(_this));\n });\n };\n ToolPanelColumnGroupComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n agGridCommunity._.setDisplayed(this.eDragHandle, false);\n return;\n }\n var dragSource = {\n type: agGridCommunity.DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n getDragItem: function () { return _this.createDragItem(); },\n onDragStarted: function () {\n var event = {\n type: agGridCommunity.Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n column: _this.columnGroup\n };\n _this.eventService.dispatchEvent(event);\n },\n onDragStopped: function () {\n var event = {\n type: agGridCommunity.Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END\n };\n _this.eventService.dispatchEvent(event);\n }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnGroupComp.prototype.createDragItem = function () {\n var visibleState = {};\n this.columnGroup.getLeafColumns().forEach(function (col) {\n visibleState[col.getId()] = col.isVisible();\n });\n return {\n columns: this.columnGroup.getLeafColumns(),\n visibleState: visibleState\n };\n };\n ToolPanelColumnGroupComp.prototype.setupExpandContract = function () {\n this.eGroupClosedIcon.appendChild(agGridCommunity._.createIcon('columnSelectClosed', this.gridOptionsWrapper, null));\n this.eGroupOpenedIcon.appendChild(agGridCommunity._.createIcon('columnSelectOpen', this.gridOptionsWrapper, null));\n this.addManagedListener(this.eGroupClosedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n this.addManagedListener(this.eGroupOpenedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n var touchListener = new agGridCommunity.TouchListener(this.eColumnGroupIcons, true);\n this.addManagedListener(touchListener, agGridCommunity.TouchListener.EVENT_TAP, this.onExpandOrContractClicked.bind(this));\n this.addDestroyFunc(touchListener.destroy.bind(touchListener));\n };\n ToolPanelColumnGroupComp.prototype.onLabelClicked = function () {\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnGroupComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnGroupComp.prototype.getVisibleLeafColumns = function () {\n var childColumns = [];\n var extractCols = function (children) {\n children.forEach(function (child) {\n if (!child.isPassesFilter()) {\n return;\n }\n if (child.isGroup()) {\n extractCols(child.getChildren());\n }\n else {\n childColumns.push(child.getColumn());\n }\n });\n };\n extractCols(this.modelItem.getChildren());\n return childColumns;\n };\n ToolPanelColumnGroupComp.prototype.onChangeCommon = function (nextState) {\n this.refreshAriaLabel();\n if (this.processingColumnStateChange) {\n return;\n }\n this.modelItemUtils.selectAllChildren(this.modelItem.getChildren(), nextState, this.eventType);\n };\n ToolPanelColumnGroupComp.prototype.refreshAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnLabel = translate('ariaColumnGroup', 'Column Group');\n var state = this.cbSelect.getValue() ? translate('ariaVisible', 'visible') : translate('ariaHidden', 'hidden');\n var visibilityLabel = translate('ariaToggleVisibility', 'Press SPACE to toggle visibility');\n agGridCommunity._.setAriaLabel(this.focusWrapper, this.displayName + \" \" + columnLabel);\n this.cbSelect.setInputAriaLabel(visibilityLabel + \" (\" + state + \")\");\n agGridCommunity._.setAriaDescribedBy(this.focusWrapper, this.cbSelect.getInputElement().id);\n };\n ToolPanelColumnGroupComp.prototype.onColumnStateChanged = function () {\n var selectedValue = this.workOutSelectedValue();\n var readOnlyValue = this.workOutReadOnlyValue();\n this.processingColumnStateChange = true;\n this.cbSelect.setValue(selectedValue);\n this.cbSelect.setReadOnly(readOnlyValue);\n this.addOrRemoveCssClass('ag-column-select-column-group-readonly', readOnlyValue);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnGroupComp.prototype.workOutSelectedValue = function () {\n var _this = this;\n var pivotMode = this.columnModel.isPivotMode();\n var visibleLeafColumns = this.getVisibleLeafColumns();\n var checkedCount = 0;\n var uncheckedCount = 0;\n visibleLeafColumns.forEach(function (column) {\n if (!pivotMode && column.getColDef().lockVisible) {\n return;\n }\n if (_this.isColumnChecked(column, pivotMode)) {\n checkedCount++;\n }\n else {\n uncheckedCount++;\n }\n });\n if (checkedCount > 0 && uncheckedCount > 0) {\n return undefined;\n }\n return checkedCount > 0;\n };\n ToolPanelColumnGroupComp.prototype.workOutReadOnlyValue = function () {\n var pivotMode = this.columnModel.isPivotMode();\n var colsThatCanAction = 0;\n this.columnGroup.getLeafColumns().forEach(function (col) {\n if (pivotMode) {\n if (col.isAnyFunctionAllowed()) {\n colsThatCanAction++;\n }\n }\n else {\n if (!col.getColDef().lockVisible) {\n colsThatCanAction++;\n }\n }\n });\n return colsThatCanAction === 0;\n };\n ToolPanelColumnGroupComp.prototype.isColumnChecked = function (column, pivotMode) {\n if (pivotMode) {\n var pivoted = column.isPivotActive();\n var grouped = column.isRowGroupActive();\n var aggregated = column.isValueActive();\n return pivoted || grouped || aggregated;\n }\n return column.isVisible();\n };\n ToolPanelColumnGroupComp.prototype.onExpandOrContractClicked = function () {\n var oldState = this.modelItem.isExpanded();\n this.modelItem.setExpanded(!oldState);\n };\n ToolPanelColumnGroupComp.prototype.onExpandChanged = function () {\n this.setOpenClosedIcons();\n this.refreshAriaExpanded();\n };\n ToolPanelColumnGroupComp.prototype.setOpenClosedIcons = function () {\n var folderOpen = this.modelItem.isExpanded();\n agGridCommunity._.setDisplayed(this.eGroupClosedIcon, !folderOpen);\n agGridCommunity._.setDisplayed(this.eGroupOpenedIcon, folderOpen);\n };\n ToolPanelColumnGroupComp.prototype.refreshAriaExpanded = function () {\n agGridCommunity._.setAriaExpanded(this.focusWrapper, this.modelItem.isExpanded());\n };\n ToolPanelColumnGroupComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnGroupComp.prototype.onSelectAllChanged = function (value) {\n var cbValue = this.cbSelect.getValue();\n var readOnly = this.cbSelect.isReadOnly();\n if (!readOnly && ((value && !cbValue) || (!value && cbValue))) {\n this.cbSelect.toggle();\n }\n };\n ToolPanelColumnGroupComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnGroupComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnGroupComp.prototype.setSelected = function (selected) {\n this.cbSelect.setValue(selected, true);\n };\n ToolPanelColumnGroupComp.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$5([\n agGridCommunity.Autowired('columnModel')\n ], ToolPanelColumnGroupComp.prototype, \"columnModel\", void 0);\n __decorate$5([\n agGridCommunity.Autowired('dragAndDropService')\n ], ToolPanelColumnGroupComp.prototype, \"dragAndDropService\", void 0);\n __decorate$5([\n agGridCommunity.Autowired('modelItemUtils')\n ], ToolPanelColumnGroupComp.prototype, \"modelItemUtils\", void 0);\n __decorate$5([\n agGridCommunity.RefSelector('cbSelect')\n ], ToolPanelColumnGroupComp.prototype, \"cbSelect\", void 0);\n __decorate$5([\n agGridCommunity.RefSelector('eLabel')\n ], ToolPanelColumnGroupComp.prototype, \"eLabel\", void 0);\n __decorate$5([\n agGridCommunity.RefSelector('eGroupOpenedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$5([\n agGridCommunity.RefSelector('eGroupClosedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$5([\n agGridCommunity.RefSelector('eColumnGroupIcons')\n ], ToolPanelColumnGroupComp.prototype, \"eColumnGroupIcons\", void 0);\n __decorate$5([\n agGridCommunity.PostConstruct\n ], ToolPanelColumnGroupComp.prototype, \"init\", null);\n return ToolPanelColumnGroupComp;\n}(agGridCommunity.Component));\n\nvar __extends$6 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PRIMARY_COLS_LIST_ITEM_HOVERED = 'ag-list-item-hovered';\nvar PrimaryColsListPanelItemDragFeature = /** @class */ (function (_super) {\n __extends$6(PrimaryColsListPanelItemDragFeature, _super);\n function PrimaryColsListPanelItemDragFeature(comp, virtualList) {\n var _this = _super.call(this) || this;\n _this.comp = comp;\n _this.virtualList = virtualList;\n _this.currentDragColumn = null;\n _this.lastHoveredColumnItem = null;\n return _this;\n }\n PrimaryColsListPanelItemDragFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START, this.columnPanelItemDragStart.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END, this.columnPanelItemDragEnd.bind(this));\n this.createDropTarget();\n this.createAutoScrollService();\n };\n PrimaryColsListPanelItemDragFeature.prototype.columnPanelItemDragStart = function (_a) {\n var column = _a.column;\n this.currentDragColumn = column;\n var currentColumns = this.getCurrentColumns();\n var hasNotMovable = currentColumns.find(function (col) {\n var colDef = col.getColDef();\n return !!colDef.suppressMovable || !!colDef.lockPosition;\n });\n if (hasNotMovable) {\n this.moveBlocked = true;\n }\n };\n PrimaryColsListPanelItemDragFeature.prototype.columnPanelItemDragEnd = function () {\n var _this = this;\n window.setTimeout(function () {\n _this.currentDragColumn = null;\n _this.moveBlocked = false;\n }, 10);\n };\n PrimaryColsListPanelItemDragFeature.prototype.createDropTarget = function () {\n var _this = this;\n var dropTarget = {\n isInterestedIn: function (type) { return type === agGridCommunity.DragSourceType.ToolPanel; },\n getIconName: function () { return agGridCommunity.DragAndDropService[_this.moveBlocked ? 'ICON_NOT_ALLOWED' : 'ICON_MOVE']; },\n getContainer: function () { return _this.comp.getGui(); },\n onDragging: function (e) { return _this.onDragging(e); },\n onDragStop: function () { return _this.onDragStop(); },\n onDragLeave: function () { return _this.onDragLeave(); }\n };\n this.dragAndDropService.addDropTarget(dropTarget);\n };\n PrimaryColsListPanelItemDragFeature.prototype.createAutoScrollService = function () {\n var virtualListGui = this.virtualList.getGui();\n this.autoScrollService = new agGridCommunity.AutoScrollService({\n scrollContainer: virtualListGui,\n scrollAxis: 'y',\n getVerticalPosition: function () { return virtualListGui.scrollTop; },\n setVerticalPosition: function (position) { return virtualListGui.scrollTop = position; }\n });\n };\n PrimaryColsListPanelItemDragFeature.prototype.onDragging = function (e) {\n if (!this.currentDragColumn || this.moveBlocked) {\n return;\n }\n var hoveredColumnItem = this.getDragColumnItem(e);\n var comp = this.virtualList.getComponentAt(hoveredColumnItem.rowIndex);\n if (!comp) {\n return;\n }\n var el = comp.getGui().parentElement;\n if (this.lastHoveredColumnItem &&\n this.lastHoveredColumnItem.rowIndex === hoveredColumnItem.rowIndex &&\n this.lastHoveredColumnItem.position === hoveredColumnItem.position) {\n return;\n }\n this.autoScrollService.check(e.event);\n this.clearHoveredItems();\n this.lastHoveredColumnItem = hoveredColumnItem;\n agGridCommunity._.radioCssClass(el, \"\" + PRIMARY_COLS_LIST_ITEM_HOVERED);\n agGridCommunity._.radioCssClass(el, \"ag-item-highlight-\" + hoveredColumnItem.position);\n };\n PrimaryColsListPanelItemDragFeature.prototype.getDragColumnItem = function (e) {\n var virtualListGui = this.virtualList.getGui();\n var paddingTop = parseFloat(window.getComputedStyle(virtualListGui).paddingTop);\n var rowHeight = this.virtualList.getRowHeight();\n var scrollTop = this.virtualList.getScrollTop();\n var rowIndex = Math.max(0, (e.y - paddingTop + scrollTop) / rowHeight);\n var maxLen = this.comp.getDisplayedColsList().length - 1;\n var normalizedRowIndex = Math.min(maxLen, rowIndex) | 0;\n return {\n rowIndex: normalizedRowIndex,\n position: (Math.round(rowIndex) > rowIndex || rowIndex > maxLen) ? 'bottom' : 'top',\n component: this.virtualList.getComponentAt(normalizedRowIndex)\n };\n };\n PrimaryColsListPanelItemDragFeature.prototype.onDragStop = function () {\n if (this.moveBlocked) {\n return;\n }\n var targetIndex = this.getTargetIndex();\n var columnsToMove = this.getCurrentColumns();\n if (targetIndex != null) {\n this.columnModel.moveColumns(columnsToMove, targetIndex);\n }\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n PrimaryColsListPanelItemDragFeature.prototype.getMoveDiff = function (end) {\n var allColumns = this.columnModel.getAllGridColumns();\n var currentColumns = this.getCurrentColumns();\n var currentColumn = currentColumns[0];\n var span = currentColumns.length;\n var currentIndex = allColumns.indexOf(currentColumn);\n if (currentIndex < end) {\n return span;\n }\n return 0;\n };\n PrimaryColsListPanelItemDragFeature.prototype.getCurrentColumns = function () {\n if (this.currentDragColumn instanceof agGridCommunity.ProvidedColumnGroup) {\n return this.currentDragColumn.getLeafColumns();\n }\n return [this.currentDragColumn];\n };\n PrimaryColsListPanelItemDragFeature.prototype.getTargetIndex = function () {\n if (!this.lastHoveredColumnItem) {\n return null;\n }\n var columnItemComponent = this.lastHoveredColumnItem.component;\n var isBefore = this.lastHoveredColumnItem.position === 'top';\n var targetColumn;\n if (columnItemComponent instanceof ToolPanelColumnGroupComp) {\n var columns = columnItemComponent.getColumns();\n targetColumn = columns[0];\n isBefore = true;\n }\n else {\n targetColumn = columnItemComponent.getColumn();\n }\n var targetColumnIndex = this.columnModel.getAllGridColumns().indexOf(targetColumn);\n var adjustedTarget = isBefore ? targetColumnIndex : targetColumnIndex + 1;\n var diff = this.getMoveDiff(adjustedTarget);\n return adjustedTarget - diff;\n };\n PrimaryColsListPanelItemDragFeature.prototype.onDragLeave = function () {\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n PrimaryColsListPanelItemDragFeature.prototype.clearHoveredItems = function () {\n var virtualListGui = this.virtualList.getGui();\n virtualListGui.querySelectorAll(\".\" + PRIMARY_COLS_LIST_ITEM_HOVERED).forEach(function (el) {\n [\n PRIMARY_COLS_LIST_ITEM_HOVERED,\n 'ag-item-highlight-top',\n 'ag-item-highlight-bottom'\n ].forEach(function (cls) {\n el.classList.remove(cls);\n });\n });\n this.lastHoveredColumnItem = null;\n };\n __decorate$6([\n agGridCommunity.Autowired('columnModel')\n ], PrimaryColsListPanelItemDragFeature.prototype, \"columnModel\", void 0);\n __decorate$6([\n agGridCommunity.Autowired('dragAndDropService')\n ], PrimaryColsListPanelItemDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$6([\n agGridCommunity.PostConstruct\n ], PrimaryColsListPanelItemDragFeature.prototype, \"postConstruct\", null);\n return PrimaryColsListPanelItemDragFeature;\n}(agGridCommunity.BeanStub));\n\nvar __extends$7 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColumnComp = /** @class */ (function (_super) {\n __extends$7(ToolPanelColumnComp, _super);\n function ToolPanelColumnComp(column, columnDept, allowDragging, groupsExist, focusWrapper) {\n var _this = _super.call(this) || this;\n _this.column = column;\n _this.columnDept = columnDept;\n _this.allowDragging = allowDragging;\n _this.groupsExist = groupsExist;\n _this.focusWrapper = focusWrapper;\n _this.processingColumnStateChange = false;\n return _this;\n }\n ToolPanelColumnComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(ToolPanelColumnComp.TEMPLATE);\n this.eDragHandle = agGridCommunity._.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n this.eDragHandle.classList.add('ag-drag-handle', 'ag-column-select-column-drag-handle');\n var checkboxGui = this.cbSelect.getGui();\n var checkboxInput = this.cbSelect.getInputElement();\n checkboxGui.insertAdjacentElement('afterend', this.eDragHandle);\n checkboxInput.setAttribute('tabindex', '-1');\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnToolPanel');\n var displayNameSanitised = agGridCommunity._.escapeString(this.displayName);\n this.eLabel.innerHTML = displayNameSanitised;\n // if grouping, we add an extra level of indent, to cater for expand/contract icons we need to indent for\n var indent = this.columnDept;\n if (this.groupsExist) {\n this.addCssClass('ag-column-select-add-group-indent');\n }\n this.addCssClass(\"ag-column-select-indent-\" + indent);\n this.setupDragging();\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, agGridCommunity.Column.EVENT_VALUE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, agGridCommunity.Column.EVENT_PIVOT_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, agGridCommunity.Column.EVENT_ROW_GROUP_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, agGridCommunity.Column.EVENT_VISIBLE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.focusWrapper, 'keydown', this.handleKeyDown.bind(this));\n this.addManagedListener(this.focusWrapper, 'contextmenu', this.onContextMenu.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, 'functionsReadOnly', this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.cbSelect, agGridCommunity.AgCheckbox.EVENT_CHANGED, this.onCheckboxChanged.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.onColumnStateChanged();\n this.refreshAriaLabel();\n this.setupTooltip();\n var classes = agGridCommunity.CssClassApplier.getToolPanelClassesFromColDef(this.column.getColDef(), this.gridOptionsWrapper, this.column, null);\n classes.forEach(function (c) { return _this.addOrRemoveCssClass(c, true); });\n };\n ToolPanelColumnComp.prototype.getColumn = function () {\n return this.column;\n };\n ToolPanelColumnComp.prototype.setupTooltip = function () {\n var _this = this;\n var refresh = function () {\n var newTooltipText = _this.column.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelColumnComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'columnToolPanelColumn';\n res.colDef = this.column.getColDef();\n return res;\n };\n ToolPanelColumnComp.prototype.onContextMenu = function (e) {\n var _this = this;\n var _a = this, column = _a.column, gridOptionsWrapper = _a.gridOptionsWrapper;\n if (gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var contextMenu = this.createBean(new ToolPanelContextMenu(column, e, this.focusWrapper));\n this.addDestroyFunc(function () {\n if (contextMenu.isAlive()) {\n _this.destroyBean(contextMenu);\n }\n });\n };\n ToolPanelColumnComp.prototype.handleKeyDown = function (e) {\n if (e.key === agGridCommunity.KeyCode.SPACE) {\n e.preventDefault();\n if (this.isSelectable()) {\n this.onSelectAllChanged(!this.isSelected());\n }\n }\n };\n ToolPanelColumnComp.prototype.onLabelClicked = function () {\n if (this.gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnComp.prototype.onChangeCommon = function (nextState) {\n // ignore lock visible columns\n if (this.cbSelect.isReadOnly()) {\n return;\n }\n this.refreshAriaLabel();\n // only want to action if the user clicked the checkbox, not if we are setting the checkbox because\n // of a change in the model\n if (this.processingColumnStateChange) {\n return;\n }\n this.modelItemUtils.setColumn(this.column, nextState, 'toolPanelUi');\n };\n ToolPanelColumnComp.prototype.refreshAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnLabel = translate('ariaColumn', 'Column');\n var state = this.cbSelect.getValue() ? translate('ariaVisible', 'visible') : translate('ariaHidden', 'hidden');\n var visibilityLabel = translate('ariaToggleVisibility', 'Press SPACE to toggle visibility');\n agGridCommunity._.setAriaLabel(this.focusWrapper, this.displayName + \" \" + columnLabel);\n this.cbSelect.setInputAriaLabel(visibilityLabel + \" (\" + state + \")\");\n agGridCommunity._.setAriaDescribedBy(this.focusWrapper, this.cbSelect.getInputElement().id);\n };\n ToolPanelColumnComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n agGridCommunity._.setDisplayed(this.eDragHandle, false);\n return;\n }\n var dragSource = {\n type: agGridCommunity.DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n getDragItem: function () { return _this.createDragItem(); },\n onDragStarted: function () {\n var event = {\n type: agGridCommunity.Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n column: _this.column\n };\n _this.eventService.dispatchEvent(event);\n },\n onDragStopped: function () {\n var event = {\n type: agGridCommunity.Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END\n };\n _this.eventService.dispatchEvent(event);\n }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnComp.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n ToolPanelColumnComp.prototype.onColumnStateChanged = function () {\n this.processingColumnStateChange = true;\n var isPivotMode = this.columnModel.isPivotMode();\n if (isPivotMode) {\n // if reducing, checkbox means column is one of pivot, value or group\n var anyFunctionActive = this.column.isAnyFunctionActive();\n this.cbSelect.setValue(anyFunctionActive);\n }\n else {\n // if not reducing, the checkbox tells us if column is visible or not\n this.cbSelect.setValue(this.column.isVisible());\n }\n var canBeToggled = true;\n var canBeDragged = true;\n if (isPivotMode) {\n // when in pivot mode, the item should be read only if:\n // a) gui is not allowed make any changes\n var functionsReadOnly = this.gridOptionsWrapper.isFunctionsReadOnly();\n // b) column is not allow any functions on it\n var noFunctionsAllowed = !this.column.isAnyFunctionAllowed();\n canBeToggled = !functionsReadOnly && !noFunctionsAllowed;\n canBeDragged = canBeToggled;\n }\n else {\n var _a = this.column.getColDef(), enableRowGroup = _a.enableRowGroup, enableValue = _a.enableValue, lockPosition = _a.lockPosition, suppressMovable = _a.suppressMovable, lockVisible = _a.lockVisible;\n var forceDraggable = !!enableRowGroup || !!enableValue;\n var disableDraggable = !!lockPosition || !!suppressMovable;\n canBeToggled = !lockVisible;\n canBeDragged = forceDraggable || !disableDraggable;\n }\n this.cbSelect.setReadOnly(!canBeToggled);\n this.eDragHandle.classList.toggle('ag-column-select-column-readonly', !canBeDragged);\n this.addOrRemoveCssClass('ag-column-select-column-readonly', !canBeDragged && !canBeToggled);\n var checkboxPassive = isPivotMode && this.gridOptionsWrapper.isFunctionsPassive();\n this.cbSelect.setPassive(checkboxPassive);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnComp.prototype.onSelectAllChanged = function (value) {\n if (value !== this.cbSelect.getValue()) {\n if (!this.cbSelect.isReadOnly()) {\n this.cbSelect.toggle();\n }\n }\n };\n ToolPanelColumnComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnComp.prototype.isExpandable = function () {\n return false;\n };\n ToolPanelColumnComp.prototype.setExpanded = function (value) {\n console.warn('AG Grid: can not expand a column item that does not represent a column group header');\n };\n ToolPanelColumnComp.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$7([\n agGridCommunity.Autowired('columnModel')\n ], ToolPanelColumnComp.prototype, \"columnModel\", void 0);\n __decorate$7([\n agGridCommunity.Autowired('dragAndDropService')\n ], ToolPanelColumnComp.prototype, \"dragAndDropService\", void 0);\n __decorate$7([\n agGridCommunity.Autowired('modelItemUtils')\n ], ToolPanelColumnComp.prototype, \"modelItemUtils\", void 0);\n __decorate$7([\n agGridCommunity.RefSelector('eLabel')\n ], ToolPanelColumnComp.prototype, \"eLabel\", void 0);\n __decorate$7([\n agGridCommunity.RefSelector('cbSelect')\n ], ToolPanelColumnComp.prototype, \"cbSelect\", void 0);\n __decorate$7([\n agGridCommunity.PostConstruct\n ], ToolPanelColumnComp.prototype, \"init\", null);\n return ToolPanelColumnComp;\n}(agGridCommunity.Component));\n\nvar __extends$8 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UIColumnModel = /** @class */ (function () {\n function UIColumnModel(items) {\n this.items = items;\n }\n UIColumnModel.prototype.getRowCount = function () {\n return this.items.length;\n };\n UIColumnModel.prototype.getRow = function (index) {\n return this.items[index];\n };\n return UIColumnModel;\n}());\nvar PRIMARY_COLS_LIST_PANEL_CLASS = 'ag-column-select-list';\nvar PrimaryColsListPanel = /** @class */ (function (_super) {\n __extends$8(PrimaryColsListPanel, _super);\n function PrimaryColsListPanel() {\n var _this = _super.call(this, PrimaryColsListPanel.TEMPLATE) || this;\n _this.destroyColumnItemFuncs = [];\n return _this;\n }\n PrimaryColsListPanel.prototype.destroyColumnTree = function () {\n this.allColsTree = [];\n this.destroyColumnItemFuncs.forEach(function (f) { return f(); });\n this.destroyColumnItemFuncs = [];\n };\n PrimaryColsListPanel.prototype.init = function (params, allowDragging, eventType) {\n var _this = this;\n this.params = params;\n this.allowDragging = allowDragging;\n this.eventType = eventType;\n if (!this.params.suppressSyncLayoutWithGrid) {\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_MOVED, this.onColumnsChanged.bind(this));\n }\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnsChanged.bind(this));\n var eventsImpactingCheckedState = [\n agGridCommunity.Events.EVENT_COLUMN_PIVOT_CHANGED,\n agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED,\n agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n agGridCommunity.Events.EVENT_COLUMN_VALUE_CHANGED,\n agGridCommunity.Events.EVENT_COLUMN_VISIBLE,\n agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED\n ];\n eventsImpactingCheckedState.forEach(function (event) {\n // update header select all checkbox with current selection state\n _this.addManagedListener(_this.eventService, event, _this.fireSelectionChangedEvent.bind(_this));\n });\n this.expandGroupsByDefault = !this.params.contractColumnSelection;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnListName = translate('ariaColumnList', 'Column List');\n this.virtualList = this.createManagedBean(new agGridCommunity.VirtualList('column-select', 'tree', columnListName));\n this.appendChild(this.virtualList.getGui());\n this.virtualList.setComponentCreator(function (item, listItemElement) {\n agGridCommunity._.setAriaLevel(listItemElement, (item.getDept() + 1));\n return _this.createComponentFromItem(item, listItemElement);\n });\n if (this.columnModel.isReady()) {\n this.onColumnsChanged();\n }\n if (!params.suppressColumnMove && !this.gridOptionsWrapper.isSuppressMovableColumns()) {\n this.createManagedBean(new PrimaryColsListPanelItemDragFeature(this, this.virtualList));\n }\n };\n PrimaryColsListPanel.prototype.createComponentFromItem = function (item, listItemElement) {\n if (item.isGroup()) {\n var renderedGroup = new ToolPanelColumnGroupComp(item, this.allowDragging, this.eventType, listItemElement);\n this.getContext().createBean(renderedGroup);\n return renderedGroup;\n }\n var columnComp = new ToolPanelColumnComp(item.getColumn(), item.getDept(), this.allowDragging, this.groupsExist, listItemElement);\n this.getContext().createBean(columnComp);\n return columnComp;\n };\n PrimaryColsListPanel.prototype.onColumnsChanged = function () {\n var expandedStates = this.getExpandedStates();\n var pivotModeActive = this.columnModel.isPivotMode();\n var shouldSyncColumnLayoutWithGrid = !this.params.suppressSyncLayoutWithGrid && !pivotModeActive;\n if (shouldSyncColumnLayoutWithGrid) {\n this.buildTreeFromWhatGridIsDisplaying();\n }\n else {\n this.buildTreeFromProvidedColumnDefs();\n }\n this.setExpandedStates(expandedStates);\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.getDisplayedColsList = function () {\n return this.displayedColsList;\n };\n PrimaryColsListPanel.prototype.getExpandedStates = function () {\n if (!this.allColsTree) {\n return {};\n }\n var res = {};\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var colGroup = item.getColumnGroup();\n if (colGroup) { // group should always exist, this is defensive\n res[colGroup.getId()] = item.isExpanded();\n }\n });\n return res;\n };\n PrimaryColsListPanel.prototype.setExpandedStates = function (states) {\n if (!this.allColsTree) {\n return;\n }\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var colGroup = item.getColumnGroup();\n if (colGroup) { // group should always exist, this is defensive\n var expanded = states[colGroup.getId()];\n var groupExistedLastTime = expanded != null;\n if (groupExistedLastTime) {\n item.setExpanded(expanded);\n }\n }\n });\n };\n PrimaryColsListPanel.prototype.buildTreeFromWhatGridIsDisplaying = function () {\n this.colDefService.syncLayoutWithGrid(this.setColumnLayout.bind(this));\n };\n PrimaryColsListPanel.prototype.setColumnLayout = function (colDefs) {\n var columnTree = this.colDefService.createColumnTree(colDefs);\n this.buildListModel(columnTree);\n // using col defs to check if groups exist as it could be a custom layout\n this.groupsExist = colDefs.some(function (colDef) {\n return colDef && typeof colDef.children !== 'undefined';\n });\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.buildTreeFromProvidedColumnDefs = function () {\n // add column / group comps to tool panel\n this.buildListModel(this.columnModel.getPrimaryColumnTree());\n this.groupsExist = this.columnModel.isPrimaryColumnGroupsPresent();\n };\n PrimaryColsListPanel.prototype.buildListModel = function (columnTree) {\n var _this = this;\n var columnExpandedListener = this.onColumnExpanded.bind(this);\n var addListeners = function (item) {\n item.addEventListener(ColumnModelItem.EVENT_EXPANDED_CHANGED, columnExpandedListener);\n var removeFunc = item.removeEventListener.bind(item, ColumnModelItem.EVENT_EXPANDED_CHANGED, columnExpandedListener);\n _this.destroyColumnItemFuncs.push(removeFunc);\n };\n var recursivelyBuild = function (tree, dept, parentList) {\n tree.forEach(function (child) {\n if (child instanceof agGridCommunity.ProvidedColumnGroup) {\n createGroupItem(child, dept, parentList);\n }\n else {\n createColumnItem(child, dept, parentList);\n }\n });\n };\n var createGroupItem = function (columnGroup, dept, parentList) {\n var columnGroupDef = columnGroup.getColGroupDef();\n var skipThisGroup = columnGroupDef && columnGroupDef.suppressColumnsToolPanel;\n if (skipThisGroup) {\n return;\n }\n if (columnGroup.isPadding()) {\n recursivelyBuild(columnGroup.getChildren(), dept, parentList);\n return;\n }\n var displayName = _this.columnModel.getDisplayNameForProvidedColumnGroup(null, columnGroup, _this.eventType);\n var item = new ColumnModelItem(displayName, columnGroup, dept, true, _this.expandGroupsByDefault);\n parentList.push(item);\n addListeners(item);\n recursivelyBuild(columnGroup.getChildren(), dept + 1, item.getChildren());\n };\n var createColumnItem = function (column, dept, parentList) {\n var skipThisColumn = column.getColDef() && column.getColDef().suppressColumnsToolPanel;\n if (skipThisColumn) {\n return;\n }\n var displayName = _this.columnModel.getDisplayNameForColumn(column, 'columnToolPanel');\n parentList.push(new ColumnModelItem(displayName, column, dept));\n };\n this.destroyColumnTree();\n recursivelyBuild(columnTree, 0, this.allColsTree);\n };\n PrimaryColsListPanel.prototype.onColumnExpanded = function () {\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.flattenAndFilterModel = function () {\n var _this = this;\n this.displayedColsList = [];\n var recursiveFunc = function (item) {\n if (!item.isPassesFilter()) {\n return;\n }\n _this.displayedColsList.push(item);\n if (item.isGroup() && item.isExpanded()) {\n item.getChildren().forEach(recursiveFunc);\n }\n };\n this.allColsTree.forEach(recursiveFunc);\n this.virtualList.setModel(new UIColumnModel(this.displayedColsList));\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.virtualList.refresh();\n if (focusedRow != null) {\n this.focusRowIfAlive(focusedRow);\n }\n this.notifyListeners();\n };\n PrimaryColsListPanel.prototype.focusRowIfAlive = function (rowIndex) {\n var _this = this;\n window.setTimeout(function () {\n if (_this.isAlive()) {\n _this.virtualList.focusRow(rowIndex);\n }\n }, 0);\n };\n PrimaryColsListPanel.prototype.forEachItem = function (callback) {\n var recursiveFunc = function (items) {\n items.forEach(function (item) {\n callback(item);\n if (item.isGroup()) {\n recursiveFunc(item.getChildren());\n }\n });\n };\n recursiveFunc(this.allColsTree);\n };\n PrimaryColsListPanel.prototype.doSetExpandedAll = function (value) {\n this.forEachItem(function (item) {\n if (item.isGroup()) {\n item.setExpanded(value);\n }\n });\n };\n PrimaryColsListPanel.prototype.setGroupsExpanded = function (expand, groupIds) {\n if (!groupIds) {\n this.doSetExpandedAll(expand);\n return;\n }\n var expandedGroupIds = [];\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var groupId = item.getColumnGroup().getId();\n if (groupIds.indexOf(groupId) >= 0) {\n item.setExpanded(expand);\n expandedGroupIds.push(groupId);\n }\n });\n var unrecognisedGroupIds = groupIds.filter(function (groupId) { return !agGridCommunity._.includes(expandedGroupIds, groupId); });\n if (unrecognisedGroupIds.length > 0) {\n console.warn('AG Grid: unable to find group(s) for supplied groupIds:', unrecognisedGroupIds);\n }\n };\n PrimaryColsListPanel.prototype.getExpandState = function () {\n var expandedCount = 0;\n var notExpandedCount = 0;\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n if (item.isExpanded()) {\n expandedCount++;\n }\n else {\n notExpandedCount++;\n }\n });\n if (expandedCount > 0 && notExpandedCount > 0) {\n return ExpandState.INDETERMINATE;\n }\n if (notExpandedCount > 0) {\n return ExpandState.COLLAPSED;\n }\n return ExpandState.EXPANDED;\n };\n PrimaryColsListPanel.prototype.doSetSelectedAll = function (selectAllChecked) {\n this.modelItemUtils.selectAllChildren(this.allColsTree, selectAllChecked, this.eventType);\n };\n PrimaryColsListPanel.prototype.getSelectionState = function () {\n var checkedCount = 0;\n var uncheckedCount = 0;\n var pivotMode = this.columnModel.isPivotMode();\n this.forEachItem(function (item) {\n if (item.isGroup()) {\n return;\n }\n if (!item.isPassesFilter()) {\n return;\n }\n var column = item.getColumn();\n var colDef = column.getColDef();\n var checked;\n if (pivotMode) {\n var noPivotModeOptionsAllowed = !column.isAllowPivot() && !column.isAllowRowGroup() && !column.isAllowValue();\n if (noPivotModeOptionsAllowed) {\n return;\n }\n checked = column.isValueActive() || column.isPivotActive() || column.isRowGroupActive();\n }\n else {\n if (colDef.lockVisible) {\n return;\n }\n checked = column.isVisible();\n }\n checked ? checkedCount++ : uncheckedCount++;\n });\n if (checkedCount > 0 && uncheckedCount > 0) {\n return undefined;\n }\n return !(checkedCount === 0 || uncheckedCount > 0);\n };\n PrimaryColsListPanel.prototype.setFilterText = function (filterText) {\n this.filterText = agGridCommunity._.exists(filterText) ? filterText.toLowerCase() : null;\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.markFilteredColumns = function () {\n var _this = this;\n var passesFilter = function (item) {\n if (!agGridCommunity._.exists(_this.filterText)) {\n return true;\n }\n var displayName = item.getDisplayName();\n return displayName == null || displayName.toLowerCase().indexOf(_this.filterText) !== -1;\n };\n var recursivelyCheckFilter = function (item, parentPasses) {\n var atLeastOneChildPassed = false;\n if (item.isGroup()) {\n var groupPasses_1 = passesFilter(item);\n item.getChildren().forEach(function (child) {\n var childPasses = recursivelyCheckFilter(child, groupPasses_1 || parentPasses);\n if (childPasses) {\n atLeastOneChildPassed = childPasses;\n }\n });\n }\n var filterPasses = (parentPasses || atLeastOneChildPassed) ? true : passesFilter(item);\n item.setPassesFilter(filterPasses);\n return filterPasses;\n };\n this.allColsTree.forEach(function (item) { return recursivelyCheckFilter(item, false); });\n };\n PrimaryColsListPanel.prototype.notifyListeners = function () {\n this.fireGroupExpandedEvent();\n this.fireSelectionChangedEvent();\n };\n PrimaryColsListPanel.prototype.fireGroupExpandedEvent = function () {\n var expandState = this.getExpandState();\n this.dispatchEvent({ type: 'groupExpanded', state: expandState });\n };\n PrimaryColsListPanel.prototype.fireSelectionChangedEvent = function () {\n var selectionState = this.getSelectionState();\n this.dispatchEvent({ type: 'selectionChanged', state: selectionState });\n };\n PrimaryColsListPanel.TEMPLATE = \"
\";\n __decorate$8([\n agGridCommunity.Autowired('columnModel')\n ], PrimaryColsListPanel.prototype, \"columnModel\", void 0);\n __decorate$8([\n agGridCommunity.Autowired('toolPanelColDefService')\n ], PrimaryColsListPanel.prototype, \"colDefService\", void 0);\n __decorate$8([\n agGridCommunity.Autowired('modelItemUtils')\n ], PrimaryColsListPanel.prototype, \"modelItemUtils\", void 0);\n __decorate$8([\n agGridCommunity.PreDestroy\n ], PrimaryColsListPanel.prototype, \"destroyColumnTree\", null);\n return PrimaryColsListPanel;\n}(agGridCommunity.Component));\n\nvar __extends$9 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotModePanel = /** @class */ (function (_super) {\n __extends$9(PivotModePanel, _super);\n function PivotModePanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PivotModePanel.prototype.createTemplate = function () {\n return /* html */ \"
\\n \\n
\";\n };\n PivotModePanel.prototype.init = function () {\n this.setTemplate(this.createTemplate());\n this.cbPivotMode.setValue(this.columnModel.isPivotMode());\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.cbPivotMode.setLabel(localeTextFunc('pivotMode', 'Pivot Mode'));\n this.addManagedListener(this.cbPivotMode, agGridCommunity.AgCheckbox.EVENT_CHANGED, this.onBtPivotMode.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.onPivotModeChanged.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n };\n PivotModePanel.prototype.onBtPivotMode = function () {\n var newValue = !!this.cbPivotMode.getValue();\n if (newValue !== this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(newValue, \"toolPanelUi\");\n var api = this.gridOptionsWrapper.getApi();\n if (api) {\n api.refreshHeader();\n }\n }\n };\n PivotModePanel.prototype.onPivotModeChanged = function () {\n var pivotModeActive = this.columnModel.isPivotMode();\n this.cbPivotMode.setValue(pivotModeActive);\n };\n __decorate$9([\n agGridCommunity.Autowired('columnModel')\n ], PivotModePanel.prototype, \"columnModel\", void 0);\n __decorate$9([\n agGridCommunity.RefSelector('cbPivotMode')\n ], PivotModePanel.prototype, \"cbPivotMode\", void 0);\n __decorate$9([\n agGridCommunity.PreConstruct\n ], PivotModePanel.prototype, \"init\", null);\n return PivotModePanel;\n}(agGridCommunity.Component));\n\nvar __extends$a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AggregationStage = /** @class */ (function (_super) {\n __extends$a(AggregationStage, _super);\n function AggregationStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // it's possible to recompute the aggregate without doing the other parts\n // + gridApi.recomputeAggregates()\n AggregationStage.prototype.execute = function (params) {\n // if changed path is active, it means we came from a) change detection or b) transaction update.\n // for both of these, if no value columns are present, it means there is nothing to aggregate now\n // and there is no cleanup to be done (as value columns don't change between transactions or change\n // detections). if no value columns and no changed path, means we have to go through all nodes in\n // case we need to clean up agg data from before.\n var noValueColumns = agGridCommunity._.missingOrEmpty(this.columnModel.getValueColumns());\n var noUserAgg = !this.gridOptionsWrapper.getGroupRowAggFunc();\n var changedPathActive = params.changedPath && params.changedPath.isActive();\n if (noValueColumns && noUserAgg && changedPathActive) {\n return;\n }\n var aggDetails = this.createAggDetails(params);\n this.recursivelyCreateAggData(aggDetails);\n };\n AggregationStage.prototype.createAggDetails = function (params) {\n var pivotActive = this.columnModel.isPivotActive();\n var measureColumns = this.columnModel.getValueColumns();\n var pivotColumns = pivotActive ? this.columnModel.getPivotColumns() : [];\n var aggDetails = {\n changedPath: params.changedPath,\n valueColumns: measureColumns,\n pivotColumns: pivotColumns\n };\n return aggDetails;\n };\n AggregationStage.prototype.recursivelyCreateAggData = function (aggDetails) {\n var _this = this;\n // update prop, in case changed since last time\n this.filteredOnly = !this.gridOptionsWrapper.isSuppressAggFilteredOnly();\n var callback = function (rowNode) {\n var hasNoChildren = !rowNode.hasChildren();\n if (hasNoChildren) {\n // this check is needed for TreeData, in case the node is no longer a child,\n // but it was a child previously.\n if (rowNode.aggData) {\n rowNode.setAggData(null);\n }\n // never agg data for leaf nodes\n return;\n }\n //Optionally prevent the aggregation at the root Node\n //https://ag-grid.atlassian.net/browse/AG-388\n var isRootNode = rowNode.level === -1;\n if (isRootNode) {\n var notPivoting = !_this.columnModel.isPivotMode();\n var suppressAggAtRootLevel = _this.gridOptionsWrapper.isSuppressAggAtRootLevel();\n if (suppressAggAtRootLevel && notPivoting) {\n return;\n }\n }\n _this.aggregateRowNode(rowNode, aggDetails);\n };\n aggDetails.changedPath.forEachChangedNodeDepthFirst(callback, true);\n };\n AggregationStage.prototype.aggregateRowNode = function (rowNode, aggDetails) {\n var measureColumnsMissing = aggDetails.valueColumns.length === 0;\n var pivotColumnsMissing = aggDetails.pivotColumns.length === 0;\n var userFunc = this.gridOptionsWrapper.getGroupRowAggFunc();\n var aggResult;\n if (userFunc) {\n var params = { nodes: rowNode.childrenAfterFilter };\n aggResult = userFunc(params);\n }\n else if (measureColumnsMissing) {\n aggResult = null;\n }\n else if (pivotColumnsMissing) {\n aggResult = this.aggregateRowNodeUsingValuesOnly(rowNode, aggDetails);\n }\n else {\n aggResult = this.aggregateRowNodeUsingValuesAndPivot(rowNode);\n }\n rowNode.setAggData(aggResult);\n // if we are grouping, then it's possible there is a sibling footer\n // to the group, so update the data here also if there is one\n if (rowNode.sibling) {\n rowNode.sibling.setAggData(aggResult);\n }\n };\n AggregationStage.prototype.aggregateRowNodeUsingValuesAndPivot = function (rowNode) {\n var _this = this;\n var result = {};\n var pivotColumnDefs = this.pivotStage.getPivotColumnDefs();\n // Step 1: process value columns\n pivotColumnDefs\n .filter(function (v) { return !agGridCommunity._.exists(v.pivotTotalColumnIds); }) // only process pivot value columns\n .forEach(function (valueColDef) {\n var keys = valueColDef.pivotKeys || [];\n var values;\n var valueColumn = valueColDef.pivotValueColumn;\n var colId = valueColDef.colId;\n if (rowNode.leafGroup) {\n // lowest level group, get the values from the mapped set\n values = _this.getValuesFromMappedSet(rowNode.childrenMapped, keys, valueColumn);\n }\n else {\n // value columns and pivot columns, non-leaf group\n values = _this.getValuesPivotNonLeaf(rowNode, colId);\n }\n result[colId] = _this.aggregateValues(values, valueColumn.getAggFunc(), valueColumn, rowNode);\n });\n // Step 2: process total columns\n pivotColumnDefs\n .filter(function (v) { return agGridCommunity._.exists(v.pivotTotalColumnIds); }) // only process pivot total columns\n .forEach(function (totalColDef) {\n var aggResults = [];\n var pivotValueColumn = totalColDef.pivotValueColumn, pivotTotalColumnIds = totalColDef.pivotTotalColumnIds, colId = totalColDef.colId;\n //retrieve results for colIds associated with this pivot total column\n if (!pivotTotalColumnIds || !pivotTotalColumnIds.length) {\n return;\n }\n pivotTotalColumnIds.forEach(function (currentColId) {\n aggResults.push(result[currentColId]);\n });\n result[colId] = _this.aggregateValues(aggResults, pivotValueColumn.getAggFunc(), pivotValueColumn, rowNode);\n });\n return result;\n };\n AggregationStage.prototype.aggregateRowNodeUsingValuesOnly = function (rowNode, aggDetails) {\n var _this = this;\n var result = {};\n var changedValueColumns = aggDetails.changedPath.isActive() ?\n aggDetails.changedPath.getValueColumnsForNode(rowNode, aggDetails.valueColumns)\n : aggDetails.valueColumns;\n var notChangedValueColumns = aggDetails.changedPath.isActive() ?\n aggDetails.changedPath.getNotValueColumnsForNode(rowNode, aggDetails.valueColumns)\n : null;\n var values2d = this.getValuesNormal(rowNode, changedValueColumns);\n var oldValues = rowNode.aggData;\n changedValueColumns.forEach(function (valueColumn, index) {\n result[valueColumn.getId()] = _this.aggregateValues(values2d[index], valueColumn.getAggFunc(), valueColumn, rowNode);\n });\n if (notChangedValueColumns && oldValues) {\n notChangedValueColumns.forEach(function (valueColumn) {\n result[valueColumn.getId()] = oldValues[valueColumn.getId()];\n });\n }\n return result;\n };\n AggregationStage.prototype.getValuesPivotNonLeaf = function (rowNode, colId) {\n var values = [];\n rowNode.childrenAfterFilter.forEach(function (node) {\n var value = node.aggData[colId];\n values.push(value);\n });\n return values;\n };\n AggregationStage.prototype.getValuesFromMappedSet = function (mappedSet, keys, valueColumn) {\n var _this = this;\n var mapPointer = mappedSet;\n keys.forEach(function (key) { return (mapPointer = mapPointer ? mapPointer[key] : null); });\n if (!mapPointer) {\n return [];\n }\n var values = [];\n mapPointer.forEach(function (rowNode) {\n var value = _this.valueService.getValue(valueColumn, rowNode);\n values.push(value);\n });\n return values;\n };\n AggregationStage.prototype.getValuesNormal = function (rowNode, valueColumns) {\n // create 2d array, of all values for all valueColumns\n var values = [];\n valueColumns.forEach(function () { return values.push([]); });\n var valueColumnCount = valueColumns.length;\n var nodeList = this.filteredOnly ? rowNode.childrenAfterFilter : rowNode.childrenAfterGroup;\n var rowCount = nodeList.length;\n for (var i = 0; i < rowCount; i++) {\n var childNode = nodeList[i];\n for (var j = 0; j < valueColumnCount; j++) {\n var valueColumn = valueColumns[j];\n // if the row is a group, then it will only have an agg result value,\n // which means valueGetter is never used.\n var value = this.valueService.getValue(valueColumn, childNode);\n values[j].push(value);\n }\n }\n return values;\n };\n AggregationStage.prototype.aggregateValues = function (values, aggFuncOrString, column, rowNode) {\n var aggFunc = typeof aggFuncOrString === 'string' ?\n this.aggFuncService.getAggFunc(aggFuncOrString) :\n aggFuncOrString;\n if (typeof aggFunc !== 'function') {\n console.error(\"AG Grid: unrecognised aggregation function \" + aggFuncOrString);\n return null;\n }\n var deprecationWarning = function () {\n agGridCommunity._.doOnce(function () {\n console.warn('AG Grid: since v24.0, custom aggregation functions take a params object. Please alter your aggregation function to use params.values');\n }, 'aggregationStage.aggregateValues Deprecation');\n };\n var aggFuncAny = aggFunc;\n var params = {\n values: values,\n column: column,\n colDef: column ? column.getColDef() : undefined,\n rowNode: rowNode,\n data: rowNode ? rowNode.data : undefined,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext(),\n // the three things below are for logging warning messages in case anyone is treating\n // the params object as an array. in previous grid versions, we didn't pass params object,\n // but passed values array instead.\n forEach: function (callback, thisArg) {\n deprecationWarning();\n return values.forEach(callback, thisArg);\n },\n get length() {\n deprecationWarning();\n return values.length;\n },\n set length(val) {\n deprecationWarning();\n values.length = val;\n }\n }; // the \"as any\" is needed to allow the deprecation warning messages\n return aggFuncAny(params);\n };\n __decorate$a([\n agGridCommunity.Autowired('columnModel')\n ], AggregationStage.prototype, \"columnModel\", void 0);\n __decorate$a([\n agGridCommunity.Autowired('valueService')\n ], AggregationStage.prototype, \"valueService\", void 0);\n __decorate$a([\n agGridCommunity.Autowired('pivotStage')\n ], AggregationStage.prototype, \"pivotStage\", void 0);\n __decorate$a([\n agGridCommunity.Autowired('aggFuncService')\n ], AggregationStage.prototype, \"aggFuncService\", void 0);\n __decorate$a([\n agGridCommunity.Autowired('gridApi')\n ], AggregationStage.prototype, \"gridApi\", void 0);\n __decorate$a([\n agGridCommunity.Autowired('columnApi')\n ], AggregationStage.prototype, \"columnApi\", void 0);\n AggregationStage = __decorate$a([\n agGridCommunity.Bean('aggregationStage')\n ], AggregationStage);\n return AggregationStage;\n}(agGridCommunity.BeanStub));\n\nvar BatchRemover = /** @class */ (function () {\n function BatchRemover() {\n this.allSets = {};\n this.allParents = [];\n }\n BatchRemover.prototype.removeFromChildrenAfterGroup = function (parent, child) {\n var set = this.getSet(parent);\n set.removeFromChildrenAfterGroup[child.id] = true;\n };\n BatchRemover.prototype.removeFromAllLeafChildren = function (parent, child) {\n var set = this.getSet(parent);\n set.removeFromAllLeafChildren[child.id] = true;\n };\n BatchRemover.prototype.getSet = function (parent) {\n if (!this.allSets[parent.id]) {\n this.allSets[parent.id] = {\n removeFromAllLeafChildren: {},\n removeFromChildrenAfterGroup: {}\n };\n this.allParents.push(parent);\n }\n return this.allSets[parent.id];\n };\n BatchRemover.prototype.getAllParents = function () {\n return this.allParents;\n };\n BatchRemover.prototype.flush = function () {\n var _this = this;\n this.allParents.forEach(function (parent) {\n var nodeDetails = _this.allSets[parent.id];\n parent.childrenAfterGroup = parent.childrenAfterGroup.filter(function (child) { return !nodeDetails.removeFromChildrenAfterGroup[child.id]; });\n parent.allLeafChildren = parent.allLeafChildren.filter(function (child) { return !nodeDetails.removeFromAllLeafChildren[child.id]; });\n parent.updateHasChildren();\n if (parent.sibling) {\n parent.sibling.childrenAfterGroup = parent.childrenAfterGroup;\n parent.sibling.allLeafChildren = parent.allLeafChildren;\n }\n });\n this.allSets = {};\n this.allParents.length = 0;\n };\n return BatchRemover;\n}());\n\nvar __extends$b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$2 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$1 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$2(arguments[i]));\n return ar;\n};\nvar GroupStage = /** @class */ (function (_super) {\n __extends$b(GroupStage, _super);\n function GroupStage() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // we use a sequence variable so that each time we do a grouping, we don't\n // reuse the ids - otherwise the rowRenderer will confuse rowNodes between redraws\n // when it tries to animate between rows.\n _this.groupIdSequence = new agGridCommunity.NumberSequence();\n return _this;\n }\n GroupStage.prototype.postConstruct = function () {\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n if (this.usingTreeData) {\n this.getDataPath = this.gridOptionsWrapper.getDataPathFunc();\n }\n };\n GroupStage.prototype.execute = function (params) {\n var details = this.createGroupingDetails(params);\n if (details.transactions) {\n this.handleTransaction(details);\n }\n else {\n var afterColsChanged = params.afterColumnsChanged === true;\n this.shotgunResetEverything(details, afterColsChanged);\n }\n this.positionLeafsAboveGroups(params.changedPath);\n this.orderGroups(details.rootNode);\n this.selectableService.updateSelectableAfterGrouping(details.rootNode);\n };\n GroupStage.prototype.positionLeafsAboveGroups = function (changedPath) {\n // we don't do group sorting for tree data\n if (this.usingTreeData) {\n return;\n }\n changedPath.forEachChangedNodeDepthFirst(function (group) {\n if (group.childrenAfterGroup) {\n var leafNodes_1 = [];\n var groupNodes_1 = [];\n group.childrenAfterGroup.forEach(function (row) {\n var _a;\n if (!((_a = row.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n leafNodes_1.push(row);\n }\n else {\n groupNodes_1.push(row);\n }\n });\n group.childrenAfterGroup = __spread$1(leafNodes_1, groupNodes_1);\n }\n }, false);\n };\n GroupStage.prototype.createGroupingDetails = function (params) {\n var rowNode = params.rowNode, changedPath = params.changedPath, rowNodeTransactions = params.rowNodeTransactions, rowNodeOrder = params.rowNodeOrder;\n var groupedCols = this.usingTreeData ? null : this.columnModel.getRowGroupColumns();\n var details = {\n // someone complained that the parent attribute was causing some change detection\n // to break is some angular add-on - which i never used. taking the parent out breaks\n // a cyclic dependency, hence this flag got introduced.\n includeParents: !this.gridOptionsWrapper.isSuppressParentsInRowNodes(),\n expandByDefault: this.gridOptionsWrapper.getGroupDefaultExpanded(),\n groupedCols: groupedCols,\n rootNode: rowNode,\n pivotMode: this.columnModel.isPivotMode(),\n groupedColCount: this.usingTreeData || !groupedCols ? 0 : groupedCols.length,\n rowNodeOrder: rowNodeOrder,\n transactions: rowNodeTransactions,\n // if no transaction, then it's shotgun, changed path would be 'not active' at this point anyway\n changedPath: changedPath\n };\n return details;\n };\n GroupStage.prototype.handleTransaction = function (details) {\n var _this = this;\n details.transactions.forEach(function (tran) {\n // we don't allow batch remover for tree data as tree data uses Filler Nodes,\n // and creating/deleting filler nodes needs to be done alongside the node deleting\n // and moving. if we want to Batch Remover working with tree data then would need\n // to consider how Filler Nodes would be impacted (it's possible that it can be easily\n // modified to work, however for now I don't have the brain energy to work it all out).\n var batchRemover = !_this.usingTreeData ? new BatchRemover() : undefined;\n // the order here of [add, remove, update] needs to be the same as in ClientSideNodeManager,\n // as the order is important when a record with the same id is added and removed in the same\n // transaction.\n if (agGridCommunity._.existsAndNotEmpty(tran.remove)) {\n _this.removeNodes(tran.remove, details, batchRemover);\n }\n if (agGridCommunity._.existsAndNotEmpty(tran.update)) {\n _this.moveNodesInWrongPath(tran.update, details, batchRemover);\n }\n if (agGridCommunity._.existsAndNotEmpty(tran.add)) {\n _this.insertNodes(tran.add, details, false);\n }\n // must flush here, and not allow another transaction to be applied,\n // as each transaction must finish leaving the data in a consistent state.\n if (batchRemover) {\n var parentsWithChildrenRemoved = batchRemover.getAllParents().slice();\n batchRemover.flush();\n _this.removeEmptyGroups(parentsWithChildrenRemoved, details);\n }\n });\n if (details.rowNodeOrder) {\n this.sortChildren(details);\n }\n };\n // this is used when doing delta updates, eg Redux, keeps nodes in right order\n GroupStage.prototype.sortChildren = function (details) {\n details.changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n agGridCommunity._.sortRowNodesByOrder(rowNode.childrenAfterGroup, details.rowNodeOrder);\n });\n };\n GroupStage.prototype.orderGroups = function (rootNode) {\n // we don't do group sorting for tree data\n if (this.usingTreeData) {\n return;\n }\n var comparator = this.gridOptionsWrapper.getInitialGroupOrderComparator();\n if (agGridCommunity._.exists(comparator)) {\n recursiveSort(rootNode);\n }\n function recursiveSort(rowNode) {\n var doSort = agGridCommunity._.exists(rowNode.childrenAfterGroup) &&\n // we only want to sort groups, so we do not sort leafs (a leaf group has leafs as children)\n !rowNode.leafGroup;\n if (doSort) {\n rowNode.childrenAfterGroup.sort(function (nodeA, nodeB) { return comparator({ nodeA: nodeA, nodeB: nodeB }); });\n rowNode.childrenAfterGroup.forEach(function (childNode) { return recursiveSort(childNode); });\n }\n }\n };\n GroupStage.prototype.getExistingPathForNode = function (node, details) {\n var res = [];\n // when doing tree data, the node is part of the path,\n // but when doing grid grouping, the node is not part of the path so we start with the parent.\n var pointer = this.usingTreeData ? node : node.parent;\n while (pointer && pointer !== details.rootNode) {\n res.push({\n key: pointer.key,\n rowGroupColumn: pointer.rowGroupColumn,\n field: pointer.field\n });\n pointer = pointer.parent;\n }\n res.reverse();\n return res;\n };\n GroupStage.prototype.moveNodesInWrongPath = function (childNodes, details, batchRemover) {\n var _this = this;\n childNodes.forEach(function (childNode) {\n // we add node, even if parent has not changed, as the data could have\n // changed, hence aggregations will be wrong\n if (details.changedPath.isActive()) {\n details.changedPath.addParentNode(childNode.parent);\n }\n var infoToKeyMapper = function (item) { return item.key; };\n var oldPath = _this.getExistingPathForNode(childNode, details).map(infoToKeyMapper);\n var newPath = _this.getGroupInfo(childNode, details).map(infoToKeyMapper);\n var nodeInCorrectPath = agGridCommunity._.areEqual(oldPath, newPath);\n if (!nodeInCorrectPath) {\n _this.moveNode(childNode, details, batchRemover);\n }\n });\n };\n GroupStage.prototype.moveNode = function (childNode, details, batchRemover) {\n this.removeNodesInStages([childNode], details, batchRemover);\n this.insertOneNode(childNode, details, true);\n // hack - if we didn't do this, then renaming a tree item (ie changing rowNode.key) wouldn't get\n // refreshed into the gui.\n // this is needed to kick off the event that rowComp listens to for refresh. this in turn\n // then will get each cell in the row to refresh - which is what we need as we don't know which\n // columns will be displaying the rowNode.key info.\n childNode.setData(childNode.data);\n // we add both old and new parents to changed path, as both will need to be refreshed.\n // we already added the old parent (in calling method), so just add the new parent here\n if (details.changedPath.isActive()) {\n var newParent = childNode.parent;\n details.changedPath.addParentNode(newParent);\n }\n };\n GroupStage.prototype.removeNodes = function (leafRowNodes, details, batchRemover) {\n this.removeNodesInStages(leafRowNodes, details, batchRemover);\n if (details.changedPath.isActive()) {\n leafRowNodes.forEach(function (rowNode) { return details.changedPath.addParentNode(rowNode.parent); });\n }\n };\n GroupStage.prototype.removeNodesInStages = function (leafRowNodes, details, batchRemover) {\n this.removeNodesFromParents(leafRowNodes, details, batchRemover);\n if (this.usingTreeData) {\n this.postRemoveCreateFillerNodes(leafRowNodes, details);\n // When not TreeData, then removeEmptyGroups is called just before the BatchRemover is flushed.\n // However for TreeData, there is no BatchRemover, so we have to call removeEmptyGroups here.\n var nodeParents = leafRowNodes.map(function (n) { return n.parent; });\n this.removeEmptyGroups(nodeParents, details);\n }\n };\n GroupStage.prototype.forEachParentGroup = function (details, group, callback) {\n var pointer = group;\n while (pointer && pointer !== details.rootNode) {\n callback(pointer);\n pointer = pointer.parent;\n }\n };\n GroupStage.prototype.removeNodesFromParents = function (nodesToRemove, details, provided) {\n var _this = this;\n // this method can be called with BatchRemover as optional. if it is missed, we created a local version\n // and flush it at the end. if one is provided, we add to the provided one and it gets flushed elsewhere.\n var batchRemoverIsLocal = provided == null;\n var batchRemoverToUse = provided ? provided : new BatchRemover();\n nodesToRemove.forEach(function (nodeToRemove) {\n _this.removeFromParent(nodeToRemove, batchRemoverToUse);\n // remove from allLeafChildren. we clear down all parents EXCEPT the Root Node, as\n // the ClientSideNodeManager is responsible for the Root Node.\n _this.forEachParentGroup(details, nodeToRemove.parent, function (parentNode) {\n batchRemoverToUse.removeFromAllLeafChildren(parentNode, nodeToRemove);\n });\n });\n if (batchRemoverIsLocal) {\n batchRemoverToUse.flush();\n }\n };\n GroupStage.prototype.postRemoveCreateFillerNodes = function (nodesToRemove, details) {\n var _this = this;\n nodesToRemove.forEach(function (nodeToRemove) {\n // if not group, and children are present, need to move children to a group.\n // otherwise if no children, we can just remove without replacing.\n var replaceWithGroup = nodeToRemove.hasChildren();\n if (replaceWithGroup) {\n var oldPath = _this.getExistingPathForNode(nodeToRemove, details);\n // because we just removed the userGroup, this will always return new support group\n var newGroupNode_1 = _this.findParentForNode(nodeToRemove, oldPath, details);\n // these properties are the ones that will be incorrect in the newly created group,\n // so copy them from the old childNode\n newGroupNode_1.expanded = nodeToRemove.expanded;\n newGroupNode_1.allLeafChildren = nodeToRemove.allLeafChildren;\n newGroupNode_1.childrenAfterGroup = nodeToRemove.childrenAfterGroup;\n newGroupNode_1.childrenMapped = nodeToRemove.childrenMapped;\n newGroupNode_1.updateHasChildren();\n newGroupNode_1.childrenAfterGroup.forEach(function (rowNode) { return rowNode.parent = newGroupNode_1; });\n }\n });\n };\n GroupStage.prototype.removeEmptyGroups = function (possibleEmptyGroups, details) {\n var _this = this;\n // we do this multiple times, as when we remove groups, that means the parent of just removed\n // group can then be empty. to get around this, if we remove, then we check everything again for\n // newly emptied groups. the max number of times this will execute is the depth of the group tree.\n var checkAgain = true;\n var groupShouldBeRemoved = function (rowNode) {\n // because of the while loop below, it's possible we already moved the node,\n // so double check before trying to remove again.\n var mapKey = _this.getChildrenMappedKey(rowNode.key, rowNode.rowGroupColumn);\n var parentRowNode = rowNode.parent;\n var groupAlreadyRemoved = (parentRowNode && parentRowNode.childrenMapped) ?\n !parentRowNode.childrenMapped[mapKey] : true;\n if (groupAlreadyRemoved) {\n // if not linked, then group was already removed\n return false;\n }\n // if still not removed, then we remove if this group is empty\n return !!rowNode.isEmptyRowGroupNode();\n };\n var _loop_1 = function () {\n checkAgain = false;\n var batchRemover = new BatchRemover();\n possibleEmptyGroups.forEach(function (possibleEmptyGroup) {\n // remove empty groups\n _this.forEachParentGroup(details, possibleEmptyGroup, function (rowNode) {\n if (groupShouldBeRemoved(rowNode)) {\n checkAgain = true;\n _this.removeFromParent(rowNode, batchRemover);\n // we remove selection on filler nodes here, as the selection would not be removed\n // from the RowNodeManager, as filler nodes don't exist on the RowNodeManager\n rowNode.setSelected(false);\n }\n });\n });\n batchRemover.flush();\n };\n while (checkAgain) {\n _loop_1();\n }\n };\n // removes the node from the parent by:\n // a) removing from childrenAfterGroup (using batchRemover if present, otherwise immediately)\n // b) removing from childrenMapped (immediately)\n // c) setRowTop(null) - as the rowRenderer uses this to know the RowNode is no longer needed\n // d) setRowIndex(null) - as the rowNode will no longer be displayed.\n GroupStage.prototype.removeFromParent = function (child, batchRemover) {\n if (child.parent) {\n if (batchRemover) {\n batchRemover.removeFromChildrenAfterGroup(child.parent, child);\n }\n else {\n agGridCommunity._.removeFromArray(child.parent.childrenAfterGroup, child);\n child.parent.updateHasChildren();\n }\n }\n var mapKey = this.getChildrenMappedKey(child.key, child.rowGroupColumn);\n if (child.parent && child.parent.childrenMapped) {\n child.parent.childrenMapped[mapKey] = undefined;\n }\n // this is important for transition, see rowComp removeFirstPassFuncs. when doing animation and\n // remove, if rowTop is still present, the rowComp thinks it's just moved position.\n child.setRowTop(null);\n child.setRowIndex(null);\n };\n GroupStage.prototype.addToParent = function (child, parent) {\n var mapKey = this.getChildrenMappedKey(child.key, child.rowGroupColumn);\n if (parent) {\n var children = parent.childrenMapped != null;\n if (children) {\n parent.childrenMapped[mapKey] = child;\n }\n parent.childrenAfterGroup.push(child);\n parent.updateHasChildren();\n }\n };\n GroupStage.prototype.areGroupColsEqual = function (d1, d2) {\n if (d1 == null || d2 == null || d1.pivotMode !== d2.pivotMode) {\n return false;\n }\n return agGridCommunity._.areEqual(d1.groupedCols, d2.groupedCols);\n };\n GroupStage.prototype.checkAllGroupDataAfterColsChanged = function (details) {\n var _this = this;\n var recurse = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var isLeafNode = !_this.usingTreeData && !rowNode.group;\n if (isLeafNode) {\n return;\n }\n var groupInfo = {\n field: rowNode.field,\n key: rowNode.key,\n rowGroupColumn: rowNode.rowGroupColumn\n };\n _this.setGroupData(rowNode, groupInfo);\n recurse(rowNode.childrenAfterGroup);\n });\n };\n recurse(details.rootNode.childrenAfterGroup);\n };\n GroupStage.prototype.shotgunResetEverything = function (details, afterColumnsChanged) {\n if (this.noChangeInGroupingColumns(details, afterColumnsChanged)) {\n return;\n }\n // groups are about to get disposed, so need to deselect any that are selected\n this.selectionService.removeGroupsFromSelection();\n var rootNode = details.rootNode, groupedCols = details.groupedCols;\n // because we are not creating the root node each time, we have the logic\n // here to change leafGroup once.\n // we set .leafGroup to false for tree data, as .leafGroup is only used when pivoting, and pivoting\n // isn't allowed with treeData, so the grid never actually use .leafGroup when doing treeData.\n rootNode.leafGroup = this.usingTreeData ? false : groupedCols.length === 0;\n // we are doing everything from scratch, so reset childrenAfterGroup and childrenMapped from the rootNode\n rootNode.childrenAfterGroup = [];\n rootNode.childrenMapped = {};\n rootNode.updateHasChildren();\n var sibling = rootNode.sibling;\n if (sibling) {\n sibling.childrenAfterGroup = rootNode.childrenAfterGroup;\n sibling.childrenMapped = rootNode.childrenMapped;\n }\n this.insertNodes(rootNode.allLeafChildren, details, false);\n };\n GroupStage.prototype.noChangeInGroupingColumns = function (details, afterColumnsChanged) {\n var noFurtherProcessingNeeded = false;\n var groupDisplayColumns = this.columnModel.getGroupDisplayColumns();\n var newGroupDisplayColIds = groupDisplayColumns ?\n groupDisplayColumns.map(function (c) { return c.getId(); }).join('-') : '';\n if (afterColumnsChanged) {\n // we only need to redo grouping if doing normal grouping (ie not tree data)\n // and the group cols have changed.\n noFurtherProcessingNeeded = this.usingTreeData || this.areGroupColsEqual(details, this.oldGroupingDetails);\n // if the group display cols have changed, then we need to update rowNode.groupData\n // (regardless of tree data or row grouping)\n if (this.oldGroupDisplayColIds !== newGroupDisplayColIds) {\n this.checkAllGroupDataAfterColsChanged(details);\n }\n }\n this.oldGroupingDetails = details;\n this.oldGroupDisplayColIds = newGroupDisplayColIds;\n return noFurtherProcessingNeeded;\n };\n GroupStage.prototype.insertNodes = function (newRowNodes, details, isMove) {\n var _this = this;\n newRowNodes.forEach(function (rowNode) {\n _this.insertOneNode(rowNode, details, isMove);\n if (details.changedPath.isActive()) {\n details.changedPath.addParentNode(rowNode.parent);\n }\n });\n };\n GroupStage.prototype.insertOneNode = function (childNode, details, isMove) {\n var path = this.getGroupInfo(childNode, details);\n var parentGroup = this.findParentForNode(childNode, path, details);\n if (!parentGroup.group) {\n console.warn(\"AG Grid: duplicate group keys for row data, keys should be unique\", [parentGroup.data, childNode.data]);\n }\n if (this.usingTreeData) {\n this.swapGroupWithUserNode(parentGroup, childNode, isMove);\n }\n else {\n childNode.parent = parentGroup;\n childNode.level = path.length;\n parentGroup.childrenAfterGroup.push(childNode);\n parentGroup.updateHasChildren();\n }\n };\n GroupStage.prototype.findParentForNode = function (childNode, path, details) {\n var _this = this;\n var nextNode = details.rootNode;\n path.forEach(function (groupInfo, level) {\n nextNode = _this.getOrCreateNextNode(nextNode, groupInfo, level, details);\n // node gets added to all group nodes.\n // note: we do not add to rootNode here, as the rootNode is the master list of rowNodes\n nextNode.allLeafChildren.push(childNode);\n });\n return nextNode;\n };\n GroupStage.prototype.swapGroupWithUserNode = function (fillerGroup, userGroup, isMove) {\n userGroup.parent = fillerGroup.parent;\n userGroup.key = fillerGroup.key;\n userGroup.field = fillerGroup.field;\n userGroup.groupData = fillerGroup.groupData;\n userGroup.level = fillerGroup.level;\n // AG-3441 - preserve the existing expanded status of the node if we're moving it, so that\n // you can drag a sub tree from one parent to another without changing its expansion\n if (!isMove) {\n userGroup.expanded = fillerGroup.expanded;\n }\n // we set .leafGroup to false for tree data, as .leafGroup is only used when pivoting, and pivoting\n // isn't allowed with treeData, so the grid never actually use .leafGroup when doing treeData.\n userGroup.leafGroup = fillerGroup.leafGroup;\n // always null for userGroups, as row grouping is not allowed when doing tree data\n userGroup.rowGroupIndex = fillerGroup.rowGroupIndex;\n userGroup.allLeafChildren = fillerGroup.allLeafChildren;\n userGroup.childrenAfterGroup = fillerGroup.childrenAfterGroup;\n userGroup.childrenMapped = fillerGroup.childrenMapped;\n userGroup.updateHasChildren();\n this.removeFromParent(fillerGroup);\n userGroup.childrenAfterGroup.forEach(function (rowNode) { return rowNode.parent = userGroup; });\n this.addToParent(userGroup, fillerGroup.parent);\n };\n GroupStage.prototype.getOrCreateNextNode = function (parentGroup, groupInfo, level, details) {\n var key = this.getChildrenMappedKey(groupInfo.key, groupInfo.rowGroupColumn);\n var nextNode = parentGroup.childrenMapped ? parentGroup.childrenMapped[key] : undefined;\n if (!nextNode) {\n nextNode = this.createGroup(groupInfo, parentGroup, level, details);\n // attach the new group to the parent\n this.addToParent(nextNode, parentGroup);\n }\n return nextNode;\n };\n GroupStage.prototype.createGroup = function (groupInfo, parent, level, details) {\n var groupNode = new agGridCommunity.RowNode(this.beans);\n groupNode.group = true;\n groupNode.field = groupInfo.field;\n groupNode.rowGroupColumn = groupInfo.rowGroupColumn;\n this.setGroupData(groupNode, groupInfo);\n // we put 'row-group-' before the group id, so it doesn't clash with standard row id's. we also use 't-' and 'b-'\n // for top pinned and bottom pinned rows.\n groupNode.id = agGridCommunity.RowNode.ID_PREFIX_ROW_GROUP + this.groupIdSequence.next();\n groupNode.key = groupInfo.key;\n groupNode.level = level;\n groupNode.leafGroup = this.usingTreeData ? false : level === (details.groupedColCount - 1);\n groupNode.allLeafChildren = [];\n // why is this done here? we are not updating the children count as we go,\n // i suspect this is updated in the filter stage\n groupNode.setAllChildrenCount(0);\n groupNode.rowGroupIndex = this.usingTreeData ? null : level;\n groupNode.childrenAfterGroup = [];\n groupNode.childrenMapped = {};\n groupNode.updateHasChildren();\n groupNode.parent = details.includeParents ? parent : null;\n this.setExpandedInitialValue(details, groupNode);\n return groupNode;\n };\n GroupStage.prototype.setGroupData = function (groupNode, groupInfo) {\n var _this = this;\n groupNode.groupData = {};\n var groupDisplayCols = this.columnModel.getGroupDisplayColumns();\n groupDisplayCols.forEach(function (col) {\n // newGroup.rowGroupColumn=null when working off GroupInfo, and we always display the group in the group column\n // if rowGroupColumn is present, then it's grid row grouping and we only include if configuration says so\n var displayGroupForCol = _this.usingTreeData || (groupNode.rowGroupColumn ? col.isRowGroupDisplayed(groupNode.rowGroupColumn.getId()) : false);\n if (displayGroupForCol) {\n groupNode.groupData[col.getColId()] = groupInfo.key;\n }\n });\n };\n GroupStage.prototype.getChildrenMappedKey = function (key, rowGroupColumn) {\n if (rowGroupColumn) {\n // grouping by columns\n return rowGroupColumn.getId() + '-' + key;\n }\n // tree data - we don't have rowGroupColumns\n return key;\n };\n GroupStage.prototype.setExpandedInitialValue = function (details, groupNode) {\n // if pivoting the leaf group is never expanded as we do not show leaf rows\n if (details.pivotMode && groupNode.leafGroup) {\n groupNode.expanded = false;\n return;\n }\n // use callback if exists\n var userCallback = this.gridOptionsWrapper.getIsGroupOpenByDefaultFunc();\n if (userCallback) {\n var params = {\n rowNode: groupNode,\n field: groupNode.field,\n key: groupNode.key,\n level: groupNode.level,\n rowGroupColumn: groupNode.rowGroupColumn\n };\n groupNode.expanded = userCallback(params) == true;\n return;\n }\n // use expandByDefault if exists\n var expandByDefault = details.expandByDefault;\n if (details.expandByDefault === -1) {\n groupNode.expanded = true;\n return;\n }\n // otherwise\n groupNode.expanded = groupNode.level < expandByDefault;\n };\n GroupStage.prototype.getGroupInfo = function (rowNode, details) {\n if (this.usingTreeData) {\n return this.getGroupInfoFromCallback(rowNode);\n }\n return this.getGroupInfoFromGroupColumns(rowNode, details);\n };\n GroupStage.prototype.getGroupInfoFromCallback = function (rowNode) {\n var keys = this.getDataPath ? this.getDataPath(rowNode.data) : null;\n if (keys === null || keys === undefined || keys.length === 0) {\n agGridCommunity._.doOnce(function () { return console.warn(\"AG Grid: getDataPath() should not return an empty path for data\", rowNode.data); }, 'groupStage.getGroupInfoFromCallback');\n }\n var groupInfoMapper = function (key) { return ({ key: key, field: null, rowGroupColumn: null }); };\n return keys ? keys.map(groupInfoMapper) : [];\n };\n GroupStage.prototype.getGroupInfoFromGroupColumns = function (rowNode, details) {\n var _this = this;\n var res = [];\n details.groupedCols.forEach(function (groupCol) {\n var key = _this.valueService.getKeyForNode(groupCol, rowNode);\n var keyExists = key !== null && key !== undefined;\n // unbalanced tree and pivot mode don't work together - not because of the grid, it doesn't make\n // mathematical sense as you are building up a cube. so if pivot mode, we put in a blank key where missing.\n // this keeps the tree balanced and hence can be represented as a group.\n if (details.pivotMode && !keyExists) {\n key = ' ';\n keyExists = true;\n }\n if (keyExists) {\n var item = {\n key: key,\n field: groupCol.getColDef().field,\n rowGroupColumn: groupCol\n };\n res.push(item);\n }\n });\n return res;\n };\n __decorate$b([\n agGridCommunity.Autowired('columnModel')\n ], GroupStage.prototype, \"columnModel\", void 0);\n __decorate$b([\n agGridCommunity.Autowired('selectableService')\n ], GroupStage.prototype, \"selectableService\", void 0);\n __decorate$b([\n agGridCommunity.Autowired('valueService')\n ], GroupStage.prototype, \"valueService\", void 0);\n __decorate$b([\n agGridCommunity.Autowired('beans')\n ], GroupStage.prototype, \"beans\", void 0);\n __decorate$b([\n agGridCommunity.Autowired('selectionService')\n ], GroupStage.prototype, \"selectionService\", void 0);\n __decorate$b([\n agGridCommunity.PostConstruct\n ], GroupStage.prototype, \"postConstruct\", null);\n GroupStage = __decorate$b([\n agGridCommunity.Bean('groupStage')\n ], GroupStage);\n return GroupStage;\n}(agGridCommunity.BeanStub));\n\nvar __extends$c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$3 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$2 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$3(arguments[i]));\n return ar;\n};\nvar PivotColDefService = /** @class */ (function (_super) {\n __extends$c(PivotColDefService, _super);\n function PivotColDefService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PivotColDefService_1 = PivotColDefService;\n PivotColDefService.prototype.createPivotColumnDefs = function (uniqueValues) {\n // this is passed to the columnModel, to configure the columns and groups we show\n var pivotColumns = this.columnModel.getPivotColumns();\n var valueColumns = this.columnModel.getValueColumns();\n var levelsDeep = pivotColumns.length;\n var pivotColumnGroupDefs = this.recursiveBuildGroup(0, uniqueValues, [], levelsDeep, pivotColumns);\n function extractColDefs(input, arr) {\n if (arr === void 0) { arr = []; }\n input.forEach(function (def) {\n if (def.children !== undefined) {\n extractColDefs(def.children, arr);\n }\n else {\n arr.push(def);\n }\n });\n return arr;\n }\n var pivotColumnDefs = extractColDefs(pivotColumnGroupDefs);\n // additional columns that contain the aggregated total for each value column per row\n this.addRowGroupTotals(pivotColumnGroupDefs, pivotColumnDefs, valueColumns);\n // additional group columns that contain child totals for each collapsed child column / group\n this.addExpandablePivotGroups(pivotColumnGroupDefs, pivotColumnDefs);\n // additional group columns that contain an aggregated total across all child columns\n this.addPivotTotalsToGroups(pivotColumnGroupDefs, pivotColumnDefs);\n // we clone, so the colDefs in pivotColumnsGroupDefs and pivotColumnDefs are not shared. this is so that\n // any changes the user makes (via processSecondaryColumnDefinitions) don't impact the internal aggregations,\n // as these use the col defs also\n var pivotColumnDefsClone = pivotColumnDefs.map(function (colDef) { return agGridCommunity._.cloneObject(colDef); });\n return {\n pivotColumnGroupDefs: pivotColumnGroupDefs,\n pivotColumnDefs: pivotColumnDefsClone\n };\n };\n PivotColDefService.prototype.recursiveBuildGroup = function (index, uniqueValue, pivotKeys, maxDepth, primaryPivotColumns) {\n var _this = this;\n var measureColumns = this.columnModel.getValueColumns();\n if (index >= maxDepth) { // Base case - build the measure columns\n return this.buildMeasureCols(pivotKeys);\n }\n // sort by either user provided comparator, or our own one\n var primaryPivotColumnDefs = primaryPivotColumns[index].getColDef();\n var comparator = this.headerNameComparator.bind(this, primaryPivotColumnDefs.pivotComparator);\n // Base case for the compact layout, instead of recursing build the last layer of groups as measure columns instead\n if (measureColumns.length === 1 && this.gridOptionsWrapper.isRemovePivotHeaderRowWhenSingleValueColumn() && index === maxDepth - 1) {\n var leafCols_1 = [];\n agGridCommunity._.iterateObject(uniqueValue, function (key) {\n var newPivotKeys = __spread$2(pivotKeys, [key]);\n leafCols_1.push(__assign(__assign({}, _this.createColDef(measureColumns[0], key, newPivotKeys)), { columnGroupShow: 'open' }));\n });\n leafCols_1.sort(comparator);\n return leafCols_1;\n }\n // Recursive case\n var groups = [];\n agGridCommunity._.iterateObject(uniqueValue, function (key, value) {\n var newPivotKeys = __spread$2(pivotKeys, [key]);\n groups.push({\n children: _this.recursiveBuildGroup(index + 1, value, newPivotKeys, maxDepth, primaryPivotColumns),\n headerName: key,\n pivotKeys: newPivotKeys,\n columnGroupShow: 'open',\n groupId: _this.generateColumnGroupId(newPivotKeys),\n });\n });\n groups.sort(comparator);\n return groups;\n };\n PivotColDefService.prototype.buildMeasureCols = function (pivotKeys) {\n var _this = this;\n var measureColumns = this.columnModel.getValueColumns();\n if (measureColumns.length === 0) {\n // if no value columns selected, then we insert one blank column, so the user at least sees columns\n // rendered. otherwise the grid would render with no columns (just empty groups) which would give the\n // impression that the grid is broken\n return [this.createColDef(null, '-', pivotKeys)];\n }\n return measureColumns.map(function (measureCol) {\n var columnName = _this.columnModel.getDisplayNameForColumn(measureCol, 'header');\n return __assign(__assign({}, _this.createColDef(measureCol, columnName, pivotKeys)), { columnGroupShow: 'open' });\n });\n };\n PivotColDefService.prototype.addExpandablePivotGroups = function (pivotColumnGroupDefs, pivotColumnDefs) {\n var _this = this;\n if (this.gridOptionsWrapper.isSuppressExpandablePivotGroups() ||\n this.gridOptionsWrapper.getPivotColumnGroupTotals()) {\n return;\n }\n var recursivelyAddSubTotals = function (groupDef, currentPivotColumnDefs, acc) {\n var group = groupDef;\n if (group.children) {\n var childAcc_1 = new Map();\n group.children.forEach(function (grp) {\n recursivelyAddSubTotals(grp, currentPivotColumnDefs, childAcc_1);\n });\n var firstGroup_1 = !group.children.some(function (child) { return child.children; });\n _this.columnModel.getValueColumns().forEach(function (valueColumn) {\n var columnName = _this.columnModel.getDisplayNameForColumn(valueColumn, 'header');\n var totalColDef = _this.createColDef(valueColumn, columnName, groupDef.pivotKeys);\n totalColDef.pivotTotalColumnIds = childAcc_1.get(valueColumn.getColId());\n totalColDef.columnGroupShow = 'closed';\n totalColDef.aggFunc = valueColumn.getAggFunc();\n if (!firstGroup_1) {\n // add total colDef to group and pivot colDefs array\n var children = groupDef.children;\n children.push(totalColDef);\n currentPivotColumnDefs.push(totalColDef);\n }\n });\n _this.merge(acc, childAcc_1);\n }\n else {\n var def = groupDef;\n // check that value column exists, i.e. aggFunc is supplied\n if (!def.pivotValueColumn) {\n return;\n }\n var pivotValueColId = def.pivotValueColumn.getColId();\n var arr = acc.has(pivotValueColId) ? acc.get(pivotValueColId) : [];\n arr.push(def.colId);\n acc.set(pivotValueColId, arr);\n }\n };\n pivotColumnGroupDefs.forEach(function (groupDef) {\n recursivelyAddSubTotals(groupDef, pivotColumnDefs, new Map());\n });\n };\n PivotColDefService.prototype.addPivotTotalsToGroups = function (pivotColumnGroupDefs, pivotColumnDefs) {\n var _this = this;\n if (!this.gridOptionsWrapper.getPivotColumnGroupTotals()) {\n return;\n }\n var insertAfter = this.gridOptionsWrapper.getPivotColumnGroupTotals() === 'after';\n var valueCols = this.columnModel.getValueColumns();\n var aggFuncs = valueCols.map(function (valueCol) { return valueCol.getAggFunc(); });\n // don't add pivot totals if there is less than 1 aggFunc or they are not all the same\n if (!aggFuncs || aggFuncs.length < 1 || !this.sameAggFuncs(aggFuncs)) {\n // console.warn('AG Grid: aborting adding pivot total columns - value columns require same aggFunc');\n return;\n }\n // arbitrarily select a value column to use as a template for pivot columns\n var valueColumn = valueCols[0];\n pivotColumnGroupDefs.forEach(function (groupDef) {\n _this.recursivelyAddPivotTotal(groupDef, pivotColumnDefs, valueColumn, insertAfter);\n });\n };\n PivotColDefService.prototype.recursivelyAddPivotTotal = function (groupDef, pivotColumnDefs, valueColumn, insertAfter) {\n var _this = this;\n var group = groupDef;\n if (!group.children) {\n var def = groupDef;\n return def.colId ? [def.colId] : null;\n }\n var colIds = [];\n // need to recurse children first to obtain colIds used in the aggregation stage\n group.children\n .forEach(function (grp) {\n var childColIds = _this.recursivelyAddPivotTotal(grp, pivotColumnDefs, valueColumn, insertAfter);\n if (childColIds) {\n colIds = colIds.concat(childColIds);\n }\n });\n // only add total colDef if there is more than 1 child node\n if (group.children.length > 1) {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var headerName = localeTextFunc('pivotColumnGroupTotals', 'Total');\n //create total colDef using an arbitrary value column as a template\n var totalColDef = this.createColDef(valueColumn, headerName, groupDef.pivotKeys, true);\n totalColDef.pivotTotalColumnIds = colIds;\n totalColDef.aggFunc = valueColumn.getAggFunc();\n // add total colDef to group and pivot colDefs array\n var children = groupDef.children;\n insertAfter ? children.push(totalColDef) : children.unshift(totalColDef);\n pivotColumnDefs.push(totalColDef);\n }\n return colIds;\n };\n PivotColDefService.prototype.addRowGroupTotals = function (pivotColumnGroupDefs, pivotColumnDefs, valueColumns) {\n var _this = this;\n if (!this.gridOptionsWrapper.getPivotRowTotals()) {\n return;\n }\n var insertAfter = this.gridOptionsWrapper.getPivotRowTotals() === 'after';\n // order of row group totals depends on position\n var valueCols = insertAfter ? valueColumns.slice() : valueColumns.slice().reverse();\n var _loop_1 = function (i) {\n var valueCol = valueCols[i];\n var colIds = [];\n pivotColumnGroupDefs.forEach(function (groupDef) {\n colIds = colIds.concat(_this.extractColIdsForValueColumn(groupDef, valueCol));\n });\n this_1.createRowGroupTotal(pivotColumnGroupDefs, pivotColumnDefs, valueCol, colIds, insertAfter);\n };\n var this_1 = this;\n for (var i = 0; i < valueCols.length; i++) {\n _loop_1(i);\n }\n };\n PivotColDefService.prototype.extractColIdsForValueColumn = function (groupDef, valueColumn) {\n var _this = this;\n var group = groupDef;\n if (!group.children) {\n var colDef = group;\n return colDef.pivotValueColumn === valueColumn && colDef.colId ? [colDef.colId] : [];\n }\n var colIds = [];\n group.children\n .forEach(function (grp) {\n _this.extractColIdsForValueColumn(grp, valueColumn);\n var childColIds = _this.extractColIdsForValueColumn(grp, valueColumn);\n colIds = colIds.concat(childColIds);\n });\n return colIds;\n };\n PivotColDefService.prototype.createRowGroupTotal = function (parentChildren, pivotColumnDefs, valueColumn, colIds, insertAfter) {\n var measureColumns = this.columnModel.getValueColumns();\n var colDef;\n if (measureColumns.length === 0) {\n colDef = this.createColDef(null, '-', []);\n }\n else {\n var columnName = this.columnModel.getDisplayNameForColumn(valueColumn, 'header');\n colDef = this.createColDef(valueColumn, columnName, []);\n colDef.pivotTotalColumnIds = colIds;\n }\n colDef.colId = PivotColDefService_1.PIVOT_ROW_TOTAL_PREFIX + colDef.colId;\n pivotColumnDefs.push(colDef);\n insertAfter ? parentChildren.push(colDef) : parentChildren.unshift(colDef);\n };\n PivotColDefService.prototype.createColDef = function (valueColumn, headerName, pivotKeys, totalColumn) {\n if (totalColumn === void 0) { totalColumn = false; }\n var colDef = {};\n // This is null when there are no measure columns and we're creating placeholder columns\n if (valueColumn) {\n var colDefToCopy = valueColumn.getColDef();\n Object.assign(colDef, colDefToCopy);\n // even if original column was hidden, we always show the pivot value column, otherwise it would be\n // very confusing for people thinking the pivot is broken\n colDef.hide = false;\n }\n colDef.headerName = headerName;\n colDef.colId = this.generateColumnId(pivotKeys || [], valueColumn && !totalColumn ? valueColumn.getColId() : '');\n // pivot columns repeat over field, so it makes sense to use the unique id instead. For example if you want to\n // assign values to pinned bottom rows using setPinnedBottomRowData the value service will use this colId.\n colDef.field = colDef.colId;\n colDef.pivotKeys = pivotKeys;\n colDef.pivotValueColumn = valueColumn;\n if (colDef.filter === true) {\n colDef.filter = 'agNumberColumnFilter';\n }\n return colDef;\n };\n PivotColDefService.prototype.sameAggFuncs = function (aggFuncs) {\n if (aggFuncs.length == 1) {\n return true;\n }\n //check if all aggFunc's match\n for (var i = 1; i < aggFuncs.length; i++) {\n if (aggFuncs[i] !== aggFuncs[0]) {\n return false;\n }\n }\n return true;\n };\n PivotColDefService.prototype.headerNameComparator = function (userComparator, a, b) {\n if (userComparator) {\n return userComparator(a.headerName, b.headerName);\n }\n else {\n if (a.headerName && !b.headerName) {\n return 1;\n }\n else if (!a.headerName && b.headerName) {\n return -1;\n }\n // slightly naff here - just to satify typescript\n // really should be &&, but if so ts complains\n // the above if/else checks would deal with either being falsy, so at this stage if either are falsy, both are\n // ..still naff though\n if (!a.headerName || !b.headerName) {\n return 0;\n }\n if (a.headerName < b.headerName) {\n return -1;\n }\n if (a.headerName > b.headerName) {\n return 1;\n }\n return 0;\n }\n };\n PivotColDefService.prototype.merge = function (m1, m2) {\n m2.forEach(function (value, key, map) {\n var existingList = m1.has(key) ? m1.get(key) : [];\n var updatedList = __spread$2(existingList, value);\n m1.set(key, updatedList);\n });\n };\n PivotColDefService.prototype.generateColumnGroupId = function (pivotKeys) {\n var pivotCols = this.columnModel.getPivotColumns().map(function (col) { return col.getColId(); });\n return \"pivotGroup_\" + pivotCols.join('-') + \"_\" + pivotKeys.join('-');\n };\n PivotColDefService.prototype.generateColumnId = function (pivotKeys, measureColumnId) {\n var pivotCols = this.columnModel.getPivotColumns().map(function (col) { return col.getColId(); });\n return \"pivot_\" + pivotCols.join('-') + \"_\" + pivotKeys.join('-') + \"_\" + measureColumnId;\n };\n var PivotColDefService_1;\n PivotColDefService.PIVOT_ROW_TOTAL_PREFIX = 'PivotRowTotal_';\n __decorate$c([\n agGridCommunity.Autowired('columnModel')\n ], PivotColDefService.prototype, \"columnModel\", void 0);\n PivotColDefService = PivotColDefService_1 = __decorate$c([\n agGridCommunity.Bean('pivotColDefService')\n ], PivotColDefService);\n return PivotColDefService;\n}(agGridCommunity.BeanStub));\n\nvar __extends$d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotStage = /** @class */ (function (_super) {\n __extends$d(PivotStage, _super);\n function PivotStage() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.uniqueValues = {};\n return _this;\n }\n PivotStage.prototype.execute = function (params) {\n var rootNode = params.rowNode;\n var changedPath = params.changedPath;\n if (this.columnModel.isPivotActive()) {\n this.executePivotOn(rootNode, changedPath);\n }\n else {\n this.executePivotOff(changedPath);\n }\n };\n PivotStage.prototype.executePivotOff = function (changedPath) {\n this.aggregationColumnsHashLastTime = null;\n this.uniqueValues = {};\n if (this.columnModel.isSecondaryColumnsPresent()) {\n this.columnModel.setSecondaryColumns(null, \"rowModelUpdated\");\n if (changedPath) {\n changedPath.setInactive();\n }\n }\n };\n PivotStage.prototype.executePivotOn = function (rootNode, changedPath) {\n var uniqueValues = this.bucketUpRowNodes(rootNode);\n var uniqueValuesChanged = this.setUniqueValues(uniqueValues);\n var aggregationColumns = this.columnModel.getValueColumns();\n var aggregationColumnsHash = aggregationColumns.map(function (column) { return column.getId() + \"-\" + column.getColDef().headerName; }).join('#');\n var aggregationFuncsHash = aggregationColumns.map(function (column) { return column.getAggFunc().toString(); }).join('#');\n var aggregationColumnsChanged = this.aggregationColumnsHashLastTime !== aggregationColumnsHash;\n var aggregationFuncsChanged = this.aggregationFuncsHashLastTime !== aggregationFuncsHash;\n this.aggregationColumnsHashLastTime = aggregationColumnsHash;\n this.aggregationFuncsHashLastTime = aggregationFuncsHash;\n if (uniqueValuesChanged || aggregationColumnsChanged || aggregationFuncsChanged) {\n var _a = this.pivotColDefService.createPivotColumnDefs(this.uniqueValues), pivotColumnGroupDefs = _a.pivotColumnGroupDefs, pivotColumnDefs = _a.pivotColumnDefs;\n this.pivotColumnDefs = pivotColumnDefs;\n this.columnModel.setSecondaryColumns(pivotColumnGroupDefs, \"rowModelUpdated\");\n // because the secondary columns have changed, then the aggregation needs to visit the whole\n // tree again, so we make the changedPath not active, to force aggregation to visit all paths.\n if (changedPath) {\n changedPath.setInactive();\n }\n }\n };\n PivotStage.prototype.setUniqueValues = function (newValues) {\n var json1 = JSON.stringify(newValues);\n var json2 = JSON.stringify(this.uniqueValues);\n var uniqueValuesChanged = json1 !== json2;\n // we only continue the below if the unique values are different, as otherwise\n // the result will be the same as the last time we did it\n if (uniqueValuesChanged) {\n this.uniqueValues = newValues;\n return true;\n }\n else {\n return false;\n }\n };\n // returns true if values were different\n PivotStage.prototype.bucketUpRowNodes = function (rootNode) {\n var _this = this;\n // accessed from inside inner function\n var uniqueValues = {};\n // finds all leaf groups and calls mapRowNode with it\n var recursivelySearchForLeafNodes = function (rowNode) {\n if (rowNode.leafGroup) {\n _this.bucketRowNode(rowNode, uniqueValues);\n }\n else {\n rowNode.childrenAfterFilter.forEach(function (child) {\n recursivelySearchForLeafNodes(child);\n });\n }\n };\n recursivelySearchForLeafNodes(rootNode);\n return uniqueValues;\n };\n PivotStage.prototype.bucketRowNode = function (rowNode, uniqueValues) {\n var pivotColumns = this.columnModel.getPivotColumns();\n if (pivotColumns.length === 0) {\n rowNode.childrenMapped = null;\n }\n else {\n rowNode.childrenMapped = this.bucketChildren(rowNode.childrenAfterFilter, pivotColumns, 0, uniqueValues);\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenMapped = rowNode.childrenMapped;\n }\n };\n PivotStage.prototype.bucketChildren = function (children, pivotColumns, pivotIndex, uniqueValues) {\n var _this = this;\n var mappedChildren = {};\n var pivotColumn = pivotColumns[pivotIndex];\n // map the children out based on the pivot column\n children.forEach(function (child) {\n var key = _this.valueService.getKeyForNode(pivotColumn, child);\n if (agGridCommunity._.missing(key)) {\n key = '';\n }\n if (!uniqueValues[key]) {\n uniqueValues[key] = {};\n }\n if (!mappedChildren[key]) {\n mappedChildren[key] = [];\n }\n mappedChildren[key].push(child);\n });\n // if it's the last pivot column, return as is, otherwise go one level further in the map\n if (pivotIndex === pivotColumns.length - 1) {\n return mappedChildren;\n }\n else {\n var result_1 = {};\n agGridCommunity._.iterateObject(mappedChildren, function (key, value) {\n result_1[key] = _this.bucketChildren(value, pivotColumns, pivotIndex + 1, uniqueValues[key]);\n });\n return result_1;\n }\n };\n PivotStage.prototype.getPivotColumnDefs = function () {\n return this.pivotColumnDefs;\n };\n __decorate$d([\n agGridCommunity.Autowired('valueService')\n ], PivotStage.prototype, \"valueService\", void 0);\n __decorate$d([\n agGridCommunity.Autowired('columnModel')\n ], PivotStage.prototype, \"columnModel\", void 0);\n __decorate$d([\n agGridCommunity.Autowired('pivotColDefService')\n ], PivotStage.prototype, \"pivotColDefService\", void 0);\n PivotStage = __decorate$d([\n agGridCommunity.Bean('pivotStage')\n ], PivotStage);\n return PivotStage;\n}(agGridCommunity.BeanStub));\n\nvar __extends$e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// @ts-ignore\nvar AGBigInt = typeof BigInt === 'undefined' ? null : BigInt;\nvar AggFuncService = /** @class */ (function (_super) {\n __extends$e(AggFuncService, _super);\n function AggFuncService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.aggFuncsMap = {};\n _this.initialised = false;\n return _this;\n }\n AggFuncService_1 = AggFuncService;\n AggFuncService.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n this.initialiseWithDefaultAggregations();\n this.addAggFuncs(this.gridOptionsWrapper.getAggFuncs());\n };\n AggFuncService.prototype.initialiseWithDefaultAggregations = function () {\n this.aggFuncsMap[AggFuncService_1.AGG_SUM] = aggSum;\n this.aggFuncsMap[AggFuncService_1.AGG_FIRST] = aggFirst;\n this.aggFuncsMap[AggFuncService_1.AGG_LAST] = aggLast;\n this.aggFuncsMap[AggFuncService_1.AGG_MIN] = aggMin;\n this.aggFuncsMap[AggFuncService_1.AGG_MAX] = aggMax;\n this.aggFuncsMap[AggFuncService_1.AGG_COUNT] = aggCount;\n this.aggFuncsMap[AggFuncService_1.AGG_AVG] = aggAvg;\n this.initialised = true;\n };\n AggFuncService.prototype.isAggFuncPossible = function (column, func) {\n var allKeys = this.getFuncNames(column);\n var allowed = agGridCommunity._.includes(allKeys, func);\n var funcExists = agGridCommunity._.exists(this.aggFuncsMap[func]);\n return allowed && funcExists;\n };\n AggFuncService.prototype.getDefaultAggFunc = function (column) {\n var defaultAgg = column.getColDef().defaultAggFunc;\n if (agGridCommunity._.exists(defaultAgg) && this.isAggFuncPossible(column, defaultAgg)) {\n return defaultAgg;\n }\n if (this.isAggFuncPossible(column, AggFuncService_1.AGG_SUM)) {\n return AggFuncService_1.AGG_SUM;\n }\n var allKeys = this.getFuncNames(column);\n return agGridCommunity._.existsAndNotEmpty(allKeys) ? allKeys[0] : null;\n };\n AggFuncService.prototype.addAggFuncs = function (aggFuncs) {\n agGridCommunity._.iterateObject(aggFuncs, this.addAggFunc.bind(this));\n };\n AggFuncService.prototype.addAggFunc = function (key, aggFunc) {\n this.init();\n this.aggFuncsMap[key] = aggFunc;\n };\n AggFuncService.prototype.getAggFunc = function (name) {\n this.init();\n return this.aggFuncsMap[name];\n };\n AggFuncService.prototype.getFuncNames = function (column) {\n var userAllowedFuncs = column.getColDef().allowedAggFuncs;\n return userAllowedFuncs == null ? Object.keys(this.aggFuncsMap).sort() : userAllowedFuncs;\n };\n AggFuncService.prototype.clear = function () {\n this.aggFuncsMap = {};\n };\n var AggFuncService_1;\n AggFuncService.AGG_SUM = 'sum';\n AggFuncService.AGG_FIRST = 'first';\n AggFuncService.AGG_LAST = 'last';\n AggFuncService.AGG_MIN = 'min';\n AggFuncService.AGG_MAX = 'max';\n AggFuncService.AGG_COUNT = 'count';\n AggFuncService.AGG_AVG = 'avg';\n __decorate$e([\n agGridCommunity.PostConstruct\n ], AggFuncService.prototype, \"init\", null);\n AggFuncService = AggFuncService_1 = __decorate$e([\n agGridCommunity.Bean('aggFuncService')\n ], AggFuncService);\n return AggFuncService;\n}(agGridCommunity.BeanStub));\nfunction aggSum(params) {\n var values = params.values;\n var result = null; // the logic ensures that we never combine bigint arithmetic with numbers, but TS is hard to please\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (typeof value === 'number') {\n if (result === null) {\n result = value;\n }\n else {\n if (AGBigInt) {\n result += typeof result === 'number' ? value : AGBigInt(value);\n }\n else {\n result += value;\n }\n }\n }\n else if (typeof value === 'bigint') {\n if (result === null) {\n result = value;\n }\n else {\n result = (typeof result === 'bigint' ? result : AGBigInt(result)) + value;\n }\n }\n }\n return result;\n}\nfunction aggFirst(params) {\n return params.values.length > 0 ? params.values[0] : null;\n}\nfunction aggLast(params) {\n return params.values.length > 0 ? agGridCommunity._.last(params.values) : null;\n}\nfunction aggMin(params) {\n var values = params.values;\n var result = null;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if ((typeof value === 'number' || typeof value === 'bigint') && (result === null || result > value)) {\n result = value;\n }\n }\n return result;\n}\nfunction aggMax(params) {\n var values = params.values;\n var result = null;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if ((typeof value === 'number' || typeof value === 'bigint') && (result === null || result < value)) {\n result = value;\n }\n }\n return result;\n}\nfunction aggCount(params) {\n var values = params.values;\n var result = 0;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n // check if the value is from a group, in which case use the group's count\n result += value != null && typeof value.value === 'number' ? value.value : 1;\n }\n return {\n value: result,\n toString: function () {\n return this.value.toString();\n },\n // used for sorting\n toNumber: function () {\n return this.value;\n }\n };\n}\n// the average function is tricky as the multiple levels require weighted averages\n// for the non-leaf node aggregations.\nfunction aggAvg(params) {\n var values = params.values;\n var sum = 0; // the logic ensures that we never combine bigint arithmetic with numbers, but TS is hard to please\n var count = 0;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var currentValue = values[i];\n var valueToAdd = null;\n if (typeof currentValue === 'number' || typeof currentValue === 'bigint') {\n valueToAdd = currentValue;\n count++;\n }\n else if (currentValue != null && (typeof currentValue.value === 'number' || typeof currentValue.value === 'bigint') && typeof currentValue.count === 'number') {\n // we are aggregating groups, so we take the aggregated values to calculated a weighted average\n if (AGBigInt) {\n valueToAdd = currentValue.value * (typeof currentValue.value === 'number' ? currentValue.count : AGBigInt(currentValue.count));\n }\n else {\n valueToAdd = currentValue.value * currentValue.count;\n }\n count += currentValue.count;\n }\n if (typeof valueToAdd === 'number') {\n if (AGBigInt) {\n sum += typeof sum === 'number' ? valueToAdd : AGBigInt(valueToAdd);\n }\n else {\n sum += valueToAdd;\n }\n }\n else if (typeof valueToAdd === 'bigint') {\n sum = (typeof sum === 'bigint' ? sum : AGBigInt(sum)) + valueToAdd;\n }\n }\n var value = null;\n // avoid divide by zero error\n if (count > 0) {\n if (AGBigInt) {\n value = sum / (typeof sum === 'number' ? count : AGBigInt(count));\n }\n else {\n value = sum / count;\n }\n }\n // the result will be an object. when this cell is rendered, only the avg is shown.\n // however when this cell is part of another aggregation, the count is also needed\n // to create a weighted average for the next level.\n return {\n count: count,\n value: value,\n // the grid by default uses toString to render values for an object, so this\n // is a trick to get the default cellRenderer to display the avg value\n toString: function () {\n return typeof this.value === 'number' || typeof this.value === 'bigint' ? this.value.toString() : '';\n },\n // used for sorting\n toNumber: function () {\n return this.value;\n }\n };\n}\n\nvar __extends$f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DropZoneColumnComp = /** @class */ (function (_super) {\n __extends$f(DropZoneColumnComp, _super);\n function DropZoneColumnComp(column, dragSourceDropTarget, ghost, valueColumn, horizontal) {\n var _this = _super.call(this) || this;\n _this.column = column;\n _this.dragSourceDropTarget = dragSourceDropTarget;\n _this.ghost = ghost;\n _this.valueColumn = valueColumn;\n _this.horizontal = horizontal;\n _this.popupShowing = false;\n return _this;\n }\n DropZoneColumnComp.prototype.init = function () {\n this.setTemplate(DropZoneColumnComp.TEMPLATE);\n var eGui = this.getGui();\n var isFunctionsReadOnly = this.gridOptionsWrapper.isFunctionsReadOnly();\n this.addElementClasses(eGui);\n this.addElementClasses(this.eDragHandle, 'drag-handle');\n this.addElementClasses(this.eText, 'text');\n this.addElementClasses(this.eButton, 'button');\n this.eDragHandle.appendChild(agGridCommunity._.createIconNoSpan('columnDrag', this.gridOptionsWrapper));\n this.eButton.appendChild(agGridCommunity._.createIconNoSpan('cancel', this.gridOptionsWrapper));\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnDrop');\n this.setupComponents();\n if (!this.ghost && !isFunctionsReadOnly) {\n this.addDragSource();\n }\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate('ariaDropZoneColumnComponentDescription', 'Press DELETE to remove');\n var _a = this.getColumnAndAggFuncName(), name = _a.name, aggFuncName = _a.aggFuncName;\n var extraDescription = '';\n if (this.valueColumn && !isFunctionsReadOnly) {\n extraDescription = translate('ariaDropZoneColumnValueItemDescription', 'Press ENTER to change the aggregation type');\n }\n agGridCommunity._.setAriaLabel(eGui, aggFuncName + \" \" + name + \" \" + label + \" \" + extraDescription);\n this.setupTooltip();\n };\n DropZoneColumnComp.prototype.setupTooltip = function () {\n var _this = this;\n var refresh = function () {\n var newTooltipText = _this.column.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n DropZoneColumnComp.prototype.addDragSource = function () {\n var _this = this;\n var dragSource = {\n type: agGridCommunity.DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n defaultIconName: agGridCommunity.DragAndDropService.ICON_HIDE,\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n dragSourceDropTarget: this.dragSourceDropTarget\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n DropZoneColumnComp.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n DropZoneColumnComp.prototype.setupComponents = function () {\n this.setTextValue();\n this.setupRemove();\n if (this.ghost) {\n this.addCssClass('ag-column-drop-cell-ghost');\n }\n if (this.valueColumn && !this.gridOptionsWrapper.isFunctionsReadOnly()) {\n this.addGuiEventListener('click', this.onShowAggFuncSelection.bind(this));\n }\n };\n DropZoneColumnComp.prototype.setupRemove = function () {\n var _this = this;\n agGridCommunity._.setDisplayed(this.eButton, !this.gridOptionsWrapper.isFunctionsReadOnly());\n var agEvent = { type: DropZoneColumnComp.EVENT_COLUMN_REMOVE };\n this.addGuiEventListener('keydown', function (e) {\n var isEnter = e.key === agGridCommunity.KeyCode.ENTER;\n var isDelete = e.key === agGridCommunity.KeyCode.DELETE;\n if (isDelete) {\n e.preventDefault();\n _this.dispatchEvent(agEvent);\n }\n if (isEnter && _this.valueColumn && !_this.gridOptionsWrapper.isFunctionsReadOnly()) {\n e.preventDefault();\n _this.onShowAggFuncSelection();\n }\n });\n this.addManagedListener(this.eButton, 'click', function (mouseEvent) {\n _this.dispatchEvent(agEvent);\n mouseEvent.stopPropagation();\n });\n var touchListener = new agGridCommunity.TouchListener(this.eButton);\n this.addManagedListener(touchListener, agGridCommunity.TouchListener.EVENT_TAP, function () {\n _this.dispatchEvent(agEvent);\n });\n this.addDestroyFunc(touchListener.destroy.bind(touchListener));\n };\n DropZoneColumnComp.prototype.getColumnAndAggFuncName = function () {\n var name = this.displayName;\n var aggFuncName = '';\n if (this.valueColumn) {\n var aggFunc = this.column.getAggFunc();\n // if aggFunc is a string, we can use it, but if it's a function, then we swap with 'func'\n var aggFuncString = typeof aggFunc === 'string' ? aggFunc : 'agg';\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n aggFuncName = localeTextFunc(aggFuncString, aggFuncString);\n }\n return { name: name, aggFuncName: aggFuncName };\n };\n DropZoneColumnComp.prototype.setTextValue = function () {\n var _a = this.getColumnAndAggFuncName(), name = _a.name, aggFuncName = _a.aggFuncName;\n var displayValue = this.valueColumn ? aggFuncName + \"(\" + name + \")\" : name;\n var displayValueSanitised = agGridCommunity._.escapeString(displayValue);\n this.eText.innerHTML = displayValueSanitised;\n };\n DropZoneColumnComp.prototype.onShowAggFuncSelection = function () {\n var _this = this;\n if (this.popupShowing) {\n return;\n }\n this.popupShowing = true;\n var virtualList = new agGridCommunity.VirtualList('select-agg-func');\n var rows = this.aggFuncService.getFuncNames(this.column);\n var eGui = this.getGui();\n var virtualListGui = virtualList.getGui();\n virtualList.setModel({\n getRow: function (index) { return rows[index]; },\n getRowCount: function () { return rows.length; }\n });\n this.getContext().createBean(virtualList);\n var ePopup = agGridCommunity._.loadTemplate(/* html*/ \"
\");\n ePopup.style.top = '0px';\n ePopup.style.left = '0px';\n ePopup.appendChild(virtualListGui);\n // ePopup.style.height = this.gridOptionsWrapper.getAggFuncPopupHeight() + 'px';\n ePopup.style.width = eGui.clientWidth + \"px\";\n var popupHiddenFunc = function () {\n _this.destroyBean(virtualList);\n _this.popupShowing = false;\n eGui.focus();\n };\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: ePopup,\n closeOnEsc: true,\n closedCallback: popupHiddenFunc,\n ariaLabel: translate('ariaLabelAggregationFunction', 'Aggregation Function')\n });\n if (addPopupRes) {\n virtualList.setComponentCreator(this.createAggSelect.bind(this, addPopupRes.hideFunc));\n }\n virtualList.addGuiEventListener('keydown', function (e) {\n if (e.key === agGridCommunity.KeyCode.ENTER || e.key === agGridCommunity.KeyCode.SPACE) {\n var row = virtualList.getLastFocusedRow();\n if (row == null) {\n return;\n }\n var comp = virtualList.getComponentAt(row);\n if (comp) {\n comp.selectItem();\n }\n }\n });\n this.popupService.positionPopupUnderComponent({\n type: 'aggFuncSelect',\n eventSource: eGui,\n ePopup: ePopup,\n keepWithinBounds: true,\n column: this.column\n });\n virtualList.refresh();\n var rowToFocus = rows.findIndex(function (r) { return r === _this.column.getAggFunc(); });\n if (rowToFocus === -1) {\n rowToFocus = 0;\n }\n virtualList.focusRow(rowToFocus);\n };\n DropZoneColumnComp.prototype.createAggSelect = function (hidePopup, value) {\n var _this = this;\n var itemSelected = function () {\n hidePopup();\n if (_this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: agGridCommunity.Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST,\n columns: [_this.column],\n aggFunc: value,\n api: _this.gridApi,\n columnApi: _this.columnApi\n };\n _this.eventService.dispatchEvent(event_1);\n }\n else {\n _this.columnModel.setColumnAggFunc(_this.column, value, \"toolPanelDragAndDrop\");\n }\n };\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var aggFuncString = value.toString();\n var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n var comp = new AggItemComp(itemSelected, aggFuncStringTranslated);\n return comp;\n };\n DropZoneColumnComp.prototype.addElementClasses = function (el, suffix) {\n suffix = suffix ? \"-\" + suffix : '';\n var direction = this.horizontal ? 'horizontal' : 'vertical';\n el.classList.add(\"ag-column-drop-cell\" + suffix, \"ag-column-drop-\" + direction + \"-cell\" + suffix);\n };\n DropZoneColumnComp.EVENT_COLUMN_REMOVE = 'columnRemove';\n DropZoneColumnComp.TEMPLATE = \"\\n \\n \\n \\n \";\n __decorate$f([\n agGridCommunity.Autowired('dragAndDropService')\n ], DropZoneColumnComp.prototype, \"dragAndDropService\", void 0);\n __decorate$f([\n agGridCommunity.Autowired('columnModel')\n ], DropZoneColumnComp.prototype, \"columnModel\", void 0);\n __decorate$f([\n agGridCommunity.Autowired('popupService')\n ], DropZoneColumnComp.prototype, \"popupService\", void 0);\n __decorate$f([\n agGridCommunity.Optional('aggFuncService')\n ], DropZoneColumnComp.prototype, \"aggFuncService\", void 0);\n __decorate$f([\n agGridCommunity.Autowired('columnApi')\n ], DropZoneColumnComp.prototype, \"columnApi\", void 0);\n __decorate$f([\n agGridCommunity.Autowired('gridApi')\n ], DropZoneColumnComp.prototype, \"gridApi\", void 0);\n __decorate$f([\n agGridCommunity.RefSelector('eText')\n ], DropZoneColumnComp.prototype, \"eText\", void 0);\n __decorate$f([\n agGridCommunity.RefSelector('eDragHandle')\n ], DropZoneColumnComp.prototype, \"eDragHandle\", void 0);\n __decorate$f([\n agGridCommunity.RefSelector('eButton')\n ], DropZoneColumnComp.prototype, \"eButton\", void 0);\n __decorate$f([\n agGridCommunity.PostConstruct\n ], DropZoneColumnComp.prototype, \"init\", null);\n return DropZoneColumnComp;\n}(agGridCommunity.Component));\nvar AggItemComp = /** @class */ (function (_super) {\n __extends$f(AggItemComp, _super);\n function AggItemComp(itemSelected, value) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.selectItem = itemSelected;\n _this.getGui().innerText = value;\n _this.addGuiEventListener('click', _this.selectItem);\n return _this;\n }\n return AggItemComp;\n}(agGridCommunity.Component));\n\nvar __extends$g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BaseDropZonePanel = /** @class */ (function (_super) {\n __extends$g(BaseDropZonePanel, _super);\n function BaseDropZonePanel(horizontal, valueColumn) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.horizontal = horizontal;\n _this.valueColumn = valueColumn;\n _this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n _this.guiDestroyFunctions = [];\n _this.childColumnComponents = [];\n _this.resizeEnabled = false;\n _this.addElementClasses(_this.getGui());\n _this.eColumnDropList = document.createElement('div');\n _this.addElementClasses(_this.eColumnDropList, 'list');\n agGridCommunity._.setAriaRole(_this.eColumnDropList, 'listbox');\n return _this;\n }\n BaseDropZonePanel.prototype.isHorizontal = function () {\n return this.horizontal;\n };\n BaseDropZonePanel.prototype.toggleResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable ? { bottom: true } : false);\n this.resizeEnabled = resizable;\n };\n BaseDropZonePanel.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseDropZonePanel.prototype.destroy = function () {\n this.destroyGui();\n _super.prototype.destroy.call(this);\n };\n BaseDropZonePanel.prototype.destroyGui = function () {\n this.guiDestroyFunctions.forEach(function (func) { return func(); });\n this.guiDestroyFunctions.length = 0;\n this.childColumnComponents.length = 0;\n agGridCommunity._.clearElement(this.getGui());\n agGridCommunity._.clearElement(this.eColumnDropList);\n };\n BaseDropZonePanel.prototype.init = function (params) {\n this.params = params;\n this.createManagedBean(new agGridCommunity.ManagedFocusFeature(this.getFocusableElement(), {\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n this.addManagedListener(this.beans.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.refreshGui.bind(this));\n this.addManagedListener(this.beans.gridOptionsWrapper, 'functionsReadOnly', this.refreshGui.bind(this));\n this.setupDropTarget();\n this.positionableFeature = new agGridCommunity.PositionableFeature(this.getGui(), { minHeight: 100 });\n this.createManagedBean(this.positionableFeature);\n // we don't know if this bean will be initialised before columnModel.\n // if columnModel first, then below will work\n // if columnModel second, then below will put blank in, and then above event gets first when columnModel is set up\n this.refreshGui();\n agGridCommunity._.setAriaLabel(this.eColumnDropList, this.getAriaLabel());\n };\n BaseDropZonePanel.prototype.handleKeyDown = function (e) {\n var isVertical = !this.horizontal;\n var isNext = e.key === agGridCommunity.KeyCode.DOWN;\n var isPrevious = e.key === agGridCommunity.KeyCode.UP;\n if (!isVertical) {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n isNext = (!isRtl && e.key === agGridCommunity.KeyCode.RIGHT) || (isRtl && e.key === agGridCommunity.KeyCode.LEFT);\n isPrevious = (!isRtl && e.key === agGridCommunity.KeyCode.LEFT) || (isRtl && e.key === agGridCommunity.KeyCode.RIGHT);\n }\n if (!isNext && !isPrevious) {\n return;\n }\n var el = this.focusService.findNextFocusableElement(this.getFocusableElement(), false, isPrevious);\n if (el) {\n e.preventDefault();\n el.focus();\n }\n };\n BaseDropZonePanel.prototype.addElementClasses = function (el, suffix) {\n suffix = suffix ? \"-\" + suffix : '';\n var direction = this.horizontal ? 'horizontal' : 'vertical';\n el.classList.add(\"ag-column-drop\" + suffix, \"ag-column-drop-\" + direction + suffix);\n };\n BaseDropZonePanel.prototype.setupDropTarget = function () {\n this.dropTarget = {\n getContainer: this.getGui.bind(this),\n getIconName: this.getIconName.bind(this),\n onDragging: this.onDragging.bind(this),\n onDragEnter: this.onDragEnter.bind(this),\n onDragLeave: this.onDragLeave.bind(this),\n onDragStop: this.onDragStop.bind(this),\n isInterestedIn: this.isInterestedIn.bind(this)\n };\n this.beans.dragAndDropService.addDropTarget(this.dropTarget);\n };\n BaseDropZonePanel.prototype.isInterestedIn = function (type) {\n // not interested in row drags\n return type === agGridCommunity.DragSourceType.HeaderCell || type === agGridCommunity.DragSourceType.ToolPanel;\n };\n BaseDropZonePanel.prototype.checkInsertIndex = function (draggingEvent) {\n var newIndex = this.horizontal ? this.getNewHorizontalInsertIndex(draggingEvent) : this.getNewVerticalInsertIndex(draggingEvent);\n // <0 happens when drag is no a direction we are interested in, eg drag is up/down but in horizontal panel\n if (newIndex < 0) {\n return false;\n }\n var changed = newIndex !== this.insertIndex;\n if (changed) {\n this.insertIndex = newIndex;\n }\n return changed;\n };\n BaseDropZonePanel.prototype.getNewHorizontalInsertIndex = function (draggingEvent) {\n if (agGridCommunity._.missing(draggingEvent.hDirection)) {\n return -1;\n }\n var newIndex = 0;\n var mouseEvent = draggingEvent.event;\n var enableRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n var goingLeft = draggingEvent.hDirection === agGridCommunity.HorizontalDirection.Left;\n var mouseX = mouseEvent.clientX;\n this.childColumnComponents.forEach(function (childColumn) {\n var rect = childColumn.getGui().getBoundingClientRect();\n var rectX = goingLeft ? rect.right : rect.left;\n var horizontalFit = enableRtl ? mouseX <= rectX : mouseX >= rectX;\n if (horizontalFit) {\n newIndex++;\n }\n });\n return newIndex;\n };\n BaseDropZonePanel.prototype.getNewVerticalInsertIndex = function (draggingEvent) {\n if (agGridCommunity._.missing(draggingEvent.vDirection)) {\n return -1;\n }\n var newIndex = 0;\n var mouseEvent = draggingEvent.event;\n this.childColumnComponents.forEach(function (childColumn) {\n var rect = childColumn.getGui().getBoundingClientRect();\n var verticalFit = mouseEvent.clientY >= (draggingEvent.vDirection === agGridCommunity.VerticalDirection.Down ? rect.top : rect.bottom);\n if (verticalFit) {\n newIndex++;\n }\n });\n return newIndex;\n };\n BaseDropZonePanel.prototype.checkDragStartedBySelf = function (draggingEvent) {\n if (this.state !== BaseDropZonePanel.STATE_NOT_DRAGGING) {\n return;\n }\n this.state = BaseDropZonePanel.STATE_REARRANGE_COLUMNS;\n this.potentialDndColumns = draggingEvent.dragSource.getDragItem().columns || [];\n this.refreshGui();\n this.checkInsertIndex(draggingEvent);\n this.refreshGui();\n };\n BaseDropZonePanel.prototype.onDragging = function (draggingEvent) {\n this.checkDragStartedBySelf(draggingEvent);\n if (this.checkInsertIndex(draggingEvent)) {\n this.refreshGui();\n }\n };\n BaseDropZonePanel.prototype.onDragEnter = function (draggingEvent) {\n // this will contain all columns that are potential drops\n var dragColumns = draggingEvent.dragSource.getDragItem().columns || [];\n this.state = BaseDropZonePanel.STATE_NEW_COLUMNS_IN;\n // take out columns that are not droppable\n var goodDragColumns = dragColumns.filter(this.isColumnDroppable.bind(this));\n if (goodDragColumns.length > 0) {\n this.potentialDndColumns = goodDragColumns;\n this.checkInsertIndex(draggingEvent);\n this.refreshGui();\n }\n };\n BaseDropZonePanel.prototype.isPotentialDndColumns = function () {\n return agGridCommunity._.existsAndNotEmpty(this.potentialDndColumns);\n };\n BaseDropZonePanel.prototype.onDragLeave = function (draggingEvent) {\n // if the dragging started from us, we remove the group, however if it started\n // some place else, then we don't, as it was only 'asking'\n if (this.state === BaseDropZonePanel.STATE_REARRANGE_COLUMNS) {\n var columns = draggingEvent.dragSource.getDragItem().columns || [];\n this.removeColumns(columns);\n }\n if (this.isPotentialDndColumns()) {\n this.potentialDndColumns = [];\n this.refreshGui();\n }\n this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n };\n BaseDropZonePanel.prototype.onDragStop = function () {\n if (this.isPotentialDndColumns()) {\n var success = false;\n if (this.state === BaseDropZonePanel.STATE_NEW_COLUMNS_IN) {\n this.addColumns(this.potentialDndColumns);\n success = true;\n }\n else {\n success = this.rearrangeColumns(this.potentialDndColumns);\n }\n this.potentialDndColumns = [];\n // If the function is passive, then we don't refresh, as we assume the client application\n // is going to call setRowGroups / setPivots / setValues at a later point which will then\n // cause a refresh. This gives a nice GUI where the ghost stays until the app has caught\n // up with the changes. However, if there was no change in the order, then we do need to\n // refresh to reset the columns\n if (!this.beans.gridOptionsWrapper.isFunctionsPassive() || !success) {\n this.refreshGui();\n }\n }\n this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n };\n BaseDropZonePanel.prototype.removeColumns = function (columnsToRemove) {\n var newColumnList = this.getExistingColumns().filter(function (col) { return !agGridCommunity._.includes(columnsToRemove, col); });\n this.updateColumns(newColumnList);\n };\n BaseDropZonePanel.prototype.addColumns = function (columnsToAdd) {\n if (!columnsToAdd) {\n return;\n }\n var newColumnList = this.getExistingColumns().slice();\n var colsToAddNoDuplicates = columnsToAdd.filter(function (col) { return newColumnList.indexOf(col) < 0; });\n agGridCommunity._.insertArrayIntoArray(newColumnList, colsToAddNoDuplicates, this.insertIndex);\n this.updateColumns(newColumnList);\n };\n BaseDropZonePanel.prototype.rearrangeColumns = function (columnsToAdd) {\n var newColumnList = this.getNonGhostColumns().slice();\n agGridCommunity._.insertArrayIntoArray(newColumnList, columnsToAdd, this.insertIndex);\n if (agGridCommunity._.areEqual(newColumnList, this.getExistingColumns())) {\n return false;\n }\n this.updateColumns(newColumnList);\n return true;\n };\n BaseDropZonePanel.prototype.refreshGui = function () {\n // we reset the scroll position after the refresh.\n // if we don't do this, then the list will always scroll to the top\n // each time we refresh it. this is because part of the refresh empties\n // out the list which sets scroll to zero. so the user could be just\n // reordering the list - we want to prevent the resetting of the scroll.\n // this is relevant for vertical display only (as horizontal has no scroll)\n var scrollTop = this.eColumnDropList.scrollTop;\n var resizeEnabled = this.resizeEnabled;\n var focusedIndex = this.getFocusedItem();\n var alternateElement = this.focusService.findNextFocusableElement();\n if (!alternateElement) {\n alternateElement = this.focusService.findNextFocusableElement(undefined, false, true);\n }\n this.toggleResizable(false);\n this.destroyGui();\n this.addIconAndTitleToGui();\n this.addEmptyMessageToGui();\n this.addColumnsToGui();\n if (!this.isHorizontal()) {\n this.eColumnDropList.scrollTop = scrollTop;\n }\n if (resizeEnabled) {\n this.toggleResizable(resizeEnabled);\n }\n this.restoreFocus(focusedIndex, alternateElement);\n };\n BaseDropZonePanel.prototype.getFocusedItem = function () {\n var eGui = this.getGui();\n var activeElement = this.gridOptionsWrapper.getDocument().activeElement;\n if (!eGui.contains(activeElement)) {\n return -1;\n }\n var items = Array.from(eGui.querySelectorAll('.ag-column-drop-cell'));\n return items.indexOf(activeElement);\n };\n BaseDropZonePanel.prototype.restoreFocus = function (index, alternateElement) {\n var eGui = this.getGui();\n var items = Array.from(eGui.querySelectorAll('.ag-column-drop-cell'));\n if (index === -1) {\n return;\n }\n if (items.length === 0) {\n alternateElement.focus();\n }\n var indexToFocus = Math.min(items.length - 1, index);\n var el = items[indexToFocus];\n if (el) {\n el.focus();\n }\n };\n BaseDropZonePanel.prototype.getNonGhostColumns = function () {\n var _this = this;\n var existingColumns = this.getExistingColumns();\n if (this.isPotentialDndColumns()) {\n return existingColumns.filter(function (column) { return !agGridCommunity._.includes(_this.potentialDndColumns, column); });\n }\n return existingColumns;\n };\n BaseDropZonePanel.prototype.addColumnsToGui = function () {\n var _this = this;\n var nonGhostColumns = this.getNonGhostColumns();\n var addingGhosts = this.isPotentialDndColumns();\n var itemsToAddToGui = [];\n nonGhostColumns.forEach(function (column, index) {\n if (addingGhosts && index >= _this.insertIndex) {\n return;\n }\n var columnComponent = _this.createColumnComponent(column, false);\n itemsToAddToGui.push(columnComponent);\n });\n if (this.isPotentialDndColumns()) {\n this.potentialDndColumns.forEach(function (column) {\n var columnComponent = _this.createColumnComponent(column, true);\n itemsToAddToGui.push(columnComponent);\n });\n nonGhostColumns.forEach(function (column, index) {\n if (index < _this.insertIndex) {\n return;\n }\n var columnComponent = _this.createColumnComponent(column, false);\n itemsToAddToGui.push(columnComponent);\n });\n }\n this.appendChild(this.eColumnDropList);\n itemsToAddToGui.forEach(function (columnComponent, index) {\n if (index > 0) {\n _this.addArrow(_this.eColumnDropList);\n }\n _this.eColumnDropList.appendChild(columnComponent.getGui());\n });\n this.addAriaLabelsToComponents();\n };\n BaseDropZonePanel.prototype.addAriaLabelsToComponents = function () {\n var _this = this;\n this.childColumnComponents.forEach(function (comp, idx) {\n var eGui = comp.getGui();\n agGridCommunity._.setAriaPosInSet(eGui, idx + 1);\n agGridCommunity._.setAriaSetSize(eGui, _this.childColumnComponents.length);\n });\n };\n BaseDropZonePanel.prototype.createColumnComponent = function (column, ghost) {\n var _this = this;\n var columnComponent = new DropZoneColumnComp(column, this.dropTarget, ghost, this.valueColumn, this.horizontal);\n columnComponent.addEventListener(DropZoneColumnComp.EVENT_COLUMN_REMOVE, this.removeColumns.bind(this, [column]));\n this.beans.context.createBean(columnComponent);\n this.guiDestroyFunctions.push(function () { return _this.destroyBean(columnComponent); });\n if (!ghost) {\n this.childColumnComponents.push(columnComponent);\n }\n return columnComponent;\n };\n BaseDropZonePanel.prototype.addIconAndTitleToGui = function () {\n var eGroupIcon = this.params.icon;\n var eTitleBar = document.createElement('div');\n eTitleBar.setAttribute('aria-hidden', 'true');\n this.addElementClasses(eTitleBar, 'title-bar');\n this.addElementClasses(eGroupIcon, 'icon');\n this.addOrRemoveCssClass('ag-column-drop-empty', this.isExistingColumnsEmpty());\n eTitleBar.appendChild(eGroupIcon);\n if (!this.horizontal) {\n var eTitle = document.createElement('span');\n this.addElementClasses(eTitle, 'title');\n eTitle.innerHTML = this.params.title;\n eTitleBar.appendChild(eTitle);\n }\n this.appendChild(eTitleBar);\n };\n BaseDropZonePanel.prototype.isExistingColumnsEmpty = function () {\n return this.getExistingColumns().length === 0;\n };\n BaseDropZonePanel.prototype.addEmptyMessageToGui = function () {\n if (!this.isExistingColumnsEmpty() || this.isPotentialDndColumns()) {\n return;\n }\n var eMessage = document.createElement('span');\n eMessage.innerHTML = this.params.emptyMessage;\n this.addElementClasses(eMessage, 'empty-message');\n this.eColumnDropList.appendChild(eMessage);\n };\n BaseDropZonePanel.prototype.addArrow = function (eParent) {\n // only add the arrows if the layout is horizontal\n if (this.horizontal) {\n // for RTL it's a left arrow, otherwise it's a right arrow\n var enableRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n var icon = agGridCommunity._.createIconNoSpan(enableRtl ? 'smallLeft' : 'smallRight', this.beans.gridOptionsWrapper);\n this.addElementClasses(icon, 'cell-separator');\n eParent.appendChild(icon);\n }\n };\n BaseDropZonePanel.STATE_NOT_DRAGGING = 'notDragging';\n BaseDropZonePanel.STATE_NEW_COLUMNS_IN = 'newColumnsIn';\n BaseDropZonePanel.STATE_REARRANGE_COLUMNS = 'rearrangeColumns';\n __decorate$g([\n agGridCommunity.Autowired('focusService')\n ], BaseDropZonePanel.prototype, \"focusService\", void 0);\n return BaseDropZonePanel;\n}(agGridCommunity.Component));\n\nvar __extends$h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowGroupDropZonePanel = /** @class */ (function (_super) {\n __extends$h(RowGroupDropZonePanel, _super);\n function RowGroupDropZonePanel(horizontal) {\n return _super.call(this, horizontal, false) || this;\n }\n RowGroupDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsWrapper: this.gridOptionsWrapper,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('rowGroupColumnsEmptyMessage', 'Drag here to set row groups');\n var title = localeTextFunc('groups', 'Row Groups');\n _super.prototype.init.call(this, {\n dragAndDropIcon: agGridCommunity.DragAndDropService.ICON_GROUP,\n icon: agGridCommunity._.createIconNoSpan('rowGroupPanel', this.gridOptionsWrapper, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.refreshGui.bind(this));\n };\n RowGroupDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate('ariaRowGroupDropZonePanelLabel', 'Row Groups');\n return label;\n };\n RowGroupDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'rowGroupColumnsList';\n return res;\n };\n RowGroupDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsWrapper.isFunctionsReadOnly() || !column.isPrimary()) {\n return false;\n }\n return column.isAllowRowGroup() && !column.isRowGroupActive();\n };\n RowGroupDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n columns: columns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setRowGroupColumns(columns, \"toolPanelUi\");\n }\n };\n RowGroupDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? agGridCommunity.DragAndDropService.ICON_GROUP : agGridCommunity.DragAndDropService.ICON_NOT_ALLOWED;\n };\n RowGroupDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getRowGroupColumns();\n };\n __decorate$h([\n agGridCommunity.Autowired('columnModel')\n ], RowGroupDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$h([\n agGridCommunity.Autowired('loggerFactory')\n ], RowGroupDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$h([\n agGridCommunity.Autowired('dragAndDropService')\n ], RowGroupDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$h([\n agGridCommunity.Autowired('columnApi')\n ], RowGroupDropZonePanel.prototype, \"columnApi\", void 0);\n __decorate$h([\n agGridCommunity.Autowired('gridApi')\n ], RowGroupDropZonePanel.prototype, \"gridApi\", void 0);\n __decorate$h([\n agGridCommunity.PostConstruct\n ], RowGroupDropZonePanel.prototype, \"passBeansUp\", null);\n return RowGroupDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotDropZonePanel = /** @class */ (function (_super) {\n __extends$i(PivotDropZonePanel, _super);\n function PivotDropZonePanel(horizontal) {\n return _super.call(this, horizontal, false) || this;\n }\n PivotDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsWrapper: this.gridOptionsWrapper,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('pivotColumnsEmptyMessage', 'Drag here to set column labels');\n var title = localeTextFunc('pivots', 'Column Labels');\n _super.prototype.init.call(this, {\n dragAndDropIcon: agGridCommunity.DragAndDropService.ICON_GROUP,\n icon: agGridCommunity._.createIconNoSpan('pivotPanel', this.gridOptionsWrapper, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.refresh.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_CHANGED, this.refresh.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.checkVisibility.bind(this));\n this.refresh();\n };\n PivotDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate('ariaPivotDropZonePanelLabel', 'Column Labels');\n return label;\n };\n PivotDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'pivotColumnsList';\n return res;\n };\n PivotDropZonePanel.prototype.refresh = function () {\n this.checkVisibility();\n this.refreshGui();\n };\n PivotDropZonePanel.prototype.checkVisibility = function () {\n var pivotMode = this.columnModel.isPivotMode();\n if (this.isHorizontal()) {\n // what we do for horizontal (ie the pivot panel at the top) depends\n // on the user property as well as pivotMode.\n switch (this.gridOptionsWrapper.getPivotPanelShow()) {\n case 'always':\n this.setDisplayed(pivotMode);\n break;\n case 'onlyWhenPivoting':\n var pivotActive = this.columnModel.isPivotActive();\n this.setDisplayed(pivotMode && pivotActive);\n break;\n default:\n // never show it\n this.setDisplayed(false);\n break;\n }\n }\n else {\n // in toolPanel, the pivot panel is always shown when pivot mode is on\n this.setDisplayed(pivotMode);\n }\n };\n PivotDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsWrapper.isFunctionsReadOnly() || !column.isPrimary()) {\n return false;\n }\n return column.isAllowPivot() && !column.isPivotActive();\n };\n PivotDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: agGridCommunity.Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n columns: columns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setPivotColumns(columns, \"toolPanelUi\");\n }\n };\n PivotDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? agGridCommunity.DragAndDropService.ICON_PIVOT : agGridCommunity.DragAndDropService.ICON_NOT_ALLOWED;\n };\n PivotDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getPivotColumns();\n };\n __decorate$i([\n agGridCommunity.Autowired('columnModel')\n ], PivotDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$i([\n agGridCommunity.Autowired('loggerFactory')\n ], PivotDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$i([\n agGridCommunity.Autowired('dragAndDropService')\n ], PivotDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$i([\n agGridCommunity.Autowired('columnApi')\n ], PivotDropZonePanel.prototype, \"columnApi\", void 0);\n __decorate$i([\n agGridCommunity.Autowired('gridApi')\n ], PivotDropZonePanel.prototype, \"gridApi\", void 0);\n __decorate$i([\n agGridCommunity.PostConstruct\n ], PivotDropZonePanel.prototype, \"passBeansUp\", null);\n return PivotDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderDropZones = /** @class */ (function (_super) {\n __extends$j(GridHeaderDropZones, _super);\n function GridHeaderDropZones() {\n return _super.call(this) || this;\n }\n GridHeaderDropZones.prototype.postConstruct = function () {\n this.setGui(this.createNorthPanel());\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.onRowGroupChanged.bind(this));\n this.onRowGroupChanged();\n };\n GridHeaderDropZones.prototype.createNorthPanel = function () {\n var topPanelGui = document.createElement('div');\n var dropPanelVisibleListener = this.onDropPanelVisible.bind(this);\n topPanelGui.classList.add('ag-column-drop-wrapper');\n agGridCommunity._.setAriaRole(topPanelGui, 'presentation');\n this.rowGroupComp = new RowGroupDropZonePanel(true);\n this.createManagedBean(this.rowGroupComp);\n this.pivotComp = new PivotDropZonePanel(true);\n this.createManagedBean(this.pivotComp);\n topPanelGui.appendChild(this.rowGroupComp.getGui());\n topPanelGui.appendChild(this.pivotComp.getGui());\n this.addManagedListener(this.rowGroupComp, agGridCommunity.Component.EVENT_DISPLAYED_CHANGED, dropPanelVisibleListener);\n this.addManagedListener(this.pivotComp, agGridCommunity.Component.EVENT_DISPLAYED_CHANGED, dropPanelVisibleListener);\n this.onDropPanelVisible();\n return topPanelGui;\n };\n GridHeaderDropZones.prototype.onDropPanelVisible = function () {\n var bothDisplayed = this.rowGroupComp.isDisplayed() && this.pivotComp.isDisplayed();\n this.rowGroupComp.addOrRemoveCssClass('ag-column-drop-horizontal-half-width', bothDisplayed);\n this.pivotComp.addOrRemoveCssClass('ag-column-drop-horizontal-half-width', bothDisplayed);\n };\n GridHeaderDropZones.prototype.onRowGroupChanged = function () {\n if (!this.rowGroupComp) {\n return;\n }\n var rowGroupPanelShow = this.gridOptionsWrapper.getRowGroupPanelShow();\n if (rowGroupPanelShow === agGridCommunity.Constants.ALWAYS) {\n this.rowGroupComp.setDisplayed(true);\n }\n else if (rowGroupPanelShow === agGridCommunity.Constants.ONLY_WHEN_GROUPING) {\n var grouping = !this.columnModel.isRowGroupEmpty();\n this.rowGroupComp.setDisplayed(grouping);\n }\n else {\n this.rowGroupComp.setDisplayed(false);\n }\n };\n __decorate$j([\n agGridCommunity.Autowired('columnModel')\n ], GridHeaderDropZones.prototype, \"columnModel\", void 0);\n __decorate$j([\n agGridCommunity.PostConstruct\n ], GridHeaderDropZones.prototype, \"postConstruct\", null);\n return GridHeaderDropZones;\n}(agGridCommunity.Component));\n\nvar __extends$k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterAggregatesStage = /** @class */ (function (_super) {\n __extends$k(FilterAggregatesStage, _super);\n function FilterAggregatesStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterAggregatesStage.prototype.execute = function (params) {\n var _this = this;\n var isPivotMode = this.columnModel.isPivotMode();\n var isAggFilterActive = this.filterManager.isAggregateFilterPresent();\n // This is the default filter for applying only to leaf nodes, realistically this should not apply as primary agg columns,\n // should not be applied by the filterManager if getGroupAggFiltering is missing. Predicate will apply filters to leaf level.\n var defaultPrimaryColumnPredicate = function (params) { return !params.node.group; };\n // Default secondary column predicate, selecting only leaf level groups.\n var defaultSecondaryColumnPredicate = (function (params) { return params.node.leafGroup; });\n // The predicate to determine whether filters should apply to this row. Either defined by the user in groupAggFiltering or a default depending\n // on current pivot mode status.\n var applyFilterToNode = this.gridOptionsWrapper.getGroupAggFiltering()\n || (isPivotMode ? defaultSecondaryColumnPredicate : defaultPrimaryColumnPredicate);\n var changedPath = params.changedPath;\n var preserveChildren = function (node, recursive) {\n if (recursive === void 0) { recursive = false; }\n if (node.childrenAfterFilter) {\n node.childrenAfterAggFilter = node.childrenAfterFilter;\n if (recursive) {\n node.childrenAfterAggFilter.forEach(function (child) { return preserveChildren(child, recursive); });\n }\n _this.setAllChildrenCount(node);\n }\n if (node.sibling) {\n node.sibling.childrenAfterAggFilter = node.childrenAfterAggFilter;\n }\n };\n var filterChildren = function (node) {\n var _a;\n node.childrenAfterAggFilter = ((_a = node.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.filter(function (child) {\n var _a;\n var shouldFilterRow = applyFilterToNode({ node: child });\n if (shouldFilterRow) {\n var doesNodePassFilter = _this.filterManager.doesRowPassAggregateFilters({ rowNode: child });\n if (doesNodePassFilter) {\n // Node has passed, so preserve children\n preserveChildren(child, true);\n return true;\n }\n }\n var hasChildPassed = (_a = child.childrenAfterAggFilter) === null || _a === void 0 ? void 0 : _a.length;\n return hasChildPassed;\n })) || null;\n _this.setAllChildrenCount(node);\n if (node.sibling) {\n node.sibling.childrenAfterAggFilter = node.childrenAfterAggFilter;\n }\n };\n changedPath.forEachChangedNodeDepthFirst(isAggFilterActive ? filterChildren : preserveChildren, true);\n };\n FilterAggregatesStage.prototype.setAllChildrenCountTreeData = function (rowNode) {\n // for tree data, we include all children, groups and leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterAggFilter.forEach(function (child) {\n // include child itself\n allChildrenCount++;\n // include children of children\n allChildrenCount += child.allChildrenCount;\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterAggregatesStage.prototype.setAllChildrenCountGridGrouping = function (rowNode) {\n // for grid data, we only count the leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterAggFilter.forEach(function (child) {\n if (child.group) {\n allChildrenCount += child.allChildrenCount;\n }\n else {\n allChildrenCount++;\n }\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterAggregatesStage.prototype.setAllChildrenCount = function (rowNode) {\n if (!rowNode.hasChildren()) {\n rowNode.setAllChildrenCount(null);\n return;\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n this.setAllChildrenCountTreeData(rowNode);\n }\n else {\n this.setAllChildrenCountGridGrouping(rowNode);\n }\n };\n __decorate$k([\n agGridCommunity.Autowired('filterManager')\n ], FilterAggregatesStage.prototype, \"filterManager\", void 0);\n __decorate$k([\n agGridCommunity.Autowired('columnModel')\n ], FilterAggregatesStage.prototype, \"columnModel\", void 0);\n FilterAggregatesStage = __decorate$k([\n agGridCommunity.Bean('filterAggregatesStage')\n ], FilterAggregatesStage);\n return FilterAggregatesStage;\n}(agGridCommunity.BeanStub));\n\nvar RowGroupingModule = {\n moduleName: agGridCommunity.ModuleNames.RowGroupingModule,\n beans: [AggregationStage, FilterAggregatesStage, GroupStage, PivotColDefService, PivotStage, AggFuncService],\n agStackComponents: [\n { componentName: 'AgGridHeaderDropZones', componentClass: GridHeaderDropZones }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValuesDropZonePanel = /** @class */ (function (_super) {\n __extends$l(ValuesDropZonePanel, _super);\n function ValuesDropZonePanel(horizontal) {\n return _super.call(this, horizontal, true) || this;\n }\n ValuesDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsWrapper: this.gridOptionsWrapper,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('valueColumnsEmptyMessage', 'Drag here to aggregate');\n var title = localeTextFunc('values', 'Values');\n _super.prototype.init.call(this, {\n dragAndDropIcon: agGridCommunity.DragAndDropService.ICON_AGGREGATE,\n icon: agGridCommunity._.createIconNoSpan('valuePanel', this.gridOptionsWrapper, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_VALUE_CHANGED, this.refreshGui.bind(this));\n };\n ValuesDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate('ariaValuesDropZonePanelLabel', 'Values');\n return label;\n };\n ValuesDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'valueColumnsList';\n return res;\n };\n ValuesDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? agGridCommunity.DragAndDropService.ICON_AGGREGATE : agGridCommunity.DragAndDropService.ICON_NOT_ALLOWED;\n };\n ValuesDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsWrapper.isFunctionsReadOnly() || !column.isPrimary()) {\n return false;\n }\n return column.isAllowValue() && !column.isValueActive();\n };\n ValuesDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n var event_1 = {\n type: agGridCommunity.Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n columns: columns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setValueColumns(columns, \"toolPanelUi\");\n }\n };\n ValuesDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getValueColumns();\n };\n __decorate$l([\n agGridCommunity.Autowired('columnModel')\n ], ValuesDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$l([\n agGridCommunity.Autowired('loggerFactory')\n ], ValuesDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$l([\n agGridCommunity.Autowired('dragAndDropService')\n ], ValuesDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$l([\n agGridCommunity.Autowired('columnApi')\n ], ValuesDropZonePanel.prototype, \"columnApi\", void 0);\n __decorate$l([\n agGridCommunity.Autowired('gridApi')\n ], ValuesDropZonePanel.prototype, \"gridApi\", void 0);\n __decorate$l([\n agGridCommunity.PostConstruct\n ], ValuesDropZonePanel.prototype, \"passBeansUp\", null);\n return ValuesDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PrimaryColsPanel = /** @class */ (function (_super) {\n __extends$m(PrimaryColsPanel, _super);\n function PrimaryColsPanel() {\n return _super.call(this, PrimaryColsPanel.TEMPLATE) || this;\n }\n PrimaryColsPanel.prototype.postConstruct = function () {\n this.initialiseTabGuard({});\n };\n // we allow dragging in the toolPanel, but not when this component appears in the column menu\n PrimaryColsPanel.prototype.init = function (allowDragging, params, eventType) {\n this.allowDragging = allowDragging;\n this.params = params;\n this.eventType = eventType;\n this.primaryColsHeaderPanel.init(this.params);\n var hideFilter = this.params.suppressColumnFilter;\n var hideSelect = this.params.suppressColumnSelectAll;\n var hideExpand = this.params.suppressColumnExpandAll;\n if (hideExpand && hideFilter && hideSelect) {\n this.primaryColsHeaderPanel.setDisplayed(false);\n }\n this.addManagedListener(this.primaryColsListPanel, 'groupExpanded', this.onGroupExpanded.bind(this));\n this.addManagedListener(this.primaryColsListPanel, 'selectionChanged', this.onSelectionChange.bind(this));\n this.primaryColsListPanel.init(this.params, this.allowDragging, this.eventType);\n this.addManagedListener(this.primaryColsHeaderPanel, 'expandAll', this.onExpandAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'collapseAll', this.onCollapseAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'selectAll', this.onSelectAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'unselectAll', this.onUnselectAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'filterChanged', this.onFilterChanged.bind(this));\n this.positionableFeature = new agGridCommunity.PositionableFeature(this.getGui(), { minHeight: 100 });\n this.createManagedBean(this.positionableFeature);\n };\n PrimaryColsPanel.prototype.toggleResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable ? { bottom: true } : false);\n };\n PrimaryColsPanel.prototype.onExpandAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(true);\n };\n PrimaryColsPanel.prototype.onCollapseAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(false);\n };\n PrimaryColsPanel.prototype.expandGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(true, groupIds);\n };\n PrimaryColsPanel.prototype.collapseGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(false, groupIds);\n };\n PrimaryColsPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsListPanel.setColumnLayout(colDefs);\n };\n PrimaryColsPanel.prototype.onFilterChanged = function (event) {\n this.primaryColsListPanel.setFilterText(event.filterText);\n };\n PrimaryColsPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsListPanel.onColumnsChanged();\n };\n PrimaryColsPanel.prototype.onSelectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(true);\n };\n PrimaryColsPanel.prototype.onUnselectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(false);\n };\n PrimaryColsPanel.prototype.onGroupExpanded = function (event) {\n this.primaryColsHeaderPanel.setExpandState(event.state);\n };\n PrimaryColsPanel.prototype.onSelectionChange = function (event) {\n this.primaryColsHeaderPanel.setSelectionState(event.state);\n };\n PrimaryColsPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$m([\n agGridCommunity.RefSelector('primaryColsHeaderPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsHeaderPanel\", void 0);\n __decorate$m([\n agGridCommunity.RefSelector('primaryColsListPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsListPanel\", void 0);\n __decorate$m([\n agGridCommunity.PostConstruct\n ], PrimaryColsPanel.prototype, \"postConstruct\", null);\n return PrimaryColsPanel;\n}(agGridCommunity.TabGuardComp));\n\nvar __extends$n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnToolPanel = /** @class */ (function (_super) {\n __extends$n(ColumnToolPanel, _super);\n function ColumnToolPanel() {\n var _this = _super.call(this, ColumnToolPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.childDestroyFuncs = [];\n return _this;\n }\n // lazy initialise the panel\n ColumnToolPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n ColumnToolPanel.prototype.init = function (params) {\n var _this = this;\n var defaultParams = {\n suppressColumnMove: false,\n suppressColumnSelectAll: false,\n suppressColumnFilter: false,\n suppressColumnExpandAll: false,\n contractColumnSelection: false,\n suppressPivotMode: false,\n suppressRowGroups: false,\n suppressValues: false,\n suppressPivots: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n agGridCommunity._.mergeDeep(defaultParams, params);\n this.params = defaultParams;\n if (this.isRowGroupingModuleLoaded() && !this.params.suppressPivotMode) {\n this.pivotModePanel = this.createBean(new PivotModePanel()); // DO NOT CHANGE TO createManagedBean\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotModePanel); });\n this.appendChild(this.pivotModePanel);\n }\n this.primaryColsPanel = this.createBean(new PrimaryColsPanel()); // DO NOT CHANGE TO createManagedBean\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.primaryColsPanel); });\n this.primaryColsPanel.init(true, this.params, \"toolPanelUi\");\n this.primaryColsPanel.addCssClass('ag-column-panel-column-select');\n this.appendChild(this.primaryColsPanel);\n if (this.isRowGroupingModuleLoaded()) {\n if (!this.params.suppressRowGroups) {\n this.rowGroupDropZonePanel = this.createBean(new RowGroupDropZonePanel(false)); // DO NOT CHANGE TO createManagedBean\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.rowGroupDropZonePanel); });\n this.appendChild(this.rowGroupDropZonePanel);\n }\n if (!this.params.suppressValues) {\n this.valuesDropZonePanel = this.createBean(new ValuesDropZonePanel(false)); // DO NOT CHANGE TO createManagedBean\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.valuesDropZonePanel); });\n this.appendChild(this.valuesDropZonePanel);\n }\n if (!this.params.suppressPivots) {\n this.pivotDropZonePanel = this.createBean(new PivotDropZonePanel(false)); // DO NOT CHANGE TO createManagedBean\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotDropZonePanel); });\n this.appendChild(this.pivotDropZonePanel);\n }\n this.setLastVisible();\n var pivotModeListener_1 = this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () {\n _this.resetChildrenHeight();\n _this.setLastVisible();\n });\n this.childDestroyFuncs.push(function () { return pivotModeListener_1(); });\n }\n this.initialised = true;\n };\n ColumnToolPanel.prototype.setPivotModeSectionVisible = function (visible) {\n var _this = this;\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.pivotModePanel) {\n this.pivotModePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotModePanel = this.createBean(new PivotModePanel());\n // ensure pivot mode panel is positioned at the top of the columns tool panel\n this.getGui().insertBefore(this.pivotModePanel.getGui(), this.getGui().firstChild);\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotModePanel); });\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setRowGroupsSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.rowGroupDropZonePanel) {\n this.rowGroupDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.rowGroupDropZonePanel = this.createManagedBean(new RowGroupDropZonePanel(false));\n this.appendChild(this.rowGroupDropZonePanel);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setValuesSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.valuesDropZonePanel) {\n this.valuesDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.valuesDropZonePanel = this.createManagedBean(new ValuesDropZonePanel(false));\n this.appendChild(this.valuesDropZonePanel);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setPivotSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.pivotDropZonePanel) {\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotDropZonePanel = this.createManagedBean(new PivotDropZonePanel(false));\n this.appendChild(this.pivotDropZonePanel);\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setResizers = function () {\n [\n this.primaryColsPanel,\n this.rowGroupDropZonePanel,\n this.valuesDropZonePanel,\n this.pivotDropZonePanel\n ].forEach(function (panel) {\n if (!panel) {\n return;\n }\n var eGui = panel.getGui();\n panel.toggleResizable(!eGui.classList.contains('ag-last-column-drop') && !eGui.classList.contains('ag-hidden'));\n });\n };\n ColumnToolPanel.prototype.setLastVisible = function () {\n var eGui = this.getGui();\n var columnDrops = Array.prototype.slice.call(eGui.querySelectorAll('.ag-column-drop'));\n columnDrops.forEach(function (columnDrop) { return columnDrop.classList.remove('ag-last-column-drop'); });\n var columnDropEls = eGui.querySelectorAll('.ag-column-drop:not(.ag-hidden)');\n var lastVisible = agGridCommunity._.last(columnDropEls);\n if (lastVisible) {\n lastVisible.classList.add('ag-last-column-drop');\n }\n this.setResizers();\n };\n ColumnToolPanel.prototype.resetChildrenHeight = function () {\n var eGui = this.getGui();\n var children = eGui.children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n child.style.removeProperty('height');\n child.style.removeProperty('flex');\n }\n };\n ColumnToolPanel.prototype.isRowGroupingModuleLoaded = function () {\n return agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.RowGroupingModule, 'Row Grouping');\n };\n ColumnToolPanel.prototype.expandColumnGroups = function (groupIds) {\n this.primaryColsPanel.expandGroups(groupIds);\n };\n ColumnToolPanel.prototype.collapseColumnGroups = function (groupIds) {\n this.primaryColsPanel.collapseGroups(groupIds);\n };\n ColumnToolPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsPanel.setColumnLayout(colDefs);\n };\n ColumnToolPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsPanel.syncLayoutWithGrid();\n };\n ColumnToolPanel.prototype.destroyChildren = function () {\n this.childDestroyFuncs.forEach(function (func) { return func(); });\n this.childDestroyFuncs.length = 0;\n agGridCommunity._.clearElement(this.getGui());\n };\n ColumnToolPanel.prototype.refresh = function () {\n this.destroyChildren();\n this.init(this.params);\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so this must be public.\n ColumnToolPanel.prototype.destroy = function () {\n this.destroyChildren();\n _super.prototype.destroy.call(this);\n };\n ColumnToolPanel.TEMPLATE = \"
\";\n __decorate$n([\n agGridCommunity.Autowired(\"gridApi\")\n ], ColumnToolPanel.prototype, \"gridApi\", void 0);\n __decorate$n([\n agGridCommunity.Autowired(\"columnApi\")\n ], ColumnToolPanel.prototype, \"columnApi\", void 0);\n return ColumnToolPanel;\n}(agGridCommunity.Component));\n\nvar __extends$o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HorizontalResizeComp = /** @class */ (function (_super) {\n __extends$o(HorizontalResizeComp, _super);\n function HorizontalResizeComp() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.minWidth = 100;\n _this.maxWidth = null;\n return _this;\n }\n HorizontalResizeComp.prototype.setElementToResize = function (elementToResize) {\n this.elementToResize = elementToResize;\n };\n HorizontalResizeComp.prototype.postConstruct = function () {\n var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.getGui(),\n dragStartPixels: 1,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this),\n onResizeEnd: this.onResizing.bind(this)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n this.setInverted(this.gridOptionsWrapper.isEnableRtl());\n };\n HorizontalResizeComp.prototype.onResizeStart = function () {\n this.startingWidth = this.elementToResize.offsetWidth;\n };\n HorizontalResizeComp.prototype.onResizing = function (delta) {\n var direction = this.inverted ? -1 : 1;\n var newWidth = Math.max(this.minWidth, Math.floor(this.startingWidth - (delta * direction)));\n if (this.maxWidth != null) {\n newWidth = Math.min(this.maxWidth, newWidth);\n }\n this.elementToResize.style.width = newWidth + \"px\";\n };\n HorizontalResizeComp.prototype.setInverted = function (inverted) {\n this.inverted = inverted;\n };\n HorizontalResizeComp.prototype.setMaxWidth = function (value) {\n this.maxWidth = value;\n };\n HorizontalResizeComp.prototype.setMinWidth = function (value) {\n if (value != null) {\n this.minWidth = value;\n }\n else {\n this.minWidth = 100;\n }\n };\n __decorate$o([\n agGridCommunity.Autowired('horizontalResizeService')\n ], HorizontalResizeComp.prototype, \"horizontalResizeService\", void 0);\n __decorate$o([\n agGridCommunity.PostConstruct\n ], HorizontalResizeComp.prototype, \"postConstruct\", null);\n return HorizontalResizeComp;\n}(agGridCommunity.Component));\n\nvar __extends$p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarButtonComp = /** @class */ (function (_super) {\n __extends$p(SideBarButtonComp, _super);\n function SideBarButtonComp(toolPanelDef) {\n var _this = _super.call(this) || this;\n _this.toolPanelDef = toolPanelDef;\n return _this;\n }\n SideBarButtonComp.prototype.getToolPanelId = function () {\n return this.toolPanelDef.id;\n };\n SideBarButtonComp.prototype.postConstruct = function () {\n var template = this.createTemplate();\n this.setTemplate(template);\n this.eIconWrapper.insertAdjacentElement('afterbegin', agGridCommunity._.createIconNoSpan(this.toolPanelDef.iconKey, this.gridOptionsWrapper));\n this.addManagedListener(this.eToggleButton, 'click', this.onButtonPressed.bind(this));\n };\n SideBarButtonComp.prototype.createTemplate = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var def = this.toolPanelDef;\n var label = translate(def.labelKey, def.labelDefault);\n var res = /* html */ \"
\\n \\n
\";\n return res;\n };\n SideBarButtonComp.prototype.onButtonPressed = function () {\n this.dispatchEvent({ type: SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED });\n };\n SideBarButtonComp.prototype.setSelected = function (selected) {\n this.addOrRemoveCssClass('ag-selected', selected);\n };\n SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED = 'toggleButtonClicked';\n __decorate$p([\n agGridCommunity.RefSelector('eToggleButton')\n ], SideBarButtonComp.prototype, \"eToggleButton\", void 0);\n __decorate$p([\n agGridCommunity.RefSelector('eIconWrapper')\n ], SideBarButtonComp.prototype, \"eIconWrapper\", void 0);\n __decorate$p([\n agGridCommunity.PostConstruct\n ], SideBarButtonComp.prototype, \"postConstruct\", null);\n return SideBarButtonComp;\n}(agGridCommunity.Component));\n\nvar __extends$q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarButtonsComp = /** @class */ (function (_super) {\n __extends$q(SideBarButtonsComp, _super);\n function SideBarButtonsComp() {\n var _this = _super.call(this, SideBarButtonsComp.TEMPLATE) || this;\n _this.buttonComps = [];\n return _this;\n }\n SideBarButtonsComp.prototype.postConstruct = function () {\n this.addManagedListener(this.getFocusableElement(), 'keydown', this.handleKeyDown.bind(this));\n };\n SideBarButtonsComp.prototype.handleKeyDown = function (e) {\n if (e.key !== agGridCommunity.KeyCode.TAB || !e.shiftKey) {\n return;\n }\n var lastColumn = agGridCommunity._.last(this.columnModel.getAllDisplayedColumns());\n if (this.focusService.focusGridView(lastColumn, true)) {\n e.preventDefault();\n }\n };\n SideBarButtonsComp.prototype.setToolPanelDefs = function (toolPanelDefs) {\n toolPanelDefs.forEach(this.addButtonComp.bind(this));\n };\n SideBarButtonsComp.prototype.setActiveButton = function (id) {\n this.buttonComps.forEach(function (comp) {\n comp.setSelected(id === comp.getToolPanelId());\n });\n };\n SideBarButtonsComp.prototype.addButtonComp = function (def) {\n var _this = this;\n var buttonComp = this.createBean(new SideBarButtonComp(def));\n this.buttonComps.push(buttonComp);\n this.appendChild(buttonComp);\n buttonComp.addEventListener(SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED, function () {\n _this.dispatchEvent({\n type: SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED,\n toolPanelId: def.id\n });\n });\n };\n SideBarButtonsComp.prototype.clearButtons = function () {\n this.buttonComps = this.destroyBeans(this.buttonComps);\n agGridCommunity._.clearElement(this.getGui());\n };\n SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED = 'sideBarButtonClicked';\n SideBarButtonsComp.TEMPLATE = \"
\";\n __decorate$q([\n agGridCommunity.Autowired('focusService')\n ], SideBarButtonsComp.prototype, \"focusService\", void 0);\n __decorate$q([\n agGridCommunity.Autowired('columnModel')\n ], SideBarButtonsComp.prototype, \"columnModel\", void 0);\n __decorate$q([\n agGridCommunity.PostConstruct\n ], SideBarButtonsComp.prototype, \"postConstruct\", null);\n __decorate$q([\n agGridCommunity.PreDestroy\n ], SideBarButtonsComp.prototype, \"clearButtons\", null);\n return SideBarButtonsComp;\n}(agGridCommunity.Component));\n\nvar __extends$r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelWrapper = /** @class */ (function (_super) {\n __extends$r(ToolPanelWrapper, _super);\n function ToolPanelWrapper() {\n return _super.call(this, ToolPanelWrapper.TEMPLATE) || this;\n }\n ToolPanelWrapper.prototype.setupResize = function () {\n var eGui = this.getGui();\n var resizeBar = this.resizeBar = new HorizontalResizeComp();\n this.getContext().createBean(resizeBar);\n resizeBar.setElementToResize(eGui);\n this.appendChild(resizeBar);\n };\n ToolPanelWrapper.prototype.getToolPanelId = function () {\n return this.toolPanelId;\n };\n ToolPanelWrapper.prototype.setToolPanelDef = function (toolPanelDef) {\n var id = toolPanelDef.id, minWidth = toolPanelDef.minWidth, maxWidth = toolPanelDef.maxWidth, width = toolPanelDef.width;\n this.toolPanelId = id;\n this.width = width;\n var params = {};\n var compDetails = this.userComponentFactory.getToolPanelCompDetails(toolPanelDef, params);\n var componentPromise = compDetails.newAgStackInstance();\n if (componentPromise == null) {\n console.warn(\"AG Grid: error processing tool panel component \" + id + \". You need to specify either 'toolPanel' or 'toolPanelFramework'\");\n return;\n }\n componentPromise.then(this.setToolPanelComponent.bind(this));\n if (minWidth != null) {\n this.resizeBar.setMinWidth(minWidth);\n }\n if (maxWidth != null) {\n this.resizeBar.setMaxWidth(maxWidth);\n }\n };\n ToolPanelWrapper.prototype.setToolPanelComponent = function (compInstance) {\n var _this = this;\n this.toolPanelCompInstance = compInstance;\n this.appendChild(compInstance.getGui());\n this.addDestroyFunc(function () {\n _this.destroyBean(compInstance);\n });\n if (this.width) {\n this.getGui().style.width = this.width + \"px\";\n }\n };\n ToolPanelWrapper.prototype.getToolPanelInstance = function () {\n return this.toolPanelCompInstance;\n };\n ToolPanelWrapper.prototype.setResizerSizerSide = function (side) {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var isLeft = side === 'left';\n var inverted = isRtl ? isLeft : !isLeft;\n this.resizeBar.setInverted(inverted);\n };\n ToolPanelWrapper.prototype.refresh = function () {\n this.toolPanelCompInstance.refresh();\n };\n ToolPanelWrapper.TEMPLATE = \"
\";\n __decorate$r([\n agGridCommunity.Autowired(\"userComponentFactory\")\n ], ToolPanelWrapper.prototype, \"userComponentFactory\", void 0);\n __decorate$r([\n agGridCommunity.PostConstruct\n ], ToolPanelWrapper.prototype, \"setupResize\", null);\n return ToolPanelWrapper;\n}(agGridCommunity.Component));\n\nvar __extends$s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarComp = /** @class */ (function (_super) {\n __extends$s(SideBarComp, _super);\n function SideBarComp() {\n var _this = _super.call(this, SideBarComp.TEMPLATE) || this;\n _this.toolPanelWrappers = [];\n return _this;\n }\n SideBarComp.prototype.postConstruct = function () {\n var _this = this;\n this.sideBarButtonsComp.addEventListener(SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED, this.onToolPanelButtonClicked.bind(this));\n this.setSideBarDef();\n this.gridOptionsWrapper.addEventListener('sideBar', function () {\n _this.clearDownUi();\n _this.setSideBarDef();\n });\n this.gridApi.registerSideBarComp(this);\n this.createManagedBean(new agGridCommunity.ManagedFocusFeature(this.getFocusableElement(), {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n };\n SideBarComp.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var _a = this, focusService = _a.focusService, sideBarButtonsComp = _a.sideBarButtonsComp;\n var eGui = this.getGui();\n var sideBarGui = sideBarButtonsComp.getGui();\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeElement = eDocument.activeElement;\n var openPanel = eGui.querySelector('.ag-tool-panel-wrapper:not(.ag-hidden)');\n if (!openPanel) {\n return;\n }\n if (sideBarGui.contains(activeElement)) {\n if (focusService.focusInto(openPanel, e.shiftKey)) {\n e.preventDefault();\n }\n }\n else {\n if (!focusService.isFocusUnderManagedComponent(openPanel) && e.shiftKey) {\n var firstFocusableEl = focusService.findFocusableElements(openPanel)[0];\n var eDocument_1 = this.gridOptionsWrapper.getDocument();\n if (eDocument_1.activeElement === firstFocusableEl) {\n var selectedButton = sideBarGui.querySelector('.ag-selected button');\n if (selectedButton) {\n e.preventDefault();\n selectedButton.focus();\n }\n }\n }\n }\n };\n SideBarComp.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (!this.sideBarButtonsComp.getGui().contains(eDocument.activeElement)) {\n return;\n }\n var sideBarGui = this.sideBarButtonsComp.getGui();\n var buttons = Array.prototype.slice.call(sideBarGui.querySelectorAll('.ag-side-button'));\n var currentButton = eDocument.activeElement;\n var currentPos = buttons.findIndex(function (button) { return button.contains(currentButton); });\n var nextPos = null;\n switch (e.key) {\n case agGridCommunity.KeyCode.LEFT:\n case agGridCommunity.KeyCode.UP:\n nextPos = Math.max(0, currentPos - 1);\n break;\n case agGridCommunity.KeyCode.RIGHT:\n case agGridCommunity.KeyCode.DOWN:\n nextPos = Math.min(currentPos + 1, buttons.length - 1);\n break;\n }\n if (nextPos === null) {\n return;\n }\n var innerButton = buttons[nextPos].querySelector('button');\n if (innerButton) {\n innerButton.focus();\n e.preventDefault();\n }\n };\n SideBarComp.prototype.onToolPanelButtonClicked = function (event) {\n var id = event.toolPanelId;\n var openedItem = this.openedItem();\n // if item was already open, we close it\n if (openedItem === id) {\n this.openToolPanel(undefined); // passing undefined closes\n }\n else {\n this.openToolPanel(id);\n }\n };\n SideBarComp.prototype.clearDownUi = function () {\n this.sideBarButtonsComp.clearButtons();\n this.destroyToolPanelWrappers();\n };\n SideBarComp.prototype.setSideBarDef = function () {\n // initially hide side bar\n this.setDisplayed(false);\n var sideBar = this.gridOptionsWrapper.getSideBar();\n var sideBarExists = !!sideBar && !!sideBar.toolPanels;\n if (!sideBarExists) {\n return;\n }\n var shouldDisplaySideBar = sideBarExists && !sideBar.hiddenByDefault;\n this.setDisplayed(shouldDisplaySideBar);\n var toolPanelDefs = sideBar.toolPanels;\n this.sideBarButtonsComp.setToolPanelDefs(toolPanelDefs);\n this.setupToolPanels(toolPanelDefs);\n this.setSideBarPosition(sideBar.position);\n if (!sideBar.hiddenByDefault) {\n this.openToolPanel(sideBar.defaultToolPanel);\n }\n };\n SideBarComp.prototype.setSideBarPosition = function (position) {\n if (!position) {\n position = 'right';\n }\n var isLeft = position === 'left';\n var resizerSide = isLeft ? 'right' : 'left';\n this.addOrRemoveCssClass('ag-side-bar-left', isLeft);\n this.addOrRemoveCssClass('ag-side-bar-right', !isLeft);\n this.toolPanelWrappers.forEach(function (wrapper) {\n wrapper.setResizerSizerSide(resizerSide);\n });\n return this;\n };\n SideBarComp.prototype.setupToolPanels = function (defs) {\n var _this = this;\n defs.forEach(function (def) {\n if (def.id == null) {\n console.warn(\"AG Grid: please review all your toolPanel components, it seems like at least one of them doesn't have an id\");\n return;\n }\n // helpers, in case user doesn't have the right module loaded\n if (def.toolPanel === 'agColumnsToolPanel') {\n var moduleMissing = !agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.ColumnToolPanelModule, 'Column Tool Panel');\n if (moduleMissing) {\n return;\n }\n }\n if (def.toolPanel === 'agFiltersToolPanel') {\n var moduleMissing = !agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.FiltersToolPanelModule, 'Filters Tool Panel');\n if (moduleMissing) {\n return;\n }\n }\n var wrapper = new ToolPanelWrapper();\n _this.getContext().createBean(wrapper);\n wrapper.setToolPanelDef(def);\n wrapper.setDisplayed(false);\n _this.getGui().appendChild(wrapper.getGui());\n _this.toolPanelWrappers.push(wrapper);\n });\n };\n SideBarComp.prototype.refresh = function () {\n this.toolPanelWrappers.forEach(function (wrapper) { return wrapper.refresh(); });\n };\n SideBarComp.prototype.openToolPanel = function (key) {\n var currentlyOpenedKey = this.openedItem();\n if (currentlyOpenedKey === key) {\n return;\n }\n this.toolPanelWrappers.forEach(function (wrapper) {\n var show = key === wrapper.getToolPanelId();\n wrapper.setDisplayed(show);\n });\n var newlyOpenedKey = this.openedItem();\n var openToolPanelChanged = currentlyOpenedKey !== newlyOpenedKey;\n if (openToolPanelChanged) {\n this.sideBarButtonsComp.setActiveButton(key);\n this.raiseToolPanelVisibleEvent(key);\n }\n };\n SideBarComp.prototype.getToolPanelInstance = function (key) {\n var toolPanelWrapper = this.toolPanelWrappers.filter(function (toolPanel) { return toolPanel.getToolPanelId() === key; })[0];\n if (!toolPanelWrapper) {\n console.warn(\"AG Grid: unable to lookup Tool Panel as invalid key supplied: \" + key);\n return;\n }\n return toolPanelWrapper.getToolPanelInstance();\n };\n SideBarComp.prototype.raiseToolPanelVisibleEvent = function (key) {\n var event = {\n type: agGridCommunity.Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED,\n source: key,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n this.eventService.dispatchEvent(event);\n };\n SideBarComp.prototype.close = function () {\n this.openToolPanel(undefined);\n };\n SideBarComp.prototype.isToolPanelShowing = function () {\n return !!this.openedItem();\n };\n SideBarComp.prototype.openedItem = function () {\n var activeToolPanel = null;\n this.toolPanelWrappers.forEach(function (wrapper) {\n if (wrapper.isDisplayed()) {\n activeToolPanel = wrapper.getToolPanelId();\n }\n });\n return activeToolPanel;\n };\n SideBarComp.prototype.destroyToolPanelWrappers = function () {\n var _this = this;\n this.toolPanelWrappers.forEach(function (wrapper) {\n agGridCommunity._.removeFromParent(wrapper.getGui());\n _this.destroyBean(wrapper);\n });\n this.toolPanelWrappers.length = 0;\n };\n SideBarComp.prototype.destroy = function () {\n this.destroyToolPanelWrappers();\n _super.prototype.destroy.call(this);\n };\n SideBarComp.TEMPLATE = \"
\\n \\n
\";\n __decorate$s([\n agGridCommunity.Autowired('gridApi')\n ], SideBarComp.prototype, \"gridApi\", void 0);\n __decorate$s([\n agGridCommunity.Autowired('focusService')\n ], SideBarComp.prototype, \"focusService\", void 0);\n __decorate$s([\n agGridCommunity.RefSelector('sideBarButtons')\n ], SideBarComp.prototype, \"sideBarButtonsComp\", void 0);\n __decorate$s([\n agGridCommunity.PostConstruct\n ], SideBarComp.prototype, \"postConstruct\", null);\n return SideBarComp;\n}(agGridCommunity.Component));\n\nvar __extends$t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColDefService = /** @class */ (function (_super) {\n __extends$t(ToolPanelColDefService, _super);\n function ToolPanelColDefService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isColGroupDef = function (colDef) { return colDef && typeof colDef.children !== 'undefined'; };\n _this.getId = function (colDef) {\n return _this.isColGroupDef(colDef) ? colDef.groupId : colDef.colId;\n };\n return _this;\n }\n ToolPanelColDefService.prototype.createColumnTree = function (colDefs) {\n var _this = this;\n var invalidColIds = [];\n var createDummyColGroup = function (abstractColDef, depth) {\n if (_this.isColGroupDef(abstractColDef)) {\n // creating 'dummy' group which is not associated with grid column group\n var groupDef = abstractColDef;\n var groupId = (typeof groupDef.groupId !== 'undefined') ? groupDef.groupId : groupDef.headerName;\n var group = new agGridCommunity.ProvidedColumnGroup(groupDef, groupId, false, depth);\n var children_1 = [];\n groupDef.children.forEach(function (def) {\n var child = createDummyColGroup(def, depth + 1);\n // check column exists in case invalid colDef is supplied for primary column\n if (child) {\n children_1.push(child);\n }\n });\n group.setChildren(children_1);\n return group;\n }\n else {\n var colDef = abstractColDef;\n var key = colDef.colId ? colDef.colId : colDef.field;\n var column = _this.columnModel.getPrimaryColumn(key);\n if (!column) {\n invalidColIds.push(colDef);\n }\n return column;\n }\n };\n var mappedResults = [];\n colDefs.forEach(function (colDef) {\n var result = createDummyColGroup(colDef, 0);\n if (result) {\n // only return correctly mapped colDef results\n mappedResults.push(result);\n }\n });\n if (invalidColIds.length > 0) {\n console.warn('AG Grid: unable to find grid columns for the supplied colDef(s):', invalidColIds);\n }\n return mappedResults;\n };\n ToolPanelColDefService.prototype.syncLayoutWithGrid = function (syncLayoutCallback) {\n // extract ordered list of leaf path trees (column group hierarchy for each individual leaf column)\n var leafPathTrees = this.getLeafPathTrees();\n // merge leaf path tree taking split column groups into account\n var mergedColumnTrees = this.mergeLeafPathTrees(leafPathTrees);\n // sync layout with merged column trees\n syncLayoutCallback(mergedColumnTrees);\n };\n ToolPanelColDefService.prototype.getLeafPathTrees = function () {\n // leaf tree paths are obtained by walking up the tree starting at a column until we reach the top level group.\n var getLeafPathTree = function (node, childDef) {\n var leafPathTree;\n // build up tree in reverse order\n if (node instanceof agGridCommunity.ProvidedColumnGroup) {\n if (node.isPadding()) {\n // skip over padding groups\n leafPathTree = childDef;\n }\n else {\n var groupDef = Object.assign({}, node.getColGroupDef());\n // ensure group contains groupId\n groupDef.groupId = node.getGroupId();\n groupDef.children = [childDef];\n leafPathTree = groupDef;\n }\n }\n else {\n var colDef = Object.assign({}, node.getColDef());\n // ensure col contains colId\n colDef.colId = node.getColId();\n leafPathTree = colDef;\n }\n // walk tree\n var parent = node.getOriginalParent();\n if (parent) {\n // keep walking up the tree until we reach the root\n return getLeafPathTree(parent, leafPathTree);\n }\n else {\n // we have reached the root - exit with resulting leaf path tree\n return leafPathTree;\n }\n };\n // obtain a sorted list of all grid columns\n var allGridColumns = this.columnModel.getAllGridColumns();\n // only primary columns and non row group columns should appear in the tool panel\n var allPrimaryGridColumns = allGridColumns.filter(function (column) {\n var colDef = column.getColDef();\n return column.isPrimary() && !colDef.showRowGroup;\n });\n // construct a leaf path tree for each column\n return allPrimaryGridColumns.map(function (col) { return getLeafPathTree(col, col.getColDef()); });\n };\n ToolPanelColDefService.prototype.mergeLeafPathTrees = function (leafPathTrees) {\n var _this = this;\n var matchingRootGroupIds = function (pathA, pathB) {\n var bothPathsAreGroups = _this.isColGroupDef(pathA) && _this.isColGroupDef(pathB);\n return bothPathsAreGroups && _this.getId(pathA) === _this.getId(pathB);\n };\n var mergeTrees = function (treeA, treeB) {\n if (!_this.isColGroupDef(treeB)) {\n return treeA;\n }\n var mergeResult = treeA;\n var groupToMerge = treeB;\n if (groupToMerge.children && groupToMerge.groupId) {\n var added = _this.addChildrenToGroup(mergeResult, groupToMerge.groupId, groupToMerge.children[0]);\n if (added) {\n return mergeResult;\n }\n }\n groupToMerge.children.forEach(function (child) { return mergeTrees(mergeResult, child); });\n return mergeResult;\n };\n // we can't just merge the leaf path trees as groups can be split apart - instead only merge if leaf\n // path groups with the same root group id are contiguous.\n var mergeColDefs = [];\n for (var i = 1; i <= leafPathTrees.length; i++) {\n var first = leafPathTrees[i - 1];\n var second = leafPathTrees[i];\n if (matchingRootGroupIds(first, second)) {\n leafPathTrees[i] = mergeTrees(first, second);\n }\n else {\n mergeColDefs.push(first);\n }\n }\n return mergeColDefs;\n };\n ToolPanelColDefService.prototype.addChildrenToGroup = function (tree, groupId, colDef) {\n var _this = this;\n var subGroupIsSplit = function (currentSubGroup, currentSubGroupToAdd) {\n var existingChildIds = currentSubGroup.children.map(_this.getId);\n var childGroupAlreadyExists = agGridCommunity._.includes(existingChildIds, _this.getId(currentSubGroupToAdd));\n var lastChild = agGridCommunity._.last(currentSubGroup.children);\n var lastChildIsDifferent = lastChild && _this.getId(lastChild) !== _this.getId(currentSubGroupToAdd);\n return childGroupAlreadyExists && lastChildIsDifferent;\n };\n if (!this.isColGroupDef(tree)) {\n return true;\n }\n var currentGroup = tree;\n var groupToAdd = colDef;\n if (subGroupIsSplit(currentGroup, groupToAdd)) {\n currentGroup.children.push(groupToAdd);\n return true;\n }\n if (currentGroup.groupId === groupId) {\n // add children that don't already exist to group\n var existingChildIds = currentGroup.children.map(this.getId);\n var colDefAlreadyPresent = agGridCommunity._.includes(existingChildIds, this.getId(groupToAdd));\n if (!colDefAlreadyPresent) {\n currentGroup.children.push(groupToAdd);\n return true;\n }\n }\n // recurse until correct group is found to add children\n currentGroup.children.forEach(function (subGroup) { return _this.addChildrenToGroup(subGroup, groupId, colDef); });\n return false;\n };\n __decorate$t([\n agGridCommunity.Autowired('columnModel')\n ], ToolPanelColDefService.prototype, \"columnModel\", void 0);\n ToolPanelColDefService = __decorate$t([\n agGridCommunity.Bean('toolPanelColDefService')\n ], ToolPanelColDefService);\n return ToolPanelColDefService;\n}(agGridCommunity.BeanStub));\n\nvar SideBarModule = {\n moduleName: agGridCommunity.ModuleNames.SideBarModule,\n beans: [ToolPanelColDefService],\n agStackComponents: [\n { componentName: 'AgHorizontalResize', componentClass: HorizontalResizeComp },\n { componentName: 'AgSideBar', componentClass: SideBarComp },\n { componentName: 'AgSideBarButtons', componentClass: SideBarButtonsComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ModelItemUtils = /** @class */ (function () {\n function ModelItemUtils() {\n }\n ModelItemUtils.prototype.selectAllChildren = function (colTree, selectAllChecked, eventType) {\n var cols = this.extractAllLeafColumns(colTree);\n this.setAllColumns(cols, selectAllChecked, eventType);\n };\n ModelItemUtils.prototype.setColumn = function (col, selectAllChecked, eventType) {\n this.setAllColumns([col], selectAllChecked, eventType);\n };\n ModelItemUtils.prototype.setAllColumns = function (cols, selectAllChecked, eventType) {\n if (this.columnModel.isPivotMode()) {\n this.setAllPivot(cols, selectAllChecked, eventType);\n }\n else {\n this.setAllVisible(cols, selectAllChecked, eventType);\n }\n };\n ModelItemUtils.prototype.extractAllLeafColumns = function (allItems) {\n var res = [];\n var recursiveFunc = function (items) {\n items.forEach(function (item) {\n if (!item.isPassesFilter()) {\n return;\n }\n if (item.isGroup()) {\n recursiveFunc(item.getChildren());\n }\n else {\n res.push(item.getColumn());\n }\n });\n };\n recursiveFunc(allItems);\n return res;\n };\n ModelItemUtils.prototype.setAllVisible = function (columns, visible, eventType) {\n var colStateItems = [];\n columns.forEach(function (col) {\n if (col.getColDef().lockVisible) {\n return;\n }\n if (col.isVisible() != visible) {\n colStateItems.push({\n colId: col.getId(),\n hide: !visible\n });\n }\n });\n if (colStateItems.length > 0) {\n this.columnModel.applyColumnState({ state: colStateItems }, eventType);\n }\n };\n ModelItemUtils.prototype.setAllPivot = function (columns, value, eventType) {\n if (this.gridOptionsWrapper.isFunctionsPassive()) {\n this.setAllPivotPassive(columns, value);\n }\n else {\n this.setAllPivotActive(columns, value, eventType);\n }\n };\n ModelItemUtils.prototype.setAllPivotPassive = function (columns, value) {\n var copyOfPivotColumns = this.columnModel.getPivotColumns().slice();\n var copyOfValueColumns = this.columnModel.getValueColumns().slice();\n var copyOfRowGroupColumns = this.columnModel.getRowGroupColumns().slice();\n var pivotChanged = false;\n var valueChanged = false;\n var rowGroupChanged = false;\n var turnOnAction = function (col) {\n // don't change any column that's already got a function active\n if (col.isAnyFunctionActive()) {\n return;\n }\n if (col.isAllowValue()) {\n copyOfValueColumns.push(col);\n valueChanged = true;\n }\n else if (col.isAllowRowGroup()) {\n copyOfRowGroupColumns.push(col);\n pivotChanged = true;\n }\n else if (col.isAllowPivot()) {\n copyOfPivotColumns.push(col);\n rowGroupChanged = true;\n }\n };\n var turnOffAction = function (col) {\n if (!col.isAnyFunctionActive()) {\n return;\n }\n if (copyOfPivotColumns.indexOf(col) >= 0) {\n agGridCommunity._.removeFromArray(copyOfPivotColumns, col);\n pivotChanged = true;\n }\n if (copyOfValueColumns.indexOf(col) >= 0) {\n agGridCommunity._.removeFromArray(copyOfValueColumns, col);\n valueChanged = true;\n }\n if (copyOfRowGroupColumns.indexOf(col) >= 0) {\n agGridCommunity._.removeFromArray(copyOfRowGroupColumns, col);\n rowGroupChanged = true;\n }\n };\n var action = value ? turnOnAction : turnOffAction;\n columns.forEach(action);\n if (pivotChanged) {\n var event_1 = {\n type: agGridCommunity.Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n columns: copyOfPivotColumns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n if (rowGroupChanged) {\n var event_2 = {\n type: agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n columns: copyOfRowGroupColumns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_2);\n }\n if (valueChanged) {\n var event_3 = {\n type: agGridCommunity.Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n columns: copyOfRowGroupColumns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_3);\n }\n };\n ModelItemUtils.prototype.setAllPivotActive = function (columns, value, eventType) {\n var _this = this;\n var colStateItems = [];\n var turnOnAction = function (col) {\n // don't change any column that's already got a function active\n if (col.isAnyFunctionActive()) {\n return;\n }\n if (col.isAllowValue()) {\n var aggFunc = typeof col.getAggFunc() === 'string'\n ? col.getAggFunc()\n : _this.aggFuncService.getDefaultAggFunc(col);\n colStateItems.push({\n colId: col.getId(),\n aggFunc: aggFunc\n });\n }\n else if (col.isAllowRowGroup()) {\n colStateItems.push({\n colId: col.getId(),\n rowGroup: true\n });\n }\n else if (col.isAllowPivot()) {\n colStateItems.push({\n colId: col.getId(),\n pivot: true\n });\n }\n };\n var turnOffAction = function (col) {\n var isActive = col.isPivotActive() || col.isRowGroupActive() || col.isValueActive();\n if (isActive) {\n colStateItems.push({\n colId: col.getId(),\n pivot: false,\n rowGroup: false,\n aggFunc: null\n });\n }\n };\n var action = value ? turnOnAction : turnOffAction;\n columns.forEach(action);\n if (colStateItems.length > 0) {\n this.columnModel.applyColumnState({ state: colStateItems }, eventType);\n }\n };\n __decorate$u([\n agGridCommunity.Autowired('aggFuncService')\n ], ModelItemUtils.prototype, \"aggFuncService\", void 0);\n __decorate$u([\n agGridCommunity.Autowired('columnModel')\n ], ModelItemUtils.prototype, \"columnModel\", void 0);\n __decorate$u([\n agGridCommunity.Autowired('gridOptionsWrapper')\n ], ModelItemUtils.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$u([\n agGridCommunity.Autowired('columnApi')\n ], ModelItemUtils.prototype, \"columnApi\", void 0);\n __decorate$u([\n agGridCommunity.Autowired('gridApi')\n ], ModelItemUtils.prototype, \"gridApi\", void 0);\n __decorate$u([\n agGridCommunity.Autowired('eventService')\n ], ModelItemUtils.prototype, \"eventService\", void 0);\n ModelItemUtils = __decorate$u([\n agGridCommunity.Bean('modelItemUtils')\n ], ModelItemUtils);\n return ModelItemUtils;\n}());\n\nvar ColumnsToolPanelModule = {\n moduleName: agGridCommunity.ModuleNames.ColumnToolPanelModule,\n beans: [ModelItemUtils],\n agStackComponents: [\n { componentName: 'AgPrimaryColsHeader', componentClass: PrimaryColsHeaderPanel },\n { componentName: 'AgPrimaryColsList', componentClass: PrimaryColsListPanel },\n { componentName: 'AgPrimaryCols', componentClass: PrimaryColsPanel }\n ],\n userComponents: [\n { componentName: 'agColumnsToolPanel', componentClass: ColumnToolPanel },\n ],\n dependantModules: [\n EnterpriseCoreModule,\n RowGroupingModule,\n SideBarModule\n ]\n};\n\nvar workbook = {\n getTemplate: function () {\n return {\n name: \"Workbook\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n o: \"urn:schemas-microsoft-com:office:office\",\n x: \"urn:schemas-microsoft-com:office:excel\",\n ss: \"urn:schemas-microsoft-com:office:spreadsheet\",\n html: \"http://www.w3.org/TR/REC-html40\"\n },\n }],\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:spreadsheet\"\n }\n }\n };\n }\n};\n\nvar excelWorkbook = {\n getTemplate: function () {\n return {\n name: \"ExcelWorkbook\",\n properties: {\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:excel\"\n }\n },\n children: [{\n name: \"WindowHeight\",\n textNode: \"8130\"\n }, {\n name: \"WindowWidth\",\n textNode: \"15135\"\n }, {\n name: \"WindowHeight\",\n textNode: \"8130\"\n }, {\n name: \"WindowTopX\",\n textNode: \"120\"\n }, {\n name: \"WindowTopY\",\n textNode: \"45\"\n }, {\n name: \"ProtectStructure\",\n textNode: \"False\"\n }, {\n name: \"ProtectWindow\",\n textNode: \"False\"\n }]\n };\n }\n};\n\nvar column = {\n getTemplate: function (c) {\n var width = c.width;\n return {\n name: \"Column\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Width: width\n }\n }]\n }\n };\n }\n};\n\nvar cell = {\n getTemplate: function (c) {\n var mergeAcross = c.mergeAcross, styleId = c.styleId, data = c.data;\n var properties = {};\n if (mergeAcross) {\n properties.MergeAcross = mergeAcross;\n }\n if (styleId) {\n properties.StyleID = styleId;\n }\n return {\n name: \"Cell\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: properties\n }]\n },\n children: [{\n name: \"Data\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Type: data.type\n }\n }]\n },\n textNode: data.value\n }]\n };\n }\n};\n\nvar row = {\n getTemplate: function (r) {\n var cells = r.cells;\n return {\n name: \"Row\",\n children: cells.map(function (it) { return cell.getTemplate(it); })\n };\n }\n};\n\nvar worksheet = {\n getTemplate: function (ws) {\n var table = ws.table, name = ws.name;\n var columns = table.columns, rows = table.rows;\n var c = columns.map(function (it) { return column.getTemplate(it); });\n var r = rows.map(function (it) { return row.getTemplate(it); });\n return {\n name: \"Worksheet\",\n children: [{\n name: \"Table\",\n children: c.concat(r)\n }],\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Name: name\n }\n }]\n }\n };\n }\n};\n\nvar documentProperties = {\n getTemplate: function () {\n return {\n name: \"DocumentProperties\",\n properties: {\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:office\"\n }\n },\n children: [{\n name: \"Version\",\n textNode: \"12.00\"\n }]\n };\n }\n};\n\nvar alignment = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.alignment, vertical = _a.vertical, horizontal = _a.horizontal, indent = _a.indent, readingOrder = _a.readingOrder, rotate = _a.rotate, shrinkToFit = _a.shrinkToFit, verticalText = _a.verticalText, wrapText = _a.wrapText;\n return {\n name: 'Alignment',\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Vertical: vertical,\n Horizontal: horizontal,\n Indent: indent,\n ReadingOrder: readingOrder,\n Rotate: rotate,\n ShrinkToFit: shrinkToFit,\n VerticalText: verticalText,\n WrapText: wrapText\n }\n }]\n }\n };\n }\n};\n\nvar borders = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.borders, borderBottom = _a.borderBottom, borderLeft = _a.borderLeft, borderRight = _a.borderRight, borderTop = _a.borderTop;\n return {\n name: 'Borders',\n children: [borderBottom, borderLeft, borderRight, borderTop].map(function (it, index) {\n var current = index == 0 ? \"Bottom\" : index == 1 ? \"Left\" : index == 2 ? \"Right\" : \"Top\";\n return {\n name: 'Border',\n properties: {\n prefixedAttributes: [{\n prefix: 'ss:',\n map: {\n Position: current,\n LineStyle: it.lineStyle,\n Weight: it.weight,\n Color: it.color\n }\n }]\n }\n };\n })\n };\n }\n};\n\nvar font = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.font, bold = _a.bold, fontName = _a.fontName, italic = _a.italic, color = _a.color, outline = _a.outline, shadow = _a.shadow, size = _a.size, strikeThrough = _a.strikeThrough, underline = _a.underline, verticalAlign = _a.verticalAlign, charSet = _a.charSet, family = _a.family;\n return {\n name: \"Font\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Bold: bold,\n FontName: fontName,\n Italic: italic,\n Color: color,\n Outline: outline,\n Shadow: shadow,\n Size: size,\n StrikeThrough: strikeThrough,\n Underline: underline,\n VerticalAlign: verticalAlign\n }\n }, {\n prefix: \"x:\",\n map: {\n CharSet: charSet,\n Family: family\n }\n }]\n }\n };\n }\n};\n\nvar interior = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.interior, color = _a.color, pattern = _a.pattern, patternColor = _a.patternColor;\n return {\n name: \"Interior\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Color: color,\n Pattern: pattern,\n PatternColor: patternColor\n }\n }]\n }\n };\n }\n};\n\nvar protection = {\n getTemplate: function (styleProperties) {\n return {\n name: \"Protection\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Protected: styleProperties.protection.protected,\n HideFormula: styleProperties.protection.hideFormula\n }\n }]\n }\n };\n }\n};\n\nvar numberFormat = {\n getTemplate: function (styleProperties) {\n var format = styleProperties.numberFormat.format;\n return {\n name: \"NumberFormat\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Format: format\n }\n }]\n }\n };\n }\n};\n\nvar style = {\n getTemplate: function (styleProperties) {\n var id = styleProperties.id, name = styleProperties.name;\n return {\n name: 'Style',\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n ID: id,\n Name: name ? name : id\n }\n }]\n }\n };\n }\n};\n\nvar BaseCreator = /** @class */ (function () {\n function BaseCreator() {\n }\n BaseCreator.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseCreator.prototype.getFileName = function (fileName) {\n var extension = this.getDefaultFileExtension();\n if (fileName == null || !fileName.length) {\n fileName = this.getDefaultFileName();\n }\n return fileName.indexOf('.') === -1 ? fileName + \".\" + extension : fileName;\n };\n BaseCreator.prototype.getData = function (params) {\n var serializingSession = this.createSerializingSession(params);\n var data = this.beans.gridSerializer.serialize(serializingSession, params);\n return data;\n };\n return BaseCreator;\n}());\n\nvar BaseGridSerializingSession = /** @class */ (function () {\n function BaseGridSerializingSession(config) {\n this.groupColumns = [];\n var columnModel = config.columnModel, valueService = config.valueService, gridOptionsWrapper = config.gridOptionsWrapper, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;\n this.columnModel = columnModel;\n this.valueService = valueService;\n this.gridOptionsWrapper = gridOptionsWrapper;\n this.processCellCallback = processCellCallback;\n this.processHeaderCallback = processHeaderCallback;\n this.processGroupHeaderCallback = processGroupHeaderCallback;\n this.processRowGroupCallback = processRowGroupCallback;\n }\n BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {\n this.groupColumns = columnsToExport.filter(function (col) { return !!col.getColDef().showRowGroup; });\n };\n BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {\n var value = this.getHeaderName(this.processHeaderCallback, column);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {\n // we render the group summary text e.g. \"-> Parent -> Child\"...\n var groupIndex = this.gridOptionsWrapper.isGroupMultiAutoColumn() ? node.rowGroupIndex : 0;\n var renderGroupSummaryCell = \n // on group rows\n node && node.group\n && (\n // in the group column if groups appear in regular grid cells\n index === groupIndex && this.groupColumns.indexOf(column) !== -1\n // or the first cell in the row, if we're doing full width rows\n || (index === 0 && this.gridOptionsWrapper.isGroupUseEntireRow(this.columnModel.isPivotMode())));\n var valueForCell;\n if (renderGroupSummaryCell) {\n valueForCell = this.createValueForGroupNode(node);\n }\n else {\n valueForCell = this.valueService.getValue(column, node);\n }\n var value = this.processCell(accumulatedRowIndex, node, column, valueForCell, this.processCellCallback, type);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {\n if (callback) {\n return callback({\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n });\n }\n return this.columnModel.getDisplayNameForColumn(column, 'csv', true);\n };\n BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {\n if (this.processRowGroupCallback) {\n return this.processRowGroupCallback({\n node: node,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n });\n }\n var keys = [node.key];\n if (!this.gridOptionsWrapper.isGroupMultiAutoColumn()) {\n while (node.parent) {\n node = node.parent;\n keys.push(node.key);\n }\n }\n return keys.reverse().join(' -> ');\n };\n BaseGridSerializingSession.prototype.processCell = function (accumulatedRowIndex, rowNode, column, value, processCellCallback, type) {\n if (processCellCallback) {\n return processCellCallback({\n accumulatedRowIndex: accumulatedRowIndex,\n column: column,\n node: rowNode,\n value: value,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n type: type\n });\n }\n return value != null ? value : '';\n };\n return BaseGridSerializingSession;\n}());\n\nvar Downloader = /** @class */ (function () {\n function Downloader() {\n }\n Downloader.download = function (fileName, content) {\n var win = document.defaultView || window;\n if (!win) {\n console.warn('AG Grid: There is no `window` associated with the current `document`');\n return;\n }\n var element = document.createElement('a');\n // @ts-ignore\n var url = win.URL.createObjectURL(content);\n element.setAttribute('href', url);\n element.setAttribute('download', fileName);\n element.style.display = 'none';\n document.body.appendChild(element);\n element.dispatchEvent(new MouseEvent('click', {\n bubbles: false,\n cancelable: true,\n view: win\n }));\n document.body.removeChild(element);\n win.setTimeout(function () {\n // @ts-ignore\n win.URL.revokeObjectURL(url);\n }, 0);\n };\n return Downloader;\n}());\n\nvar __extends$u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LINE_SEPARATOR = '\\r\\n';\nvar CsvSerializingSession = /** @class */ (function (_super) {\n __extends$u(CsvSerializingSession, _super);\n function CsvSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.isFirstLine = true;\n _this.result = '';\n var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;\n _this.suppressQuotes = suppressQuotes;\n _this.columnSeparator = columnSeparator;\n return _this;\n }\n CsvSerializingSession.prototype.addCustomContent = function (content) {\n var _this = this;\n if (!content) {\n return;\n }\n if (typeof content === 'string') {\n if (!/^\\s*\\n/.test(content)) {\n this.beginNewLine();\n }\n // replace whatever newlines are supplied with the style we're using\n content = content.replace(/\\r?\\n/g, LINE_SEPARATOR);\n this.result += content;\n }\n else {\n content.forEach(function (row) {\n _this.beginNewLine();\n row.forEach(function (cell, index) {\n if (index !== 0) {\n _this.result += _this.columnSeparator;\n }\n _this.result += _this.putInQuotes(cell.data.value || '');\n if (cell.mergeAcross) {\n _this.appendEmptyCells(cell.mergeAcross);\n }\n });\n });\n }\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderGroupingRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (header, index, span) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(header);\n this.appendEmptyCells(span);\n };\n CsvSerializingSession.prototype.appendEmptyCells = function (count) {\n for (var i = 1; i <= count; i++) {\n this.result += this.columnSeparator + this.putInQuotes(\"\");\n }\n };\n CsvSerializingSession.prototype.onNewHeaderRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractHeaderValue(column));\n };\n CsvSerializingSession.prototype.onNewBodyRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewBodyRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractRowCellValue(column, index, index, agGridCommunity.Constants.EXPORT_TYPE_CSV, node));\n };\n CsvSerializingSession.prototype.putInQuotes = function (value) {\n if (this.suppressQuotes) {\n return value;\n }\n if (value === null || value === undefined) {\n return '\"\"';\n }\n var stringValue;\n if (typeof value === 'string') {\n stringValue = value;\n }\n else if (typeof value.toString === 'function') {\n stringValue = value.toString();\n }\n else {\n console.warn('AG Grid: unknown value type during csv conversion');\n stringValue = '';\n }\n // replace each \" with \"\" (ie two sets of double quotes is how to do double quotes in csv)\n var valueEscaped = stringValue.replace(/\"/g, \"\\\"\\\"\");\n return '\"' + valueEscaped + '\"';\n };\n CsvSerializingSession.prototype.parse = function () {\n return this.result;\n };\n CsvSerializingSession.prototype.beginNewLine = function () {\n if (!this.isFirstLine) {\n this.result += LINE_SEPARATOR;\n }\n this.isFirstLine = false;\n };\n return CsvSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CsvCreator = /** @class */ (function (_super) {\n __extends$v(CsvCreator, _super);\n function CsvCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CsvCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsWrapper: this.gridOptionsWrapper\n });\n };\n CsvCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsWrapper.getDefaultExportParams('csv');\n return Object.assign({}, baseParams, params);\n };\n CsvCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"AG Grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var mergedParams = this.getMergedParams(userParams);\n var data = this.getData(mergedParams);\n var packagedFile = new Blob([\"\\ufeff\", data], { type: 'text/plain' });\n Downloader.download(this.getFileName(mergedParams.fileName), packagedFile);\n return data;\n };\n CsvCreator.prototype.exportDataAsCsv = function (params) {\n return this.export(params);\n };\n CsvCreator.prototype.getDataAsCsv = function (params) {\n var mergedParams = this.getMergedParams(params);\n return this.getData(mergedParams);\n };\n CsvCreator.prototype.getDefaultFileName = function () {\n return 'export.csv';\n };\n CsvCreator.prototype.getDefaultFileExtension = function () {\n return 'csv';\n };\n CsvCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;\n return new CsvSerializingSession({\n columnModel: columnModel,\n valueService: valueService,\n gridOptionsWrapper: gridOptionsWrapper,\n processCellCallback: processCellCallback || undefined,\n processHeaderCallback: processHeaderCallback || undefined,\n processGroupHeaderCallback: processGroupHeaderCallback || undefined,\n processRowGroupCallback: processRowGroupCallback || undefined,\n suppressQuotes: suppressQuotes || false,\n columnSeparator: columnSeparator || ','\n });\n };\n CsvCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsWrapper.isSuppressCsvExport();\n };\n __decorate$v([\n agGridCommunity.Autowired('columnModel')\n ], CsvCreator.prototype, \"columnModel\", void 0);\n __decorate$v([\n agGridCommunity.Autowired('valueService')\n ], CsvCreator.prototype, \"valueService\", void 0);\n __decorate$v([\n agGridCommunity.Autowired('gridSerializer')\n ], CsvCreator.prototype, \"gridSerializer\", void 0);\n __decorate$v([\n agGridCommunity.Autowired('gridOptionsWrapper')\n ], CsvCreator.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$v([\n agGridCommunity.PostConstruct\n ], CsvCreator.prototype, \"postConstruct\", null);\n CsvCreator = __decorate$v([\n agGridCommunity.Bean('csvCreator')\n ], CsvCreator);\n return CsvCreator;\n}(BaseCreator));\n\nvar __extends$w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowType;\n(function (RowType) {\n RowType[RowType[\"HEADER_GROUPING\"] = 0] = \"HEADER_GROUPING\";\n RowType[RowType[\"HEADER\"] = 1] = \"HEADER\";\n RowType[RowType[\"BODY\"] = 2] = \"BODY\";\n})(RowType || (RowType = {}));\nvar GridSerializer = /** @class */ (function (_super) {\n __extends$w(GridSerializer, _super);\n function GridSerializer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridSerializer.prototype.serialize = function (gridSerializingSession, params) {\n if (params === void 0) { params = {}; }\n var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);\n var serializeChain = agGridCommunity._.compose(\n // first pass, put in the header names of the cols\n this.prepareSession(columnsToExport), this.prependContent(params), this.exportColumnGroups(params, columnsToExport), this.exportHeaders(params, columnsToExport), this.processPinnedTopRows(params, columnsToExport), this.processRows(params, columnsToExport), this.processPinnedBottomRows(params, columnsToExport), this.appendContent(params));\n return serializeChain(gridSerializingSession).parse();\n };\n GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {\n var _this = this;\n var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var context = gridOptionsWrapper.getContext();\n var api = gridOptionsWrapper.getApi();\n var columnApi = gridOptionsWrapper.getColumnApi();\n var skipSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveSingleChildren();\n var hideOpenParents = gridOptionsWrapper.isGroupHideOpenParents();\n var skipLowestSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveLowestSingleChildren();\n var isLeafNode = this.columnModel.isPivotMode() ? node.leafGroup : !node.group;\n var skipRowGroups = params.skipGroups || params.skipRowGroups;\n var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;\n var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);\n if (skipRowGroups && params.skipGroups) {\n agGridCommunity._.doOnce(function () { return console.warn('AG Grid: Since v25.2 `skipGroups` has been renamed to `skipRowGroups`.'); }, 'gridSerializer-skipGroups');\n }\n var rowPosition = { rowIndex: node.rowIndex, rowPinned: node.rowPinned };\n if ((!isLeafNode && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||\n (params.onlySelected && !node.isSelected()) ||\n (params.rowNodes && !params.rowNodes.some(function (position) { return _this.rowPositionUtils.sameRow(position, rowPosition); })) ||\n (params.skipPinnedTop && node.rowPinned === 'top') ||\n (params.skipPinnedBottom && node.rowPinned === 'bottom')) {\n return;\n }\n // if we are in pivotMode, then the grid will show the root node only\n // if it's not a leaf group\n var nodeIsRootNode = node.level === -1;\n if (nodeIsRootNode && !node.leafGroup) {\n return;\n }\n var shouldRowBeSkipped = rowSkipper({ node: node, api: api, columnApi: columnApi, context: context });\n if (shouldRowBeSkipped) {\n return;\n }\n var rowAccumulator = gridSerializingSession.onNewBodyRow();\n columnsToExport.forEach(function (column, index) {\n rowAccumulator.onColumn(column, index, node);\n });\n if (params.getCustomContentBelowRow) {\n var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });\n if (content) {\n gridSerializingSession.addCustomContent(content);\n }\n }\n };\n GridSerializer.prototype.appendContent = function (params) {\n return function (gridSerializingSession) {\n var appendContent = params.customFooter || params.appendContent;\n if (appendContent) {\n if (params.customFooter) {\n agGridCommunity._.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customFooter` param has been deprecated. Use `appendContent` instead.'); }, 'gridSerializer-customFooter');\n }\n gridSerializingSession.addCustomContent(appendContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prependContent = function (params) {\n return function (gridSerializingSession) {\n var prependContent = params.customHeader || params.prependContent;\n if (prependContent) {\n if (params.customHeader) {\n agGridCommunity._.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customHeader` param has been deprecated. Use `prependContent` instead.'); }, 'gridSerializer-customHeader');\n }\n gridSerializingSession.addCustomContent(prependContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prepareSession = function (columnsToExport) {\n return function (gridSerializingSession) {\n gridSerializingSession.prepare(columnsToExport);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n if (!params.skipColumnGroupHeaders) {\n var groupInstanceIdCreator = new agGridCommunity.GroupInstanceIdCreator();\n var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, _this.columnModel.getGridBalancedTree(), groupInstanceIdCreator, null);\n _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);\n }\n else if (params.columnGroups) {\n agGridCommunity._.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `columnGroups` param has deprecated, and groups are exported by default.'); }, 'gridSerializer-columnGroups');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {\n return function (gridSerializingSession) {\n if (!params.skipHeader && !params.skipColumnHeaders) {\n var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();\n columnsToExport.forEach(function (column, index) {\n gridRowIterator_1.onColumn(column, index, undefined);\n });\n }\n else if (params.skipHeader) {\n agGridCommunity._.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `skipHeader` param has been renamed to `skipColumnHeaders`.'); }, 'gridSerializer-skipHeader');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n _this.pinnedRowModel.forEachPinnedTopRow(processRow);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n // when in pivot mode, we always render cols on screen, never 'all columns'\n var rowModel = _this.rowModel;\n var rowModelType = rowModel.getType();\n var usingCsrm = rowModelType === agGridCommunity.Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n var usingSsrm = rowModelType === agGridCommunity.Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n if (_this.columnModel.isPivotMode()) {\n if (usingCsrm) {\n rowModel.forEachPivotNode(processRow);\n }\n else {\n // must be enterprise, so we can just loop through all the nodes\n rowModel.forEachNode(processRow);\n }\n }\n else {\n // onlySelectedAllPages: user doing pagination and wants selected items from\n // other pages, so cannot use the standard row model as it won't have rows from\n // other pages.\n // onlySelectedNonStandardModel: if user wants selected in non standard row model\n // (eg viewport) then again RowModel cannot be used, so need to use selected instead.\n if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {\n var selectedNodes = _this.selectionService.getSelectedNodes();\n selectedNodes.forEach(processRow);\n }\n else {\n // here is everything else - including standard row model and selected. we don't use\n // the selection model even when just using selected, so that the result is the order\n // of the rows appearing on the screen.\n if (usingCsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else {\n rowModel.forEachNode(processRow);\n }\n }\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n _this.pinnedRowModel.forEachPinnedBottomRow(processRow);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {\n if (allColumns === void 0) { allColumns = false; }\n var isPivotMode = this.columnModel.isPivotMode();\n if (columnKeys && columnKeys.length) {\n return this.columnModel.getGridColumns(columnKeys);\n }\n if (allColumns && !isPivotMode) {\n // add auto group column for tree data\n var columns = this.gridOptionsWrapper.isTreeData()\n ? this.columnModel.getGridColumns([agGridCommunity.Constants.GROUP_AUTO_COLUMN_ID])\n : [];\n return columns.concat(this.columnModel.getAllPrimaryColumns() || []);\n }\n return this.columnModel.getAllDisplayedColumns();\n };\n GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {\n var directChildrenHeaderGroups = [];\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n if (!columnGroup.getChildren) {\n return;\n }\n columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });\n });\n if (displayedGroups.length > 0 && displayedGroups[0] instanceof agGridCommunity.ColumnGroup) {\n this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);\n }\n if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {\n this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);\n }\n };\n GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {\n var _this = this;\n var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();\n var columnIndex = 0;\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n var name;\n if (processGroupHeaderCallback) {\n name = processGroupHeaderCallback({\n columnGroup: columnGroup,\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi(),\n context: _this.gridOptionsWrapper.getContext()\n });\n }\n else {\n name = _this.columnModel.getDisplayNameForColumnGroup(columnGroup, 'header');\n }\n var collapsibleGroupRanges = columnGroup.getLeafColumns().reduce(function (collapsibleGroups, currentColumn, currentIdx, arr) {\n var lastGroup = agGridCommunity._.last(collapsibleGroups);\n var groupShow = currentColumn.getColumnGroupShow() === 'open';\n if (!groupShow) {\n if (lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx - 1;\n }\n }\n else if (!lastGroup || lastGroup[1] != null) {\n lastGroup = [currentIdx];\n collapsibleGroups.push(lastGroup);\n }\n if (currentIdx === arr.length - 1 && lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx;\n }\n return collapsibleGroups;\n }, []);\n gridRowIterator.onColumn(name || '', columnIndex++, columnGroup.getLeafColumns().length - 1, collapsibleGroupRanges);\n });\n };\n __decorate$w([\n agGridCommunity.Autowired('displayedGroupCreator')\n ], GridSerializer.prototype, \"displayedGroupCreator\", void 0);\n __decorate$w([\n agGridCommunity.Autowired('columnModel')\n ], GridSerializer.prototype, \"columnModel\", void 0);\n __decorate$w([\n agGridCommunity.Autowired('rowModel')\n ], GridSerializer.prototype, \"rowModel\", void 0);\n __decorate$w([\n agGridCommunity.Autowired('pinnedRowModel')\n ], GridSerializer.prototype, \"pinnedRowModel\", void 0);\n __decorate$w([\n agGridCommunity.Autowired('selectionService')\n ], GridSerializer.prototype, \"selectionService\", void 0);\n __decorate$w([\n agGridCommunity.Autowired('rowPositionUtils')\n ], GridSerializer.prototype, \"rowPositionUtils\", void 0);\n GridSerializer = __decorate$w([\n agGridCommunity.Bean(\"gridSerializer\")\n ], GridSerializer);\n return GridSerializer;\n}(agGridCommunity.BeanStub));\n\nvar CsvExportModule = {\n moduleName: agGridCommunity.ModuleNames.CsvExportModule,\n beans: [CsvCreator, GridSerializer]\n};\n\nvar LINE_SEPARATOR$1 = '\\r\\n';\nvar XmlFactory = /** @class */ (function () {\n function XmlFactory() {\n }\n XmlFactory.createHeader = function (headerElement) {\n if (headerElement === void 0) { headerElement = {}; }\n var headerStart = '';\n var keys = ['version'];\n if (!headerElement.version) {\n headerElement.version = \"1.0\";\n }\n if (headerElement.encoding) {\n keys.push('encoding');\n }\n if (headerElement.standalone) {\n keys.push('standalone');\n }\n var att = keys.map(function (key) { return key + \"=\\\"\" + headerElement[key] + \"\\\"\"; }).join(' ');\n return headerStart + \"xml \" + att + \" \" + headerEnd;\n };\n XmlFactory.createXml = function (xmlElement, booleanTransformer) {\n var _this = this;\n var props = '';\n if (xmlElement.properties) {\n if (xmlElement.properties.prefixedAttributes) {\n xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {\n Object.keys(prefixedSet.map).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);\n });\n });\n }\n if (xmlElement.properties.rawMap) {\n Object.keys(xmlElement.properties.rawMap).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);\n });\n }\n }\n var result = '<' + xmlElement.name + props;\n if (!xmlElement.children && xmlElement.textNode == null) {\n return result + '/>' + LINE_SEPARATOR$1;\n }\n if (xmlElement.textNode != null) {\n return result + '>' + xmlElement.textNode + '' + LINE_SEPARATOR$1;\n }\n result += '>' + LINE_SEPARATOR$1;\n if (xmlElement.children) {\n xmlElement.children.forEach(function (it) {\n result += _this.createXml(it, booleanTransformer);\n });\n }\n return result + '' + LINE_SEPARATOR$1;\n };\n XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {\n if (!value && value !== '' && value !== 0) {\n return '';\n }\n var xmlValue = value;\n if ((typeof (value) === 'boolean')) {\n if (booleanTransformer) {\n xmlValue = booleanTransformer(value);\n }\n }\n return \" \" + key + \"=\\\"\" + xmlValue + \"\\\"\";\n };\n return XmlFactory;\n}());\n\nvar __values$1 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// table for crc calculation\n// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references\nvar crcTable = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n]);\nvar ZipContainer = /** @class */ (function () {\n function ZipContainer() {\n }\n ZipContainer.addFolders = function (paths) {\n paths.forEach(this.addFolder.bind(this));\n };\n ZipContainer.addFolder = function (path) {\n this.folders.push({\n path: path,\n created: new Date(),\n isBase64: false\n });\n };\n ZipContainer.addFile = function (path, content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n this.files.push({\n path: path,\n created: new Date(),\n content: content,\n isBase64: isBase64\n });\n };\n ZipContainer.getContent = function (mimeType) {\n if (mimeType === void 0) { mimeType = 'application/zip'; }\n var textOutput = this.buildFileStream();\n var uInt8Output = this.buildUint8Array(textOutput);\n this.clearStream();\n return new Blob([uInt8Output], { type: mimeType });\n };\n ZipContainer.clearStream = function () {\n this.folders = [];\n this.files = [];\n };\n ZipContainer.buildFileStream = function (fData) {\n var e_1, _a;\n if (fData === void 0) { fData = ''; }\n var totalFiles = this.folders.concat(this.files);\n var len = totalFiles.length;\n var foData = '';\n var lL = 0;\n var cL = 0;\n try {\n for (var totalFiles_1 = __values$1(totalFiles), totalFiles_1_1 = totalFiles_1.next(); !totalFiles_1_1.done; totalFiles_1_1 = totalFiles_1.next()) {\n var currentFile = totalFiles_1_1.value;\n var _b = this.getHeader(currentFile, lL), fileHeader = _b.fileHeader, folderHeader = _b.folderHeader, content = _b.content;\n lL += fileHeader.length + content.length;\n cL += folderHeader.length;\n fData += fileHeader + content;\n foData += folderHeader;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (totalFiles_1_1 && !totalFiles_1_1.done && (_a = totalFiles_1.return)) _a.call(totalFiles_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var foEnd = this.buildFolderEnd(len, cL, lL);\n return fData + foData + foEnd;\n };\n ZipContainer.getHeader = function (currentFile, offset) {\n var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;\n var utf8_encode = agGridCommunity._.utf8_encode, decToHex = agGridCommunity._.decToHex;\n var utfPath = utf8_encode(path);\n var isUTF8 = utfPath !== path;\n var time = this.convertTime(created);\n var dt = this.convertDate(created);\n var extraFields = '';\n if (isUTF8) {\n var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;\n extraFields = \"\\x75\\x70\" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;\n }\n var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;\n var header = '\\x0A\\x00' +\n (isUTF8 ? '\\x00\\x08' : '\\x00\\x00') +\n '\\x00\\x00' +\n decToHex(time, 2) + // last modified time\n decToHex(dt, 2) + // last modified date\n decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +\n decToHex(size, 4) + // compressed size\n decToHex(size, 4) + // uncompressed size\n decToHex(utfPath.length, 2) + // file name length\n decToHex(extraFields.length, 2); // extra field length\n var fileHeader = 'PK\\x03\\x04' + header + utfPath + extraFields;\n var folderHeader = 'PK\\x01\\x02' + // central header\n '\\x14\\x00' +\n header + // file header\n '\\x00\\x00' +\n '\\x00\\x00' +\n '\\x00\\x00' +\n (content ? '\\x00\\x00\\x00\\x00' : '\\x10\\x00\\x00\\x00') + // external file attributes\n decToHex(offset, 4) + // relative offset of local header\n utfPath + // file name\n extraFields; // extra field\n return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };\n };\n ZipContainer.getConvertedContent = function (content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n if (isBase64) {\n content = content.split(';base64,')[1];\n }\n content = isBase64 ? atob(content) : content;\n return {\n size: content.length,\n content: content\n };\n };\n ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {\n var decToHex = agGridCommunity._.decToHex;\n return 'PK\\x05\\x06' + // central folder end\n '\\x00\\x00' +\n '\\x00\\x00' +\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(cLen, 4) + // size of the central folder\n decToHex(lLen, 4) + // central folder start offset\n '\\x00\\x00';\n };\n ZipContainer.buildUint8Array = function (content) {\n var uint8 = new Uint8Array(content.length);\n for (var i = 0; i < uint8.length; i++) {\n uint8[i] = content.charCodeAt(i);\n }\n return uint8;\n };\n ZipContainer.getFromCrc32Table = function (content) {\n if (!content.length) {\n return 0;\n }\n var size = content.length;\n var iterable = new Uint8Array(size);\n for (var i = 0; i < size; i++) {\n iterable[i] = content.charCodeAt(i);\n }\n var crc = 0 ^ (-1);\n var j = 0;\n var k = 0;\n var l = 0;\n for (var i = 0; i < size; i++) {\n j = iterable[i];\n k = (crc ^ j) & 0xFF;\n l = crcTable[k];\n crc = (crc >>> 8) ^ l;\n }\n return crc ^ (-1);\n };\n ZipContainer.convertTime = function (date) {\n var time = date.getHours();\n time <<= 6;\n time = time | date.getMinutes();\n time <<= 5;\n time = time | date.getSeconds() / 2;\n return time;\n };\n ZipContainer.convertDate = function (date) {\n var dt = date.getFullYear() - 1980;\n dt <<= 4;\n dt = dt | (date.getMonth() + 1);\n dt <<= 5;\n dt = dt | date.getDate();\n return dt;\n };\n ZipContainer.folders = [];\n ZipContainer.files = [];\n return ZipContainer;\n}());\n\n/**\n * See https://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx\n */\nvar ExcelXmlFactory = /** @class */ (function () {\n function ExcelXmlFactory() {\n }\n ExcelXmlFactory.createExcel = function (styles, currentWorksheet) {\n var header = this.excelXmlHeader();\n var docProps = documentProperties.getTemplate();\n var eWorkbook = excelWorkbook.getTemplate();\n var wb = this.workbook(docProps, eWorkbook, styles, currentWorksheet);\n return \"\" + header + XmlFactory.createXml(wb, function (boolean) { return boolean ? '1' : '0'; });\n };\n ExcelXmlFactory.workbook = function (docProperties, eWorkbook, styles, currentWorksheet) {\n var children = [\n docProperties,\n eWorkbook,\n this.stylesXmlElement(styles)\n ].concat(worksheet.getTemplate(currentWorksheet));\n return Object.assign({}, workbook.getTemplate(), { children: children });\n };\n ExcelXmlFactory.excelXmlHeader = function () {\n return \"\\n \\n \";\n };\n ExcelXmlFactory.stylesXmlElement = function (styles) {\n var _this = this;\n return {\n name: 'Styles',\n children: styles ? styles.map(function (it) { return _this.styleXmlElement(it); }) : []\n };\n };\n ExcelXmlFactory.styleXmlElement = function (styleProperties) {\n var children = agGridCommunity._.compose(this.addProperty('alignment', styleProperties), this.addProperty('borders', styleProperties), this.addProperty('font', styleProperties), this.addProperty('interior', styleProperties), this.addProperty('protection', styleProperties), this.addProperty('numberFormat', styleProperties))([]);\n return Object.assign({}, style.getTemplate(styleProperties), { children: children });\n };\n ExcelXmlFactory.addProperty = function (property, styleProperties) {\n return function (children) {\n if (!styleProperties[property]) {\n return children;\n }\n var options = {\n alignment: alignment,\n borders: borders,\n font: font,\n interior: interior,\n numberFormat: numberFormat,\n protection: protection\n };\n return children.concat(options[property].getTemplate(styleProperties));\n };\n };\n ExcelXmlFactory.factoryMode = agGridCommunity.ExcelFactoryMode.SINGLE_SHEET;\n return ExcelXmlFactory;\n}());\n\nvar INCH_TO_EMU = 9525;\nvar numberFormatMap = {\n '0': 1,\n '0.00': 2,\n '#,##0': 3,\n '#,##0.00': 4,\n '0%': 9,\n '0.00%': 10,\n '0.00E+00': 11,\n '# ?/?': 12,\n '# ??/??': 13,\n 'mm-dd-yy': 14,\n 'd-mmm-yy': 15,\n 'd-mmm': 16,\n 'mmm-yy': 17,\n 'h:mm AM/PM': 18,\n 'h:mm:ss AM/PM': 19,\n 'h:mm': 20,\n 'h:mm:ss': 21,\n 'm/d/yy h:mm': 22,\n '#,##0 ;(#,##0)': 37,\n '#,##0 ;[Red](#,##0)': 38,\n '#,##0.00;(#,##0.00)': 39,\n '#,##0.00;[Red](#,##0.00)': 40,\n 'mm:ss': 45,\n '[h]:mm:ss': 46,\n 'mmss.0': 47,\n '##0.0E+0': 48,\n '@': 49\n};\n\nvar pixelsToPoint = function (pixels) {\n return Math.round(pixels * 72 / 96);\n};\nvar pointsToPixel = function (points) {\n return Math.round(points * 96 / 72);\n};\nvar pixelsToEMU = function (value) {\n return Math.ceil(value * INCH_TO_EMU);\n};\nvar getFontFamilyId = function (name) {\n if (name === undefined) {\n return;\n }\n var families = ['Automatic', 'Roman', 'Swiss', 'Modern', 'Script', 'Decorative'];\n var pos = families.indexOf(name || 'Automatic');\n return Math.max(pos, 0);\n};\nvar getHeightFromProperty = function (rowIndex, height) {\n if (!height) {\n return;\n }\n var finalHeight;\n if (typeof height === 'number') {\n finalHeight = height;\n }\n else {\n var heightFunc = height;\n finalHeight = heightFunc({ rowIndex: rowIndex });\n }\n return pixelsToPoint(finalHeight);\n};\nvar setExcelImageTotalWidth = function (image, columnsToExport) {\n var _a = image.position, colSpan = _a.colSpan, column = _a.column;\n if (image.width) {\n if (colSpan) {\n var columnsInSpan = columnsToExport.slice(column - 1, column + colSpan - 1);\n var totalWidth = 0;\n for (var i = 0; i < columnsInSpan.length; i++) {\n var colWidth = columnsInSpan[i].getActualWidth();\n if (image.width < totalWidth + colWidth) {\n image.position.colSpan = i + 1;\n image.totalWidth = image.width;\n image.width = image.totalWidth - totalWidth;\n break;\n }\n totalWidth += colWidth;\n }\n }\n else {\n image.totalWidth = image.width;\n }\n }\n};\nvar setExcelImageTotalHeight = function (image, rowHeight) {\n var _a = image.position, rowSpan = _a.rowSpan, row = _a.row;\n if (image.height) {\n if (rowSpan) {\n var totalHeight = 0;\n var counter = 0;\n for (var i = row; i < row + rowSpan; i++) {\n var nextRowHeight = pointsToPixel(getHeightFromProperty(i, rowHeight) || 20);\n if (image.height < totalHeight + nextRowHeight) {\n image.position.rowSpan = counter + 1;\n image.totalHeight = image.height;\n image.height = image.totalHeight - totalHeight;\n break;\n }\n totalHeight += nextRowHeight;\n counter++;\n }\n }\n else {\n image.totalHeight = image.height;\n }\n }\n};\nvar createXmlPart = function (body) {\n var header = XmlFactory.createHeader({\n encoding: 'UTF-8',\n standalone: 'yes'\n });\n var xmlBody = XmlFactory.createXml(body);\n return \"\" + header + xmlBody;\n};\nvar getExcelColumnName = function (colIdx) {\n var startCode = 65;\n var tableWidth = 26;\n var fromCharCode = String.fromCharCode;\n var pos = Math.floor(colIdx / tableWidth);\n var tableIdx = colIdx % tableWidth;\n if (!pos || colIdx === tableWidth) {\n return fromCharCode(startCode + colIdx - 1);\n }\n if (!tableIdx) {\n return getExcelColumnName(pos - 1) + 'Z';\n }\n if (pos < tableWidth) {\n return fromCharCode(startCode + pos - 1) + fromCharCode(startCode + tableIdx - 1);\n }\n return getExcelColumnName(pos) + fromCharCode(startCode + tableIdx - 1);\n};\n\nvar __extends$x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\nvar __read$4 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$3 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$4(arguments[i]));\n return ar;\n};\nvar BaseExcelSerializingSession = /** @class */ (function (_super) {\n __extends$x(BaseExcelSerializingSession, _super);\n function BaseExcelSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.mixedStyles = {};\n _this.mixedStyleCounter = 0;\n _this.rows = [];\n _this.config = Object.assign({}, config);\n _this.stylesByIds = {};\n _this.config.baseExcelStyles.forEach(function (style) {\n _this.stylesByIds[style.id] = style;\n });\n _this.excelStyles = __spread$3(_this.config.baseExcelStyles);\n return _this;\n }\n BaseExcelSerializingSession.prototype.addCustomContent = function (customContent) {\n var _this = this;\n customContent.forEach(function (row) {\n var rowLen = _this.rows.length + 1;\n _this.rows.push({\n height: getHeightFromProperty(rowLen, _this.config.rowHeight),\n cells: row.map(function (cell, idx) {\n var image = _this.addImage(rowLen, _this.columnsToExport[idx], cell.data.value);\n var ret = __assign$1({}, cell);\n if (image) {\n ret.data = {};\n if (image.value != null) {\n ret.data.value = image.value;\n }\n else {\n ret.data.type = 'e';\n ret.data.value = null;\n }\n }\n return ret;\n })\n });\n });\n };\n BaseExcelSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n var _this = this;\n var currentCells = [];\n this.rows.push({\n cells: currentCells,\n height: getHeightFromProperty(this.rows.length + 1, this.config.headerRowHeight)\n });\n return {\n onColumn: function (header, index, span, collapsibleRanges) {\n var styleIds = _this.config.styleLinker(RowType.HEADER_GROUPING, 1, \"grouping-\" + header, undefined, undefined);\n currentCells.push(__assign$1(__assign$1({}, _this.createMergedCell(_this.getStyleId(styleIds), _this.getDataTypeForValue('string'), header, span)), { collapsibleRanges: collapsibleRanges }));\n }\n };\n };\n BaseExcelSerializingSession.prototype.onNewHeaderRow = function () {\n return this.onNewRow(this.onNewHeaderColumn, this.config.headerRowHeight);\n };\n BaseExcelSerializingSession.prototype.onNewBodyRow = function () {\n return this.onNewRow(this.onNewBodyColumn, this.config.rowHeight);\n };\n BaseExcelSerializingSession.prototype.prepare = function (columnsToExport) {\n var _this = this;\n _super.prototype.prepare.call(this, columnsToExport);\n this.columnsToExport = __spread$3(columnsToExport);\n this.cols = columnsToExport.map(function (col, i) { return _this.convertColumnToExcel(col, i); });\n };\n BaseExcelSerializingSession.prototype.parse = function () {\n // adding custom content might have made some rows wider than the grid, so add new columns\n var longestRow = this.rows.reduce(function (a, b) { return Math.max(a, b.cells.length); }, 0);\n while (this.cols.length < longestRow) {\n this.cols.push(this.convertColumnToExcel(null, this.cols.length + 1));\n }\n var data = {\n name: this.config.sheetName,\n table: {\n columns: this.cols,\n rows: this.rows\n }\n };\n return this.createExcel(data);\n };\n BaseExcelSerializingSession.prototype.isFormula = function (value) {\n if (value == null) {\n return false;\n }\n return this.config.autoConvertFormulas && value.toString().startsWith('=');\n };\n BaseExcelSerializingSession.prototype.getStyleById = function (styleId) {\n if (styleId == null) {\n return null;\n }\n return this.stylesByIds[styleId] || null;\n };\n BaseExcelSerializingSession.prototype.convertColumnToExcel = function (column, index) {\n var columnWidth = this.config.columnWidth;\n if (columnWidth) {\n if (typeof columnWidth === 'number') {\n return { width: columnWidth };\n }\n return { width: columnWidth({ column: column, index: index }) };\n }\n if (column) {\n var smallestUsefulWidth = 75;\n return { width: Math.max(column.getActualWidth(), smallestUsefulWidth) };\n }\n return {};\n };\n BaseExcelSerializingSession.prototype.onNewHeaderColumn = function (rowIndex, currentCells) {\n var _this = this;\n return function (column, index) {\n var nameForCol = _this.extractHeaderValue(column);\n var styleIds = _this.config.styleLinker(RowType.HEADER, rowIndex, nameForCol, column, undefined);\n currentCells.push(_this.createCell(_this.getStyleId(styleIds), _this.getDataTypeForValue('string'), nameForCol));\n };\n };\n BaseExcelSerializingSession.prototype.onNewRow = function (onNewColumnAccumulator, height) {\n var currentCells = [];\n this.rows.push({\n cells: currentCells,\n height: getHeightFromProperty(this.rows.length + 1, height)\n });\n return {\n onColumn: onNewColumnAccumulator.bind(this, this.rows.length, currentCells)()\n };\n };\n BaseExcelSerializingSession.prototype.onNewBodyColumn = function (rowIndex, currentCells) {\n var _this = this;\n var skipCols = 0;\n return function (column, index, node) {\n if (skipCols > 0) {\n skipCols -= 1;\n return;\n }\n var valueForCell = _this.extractRowCellValue(column, index, rowIndex, agGridCommunity.Constants.EXPORT_TYPE_EXCEL, node);\n var styleIds = _this.config.styleLinker(RowType.BODY, rowIndex, valueForCell, column, node);\n var excelStyleId = _this.getStyleId(styleIds);\n var colSpan = column.getColSpan(node);\n var addedImage = _this.addImage(rowIndex, column, valueForCell);\n if (addedImage) {\n currentCells.push(_this.createCell(excelStyleId, _this.getDataTypeForValue(addedImage.value), addedImage.value == null ? '' : addedImage.value));\n }\n else if (colSpan > 1) {\n skipCols = colSpan - 1;\n currentCells.push(_this.createMergedCell(excelStyleId, _this.getDataTypeForValue(valueForCell), valueForCell, colSpan - 1));\n }\n else {\n currentCells.push(_this.createCell(excelStyleId, _this.getDataTypeForValue(valueForCell), valueForCell));\n }\n };\n };\n BaseExcelSerializingSession.prototype.getStyleId = function (styleIds) {\n if (!styleIds || !styleIds.length) {\n return null;\n }\n if (styleIds.length === 1) {\n return styleIds[0];\n }\n var key = styleIds.join(\"-\");\n if (!this.mixedStyles[key]) {\n this.addNewMixedStyle(styleIds);\n }\n return this.mixedStyles[key].excelID;\n };\n BaseExcelSerializingSession.prototype.addNewMixedStyle = function (styleIds) {\n var _this = this;\n this.mixedStyleCounter += 1;\n var excelId = \"mixedStyle\" + this.mixedStyleCounter;\n var resultantStyle = {};\n styleIds.forEach(function (styleId) {\n _this.excelStyles.forEach(function (excelStyle) {\n if (excelStyle.id === styleId) {\n agGridCommunity._.mergeDeep(resultantStyle, agGridCommunity._.deepCloneObject(excelStyle));\n }\n });\n });\n resultantStyle.id = excelId;\n resultantStyle.name = excelId;\n var key = styleIds.join(\"-\");\n this.mixedStyles[key] = {\n excelID: excelId,\n key: key,\n result: resultantStyle\n };\n this.excelStyles.push(resultantStyle);\n this.stylesByIds[excelId] = resultantStyle;\n };\n return BaseExcelSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ExcelXmlSerializingSession = /** @class */ (function (_super) {\n __extends$y(ExcelXmlSerializingSession, _super);\n function ExcelXmlSerializingSession() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExcelXmlSerializingSession.prototype.createExcel = function (data) {\n return ExcelXmlFactory.createExcel(this.excelStyles, data);\n };\n ExcelXmlSerializingSession.prototype.getDataTypeForValue = function (valueForCell) {\n return agGridCommunity._.isNumeric(valueForCell) ? 'Number' : 'String';\n };\n ExcelXmlSerializingSession.prototype.getType = function (type, style, value) {\n if (this.isFormula(value)) {\n return 'Formula';\n }\n if (style && style.dataType) {\n switch (style.dataType.toLocaleLowerCase()) {\n case 'string':\n return 'Formula';\n case 'number':\n return 'Number';\n case 'datetime':\n return 'DateTime';\n case 'error':\n return 'Error';\n case 'boolean':\n return 'Boolean';\n default:\n console.warn(\"AG Grid: Unrecognized data type for excel export [\" + style.id + \".dataType=\" + style.dataType + \"]\");\n }\n }\n return type;\n };\n ExcelXmlSerializingSession.prototype.addImage = function () {\n return;\n };\n ExcelXmlSerializingSession.prototype.createCell = function (styleId, type, value) {\n var actualStyle = this.getStyleById(styleId);\n var typeTransformed = (this.getType(type, actualStyle, value) || type);\n return {\n styleId: !!actualStyle ? styleId : undefined,\n data: {\n type: typeTransformed,\n value: this.getValueTransformed(typeTransformed, value)\n }\n };\n };\n ExcelXmlSerializingSession.prototype.getValueTransformed = function (typeTransformed, value) {\n var _this = this;\n var wrapText = function (val) {\n if (_this.config.suppressTextAsCDATA) {\n return agGridCommunity._.escapeString(val);\n }\n var cdataStart = '';\n var cdataEndRegex = new RegExp(cdataEnd, \"g\");\n return cdataStart\n // CDATA sections are closed by the character sequence ']]>' and there is no\n // way of escaping this, so if the text contains the offending sequence, emit\n // multiple CDATA sections and split the characters between them.\n + String(val).replace(cdataEndRegex, ']]' + cdataEnd + cdataStart + '>')\n + cdataEnd;\n };\n var convertBoolean = function (val) {\n if (!val || val === '0' || val === 'false') {\n return '0';\n }\n return '1';\n };\n switch (typeTransformed) {\n case 'String':\n return wrapText(value);\n case 'Number':\n return Number(value).valueOf() + '';\n case 'Boolean':\n return convertBoolean(value);\n default:\n return value;\n }\n };\n ExcelXmlSerializingSession.prototype.createMergedCell = function (styleId, type, value, numOfCells) {\n return {\n styleId: !!this.getStyleById(styleId) ? styleId : undefined,\n data: {\n type: type,\n value: value\n },\n mergeAcross: numOfCells\n };\n };\n return ExcelXmlSerializingSession;\n}(BaseExcelSerializingSession));\n\nvar coreFactory = {\n getTemplate: function (author) {\n var dt = new Date();\n var jsonDate = dt.toJSON();\n return {\n name: 'cp:coreProperties',\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n cp: \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\",\n dc: 'http://purl.org/dc/elements/1.1/',\n dcterms: 'http://purl.org/dc/terms/',\n dcmitype: 'http://purl.org/dc/dcmitype/',\n xsi: 'http://www.w3.org/2001/XMLSchema-instance'\n }\n }]\n },\n children: [{\n name: 'dc:creator',\n textNode: author\n }, {\n name: 'dc:title',\n textNode: 'Workbook'\n }, {\n name: 'dcterms:created',\n properties: {\n rawMap: {\n 'xsi:type': 'dcterms:W3CDTF'\n }\n },\n textNode: jsonDate\n }, {\n name: 'dcterms:modified',\n properties: {\n rawMap: {\n 'xsi:type': 'dcterms:W3CDTF'\n }\n },\n textNode: jsonDate\n }]\n };\n }\n};\n\nvar contentTypeFactory = {\n getTemplate: function (config) {\n var name = config.name, ContentType = config.ContentType, Extension = config.Extension, PartName = config.PartName;\n return {\n name: name,\n properties: {\n rawMap: {\n Extension: Extension,\n PartName: PartName,\n ContentType: ContentType\n }\n }\n };\n }\n};\n\nvar __read$5 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$4 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$5(arguments[i]));\n return ar;\n};\nvar contentTypesFactory = {\n getTemplate: function (sheetLen) {\n var worksheets = new Array(sheetLen).fill(undefined).map(function (v, i) { return ({\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml',\n PartName: \"/xl/worksheets/sheet\" + (i + 1) + \".xml\"\n }); });\n var sheetsWithImages = ExcelXlsxFactory.worksheetImages.size;\n var imageTypesObject = {};\n ExcelXlsxFactory.workbookImageIds.forEach(function (v) {\n imageTypesObject[v.type] = true;\n });\n var imageDocs = new Array(sheetsWithImages).fill(undefined).map(function (v, i) { return ({\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.drawing+xml',\n PartName: \"/xl/drawings/drawing\" + (i + 1) + \".xml\"\n }); });\n var imageTypes = Object.keys(imageTypesObject).map(function (ext) { return ({\n name: 'Default',\n ContentType: \"image/\" + ext,\n Extension: ext\n }); });\n var children = __spread$4(imageTypes, [\n {\n name: 'Default',\n Extension: 'rels',\n ContentType: 'application/vnd.openxmlformats-package.relationships+xml'\n }, {\n name: 'Default',\n ContentType: 'application/xml',\n Extension: 'xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml',\n PartName: \"/xl/workbook.xml\"\n }\n ], worksheets, [\n {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.theme+xml',\n PartName: '/xl/theme/theme1.xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml',\n PartName: '/xl/styles.xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml',\n PartName: '/xl/sharedStrings.xml'\n }\n ], imageDocs, [\n {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-package.core-properties+xml',\n PartName: '/docProps/core.xml'\n }\n ]).map(function (contentType) { return contentTypeFactory.getTemplate(contentType); });\n return {\n name: \"Types\",\n properties: {\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/package/2006/content-types\"\n }\n },\n children: children\n };\n }\n};\n\nvar getAnchor = function (name, imageAnchor) { return ({\n name: \"xdr:\" + name,\n children: [{\n name: 'xdr:col',\n textNode: (imageAnchor.col).toString()\n }, {\n name: 'xdr:colOff',\n textNode: imageAnchor.offsetX.toString()\n }, {\n name: 'xdr:row',\n textNode: imageAnchor.row.toString()\n }, {\n name: 'xdr:rowOff',\n textNode: imageAnchor.offsetY.toString()\n }]\n}); };\nvar getExt = function (image) {\n var children = [{\n name: 'a:ext',\n properties: {\n rawMap: {\n uri: '{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}'\n }\n },\n children: [{\n name: 'a16:creationId',\n properties: {\n rawMap: {\n 'id': '{822E6D20-D7BC-2841-A643-D49A6EF008A2}',\n 'xmlns:a16': 'http://schemas.microsoft.com/office/drawing/2014/main'\n }\n }\n }]\n }];\n var recolor = image.recolor && image.recolor.toLowerCase();\n switch (recolor) {\n case 'grayscale':\n case 'sepia':\n case 'washout':\n children.push({\n name: 'a:ext',\n properties: {\n rawMap: {\n uri: '{C183D7F6-B498-43B3-948B-1728B52AA6E4}'\n }\n },\n children: [{\n name: 'adec:decorative',\n properties: {\n rawMap: {\n 'val': '0',\n 'xmlns:adec': 'http://schemas.microsoft.com/office/drawing/2017/decorative'\n }\n }\n }]\n });\n }\n return {\n name: 'a:extLst',\n children: children\n };\n};\nvar getNvPicPr = function (image, index) { return ({\n name: 'xdr:nvPicPr',\n children: [{\n name: 'xdr:cNvPr',\n properties: {\n rawMap: {\n id: index,\n name: image.id,\n descr: image.altText != null ? image.altText : undefined\n }\n },\n children: [getExt(image)]\n }, {\n name: 'xdr:cNvPicPr',\n properties: {\n rawMap: {\n preferRelativeResize: '0'\n }\n },\n children: [{\n name: 'a:picLocks'\n }]\n }]\n}); };\nvar getColorDetails = function (color) {\n if (!color.saturation && !color.tint) {\n return;\n }\n var ret = [];\n if (color.saturation) {\n ret.push({\n name: 'a:satMod',\n properties: {\n rawMap: {\n val: color.saturation * 1000\n }\n }\n });\n }\n if (color.tint) {\n ret.push({\n name: 'a:tint',\n properties: {\n rawMap: {\n val: color.tint * 1000\n }\n }\n });\n }\n return ret;\n};\nvar getDuoTone = function (primaryColor, secondaryColor) {\n return ({\n name: 'a:duotone',\n children: [{\n name: 'a:prstClr',\n properties: {\n rawMap: {\n val: primaryColor.color\n }\n },\n children: getColorDetails(primaryColor)\n }, {\n name: 'a:srgbClr',\n properties: {\n rawMap: {\n val: secondaryColor.color\n }\n },\n children: getColorDetails(secondaryColor)\n }]\n });\n};\nvar getBlipFill = function (image, index) {\n var blipChildren;\n if (image.transparency) {\n var transparency = Math.min(Math.max(image.transparency, 0), 100);\n blipChildren = [{\n name: 'a:alphaModFix',\n properties: {\n rawMap: {\n amt: 100000 - Math.round(transparency * 1000),\n }\n }\n }];\n }\n if (image.recolor) {\n if (!blipChildren) {\n blipChildren = [];\n }\n switch (image.recolor.toLocaleLowerCase()) {\n case 'grayscale':\n blipChildren.push({ name: 'a:grayscl' });\n break;\n case 'sepia':\n blipChildren.push(getDuoTone({ color: 'black' }, { color: 'D9C3A5', tint: 50, saturation: 180 }));\n break;\n case 'washout':\n blipChildren.push({\n name: 'a:lum',\n properties: {\n rawMap: {\n bright: '70000',\n contrast: '-70000'\n }\n }\n });\n break;\n }\n }\n return ({\n name: 'xdr:blipFill',\n children: [{\n name: 'a:blip',\n properties: {\n rawMap: {\n 'cstate': 'print',\n 'r:embed': \"rId\" + index,\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'\n }\n },\n children: blipChildren\n }, {\n name: 'a:stretch',\n children: [{\n name: 'a:fillRect'\n }]\n }]\n });\n};\nvar getSpPr = function (image, imageBoxSize) {\n var xfrm = {\n name: 'a:xfrm',\n children: [{\n name: 'a:off',\n properties: {\n rawMap: {\n x: 0,\n y: 0\n }\n }\n }, {\n name: 'a:ext',\n properties: {\n rawMap: {\n cx: imageBoxSize.width,\n cy: imageBoxSize.height\n }\n }\n }]\n };\n if (image.rotation) {\n var rotation = image.rotation;\n xfrm.properties = {\n rawMap: {\n rot: Math.min(Math.max(rotation, 0), 360) * 60000\n }\n };\n }\n var prstGeom = {\n name: 'a:prstGeom',\n properties: {\n rawMap: {\n prst: 'rect'\n }\n },\n children: [{ name: 'a:avLst' }]\n };\n var ret = {\n name: 'xdr:spPr',\n children: [xfrm, prstGeom]\n };\n return ret;\n};\nvar getImageBoxSize = function (image) {\n image.fitCell = !!image.fitCell || (!image.width || !image.height);\n var _a = image.position, position = _a === void 0 ? {} : _a, fitCell = image.fitCell, _b = image.width, width = _b === void 0 ? 0 : _b, _c = image.height, height = _c === void 0 ? 0 : _c, totalHeight = image.totalHeight, totalWidth = image.totalWidth;\n var _d = position.offsetX, offsetX = _d === void 0 ? 0 : _d, _e = position.offsetY, offsetY = _e === void 0 ? 0 : _e, _f = position.row, row = _f === void 0 ? 1 : _f, _g = position.rowSpan, rowSpan = _g === void 0 ? 1 : _g, _h = position.column, column = _h === void 0 ? 1 : _h, _j = position.colSpan, colSpan = _j === void 0 ? 1 : _j;\n return {\n from: {\n row: row - 1,\n col: column - 1,\n offsetX: pixelsToEMU(offsetX),\n offsetY: pixelsToEMU(offsetY)\n },\n to: {\n row: (row - 1) + (fitCell ? 1 : rowSpan - 1),\n col: (column - 1) + (fitCell ? 1 : colSpan - 1),\n offsetX: pixelsToEMU(width + offsetX),\n offsetY: pixelsToEMU(height + offsetY)\n },\n height: pixelsToEMU(totalHeight || height),\n width: pixelsToEMU(totalWidth || width)\n };\n};\nvar getPicture = function (image, currentIndex, worksheetImageIndex, imageBoxSize) {\n return {\n name: 'xdr:pic',\n children: [\n getNvPicPr(image, currentIndex + 1),\n getBlipFill(image, worksheetImageIndex + 1),\n getSpPr(image, imageBoxSize)\n ]\n };\n};\nvar drawingFactory = {\n getTemplate: function (config) {\n var sheetIndex = config.sheetIndex;\n var sheetImages = ExcelXlsxFactory.worksheetImages.get(sheetIndex);\n var sheetImageIds = ExcelXlsxFactory.worksheetImageIds.get(sheetIndex);\n var children = sheetImages.map(function (image, idx) {\n var boxSize = getImageBoxSize(image);\n return ({\n name: 'xdr:twoCellAnchor',\n properties: {\n rawMap: {\n editAs: 'absolute'\n }\n },\n children: [\n getAnchor('from', boxSize.from),\n getAnchor('to', boxSize.to),\n getPicture(image, idx, sheetImageIds.get(image.id).index, boxSize),\n { name: 'xdr:clientData' }\n ]\n });\n });\n return {\n name: 'xdr:wsDr',\n properties: {\n rawMap: {\n 'xmlns:a': 'http://schemas.openxmlformats.org/drawingml/2006/main',\n 'xmlns:xdr': 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'\n }\n },\n children: children\n };\n }\n};\n\nvar __read$6 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getColorChildren = function (props) {\n var _a = __read$6(props, 4), type = _a[0], innerType = _a[1], val = _a[2], lastClr = _a[3];\n return {\n name: \"a:\" + type,\n children: [{\n name: \"a:\" + innerType,\n properties: {\n rawMap: {\n val: val,\n lastClr: lastClr\n }\n }\n }]\n };\n};\nvar colorScheme = {\n getTemplate: function () {\n return {\n name: \"a:clrScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [\n getColorChildren(['dk1', 'sysClr', 'windowText', '000000']),\n getColorChildren(['lt1', 'sysClr', 'window', 'FFFFFF']),\n getColorChildren(['dk2', 'srgbClr', '44546A']),\n getColorChildren(['lt2', 'srgbClr', 'E7E6E6']),\n getColorChildren(['accent1', 'srgbClr', '4472C4']),\n getColorChildren(['accent2', 'srgbClr', 'ED7D31']),\n getColorChildren(['accent3', 'srgbClr', 'A5A5A5']),\n getColorChildren(['accent4', 'srgbClr', 'FFC000']),\n getColorChildren(['accent5', 'srgbClr', '5B9BD5']),\n getColorChildren(['accent6', 'srgbClr', '70AD47']),\n getColorChildren(['hlink', 'srgbClr', '0563C1']),\n getColorChildren(['folHlink', 'srgbClr', '954F72'])\n ]\n };\n }\n};\n\nvar __read$7 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getFont = function (props) {\n var _a = __read$7(props, 4), type = _a[0], typeface = _a[1], script = _a[2], panose = _a[3];\n return {\n name: \"a:\" + type,\n properties: {\n rawMap: {\n script: script,\n typeface: typeface,\n panose: panose\n }\n }\n };\n};\nvar fontScheme = {\n getTemplate: function () {\n var utf8_encode = agGridCommunity._.utf8_encode;\n return {\n name: \"a:fontScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [{\n name: 'a:majorFont',\n children: [\n getFont(['latin', 'Calibri Light', undefined, '020F0302020204030204']),\n getFont(['ea', '']),\n getFont(['cs', '']),\n getFont(['font', utf8_encode('游ゴシック Light'), 'Jpan']),\n getFont(['font', utf8_encode('맑은 고딕'), 'Hang']),\n getFont(['font', utf8_encode('等线 Light'), 'Hans']),\n getFont(['font', utf8_encode('新細明體'), 'Hant']),\n getFont(['font', 'Times New Roman', 'Arab']),\n getFont(['font', 'Times New Roman', 'Hebr']),\n getFont(['font', 'Tahoma', 'Thai']),\n getFont(['font', 'Nyala', 'Ethi']),\n getFont(['font', 'Vrinda', 'Beng']),\n getFont(['font', 'Shruti', 'Gujr']),\n getFont(['font', 'MoolBoran', 'Khmr']),\n getFont(['font', 'Tunga', 'Knda']),\n getFont(['font', 'Raavi', 'Guru']),\n getFont(['font', 'Euphemia', 'Cans']),\n getFont(['font', 'Plantagenet Cherokee', 'Cher']),\n getFont(['font', 'Microsoft Yi Baiti', 'Yiii']),\n getFont(['font', 'Microsoft Himalaya', 'Tibt']),\n getFont(['font', 'MV Boli', 'Thaa']),\n getFont(['font', 'Mangal', 'Deva']),\n getFont(['font', 'Gautami', 'Telu']),\n getFont(['font', 'Latha', 'Taml']),\n getFont(['font', 'Estrangelo Edessa', 'Syrc']),\n getFont(['font', 'Kalinga', 'Orya']),\n getFont(['font', 'Kartika', 'Mlym']),\n getFont(['font', 'DokChampa', 'Laoo']),\n getFont(['font', 'Iskoola Pota', 'Sinh']),\n getFont(['font', 'Mongolian Baiti', 'Mong']),\n getFont(['font', 'Times New Roman', 'Viet']),\n getFont(['font', 'Microsoft Uighur', 'Uigh']),\n getFont(['font', 'Sylfaen', 'Geor']),\n getFont(['font', 'Arial', 'Armn']),\n getFont(['font', 'Leelawadee UI', 'Bugi']),\n getFont(['font', 'Microsoft JhengHei', 'Bopo']),\n getFont(['font', 'Javanese Text', 'Java']),\n getFont(['font', 'Segoe UI', 'Lisu']),\n getFont(['font', 'Myanmar Text', 'Mymr']),\n getFont(['font', 'Ebrima', 'Nkoo']),\n getFont(['font', 'Nirmala UI', 'Olck']),\n getFont(['font', 'Ebrima', 'Osma']),\n getFont(['font', 'Phagspa', 'Phag']),\n getFont(['font', 'Estrangelo Edessa', 'Syrn']),\n getFont(['font', 'Estrangelo Edessa', 'Syrj']),\n getFont(['font', 'Estrangelo Edessa', 'Syre']),\n getFont(['font', 'Nirmala UI', 'Sora']),\n getFont(['font', 'Microsoft Tai Le', 'Tale']),\n getFont(['font', 'Microsoft New Tai Lue', 'Talu']),\n getFont(['font', 'Ebrima', 'Tfng'])\n ]\n }, {\n name: 'a:minorFont',\n children: [\n getFont(['latin', 'Calibri', undefined, '020F0502020204030204']),\n getFont(['ea', '']),\n getFont(['cs', '']),\n getFont(['font', utf8_encode('游ゴシック'), 'Jpan']),\n getFont(['font', utf8_encode('맑은 고딕'), 'Hang']),\n getFont(['font', utf8_encode('等线'), 'Hans']),\n getFont(['font', utf8_encode('新細明體'), 'Hant']),\n getFont(['font', 'Arial', 'Arab']),\n getFont(['font', 'Arial', 'Hebr']),\n getFont(['font', 'Tahoma', 'Thai']),\n getFont(['font', 'Nyala', 'Ethi']),\n getFont(['font', 'Vrinda', 'Beng']),\n getFont(['font', 'Shruti', 'Gujr']),\n getFont(['font', 'DaunPenh', 'Khmr']),\n getFont(['font', 'Tunga', 'Knda']),\n getFont(['font', 'Raavi', 'Guru']),\n getFont(['font', 'Euphemia', 'Cans']),\n getFont(['font', 'Plantagenet Cherokee', 'Cher']),\n getFont(['font', 'Microsoft Yi Baiti', 'Yiii']),\n getFont(['font', 'Microsoft Himalaya', 'Tibt']),\n getFont(['font', 'MV Boli', 'Thaa']),\n getFont(['font', 'Mangal', 'Deva']),\n getFont(['font', 'Gautami', 'Telu']),\n getFont(['font', 'Latha', 'Taml']),\n getFont(['font', 'Estrangelo Edessa', 'Syrc']),\n getFont(['font', 'Kalinga', 'Orya']),\n getFont(['font', 'Kartika', 'Mlym']),\n getFont(['font', 'DokChampa', 'Laoo']),\n getFont(['font', 'Iskoola Pota', 'Sinh']),\n getFont(['font', 'Mongolian Baiti', 'Mong']),\n getFont(['font', 'Arial', 'Viet']),\n getFont(['font', 'Microsoft Uighur', 'Uigh']),\n getFont(['font', 'Sylfaen', 'Geor']),\n getFont(['font', 'Arial', 'Armn']),\n getFont(['font', 'Leelawadee UI', 'Bugi']),\n getFont(['font', 'Microsoft JhengHei', 'Bopo']),\n getFont(['font', 'Javanese Text', 'Java']),\n getFont(['font', 'Segoe UI', 'Lisu']),\n getFont(['font', 'Myanmar Text', 'Mymr']),\n getFont(['font', 'Ebrima', 'Nkoo']),\n getFont(['font', 'Nirmala UI', 'Olck']),\n getFont(['font', 'Ebrima', 'Osma']),\n getFont(['font', 'Phagspa', 'Phag']),\n getFont(['font', 'Estrangelo Edessa', 'Syrn']),\n getFont(['font', 'Estrangelo Edessa', 'Syrj']),\n getFont(['font', 'Estrangelo Edessa', 'Syre']),\n getFont(['font', 'Nirmala UI', 'Sora']),\n getFont(['font', 'Microsoft Tai Le', 'Tale']),\n getFont(['font', 'Microsoft New Tai Lue', 'Talu']),\n getFont(['font', 'Ebrima', 'Tfng'])\n ]\n }]\n };\n }\n};\n\nvar __read$8 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getPropertyVal = function (name, val, children) { return ({\n name: \"a:\" + name,\n properties: {\n rawMap: {\n val: val\n }\n },\n children: children\n}); };\nvar getGs = function (props) {\n var _a = __read$8(props, 6), pos = _a[0], schemeColor = _a[1], satMod = _a[2], lumMod = _a[3], tint = _a[4], shade = _a[5];\n var children = [];\n children.push(getPropertyVal('satMod', satMod));\n if (lumMod) {\n children.push(getPropertyVal('lumMod', lumMod));\n }\n if (tint) {\n children.push(getPropertyVal('tint', tint));\n }\n if (shade) {\n children.push(getPropertyVal('shade', shade));\n }\n return {\n name: 'a:gs',\n properties: {\n rawMap: {\n pos: pos\n }\n },\n children: [{\n name: 'a:schemeClr',\n properties: {\n rawMap: {\n val: schemeColor\n }\n },\n children: children\n }]\n };\n};\nvar getSolidFill = function (val, children) { return ({\n name: 'a:solidFill',\n children: [getPropertyVal('schemeClr', val, children)]\n}); };\nvar getGradFill = function (props) {\n var _a = __read$8(props, 5), rotWithShape = _a[0], gs1 = _a[1], gs2 = _a[2], gs3 = _a[3], lin = _a[4];\n var _b = __read$8(lin, 2), ang = _b[0], scaled = _b[1];\n return {\n name: 'a:gradFill',\n properties: {\n rawMap: {\n rotWithShape: rotWithShape\n }\n },\n children: [{\n name: 'a:gsLst',\n children: [\n getGs(gs1),\n getGs(gs2),\n getGs(gs3)\n ]\n }, {\n name: 'a:lin',\n properties: {\n rawMap: {\n ang: ang,\n scaled: scaled\n }\n }\n }]\n };\n};\nvar getLine = function (props) {\n var _a = __read$8(props, 4), w = _a[0], cap = _a[1], cmpd = _a[2], algn = _a[3];\n return {\n name: 'a:ln',\n properties: {\n rawMap: { w: w, cap: cap, cmpd: cmpd, algn: algn }\n },\n children: [\n getSolidFill('phClr'),\n getPropertyVal('prstDash', 'solid'),\n {\n name: 'a:miter',\n properties: {\n rawMap: {\n lim: '800000'\n }\n }\n }\n ]\n };\n};\nvar getEffectStyle = function (shadow) {\n var children = [];\n if (shadow) {\n var _a = __read$8(shadow, 5), blurRad = _a[0], dist = _a[1], dir = _a[2], algn = _a[3], rotWithShape = _a[4];\n children.push({\n name: 'a:outerShdw',\n properties: {\n rawMap: { blurRad: blurRad, dist: dist, dir: dir, algn: algn, rotWithShape: rotWithShape }\n },\n children: [\n getPropertyVal('srgbClr', '000000', [getPropertyVal('alpha', '63000')])\n ]\n });\n }\n return {\n name: 'a:effectStyle',\n children: [Object.assign({}, {\n name: 'a:effectLst'\n }, children.length ? { children: children } : {})]\n };\n};\nvar getFillStyleList = function () { return ({\n name: 'a:fillStyleLst',\n children: [\n getSolidFill('phClr'),\n getGradFill([\n '1',\n ['0', 'phClr', '105000', '110000', '67000'],\n ['50000', 'phClr', '103000', '105000', '73000'],\n ['100000', 'phClr', '109000', '105000', '81000'],\n ['5400000', '0']\n ]),\n getGradFill([\n '1',\n ['0', 'phClr', '103000', '102000', '94000'],\n ['50000', 'phClr', '110000', '100000', undefined, '100000'],\n ['100000', 'phClr', '120000', '99000', undefined, '78000'],\n ['5400000', '0']\n ])\n ]\n}); };\nvar getLineStyleList = function () { return ({\n name: 'a:lnStyleLst',\n children: [\n getLine(['6350', 'flat', 'sng', 'ctr']),\n getLine(['12700', 'flat', 'sng', 'ctr']),\n getLine(['19050', 'flat', 'sng', 'ctr'])\n ]\n}); };\nvar getEffectStyleList = function () { return ({\n name: 'a:effectStyleLst',\n children: [\n getEffectStyle(),\n getEffectStyle(),\n getEffectStyle(['57150', '19050', '5400000', 'ctr', '0'])\n ]\n}); };\nvar getBgFillStyleList = function () { return ({\n name: 'a:bgFillStyleLst',\n children: [\n getSolidFill('phClr'),\n getSolidFill('phClr', [\n getPropertyVal('tint', '95000'),\n getPropertyVal('satMod', '170000'),\n ]),\n getGradFill([\n '1',\n ['0', 'phClr', '150000', '102000', '93000', '98000'],\n ['50000', 'phClr', '130000', '103000', '98000', '90000'],\n ['100000', 'phClr', '120000', undefined, undefined, '63000'],\n ['5400000', '0']\n ])\n ]\n}); };\nvar formatScheme = {\n getTemplate: function () {\n return {\n name: \"a:fmtScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [\n getFillStyleList(),\n getLineStyleList(),\n getEffectStyleList(),\n getBgFillStyleList()\n ]\n };\n }\n};\n\nvar themeElements = {\n getTemplate: function () {\n return {\n name: \"a:themeElements\",\n children: [\n colorScheme.getTemplate(),\n fontScheme.getTemplate(),\n formatScheme.getTemplate()\n ]\n };\n }\n};\n\nvar officeTheme = {\n getTemplate: function () {\n return {\n name: \"a:theme\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n a: \"http://schemas.openxmlformats.org/drawingml/2006/main\"\n },\n }],\n rawMap: {\n name: \"Office Theme\"\n }\n },\n children: [\n themeElements.getTemplate(),\n {\n name: 'a:objectDefaults'\n },\n {\n name: 'a:extraClrSchemeLst'\n }\n ]\n };\n }\n};\n\nvar buildSharedString = function (strMap) {\n var ret = [];\n strMap.forEach(function (val, key) {\n var textNode = key.toString();\n var child = {\n name: 't',\n textNode: agGridCommunity._.utf8_encode(agGridCommunity._.escapeString(textNode))\n };\n // if we have leading or trailing spaces, instruct Excel not to trim them\n var preserveSpaces = textNode.trim().length !== textNode.length;\n if (preserveSpaces) {\n child.properties = {\n rawMap: {\n \"xml:space\": \"preserve\"\n }\n };\n }\n ret.push({\n name: 'si',\n children: [child]\n });\n });\n return ret;\n};\nvar sharedStrings = {\n getTemplate: function (strings) {\n return {\n name: \"sst\",\n properties: {\n rawMap: {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n count: strings.size,\n uniqueCount: strings.size\n }\n },\n children: buildSharedString(strings)\n };\n }\n};\n\nvar numberFormatFactory = {\n getTemplate: function (numberFormat) {\n var formatCode = numberFormat.formatCode, numFmtId = numberFormat.numFmtId;\n return {\n name: \"numFmt\",\n properties: {\n rawMap: {\n formatCode: formatCode,\n numFmtId: numFmtId\n }\n }\n };\n }\n};\n\nvar numberFormatsFactory = {\n getTemplate: function (numberFormats) {\n return {\n name: \"numFmts\",\n properties: {\n rawMap: {\n count: numberFormats.length\n }\n },\n children: numberFormats.map(function (numberFormat) { return numberFormatFactory.getTemplate(numberFormat); })\n };\n }\n};\n\nvar fontFactory = {\n getTemplate: function (font) {\n var size = font.size, colorTheme = font.colorTheme, _a = font.color, color = _a === void 0 ? 'FF000000' : _a, _b = font.fontName, fontName = _b === void 0 ? 'Calibri' : _b, family = font.family, scheme = font.scheme, italic = font.italic, bold = font.bold, strikeThrough = font.strikeThrough, outline = font.outline, shadow = font.shadow, underline = font.underline, verticalAlign = font.verticalAlign;\n var children = [\n { name: 'sz', properties: { rawMap: { val: size } } },\n { name: 'color', properties: { rawMap: { theme: colorTheme, rgb: color } } },\n { name: 'name', properties: { rawMap: { val: fontName } } }\n ];\n if (family) {\n children.push({ name: 'family', properties: { rawMap: { val: family } } });\n }\n if (scheme) {\n children.push({ name: 'scheme', properties: { rawMap: { val: scheme } } });\n }\n if (italic) {\n children.push({ name: 'i' });\n }\n if (bold) {\n children.push({ name: 'b' });\n }\n if (strikeThrough) {\n children.push({ name: 'strike' });\n }\n if (outline) {\n children.push({ name: 'outline' });\n }\n if (shadow) {\n children.push({ name: 'shadow' });\n }\n if (underline) {\n children.push({ name: 'u', properties: { rawMap: { val: underline } } });\n }\n if (verticalAlign) {\n children.push({ name: 'vertAlign', properties: { rawMap: { val: verticalAlign } } });\n }\n return { name: \"font\", children: children };\n }\n};\n\nvar fontsFactory = {\n getTemplate: function (fonts) {\n return {\n name: \"fonts\",\n properties: {\n rawMap: {\n count: fonts.length\n }\n },\n children: fonts.map(function (font) { return fontFactory.getTemplate(font); })\n };\n }\n};\n\nvar fillFactory = {\n getTemplate: function (fill) {\n var patternType = fill.patternType, fgTheme = fill.fgTheme, fgTint = fill.fgTint, fgRgb = fill.fgRgb, bgRgb = fill.bgRgb, bgIndexed = fill.bgIndexed;\n var pf = {\n name: 'patternFill',\n properties: {\n rawMap: {\n patternType: patternType\n }\n }\n };\n if (fgTheme || fgTint || fgRgb) {\n pf.children = [{\n name: 'fgColor',\n properties: {\n rawMap: {\n theme: fgTheme,\n tint: fgTint,\n rgb: fgRgb\n }\n }\n }];\n }\n if (bgIndexed || bgRgb) {\n if (!pf.children) {\n pf.children = [];\n }\n pf.children.push({\n name: 'bgColor',\n properties: {\n rawMap: {\n indexed: bgIndexed,\n rgb: bgRgb\n }\n }\n });\n }\n return {\n name: \"fill\",\n children: [pf]\n };\n }\n};\n\nvar fillsFactory = {\n getTemplate: function (fills) {\n return {\n name: \"fills\",\n properties: {\n rawMap: {\n count: fills.length\n }\n },\n children: fills.map(function (fill) { return fillFactory.getTemplate(fill); })\n };\n }\n};\n\nvar getWeightName = function (value) {\n switch (value) {\n case 1: return 'thin';\n case 2: return 'medium';\n case 3: return 'thick';\n default: return 'hair';\n }\n};\nvar mappedBorderNames = {\n None: 'None',\n Dot: 'Dotted',\n Dash: 'Dashed',\n Double: 'Double',\n DashDot: 'DashDot',\n DashDotDot: 'DashDotDot',\n SlantDashDot: 'SlantDashDot'\n};\nvar mediumBorders = ['Dashed', 'DashDot', 'DashDotDot'];\nvar colorMap = {\n None: 'none',\n Solid: 'solid',\n Gray50: 'mediumGray',\n Gray75: 'darkGray',\n Gray25: 'lightGray',\n HorzStripe: 'darkHorizontal',\n VertStripe: 'darkVertical',\n ReverseDiagStripe: 'darkDown',\n DiagStripe: 'darkUp',\n DiagCross: 'darkGrid',\n ThickDiagCross: 'darkTrellis',\n ThinHorzStripe: 'lightHorizontal',\n ThinVertStripe: 'lightVertical',\n ThinReverseDiagStripe: 'lightDown',\n ThinDiagStripe: 'lightUp',\n ThinHorzCross: 'lightGrid',\n ThinDiagCross: 'lightTrellis',\n Gray125: 'gray125',\n Gray0625: 'gray0625'\n};\nvar horizontalAlignmentMap = {\n Automatic: 'general',\n Left: 'left',\n Center: 'center',\n Right: 'right',\n Fill: 'fill',\n Justify: 'justify',\n CenterAcrossSelection: 'centerContinuous',\n Distributed: 'distributed',\n JustifyDistributed: 'justify'\n};\nvar verticalAlignmentMap = {\n Automatic: undefined,\n Top: 'top',\n Bottom: 'bottom',\n Center: 'center',\n Justify: 'justify',\n Distributed: 'distributed',\n JustifyDistributed: 'justify'\n};\nvar convertLegacyPattern = function (name) {\n if (!name) {\n return 'none';\n }\n return colorMap[name] || name;\n};\nvar convertLegacyColor = function (color) {\n if (color == undefined) {\n return color;\n }\n if (color.charAt(0) === '#') {\n color = color.substr(1);\n }\n return color.length === 6 ? 'FF' + color : color;\n};\nvar convertLegacyBorder = function (type, weight) {\n if (!type) {\n return 'thin';\n }\n // Legacy Types are: None, Continuous, Dash, Dot, DashDot, DashDotDot, SlantDashDot, and Double\n // Weight represents: 0—Hairline, 1—Thin , 2—Medium, 3—Thick\n // New types: none, thin, medium, dashed, dotted, thick, double, hair, mediumDashed, dashDot, mediumDashDot,\n // dashDotDot, mediumDashDotDot, slantDashDot\n var namedWeight = getWeightName(weight);\n var mappedName = mappedBorderNames[type];\n if (type === 'Continuous') {\n return namedWeight;\n }\n if (namedWeight === 'medium' && mediumBorders.indexOf(mappedName) !== -1) {\n return \"medium\" + mappedName;\n }\n return mappedName.charAt(0).toLowerCase() + mappedName.substr(1);\n};\nvar convertLegacyHorizontalAlignment = function (alignment) {\n return horizontalAlignmentMap[alignment] || 'general';\n};\nvar convertLegacyVerticalAlignment = function (alignment) {\n return verticalAlignmentMap[alignment] || undefined;\n};\n\nvar getBorderColor = function (color) {\n return {\n name: 'color',\n properties: {\n rawMap: {\n rgb: convertLegacyColor(color || '#000000')\n }\n }\n };\n};\nvar borderFactory = {\n getTemplate: function (border) {\n var left = border.left, right = border.right, top = border.top, bottom = border.bottom, diagonal = border.diagonal;\n var leftChildren = left ? [getBorderColor(left.color)] : undefined;\n var rightChildren = right ? [getBorderColor(right.color)] : undefined;\n var topChildren = top ? [getBorderColor(top.color)] : undefined;\n var bottomChildren = bottom ? [getBorderColor(bottom.color)] : undefined;\n var diagonalChildren = diagonal ? [getBorderColor(diagonal.color)] : undefined;\n return {\n name: 'border',\n children: [{\n name: 'left',\n properties: { rawMap: { style: left && left.style } },\n children: leftChildren\n }, {\n name: 'right',\n properties: { rawMap: { style: right && right.style } },\n children: rightChildren\n }, {\n name: 'top',\n properties: { rawMap: { style: top && top.style } },\n children: topChildren\n }, {\n name: 'bottom',\n properties: { rawMap: { style: bottom && bottom.style } },\n children: bottomChildren\n }, {\n name: 'diagonal',\n properties: { rawMap: { style: diagonal && diagonal.style } },\n children: diagonalChildren\n }]\n };\n }\n};\n\nvar bordersFactory = {\n getTemplate: function (borders) {\n return {\n name: \"borders\",\n properties: {\n rawMap: {\n count: borders.length\n }\n },\n children: borders.map(function (border) { return borderFactory.getTemplate(border); })\n };\n }\n};\n\nvar getReadingOrderId = function (readingOrder) {\n var order = ['Context', 'LeftToRight', 'RightToLeft'];\n var pos = order.indexOf(readingOrder);\n return Math.max(pos, 0);\n};\nvar alignmentFactory = {\n getTemplate: function (alignment) {\n var horizontal = alignment.horizontal, indent = alignment.indent, readingOrder = alignment.readingOrder, rotate = alignment.rotate, shrinkToFit = alignment.shrinkToFit, vertical = alignment.vertical, wrapText = alignment.wrapText;\n return {\n name: 'alignment',\n properties: {\n rawMap: {\n horizontal: horizontal && convertLegacyHorizontalAlignment(horizontal),\n indent: indent,\n readingOrder: readingOrder && getReadingOrderId(readingOrder),\n textRotation: rotate,\n shrinkToFit: shrinkToFit,\n vertical: vertical && convertLegacyVerticalAlignment(vertical),\n wrapText: wrapText\n }\n }\n };\n }\n};\n\nvar protectionFactory = {\n getTemplate: function (protection) {\n var locked = protection.protected === false ? 0 : 1;\n var hidden = protection.hideFormula === true ? 1 : 0;\n return {\n name: 'protection',\n properties: {\n rawMap: {\n hidden: hidden,\n locked: locked\n }\n }\n };\n }\n};\n\nvar xfFactory = {\n getTemplate: function (xf) {\n var alignment = xf.alignment, borderId = xf.borderId, fillId = xf.fillId, fontId = xf.fontId, numFmtId = xf.numFmtId, protection = xf.protection, xfId = xf.xfId;\n var children = [];\n if (alignment) {\n children.push(alignmentFactory.getTemplate(alignment));\n }\n if (protection) {\n children.push(protectionFactory.getTemplate(protection));\n }\n return {\n name: \"xf\",\n properties: {\n rawMap: {\n applyAlignment: alignment ? 1 : undefined,\n applyProtection: protection ? 1 : undefined,\n applyBorder: borderId ? 1 : undefined,\n applyFill: fillId ? 1 : undefined,\n borderId: borderId,\n fillId: fillId,\n applyFont: fontId ? 1 : undefined,\n fontId: fontId,\n applyNumberFormat: numFmtId ? 1 : undefined,\n numFmtId: numFmtId,\n xfId: xfId\n }\n },\n children: children.length ? children : undefined\n };\n }\n};\n\nvar cellStylesXfsFactory = {\n getTemplate: function (xfs) {\n return {\n name: \"cellStyleXfs\",\n properties: {\n rawMap: {\n count: xfs.length\n }\n },\n children: xfs.map(function (xf) { return xfFactory.getTemplate(xf); })\n };\n }\n};\n\nvar cellXfsFactory = {\n getTemplate: function (xfs) {\n return {\n name: \"cellXfs\",\n properties: {\n rawMap: {\n count: xfs.length\n }\n },\n children: xfs.map(function (xf) { return xfFactory.getTemplate(xf); })\n };\n }\n};\n\nvar borderFactory$1 = {\n getTemplate: function (cellStyle) {\n var builtinId = cellStyle.builtinId, name = cellStyle.name, xfId = cellStyle.xfId;\n return {\n name: \"cellStyle\",\n properties: {\n rawMap: {\n builtinId: builtinId,\n name: name,\n xfId: xfId\n }\n }\n };\n }\n};\n\nvar cellStylesFactory = {\n getTemplate: function (cellStyles) {\n return {\n name: \"cellStyles\",\n properties: {\n rawMap: {\n count: cellStyles.length\n }\n },\n children: cellStyles.map(function (cellStyle) { return borderFactory$1.getTemplate(cellStyle); })\n };\n }\n};\n\nvar __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\nvar stylesMap;\nvar registeredNumberFmts;\nvar registeredFonts;\nvar registeredFills;\nvar registeredBorders;\nvar registeredCellStyleXfs;\nvar registeredCellXfs;\nvar registeredCellStyles;\nvar currentSheet;\nvar getStyleName = function (name, currentSheet) {\n if (name.indexOf('mixedStyle') !== -1 && currentSheet > 1) {\n name += \"_\" + currentSheet;\n }\n return name;\n};\nvar resetStylesheetValues = function () {\n stylesMap = { base: 0 };\n registeredNumberFmts = [];\n registeredFonts = [{ fontName: 'Calibri', colorTheme: '1', family: '2', scheme: 'minor' }];\n registeredFills = [{ patternType: 'none', }, { patternType: 'gray125' }];\n registeredBorders = [{ left: undefined, right: undefined, top: undefined, bottom: undefined, diagonal: undefined }];\n registeredCellStyleXfs = [{ borderId: 0, fillId: 0, fontId: 0, numFmtId: 0 }];\n registeredCellXfs = [{ borderId: 0, fillId: 0, fontId: 0, numFmtId: 0, xfId: 0 }];\n registeredCellStyles = [{ builtinId: 0, name: 'Normal', xfId: 0 }];\n};\nvar registerFill = function (fill) {\n var convertedPattern = convertLegacyPattern(fill.pattern);\n var convertedFillColor = convertLegacyColor(fill.color);\n var convertedPatternColor = convertLegacyColor(fill.patternColor);\n var pos = registeredFills.findIndex(function (currentFill) {\n var patternType = currentFill.patternType, fgRgb = currentFill.fgRgb, bgRgb = currentFill.bgRgb;\n if (patternType != convertedPattern ||\n fgRgb != convertedFillColor ||\n bgRgb != convertedPatternColor) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredFills.length;\n registeredFills.push({ patternType: convertedPattern, fgRgb: convertedFillColor, bgRgb: convertedPatternColor });\n }\n return pos;\n};\nvar registerNumberFmt = function (format) {\n format = agGridCommunity._.utf8_encode(format);\n if (numberFormatMap[format]) {\n return numberFormatMap[format];\n }\n var pos = registeredNumberFmts.findIndex(function (currentFormat) { return currentFormat.formatCode === format; });\n if (pos === -1) {\n pos = registeredNumberFmts.length + 164;\n registeredNumberFmts.push({ formatCode: format, numFmtId: pos });\n }\n else {\n pos = registeredNumberFmts[pos].numFmtId;\n }\n return pos;\n};\nvar registerBorders = function (borders) {\n var borderBottom = borders.borderBottom, borderTop = borders.borderTop, borderLeft = borders.borderLeft, borderRight = borders.borderRight;\n var bottomStyle;\n var topStyle;\n var leftStyle;\n var rightStyle;\n var bottomColor;\n var topColor;\n var leftColor;\n var rightColor;\n if (borderLeft) {\n leftStyle = convertLegacyBorder(borderLeft.lineStyle, borderLeft.weight);\n leftColor = convertLegacyColor(borderLeft.color);\n }\n if (borderRight) {\n rightStyle = convertLegacyBorder(borderRight.lineStyle, borderRight.weight);\n rightColor = convertLegacyColor(borderRight.color);\n }\n if (borderBottom) {\n bottomStyle = convertLegacyBorder(borderBottom.lineStyle, borderBottom.weight);\n bottomColor = convertLegacyColor(borderBottom.color);\n }\n if (borderTop) {\n topStyle = convertLegacyBorder(borderTop.lineStyle, borderTop.weight);\n topColor = convertLegacyColor(borderTop.color);\n }\n var pos = registeredBorders.findIndex(function (currentBorder) {\n var left = currentBorder.left, right = currentBorder.right, top = currentBorder.top, bottom = currentBorder.bottom;\n if (!left && (leftStyle || leftColor)) {\n return false;\n }\n if (!right && (rightStyle || rightColor)) {\n return false;\n }\n if (!top && (topStyle || topColor)) {\n return false;\n }\n if (!bottom && (bottomStyle || bottomColor)) {\n return false;\n }\n var _a = left || {}, clS = _a.style, clC = _a.color;\n var _b = right || {}, crS = _b.style, crC = _b.color;\n var _c = top || {}, ctS = _c.style, ctC = _c.color;\n var _d = bottom || {}, cbS = _d.style, cbC = _d.color;\n if (clS != leftStyle || clC != leftColor) {\n return false;\n }\n if (crS != rightStyle || crC != rightColor) {\n return false;\n }\n if (ctS != topStyle || ctC != topColor) {\n return false;\n }\n if (cbS != bottomStyle || cbC != bottomColor) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredBorders.length;\n registeredBorders.push({\n left: {\n style: leftStyle, color: leftColor\n },\n right: {\n style: rightStyle, color: rightColor\n },\n top: {\n style: topStyle, color: topColor\n },\n bottom: {\n style: bottomStyle, color: bottomColor\n },\n diagonal: {\n style: undefined,\n color: undefined\n }\n });\n }\n return pos;\n};\nvar registerFont = function (font) {\n var _a = font.fontName, name = _a === void 0 ? 'Calibri' : _a, color = font.color, size = font.size, bold = font.bold, italic = font.italic, outline = font.outline, shadow = font.shadow, strikeThrough = font.strikeThrough, underline = font.underline, family = font.family, verticalAlign = font.verticalAlign;\n var utf8Name = name ? agGridCommunity._.utf8_encode(name) : name;\n var convertedColor = convertLegacyColor(color);\n var familyId = getFontFamilyId(family);\n var convertedUnderline = underline ? underline.toLocaleLowerCase() : undefined;\n var convertedVerticalAlign = verticalAlign ? verticalAlign.toLocaleLowerCase() : undefined;\n var pos = registeredFonts.findIndex(function (currentFont) {\n if (currentFont.fontName != utf8Name ||\n currentFont.color != convertedColor ||\n currentFont.size != size ||\n currentFont.bold != bold ||\n currentFont.italic != italic ||\n currentFont.outline != outline ||\n currentFont.shadow != shadow ||\n currentFont.strikeThrough != strikeThrough ||\n currentFont.underline != convertedUnderline ||\n currentFont.verticalAlign != convertedVerticalAlign ||\n // @ts-ignore\n currentFont.family != familyId) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredFonts.length;\n registeredFonts.push({\n fontName: utf8Name,\n color: convertedColor,\n size: size,\n bold: bold,\n italic: italic,\n outline: outline,\n shadow: shadow,\n strikeThrough: strikeThrough,\n underline: convertedUnderline,\n verticalAlign: convertedVerticalAlign,\n family: familyId != null ? familyId.toString() : undefined\n });\n }\n return pos;\n};\nvar registerStyle = function (config) {\n var alignment = config.alignment, borders = config.borders, font = config.font, interior = config.interior, numberFormat = config.numberFormat, protection = config.protection;\n var id = config.id;\n var currentFill = 0;\n var currentBorder = 0;\n var currentFont = 0;\n var currentNumberFmt = 0;\n if (!id) {\n return;\n }\n id = getStyleName(id, currentSheet);\n if (stylesMap[id] != undefined) {\n return;\n }\n if (interior) {\n currentFill = registerFill(interior);\n }\n if (borders) {\n currentBorder = registerBorders(borders);\n }\n if (font) {\n currentFont = registerFont(font);\n }\n if (numberFormat) {\n currentNumberFmt = registerNumberFmt(numberFormat.format);\n }\n stylesMap[id] = registeredCellXfs.length;\n registeredCellXfs.push({\n alignment: alignment,\n borderId: currentBorder || 0,\n fillId: currentFill || 0,\n fontId: currentFont || 0,\n numFmtId: currentNumberFmt || 0,\n protection: protection,\n xfId: 0\n });\n};\nvar stylesheetFactory = {\n getTemplate: function (defaultFontSize) {\n var numberFormats = numberFormatsFactory.getTemplate(registeredNumberFmts);\n var fonts = fontsFactory.getTemplate(registeredFonts.map(function (font) { return (__assign$2(__assign$2({}, font), { size: font.size != null ? font.size : defaultFontSize })); }));\n var fills = fillsFactory.getTemplate(registeredFills);\n var borders = bordersFactory.getTemplate(registeredBorders);\n var cellStylesXfs = cellStylesXfsFactory.getTemplate(registeredCellStyleXfs);\n var cellXfs = cellXfsFactory.getTemplate(registeredCellXfs);\n var cellStyles = cellStylesFactory.getTemplate(registeredCellStyles);\n resetStylesheetValues();\n return {\n name: 'styleSheet',\n properties: {\n rawMap: {\n 'mc:Ignorable': 'x14ac x16r2 xr',\n 'xmlns': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'xmlns:x14ac': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac',\n 'xmlns:x16r2': 'http://schemas.microsoft.com/office/spreadsheetml/2015/02/main',\n 'xmlns:xr': 'http://schemas.microsoft.com/office/spreadsheetml/2014/revision'\n }\n },\n children: [\n numberFormats,\n fonts,\n fills,\n borders,\n cellStylesXfs,\n cellXfs,\n cellStyles,\n {\n name: 'tableStyles',\n properties: {\n rawMap: {\n count: 0,\n defaultPivotStyle: 'PivotStyleLight16',\n defaultTableStyle: 'TableStyleMedium2'\n }\n }\n }\n ]\n };\n }\n};\nvar getStyleId = function (name, currentSheet) {\n return stylesMap[getStyleName(name, currentSheet)] || 0;\n};\nvar registerStyles = function (styles, _currentSheet) {\n currentSheet = _currentSheet;\n if (currentSheet === 1) {\n resetStylesheetValues();\n }\n styles.forEach(registerStyle);\n};\n\nvar sheetFactory = {\n getTemplate: function (name, idx) {\n var sheetId = (idx + 1).toString();\n return {\n name: \"sheet\",\n properties: {\n rawMap: {\n \"name\": name,\n \"sheetId\": sheetId,\n \"r:id\": \"rId\" + sheetId\n }\n }\n };\n }\n};\n\nvar sheetsFactory = {\n getTemplate: function (names) {\n return {\n name: \"sheets\",\n children: names.map(function (sheet, idx) { return sheetFactory.getTemplate(sheet, idx); })\n };\n }\n};\n\nvar workbookFactory = {\n getTemplate: function (names) {\n return {\n name: \"workbook\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n r: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n },\n }],\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"\n }\n },\n children: [sheetsFactory.getTemplate(names)]\n };\n }\n};\n\n// https://docs.microsoft.com/en-us/office/troubleshoot/excel/determine-column-widths\nvar getExcelCellWidth = function (width) { return Math.ceil((width - 12) / 7 + 1); };\nvar columnFactory = {\n getTemplate: function (config) {\n var min = config.min, max = config.max, outlineLevel = config.outlineLevel, s = config.s, width = config.width, hidden = config.hidden, bestFit = config.bestFit;\n var excelWidth = 1;\n var customWidth = '0';\n if (width > 1) {\n excelWidth = getExcelCellWidth(width);\n customWidth = '1';\n }\n return {\n name: 'col',\n properties: {\n rawMap: {\n min: min,\n max: max,\n outlineLevel: outlineLevel != null ? outlineLevel : undefined,\n width: excelWidth,\n style: s,\n hidden: hidden ? '1' : '0',\n bestFit: bestFit ? '1' : '0',\n customWidth: customWidth\n }\n }\n };\n }\n};\n\nvar convertLegacyType = function (type) {\n var t = type.charAt(0).toLowerCase();\n return t === 's' ? 'inlineStr' : t;\n};\nvar cellFactory = {\n getTemplate: function (config, idx, currentSheet) {\n var ref = config.ref, data = config.data, styleId = config.styleId;\n var type = data.type, value = data.value;\n var convertedType = type;\n if (type === 'f') {\n convertedType = 'str';\n }\n else if (type.charAt(0) === type.charAt(0).toUpperCase()) {\n convertedType = convertLegacyType(type);\n }\n var obj = {\n name: 'c',\n properties: {\n rawMap: {\n r: ref,\n t: convertedType === 'empty' ? undefined : convertedType,\n s: styleId ? getStyleId(styleId, currentSheet) : undefined\n }\n }\n };\n if (convertedType === 'empty') {\n return obj;\n }\n var children;\n if (convertedType === 'str' && type === 'f') {\n children = [{\n name: 'f',\n textNode: agGridCommunity._.escapeString(agGridCommunity._.utf8_encode(value))\n }];\n }\n else if (convertedType === 'inlineStr') {\n children = [{\n name: 'is',\n children: [{\n name: 't',\n textNode: agGridCommunity._.escapeString(agGridCommunity._.utf8_encode(value))\n }]\n }];\n }\n else {\n children = [{\n name: 'v',\n textNode: value\n }];\n }\n return Object.assign({}, obj, { children: children });\n }\n};\n\nvar __read$9 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$5 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$9(arguments[i]));\n return ar;\n};\nvar addEmptyCells = function (cells, rowIdx) {\n var mergeMap = [];\n var posCounter = 0;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.mergeAcross) {\n mergeMap.push({\n pos: i,\n excelPos: posCounter\n });\n posCounter += cell.mergeAcross;\n }\n posCounter++;\n }\n if (mergeMap.length) {\n for (var i = mergeMap.length - 1; i >= 0; i--) {\n var mergedCells = [];\n var cell = cells[mergeMap[i].pos];\n for (var j = 1; j <= cell.mergeAcross; j++) {\n mergedCells.push({\n ref: \"\" + getExcelColumnName(mergeMap[i].excelPos + 1 + j) + (rowIdx + 1),\n styleId: cell.styleId,\n data: { type: 'empty', value: null }\n });\n }\n if (mergedCells.length) {\n cells.splice.apply(cells, __spread$5([mergeMap[i].pos + 1, 0], mergedCells));\n }\n }\n }\n};\nvar shouldDisplayCell = function (cell) { return cell.data.value !== '' || cell.styleId !== undefined; };\nvar rowFactory = {\n getTemplate: function (config, idx, currentSheet) {\n var index = config.index, collapsed = config.collapsed, hidden = config.hidden, height = config.height, s = config.s, _a = config.cells, cells = _a === void 0 ? [] : _a;\n addEmptyCells(cells, idx);\n var children = cells.filter(shouldDisplayCell).map(function (cell, idx) { return cellFactory.getTemplate(cell, idx, currentSheet); });\n return {\n name: \"row\",\n properties: {\n rawMap: {\n r: index,\n collapsed: collapsed,\n hidden: hidden ? '1' : '0',\n ht: height,\n customHeight: height != null ? '1' : '0',\n s: s,\n customFormat: s != null ? '1' : '0'\n }\n },\n children: children\n };\n }\n};\n\nvar mergeCellFactory = {\n getTemplate: function (ref) {\n return {\n name: 'mergeCell',\n properties: {\n rawMap: {\n ref: ref\n }\n }\n };\n }\n};\n\nvar getMergedCellsAndAddColumnGroups = function (rows, cols) {\n var mergedCells = [];\n var cellsWithCollapsibleGroups = [];\n rows.forEach(function (currentRow, rowIdx) {\n var cells = currentRow.cells;\n var merges = 0;\n currentRow.index = rowIdx + 1;\n var lastCol;\n cells.forEach(function (currentCell, cellIdx) {\n var min = cellIdx + merges + 1;\n var start = getExcelColumnName(min);\n var outputRow = rowIdx + 1;\n if (currentCell.mergeAcross) {\n merges += currentCell.mergeAcross;\n var end = getExcelColumnName(cellIdx + merges + 1);\n mergedCells.push(\"\" + start + outputRow + \":\" + end + outputRow);\n }\n if (!cols[min - 1]) {\n cols[min - 1] = {};\n }\n var collapsibleRanges = currentCell.collapsibleRanges;\n if (collapsibleRanges) {\n collapsibleRanges.forEach(function (range) {\n cellsWithCollapsibleGroups.push([min + range[0], min + range[1]]);\n });\n }\n lastCol = cols[min - 1];\n lastCol.min = min;\n lastCol.max = min;\n currentCell.ref = \"\" + start + outputRow;\n });\n });\n cellsWithCollapsibleGroups.sort(function (a, b) {\n if (a[0] !== b[0]) {\n return a[0] - b[0];\n }\n return b[1] - a[1];\n });\n var rangeMap = new Map();\n var outlineLevel = new Map();\n cellsWithCollapsibleGroups.filter(function (currentRange) {\n var rangeString = currentRange.toString();\n var inMap = rangeMap.get(rangeString);\n if (inMap) {\n return false;\n }\n rangeMap.set(rangeString, true);\n return true;\n }).forEach(function (range) {\n var refCol = cols.find(function (col) { return col.min == range[0] && col.max == range[1]; });\n var currentOutlineLevel = outlineLevel.get(range[0]);\n cols.push({\n min: range[0],\n max: range[1],\n outlineLevel: currentOutlineLevel || 1,\n width: (refCol || { width: 100 }).width\n });\n outlineLevel.set(range[0], (currentOutlineLevel || 0) + 1);\n });\n return mergedCells;\n};\nvar getPageOrientation = function (orientation) {\n if (!orientation || (orientation !== 'Portrait' && orientation !== 'Landscape')) {\n return 'portrait';\n }\n return orientation.toLocaleLowerCase();\n};\nvar getPageSize = function (pageSize) {\n if (pageSize == null) {\n return 1;\n }\n var positions = ['Letter', 'Letter Small', 'Tabloid', 'Ledger', 'Legal', 'Statement', 'Executive', 'A3', 'A4', 'A4 Small', 'A5', 'A6', 'B4', 'B5', 'Folio', 'Envelope', 'Envelope DL', 'Envelope C5', 'Envelope B5', 'Envelope C3', 'Envelope C4', 'Envelope C6', 'Envelope Monarch', 'Japanese Postcard', 'Japanese Double Postcard'];\n var pos = positions.indexOf(pageSize);\n return pos === -1 ? 1 : (pos + 1);\n};\nvar addColumns = function (columns) {\n return function (children) {\n if (columns.length) {\n children.push({\n name: 'cols',\n children: columns.map(function (column) { return columnFactory.getTemplate(column); })\n });\n }\n return children;\n };\n};\nvar addSheetData = function (rows, sheetNumber) {\n return function (children) {\n if (rows.length) {\n children.push({\n name: 'sheetData',\n children: rows.map(function (row, idx) { return rowFactory.getTemplate(row, idx, sheetNumber); })\n });\n }\n return children;\n };\n};\nvar addMergeCells = function (mergeCells) {\n return function (children) {\n if (mergeCells.length) {\n children.push({\n name: 'mergeCells',\n properties: {\n rawMap: {\n count: mergeCells.length\n }\n },\n children: mergeCells.map(function (mergedCell) { return mergeCellFactory.getTemplate(mergedCell); })\n });\n }\n return children;\n };\n};\nvar addPageMargins = function (margins) {\n return function (children) {\n var _a = margins.top, top = _a === void 0 ? 0.75 : _a, _b = margins.right, right = _b === void 0 ? 0.7 : _b, _c = margins.bottom, bottom = _c === void 0 ? 0.75 : _c, _d = margins.left, left = _d === void 0 ? 0.7 : _d, _e = margins.header, header = _e === void 0 ? 0.3 : _e, _f = margins.footer, footer = _f === void 0 ? 0.3 : _f;\n children.push({\n name: 'pageMargins',\n properties: {\n rawMap: { bottom: bottom, footer: footer, header: header, left: left, right: right, top: top }\n }\n });\n return children;\n };\n};\nvar addPageSetup = function (pageSetup) {\n return function (children) {\n if (pageSetup) {\n children.push({\n name: 'pageSetup',\n properties: {\n rawMap: {\n horizontalDpi: 0,\n verticalDpi: 0,\n orientation: getPageOrientation(pageSetup.orientation),\n paperSize: getPageSize(pageSetup.pageSize)\n }\n }\n });\n }\n return children;\n };\n};\nvar replaceHeaderFooterTokens = function (value) {\n var map = {\n '&[Page]': '&P',\n '&[Pages]': '&N',\n '&[Date]': '&D',\n '&[Time]': '&T',\n '&[Tab]': '&A',\n '&[Path]': '&Z',\n '&[File]': '&F'\n };\n agGridCommunity._.iterateObject(map, function (key, val) {\n value = value.replace(key, val);\n });\n return value;\n};\nvar getHeaderPosition = function (position) {\n if (position === 'Center') {\n return 'C';\n }\n if (position === 'Right') {\n return 'R';\n }\n return 'L';\n};\nvar applyHeaderFontStyle = function (headerString, font) {\n if (!font) {\n return headerString;\n }\n headerString += '&"';\n headerString += font.fontName || 'Calibri';\n if (font.bold !== font.italic) {\n headerString += font.bold ? ',Bold' : ',Italic';\n }\n else if (font.bold) {\n headerString += ',Bold Italic';\n }\n else {\n headerString += ',Regular';\n }\n headerString += '"';\n if (font.size) {\n headerString += \"&\" + font.size;\n }\n if (font.strikeThrough) {\n headerString += '&S';\n }\n if (font.underline) {\n headerString += \"&\" + (font.underline === 'Double' ? 'E' : 'U');\n }\n if (font.color) {\n headerString += \"&K\" + font.color.replace('#', '').toUpperCase();\n }\n return headerString;\n};\nvar processHeaderFooterContent = function (content) {\n return content.reduce(function (prev, curr) {\n var pos = getHeaderPosition(curr.position);\n var output = applyHeaderFontStyle(prev + \"&\" + pos, curr.font);\n return \"\" + output + agGridCommunity._.escapeString(replaceHeaderFooterTokens(curr.value));\n }, '');\n};\nvar buildHeaderFooter = function (headerFooterConfig) {\n var rules = ['all', 'first', 'even'];\n var headersAndFooters = [];\n rules.forEach(function (rule) {\n var headerFooter = headerFooterConfig[rule];\n var namePrefix = rule === 'all' ? 'odd' : rule;\n if (!headerFooter || (!headerFooter.header && !headerFooter.footer)) {\n return;\n }\n agGridCommunity._.iterateObject(headerFooter, function (key, value) {\n var nameSuffix = \"\" + key.charAt(0).toUpperCase() + key.slice(1);\n if (value) {\n headersAndFooters.push({\n name: \"\" + namePrefix + nameSuffix,\n properties: {\n rawMap: {\n 'xml:space': 'preserve'\n }\n },\n textNode: processHeaderFooterContent(value)\n });\n }\n });\n });\n return headersAndFooters;\n};\nvar addHeaderFooter = function (headerFooterConfig) {\n return function (children) {\n if (!headerFooterConfig) {\n return children;\n }\n var differentFirst = headerFooterConfig.first != null ? 1 : 0;\n var differentOddEven = headerFooterConfig.even != null ? 1 : 0;\n children.push({\n name: 'headerFooter',\n properties: {\n rawMap: {\n differentFirst: differentFirst,\n differentOddEven: differentOddEven\n }\n },\n children: buildHeaderFooter(headerFooterConfig)\n });\n return children;\n };\n};\nvar addDrawingRel = function (currentSheet) {\n return function (children) {\n if (ExcelXlsxFactory.worksheetImages.get(currentSheet)) {\n children.push({\n name: 'drawing',\n properties: {\n rawMap: {\n 'r:id': 'rId1'\n }\n }\n });\n }\n return children;\n };\n};\nvar worksheetFactory = {\n getTemplate: function (params) {\n var worksheet = params.worksheet, currentSheet = params.currentSheet, _a = params.margins, margins = _a === void 0 ? {} : _a, pageSetup = params.pageSetup, headerFooterConfig = params.headerFooterConfig;\n var table = worksheet.table;\n var rows = table.rows, columns = table.columns;\n var mergedCells = (columns && columns.length) ? getMergedCellsAndAddColumnGroups(rows, columns) : [];\n var createWorksheetChildren = agGridCommunity._.compose(addColumns(columns), addSheetData(rows, currentSheet + 1), addMergeCells(mergedCells), addPageMargins(margins), addPageSetup(pageSetup), addHeaderFooter(headerFooterConfig), addDrawingRel(currentSheet));\n var children = createWorksheetChildren([]);\n return {\n name: \"worksheet\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n r: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n }\n }],\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"\n }\n },\n children: children\n };\n }\n};\n\nvar relationshipFactory = {\n getTemplate: function (config) {\n var Id = config.Id, Type = config.Type, Target = config.Target;\n return {\n name: \"Relationship\",\n properties: {\n rawMap: {\n Id: Id,\n Type: Type,\n Target: Target\n }\n }\n };\n }\n};\n\nvar relationshipsFactory = {\n getTemplate: function (c) {\n var children = c.map(function (relationship) { return relationshipFactory.getTemplate(relationship); });\n return {\n name: \"Relationships\",\n properties: {\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/package/2006/relationships\"\n }\n },\n children: children\n };\n }\n};\n\nvar __read$a = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$6 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$a(arguments[i]));\n return ar;\n};\n/**\n * See https://www.ecma-international.org/news/TC45_current_work/OpenXML%20White%20Paper.pdf\n */\nvar ExcelXlsxFactory = /** @class */ (function () {\n function ExcelXlsxFactory() {\n }\n ExcelXlsxFactory.createExcel = function (styles, worksheet, margins, pageSetup, headerFooterConfig) {\n this.addSheetName(worksheet);\n registerStyles(styles, this.sheetNames.length);\n return this.createWorksheet(worksheet, margins, pageSetup, headerFooterConfig);\n };\n ExcelXlsxFactory.buildImageMap = function (image, rowIndex, col, columnsToExport, rowHeight) {\n var currentSheetIndex = this.sheetNames.length;\n var registeredImage = this.images.get(image.id);\n if (!image.position || !image.position.row || !image.position.column) {\n if (!image.position) {\n image.position = {};\n }\n image.position = Object.assign({}, image.position, {\n row: rowIndex,\n column: columnsToExport.indexOf(col) + 1\n });\n }\n var calculatedImage = image;\n setExcelImageTotalWidth(calculatedImage, columnsToExport);\n setExcelImageTotalHeight(calculatedImage, rowHeight);\n if (registeredImage) {\n var currentSheetImages = registeredImage.find(function (currentImage) { return currentImage.sheetId === currentSheetIndex; });\n if (currentSheetImages) {\n currentSheetImages.image.push(calculatedImage);\n }\n else {\n registeredImage.push({\n sheetId: currentSheetIndex,\n image: [calculatedImage]\n });\n }\n }\n else {\n this.images.set(calculatedImage.id, [{ sheetId: currentSheetIndex, image: [calculatedImage] }]);\n this.workbookImageIds.set(calculatedImage.id, { type: calculatedImage.imageType, index: this.workbookImageIds.size });\n }\n this.buildSheetImageMap(currentSheetIndex, calculatedImage);\n };\n ExcelXlsxFactory.buildSheetImageMap = function (sheetIndex, image) {\n var worksheetImageIdMap = this.worksheetImageIds.get(sheetIndex);\n if (!worksheetImageIdMap) {\n worksheetImageIdMap = new Map();\n this.worksheetImageIds.set(sheetIndex, worksheetImageIdMap);\n }\n var sheetImages = this.worksheetImages.get(sheetIndex);\n if (!sheetImages) {\n this.worksheetImages.set(sheetIndex, [image]);\n worksheetImageIdMap.set(image.id, { index: 0, type: image.imageType });\n }\n else {\n sheetImages.push(image);\n if (!worksheetImageIdMap.get(image.id)) {\n worksheetImageIdMap.set(image.id, { index: worksheetImageIdMap.size, type: image.imageType });\n }\n }\n };\n ExcelXlsxFactory.addSheetName = function (worksheet) {\n var name = agGridCommunity._.escapeString(worksheet.name) || '';\n var append = '';\n while (this.sheetNames.indexOf(\"\" + name + append) !== -1) {\n if (append === '') {\n append = '_1';\n }\n else {\n var curr = parseInt(append.slice(1), 10);\n append = \"_\" + (curr + 1);\n }\n }\n worksheet.name = \"\" + name + append;\n this.sheetNames.push(worksheet.name);\n };\n ExcelXlsxFactory.getStringPosition = function (str) {\n if (this.sharedStrings.has(str)) {\n return this.sharedStrings.get(str);\n }\n this.sharedStrings.set(str, this.sharedStrings.size);\n return this.sharedStrings.size - 1;\n };\n ExcelXlsxFactory.resetFactory = function () {\n this.sharedStrings = new Map();\n this.images = new Map();\n this.worksheetImages = new Map();\n this.workbookImageIds = new Map();\n this.worksheetImageIds = new Map();\n this.sheetNames = [];\n this.factoryMode = agGridCommunity.ExcelFactoryMode.SINGLE_SHEET;\n };\n ExcelXlsxFactory.createWorkbook = function () {\n return createXmlPart(workbookFactory.getTemplate(this.sheetNames));\n };\n ExcelXlsxFactory.createStylesheet = function (defaultFontSize) {\n return createXmlPart(stylesheetFactory.getTemplate(defaultFontSize));\n };\n ExcelXlsxFactory.createSharedStrings = function () {\n return createXmlPart(sharedStrings.getTemplate(this.sharedStrings));\n };\n ExcelXlsxFactory.createCore = function (author) {\n return createXmlPart(coreFactory.getTemplate(author));\n };\n ExcelXlsxFactory.createContentTypes = function (sheetLen) {\n return createXmlPart(contentTypesFactory.getTemplate(sheetLen));\n };\n ExcelXlsxFactory.createRels = function () {\n var rs = relationshipsFactory.getTemplate([{\n Id: 'rId1',\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',\n Target: 'xl/workbook.xml'\n }, {\n Id: 'rId2',\n Type: 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',\n Target: 'docProps/core.xml'\n }]);\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createTheme = function () {\n return createXmlPart(officeTheme.getTemplate());\n };\n ExcelXlsxFactory.createWorkbookRels = function (sheetLen) {\n var worksheets = new Array(sheetLen).fill(undefined).map(function (v, i) { return ({\n Id: \"rId\" + (i + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',\n Target: \"worksheets/sheet\" + (i + 1) + \".xml\"\n }); });\n var rs = relationshipsFactory.getTemplate(__spread$6(worksheets, [\n {\n Id: \"rId\" + (sheetLen + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',\n Target: 'theme/theme1.xml'\n }, {\n Id: \"rId\" + (sheetLen + 2),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',\n Target: 'styles.xml'\n }, {\n Id: \"rId\" + (sheetLen + 3),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',\n Target: 'sharedStrings.xml'\n }\n ]));\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createDrawing = function (sheetIndex) {\n return createXmlPart(drawingFactory.getTemplate({ sheetIndex: sheetIndex }));\n };\n ExcelXlsxFactory.createDrawingRel = function (sheetIndex) {\n var _this = this;\n var worksheetImageIds = this.worksheetImageIds.get(sheetIndex);\n var XMLArr = [];\n worksheetImageIds.forEach(function (value, key) {\n XMLArr.push({\n Id: \"rId\" + (value.index + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',\n Target: \"../media/image\" + (_this.workbookImageIds.get(key).index + 1) + \".\" + value.type\n });\n });\n return createXmlPart(relationshipsFactory.getTemplate(XMLArr));\n };\n ExcelXlsxFactory.createWorksheetDrawingRel = function (currentRelationIndex) {\n var rs = relationshipsFactory.getTemplate([{\n Id: 'rId1',\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',\n Target: \"../drawings/drawing\" + (currentRelationIndex + 1) + \".xml\"\n }]);\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createWorksheet = function (worksheet, margins, pageSetup, headerFooterConfig) {\n return createXmlPart(worksheetFactory.getTemplate({\n worksheet: worksheet,\n currentSheet: this.sheetNames.length - 1,\n margins: margins,\n pageSetup: pageSetup,\n headerFooterConfig: headerFooterConfig\n }));\n };\n ExcelXlsxFactory.sharedStrings = new Map();\n ExcelXlsxFactory.sheetNames = [];\n /** Maps images to sheet */\n ExcelXlsxFactory.images = new Map();\n /** Maps sheets to images */\n ExcelXlsxFactory.worksheetImages = new Map();\n /** Maps all workbook images to a global Id */\n ExcelXlsxFactory.workbookImageIds = new Map();\n /** Maps all sheet images to unique Ids */\n ExcelXlsxFactory.worksheetImageIds = new Map();\n ExcelXlsxFactory.factoryMode = agGridCommunity.ExcelFactoryMode.SINGLE_SHEET;\n return ExcelXlsxFactory;\n}());\n\nvar __extends$z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ExcelXlsxSerializingSession = /** @class */ (function (_super) {\n __extends$z(ExcelXlsxSerializingSession, _super);\n function ExcelXlsxSerializingSession() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExcelXlsxSerializingSession.prototype.createExcel = function (data) {\n var _a = this, excelStyles = _a.excelStyles, config = _a.config;\n var margins = config.margins, pageSetup = config.pageSetup, headerFooterConfig = config.headerFooterConfig;\n return ExcelXlsxFactory.createExcel(excelStyles, data, margins, pageSetup, headerFooterConfig);\n };\n ExcelXlsxSerializingSession.prototype.getDataTypeForValue = function (valueForCell) {\n if (valueForCell === undefined) {\n return 'empty';\n }\n return agGridCommunity._.isNumeric(valueForCell) ? 'n' : 's';\n };\n ExcelXlsxSerializingSession.prototype.getType = function (type, style, value) {\n if (this.isFormula(value)) {\n return 'f';\n }\n if (style && style.dataType) {\n switch (style.dataType.toLocaleLowerCase()) {\n case 'formula':\n return 'f';\n case 'string':\n return 's';\n case 'number':\n return 'n';\n case 'datetime':\n return 'd';\n case 'error':\n return 'e';\n case 'boolean':\n return 'b';\n default:\n console.warn(\"AG Grid: Unrecognized data type for excel export [\" + style.id + \".dataType=\" + style.dataType + \"]\");\n }\n }\n return type;\n };\n ExcelXlsxSerializingSession.prototype.addImage = function (rowIndex, column, value) {\n if (!this.config.addImageToCell) {\n return;\n }\n var addedImage = this.config.addImageToCell(rowIndex, column, value);\n if (!addedImage) {\n return;\n }\n ExcelXlsxFactory.buildImageMap(addedImage.image, rowIndex, column, this.columnsToExport, this.config.rowHeight);\n return addedImage;\n };\n ExcelXlsxSerializingSession.prototype.createCell = function (styleId, type, value) {\n var actualStyle = this.getStyleById(styleId);\n var typeTransformed = this.getType(type, actualStyle, value) || type;\n return {\n styleId: actualStyle ? styleId : undefined,\n data: {\n type: typeTransformed,\n value: this.getCellValue(typeTransformed, value)\n }\n };\n };\n ExcelXlsxSerializingSession.prototype.createMergedCell = function (styleId, type, value, numOfCells) {\n var valueToUse = value == null ? '' : value;\n return {\n styleId: !!this.getStyleById(styleId) ? styleId : undefined,\n data: {\n type: type,\n value: type === 's' ? ExcelXlsxFactory.getStringPosition(valueToUse).toString() : value\n },\n mergeAcross: numOfCells\n };\n };\n ExcelXlsxSerializingSession.prototype.getCellValue = function (type, value) {\n if (value == null) {\n return ExcelXlsxFactory.getStringPosition('').toString();\n }\n switch (type) {\n case 's':\n return value === '' ? '' : ExcelXlsxFactory.getStringPosition(value).toString();\n case 'f':\n return value.slice(1);\n case 'n':\n return Number(value).toString();\n default:\n return value;\n }\n };\n return ExcelXlsxSerializingSession;\n}(BaseExcelSerializingSession));\n\nvar __extends$A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\nvar __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar getMultipleSheetsAsExcel = function (params) {\n var data = params.data, _a = params.fontSize, fontSize = _a === void 0 ? 11 : _a, _b = params.author, author = _b === void 0 ? 'AG Grid' : _b;\n var hasImages = ExcelXlsxFactory.images.size > 0;\n ZipContainer.addFolders([\n '_rels/',\n 'docProps/',\n 'xl/',\n 'xl/theme/',\n 'xl/_rels/',\n 'xl/worksheets/'\n ]);\n if (hasImages) {\n ZipContainer.addFolders([\n 'xl/worksheets/_rels',\n 'xl/drawings/',\n 'xl/drawings/_rels',\n 'xl/media/',\n ]);\n var imgCounter_1 = 0;\n ExcelXlsxFactory.images.forEach(function (value) {\n var firstImage = value[0].image[0];\n var ext = firstImage.imageType;\n ZipContainer.addFile(\"xl/media/image\" + ++imgCounter_1 + \".\" + ext, firstImage.base64, true);\n });\n }\n if (!data || data.length === 0) {\n console.warn(\"AG Grid: Invalid params supplied to getMultipleSheetsAsExcel() - `ExcelExportParams.data` is empty.\");\n ExcelXlsxFactory.resetFactory();\n return;\n }\n var sheetLen = data.length;\n var imageRelationCounter = 0;\n data.forEach(function (value, idx) {\n ZipContainer.addFile(\"xl/worksheets/sheet\" + (idx + 1) + \".xml\", value);\n if (hasImages && ExcelXlsxFactory.worksheetImages.get(idx)) {\n createImageRelationsForSheet(idx, imageRelationCounter++);\n }\n });\n ZipContainer.addFile('xl/workbook.xml', ExcelXlsxFactory.createWorkbook());\n ZipContainer.addFile('xl/styles.xml', ExcelXlsxFactory.createStylesheet(fontSize));\n ZipContainer.addFile('xl/sharedStrings.xml', ExcelXlsxFactory.createSharedStrings());\n ZipContainer.addFile('xl/theme/theme1.xml', ExcelXlsxFactory.createTheme());\n ZipContainer.addFile('xl/_rels/workbook.xml.rels', ExcelXlsxFactory.createWorkbookRels(sheetLen));\n ZipContainer.addFile('docProps/core.xml', ExcelXlsxFactory.createCore(author));\n ZipContainer.addFile('[Content_Types].xml', ExcelXlsxFactory.createContentTypes(sheetLen));\n ZipContainer.addFile('_rels/.rels', ExcelXlsxFactory.createRels());\n ExcelXlsxFactory.resetFactory();\n var mimeType = params.mimeType || 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n return ZipContainer.getContent(mimeType);\n};\nvar exportMultipleSheetsAsExcel = function (params) {\n var _a = params.fileName, fileName = _a === void 0 ? 'export.xlsx' : _a;\n var contents = getMultipleSheetsAsExcel(params);\n if (contents) {\n Downloader.download(fileName, contents);\n }\n};\nvar createImageRelationsForSheet = function (sheetIndex, currentRelationIndex) {\n var drawingFolder = 'xl/drawings';\n var drawingFileName = drawingFolder + \"/drawing\" + (currentRelationIndex + 1) + \".xml\";\n var relFileName = drawingFolder + \"/_rels/drawing\" + (currentRelationIndex + 1) + \".xml.rels\";\n var worksheetRelFile = \"xl/worksheets/_rels/sheet\" + (sheetIndex + 1) + \".xml.rels\";\n ZipContainer.addFile(relFileName, ExcelXlsxFactory.createDrawingRel(sheetIndex));\n ZipContainer.addFile(drawingFileName, ExcelXlsxFactory.createDrawing(sheetIndex));\n ZipContainer.addFile(worksheetRelFile, ExcelXlsxFactory.createWorksheetDrawingRel(currentRelationIndex));\n};\nvar ExcelCreator = /** @class */ (function (_super) {\n __extends$A(ExcelCreator, _super);\n function ExcelCreator() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.exportMode = 'xlsx';\n return _this;\n }\n ExcelCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsWrapper: this.gridOptionsWrapper\n });\n };\n ExcelCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsWrapper.getDefaultExportParams('excel');\n return Object.assign({}, baseParams, params);\n };\n ExcelCreator.prototype.getData = function (params) {\n this.setExportMode(params.exportMode || 'xlsx');\n return _super.prototype.getData.call(this, params);\n };\n ExcelCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"AG Grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var mergedParams = this.getMergedParams(userParams);\n var data = this.getData(mergedParams);\n var exportParams = {\n data: [data],\n fontSize: mergedParams.fontSize,\n author: mergedParams.author,\n mimeType: mergedParams.mimeType\n };\n var packageFile = this.packageFile(exportParams);\n if (packageFile) {\n Downloader.download(this.getFileName(mergedParams.fileName), packageFile);\n }\n return data;\n };\n ExcelCreator.prototype.exportDataAsExcel = function (params) {\n return this.export(params);\n };\n ExcelCreator.prototype.getDataAsExcel = function (params) {\n var mergedParams = this.getMergedParams(params);\n var data = this.getData(mergedParams);\n if (params && params.exportMode === 'xml') {\n return data;\n }\n var exportParams = {\n data: [data],\n fontSize: mergedParams.fontSize,\n author: mergedParams.author,\n mimeType: mergedParams.mimeType\n };\n return this.packageFile(exportParams);\n };\n ExcelCreator.prototype.setFactoryMode = function (factoryMode, exportMode) {\n if (exportMode === void 0) { exportMode = 'xlsx'; }\n var factory = exportMode === 'xlsx' ? ExcelXlsxFactory : ExcelXmlFactory;\n factory.factoryMode = factoryMode;\n };\n ExcelCreator.prototype.getFactoryMode = function (exportMode) {\n var factory = exportMode === 'xlsx' ? ExcelXlsxFactory : ExcelXmlFactory;\n return factory.factoryMode;\n };\n ExcelCreator.prototype.getSheetDataForExcel = function (params) {\n var mergedParams = this.getMergedParams(params);\n var data = this.getData(mergedParams);\n return data;\n };\n ExcelCreator.prototype.getMultipleSheetsAsExcel = function (params) {\n return getMultipleSheetsAsExcel(params);\n };\n ExcelCreator.prototype.exportMultipleSheetsAsExcel = function (params) {\n return exportMultipleSheetsAsExcel(params);\n };\n ExcelCreator.prototype.getDefaultFileName = function () {\n return \"export.\" + this.getExportMode();\n };\n ExcelCreator.prototype.getDefaultFileExtension = function () {\n return this.getExportMode();\n };\n ExcelCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var isXlsx = this.getExportMode() === 'xlsx';\n var sheetName = 'ag-grid';\n if (params.sheetName != null) {\n sheetName = agGridCommunity._.utf8_encode(params.sheetName.toString().substr(0, 31));\n }\n var config = __assign$3(__assign$3({}, params), { sheetName: sheetName,\n columnModel: columnModel,\n valueService: valueService,\n gridOptionsWrapper: gridOptionsWrapper, headerRowHeight: params.headerRowHeight || params.rowHeight, baseExcelStyles: this.gridOptions.excelStyles || [], styleLinker: this.styleLinker.bind(this) });\n return new (isXlsx ? ExcelXlsxSerializingSession : ExcelXmlSerializingSession)(config);\n };\n ExcelCreator.prototype.styleLinker = function (rowType, rowIndex, value, column, node) {\n if (rowType === RowType.HEADER) {\n return [\"header\"];\n }\n if (rowType === RowType.HEADER_GROUPING) {\n return [\"header\", \"headerGroup\"];\n }\n var styles = this.gridOptions.excelStyles;\n var applicableStyles = [\"cell\"];\n if (!styles || !styles.length) {\n return applicableStyles;\n }\n var styleIds = styles.map(function (it) {\n return it.id;\n });\n this.stylingService.processAllCellClasses(column.getColDef(), {\n value: value,\n data: node.data,\n node: node,\n colDef: column.getColDef(),\n rowIndex: rowIndex,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n }, function (className) {\n if (styleIds.indexOf(className) > -1) {\n applicableStyles.push(className);\n }\n });\n return applicableStyles.sort(function (left, right) {\n return (styleIds.indexOf(left) < styleIds.indexOf(right)) ? -1 : 1;\n });\n };\n ExcelCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsWrapper.isSuppressExcelExport();\n };\n ExcelCreator.prototype.setExportMode = function (exportMode) {\n this.exportMode = exportMode;\n };\n ExcelCreator.prototype.getExportMode = function () {\n return this.exportMode;\n };\n ExcelCreator.prototype.packageFile = function (params) {\n if (this.getExportMode() === 'xml') {\n var mimeType = params.mimeType || 'application/vnd.ms-excel';\n return new Blob([\"\\ufeff\", params.data[0]], { type: mimeType });\n }\n return getMultipleSheetsAsExcel(params);\n };\n __decorate$x([\n agGridCommunity.Autowired('columnModel')\n ], ExcelCreator.prototype, \"columnModel\", void 0);\n __decorate$x([\n agGridCommunity.Autowired('valueService')\n ], ExcelCreator.prototype, \"valueService\", void 0);\n __decorate$x([\n agGridCommunity.Autowired('gridOptions')\n ], ExcelCreator.prototype, \"gridOptions\", void 0);\n __decorate$x([\n agGridCommunity.Autowired('stylingService')\n ], ExcelCreator.prototype, \"stylingService\", void 0);\n __decorate$x([\n agGridCommunity.Autowired('gridSerializer')\n ], ExcelCreator.prototype, \"gridSerializer\", void 0);\n __decorate$x([\n agGridCommunity.Autowired('gridOptionsWrapper')\n ], ExcelCreator.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$x([\n agGridCommunity.PostConstruct\n ], ExcelCreator.prototype, \"postConstruct\", null);\n ExcelCreator = __decorate$x([\n agGridCommunity.Bean('excelCreator')\n ], ExcelCreator);\n return ExcelCreator;\n}(BaseCreator));\n\nvar ExcelExportModule = {\n moduleName: agGridCommunity.ModuleNames.ExcelExportModule,\n beans: [\n // beans in this module\n ExcelCreator,\n // these beans are part of CSV Export module\n GridSerializer, CsvCreator\n ],\n dependantModules: [\n CsvExportModule,\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EXPAND_STATE;\n(function (EXPAND_STATE) {\n EXPAND_STATE[EXPAND_STATE[\"EXPANDED\"] = 0] = \"EXPANDED\";\n EXPAND_STATE[EXPAND_STATE[\"COLLAPSED\"] = 1] = \"COLLAPSED\";\n EXPAND_STATE[EXPAND_STATE[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(EXPAND_STATE || (EXPAND_STATE = {}));\nvar FiltersToolPanelHeaderPanel = /** @class */ (function (_super) {\n __extends$B(FiltersToolPanelHeaderPanel, _super);\n function FiltersToolPanelHeaderPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FiltersToolPanelHeaderPanel.prototype.preConstruct = function () {\n this.setTemplate(/* html */ \"
\\n
\\n \\n
\");\n };\n FiltersToolPanelHeaderPanel.prototype.postConstruct = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFilterTextField.onValueChange(this.onSearchTextChanged.bind(this));\n this.eFilterTextField.setInputAriaLabel(translate('ariaFilterColumnsInput', 'Filter Columns Input'));\n this.createExpandIcons();\n this.setExpandState(EXPAND_STATE.EXPANDED);\n this.addManagedListener(this.eExpand, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this));\n };\n FiltersToolPanelHeaderPanel.prototype.init = function (params) {\n this.params = params;\n if (this.columnModel.isReady()) {\n this.showOrHideOptions();\n }\n };\n FiltersToolPanelHeaderPanel.prototype.createExpandIcons = function () {\n this.eExpand.appendChild(this.eExpandChecked = agGridCommunity._.createIconNoSpan('columnSelectOpen', this.gridOptionsWrapper));\n this.eExpand.appendChild(this.eExpandUnchecked = agGridCommunity._.createIconNoSpan('columnSelectClosed', this.gridOptionsWrapper));\n this.eExpand.appendChild(this.eExpandIndeterminate = agGridCommunity._.createIconNoSpan('columnSelectIndeterminate', this.gridOptionsWrapper));\n };\n // we only show expand / collapse if we are showing filters\n FiltersToolPanelHeaderPanel.prototype.showOrHideOptions = function () {\n var showFilterSearch = !this.params.suppressFilterSearch;\n var showExpand = !this.params.suppressExpandAll;\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFilterTextField.setInputPlaceholder(translate('searchOoo', 'Search...'));\n var isFilterGroupPresent = function (col) { return col.getOriginalParent() && col.isFilterAllowed(); };\n var filterGroupsPresent = this.columnModel.getAllGridColumns().some(isFilterGroupPresent);\n agGridCommunity._.setDisplayed(this.eFilterTextField.getGui(), showFilterSearch);\n agGridCommunity._.setDisplayed(this.eExpand, showExpand && filterGroupsPresent);\n };\n FiltersToolPanelHeaderPanel.prototype.onSearchTextChanged = function () {\n var _this = this;\n if (!this.onSearchTextChangedDebounced) {\n this.onSearchTextChangedDebounced = agGridCommunity._.debounce(function () {\n _this.dispatchEvent({ type: 'searchChanged', searchText: _this.eFilterTextField.getValue() });\n }, 300);\n }\n this.onSearchTextChangedDebounced();\n };\n FiltersToolPanelHeaderPanel.prototype.onExpandClicked = function () {\n var event = this.currentExpandState === EXPAND_STATE.EXPANDED ? { type: 'collapseAll' } : { type: 'expandAll' };\n this.dispatchEvent(event);\n };\n FiltersToolPanelHeaderPanel.prototype.setExpandState = function (state) {\n this.currentExpandState = state;\n agGridCommunity._.setDisplayed(this.eExpandChecked, this.currentExpandState === EXPAND_STATE.EXPANDED);\n agGridCommunity._.setDisplayed(this.eExpandUnchecked, this.currentExpandState === EXPAND_STATE.COLLAPSED);\n agGridCommunity._.setDisplayed(this.eExpandIndeterminate, this.currentExpandState === EXPAND_STATE.INDETERMINATE);\n };\n __decorate$y([\n agGridCommunity.Autowired('columnModel')\n ], FiltersToolPanelHeaderPanel.prototype, \"columnModel\", void 0);\n __decorate$y([\n agGridCommunity.RefSelector('eExpand')\n ], FiltersToolPanelHeaderPanel.prototype, \"eExpand\", void 0);\n __decorate$y([\n agGridCommunity.RefSelector('eFilterTextField')\n ], FiltersToolPanelHeaderPanel.prototype, \"eFilterTextField\", void 0);\n __decorate$y([\n agGridCommunity.PreConstruct\n ], FiltersToolPanelHeaderPanel.prototype, \"preConstruct\", null);\n __decorate$y([\n agGridCommunity.PostConstruct\n ], FiltersToolPanelHeaderPanel.prototype, \"postConstruct\", null);\n return FiltersToolPanelHeaderPanel;\n}(agGridCommunity.Component));\n\nvar __extends$C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelFilterComp = /** @class */ (function (_super) {\n __extends$C(ToolPanelFilterComp, _super);\n function ToolPanelFilterComp(hideHeader) {\n if (hideHeader === void 0) { hideHeader = false; }\n var _this = _super.call(this, ToolPanelFilterComp.TEMPLATE) || this;\n _this.expanded = false;\n _this.hideHeader = hideHeader;\n return _this;\n }\n ToolPanelFilterComp.prototype.postConstruct = function () {\n this.eExpandChecked = agGridCommunity._.createIconNoSpan('columnSelectOpen', this.gridOptionsWrapper);\n this.eExpandUnchecked = agGridCommunity._.createIconNoSpan('columnSelectClosed', this.gridOptionsWrapper);\n this.eExpand.appendChild(this.eExpandChecked);\n this.eExpand.appendChild(this.eExpandUnchecked);\n };\n ToolPanelFilterComp.prototype.setColumn = function (column) {\n var _this = this;\n this.column = column;\n this.eFilterName.innerText = this.columnModel.getDisplayNameForColumn(this.column, 'filterToolPanel', false) || '';\n this.addManagedListener(this.eFilterToolPanelHeader, 'click', this.toggleExpanded.bind(this));\n this.addManagedListener(this.eFilterToolPanelHeader, 'keydown', function (e) {\n if (e.key === agGridCommunity.KeyCode.ENTER) {\n _this.toggleExpanded();\n }\n });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_FILTER_OPENED, this.onFilterOpened.bind(this));\n this.addInIcon('filter', this.eFilterIcon, this.column);\n this.eFilterIcon.classList.toggle('ag-hidden', !this.isFilterActive());\n this.eExpandChecked.classList.add('ag-hidden');\n if (this.hideHeader) {\n this.eFilterToolPanelHeader.classList.toggle('ag-hidden', true);\n this.eFilterToolPanelHeader.removeAttribute('tabindex');\n }\n else {\n this.eFilterToolPanelHeader.setAttribute('tabindex', '0');\n }\n this.addManagedListener(this.column, agGridCommunity.Column.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n };\n ToolPanelFilterComp.prototype.getColumn = function () {\n return this.column;\n };\n ToolPanelFilterComp.prototype.getColumnFilterName = function () {\n return this.columnModel.getDisplayNameForColumn(this.column, 'filterToolPanel', false);\n };\n ToolPanelFilterComp.prototype.addCssClassToTitleBar = function (cssClass) {\n this.eFilterToolPanelHeader.classList.add(cssClass);\n };\n ToolPanelFilterComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = agGridCommunity._.createIconNoSpan(iconName, this.gridOptionsWrapper, column);\n eParent.appendChild(eIcon);\n };\n ToolPanelFilterComp.prototype.isFilterActive = function () {\n return this.filterManager.isFilterActive(this.column);\n };\n ToolPanelFilterComp.prototype.onFilterChanged = function () {\n this.eFilterIcon.classList.toggle('ag-hidden', !this.isFilterActive());\n this.dispatchEvent({ type: agGridCommunity.Column.EVENT_FILTER_CHANGED });\n };\n ToolPanelFilterComp.prototype.toggleExpanded = function () {\n this.expanded ? this.collapse() : this.expand();\n };\n ToolPanelFilterComp.prototype.expand = function () {\n var _this = this;\n var _a;\n if (this.expanded) {\n return;\n }\n this.expanded = true;\n agGridCommunity._.setAriaExpanded(this.eFilterToolPanelHeader, true);\n var container = agGridCommunity._.loadTemplate(/* html */ \"
\");\n var filterPromise = (_a = this.filterManager.getOrCreateFilterWrapper(this.column, 'TOOLBAR')) === null || _a === void 0 ? void 0 : _a.filterPromise;\n if (filterPromise) {\n filterPromise.then(function (filter) {\n _this.underlyingFilter = filter;\n if (!filter) {\n return;\n }\n container.appendChild(filter.getGui());\n _this.agFilterToolPanelBody.appendChild(container);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: 'toolPanel' });\n }\n });\n }\n agGridCommunity._.setDisplayed(this.eExpandChecked, true);\n agGridCommunity._.setDisplayed(this.eExpandUnchecked, false);\n };\n ToolPanelFilterComp.prototype.collapse = function () {\n if (!this.expanded) {\n return;\n }\n this.expanded = false;\n agGridCommunity._.setAriaExpanded(this.eFilterToolPanelHeader, false);\n this.agFilterToolPanelBody.removeChild(this.agFilterToolPanelBody.children[0]);\n agGridCommunity._.setDisplayed(this.eExpandChecked, false);\n agGridCommunity._.setDisplayed(this.eExpandUnchecked, true);\n };\n ToolPanelFilterComp.prototype.refreshFilter = function () {\n if (!this.expanded) {\n return;\n }\n var filter = this.underlyingFilter;\n if (!filter) {\n return;\n }\n // set filters should be updated when the filter has been changed elsewhere, i.e. via api. Note that we can't\n // use 'afterGuiAttached' to refresh the virtual list as it also focuses on the mini filter which changes the\n // scroll position in the filter list panel\n if (typeof filter.refreshVirtualList === 'function') {\n filter.refreshVirtualList();\n }\n };\n ToolPanelFilterComp.prototype.onFilterOpened = function (event) {\n if (event.source !== 'COLUMN_MENU') {\n return;\n }\n if (event.column !== this.column) {\n return;\n }\n if (!this.expanded) {\n return;\n }\n this.collapse();\n };\n ToolPanelFilterComp.TEMPLATE = \"\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\";\n __decorate$z([\n agGridCommunity.RefSelector('eFilterToolPanelHeader')\n ], ToolPanelFilterComp.prototype, \"eFilterToolPanelHeader\", void 0);\n __decorate$z([\n agGridCommunity.RefSelector('eFilterName')\n ], ToolPanelFilterComp.prototype, \"eFilterName\", void 0);\n __decorate$z([\n agGridCommunity.RefSelector('agFilterToolPanelBody')\n ], ToolPanelFilterComp.prototype, \"agFilterToolPanelBody\", void 0);\n __decorate$z([\n agGridCommunity.RefSelector('eFilterIcon')\n ], ToolPanelFilterComp.prototype, \"eFilterIcon\", void 0);\n __decorate$z([\n agGridCommunity.RefSelector('eExpand')\n ], ToolPanelFilterComp.prototype, \"eExpand\", void 0);\n __decorate$z([\n agGridCommunity.Autowired('filterManager')\n ], ToolPanelFilterComp.prototype, \"filterManager\", void 0);\n __decorate$z([\n agGridCommunity.Autowired('columnModel')\n ], ToolPanelFilterComp.prototype, \"columnModel\", void 0);\n __decorate$z([\n agGridCommunity.PostConstruct\n ], ToolPanelFilterComp.prototype, \"postConstruct\", null);\n return ToolPanelFilterComp;\n}(agGridCommunity.Component));\n\nvar __extends$D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelFilterGroupComp = /** @class */ (function (_super) {\n __extends$D(ToolPanelFilterGroupComp, _super);\n function ToolPanelFilterGroupComp(columnGroup, childFilterComps, expandedCallback, depth, showingColumn) {\n var _this = _super.call(this) || this;\n _this.columnGroup = columnGroup;\n _this.childFilterComps = childFilterComps;\n _this.depth = depth;\n _this.expandedCallback = expandedCallback;\n _this.showingColumn = showingColumn;\n return _this;\n }\n ToolPanelFilterGroupComp.prototype.preConstruct = function () {\n var groupParams = {\n cssIdentifier: 'filter-toolpanel',\n direction: 'vertical'\n };\n this.setTemplate(ToolPanelFilterGroupComp.TEMPLATE, { filterGroupComp: groupParams });\n };\n ToolPanelFilterGroupComp.prototype.init = function () {\n var _this = this;\n this.setGroupTitle();\n this.filterGroupComp.setAlignItems('stretch');\n this.filterGroupComp.addCssClass(\"ag-filter-toolpanel-group-level-\" + this.depth);\n this.filterGroupComp.addCssClassToTitleBar(\"ag-filter-toolpanel-group-level-\" + this.depth + \"-header\");\n this.childFilterComps.forEach(function (filterComp) {\n _this.filterGroupComp.addItem(filterComp);\n filterComp.addCssClassToTitleBar(\"ag-filter-toolpanel-group-level-\" + (_this.depth + 1) + \"-header\");\n });\n this.refreshFilterClass();\n this.addExpandCollapseListeners();\n this.addFilterChangedListeners();\n this.setupTooltip();\n };\n ToolPanelFilterGroupComp.prototype.setupTooltip = function () {\n var _this = this;\n // we don't show tooltips for groups, as when the group expands, it's div contains the columns which also\n // have tooltips, so the tooltips would clash. Eg mouse over group, tooltip shows, mouse over column, another\n // tooltip shows but cos we didn't leave the group the group tooltip remains. this should be fixed in the future,\n // maybe the group shouldn't contain the children form a DOM perspective.\n if (!this.showingColumn) {\n return;\n }\n var refresh = function () {\n var newTooltipText = _this.columnGroup.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelFilterGroupComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'filterToolPanelColumnGroup';\n return res;\n };\n ToolPanelFilterGroupComp.prototype.addCssClassToTitleBar = function (cssClass) {\n this.filterGroupComp.addCssClassToTitleBar(cssClass);\n };\n ToolPanelFilterGroupComp.prototype.refreshFilters = function () {\n this.childFilterComps.forEach(function (filterComp) {\n if (filterComp instanceof ToolPanelFilterGroupComp) {\n filterComp.refreshFilters();\n }\n else {\n filterComp.refreshFilter();\n }\n });\n };\n ToolPanelFilterGroupComp.prototype.isColumnGroup = function () {\n return this.columnGroup instanceof agGridCommunity.ProvidedColumnGroup;\n };\n ToolPanelFilterGroupComp.prototype.isExpanded = function () {\n return this.filterGroupComp.isExpanded();\n };\n ToolPanelFilterGroupComp.prototype.getChildren = function () {\n return this.childFilterComps;\n };\n ToolPanelFilterGroupComp.prototype.getFilterGroupName = function () {\n return this.filterGroupName ? this.filterGroupName : '';\n };\n ToolPanelFilterGroupComp.prototype.getFilterGroupId = function () {\n return this.columnGroup.getId();\n };\n ToolPanelFilterGroupComp.prototype.hideGroupItem = function (hide, index) {\n this.filterGroupComp.hideItem(hide, index);\n };\n ToolPanelFilterGroupComp.prototype.hideGroup = function (hide) {\n this.addOrRemoveCssClass('ag-hidden', hide);\n };\n ToolPanelFilterGroupComp.prototype.forEachToolPanelFilterChild = function (action) {\n this.childFilterComps.forEach(function (filterComp) {\n if (filterComp instanceof ToolPanelFilterComp) {\n action(filterComp);\n }\n });\n };\n ToolPanelFilterGroupComp.prototype.addExpandCollapseListeners = function () {\n var _this = this;\n var expandListener = this.isColumnGroup() ?\n function () { return _this.expandedCallback(); } :\n function () { return _this.forEachToolPanelFilterChild(function (filterComp) { return filterComp.expand(); }); };\n var collapseListener = this.isColumnGroup() ?\n function () { return _this.expandedCallback(); } :\n function () { return _this.forEachToolPanelFilterChild(function (filterComp) { return filterComp.collapse(); }); };\n this.addManagedListener(this.filterGroupComp, agGridCommunity.AgGroupComponent.EVENT_EXPANDED, expandListener);\n this.addManagedListener(this.filterGroupComp, agGridCommunity.AgGroupComponent.EVENT_COLLAPSED, collapseListener);\n };\n ToolPanelFilterGroupComp.prototype.getColumns = function () {\n if (this.columnGroup instanceof agGridCommunity.ProvidedColumnGroup) {\n return this.columnGroup.getLeafColumns();\n }\n return [this.columnGroup];\n };\n ToolPanelFilterGroupComp.prototype.addFilterChangedListeners = function () {\n var _this = this;\n this.getColumns().forEach(function (column) {\n _this.addManagedListener(column, agGridCommunity.Column.EVENT_FILTER_CHANGED, function () { return _this.refreshFilterClass(); });\n });\n if (!(this.columnGroup instanceof agGridCommunity.ProvidedColumnGroup)) {\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_FILTER_OPENED, this.onFilterOpened.bind(this));\n }\n };\n ToolPanelFilterGroupComp.prototype.refreshFilterClass = function () {\n var columns = this.getColumns();\n var anyChildFiltersActive = function () { return columns.some(function (col) { return col.isFilterActive(); }); };\n this.filterGroupComp.addOrRemoveCssClass('ag-has-filter', anyChildFiltersActive());\n };\n ToolPanelFilterGroupComp.prototype.onFilterOpened = function (event) {\n // when a filter is opened elsewhere, i.e. column menu we close the filter comp so we also need to collapse\n // the column group. This approach means we don't need to try and sync filter models on the same column.\n if (event.source !== 'COLUMN_MENU') {\n return;\n }\n if (event.column !== this.columnGroup) {\n return;\n }\n if (!this.isExpanded()) {\n return;\n }\n this.collapse();\n };\n ToolPanelFilterGroupComp.prototype.expand = function () {\n this.filterGroupComp.toggleGroupExpand(true);\n };\n ToolPanelFilterGroupComp.prototype.collapse = function () {\n this.filterGroupComp.toggleGroupExpand(false);\n };\n ToolPanelFilterGroupComp.prototype.setGroupTitle = function () {\n this.filterGroupName = (this.columnGroup instanceof agGridCommunity.ProvidedColumnGroup) ?\n this.getColumnGroupName(this.columnGroup) : this.getColumnName(this.columnGroup);\n this.filterGroupComp.setTitle(this.filterGroupName || '');\n };\n ToolPanelFilterGroupComp.prototype.getColumnGroupName = function (columnGroup) {\n return this.columnModel.getDisplayNameForProvidedColumnGroup(null, columnGroup, 'filterToolPanel');\n };\n ToolPanelFilterGroupComp.prototype.getColumnName = function (column) {\n return this.columnModel.getDisplayNameForColumn(column, 'filterToolPanel', false);\n };\n ToolPanelFilterGroupComp.prototype.destroyFilters = function () {\n this.childFilterComps = this.destroyBeans(this.childFilterComps);\n agGridCommunity._.clearElement(this.getGui());\n };\n ToolPanelFilterGroupComp.prototype.destroy = function () {\n this.destroyFilters();\n _super.prototype.destroy.call(this);\n };\n ToolPanelFilterGroupComp.TEMPLATE = \"
\\n \\n
\";\n __decorate$A([\n agGridCommunity.RefSelector('filterGroupComp')\n ], ToolPanelFilterGroupComp.prototype, \"filterGroupComp\", void 0);\n __decorate$A([\n agGridCommunity.Autowired('columnModel')\n ], ToolPanelFilterGroupComp.prototype, \"columnModel\", void 0);\n __decorate$A([\n agGridCommunity.PreConstruct\n ], ToolPanelFilterGroupComp.prototype, \"preConstruct\", null);\n __decorate$A([\n agGridCommunity.PostConstruct\n ], ToolPanelFilterGroupComp.prototype, \"init\", null);\n return ToolPanelFilterGroupComp;\n}(agGridCommunity.Component));\n\nvar __extends$E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FiltersToolPanelListPanel = /** @class */ (function (_super) {\n __extends$E(FiltersToolPanelListPanel, _super);\n function FiltersToolPanelListPanel() {\n var _this = _super.call(this, FiltersToolPanelListPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.filterGroupComps = [];\n return _this;\n }\n FiltersToolPanelListPanel.prototype.init = function (params) {\n var _this = this;\n this.initialised = true;\n var defaultParams = {\n suppressExpandAll: false,\n suppressFilterSearch: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n agGridCommunity._.mergeDeep(defaultParams, params);\n this.params = defaultParams;\n if (!this.params.suppressSyncLayoutWithGrid) {\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_MOVED, function () { return _this.onColumnsChanged(); });\n }\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED, function (event) {\n // when re-entering the filters tool panel we need to refresh the virtual lists in the set filters in case\n // filters have been changed elsewhere, i.e. via an api call.\n if (event.source === 'filters') {\n _this.refreshFilters();\n }\n });\n if (this.columnModel.isReady()) {\n this.onColumnsChanged();\n }\n };\n FiltersToolPanelListPanel.prototype.onColumnsChanged = function () {\n var pivotModeActive = this.columnModel.isPivotMode();\n var shouldSyncColumnLayoutWithGrid = !this.params.suppressSyncLayoutWithGrid && !pivotModeActive;\n shouldSyncColumnLayoutWithGrid ? this.syncFilterLayout() : this.buildTreeFromProvidedColumnDefs();\n };\n FiltersToolPanelListPanel.prototype.syncFilterLayout = function () {\n this.toolPanelColDefService.syncLayoutWithGrid(this.setFiltersLayout.bind(this));\n };\n FiltersToolPanelListPanel.prototype.buildTreeFromProvidedColumnDefs = function () {\n var _this = this;\n this.destroyFilters();\n var columnTree = this.columnModel.getPrimaryColumnTree();\n this.filterGroupComps = this.recursivelyAddComps(columnTree, 0);\n var len = this.filterGroupComps.length;\n if (len) {\n this.filterGroupComps.forEach(function (comp) { return _this.appendChild(comp); });\n this.setFirstAndLastVisible(0, len - 1);\n }\n // perform search if searchFilterText exists\n if (agGridCommunity._.exists(this.searchFilterText)) {\n this.searchFilters(this.searchFilterText);\n }\n // notify header of expand\n this.fireExpandedEvent();\n };\n FiltersToolPanelListPanel.prototype.setFiltersLayout = function (colDefs) {\n var _this = this;\n this.destroyFilters();\n var columnTree = this.toolPanelColDefService.createColumnTree(colDefs);\n this.filterGroupComps = this.recursivelyAddComps(columnTree, 0);\n var len = this.filterGroupComps.length;\n if (len) {\n this.filterGroupComps.forEach(function (comp) { return _this.appendChild(comp); });\n this.setFirstAndLastVisible(0, len - 1);\n }\n // perform search if searchFilterText exists\n if (agGridCommunity._.exists(this.searchFilterText)) {\n this.searchFilters(this.searchFilterText);\n }\n // notify header of expand\n this.fireExpandedEvent();\n };\n FiltersToolPanelListPanel.prototype.recursivelyAddComps = function (tree, depth) {\n var _this = this;\n return agGridCommunity._.flatten(tree.map(function (child) {\n if (child instanceof agGridCommunity.ProvidedColumnGroup) {\n return agGridCommunity._.flatten(_this.recursivelyAddFilterGroupComps(child, depth));\n }\n var column = child;\n if (!_this.shouldDisplayFilter(column)) {\n return [];\n }\n var hideFilterCompHeader = depth === 0;\n var filterComp = new ToolPanelFilterComp(hideFilterCompHeader);\n _this.getContext().createBean(filterComp);\n filterComp.setColumn(column);\n if (depth > 0) {\n return filterComp;\n }\n var filterGroupComp = _this.createBean(new ToolPanelFilterGroupComp(column, [filterComp], _this.onGroupExpanded.bind(_this), depth, true));\n filterGroupComp.addCssClassToTitleBar('ag-filter-toolpanel-header');\n filterGroupComp.collapse();\n return filterGroupComp;\n }));\n };\n FiltersToolPanelListPanel.prototype.recursivelyAddFilterGroupComps = function (columnGroup, depth) {\n if (!this.filtersExistInChildren(columnGroup.getChildren())) {\n return;\n }\n var colGroupDef = columnGroup.getColGroupDef();\n if (colGroupDef && colGroupDef.suppressFiltersToolPanel) {\n return [];\n }\n var newDepth = columnGroup.isPadding() ? depth : depth + 1;\n var childFilterComps = agGridCommunity._.flatten(this.recursivelyAddComps(columnGroup.getChildren(), newDepth));\n if (columnGroup.isPadding()) {\n return childFilterComps;\n }\n var filterGroupComp = new ToolPanelFilterGroupComp(columnGroup, childFilterComps, this.onGroupExpanded.bind(this), depth, false);\n this.getContext().createBean(filterGroupComp);\n filterGroupComp.addCssClassToTitleBar('ag-filter-toolpanel-header');\n return [filterGroupComp];\n };\n FiltersToolPanelListPanel.prototype.filtersExistInChildren = function (tree) {\n var _this = this;\n return tree.some(function (child) {\n if (child instanceof agGridCommunity.ProvidedColumnGroup) {\n return _this.filtersExistInChildren(child.getChildren());\n }\n return _this.shouldDisplayFilter(child);\n });\n };\n FiltersToolPanelListPanel.prototype.shouldDisplayFilter = function (column) {\n var suppressFiltersToolPanel = column.getColDef() && column.getColDef().suppressFiltersToolPanel;\n return column.isFilterAllowed() && !suppressFiltersToolPanel;\n };\n // we don't support refreshing, but must implement because it's on the tool panel interface\n FiltersToolPanelListPanel.prototype.refresh = function () { };\n // lazy initialise the panel\n FiltersToolPanelListPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n FiltersToolPanelListPanel.prototype.expandFilterGroups = function (expand, groupIds) {\n var updatedGroupIds = [];\n var updateGroupExpandState = function (filterGroup) {\n var groupId = filterGroup.getFilterGroupId();\n var shouldExpandOrCollapse = !groupIds || agGridCommunity._.includes(groupIds, groupId);\n if (shouldExpandOrCollapse) {\n // don't expand 'column groups', i.e. top level columns wrapped in a group\n if (expand && filterGroup.isColumnGroup()) {\n filterGroup.expand();\n }\n else {\n filterGroup.collapse();\n }\n updatedGroupIds.push(groupId);\n }\n // recursively look for more groups to expand / collapse\n filterGroup.getChildren().forEach(function (child) {\n if (child instanceof ToolPanelFilterGroupComp) {\n updateGroupExpandState(child);\n }\n });\n };\n this.filterGroupComps.forEach(updateGroupExpandState);\n // update header expand / collapse icon\n this.onGroupExpanded();\n if (groupIds) {\n var unrecognisedGroupIds = groupIds.filter(function (groupId) { return updatedGroupIds.indexOf(groupId) < 0; });\n if (unrecognisedGroupIds.length > 0) {\n console.warn('AG Grid: unable to find groups for these supplied groupIds:', unrecognisedGroupIds);\n }\n }\n };\n FiltersToolPanelListPanel.prototype.expandFilters = function (expand, colIds) {\n var updatedColIds = [];\n var updateGroupExpandState = function (filterComp) {\n if (filterComp instanceof ToolPanelFilterGroupComp) {\n var anyChildrenChanged_1 = false;\n filterComp.getChildren().forEach(function (child) {\n var childUpdated = updateGroupExpandState(child);\n if (childUpdated) {\n if (expand) {\n filterComp.expand();\n anyChildrenChanged_1 = true;\n }\n else if (!filterComp.isColumnGroup()) {\n // we only collapse columns wrapped in groups\n filterComp.collapse();\n }\n }\n });\n return anyChildrenChanged_1;\n }\n var colId = filterComp.getColumn().getColId();\n var updateFilterExpandState = !colIds || agGridCommunity._.includes(colIds, colId);\n if (updateFilterExpandState) {\n expand ? filterComp.expand() : filterComp.collapse();\n updatedColIds.push(colId);\n }\n return updateFilterExpandState;\n };\n this.filterGroupComps.forEach(updateGroupExpandState);\n // update header expand / collapse icon\n this.onGroupExpanded();\n if (colIds) {\n var unrecognisedColIds = colIds.filter(function (colId) { return updatedColIds.indexOf(colId) < 0; });\n if (unrecognisedColIds.length > 0) {\n console.warn('AG Grid: unable to find columns for these supplied colIds:', unrecognisedColIds);\n }\n }\n };\n FiltersToolPanelListPanel.prototype.onGroupExpanded = function () {\n this.fireExpandedEvent();\n };\n FiltersToolPanelListPanel.prototype.fireExpandedEvent = function () {\n var expandedCount = 0;\n var notExpandedCount = 0;\n var updateExpandCounts = function (filterGroup) {\n if (!filterGroup.isColumnGroup()) {\n return;\n }\n filterGroup.isExpanded() ? expandedCount++ : notExpandedCount++;\n filterGroup.getChildren().forEach(function (child) {\n if (child instanceof ToolPanelFilterGroupComp) {\n updateExpandCounts(child);\n }\n });\n };\n this.filterGroupComps.forEach(updateExpandCounts);\n var state;\n if (expandedCount > 0 && notExpandedCount > 0) {\n state = EXPAND_STATE.INDETERMINATE;\n }\n else if (notExpandedCount > 0) {\n state = EXPAND_STATE.COLLAPSED;\n }\n else {\n state = EXPAND_STATE.EXPANDED;\n }\n this.dispatchEvent({ type: 'groupExpanded', state: state });\n };\n FiltersToolPanelListPanel.prototype.performFilterSearch = function (searchText) {\n this.searchFilterText = agGridCommunity._.exists(searchText) ? searchText.toLowerCase() : null;\n this.searchFilters(this.searchFilterText);\n };\n FiltersToolPanelListPanel.prototype.searchFilters = function (searchFilter) {\n var passesFilter = function (groupName) {\n return !agGridCommunity._.exists(searchFilter) || groupName.toLowerCase().indexOf(searchFilter) !== -1;\n };\n var recursivelySearch = function (filterItem, parentPasses) {\n if (!(filterItem instanceof ToolPanelFilterGroupComp)) {\n return passesFilter(filterItem.getColumnFilterName() || '');\n }\n var children = filterItem.getChildren();\n var groupNamePasses = passesFilter(filterItem.getFilterGroupName());\n // if group or parent already passed - ensure this group and all children are visible\n var alreadyPassed = parentPasses || groupNamePasses;\n if (alreadyPassed) {\n // ensure group visible\n filterItem.hideGroup(false);\n // ensure all children are visible\n for (var i = 0; i < children.length; i++) {\n recursivelySearch(children[i], alreadyPassed);\n filterItem.hideGroupItem(false, i);\n }\n return true;\n }\n // hide group item filters\n var anyChildPasses = false;\n children.forEach(function (child, index) {\n var childPasses = recursivelySearch(child, parentPasses);\n filterItem.hideGroupItem(!childPasses, index);\n if (childPasses) {\n anyChildPasses = true;\n }\n });\n // hide group if no children pass\n filterItem.hideGroup(!anyChildPasses);\n return anyChildPasses;\n };\n var firstVisible;\n var lastVisible;\n this.filterGroupComps.forEach(function (filterGroup, idx) {\n recursivelySearch(filterGroup, false);\n if (firstVisible === undefined) {\n if (!filterGroup.containsCssClass('ag-hidden')) {\n firstVisible = idx;\n lastVisible = idx;\n }\n }\n else if (!filterGroup.containsCssClass('ag-hidden') && lastVisible !== idx) {\n lastVisible = idx;\n }\n });\n this.setFirstAndLastVisible(firstVisible, lastVisible);\n };\n FiltersToolPanelListPanel.prototype.setFirstAndLastVisible = function (firstIdx, lastIdx) {\n this.filterGroupComps.forEach(function (filterGroup, idx) {\n filterGroup.removeCssClass('ag-first-group-visible');\n filterGroup.removeCssClass('ag-last-group-visible');\n if (idx === firstIdx) {\n filterGroup.addCssClass('ag-first-group-visible');\n }\n if (idx === lastIdx) {\n filterGroup.addCssClass('ag-last-group-visible');\n }\n });\n };\n FiltersToolPanelListPanel.prototype.refreshFilters = function () {\n this.filterGroupComps.forEach(function (filterGroupComp) { return filterGroupComp.refreshFilters(); });\n };\n FiltersToolPanelListPanel.prototype.destroyFilters = function () {\n this.filterGroupComps = this.destroyBeans(this.filterGroupComps);\n agGridCommunity._.clearElement(this.getGui());\n };\n FiltersToolPanelListPanel.prototype.destroy = function () {\n this.destroyFilters();\n _super.prototype.destroy.call(this);\n };\n FiltersToolPanelListPanel.TEMPLATE = \"
\";\n __decorate$B([\n agGridCommunity.Autowired(\"gridApi\")\n ], FiltersToolPanelListPanel.prototype, \"gridApi\", void 0);\n __decorate$B([\n agGridCommunity.Autowired(\"columnApi\")\n ], FiltersToolPanelListPanel.prototype, \"columnApi\", void 0);\n __decorate$B([\n agGridCommunity.Autowired('toolPanelColDefService')\n ], FiltersToolPanelListPanel.prototype, \"toolPanelColDefService\", void 0);\n __decorate$B([\n agGridCommunity.Autowired('columnModel')\n ], FiltersToolPanelListPanel.prototype, \"columnModel\", void 0);\n return FiltersToolPanelListPanel;\n}(agGridCommunity.Component));\n\nvar __extends$F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FiltersToolPanel = /** @class */ (function (_super) {\n __extends$F(FiltersToolPanel, _super);\n function FiltersToolPanel() {\n var _this = _super.call(this, FiltersToolPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.listenerDestroyFuncs = [];\n return _this;\n }\n FiltersToolPanel.prototype.init = function (params) {\n // if initialised is true, means this is a refresh\n if (this.initialised) {\n this.listenerDestroyFuncs.forEach(function (func) { return func(); });\n this.listenerDestroyFuncs = [];\n }\n this.initialised = true;\n var defaultParams = {\n suppressExpandAll: false,\n suppressFilterSearch: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n agGridCommunity._.mergeDeep(defaultParams, params);\n this.params = defaultParams;\n this.filtersToolPanelHeaderPanel.init(this.params);\n this.filtersToolPanelListPanel.init(this.params);\n var hideExpand = this.params.suppressExpandAll;\n var hideSearch = this.params.suppressFilterSearch;\n if (hideExpand && hideSearch) {\n this.filtersToolPanelHeaderPanel.setDisplayed(false);\n }\n // this is necessary to prevent a memory leak while refreshing the tool panel\n this.listenerDestroyFuncs.push(this.addManagedListener(this.filtersToolPanelHeaderPanel, 'expandAll', this.onExpandAll.bind(this)), this.addManagedListener(this.filtersToolPanelHeaderPanel, 'collapseAll', this.onCollapseAll.bind(this)), this.addManagedListener(this.filtersToolPanelHeaderPanel, 'searchChanged', this.onSearchChanged.bind(this)), this.addManagedListener(this.filtersToolPanelListPanel, 'groupExpanded', this.onGroupExpanded.bind(this)));\n };\n // lazy initialise the panel\n FiltersToolPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n FiltersToolPanel.prototype.onExpandAll = function () {\n this.filtersToolPanelListPanel.expandFilterGroups(true);\n };\n FiltersToolPanel.prototype.onCollapseAll = function () {\n this.filtersToolPanelListPanel.expandFilterGroups(false);\n };\n FiltersToolPanel.prototype.onSearchChanged = function (event) {\n this.filtersToolPanelListPanel.performFilterSearch(event.searchText);\n };\n FiltersToolPanel.prototype.setFilterLayout = function (colDefs) {\n this.filtersToolPanelListPanel.setFiltersLayout(colDefs);\n };\n FiltersToolPanel.prototype.onGroupExpanded = function (event) {\n this.filtersToolPanelHeaderPanel.setExpandState(event.state);\n };\n FiltersToolPanel.prototype.expandFilterGroups = function (groupIds) {\n this.filtersToolPanelListPanel.expandFilterGroups(true, groupIds);\n };\n FiltersToolPanel.prototype.collapseFilterGroups = function (groupIds) {\n this.filtersToolPanelListPanel.expandFilterGroups(false, groupIds);\n };\n FiltersToolPanel.prototype.expandFilters = function (colIds) {\n this.filtersToolPanelListPanel.expandFilters(true, colIds);\n };\n FiltersToolPanel.prototype.collapseFilters = function (colIds) {\n this.filtersToolPanelListPanel.expandFilters(false, colIds);\n };\n FiltersToolPanel.prototype.syncLayoutWithGrid = function () {\n this.filtersToolPanelListPanel.syncFilterLayout();\n };\n FiltersToolPanel.prototype.refresh = function () {\n this.init(this.params);\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n FiltersToolPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n FiltersToolPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$C([\n agGridCommunity.RefSelector('filtersToolPanelHeaderPanel')\n ], FiltersToolPanel.prototype, \"filtersToolPanelHeaderPanel\", void 0);\n __decorate$C([\n agGridCommunity.RefSelector('filtersToolPanelListPanel')\n ], FiltersToolPanel.prototype, \"filtersToolPanelListPanel\", void 0);\n __decorate$C([\n agGridCommunity.Autowired('gridApi')\n ], FiltersToolPanel.prototype, \"gridApi\", void 0);\n __decorate$C([\n agGridCommunity.Autowired('columnApi')\n ], FiltersToolPanel.prototype, \"columnApi\", void 0);\n return FiltersToolPanel;\n}(agGridCommunity.Component));\n\nvar FiltersToolPanelModule = {\n moduleName: agGridCommunity.ModuleNames.FiltersToolPanelModule,\n beans: [],\n agStackComponents: [\n { componentName: 'AgFiltersToolPanelHeader', componentClass: FiltersToolPanelHeaderPanel },\n { componentName: 'AgFiltersToolPanelList', componentClass: FiltersToolPanelListPanel }\n ],\n userComponents: [\n { componentName: 'agFiltersToolPanel', componentClass: FiltersToolPanel },\n ],\n dependantModules: [\n SideBarModule,\n EnterpriseCoreModule\n ]\n};\n\n// For small data structs like a bounding box, objects are superior to arrays\n// in terms of performance (by 3-4% in Chrome 71, Safari 12 and by 20% in Firefox 64).\n// They are also self descriptive and harder to abuse.\n// For example, one has to do:\n// `ctx.strokeRect(bbox.x, bbox.y, bbox.width, bbox.height);`\n// rather than become enticed by the much slower:\n// `ctx.strokeRect(...bbox);`\n// https://jsperf.com/array-vs-object-create-access\nvar BBox = /** @class */ (function () {\n function BBox(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BBox.prototype.isValid = function () {\n return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height);\n };\n BBox.prototype.dilate = function (value) {\n this.x -= value;\n this.y -= value;\n this.width += value * 2;\n this.height += value * 2;\n };\n BBox.prototype.containsPoint = function (x, y) {\n return x >= this.x && x <= (this.x + this.width)\n && y >= this.y && y <= (this.y + this.height);\n };\n BBox.prototype.render = function (ctx, params) {\n if (params === void 0) { params = BBox.noParams; }\n ctx.save();\n if (params.resetTransform) {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n ctx.strokeStyle = params.strokeStyle || 'cyan';\n ctx.lineWidth = params.lineWidth || 1;\n ctx.strokeRect(this.x, this.y, this.width, this.height);\n if (params.label) {\n ctx.fillStyle = params.fillStyle || 'black';\n ctx.textBaseline = 'bottom';\n ctx.fillText(params.label, this.x, this.y);\n }\n ctx.restore();\n };\n BBox.noParams = {};\n return BBox;\n}());\n\nvar __read$b = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * As of Jan 8, 2019, Firefox still doesn't implement\n * `getTransform(): DOMMatrix;`\n * `setTransform(transform?: DOMMatrix2DInit)`\n * in the `CanvasRenderingContext2D`.\n * Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=928150\n * IE11 and Edge 44 also don't have the support.\n * Thus this class, to keep track of the current transform and\n * combine transformations.\n * Standards:\n * https://html.spec.whatwg.org/dev/canvas.html\n * https://www.w3.org/TR/geometry-1/\n */\nvar Matrix = /** @class */ (function () {\n function Matrix(elements) {\n if (elements === void 0) { elements = [1, 0, 0, 1, 0, 0]; }\n this.elements = elements;\n }\n Matrix.prototype.setElements = function (elements) {\n var e = this.elements;\n // `this.elements = elements.slice()` is 4-5 times slower\n // (in Chrome 71 and FF 64) than manually copying elements,\n // since slicing allocates new memory.\n // The performance of passing parameters individually\n // vs as an array is about the same in both browsers, so we\n // go with a single (array of elements) parameter, because\n // `setElements(elements)` and `setElements([a, b, c, d, e, f])`\n // calls give us roughly the same performance, versus\n // `setElements(...elements)` and `setElements(a, b, c, d, e, f)`,\n // where the spread operator causes a 20-30x performance drop\n // (30x when compiled to ES5's `.apply(this, elements)`\n // 20x when used natively).\n e[0] = elements[0];\n e[1] = elements[1];\n e[2] = elements[2];\n e[3] = elements[3];\n e[4] = elements[4];\n e[5] = elements[5];\n return this;\n };\n Matrix.prototype.setIdentityElements = function () {\n var e = this.elements;\n e[0] = 1;\n e[1] = 0;\n e[2] = 0;\n e[3] = 1;\n e[4] = 0;\n e[5] = 0;\n return this;\n };\n Object.defineProperty(Matrix.prototype, \"identity\", {\n get: function () {\n var e = this.elements;\n return e[0] === 1 && e[1] === 0 && e[2] === 0 &&\n e[3] === 1 && e[4] === 0 && e[5] === 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"a\", {\n get: function () {\n return this.elements[0];\n },\n set: function (value) {\n this.elements[0] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"b\", {\n get: function () {\n return this.elements[1];\n },\n set: function (value) {\n this.elements[1] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"c\", {\n get: function () {\n return this.elements[2];\n },\n set: function (value) {\n this.elements[2] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"d\", {\n get: function () {\n return this.elements[3];\n },\n set: function (value) {\n this.elements[3] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"e\", {\n get: function () {\n return this.elements[4];\n },\n set: function (value) {\n this.elements[4] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"f\", {\n get: function () {\n return this.elements[5];\n },\n set: function (value) {\n this.elements[5] = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Performs the AxB matrix multiplication and saves the result\n * to `C`, if given, or to `A` otherwise.\n */\n Matrix.prototype.AxB = function (A, B, C) {\n var _a = __read$b(A, 6), m11 = _a[0], m12 = _a[1], m21 = _a[2], m22 = _a[3], m31 = _a[4], m32 = _a[5];\n var _b = __read$b(B, 6), o11 = _b[0], o12 = _b[1], o21 = _b[2], o22 = _b[3], o31 = _b[4], o32 = _b[5];\n C = C || A;\n C[0] = m11 * o11 + m21 * o12;\n C[1] = m12 * o11 + m22 * o12;\n C[2] = m11 * o21 + m21 * o22;\n C[3] = m12 * o21 + m22 * o22;\n C[4] = m11 * o31 + m21 * o32 + m31;\n C[5] = m12 * o31 + m22 * o32 + m32;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns the current matrix.\n * @param other\n */\n Matrix.prototype.multiplySelf = function (other) {\n this.AxB(this.elements, other.elements);\n return this;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns a new matrix.\n * @param other\n */\n Matrix.prototype.multiply = function (other) {\n var elements = new Array(6);\n this.AxB(this.elements, other.elements, elements);\n return new Matrix(elements);\n };\n Matrix.prototype.preMultiplySelf = function (other) {\n this.AxB(other.elements, this.elements, this.elements);\n return this;\n };\n /**\n * Returns the inverse of this matrix as a new matrix.\n */\n Matrix.prototype.inverse = function () {\n var _a = __read$b(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n return new Matrix([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n };\n /**\n * Save the inverse of this matrix to the given matrix.\n */\n Matrix.prototype.inverseTo = function (other) {\n var _a = __read$b(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n other.setElements([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n return this;\n };\n Matrix.prototype.invertSelf = function () {\n var elements = this.elements;\n var _a = __read$b(elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n elements[0] = d;\n elements[1] = -b;\n elements[2] = -c;\n elements[3] = a;\n elements[4] = c * f - d * e;\n elements[5] = b * e - a * f;\n return this;\n };\n Matrix.prototype.clone = function () {\n return new Matrix(this.elements.slice());\n };\n Matrix.prototype.transformPoint = function (x, y) {\n var e = this.elements;\n return {\n x: x * e[0] + y * e[2] + e[4],\n y: x * e[1] + y * e[3] + e[5]\n };\n };\n Matrix.prototype.transformBBox = function (bbox, radius, target) {\n if (radius === void 0) { radius = 0; }\n var elements = this.elements;\n var xx = elements[0];\n var xy = elements[1];\n var yx = elements[2];\n var yy = elements[3];\n var h_w = bbox.width * 0.5;\n var h_h = bbox.height * 0.5;\n var cx = bbox.x + h_w;\n var cy = bbox.y + h_h;\n var w, h;\n if (radius) {\n h_w -= radius;\n h_h -= radius;\n var sx = Math.sqrt(xx * xx + yx * yx);\n var sy = Math.sqrt(xy * xy + yy * yy);\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx) + Math.abs(sx * radius);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy) + Math.abs(sy * radius);\n }\n else {\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy);\n }\n if (!target) {\n target = new BBox(0, 0, 0, 0);\n }\n target.x = cx * xx + cy * yx + elements[4] - w;\n target.y = cx * xy + cy * yy + elements[5] - h;\n target.width = w + w;\n target.height = h + h;\n return target;\n };\n Matrix.prototype.toContext = function (ctx) {\n // It's fair to say that matrix multiplications are not cheap.\n // However, updating path definitions on every frame isn't either, so\n // it may be cheaper to just translate paths. It's also fair to\n // say, that most paths will have to be re-rendered anyway, say\n // rectangle paths in a bar chart, where an animation would happen when\n // the data set changes and existing bars are morphed into new ones.\n // Or a pie chart, where old sectors are also morphed into new ones.\n // Same for the line chart. The only plausible case where translating\n // existing paths would be enough, is the scatter chart, where marker\n // icons, typically circles, stay the same size. But if circle radii\n // are bound to some data points, even circle paths would have to be\n // updated. And thus it makes sense to optimize for fewer matrix\n // transforms, where transform matrices of paths are mostly identity\n // matrices and `x`/`y`, `centerX`/`centerY` and similar properties\n // are used to define a path at specific coordinates. And only groups\n // are used to collectively apply a transform to a set of nodes.\n // If the matrix is mostly identity (95% of the time),\n // the `if (this.isIdentity)` check can make this call 3-4 times\n // faster on average: https://jsperf.com/matrix-check-first-vs-always-set\n if (this.identity) {\n return;\n }\n var e = this.elements;\n ctx.transform(e[0], e[1], e[2], e[3], e[4], e[5]);\n };\n Matrix.flyweight = function (elements) {\n if (elements) {\n if (elements instanceof Matrix) {\n Matrix.matrix.setElements(elements.elements);\n }\n else {\n Matrix.matrix.setElements(elements);\n }\n }\n else {\n Matrix.matrix.setIdentityElements();\n }\n return Matrix.matrix;\n };\n Matrix.matrix = new Matrix();\n return Matrix;\n}());\n\nfunction createId(instance) {\n var constructor = instance.constructor;\n var className = constructor.className;\n if (!className) {\n throw new Error(\"The \" + constructor + \" is missing the 'className' property.\");\n }\n return className + '-' + (constructor.id = (constructor.id || 0) + 1);\n}\n\nvar __read$c = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar PointerEvents;\n(function (PointerEvents) {\n PointerEvents[PointerEvents[\"All\"] = 0] = \"All\";\n PointerEvents[PointerEvents[\"None\"] = 1] = \"None\";\n})(PointerEvents || (PointerEvents = {}));\n/**\n * Abstract scene graph node.\n * Each node can have zero or one parent and belong to zero or one scene.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /**\n * Unique node ID in the form `ClassName-NaturalNumber`.\n */\n this.id = createId(this);\n /**\n * Some number to identify this node, typically within a `Group` node.\n * Usually this will be some enum value used as a selector.\n */\n this.tag = NaN;\n /**\n * To simplify the type system (especially in Selections) we don't have the `Parent` node\n * (one that has children). Instead, we mimic HTML DOM, where any node can have children.\n * But we still need to distinguish regular leaf nodes from container leafs somehow.\n */\n this.isContainerNode = false;\n this._children = [];\n // Used to check for duplicate nodes.\n this.childSet = {}; // new Set()\n // These matrices may need to have package level visibility\n // for performance optimization purposes.\n this.matrix = new Matrix();\n this.inverseMatrix = new Matrix();\n this._dirtyTransform = false;\n this._scalingX = 1;\n this._scalingY = 1;\n /**\n * The center of scaling.\n * The default value of `null` means the scaling center will be\n * determined automatically, as the center of the bounding box\n * of a node.\n */\n this._scalingCenterX = null;\n this._scalingCenterY = null;\n this._rotationCenterX = null;\n this._rotationCenterY = null;\n /**\n * Rotation angle in radians.\n * The value is set as is. No normalization to the [-180, 180) or [0, 360)\n * interval is performed.\n */\n this._rotation = 0;\n this._translationX = 0;\n this._translationY = 0;\n /**\n * Each time a property of the node that effects how it renders changes\n * the `dirty` property of the node should be set to `true`. The change\n * to the `dirty` property of the node will propagate up to its parents\n * and eventually to the scene, at which point an animation frame callback\n * will be scheduled to rerender the scene and its nodes and reset the `dirty`\n * flags of all nodes and the {@link Scene._dirty | Scene} back to `false`.\n * Since changes to node properties are not rendered immediately, it's possible\n * to change as many properties on as many nodes as needed and the rendering\n * will still only happen once in the next animation frame callback.\n * The animation frame callback is only scheduled if it hasn't been already.\n */\n this._dirty = true;\n this._visible = true;\n this.pointerEvents = PointerEvents.All;\n }\n /**\n * This is meaningfully faster than `instanceof` and should be the preferred way\n * of checking inside loops.\n * @param node\n */\n Node.isNode = function (node) {\n return node ? node.matrix !== undefined : false;\n };\n Node.prototype._setScene = function (value) {\n this._scene = value;\n var children = this.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n children[i]._setScene(value);\n }\n };\n Object.defineProperty(Node.prototype, \"scene\", {\n get: function () {\n return this._scene;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype._setParent = function (value) {\n this._parent = value;\n };\n Object.defineProperty(Node.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"children\", {\n get: function () {\n return this._children;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.countChildren = function (depth) {\n if (depth === void 0) { depth = Node.MAX_SAFE_INTEGER; }\n if (depth <= 0) {\n return 0;\n }\n var children = this.children;\n var n = children.length;\n var size = n;\n for (var i = 0; i < n; i++) {\n size += children[i].countChildren(depth - 1);\n }\n return size;\n };\n /**\n * Appends one or more new node instances to this parent.\n * If one needs to:\n * - move a child to the end of the list of children\n * - move a child from one parent to another (including parents in other scenes)\n * one should use the {@link insertBefore} method instead.\n * @param nodes A node or nodes to append.\n */\n Node.prototype.append = function (nodes) {\n // Passing a single parameter to an open-ended version of `append`\n // would be 30-35% slower than this.\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n // The function takes an array rather than having open-ended\n // arguments like `...nodes: Node[]` because the latter is\n // transpiled to a function where the `arguments` object\n // is copied to a temporary array inside a loop.\n // So an array is created either way. And if we already have\n // an array of nodes we want to add, we have to use the prohibitively\n // expensive spread operator to pass it to the function,\n // and, on top of that, the copy of the `arguments` is still made.\n var n = nodes.length;\n for (var i = 0; i < n; i++) {\n var node = nodes[i];\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.scene) {\n throw new Error(node + \" already belongs a scene: \" + node.scene + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n this._children.push(node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n }\n this.dirty = true;\n };\n Node.prototype.appendChild = function (node) {\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.scene) {\n throw new Error(node + \" already belongs to a scene: \" + node.scene + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n this._children.push(node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n this.dirty = true;\n return node;\n };\n Node.prototype.removeChild = function (node) {\n if (node.parent === this) {\n var i = this.children.indexOf(node);\n if (i >= 0) {\n this._children.splice(i, 1);\n delete this.childSet[node.id];\n node._setParent();\n node._setScene();\n this.dirty = true;\n return node;\n }\n }\n throw new Error(\"The node to be removed is not a child of this node.\");\n };\n /**\n * Inserts the node `node` before the existing child node `nextNode`.\n * If `nextNode` is null, insert `node` at the end of the list of children.\n * If the `node` belongs to another parent, it is first removed.\n * Returns the `node`.\n * @param node\n * @param nextNode\n */\n Node.prototype.insertBefore = function (node, nextNode) {\n var parent = node.parent;\n if (node.parent) {\n node.parent.removeChild(node);\n }\n if (nextNode && nextNode.parent === this) {\n var i = this.children.indexOf(nextNode);\n if (i >= 0) {\n this._children.splice(i, 0, node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n }\n else {\n throw new Error(nextNode + \" has \" + parent + \" as the parent, \"\n + \"but is not in its list of children.\");\n }\n this.dirty = true;\n }\n else {\n this.append(node);\n }\n return node;\n };\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n get: function () {\n var parent = this.parent;\n if (parent) {\n var children = parent.children;\n var index = children.indexOf(this);\n if (index >= 0 && index <= children.length - 1) {\n return children[index + 1];\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.transformPoint = function (x, y) {\n var matrix = Matrix.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.invertSelf().transformPoint(x, y);\n };\n Node.prototype.inverseTransformPoint = function (x, y) {\n var matrix = Matrix.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.transformPoint(x, y);\n };\n Object.defineProperty(Node.prototype, \"dirtyTransform\", {\n get: function () {\n return this._dirtyTransform;\n },\n set: function (value) {\n this._dirtyTransform = value;\n if (value) {\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingX\", {\n get: function () {\n return this._scalingX;\n },\n set: function (value) {\n if (this._scalingX !== value) {\n this._scalingX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingY\", {\n get: function () {\n return this._scalingY;\n },\n set: function (value) {\n if (this._scalingY !== value) {\n this._scalingY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingCenterX\", {\n get: function () {\n return this._scalingCenterX;\n },\n set: function (value) {\n if (this._scalingCenterX !== value) {\n this._scalingCenterX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingCenterY\", {\n get: function () {\n return this._scalingCenterY;\n },\n set: function (value) {\n if (this._scalingCenterY !== value) {\n this._scalingCenterY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationCenterX\", {\n get: function () {\n return this._rotationCenterX;\n },\n set: function (value) {\n if (this._rotationCenterX !== value) {\n this._rotationCenterX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationCenterY\", {\n get: function () {\n return this._rotationCenterY;\n },\n set: function (value) {\n if (this._rotationCenterY !== value) {\n this._rotationCenterY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotation\", {\n get: function () {\n return this._rotation;\n },\n set: function (value) {\n if (this._rotation !== value) {\n this._rotation = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationDeg\", {\n get: function () {\n return this.rotation / Math.PI * 180;\n },\n /**\n * For performance reasons the rotation angle's internal representation\n * is in radians. Therefore, don't expect to get the same number you set.\n * Even with integer angles about a quarter of them from 0 to 359 cannot\n * be converted to radians and back without precision loss.\n * For example:\n *\n * node.rotationDeg = 11;\n * console.log(node.rotationDeg); // 10.999999999999998\n *\n * @param value Rotation angle in degrees.\n */\n set: function (value) {\n this.rotation = value / 180 * Math.PI;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"translationX\", {\n get: function () {\n return this._translationX;\n },\n set: function (value) {\n if (this._translationX !== value) {\n this._translationX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"translationY\", {\n get: function () {\n return this._translationY;\n },\n set: function (value) {\n if (this._translationY !== value) {\n this._translationY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.containsPoint = function (x, y) {\n return false;\n };\n /**\n * Hit testing method.\n * Recursively checks if the given point is inside this node or any of its children.\n * Returns the first matching node or `undefined`.\n * Nodes that render later (show on top) are hit tested first.\n * @param x\n * @param y\n */\n Node.prototype.pickNode = function (x, y) {\n if (!this.visible || this.pointerEvents === PointerEvents.None || !this.containsPoint(x, y)) {\n return;\n }\n var children = this.children;\n if (children.length) {\n // Nodes added later should be hit-tested first,\n // as they are rendered on top of the previously added nodes.\n for (var i = children.length - 1; i >= 0; i--) {\n var hit = children[i].pickNode(x, y);\n if (hit) {\n return hit;\n }\n }\n }\n else if (!this.isContainerNode) { // a leaf node, but not a container leaf\n return this;\n }\n };\n Node.prototype.computeBBox = function () { return; };\n Node.prototype.computeBBoxCenter = function () {\n var bbox = this.computeBBox && this.computeBBox();\n if (bbox) {\n return [\n bbox.x + bbox.width * 0.5,\n bbox.y + bbox.height * 0.5\n ];\n }\n return [0, 0];\n };\n Node.prototype.computeTransformMatrix = function () {\n // TODO: transforms without center of scaling and rotation correspond directly\n // to `setAttribute('transform', 'translate(tx, ty) rotate(rDeg) scale(sx, sy)')`\n // in SVG. Our use cases will mostly require positioning elements (rects, circles)\n // within a group, rotating groups at right angles (e.g. for axis) and translating\n // groups. We shouldn't even need `scale(1, -1)` (invert vertically), since this\n // can be done using D3-like scales already by inverting the output range.\n // So for now, just assume that centers of scaling and rotation are at the origin.\n // const [bbcx, bbcy] = this.computeBBoxCenter();\n var _a = __read$c([0, 0], 2), bbcx = _a[0], bbcy = _a[1];\n var sx = this.scalingX;\n var sy = this.scalingY;\n var scx;\n var scy;\n if (sx === 1 && sy === 1) {\n scx = 0;\n scy = 0;\n }\n else {\n scx = this.scalingCenterX === null ? bbcx : this.scalingCenterX;\n scy = this.scalingCenterY === null ? bbcy : this.scalingCenterY;\n }\n var r = this.rotation;\n var cos = Math.cos(r);\n var sin = Math.sin(r);\n var rcx;\n var rcy;\n if (r === 0) {\n rcx = 0;\n rcy = 0;\n }\n else {\n rcx = this.rotationCenterX === null ? bbcx : this.rotationCenterX;\n rcy = this.rotationCenterY === null ? bbcy : this.rotationCenterY;\n }\n var tx = this.translationX;\n var ty = this.translationY;\n // The transform matrix `M` is a result of the following transformations:\n // 1) translate the center of scaling to the origin\n // 2) scale\n // 3) translate back\n // 4) translate the center of rotation to the origin\n // 5) rotate\n // 6) translate back\n // 7) translate\n // (7) (6) (5) (4) (3) (2) (1)\n // | 1 0 tx | | 1 0 rcx | | cos -sin 0 | | 1 0 -rcx | | 1 0 scx | | sx 0 0 | | 1 0 -scx |\n // M = | 0 1 ty | * | 0 1 rcy | * | sin cos 0 | * | 0 1 -rcy | * | 0 1 scy | * | 0 sy 0 | * | 0 1 -scy |\n // | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 0 | | 0 0 1 |\n // Translation after steps 1-4 above:\n var tx4 = scx * (1 - sx) - rcx;\n var ty4 = scy * (1 - sy) - rcy;\n this.dirtyTransform = false;\n this.matrix.setElements([\n cos * sx, sin * sx,\n -sin * sy, cos * sy,\n cos * tx4 - sin * ty4 + rcx + tx,\n sin * tx4 + cos * ty4 + rcy + ty\n ]).inverseTo(this.inverseMatrix);\n };\n Object.defineProperty(Node.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n set: function (value) {\n // TODO: check if we are already dirty (e.g. if (this._dirty !== value))\n // if we are, then all parents and the scene have been\n // notified already, and we are doing redundant work\n // (but test if this is indeed the case)\n this._dirty = value;\n if (value) {\n if (this.parent) {\n this.parent.dirty = true;\n }\n else if (this.scene) {\n this.scene.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n if (this._visible !== value) {\n this._visible = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; // Number.MAX_SAFE_INTEGER\n return Node;\n}());\n\nvar __extends$G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Group = /** @class */ (function (_super) {\n __extends$G(Group, _super);\n function Group() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isContainerNode = true;\n _this._opacity = 1;\n return _this;\n }\n Object.defineProperty(Group.prototype, \"opacity\", {\n get: function () {\n return this._opacity;\n },\n set: function (value) {\n value = Math.min(1, Math.max(0, value));\n if (this._opacity !== value) {\n this._opacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n // We consider a group to be boundless, thus any point belongs to it.\n Group.prototype.containsPoint = function (x, y) {\n return true;\n };\n Group.prototype.computeBBox = function () {\n var left = Infinity;\n var right = -Infinity;\n var top = Infinity;\n var bottom = -Infinity;\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.children.forEach(function (child) {\n if (!child.visible) {\n return;\n }\n var bbox = child.computeBBox();\n if (!bbox) {\n return;\n }\n if (!(child instanceof Group)) {\n if (child.dirtyTransform) {\n child.computeTransformMatrix();\n }\n var matrix = Matrix.flyweight(child.matrix);\n var parent_1 = child.parent;\n while (parent_1) {\n matrix.preMultiplySelf(parent_1.matrix);\n parent_1 = parent_1.parent;\n }\n matrix.transformBBox(bbox, 0, bbox);\n }\n var x = bbox.x;\n var y = bbox.y;\n if (x < left) {\n left = x;\n }\n if (y < top) {\n top = y;\n }\n if (x + bbox.width > right) {\n right = x + bbox.width;\n }\n if (y + bbox.height > bottom) {\n bottom = y + bbox.height;\n }\n });\n return new BBox(left, top, right - left, bottom - top);\n };\n Group.prototype.render = function (ctx) {\n // A group can have `scaling`, `rotation`, `translation` properties\n // that are applied to the canvas context before children are rendered,\n // so all children can be transformed at once.\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var children = this.children;\n var n = children.length;\n ctx.globalAlpha *= this.opacity;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.visible) {\n ctx.save();\n child.render(ctx);\n ctx.restore();\n }\n }\n // debug\n // this.computeBBox().render(ctx, {\n // label: this.id,\n // resetTransform: true,\n // fillStyle: 'rgba(0, 0, 0, 0.5)'\n // });\n };\n Group.className = 'Group';\n return Group;\n}(Node));\n\n/**\n * Creates a new object with a `parent` as its prototype\n * and copies properties from the `child` into it.\n * @param parent\n * @param child\n */\nfunction chainObjects(parent, child) {\n var obj = Object.create(parent);\n for (var prop in child) {\n if (child.hasOwnProperty(prop)) {\n obj[prop] = child[prop];\n }\n }\n return obj;\n}\n\nvar __extends$H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Shape = /** @class */ (function (_super) {\n __extends$H(Shape, _super);\n function Shape() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastInstanceId = 0;\n _this._fillOpacity = 1;\n _this._strokeOpacity = 1;\n _this._fill = Shape.defaultStyles.fill;\n /**\n * Note that `strokeStyle = null` means invisible stroke,\n * while `lineWidth = 0` means no stroke, and sometimes this can mean different things.\n * For example, a rect shape with an invisible stroke may not align to the pixel grid\n * properly because the stroke affects the rules of alignment, and arc shapes forming\n * a pie chart will have a gap between them if they have an invisible stroke, whereas\n * there would be not gap if there was no stroke at all.\n * The preferred way of making the stroke invisible is setting the `lineWidth` to zero,\n * unless specific looks that is achieved by having an invisible stroke is desired.\n */\n _this._stroke = Shape.defaultStyles.stroke;\n _this._strokeWidth = Shape.defaultStyles.strokeWidth;\n _this._lineDash = Shape.defaultStyles.lineDash;\n _this._lineDashOffset = Shape.defaultStyles.lineDashOffset;\n _this._lineCap = Shape.defaultStyles.lineCap;\n _this._lineJoin = Shape.defaultStyles.lineJoin;\n _this._opacity = Shape.defaultStyles.opacity;\n _this.onShadowChange = function () {\n _this.dirty = true;\n };\n _this._fillShadow = Shape.defaultStyles.fillShadow;\n _this._strokeShadow = Shape.defaultStyles.strokeShadow;\n return _this;\n }\n /**\n * Creates a light-weight instance of the given shape (that serves as a template).\n * The created instance only stores the properites set on the instance itself\n * and the rest of the properties come via the prototype chain from the template.\n * This can greatly reduce memory usage in cases where one has many simular shapes,\n * for example, circles of different size, position and color. The exact memory usage\n * reduction will depend on the size of the template and the number of own properties\n * set on its lightweight instances, but will typically be around an order of magnitude\n * or more.\n *\n * Note: template shapes are not supposed to be part of the scene graph (they should not\n * have a parent).\n *\n * @param template\n */\n Shape.createInstance = function (template) {\n var shape = Object.create(template);\n shape._setParent(undefined);\n shape.id = template.id + '-Instance-' + String(++template.lastInstanceId);\n return shape;\n };\n /**\n * Restores the default styles introduced by this subclass.\n */\n Shape.prototype.restoreOwnStyles = function () {\n var styles = this.constructor.defaultStyles;\n var keys = Object.getOwnPropertyNames(styles);\n // getOwnPropertyNames is about 2.5 times faster than\n // for..in with the hasOwnProperty check and in this\n // case, where most properties are inherited, can be\n // more then an order of magnitude faster.\n for (var i = 0, n = keys.length; i < n; i++) {\n var key = keys[i];\n this[key] = styles[key];\n }\n };\n Shape.prototype.restoreAllStyles = function () {\n var styles = this.constructor.defaultStyles;\n for (var property in styles) {\n this[property] = styles[property];\n }\n };\n /**\n * Restores the base class default styles that have been overridden by this subclass.\n */\n Shape.prototype.restoreOverriddenStyles = function () {\n var styles = this.constructor.defaultStyles;\n var protoStyles = Object.getPrototypeOf(styles);\n for (var property in styles) {\n if (styles.hasOwnProperty(property) && protoStyles.hasOwnProperty(property)) {\n this[property] = styles[property];\n }\n }\n };\n Object.defineProperty(Shape.prototype, \"fillOpacity\", {\n get: function () {\n return this._fillOpacity;\n },\n set: function (value) {\n if (this._fillOpacity !== value) {\n this._fillOpacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeOpacity\", {\n get: function () {\n return this._strokeOpacity;\n },\n set: function (value) {\n if (this._strokeOpacity !== value) {\n this._strokeOpacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"fill\", {\n get: function () {\n return this._fill;\n },\n set: function (value) {\n if (this._fill !== value) {\n this._fill = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"stroke\", {\n get: function () {\n return this._stroke;\n },\n set: function (value) {\n if (this._stroke !== value) {\n this._stroke = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeWidth\", {\n get: function () {\n return this._strokeWidth;\n },\n set: function (value) {\n if (this._strokeWidth !== value) {\n this._strokeWidth = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"alignment\", {\n // An offset value to align to the pixel grid.\n get: function () {\n return Math.floor(this.strokeWidth) % 2 / 2;\n },\n enumerable: true,\n configurable: true\n });\n // Returns the aligned `start` or `length` value.\n // For example: `start` could be `y` and `length` could be `height` of a rectangle.\n Shape.prototype.align = function (alignment, start, length) {\n if (length != undefined) {\n return Math.floor(length) + Math.floor(start % 1 + length % 1);\n }\n return Math.floor(start) + alignment;\n };\n Object.defineProperty(Shape.prototype, \"lineDash\", {\n get: function () {\n return this._lineDash;\n },\n set: function (value) {\n var oldValue = this._lineDash;\n if (oldValue !== value) {\n if (oldValue && value && oldValue.length === value.length) {\n var identical = true;\n var n = value.length;\n for (var i = 0; i < n; i++) {\n if (oldValue[i] !== value[i]) {\n identical = false;\n break;\n }\n }\n if (identical) {\n return;\n }\n }\n this._lineDash = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineDashOffset\", {\n get: function () {\n return this._lineDashOffset;\n },\n set: function (value) {\n if (this._lineDashOffset !== value) {\n this._lineDashOffset = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineCap\", {\n get: function () {\n return this._lineCap;\n },\n set: function (value) {\n if (this._lineCap !== value) {\n this._lineCap = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineJoin\", {\n get: function () {\n return this._lineJoin;\n },\n set: function (value) {\n if (this._lineJoin !== value) {\n this._lineJoin = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"opacity\", {\n get: function () {\n return this._opacity;\n },\n set: function (value) {\n value = Math.min(1, Math.max(0, value));\n if (this._opacity !== value) {\n this._opacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"fillShadow\", {\n get: function () {\n return this._fillShadow;\n },\n set: function (value) {\n var oldValue = this._fillShadow;\n if (oldValue !== value) {\n if (oldValue) {\n oldValue.removeEventListener('change', this.onShadowChange);\n }\n if (value) {\n value.addEventListener('change', this.onShadowChange);\n }\n this._fillShadow = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeShadow\", {\n get: function () {\n return this._strokeShadow;\n },\n set: function (value) {\n var oldValue = this._strokeShadow;\n if (oldValue !== value) {\n if (oldValue) {\n oldValue.removeEventListener('change', this.onShadowChange);\n }\n if (value) {\n value.addEventListener('change', this.onShadowChange);\n }\n this._strokeShadow = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Shape.prototype.fillStroke = function (ctx) {\n if (!this.scene) {\n return;\n }\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (this.fill) {\n ctx.fillStyle = this.fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n // The canvas context scaling (depends on the device's pixel ratio)\n // has no effect on shadows, so we have to account for the pixel ratio\n // manually here.\n var fillShadow = this.fillShadow;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fill();\n }\n ctx.shadowColor = 'rgba(0, 0, 0, 0)';\n if (this.stroke && this.strokeWidth) {\n ctx.strokeStyle = this.stroke;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n ctx.lineWidth = this.strokeWidth;\n if (this.lineDash) {\n ctx.setLineDash(this.lineDash);\n }\n if (this.lineDashOffset) {\n ctx.lineDashOffset = this.lineDashOffset;\n }\n if (this.lineCap) {\n ctx.lineCap = this.lineCap;\n }\n if (this.lineJoin) {\n ctx.lineJoin = this.lineJoin;\n }\n var strokeShadow = this.strokeShadow;\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.stroke();\n }\n };\n Shape.prototype.containsPoint = function (x, y) {\n return this.isPointInPath(x, y);\n };\n /**\n * Defaults for style properties. Note that properties that affect the position\n * and shape of the node are not considered style properties, for example:\n * `x`, `y`, `width`, `height`, `radius`, `rotation`, etc.\n * Can be used to reset to the original styling after some custom styling\n * has been applied (using the `restoreOwnStyles` and `restoreAllStyles` methods).\n * These static defaults are meant to be inherited by subclasses.\n */\n Shape.defaultStyles = chainObjects({}, {\n fill: 'black',\n stroke: undefined,\n strokeWidth: 0,\n lineDash: undefined,\n lineDashOffset: 0,\n lineCap: undefined,\n lineJoin: undefined,\n opacity: 1,\n fillShadow: undefined,\n strokeShadow: undefined\n });\n return Shape;\n}(Node));\n\n// @ts-ignore Suppress tsc error: Property 'sign' does not exist on type 'Math'\nvar sign = Math.sign ? Math.sign : function (x) {\n x = +x;\n if (x === 0 || isNaN(x)) {\n return x;\n }\n return x > 0 ? 1 : -1;\n};\n/**\n * Finds the roots of a parametric linear equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction linearRoot(a, b) {\n var t = -b / a;\n return (a !== 0 && t >= 0 && t <= 1) ? [t] : [];\n}\n/**\n * Finds the roots of a parametric quadratic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction quadraticRoots(a, b, c) {\n if (a === 0) {\n return linearRoot(b, c);\n }\n var D = b * b - 4 * a * c; // The polynomial's discriminant.\n var roots = [];\n if (D === 0) { // A single real root.\n var t = -b / (2 * a);\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n }\n else if (D > 0) { // A pair of distinct real roots.\n var rD = Math.sqrt(D);\n var t1 = (-b - rD) / (2 * a);\n var t2 = (-b + rD) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n }\n // else -> Complex roots.\n return roots;\n}\n/**\n * Finds the roots of a parametric cubic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n * Returns an array of parametric intersection locations along the cubic,\n * excluding out-of-bounds intersections (before or after the end point\n * or in the imaginary plane).\n * An adaptation of http://www.particleincell.com/blog/2013/cubic-line-intersection/\n */\nfunction cubicRoots(a, b, c, d) {\n if (a === 0) {\n return quadraticRoots(b, c, d);\n }\n var A = b / a;\n var B = c / a;\n var C = d / a;\n var Q = (3 * B - A * A) / 9;\n var R = (9 * A * B - 27 * C - 2 * A * A * A) / 54;\n var D = Q * Q * Q + R * R; // The polynomial's discriminant.\n var third = 1 / 3;\n var roots = [];\n if (D >= 0) { // Complex or duplicate roots.\n var rD = Math.sqrt(D);\n var S = sign(R + rD) * Math.pow(Math.abs(R + rD), third);\n var T = sign(R - rD) * Math.pow(Math.abs(R - rD), third);\n var Im = Math.abs(Math.sqrt(3) * (S - T) / 2); // Complex part of the root pair.\n var t = -third * A + (S + T); // A real root.\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n if (Im === 0) {\n var t_1 = -third * A - (S + T) / 2; // The real part of a complex root.\n if (t_1 >= 0 && t_1 <= 1) {\n roots.push(t_1);\n }\n }\n }\n else { // Distinct real roots.\n var theta = Math.acos(R / Math.sqrt(-Q * Q * Q));\n var thirdA = third * A;\n var twoSqrtQ = 2 * Math.sqrt(-Q);\n var t1 = twoSqrtQ * Math.cos(third * theta) - thirdA;\n var t2 = twoSqrtQ * Math.cos(third * (theta + 2 * Math.PI)) - thirdA;\n var t3 = twoSqrtQ * Math.cos(third * (theta + 4 * Math.PI)) - thirdA;\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n if (t3 >= 0 && t3 <= 1) {\n roots.push(t3);\n }\n }\n return roots;\n}\n\n/**\n * Returns the intersection point for the given pair of line segments, or null,\n * if the segments are parallel or don't intersect.\n * Based on http://paulbourke.net/geometry/pointlineplane/\n */\nfunction segmentIntersection(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2) {\n var d = (ax2 - ax1) * (by2 - by1) - (ay2 - ay1) * (bx2 - bx1);\n if (d === 0) { // The lines are parallel.\n return null;\n }\n var ua = ((bx2 - bx1) * (ay1 - by1) - (ax1 - bx1) * (by2 - by1)) / d;\n var ub = ((ax2 - ax1) * (ay1 - by1) - (ay2 - ay1) * (ax1 - bx1)) / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n return {\n x: ax1 + ua * (ax2 - ax1),\n y: ay1 + ua * (ay2 - ay1)\n };\n }\n return null; // The intersection point is outside either or both segments.\n}\n/**\n * Returns intersection points of the given cubic curve and the line segment.\n * Takes in x/y components of cubic control points and line segment start/end points\n * as parameters.\n */\nfunction cubicSegmentIntersections(px1, py1, px2, py2, px3, py3, px4, py4, x1, y1, x2, y2) {\n var intersections = [];\n // Find line equation coefficients.\n var A = y1 - y2;\n var B = x2 - x1;\n var C = x1 * (y2 - y1) - y1 * (x2 - x1);\n // Find cubic Bezier curve equation coefficients from control points.\n var bx = bezierCoefficients(px1, px2, px3, px4);\n var by = bezierCoefficients(py1, py2, py3, py4);\n var a = A * bx[0] + B * by[0]; // t^3\n var b = A * bx[1] + B * by[1]; // t^2\n var c = A * bx[2] + B * by[2]; // t\n var d = A * bx[3] + B * by[3] + C; // 1\n var roots = cubicRoots(a, b, c, d);\n // Verify that the roots are within bounds of the linear segment.\n for (var i = 0; i < roots.length; i++) {\n var t = roots[i];\n var tt = t * t;\n var ttt = t * tt;\n // Find the cartesian plane coordinates for the parametric root `t`.\n var x = bx[0] * ttt + bx[1] * tt + bx[2] * t + bx[3];\n var y = by[0] * ttt + by[1] * tt + by[2] * t + by[3];\n // The parametric cubic roots we found are intersection points\n // with an infinite line, and so the x/y coordinates above are as well.\n // Make sure the x/y is also within the bounds of the given segment.\n var s = void 0;\n if (x1 !== x2) {\n s = (x - x1) / (x2 - x1);\n }\n else { // the line is vertical\n s = (y - y1) / (y2 - y1);\n }\n if (s >= 0 && s <= 1) {\n intersections.push({ x: x, y: y });\n }\n }\n return intersections;\n}\n/**\n * Returns the given coordinates vector multiplied by the coefficient matrix\n * of the parametric cubic Bézier equation.\n */\nfunction bezierCoefficients(P1, P2, P3, P4) {\n return [\n -P1 + 3 * P2 - 3 * P3 + P4,\n 3 * P1 - 6 * P2 + 3 * P3,\n -3 * P1 + 3 * P2,\n P1 // | 1 0 0 0| |P4|\n ];\n}\n\nvar Path2D = /** @class */ (function () {\n function Path2D() {\n // The methods of this class will likely be called many times per animation frame,\n // and any allocation can trigger a GC cycle during animation, so we attempt\n // to minimize the number of allocations.\n this.commands = [];\n this.params = [];\n this._closedPath = false;\n }\n Path2D.prototype.moveTo = function (x, y) {\n if (this.xy) {\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n this.commands.push('M');\n this.params.push(x, y);\n };\n Path2D.prototype.lineTo = function (x, y) {\n if (this.xy) {\n this.commands.push('L');\n this.params.push(x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.moveTo(x, y);\n }\n };\n Path2D.prototype.rect = function (x, y, width, height) {\n this.moveTo(x, y);\n this.lineTo(x + width, y);\n this.lineTo(x + width, y + height);\n this.lineTo(x, y + height);\n this.closePath();\n };\n /**\n * Adds an arc segment to the path definition.\n * https://www.w3.org/TR/SVG11/paths.html#PathDataEllipticalArcCommands\n * @param rx The major-axis radius.\n * @param ry The minor-axis radius.\n * @param rotation The x-axis rotation, expressed in radians.\n * @param fA The large arc flag. `1` to use angle > π.\n * @param fS The sweep flag. `1` for the arc that goes to `x`/`y` clockwise.\n * @param x2 The x coordinate to arc to.\n * @param y2 The y coordinate to arc to.\n */\n Path2D.prototype.arcTo = function (rx, ry, rotation, fA, fS, x2, y2) {\n // Convert from endpoint to center parametrization:\n // https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes\n var xy = this.xy;\n if (!xy) {\n return;\n }\n if (rx < 0) {\n rx = -rx;\n }\n if (ry < 0) {\n ry = -ry;\n }\n var x1 = xy[0];\n var y1 = xy[1];\n var hdx = (x1 - x2) / 2;\n var hdy = (y1 - y2) / 2;\n var sinPhi = Math.sin(rotation);\n var cosPhi = Math.cos(rotation);\n var xp = cosPhi * hdx + sinPhi * hdy;\n var yp = -sinPhi * hdx + cosPhi * hdy;\n var ratX = xp / rx;\n var ratY = yp / ry;\n var lambda = ratX * ratX + ratY * ratY;\n var cx = (x1 + x2) / 2;\n var cy = (y1 + y2) / 2;\n var cpx = 0;\n var cpy = 0;\n if (lambda >= 1) {\n lambda = Math.sqrt(lambda);\n rx *= lambda;\n ry *= lambda;\n // me gives lambda == cpx == cpy == 0;\n }\n else {\n lambda = Math.sqrt(1 / lambda - 1);\n if (fA === fS) {\n lambda = -lambda;\n }\n cpx = lambda * rx * ratY;\n cpy = -lambda * ry * ratX;\n cx += cosPhi * cpx - sinPhi * cpy;\n cy += sinPhi * cpx + cosPhi * cpy;\n }\n var theta1 = Math.atan2((yp - cpy) / ry, (xp - cpx) / rx);\n var deltaTheta = Math.atan2((-yp - cpy) / ry, (-xp - cpx) / rx) - theta1;\n // if (fS) {\n // if (deltaTheta <= 0) {\n // deltaTheta += Math.PI * 2;\n // }\n // }\n // else {\n // if (deltaTheta >= 0) {\n // deltaTheta -= Math.PI * 2;\n // }\n // }\n this.cubicArc(cx, cy, rx, ry, rotation, theta1, theta1 + deltaTheta, 1 - fS);\n };\n /**\n * Approximates an elliptical arc with up to four cubic Bézier curves.\n * @param commands The string array to write SVG command letters to.\n * @param params The number array to write SVG command parameters (cubic control points) to.\n * @param cx The x-axis coordinate for the ellipse's center.\n * @param cy The y-axis coordinate for the ellipse's center.\n * @param rx The ellipse's major-axis radius.\n * @param ry The ellipse's minor-axis radius.\n * @param phi The rotation for this ellipse, expressed in radians.\n * @param theta1 The starting angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param theta2 The ending angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param anticlockwise The arc control points are always placed clockwise from `theta1` to `theta2`,\n * even when `theta1 > theta2`, unless this flag is set to `1`.\n */\n Path2D.cubicArc = function (commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n if (anticlockwise) {\n var temp = theta1;\n theta1 = theta2;\n theta2 = temp;\n }\n var start = params.length;\n // See https://pomax.github.io/bezierinfo/#circles_cubic\n // Arc of unit circle (start angle = 0, end angle <= π/2) in cubic Bézier coordinates:\n // S = [1, 0]\n // C1 = [1, f]\n // C2 = [cos(θ) + f * sin(θ), sin(θ) - f * cos(θ)]\n // E = [cos(θ), sin(θ)]\n // f = 4/3 * tan(θ/4)\n var f90 = 0.5522847498307935; // f for θ = π/2 is 4/3 * (Math.sqrt(2) - 1)\n var sinTheta1 = Math.sin(theta1);\n var cosTheta1 = Math.cos(theta1);\n var sinPhi = Math.sin(phi);\n var cosPhi = Math.cos(phi);\n var rightAngle = Math.PI / 2;\n // Since we know how to draw an arc of a unit circle with a cubic Bézier,\n // to draw an elliptical arc with arbitrary rotation and radii we:\n // 1) rotate the Bézier coordinates that represent a circular arc by θ\n // 2) scale the circular arc separately along the x/y axes, making it elliptical\n // 3) rotate elliptical arc by φ\n // |cos(φ) -sin(φ)| |sx 0| |cos(θ) -sin(θ)| -> |xx xy|\n // |sin(φ) cos(φ)| | 0 sy| |sin(θ) cos(θ)| -> |yx yy|\n var xx = cosPhi * cosTheta1 * rx - sinPhi * sinTheta1 * ry;\n var yx = sinPhi * cosTheta1 * rx + cosPhi * sinTheta1 * ry;\n var xy = -cosPhi * sinTheta1 * rx - sinPhi * cosTheta1 * ry;\n var yy = -sinPhi * sinTheta1 * rx + cosPhi * cosTheta1 * ry;\n // TODO: what if delta between θ1 and θ2 is greater than 2π?\n // Always draw clockwise from θ1 to θ2.\n theta2 -= theta1;\n if (theta2 < 0) {\n theta2 += Math.PI * 2;\n }\n // Multiplying each point [x, y] by:\n // |xx xy cx| |x|\n // |yx yy cy| |y|\n // | 0 0 1| |1|\n // TODO: This move command may be redundant, if we are already at this point.\n // The coordinates of the point calculated here may differ ever so slightly\n // because of precision error.\n commands.push('M');\n params.push(xx + cx, yx + cy);\n while (theta2 >= rightAngle) {\n theta2 -= rightAngle;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xy + cx;\n params.push(xx + xy * f90 + cx, yx + yy * f90 + cy, xx * f90 + xy + cx, yx * f90 + yy + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yy + cy);\n // Prepend π/2 rotation matrix.\n // |xx xy| | 0 1| -> | xy -xx|\n // |yx yy| |-1 0| -> | yy -yx|\n // [xx, yx, xy, yy] = [xy, yy, -xx, -yx];\n // Compared to swapping with a temp variable, destructuring is:\n // - 10% faster in Chrome 70\n // - 99% slower in Firefox 63\n // Temp variable solution is 45% faster in FF than Chrome.\n // https://jsperf.com/multi-swap\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1165569\n var temp = xx;\n xx = xy;\n xy = -temp;\n temp = yx;\n yx = yy;\n yy = -temp;\n }\n if (theta2) {\n var f = 4 / 3 * Math.tan(theta2 / 4);\n var sinPhi2 = Math.sin(theta2);\n var cosPhi2 = Math.cos(theta2);\n var C2x = cosPhi2 + f * sinPhi2;\n var C2y = sinPhi2 - f * cosPhi2;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xx * cosPhi2 + xy * sinPhi2 + cx;\n params.push(xx + xy * f + cx, yx + yy * f + cy, xx * C2x + xy * C2y + cx, yx * C2x + yy * C2y + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yx * cosPhi2 + yy * sinPhi2 + cy);\n }\n if (anticlockwise) {\n for (var i = start, j = params.length - 2; i < j; i += 2, j -= 2) {\n var temp = params[i];\n params[i] = params[j];\n params[j] = temp;\n temp = params[i + 1];\n params[i + 1] = params[j + 1];\n params[j + 1] = temp;\n }\n }\n };\n Path2D.prototype.cubicArc = function (cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n var commands = this.commands;\n var params = this.params;\n var start = commands.length;\n Path2D.cubicArc(commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise);\n var x = params[params.length - 2];\n var y = params[params.length - 1];\n if (this.xy) {\n commands[start] = 'L';\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n };\n /**\n * Returns the `[x, y]` coordinates of the curve at `t`.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param t\n */\n Path2D.prototype.deCasteljau = function (points, t) {\n var n = points.length;\n if (n < 2 || n % 2 === 1) {\n throw new Error('Fewer than two points or not an even count.');\n }\n else if (n === 2 || t === 0) {\n return points.slice(0, 2);\n }\n else if (t === 1) {\n return points.slice(-2);\n }\n else {\n var newPoints = [];\n var last = n - 2;\n for (var i = 0; i < last; i += 2) {\n newPoints.push((1 - t) * points[i] + t * points[i + 2], // x\n (1 - t) * points[i + 1] + t * points[i + 3] // y\n );\n }\n return this.deCasteljau(newPoints, t);\n }\n };\n /**\n * Approximates the given curve using `n` line segments.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param n\n */\n Path2D.prototype.approximateCurve = function (points, n) {\n var xy = this.deCasteljau(points, 0);\n this.moveTo(xy[0], xy[1]);\n var step = 1 / n;\n for (var t = step; t <= 1; t += step) {\n var xy_1 = this.deCasteljau(points, t);\n this.lineTo(xy_1[0], xy_1[1]);\n }\n };\n /**\n * Adds a quadratic curve segment to the path definition.\n * Note: the given quadratic segment is converted and stored as a cubic one.\n * @param cx x-component of the curve's control point\n * @param cy y-component of the curve's control point\n * @param x x-component of the end point\n * @param y y-component of the end point\n */\n Path2D.prototype.quadraticCurveTo = function (cx, cy, x, y) {\n if (!this.xy) {\n this.moveTo(cx, cy);\n }\n // See https://pomax.github.io/bezierinfo/#reordering\n this.cubicCurveTo((this.xy[0] + 2 * cx) / 3, (this.xy[1] + 2 * cy) / 3, // 1/3 start + 2/3 control\n (2 * cx + x) / 3, (2 * cy + y) / 3, // 2/3 control + 1/3 end\n x, y);\n };\n Path2D.prototype.cubicCurveTo = function (cx1, cy1, cx2, cy2, x, y) {\n if (!this.xy) {\n this.moveTo(cx1, cy1);\n }\n this.commands.push('C');\n this.params.push(cx1, cy1, cx2, cy2, x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n };\n Object.defineProperty(Path2D.prototype, \"closedPath\", {\n get: function () {\n return this._closedPath;\n },\n enumerable: true,\n configurable: true\n });\n Path2D.prototype.closePath = function () {\n if (this.xy) {\n this.xy = undefined;\n this.commands.push('Z');\n this._closedPath = true;\n }\n };\n Path2D.prototype.clear = function () {\n this.commands.length = 0;\n this.params.length = 0;\n this.xy = undefined;\n this._closedPath = false;\n };\n Path2D.prototype.isPointInPath = function (x, y) {\n var commands = this.commands;\n var params = this.params;\n var cn = commands.length;\n // Hit testing using ray casting method, where the ray's origin is some point\n // outside the path. In this case, an offscreen point that is remote enough, so that\n // even if the path itself is large and is partially offscreen, the ray's origin\n // will likely be outside the path anyway. To test if the given point is inside the\n // path or not, we cast a ray from the origin to the given point and check the number\n // of intersections of this segment with the path. If the number of intersections is\n // even, then the ray both entered and exited the path an equal number of times,\n // therefore the point is outside the path, and inside the path, if the number of\n // intersections is odd. Since the path is compound, we check if the ray segment\n // intersects with each of the path's segments, which can be either a line segment\n // (one or no intersection points) or a Bézier curve segment (up to 3 intersection\n // points).\n var ox = -10000;\n var oy = -10000;\n // the starting point of the current path\n var sx = NaN;\n var sy = NaN;\n // the previous point of the current path\n var px = 0;\n var py = 0;\n var intersectionCount = 0;\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (commands[ci]) {\n case 'M':\n if (!isNaN(sx)) {\n if (segmentIntersection(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n sx = px = params[pi++];\n sy = py = params[pi++];\n break;\n case 'L':\n if (segmentIntersection(px, py, px = params[pi++], py = params[pi++], ox, oy, x, y)) {\n intersectionCount++;\n }\n break;\n case 'C':\n intersectionCount += cubicSegmentIntersections(px, py, params[pi++], params[pi++], params[pi++], params[pi++], px = params[pi++], py = params[pi++], ox, oy, x, y).length;\n break;\n case 'Z':\n if (!isNaN(sx)) {\n if (segmentIntersection(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n break;\n }\n }\n return intersectionCount % 2 === 1;\n };\n Path2D.fromString = function (value) {\n var path = new Path2D();\n path.setFromString(value);\n return path;\n };\n /**\n * Split the SVG path at command letters,\n * then extract the command letter and parameters from each substring.\n * @param value\n */\n Path2D.parseSvgPath = function (value) {\n return value.trim().split(Path2D.splitCommandsRe).map(function (part) {\n var strParams = part.match(Path2D.matchParamsRe);\n return {\n command: part.substr(0, 1),\n params: strParams ? strParams.map(parseFloat) : []\n };\n });\n };\n Path2D.prettifySvgPath = function (value) {\n return Path2D.parseSvgPath(value).map(function (d) { return d.command + d.params.join(','); }).join('\\n');\n };\n /**\n * See https://www.w3.org/TR/SVG11/paths.html\n * @param value\n */\n Path2D.prototype.setFromString = function (value) {\n var _this = this;\n this.clear();\n var parts = Path2D.parseSvgPath(value);\n // Current point.\n var x;\n var y;\n // Last control point. Used to calculate the reflection point\n // for `S`, `s`, `T`, `t` commands.\n var cpx;\n var cpy;\n var lastCommand;\n function checkQuadraticCP() {\n if (!lastCommand.match(Path2D.quadraticCommandRe)) {\n cpx = x;\n cpy = y;\n }\n }\n function checkCubicCP() {\n if (!lastCommand.match(Path2D.cubicCommandRe)) {\n cpx = x;\n cpy = y;\n }\n }\n // But that will make compiler complain about x/y, cpx/cpy\n // being used without being set first.\n parts.forEach(function (part) {\n var p = part.params;\n var n = p.length;\n var i = 0;\n switch (part.command) {\n case 'M':\n _this.moveTo(x = p[i++], y = p[i++]);\n while (i < n) {\n _this.lineTo(x = p[i++], y = p[i++]);\n }\n break;\n case 'm':\n _this.moveTo(x += p[i++], y += p[i++]);\n while (i < n) {\n _this.lineTo(x += p[i++], y += p[i++]);\n }\n break;\n case 'L':\n while (i < n) {\n _this.lineTo(x = p[i++], y = p[i++]);\n }\n break;\n case 'l':\n while (i < n) {\n _this.lineTo(x += p[i++], y += p[i++]);\n }\n break;\n case 'C':\n while (i < n) {\n _this.cubicCurveTo(p[i++], p[i++], cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'c':\n while (i < n) {\n _this.cubicCurveTo(x + p[i++], y + p[i++], cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'S':\n checkCubicCP();\n while (i < n) {\n _this.cubicCurveTo(x + x - cpx, y + y - cpy, cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 's':\n checkCubicCP();\n while (i < n) {\n _this.cubicCurveTo(x + x - cpx, y + y - cpy, cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'Q':\n while (i < n) {\n _this.quadraticCurveTo(cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'q':\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'T':\n checkQuadraticCP();\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + x - cpx, cpy = y + y - cpy, x = p[i++], y = p[i++]);\n }\n break;\n case 't':\n checkQuadraticCP();\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + x - cpx, cpy = y + y - cpy, x += p[i++], y += p[i++]);\n }\n break;\n case 'A':\n while (i < n) {\n _this.arcTo(p[i++], p[i++], p[i++] * Math.PI / 180, p[i++], p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'a':\n while (i < n) {\n _this.arcTo(p[i++], p[i++], p[i++] * Math.PI / 180, p[i++], p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'Z':\n case 'z':\n _this.closePath();\n break;\n case 'H':\n while (i < n) {\n _this.lineTo(x = p[i++], y);\n }\n break;\n case 'h':\n while (i < n) {\n _this.lineTo(x += p[i++], y);\n }\n break;\n case 'V':\n while (i < n) {\n _this.lineTo(x, y = p[i++]);\n }\n break;\n case 'v':\n while (i < n) {\n _this.lineTo(x, y += p[i++]);\n }\n break;\n }\n lastCommand = part.command;\n });\n };\n Path2D.prototype.toString = function () {\n var c = this.commands;\n var p = this.params;\n var cn = c.length;\n var out = [];\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (c[ci]) {\n case 'M':\n out.push('M' + p[pi++] + ',' + p[pi++]);\n break;\n case 'L':\n out.push('L' + p[pi++] + ',' + p[pi++]);\n break;\n case 'C':\n out.push('C' + p[pi++] + ',' + p[pi++] + ' ' +\n p[pi++] + ',' + p[pi++] + ' ' +\n p[pi++] + ',' + p[pi++]);\n break;\n case 'Z':\n out.push('Z');\n break;\n }\n }\n return out.join('');\n };\n Path2D.prototype.toPrettyString = function () {\n return Path2D.prettifySvgPath(this.toString());\n };\n Path2D.prototype.toSvg = function () {\n return Path2D.xmlDeclaration + \"\\n\\n \\n\";\n };\n Path2D.prototype.toDebugSvg = function () {\n var d = Path2D.prettifySvgPath(this.toString());\n return Path2D.xmlDeclaration + \"\\n\\n \\n\";\n };\n /**\n * Returns an array of sub-paths of this Path,\n * where each sub-path is represented exclusively by cubic segments.\n */\n Path2D.prototype.toCubicPaths = function () {\n // Each sub-path is an array of `(n * 3 + 1) * 2` numbers,\n // where `n` is the number of segments.\n var paths = [];\n var params = this.params;\n // current path\n var path;\n // the starting point of the current path\n var sx;\n var sy;\n // the previous point of the current path\n var px;\n var py;\n var i = 0; // current parameter\n this.commands.forEach(function (command) {\n switch (command) {\n case 'M':\n path = [\n sx = px = params[i++],\n sy = py = params[i++]\n ];\n paths.push(path);\n break;\n case 'L':\n var x = params[i++];\n var y = params[i++];\n // Place control points along the line `a + (b - a) * t`\n // at t = 1/3 and 2/3:\n path.push((px + px + x) / 3, (py + py + y) / 3, (px + x + x) / 3, (py + y + y) / 3, px = x, py = y);\n break;\n case 'C':\n path.push(params[i++], params[i++], params[i++], params[i++], px = params[i++], py = params[i++]);\n break;\n case 'Z':\n path.push((px + px + sx) / 3, (py + py + sy) / 3, (px + sx + sx) / 3, (py + sy + sy) / 3, px = sx, py = sy);\n break;\n }\n });\n return paths;\n };\n Path2D.cubicPathToString = function (path) {\n var n = path.length;\n if (!(n % 2 === 0 && (n / 2 - 1) / 2 >= 1)) {\n throw new Error('Invalid path.');\n }\n return 'M' + path.slice(0, 2).join(',') + 'C' + path.slice(2).join(',');\n };\n Path2D.splitCommandsRe = /(?=[AaCcHhLlMmQqSsTtVvZz])/g;\n Path2D.matchParamsRe = /-?[0-9]*\\.?\\d+/g;\n Path2D.quadraticCommandRe = /[QqTt]/;\n Path2D.cubicCommandRe = /[CcSs]/;\n Path2D.xmlDeclaration = '';\n Path2D.xmlns = 'http://www.w3.org/2000/svg';\n return Path2D;\n}());\n\nvar __extends$I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Path = /** @class */ (function (_super) {\n __extends$I(Path, _super);\n function Path() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Declare a path to retain for later rendering and hit testing\n * using custom Path2D class. Think of it as a TypeScript version\n * of the native Path2D (with some differences) that works in all browsers.\n */\n _this.path = new Path2D();\n /**\n * The path only has to be updated when certain attributes change.\n * For example, if transform attributes (such as `translationX`)\n * are changed, we don't have to update the path. The `dirtyPath` flag\n * is how we keep track if the path has to be updated or not.\n */\n _this._dirtyPath = true;\n /**\n * Path definition in SVG path syntax:\n * https://www.w3.org/TR/SVG11/paths.html#DAttribute\n */\n _this._svgPath = '';\n return _this;\n }\n Object.defineProperty(Path.prototype, \"dirtyPath\", {\n get: function () {\n return this._dirtyPath;\n },\n set: function (value) {\n if (this._dirtyPath !== value) {\n this._dirtyPath = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Path.prototype, \"svgPath\", {\n get: function () {\n return this._svgPath;\n },\n set: function (value) {\n if (this._svgPath !== value) {\n this._svgPath = value;\n this.path.setFromString(value);\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Path.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n return this.path.closedPath && this.path.isPointInPath(point.x, point.y);\n };\n Path.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Path.prototype.updatePath = function () { };\n Path.prototype.render = function (ctx) {\n var scene = this.scene;\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // if (scene.debug.renderBoundingBoxes) {\n // const bbox = this.computeBBox();\n // if (bbox) {\n // this.matrix.transformBBox(bbox).render(ctx);\n // }\n // }\n this.matrix.toContext(ctx);\n if (this.dirtyPath) {\n this.updatePath();\n this.dirtyPath = false;\n }\n scene.appendPath(this.path);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Path.className = 'Path';\n return Path;\n}(Shape));\n\nvar __extends$J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Line = /** @class */ (function (_super) {\n __extends$J(Line, _super);\n function Line() {\n var _this = _super.call(this) || this;\n _this._x1 = 0;\n _this._y1 = 0;\n _this._x2 = 0;\n _this._y2 = 0;\n _this.restoreOwnStyles();\n return _this;\n }\n Object.defineProperty(Line.prototype, \"x1\", {\n get: function () {\n // TODO: Investigate getter performance further in the context\n // of the scene graph.\n // In isolated benchmarks using a getter has the same\n // performance as a direct property access in Firefox 64.\n // But in Chrome 71 the getter is 60% slower than direct access.\n // Direct read is 4.5+ times slower in Chrome than it is in Firefox.\n // Property access and direct read have the same performance\n // in Safari 12, which is 2+ times faster than Firefox at this.\n // https://jsperf.com/es5-getters-setters-versus-getter-setter-methods/18\n // This is a know Chrome issue. They say it's not a regression, since\n // the behavior is observed since M60, but jsperf.com history shows the\n // 10x slowdown happened between Chrome 48 and Chrome 57.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=908743\n return this._x1;\n },\n set: function (value) {\n if (this._x1 !== value) {\n this._x1 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (value) {\n if (this._y1 !== value) {\n this._y1 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (value) {\n if (this._x2 !== value) {\n this._x2 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (value) {\n if (this._y2 !== value) {\n this._y2 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Line.prototype.computeBBox = function () {\n return new BBox(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);\n };\n Line.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Line.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Line.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var x1 = this.x1;\n var y1 = this.y1;\n var x2 = this.x2;\n var y2 = this.y2;\n // Align to the pixel grid if the line is strictly vertical\n // or horizontal (but not both, i.e. a dot).\n if (x1 === x2) {\n var x = Math.round(x1) + Math.floor(this.strokeWidth) % 2 / 2;\n x1 = x;\n x2 = x;\n }\n else if (y1 === y2) {\n var y = Math.round(y1) + Math.floor(this.strokeWidth) % 2 / 2;\n y1 = y;\n y2 = y;\n }\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Line.className = 'Line';\n Line.defaultStyles = chainObjects(Shape.defaultStyles, {\n fill: undefined,\n strokeWidth: 1\n });\n return Line;\n}(Shape));\n\nvar __read$d = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Maps a discrete domain to a continuous numeric range.\n * See https://github.com/d3/d3-scale#band-scales for more info.\n */\nvar BandScale = /** @class */ (function () {\n function BandScale() {\n this.type = 'band';\n /**\n * Maps datum to its index in the {@link domain} array.\n * Used to check for duplicate datums (not allowed).\n */\n this.index = new Map();\n /**\n * The output range values for datum at each index.\n */\n this.ordinalRange = [];\n /**\n * Contains unique datums only. Since `{}` is used in place of `Map`\n * for IE11 compatibility, the datums are converted `toString` before\n * the uniqueness check.\n */\n this._domain = [];\n this._range = [0, 1];\n this._bandwidth = 1;\n /**\n * The ratio of the range that is reserved for space between bands.\n */\n this._paddingInner = 0;\n /**\n * The ratio of the range that is reserved for space before the first\n * and after the last band.\n */\n this._paddingOuter = 0;\n this._round = false;\n /**\n * How the leftover range is distributed.\n * `0.5` - equal distribution of space before the first and after the last band,\n * with bands effectively centered within the range.\n */\n this._align = 0.5;\n }\n Object.defineProperty(BandScale.prototype, \"domain\", {\n get: function () {\n return this._domain;\n },\n set: function (values) {\n var domain = this._domain;\n domain.length = 0;\n this.index = new Map();\n var index = this.index;\n // In case one wants to have duplicate domain values, for example, two 'Italy' categories,\n // one should use objects rather than strings for domain values like so:\n // { toString: () => 'Italy' }\n // { toString: () => 'Italy' }\n values.forEach(function (value) {\n if (index.get(value) === undefined) {\n index.set(value, domain.push(value) - 1);\n }\n });\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"range\", {\n get: function () {\n return this._range;\n },\n set: function (values) {\n this._range[0] = values[0];\n this._range[1] = values[1];\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.ticks = function () {\n return this._domain;\n };\n BandScale.prototype.convert = function (d) {\n var i = this.index.get(d);\n if (i === undefined) {\n return NaN;\n }\n var r = this.ordinalRange[i];\n if (r === undefined) {\n return NaN;\n }\n return r;\n };\n Object.defineProperty(BandScale.prototype, \"bandwidth\", {\n get: function () {\n return this._bandwidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"padding\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n value = Math.max(0, Math.min(1, value));\n this._paddingInner = value;\n this._paddingOuter = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingInner\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n this._paddingInner = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingOuter\", {\n get: function () {\n return this._paddingOuter;\n },\n set: function (value) {\n this._paddingOuter = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"round\", {\n get: function () {\n return this._round;\n },\n set: function (value) {\n this._round = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"align\", {\n get: function () {\n return this._align;\n },\n set: function (value) {\n this._align = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.rescale = function () {\n var _a;\n var n = this._domain.length;\n if (!n) {\n return;\n }\n var _b = __read$d(this._range, 2), a = _b[0], b = _b[1];\n var reversed = b < a;\n if (reversed) {\n _a = __read$d([b, a], 2), a = _a[0], b = _a[1];\n }\n var step = (b - a) / Math.max(1, n - this._paddingInner + this._paddingOuter * 2);\n if (this._round) {\n step = Math.floor(step);\n }\n a += (b - a - step * (n - this._paddingInner)) * this._align;\n this._bandwidth = step * (1 - this._paddingInner);\n if (this._round) {\n a = Math.round(a);\n this._bandwidth = Math.round(this._bandwidth);\n }\n var values = [];\n for (var i = 0; i < n; i++) {\n values.push(a + step * i);\n }\n this.ordinalRange = reversed ? values.reverse() : values;\n };\n return BandScale;\n}());\n\nvar EnterNode = /** @class */ (function () {\n function EnterNode(parent, datum) {\n this.next = null;\n this.scene = parent.scene;\n this.parent = parent;\n this.datum = datum;\n }\n EnterNode.prototype.appendChild = function (node) {\n // This doesn't work without the `strict: true` in the `tsconfig.json`,\n // so we must have two `if` checks below, instead of this single one.\n // if (this.next && !Node.isNode(this.next)) {\n // throw new Error(`${this.next} is not a Node.`);\n // }\n if (this.next === null) {\n return this.parent.insertBefore(node, null);\n }\n if (!Node.isNode(this.next)) {\n throw new Error(this.next + \" is not a Node.\");\n }\n return this.parent.insertBefore(node, this.next);\n };\n EnterNode.prototype.insertBefore = function (node, nextNode) {\n return this.parent.insertBefore(node, nextNode);\n };\n return EnterNode;\n}());\n/**\n * G - type of the selected node(s).\n * GDatum - type of the datum of the selected node(s).\n * P - type of the parent node(s).\n * PDatum - type of the datum of the parent node(s).\n */\nvar Selection = /** @class */ (function () {\n function Selection(groups, parents) {\n this.groups = groups;\n this.parents = parents;\n }\n Selection.select = function (node) {\n return new Selection([[typeof node === 'function' ? node() : node]], [undefined]);\n };\n Selection.selectAll = function (nodes) {\n return new Selection([nodes == null ? [] : nodes], [undefined]);\n };\n /**\n * Creates new nodes, appends them to the nodes of this selection and returns them\n * as a new selection. The created nodes inherit the datums and the parents of the nodes\n * they replace.\n * @param Class The constructor function to use to create the new nodes.\n */\n Selection.prototype.append = function (Class) {\n return this.select(function (node) {\n return node.appendChild(new Class());\n });\n };\n /**\n * Same as the {@link append}, but accepts a custom creator function with the\n * {@link NodeSelector} signature rather than a constructor function.\n * @param creator\n */\n Selection.prototype.appendFn = function (creator) {\n return this.select(function (node, data, index, group) {\n return node.appendChild(creator(node, data, index, group));\n });\n };\n /**\n * Runs the given selector that returns a single node for every node in each group.\n * The original nodes are then replaced by the nodes returned by the selector\n * and returned as a new selection.\n * The selected nodes inherit the datums and the parents of the original nodes.\n */\n Selection.prototype.select = function (selector) {\n var groups = this.groups;\n var numGroups = groups.length;\n var subgroups = [];\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n var subgroup = subgroups[j] = new Array(groupSize);\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var subnode = selector(node, node.datum, i, group);\n if (subnode) {\n subnode.datum = node.datum;\n }\n subgroup[i] = subnode;\n }\n // else this can be a group of the `enter` selection,\n // for example, with no nodes at the i-th position,\n // only nodes at the end of the group\n }\n }\n return new Selection(subgroups, this.parents);\n };\n /**\n * Same as {@link select}, but uses the given {@param Class} (constructor) as a selector.\n * @param Class The constructor function to use to find matching nodes.\n */\n Selection.prototype.selectByClass = function (Class) {\n return this.select(function (node) {\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectByTag = function (tag) {\n return this.select(function (node) {\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectAllByClass = function (Class) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectAllByTag = function (tag) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectNone = function () {\n return [];\n };\n /**\n * Runs the given selector that returns a group of nodes for every node in each group.\n * The original nodes are then replaced by the groups of nodes returned by the selector\n * and returned as a new selection. The original nodes become the parent nodes for each\n * group in the new selection. The selected nodes do not inherit the datums of the original nodes.\n * If called without any parameters, creates a new selection with an empty group for each\n * node in this selection.\n */\n Selection.prototype.selectAll = function (selectorAll) {\n if (!selectorAll) {\n selectorAll = this.selectNone;\n }\n // Each subgroup is populated with the selector (run on each group node) results.\n var subgroups = [];\n // In the new selection that we return, subgroups become groups,\n // and group nodes become parents.\n var parents = [];\n var groups = this.groups;\n var groupCount = groups.length;\n for (var j = 0; j < groupCount; j++) {\n var group = groups[j];\n var groupLength = group.length;\n for (var i = 0; i < groupLength; i++) {\n var node = group[i];\n if (node) {\n subgroups.push(selectorAll(node, node.datum, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection(subgroups, parents);\n };\n /**\n * Runs the given callback for every node in this selection and returns this selection.\n * @param cb\n */\n Selection.prototype.each = function (cb) {\n var groups = this.groups;\n var numGroups = groups.length;\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n cb(node, node.datum, i, group);\n }\n }\n }\n return this;\n };\n Selection.prototype.remove = function () {\n return this.each(function (node) {\n if (Node.isNode(node)) {\n var parent_1 = node.parent;\n if (parent_1) {\n parent_1.removeChild(node);\n }\n }\n });\n };\n Selection.prototype.merge = function (other) {\n var groups0 = this.groups;\n var groups1 = other.groups;\n var m0 = groups0.length;\n var m1 = groups1.length;\n var m = Math.min(m0, m1);\n var merges = new Array(m0);\n var j = 0;\n for (; j < m; j++) {\n var group0 = groups0[j];\n var group1 = groups1[j];\n var n = group0.length;\n var merge = merges[j] = new Array(n);\n for (var i = 0; i < n; i++) {\n var node = group0[i] || group1[i];\n merge[i] = node || undefined;\n }\n }\n for (; j < m0; j++) {\n merges[j] = groups0[j];\n }\n return new Selection(merges, this.parents);\n };\n /**\n * Return the first non-null element in this selection.\n * If the selection is empty, returns null.\n */\n Selection.prototype.node = function () {\n var groups = this.groups;\n var numGroups = groups.length;\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n return node;\n }\n }\n }\n return null;\n };\n Selection.prototype.attr = function (name, value) {\n this.each(function (node) {\n node[name] = value;\n });\n return this;\n };\n Selection.prototype.attrFn = function (name, value) {\n this.each(function (node, datum, index, group) {\n node[name] = value(node, datum, index, group);\n });\n return this;\n };\n /**\n * Invokes the given function once, passing in this selection.\n * Returns this selection. Facilitates method chaining.\n * @param cb\n */\n Selection.prototype.call = function (cb) {\n cb(this);\n return this;\n };\n Object.defineProperty(Selection.prototype, \"size\", {\n /**\n * Returns the total number of nodes in this selection.\n */\n get: function () {\n var size = 0;\n this.each(function () { return size++; });\n return size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"data\", {\n /**\n * Returns the array of data for the selected elements.\n */\n get: function () {\n var data = [];\n this.each(function (_, datum) { return data.push(datum); });\n return data;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"enter\", {\n get: function () {\n return new Selection(this.enterGroups ? this.enterGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"exit\", {\n get: function () {\n return new Selection(this.exitGroups ? this.exitGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the given value to each selected node and returns this selection\n * with its {@link GDatum} type changed to the type of the given value.\n * This method doesn't compute a join and doesn't affect indexes or the enter and exit selections.\n * This method can also be used to clear bound data.\n * @param value\n */\n Selection.prototype.setDatum = function (value) {\n return this.each(function (node) {\n node.datum = value;\n });\n };\n Object.defineProperty(Selection.prototype, \"datum\", {\n /**\n * Returns the bound datum for the first non-null element in the selection.\n * This is generally useful only if you know the selection contains exactly one element.\n */\n get: function () {\n var node = this.node();\n return node ? node.datum : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the specified array of values with the selected nodes, returning a new selection\n * that represents the _update_ selection: the nodes successfully bound to the values.\n * Also defines the {@link enter} and {@link exit} selections on the returned selection,\n * which can be used to add or remove the nodes to correspond to the new data.\n * The `values` is an array of values of a particular type, or a function that returns\n * an array of values for each group.\n * When values are assigned to the nodes, they are stored in the {@link Node.datum} property.\n * @param values\n * @param key\n */\n Selection.prototype.setData = function (values, key) {\n if (typeof values !== 'function') {\n var data_1 = values;\n values = function () { return data_1; };\n }\n var groups = this.groups;\n var parents = this.parents;\n var numGroups = groups.length;\n var updateGroups = new Array(numGroups);\n var enterGroups = new Array(numGroups);\n var exitGroups = new Array(numGroups);\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var parent_2 = parents[j];\n if (!parent_2) {\n throw new Error(\"Group #\" + j + \" has no parent: \" + group);\n }\n var groupSize = group.length;\n var data = values(parent_2, parent_2.datum, j, parents);\n var dataSize = data.length;\n var enterGroup = enterGroups[j] = new Array(dataSize);\n var updateGroup = updateGroups[j] = new Array(dataSize);\n var exitGroup = exitGroups[j] = new Array(groupSize);\n if (key) {\n this.bindKey(parent_2, group, enterGroup, updateGroup, exitGroup, data, key);\n }\n else {\n this.bindIndex(parent_2, group, enterGroup, updateGroup, exitGroup, data);\n }\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0; i0 < dataSize; i0++) {\n var previous = enterGroup[i0];\n if (previous) {\n if (i0 >= i1) {\n i1 = i0 + 1;\n }\n var next = void 0;\n while (!(next = updateGroup[i1]) && i1 < dataSize) {\n i1++;\n }\n previous.next = next || null;\n }\n }\n }\n var result = new Selection(updateGroups, parents);\n result.enterGroups = enterGroups;\n result.exitGroups = exitGroups;\n return result;\n };\n Selection.prototype.bindIndex = function (parent, group, enter, update, exit, data) {\n var groupSize = group.length;\n var dataSize = data.length;\n var i = 0;\n for (; i < dataSize; i++) {\n var node = group[i];\n if (node) {\n node.datum = data[i];\n update[i] = node;\n }\n else { // more datums than group nodes\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n // more group nodes than datums\n for (; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n exit[i] = node;\n }\n }\n };\n Selection.prototype.bindKey = function (parent, group, enter, update, exit, data, key) {\n var groupSize = group.length;\n var dataSize = data.length;\n var keyValues = new Array(groupSize);\n var nodeByKeyValue = {};\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var keyValue = keyValues[i] = Selection.keyPrefix + key(node, node.datum, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n }\n else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n // Compute the key for each datum.\n // If there is a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (var i = 0; i < dataSize; i++) {\n var keyValue = Selection.keyPrefix + key(parent, data[i], i, data);\n var node = nodeByKeyValue[keyValue];\n if (node) {\n update[i] = node;\n node.datum = data[i];\n nodeByKeyValue[keyValue] = undefined;\n }\n else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n // Add any remaining nodes that were not bound to data to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n };\n Selection.keyPrefix = '$'; // Protect against keys like '__proto__'.\n return Selection;\n}());\n\n/**\n * Wraps the native Canvas element and overrides its CanvasRenderingContext2D to\n * provide resolution independent rendering based on `window.devicePixelRatio`.\n */\nvar HdpiCanvas = /** @class */ (function () {\n // The width/height attributes of the Canvas element default to\n // 300/150 according to w3.org.\n function HdpiCanvas(document, width, height) {\n if (document === void 0) { document = window.document; }\n if (width === void 0) { width = 600; }\n if (height === void 0) { height = 300; }\n this._container = undefined;\n // `NaN` is deliberate here, so that overrides are always applied\n // and the `resetTransform` inside the `resize` method works in IE11.\n this._pixelRatio = NaN;\n this._width = 100;\n this._height = 100;\n this.document = document;\n this.element = document.createElement('canvas');\n this.context = this.element.getContext('2d');\n this.element.style.userSelect = 'none';\n this.element.style.display = 'block';\n this.setPixelRatio();\n this.resize(width, height);\n }\n Object.defineProperty(HdpiCanvas.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n this.remove();\n if (value) {\n value.appendChild(this.element);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.remove = function () {\n var parentNode = this.element.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.element);\n }\n };\n HdpiCanvas.prototype.destroy = function () {\n this.element.remove();\n this._canvas = undefined;\n Object.freeze(this);\n };\n HdpiCanvas.prototype.toImage = function () {\n var img = this.document.createElement('img');\n img.src = this.getDataURL();\n return img;\n };\n HdpiCanvas.prototype.getDataURL = function (type) {\n return this.element.toDataURL(type);\n };\n /**\n * @param fileName The name of the file upon save. The `.png` extension is going to be added automatically.\n */\n HdpiCanvas.prototype.download = function (fileName) {\n fileName = ((fileName || '').trim() || 'image') + '.png';\n // Chart images saved as JPEG are a few times larger at 50% quality than PNG images,\n // so we don't support saving to JPEG.\n var type = 'image/png';\n var dataUrl = this.getDataURL(type);\n var document = this.document;\n var a = document.createElement('a');\n a.href = dataUrl;\n a.download = fileName;\n a.style.display = 'none';\n document.body.appendChild(a); // required for the `click` to work in Firefox\n a.click();\n document.body.removeChild(a);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelRatio\", {\n get: function () {\n return this._pixelRatio;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Changes the pixel ratio of the Canvas element to the given value,\n * or uses the window.devicePixelRatio (default), then resizes the Canvas\n * element accordingly (default).\n */\n HdpiCanvas.prototype.setPixelRatio = function (ratio) {\n var pixelRatio = ratio || window.devicePixelRatio;\n if (pixelRatio === this.pixelRatio) {\n return;\n }\n HdpiCanvas.overrideScale(this.context, pixelRatio);\n this._pixelRatio = pixelRatio;\n this.resize(this.width, this.height);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelated\", {\n get: function () {\n return this.element.style.imageRendering === 'pixelated';\n },\n set: function (value) {\n this.element.style.imageRendering = value ? 'pixelated' : 'auto';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.resize = function (width, height) {\n if (!(width > 0 && height > 0)) {\n return;\n }\n var _a = this, element = _a.element, context = _a.context, pixelRatio = _a.pixelRatio;\n element.width = Math.round(width * pixelRatio);\n element.height = Math.round(height * pixelRatio);\n element.style.width = width + 'px';\n element.style.height = height + 'px';\n context.resetTransform();\n this._width = width;\n this._height = height;\n };\n Object.defineProperty(HdpiCanvas, \"textMeasuringContext\", {\n get: function () {\n if (this._textMeasuringContext) {\n return this._textMeasuringContext;\n }\n var canvas = document.createElement('canvas');\n return this._textMeasuringContext = canvas.getContext('2d');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"svgText\", {\n get: function () {\n if (this._svgText) {\n return this._svgText;\n }\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n svg.setAttribute('width', '100');\n svg.setAttribute('height', '100');\n // Add a descriptive class name in case someone sees this SVG element\n // in devtools and wonders about its purpose:\n if (svg.classList) {\n svg.classList.add('text-measuring-svg');\n }\n else {\n svg.setAttribute('class', 'text-measuring-svg');\n }\n svg.style.position = 'absolute';\n svg.style.top = '-1000px';\n svg.style.visibility = 'hidden';\n var svgText = document.createElementNS(xmlns, 'text');\n svgText.setAttribute('x', '0');\n svgText.setAttribute('y', '30');\n svgText.setAttribute('text', 'black');\n svg.appendChild(svgText);\n document.body.appendChild(svg);\n this._svgText = svgText;\n return svgText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"has\", {\n get: function () {\n if (this._has) {\n return this._has;\n }\n var isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n var isSafari = !isChrome && navigator.userAgent.indexOf('Safari') > -1;\n return this._has = Object.freeze({\n textMetrics: this.textMeasuringContext.measureText('test').actualBoundingBoxDescent !== undefined\n // Firefox implemented advanced TextMetrics object in v74:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1102584\n // but it's buggy, so we'll keed using the SVG for text measurement in Firefox for now.\n && !isFirefox && !isSafari,\n getTransform: this.textMeasuringContext.getTransform !== undefined\n });\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.measureText = function (text, font, textBaseline, textAlign) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n ctx.textBaseline = textBaseline;\n ctx.textAlign = textAlign;\n return ctx.measureText(text);\n };\n /**\n * Returns the width and height of the measured text.\n * @param text The single-line text to measure.\n * @param font The font shorthand string.\n */\n HdpiCanvas.getTextSize = function (text, font) {\n if (this.has.textMetrics) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n var metrics = ctx.measureText(text);\n return {\n width: metrics.width,\n height: metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent\n };\n }\n else {\n return this.measureSvgText(text, font);\n }\n };\n HdpiCanvas.measureSvgText = function (text, font) {\n var cache = this.textSizeCache;\n var fontCache = cache[font];\n // Note: consider not caching the size of numeric strings.\n // For example: if (isNaN(+text)) { // skip\n if (fontCache) {\n var size_1 = fontCache[text];\n if (size_1) {\n return size_1;\n }\n }\n else {\n cache[font] = {};\n }\n var svgText = this.svgText;\n svgText.style.font = font;\n svgText.textContent = text;\n // `getBBox` returns an instance of `SVGRect` with the same `width` and `height`\n // measurements as `DOMRect` instance returned by the `getBoundingClientRect`.\n // But the `SVGRect` instance has half the properties of the `DOMRect`,\n // so we use the `getBBox` method.\n var bbox = svgText.getBBox();\n var size = {\n width: bbox.width,\n height: bbox.height\n };\n cache[font][text] = size;\n return size;\n };\n HdpiCanvas.overrideScale = function (ctx, scale) {\n var depth = 0;\n var overrides = {\n save: function () {\n this.$save();\n depth++;\n },\n restore: function () {\n if (depth > 0) {\n this.$restore();\n depth--;\n }\n },\n setTransform: function (a, b, c, d, e, f) {\n this.$setTransform(a * scale, b * scale, c * scale, d * scale, e * scale, f * scale);\n },\n resetTransform: function () {\n // As of Jan 8, 2019, `resetTransform` is still an \"experimental technology\",\n // and doesn't work in IE11 and Edge 44.\n this.$setTransform(scale, 0, 0, scale, 0, 0);\n this.save();\n depth = 0;\n // The scale above will be impossible to restore,\n // because we override the `ctx.restore` above and\n // check `depth` there.\n }\n };\n for (var name_1 in overrides) {\n if (overrides.hasOwnProperty(name_1)) {\n // Save native methods under prefixed names,\n // if this hasn't been done by the previous overrides already.\n if (!ctx['$' + name_1]) {\n ctx['$' + name_1] = ctx[name_1];\n }\n // Replace native methods with overrides,\n // or previous overrides with the new ones.\n ctx[name_1] = overrides[name_1];\n }\n }\n };\n HdpiCanvas.textSizeCache = {};\n return HdpiCanvas;\n}());\n\nvar __read$e = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$7 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$e(arguments[i]));\n return ar;\n};\nvar Scene = /** @class */ (function () {\n // As a rule of thumb, constructors with no parameters are preferred.\n // A few exceptions are:\n // - we absolutely need to know something at construction time (document)\n // - knowing something at construction time meaningfully improves performance (width, height)\n function Scene(document, width, height) {\n var _this = this;\n if (document === void 0) { document = window.document; }\n this.id = createId(this);\n this._dirty = false;\n this.animationFrameId = 0;\n this._root = null;\n this.debug = {\n renderFrameIndex: false,\n renderBoundingBoxes: false\n };\n this._frameIndex = 0;\n this.render = function () {\n var _a;\n var _b = _this, ctx = _b.ctx, root = _b.root, pendingSize = _b.pendingSize;\n _this.animationFrameId = 0;\n if (pendingSize) {\n (_a = _this.canvas).resize.apply(_a, __spread$7(pendingSize));\n _this.pendingSize = undefined;\n }\n if (root && !root.visible) {\n _this.dirty = false;\n return;\n }\n // start with a blank canvas, clear previous drawing\n ctx.clearRect(0, 0, _this.width, _this.height);\n if (root) {\n ctx.save();\n if (root.visible) {\n root.render(ctx);\n }\n ctx.restore();\n }\n _this._frameIndex++;\n if (_this.debug.renderFrameIndex) {\n ctx.fillStyle = 'white';\n ctx.fillRect(0, 0, 40, 15);\n ctx.fillStyle = 'black';\n ctx.fillText(_this.frameIndex.toString(), 2, 10);\n }\n _this.dirty = false;\n };\n this.canvas = new HdpiCanvas(document, width, height);\n this.ctx = this.canvas.context;\n }\n Object.defineProperty(Scene.prototype, \"container\", {\n get: function () {\n return this.canvas.container;\n },\n set: function (value) {\n this.canvas.container = value;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.download = function (fileName) {\n this.canvas.download(fileName);\n };\n Scene.prototype.getDataURL = function (type) {\n return this.canvas.getDataURL(type);\n };\n Object.defineProperty(Scene.prototype, \"width\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[0] : this.canvas.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"height\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[1] : this.canvas.height;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.resize = function (width, height) {\n width = Math.round(width);\n height = Math.round(height);\n if (width === this.width && height === this.height) {\n return;\n }\n this.pendingSize = [width, height];\n this.dirty = true;\n };\n Object.defineProperty(Scene.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n set: function (dirty) {\n if (dirty && !this._dirty) {\n this.animationFrameId = requestAnimationFrame(this.render);\n }\n this._dirty = dirty;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.cancelRender = function () {\n if (this.animationFrameId) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = 0;\n this._dirty = false;\n }\n };\n Object.defineProperty(Scene.prototype, \"root\", {\n get: function () {\n return this._root;\n },\n set: function (node) {\n if (node === this._root) {\n return;\n }\n if (this._root) {\n this._root._setScene();\n }\n this._root = node;\n if (node) {\n // If `node` is the root node of another scene ...\n if (node.parent === null && node.scene && node.scene !== this) {\n node.scene.root = null;\n }\n node._setScene(this);\n }\n this.dirty = true;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.appendPath = function (path) {\n var ctx = this.ctx;\n var commands = path.commands;\n var params = path.params;\n var n = commands.length;\n var j = 0;\n ctx.beginPath();\n for (var i = 0; i < n; i++) {\n switch (commands[i]) {\n case 'M':\n ctx.moveTo(params[j++], params[j++]);\n break;\n case 'L':\n ctx.lineTo(params[j++], params[j++]);\n break;\n case 'C':\n ctx.bezierCurveTo(params[j++], params[j++], params[j++], params[j++], params[j++], params[j++]);\n break;\n case 'Z':\n ctx.closePath();\n break;\n }\n }\n };\n Object.defineProperty(Scene.prototype, \"frameIndex\", {\n get: function () {\n return this._frameIndex;\n },\n enumerable: true,\n configurable: true\n });\n Scene.className = 'Scene';\n return Scene;\n}());\n\nvar __assign$4 = (undefined && undefined.__assign) || function () {\n __assign$4 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$4.apply(this, arguments);\n};\nvar Observable = /** @class */ (function () {\n function Observable() {\n // Note that these maps can't be specified generically, so they are kept untyped.\n // Some methods in this class only need generics in their signatures, the generics inside the methods\n // are just for clarity. The generics in signatures allow for static type checking of user provided\n // listeners and for type inference, so that the users wouldn't have to specify the type of parameters\n // of their inline lambdas.\n this.allPropertyListeners = new Map(); // property name => property change listener => scopes\n this.allEventListeners = new Map(); // event type => event listener => scopes\n }\n Observable.prototype.addPropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (!propertyListeners) {\n propertyListeners = new Map();\n allPropertyListeners.set(name, propertyListeners);\n }\n if (!propertyListeners.has(listener)) {\n var scopes_1 = new Set();\n propertyListeners.set(listener, scopes_1);\n }\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removePropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n if (listener) {\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n propertyListeners.delete(listener);\n }\n }\n }\n else {\n propertyListeners.clear();\n }\n }\n };\n Observable.prototype.notifyPropertyListeners = function (name, oldValue, value) {\n var _this = this;\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n propertyListeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: name, source: _this, value: value, oldValue: oldValue }); });\n });\n }\n };\n Observable.prototype.addEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (!eventListeners) {\n eventListeners = new Map();\n allEventListeners.set(type, eventListeners);\n }\n if (!eventListeners.has(listener)) {\n var scopes_2 = new Set();\n eventListeners.set(listener, scopes_2);\n }\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removeEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (eventListeners) {\n if (listener) {\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n eventListeners.delete(listener);\n }\n }\n }\n else {\n eventListeners.clear();\n }\n }\n };\n Observable.prototype.notifyEventListeners = function (types) {\n var _this = this;\n var allEventListeners = this.allEventListeners;\n types.forEach(function (type) {\n var listeners = allEventListeners.get(type);\n if (listeners) {\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: type, source: _this }); });\n });\n }\n });\n };\n // 'source' is added automatically and is always the object this method belongs to.\n Observable.prototype.fireEvent = function (event) {\n var _this = this;\n var listeners = this.allEventListeners.get(event.type);\n if (listeners) {\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, __assign$4(__assign$4({}, event), { source: _this })); });\n });\n }\n };\n Observable.privateKeyPrefix = '_';\n return Observable;\n}());\nfunction reactive() {\n var events = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n events[_i] = arguments[_i];\n }\n var debug = events.indexOf('debugger') >= 0;\n return function (target, key) {\n // `target` is either a constructor (static member) or prototype (instance member)\n var privateKey = Observable.privateKeyPrefix + key;\n var privateKeyEvents = privateKey + 'Events';\n if (!target[key]) {\n if (events) {\n target[privateKeyEvents] = events;\n }\n Object.defineProperty(target, key, {\n set: function (value) {\n var oldValue = this[privateKey];\n // This is a way to stop inside the setter by adding the special\n // 'debugger' event to a reactive property, for example:\n // @reactive('layoutChange', 'debugger') title?: Caption;\n if (debug) { // DO NOT REMOVE\n debugger;\n }\n if (value !== oldValue || (typeof value === 'object' && value !== null)) {\n this[privateKey] = value;\n this.notifyPropertyListeners(key, oldValue, value);\n var events_1 = this[privateKeyEvents];\n if (events_1) {\n this.notifyEventListeners(events_1);\n }\n }\n },\n get: function () {\n return this[privateKey];\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n}\n\nvar Padding = /** @class */ (function () {\n function Padding(top, right, bottom, left) {\n if (top === void 0) { top = 0; }\n if (right === void 0) { right = top; }\n if (bottom === void 0) { bottom = top; }\n if (left === void 0) { left = right; }\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n Padding.prototype.clear = function () {\n this.top = this.right = this.bottom = this.left = 0;\n };\n return Padding;\n}());\n\nvar defaultTooltipCss = \"\\n.ag-sparkline-tooltip-wrapper {\\n position: absolute;\\n user-select: none;\\n pointer-events: none;\\n}\\n\\n.ag-sparkline-tooltip {\\n position: relative;\\n font: 12px arial,sans-serif;\\n border-radius: 2px;\\n box-shadow: 0 1px 3px rgb(0 0 0 / 20%), 0 1px 1px rgb(0 0 0 / 14%);\\n line-height: 1.7em;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 99999;\\n background-color: rgb(255, 255, 255);\\n color: rgba(0,0,0, 0.67);\\n}\\n\\n.ag-sparkline-tooltip-content {\\n padding: 0 7px;\\n}\\n\\n.ag-sparkline-tooltip-title {\\n padding-left: 7px;\\n}\\n\\n.ag-sparkline-tooltip-wrapper-hidden {\\n top: -10000px !important;\\n}\\n\\n.ag-sparkline-wrapper {\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\";\n\n// Simplified version of https://github.com/plotly/fast-isnumeric\n// that doesn't treat number strings with leading/trailing whitespace as numbers.\nfunction isNumber(value) {\n if (typeof value !== 'number') {\n return false;\n }\n return Number.isFinite(value);\n}\nfunction isNumberObject(value) {\n return !!value && value.hasOwnProperty('valueOf') && isNumber(value.valueOf());\n}\nfunction isNumeric(value) {\n return isNumber(value) || isNumberObject(value);\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction isStringObject(value) {\n return !!value && value.hasOwnProperty('toString') && isString(value.toString());\n}\nfunction isContinuous(value) {\n return isNumeric(value) || isDate(value);\n}\n\nvar constant = (function (x) { return function () { return x; }; });\n\nfunction interpolateNumber (a, b) {\n a = +a;\n b = +b;\n return function (t) { return a * (1 - t) + b * t; };\n}\n\nfunction date (a, b) {\n var date = new Date;\n var msA = +a;\n var msB = +b;\n return function (t) {\n date.setTime(msA * (1 - t) + msB * t);\n return date;\n };\n}\n\nfunction array (a, b) {\n var nb = b ? b.length : 0;\n var na = a ? Math.min(nb, a.length) : 0;\n var x = new Array(na);\n var c = new Array(nb);\n var i;\n for (i = 0; i < na; ++i) {\n x[i] = interpolateValue(a[i], b[i]);\n }\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n return c;\n };\n}\n\nfunction object (a, b) {\n var i = {};\n var c = {};\n var k;\n if (a === null || typeof a !== 'object') {\n a = {};\n }\n if (b === null || typeof b !== 'object') {\n b = {};\n }\n for (k in b) {\n if (k in a) {\n i[k] = interpolateValue(a[k], b[k]);\n }\n else {\n c[k] = b[k];\n }\n }\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n return c;\n };\n}\n\nvar __read$f = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Color = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) { // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.parseHex = function (input) {\n input = input.replace(/ /g, '').slice(1);\n var parts;\n switch (input.length) {\n case 6:\n case 8:\n parts = [];\n for (var i = 0; i < input.length; i += 2) {\n parts.push(parseInt(\"\" + input[i] + input[i + 1], 16));\n }\n break;\n case 3:\n case 4:\n parts = input.split('').map(function (p) { return parseInt(p, 16); }).map(function (p) { return p + p * 16; });\n break;\n }\n if (parts.length >= 3) {\n if (parts.every(function (p) { return p >= 0; })) {\n if (parts.length === 3) {\n parts.push(255);\n }\n return parts;\n }\n }\n };\n Color.fromHexString = function (str) {\n var values = Color.parseHex(str);\n if (values) {\n var _a = __read$f(values, 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.stringToRgba = function (str) {\n // Find positions of opening and closing parentheses.\n var _a = __read$f([NaN, NaN], 2), po = _a[0], pc = _a[1];\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n if (!po && c === '(') {\n po = i;\n }\n else if (c === ')') {\n pc = i;\n break;\n }\n }\n var contents = po && pc && str.substring(po + 1, pc);\n if (!contents) {\n return;\n }\n var parts = contents.split(',');\n var rgba = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n var value = parseFloat(part);\n if (isNaN(value)) {\n return;\n }\n if (part.indexOf('%') >= 0) { // percentage r, g, or b value\n value = Math.max(0, Math.min(100, value));\n value /= 100;\n }\n else {\n if (i === 3) { // alpha component\n value = Math.max(0, Math.min(1, value));\n }\n else { // absolute r, g, or b value\n value = Math.max(0, Math.min(255, value));\n value /= 255;\n }\n }\n rgba.push(value);\n }\n return rgba;\n };\n Color.fromRgbaString = function (str) {\n var rgba = Color.stringToRgba(str);\n if (rgba) {\n if (rgba.length === 3) {\n return new Color(rgba[0], rgba[1], rgba[2]);\n }\n else if (rgba.length === 4) {\n return new Color(rgba[0], rgba[1], rgba[2], rgba[3]);\n }\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#'\n + Color.padHex(Math.round(this.r * 255).toString(16))\n + Color.padHex(Math.round(this.g * 255).toString(16))\n + Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [\n Math.round(this.r * 255),\n Math.round(this.g * 255),\n Math.round(this.b * 255)\n ];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - (S * (1 - f)));\n switch (h >> 0) { // discard the floating point part of the number\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32'\n });\n return Color;\n}());\n\nfunction color (a, b) {\n if (typeof a === 'string') {\n try {\n a = Color.fromString(a);\n }\n catch (e) {\n a = Color.fromArray([0, 0, 0]);\n }\n }\n if (typeof b === 'string') {\n try {\n b = Color.fromString(b);\n }\n catch (e) {\n b = Color.fromArray([0, 0, 0]);\n }\n }\n var red = interpolateNumber(a.r, b.r);\n var green = interpolateNumber(a.g, b.g);\n var blue = interpolateNumber(a.b, b.b);\n var alpha = interpolateNumber(a.a, b.a);\n return function (t) {\n return Color.fromArray([red(t), green(t), blue(t), alpha(t)]).toRgbaString();\n };\n}\n\nfunction interpolateValue (a, b) {\n var t = typeof b;\n var c;\n if (b == null || t === 'boolean') {\n return constant(b);\n }\n if (t === 'number') {\n return interpolateNumber(a, b);\n }\n if (t === 'string') {\n try {\n c = Color.fromString(b);\n b = c;\n return color(a, b);\n }\n catch (e) {\n // return string(a, b);\n }\n }\n if (b instanceof Color) {\n return color(a, b);\n }\n if (b instanceof Date) {\n return date(a, b);\n }\n if (Array.isArray(b)) {\n return array(a, b);\n }\n if (typeof b.valueOf !== 'function' && typeof b.toString !== 'function' || isNaN(b)) {\n return object(a, b);\n }\n return interpolateNumber(a, b);\n}\n\nvar __read$g = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar constant$1 = function (x) { return function () { return x; }; };\nvar identity = function (x) { return x; };\nfunction clamper(domain) {\n var _a;\n var a = domain[0];\n var b = domain[domain.length - 1];\n if (a > b) {\n _a = __read$g([b, a], 2), a = _a[0], b = _a[1];\n }\n return function (x) { return Math.max(a, Math.min(b, x)); };\n}\nvar ContinuousScale = /** @class */ (function () {\n function ContinuousScale() {\n /**\n * The output value of the scale for `undefined` or `NaN` input values.\n */\n this.unknown = undefined;\n this._clamp = identity;\n this._domain = [0, 1];\n this._range = [0, 1];\n this.transform = identity; // transforms domain value\n this.untransform = identity; // untransforms domain value\n this._interpolate = interpolateValue;\n this.rescale();\n }\n Object.defineProperty(ContinuousScale.prototype, \"clamp\", {\n get: function () {\n return this._clamp !== identity;\n },\n set: function (value) {\n this._clamp = value ? clamper(this.domain) : identity;\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.setDomain = function (values) {\n this._domain = Array.prototype.map.call(values, function (v) { return +v; });\n if (this._clamp !== identity) {\n this._clamp = clamper(this.domain);\n }\n this.rescale();\n };\n ContinuousScale.prototype.getDomain = function () {\n return this._domain.slice();\n };\n Object.defineProperty(ContinuousScale.prototype, \"domain\", {\n get: function () {\n return this.getDomain();\n },\n set: function (values) {\n this.setDomain(values);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"range\", {\n get: function () {\n return this._range.slice();\n },\n set: function (values) {\n this._range = Array.prototype.slice.call(values);\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"interpolate\", {\n get: function () {\n return this._interpolate;\n },\n set: function (value) {\n this._interpolate = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.rescale = function () {\n this.piecewise = this.bimap;\n this.output = undefined;\n this.input = undefined;\n };\n /**\n * Returns a function that converts `x` in `[a, b]` to `t` in `[0, 1]`. Non-clamping.\n * @param a\n * @param b\n */\n ContinuousScale.prototype.normalize = function (a, b) {\n return (b -= (a = +a))\n ? function (x) { return (x - a) / b; }\n : constant$1(isNaN(b) ? NaN : 0.5);\n };\n ContinuousScale.prototype.bimap = function (domain, range, interpolate) {\n var x0 = domain[0];\n var x1 = domain[1];\n var y0 = range[0];\n var y1 = range[1];\n var xt;\n var ty;\n if (x1 < x0) {\n xt = this.normalize(x1, x0);\n ty = interpolate(y1, y0);\n }\n else {\n xt = this.normalize(x0, x1);\n ty = interpolate(y0, y1);\n }\n return function (x) { return ty(xt(x)); }; // domain value x --> t in [0, 1] --> range value y\n };\n ContinuousScale.prototype.convert = function (x) {\n x = +x;\n if (isNaN(x)) {\n return this.unknown;\n }\n else {\n if (!this.output) {\n this.output = this.piecewise(this.domain.map(this.transform), this.range, this.interpolate);\n }\n return this.output(this.transform(this._clamp(x)));\n }\n };\n ContinuousScale.prototype.invert = function (y) {\n if (!this.input) {\n this.input = this.piecewise(this.range, this.domain.map(this.transform), interpolateNumber);\n }\n return this._clamp(this.untransform(this.input(y)));\n };\n return ContinuousScale;\n}());\n\nvar __extends$K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction ticks (a, b, count) {\n var step = tickStep(a, b, count);\n a = Math.ceil(a / step) * step;\n b = Math.floor(b / step) * step + step / 2;\n // Add half a step here so that the array returned by `range` includes the last tick.\n return range(a, b, step);\n}\nvar e10 = Math.sqrt(50);\nvar e5 = Math.sqrt(10);\nvar e2 = Math.sqrt(2);\nfunction tickStep(a, b, count) {\n var rawStep = Math.abs(b - a) / Math.max(0, count);\n var step = Math.pow(10, Math.floor(Math.log(rawStep) / Math.LN10)); // = Math.log10(rawStep)\n var error = rawStep / step;\n if (error >= e10) {\n step *= 10;\n }\n else if (error >= e5) {\n step *= 5;\n }\n else if (error >= e2) {\n step *= 2;\n }\n return b < a ? -step : step;\n}\nfunction tickIncrement(a, b, count) {\n var rawStep = (b - a) / Math.max(0, count);\n var power = Math.floor(Math.log(rawStep) / Math.LN10);\n var error = rawStep / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nvar NumericTicks = /** @class */ (function (_super) {\n __extends$K(NumericTicks, _super);\n function NumericTicks(fractionDigits, elements) {\n var _this = _super.call(this) || this;\n if (elements) {\n for (var i = 0, n = elements.length; i < n; i++) {\n _this[i] = elements[i];\n }\n }\n _this.fractionDigits = fractionDigits;\n return _this;\n }\n return NumericTicks;\n}(Array));\nfunction range(a, b, step) {\n if (step === void 0) { step = 1; }\n var absStep = Math.abs(step);\n var fractionDigits = (absStep > 0 && absStep < 1)\n ? Math.abs(Math.floor(Math.log(absStep) / Math.LN10))\n : 0;\n var f = Math.pow(10, fractionDigits);\n var n = Math.max(0, Math.ceil((b - a) / step)) || 0;\n var values = new NumericTicks(fractionDigits);\n for (var i = 0; i < n; i++) {\n var value = a + step * i;\n values[i] = Math.round(value * f) / f;\n }\n return values;\n}\n\nfunction formatDefault(x, p) {\n var xs = x.toPrecision(p);\n out: for (var n = xs.length, i = 1, i0 = -1, i1 = 0; i < n; ++i) {\n switch (xs[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0) {\n i0 = i;\n }\n i1 = i;\n break;\n case 'e': break out;\n default:\n if (i0 > 0) {\n i0 = 0;\n }\n break;\n }\n }\n return i0 > 0 ? xs.slice(0, i0) + xs.slice(i1 + 1) : xs;\n}\nvar formatTypes = {\n '': formatDefault,\n // Multiply by 100, and then decimal notation with a percent sign.\n '%': function (x, p) { return (x * 100).toFixed(p); },\n // Binary notation, rounded to integer.\n 'b': function (x) { return Math.round(x).toString(2); },\n // Converts the integer to the corresponding unicode character before printing.\n 'c': function (x) { return String(x); },\n // Decimal notation, rounded to integer.\n 'd': formatDecimal,\n // Exponent notation.\n 'e': function (x, p) { return x.toExponential(p); },\n // Fixed point notation.\n 'f': function (x, p) { return x.toFixed(p); },\n // Either decimal or exponent notation, rounded to significant digits.\n 'g': function (x, p) { return x.toPrecision(p); },\n // Octal notation, rounded to integer.\n 'o': function (x) { return Math.round(x).toString(8); },\n // Multiply by 100, round to significant digits, and then decimal notation with a percent sign.\n 'p': function (x, p) { return formatRounded(x * 100, p); },\n // Decimal notation, rounded to significant digits.\n 'r': formatRounded,\n // Decimal notation with a SI prefix, rounded to significant digits.\n 's': formatPrefixAuto,\n // Hexadecimal notation, using upper-case letters, rounded to integer.\n 'X': function (x) { return Math.round(x).toString(16).toUpperCase(); },\n // Hexadecimal notation, using lower-case letters, rounded to integer.\n 'x': function (x) { return Math.round(x).toString(16); }\n};\nvar prefixes = ['y', 'z', 'a', 'f', 'p', 'n', '\\xB5', 'm', '', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n/**\n * [[fill]align][sign][#][0][width][grouping_option][.precision][type]\n */\nvar FormatSpecifier = /** @class */ (function () {\n function FormatSpecifier(specifier) {\n if (specifier instanceof FormatSpecifier) {\n this.fill = specifier.fill;\n this.align = specifier.align;\n this.sign = specifier.sign;\n this.symbol = specifier.symbol;\n this.zero = specifier.zero;\n this.width = specifier.width;\n this.comma = specifier.comma;\n this.precision = specifier.precision;\n this.trim = specifier.trim;\n this.type = specifier.type;\n this.string = specifier.string;\n }\n else {\n this.fill = specifier.fill === undefined ? ' ' : String(specifier.fill);\n this.align = specifier.align === undefined ? '>' : String(specifier.align);\n this.sign = specifier.sign === undefined ? '-' : String(specifier.sign);\n this.symbol = specifier.symbol === undefined ? '' : String(specifier.symbol);\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? '' : String(specifier.type);\n this.string = specifier.string;\n }\n }\n return FormatSpecifier;\n}());\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar formatRegEx = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nvar interpolateRegEx = /(#\\{(.*?)\\})/g;\nfunction makeFormatSpecifier(specifier) {\n if (specifier instanceof FormatSpecifier) {\n return new FormatSpecifier(specifier);\n }\n var found = false;\n var string = specifier.replace(interpolateRegEx, function () {\n if (!found) {\n specifier = arguments[2];\n found = true;\n }\n return '#{}';\n });\n var match = formatRegEx.exec(specifier);\n if (!match) {\n throw new Error(\"Invalid format: \" + specifier);\n }\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10],\n string: found ? string : undefined\n });\n}\nfunction tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count);\n var formatSpecifier = makeFormatSpecifier(specifier == undefined ? ',f' : specifier);\n var precision;\n switch (formatSpecifier.type) {\n case 's': {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (formatSpecifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) {\n formatSpecifier.precision = precision;\n }\n return formatPrefix(formatSpecifier, value);\n }\n case '':\n case 'e':\n case 'g':\n case 'p':\n case 'r': {\n if (formatSpecifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === 'e');\n }\n break;\n }\n case 'f':\n case '%': {\n if (formatSpecifier.precision == null && !isNaN(precision = precisionFixed(step))) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === '%') * 2;\n }\n break;\n }\n }\n return format(formatSpecifier);\n}\nvar prefixExponent;\nfunction formatPrefixAuto(x, p) {\n if (p === void 0) { p = 0; }\n var d = formatDecimalParts(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3;\n var i = exponent - prefixExponent + 1;\n var n = coefficient.length;\n if (i === n) {\n return coefficient;\n }\n else {\n if (i > n) {\n return coefficient + new Array(i - n + 1).join('0');\n }\n if (i > 0) {\n return coefficient.slice(0, i) + '.' + coefficient.slice(i);\n }\n else {\n var parts = formatDecimalParts(x, Math.max(0, p + i - 1));\n return '0.' + new Array(1 - i).join('0') + parts[0]; // less than 1y!\n }\n }\n}\nfunction formatDecimal(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString('en').replace(/,/g, '')\n : x.toString(10);\n}\nfunction formatGroup(grouping, thousands) {\n return function (value, width) {\n var t = [];\n var i = value.length;\n var j = 0;\n var g = grouping[0];\n var length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) {\n g = Math.max(1, width - length);\n }\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) {\n break;\n }\n g = grouping[j = (j + 1) % grouping.length];\n }\n return t.reverse().join(thousands);\n };\n}\nfunction formatNumerals(numerals) {\n return function (value) { return value.replace(/[0-9]/g, function (i) { return numerals[+i]; }); };\n}\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nfunction formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1 = 0; i < n; ++i) {\n switch (s[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0) {\n i0 = i;\n }\n i1 = i;\n break;\n default:\n if (!+s[i]) {\n break out;\n }\n if (i0 > 0) {\n i0 = 0;\n }\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\nfunction formatRounded(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n if (exponent < 0) {\n return '0.' + new Array(-exponent).join('0') + coefficient;\n }\n else {\n if (coefficient.length > exponent + 1) {\n return coefficient.slice(0, exponent + 1) + '.' + coefficient.slice(exponent + 1);\n }\n else {\n return coefficient + new Array(exponent - coefficient.length + 2).join('0');\n }\n }\n}\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns ['123', 0].\nfunction formatDecimalParts(x, p) {\n var sx = p ? x.toExponential(p - 1) : x.toExponential();\n var i = sx.indexOf('e');\n if (i < 0) { // NaN, ±Infinity\n return undefined;\n }\n var coefficient = sx.slice(0, i);\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +sx.slice(i + 1)\n ];\n}\nfunction identity$1(x) {\n return x;\n}\nvar formatDefaultLocale;\nvar format;\nvar formatPrefix;\ndefaultLocale({\n thousands: ',',\n grouping: [3],\n currency: ['$', '']\n});\nfunction defaultLocale(definition) {\n formatDefaultLocale = formatLocale(definition);\n format = formatDefaultLocale.format;\n formatPrefix = formatDefaultLocale.formatPrefix;\n}\nfunction exponent(x) {\n var parts = formatDecimalParts(Math.abs(x));\n if (parts) {\n return parts[1];\n }\n return NaN;\n}\nfunction precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\nfunction precisionPrefix(step, value) {\n var x = Math.floor(exponent(value) / 3);\n x = Math.min(8, x);\n x = Math.max(-8, x);\n return Math.max(0, x * 3 - exponent(Math.abs(step)));\n}\nfunction precisionRound(step, max) {\n step = Math.abs(step);\n max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\nfunction formatLocale(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined\n ? identity$1\n : formatGroup(Array.prototype.map.call(locale.grouping, Number), String(locale.thousands));\n var currencyPrefix = locale.currency === undefined ? '' : String(locale.currency[0]);\n var currencySuffix = locale.currency === undefined ? '' : String(locale.currency[1]);\n var decimal = locale.decimal === undefined ? '.' : String(locale.decimal);\n var numerals = locale.numerals === undefined\n ? identity$1\n : formatNumerals(Array.prototype.map.call(locale.numerals, String));\n var percent = locale.percent === undefined ? '%' : String(locale.percent);\n var minus = locale.minus === undefined ? '\\u2212' : String(locale.minus);\n var nan = locale.nan === undefined ? 'NaN' : String(locale.nan);\n function newFormat(specifier) {\n var formatSpecifier = makeFormatSpecifier(specifier);\n var fill = formatSpecifier.fill;\n var align = formatSpecifier.align;\n var sign = formatSpecifier.sign;\n var symbol = formatSpecifier.symbol;\n var zero = formatSpecifier.zero;\n var width = formatSpecifier.width;\n var comma = formatSpecifier.comma;\n var precision = formatSpecifier.precision;\n var trim = formatSpecifier.trim;\n var type = formatSpecifier.type;\n // The 'n' type is an alias for ',g'.\n if (type === 'n') {\n comma = true;\n type = 'g';\n }\n else if (!formatTypes[type]) { // The '' type, and any invalid type, is an alias for '.12~g'.\n if (precision === undefined) {\n precision = 12;\n }\n trim = true;\n type = 'g';\n }\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === '0' && align === '=')) {\n zero = true;\n fill = '0';\n align = '=';\n }\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === '$' ? currencyPrefix : symbol === '#' && /[boxX]/.test(type) ? '0' + type.toLowerCase() : '';\n var suffix = symbol === '$' ? currencySuffix : /[%p]/.test(type) ? percent : '';\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type];\n var maybeSuffix = /[defgprs%]/.test(type);\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n if (precision === undefined) {\n precision = 6;\n }\n else if (/[gprs]/.test(type)) {\n precision = Math.max(1, Math.min(21, precision));\n }\n else {\n precision = Math.max(0, Math.min(20, precision));\n }\n function format(x) {\n var valuePrefix = prefix;\n var valueSuffix = suffix;\n var value;\n if (type === 'c') {\n valueSuffix = formatType(+x) + valueSuffix;\n value = '';\n }\n else {\n var nx = +x;\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = x < 0 || 1 / nx < 0;\n // Perform the initial formatting.\n value = isNaN(nx) ? nan : formatType(Math.abs(nx), precision);\n // Trim insignificant zeros.\n if (trim) {\n value = formatTrim(value);\n }\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== '+') {\n valueNegative = false;\n }\n // Compute the prefix and suffix.\n var signPrefix = valueNegative\n ? (sign === '(' ? sign : minus)\n : (sign === '-' || sign === '(' ? '' : sign);\n var signSuffix = valueNegative && sign === '(' ? ')' : '';\n valuePrefix = signPrefix + valuePrefix;\n valueSuffix = (type === 's' ? prefixes[8 + prefixExponent / 3] : '') + valueSuffix + signSuffix;\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n for (var i = 0, n = value.length; i < n; i++) {\n var c = value.charCodeAt(i);\n if (48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n // If the fill character is not '0', grouping is applied before padding.\n if (comma && !zero) {\n value = group(value, Infinity);\n }\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length;\n var padding = length < width ? new Array(width - length + 1).join(fill) : '';\n // If the fill character is '0', grouping is applied after padding.\n if (comma && zero) {\n value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity);\n padding = '';\n }\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case '<':\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case '=':\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case '^':\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n var string = formatSpecifier.string;\n if (string) {\n return string.replace(interpolateRegEx, function () { return numerals(value); });\n }\n return numerals(value);\n }\n return format;\n }\n function formatPrefix(specifier, value) {\n var formatSpecifier = makeFormatSpecifier(specifier);\n formatSpecifier.type = 'f';\n var f = newFormat(formatSpecifier);\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3;\n var k = Math.pow(10, -e);\n var prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * +value) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar __extends$L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Maps continuous domain to a continuous range.\n */\nvar LinearScale = /** @class */ (function (_super) {\n __extends$L(LinearScale, _super);\n function LinearScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'linear';\n return _this;\n }\n LinearScale.prototype.ticks = function (count) {\n if (count === void 0) { count = 10; }\n var d = this._domain;\n return ticks(d[0], d[d.length - 1], count);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * @param count Tick count.\n */\n LinearScale.prototype.nice = function (count) {\n if (count === void 0) { count = 10; }\n var d = this.domain;\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var step;\n if (stop < start) {\n step = start;\n start = stop;\n stop = step;\n step = i0;\n i0 = i1;\n i1 = step;\n }\n step = tickIncrement(start, stop, count);\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n }\n else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n this.domain = d;\n }\n else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n this.domain = d;\n }\n };\n LinearScale.prototype.tickFormat = function (count, specifier) {\n var d = this.domain;\n return tickFormat(d[0], d[d.length - 1], count == undefined ? 10 : count, specifier);\n };\n return LinearScale;\n}(ContinuousScale));\n\nvar __extends$M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar t0 = new Date;\nvar t1 = new Date;\n/**\n * The interval methods don't mutate Date parameters.\n */\nvar TimeInterval = /** @class */ (function () {\n function TimeInterval(floor, offset) {\n this._floor = floor;\n this._offset = offset;\n }\n /**\n * Returns a new date representing the latest interval boundary date before or equal to date.\n * For example, `day.floor(date)` typically returns 12:00 AM local time on the given date.\n * @param date\n */\n TimeInterval.prototype.floor = function (date) {\n date = new Date(+date);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the earliest interval boundary date after or equal to date.\n * @param date\n */\n TimeInterval.prototype.ceil = function (date) {\n date = new Date(+date - 1);\n this._floor(date);\n this._offset(date, 1);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the closest interval boundary date to date.\n * @param date\n */\n TimeInterval.prototype.round = function (date) {\n var d0 = this.floor(date);\n var d1 = this.ceil(date);\n var ms = +date;\n return ms - d0.getTime() < d1.getTime() - ms ? d0 : d1;\n };\n /**\n * Returns a new date equal to date plus step intervals.\n * @param date\n * @param step\n */\n TimeInterval.prototype.offset = function (date, step) {\n if (step === void 0) { step = 1; }\n date = new Date(+date);\n this._offset(date, Math.floor(step));\n return date;\n };\n /**\n * Returns an array of dates representing every interval boundary after or equal to start (inclusive) and before stop (exclusive).\n * @param start\n * @param stop\n * @param step\n */\n TimeInterval.prototype.range = function (start, stop, step) {\n if (step === void 0) { step = 1; }\n var range = [];\n start = this.ceil(start);\n step = Math.floor(step);\n if (start > stop || step <= 0) {\n return range;\n }\n var previous;\n do {\n previous = new Date(+start);\n range.push(previous);\n this._offset(start, step);\n this._floor(start);\n } while (previous < start && start < stop);\n return range;\n };\n // Returns an interval that is a subset of this interval.\n // For example, to create an interval that return 1st, 11th, 21st and 31st of each month:\n // day.filter(date => (date.getDate() - 1) % 10 === 0)\n TimeInterval.prototype.filter = function (test) {\n var _this = this;\n var floor = function (date) {\n if (date instanceof Date) {\n _this._floor(date);\n while (!test(date)) {\n date.setTime(date.getTime() - 1);\n _this._floor(date);\n }\n }\n return date;\n };\n var offset = function (date, step) {\n if (date instanceof Date) {\n if (step < 0) {\n while (++step <= 0) {\n do {\n _this._offset(date, -1);\n } while (!test(date));\n }\n }\n else {\n while (--step >= 0) {\n do {\n _this._offset(date, 1);\n } while (!test(date));\n }\n }\n }\n return date;\n };\n return new TimeInterval(floor, offset);\n };\n return TimeInterval;\n}());\nvar CountableTimeInterval = /** @class */ (function (_super) {\n __extends$M(CountableTimeInterval, _super);\n function CountableTimeInterval(floor, offset, count, field) {\n var _this = _super.call(this, floor, offset) || this;\n _this._count = count;\n _this._field = field;\n return _this;\n }\n /**\n * Returns the number of interval boundaries after start (exclusive) and before or equal to end (inclusive).\n * @param start\n * @param end\n */\n CountableTimeInterval.prototype.count = function (start, end) {\n t0.setTime(+start);\n t1.setTime(+end);\n this._floor(t0);\n this._floor(t1);\n return Math.floor(this._count(t0, t1));\n };\n /**\n * Returns a filtered view of this interval representing every step'th date.\n * The meaning of step is dependent on this interval’s parent interval as defined by the `field` function.\n * @param step\n */\n CountableTimeInterval.prototype.every = function (step) {\n var _this = this;\n var result;\n step = Math.floor(step);\n if (isFinite(step) && step > 0) {\n if (step > 1) {\n var field_1 = this._field;\n if (field_1) {\n result = this.filter(function (d) { return field_1(d) % step === 0; });\n }\n else {\n result = this.filter(function (d) { return _this.count(0, d) % step === 0; });\n }\n }\n else {\n result = this;\n }\n }\n return result;\n };\n return CountableTimeInterval;\n}(TimeInterval));\n\nfunction floor(date) {\n return date;\n}\nfunction offset(date, milliseconds) {\n date.setTime(date.getTime() + milliseconds);\n}\nfunction count(start, end) {\n return end.getTime() - start.getTime();\n}\nvar millisecond = new CountableTimeInterval(floor, offset, count);\n\n// Common time unit sizes in milliseconds.\nvar durationSecond = 1000;\nvar durationMinute = durationSecond * 60;\nvar durationHour = durationMinute * 60;\nvar durationDay = durationHour * 24;\nvar durationWeek = durationDay * 7;\nvar durationMonth = durationDay * 30;\nvar durationYear = durationDay * 365;\n\nfunction floor$1(date) {\n date.setTime(date.getTime() - date.getMilliseconds());\n}\nfunction offset$1(date, seconds) {\n date.setTime(date.getTime() + seconds * durationSecond);\n}\nfunction count$1(start, end) {\n return (end.getTime() - start.getTime()) / durationSecond;\n}\nvar second = new CountableTimeInterval(floor$1, offset$1, count$1);\n\nfunction floor$2(date) {\n date.setTime(date.getTime() - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}\nfunction offset$2(date, minutes) {\n date.setTime(date.getTime() + minutes * durationMinute);\n}\nfunction count$2(start, end) {\n return (end.getTime() - start.getTime()) / durationMinute;\n}\nfunction field(date) {\n return date.getMinutes();\n}\nvar minute = new CountableTimeInterval(floor$2, offset$2, count$2, field);\n\nfunction floor$3(date) {\n date.setTime(date.getTime() - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}\nfunction offset$3(date, hours) {\n date.setTime(date.getTime() + hours * durationHour);\n}\nfunction count$3(start, end) {\n return (end.getTime() - start.getTime()) / durationHour;\n}\nfunction field$1(date) {\n return date.getHours();\n}\nvar hour = new CountableTimeInterval(floor$3, offset$3, count$3, field$1);\n\nfunction floor$4(date) {\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$4(date, days) {\n date.setDate(date.getDate() + days);\n}\nfunction count$4(start, end) {\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (end.getTime() - start.getTime() - tzMinuteDelta * durationMinute) / durationDay;\n}\nfunction field$2(date) {\n return date.getDate() - 1;\n}\nvar day = new CountableTimeInterval(floor$4, offset$4, count$4, field$2);\n\n// Set date to n-th day of the week.\nfunction weekday(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n // 1..31 1..7\n date.setDate(date.getDate() - (date.getDay() + 7 - n) % 7);\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setDate(date.getDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n var msDelta = end.getTime() - start.getTime();\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (msDelta - tzMinuteDelta * durationMinute) / durationWeek;\n }\n return new CountableTimeInterval(floor, offset, count);\n}\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nfunction floor$5(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$5(date, months) {\n date.setMonth(date.getMonth() + months);\n}\nfunction count$5(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}\nfunction field$3(date) {\n return date.getMonth();\n}\nvar month = new CountableTimeInterval(floor$5, offset$5, count$5, field$3);\n\nfunction floor$6(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$6(date, years) {\n date.setFullYear(date.getFullYear() + years);\n}\nfunction count$6(start, end) {\n return end.getFullYear() - start.getFullYear();\n}\nfunction field$4(date) {\n return date.getFullYear();\n}\nvar year = new CountableTimeInterval(floor$6, offset$6, count$6, field$4);\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction complexBisectRight(list, x, map, lo, hi) {\n if (lo === void 0) { lo = 0; }\n if (hi === void 0) { hi = list.length; }\n var comparator = ascendingComparator(map);\n while (lo < hi) {\n var mid = (lo + hi) >>> 1;\n if (comparator(list[mid], x) < 0) {\n lo = mid + 1;\n }\n else {\n hi = mid;\n }\n }\n return lo;\n}\nfunction ascendingComparator(map) {\n return function (item, x) {\n return ascending(map(item), x);\n };\n}\n\nfunction floor$7(date) {\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$7(date, days) {\n date.setUTCDate(date.getUTCDate() + days);\n}\nfunction count$7(start, end) {\n return (end.getTime() - start.getTime()) / durationDay;\n}\nfunction field$5(date) {\n return date.getUTCDate() - 1;\n}\nvar utcDay = new CountableTimeInterval(floor$7, offset$7, count$7, field$5);\n\nfunction floor$8(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$8(date, years) {\n date.setUTCFullYear(date.getUTCFullYear() + years);\n}\nfunction count$8(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}\nfunction field$6(date) {\n return date.getUTCFullYear();\n}\nvar utcYear = new CountableTimeInterval(floor$8, offset$8, count$8, field$6);\n\n// Set date to n-th day of the week.\nfunction weekday$1(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - n) % 7);\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setUTCDate(date.getUTCDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n return (end.getTime() - start.getTime()) / durationWeek;\n }\n return new CountableTimeInterval(floor, offset, count);\n}\nvar utcSunday = weekday$1(0);\nvar utcMonday = weekday$1(1);\nvar utcTuesday = weekday$1(2);\nvar utcWednesday = weekday$1(3);\nvar utcThursday = weekday$1(4);\nvar utcFriday = weekday$1(5);\nvar utcSaturday = weekday$1(6);\n\nfunction localDate(d) {\n // For JS Dates the [0, 100) interval is a time warp, a fast forward to the 20th century.\n // For example, -1 is -0001 BC, 0 is already 1900 AD.\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\nfunction utcDate(d) {\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n/**\n * Creates a lookup map for array of names to go from a name to index.\n * @param names\n */\nfunction formatLookup(names) {\n var map = {};\n for (var i = 0, n = names.length; i < n; i++) {\n map[names[i].toLowerCase()] = i;\n }\n return map;\n}\nfunction newYear(y) {\n return {\n y: y,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\nvar percentCharCode = 37;\nvar numberRe = /^\\s*\\d+/; // ignores next directive\nvar percentRe = /^%/;\nvar requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n/**\n * Prepends any character in the `requoteRe` set with a backslash.\n * @param s\n */\nvar requote = function (s) { return s.replace(requoteRe, '\\\\$&'); }; // $& - matched substring\n/**\n * Returns a RegExp that matches any string that starts with any of the given names (case insensitive).\n * @param names\n */\nvar formatRe = function (names) { return new RegExp('^(?:' + names.map(requote).join('|') + ')', 'i'); };\n// A map of padding modifiers to padding strings. Default is `0`.\nvar pads = {\n '-': '',\n '_': ' ',\n '0': '0'\n};\nfunction pad(value, fill, width) {\n var sign = value < 0 ? '-' : '';\n var string = String(sign ? -value : value);\n var length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n/**\n * Create a new time-locale-based object which exposes time-formatting\n * methods for the specified locale definition.\n *\n * @param timeLocale A time locale definition.\n */\nfunction formatLocale$1(timeLocale) {\n var lDateTime = timeLocale.dateTime;\n var lDate = timeLocale.date;\n var lTime = timeLocale.time;\n var lPeriods = timeLocale.periods;\n var lWeekdays = timeLocale.days;\n var lShortWeekdays = timeLocale.shortDays;\n var lMonths = timeLocale.months;\n var lShortMonths = timeLocale.shortMonths;\n var periodRe = formatRe(lPeriods);\n var periodLookup = formatLookup(lPeriods);\n var weekdayRe = formatRe(lWeekdays);\n var weekdayLookup = formatLookup(lWeekdays);\n var shortWeekdayRe = formatRe(lShortWeekdays);\n var shortWeekdayLookup = formatLookup(lShortWeekdays);\n var monthRe = formatRe(lMonths);\n var monthLookup = formatLookup(lMonths);\n var shortMonthRe = formatRe(lShortMonths);\n var shortMonthLookup = formatLookup(lShortMonths);\n var formats = {\n 'a': formatShortWeekday,\n 'A': formatWeekday,\n 'b': formatShortMonth,\n 'B': formatMonth,\n 'c': undefined,\n 'd': formatDayOfMonth,\n 'e': formatDayOfMonth,\n 'f': formatMicroseconds,\n 'H': formatHour24,\n 'I': formatHour12,\n 'j': formatDayOfYear,\n 'L': formatMilliseconds,\n 'm': formatMonthNumber,\n 'M': formatMinutes,\n 'p': formatPeriod,\n 'Q': formatUnixTimestamp,\n 's': formatUnixTimestampSeconds,\n 'S': formatSeconds,\n 'u': formatWeekdayNumberMonday,\n 'U': formatWeekNumberSunday,\n 'V': formatWeekNumberISO,\n 'w': formatWeekdayNumberSunday,\n 'W': formatWeekNumberMonday,\n 'x': undefined,\n 'X': undefined,\n 'y': formatYear,\n 'Y': formatFullYear,\n 'Z': formatZone,\n '%': formatLiteralPercent\n };\n var utcFormats = {\n 'a': formatUTCShortWeekday,\n 'A': formatUTCWeekday,\n 'b': formatUTCShortMonth,\n 'B': formatUTCMonth,\n 'c': undefined,\n 'd': formatUTCDayOfMonth,\n 'e': formatUTCDayOfMonth,\n 'f': formatUTCMicroseconds,\n 'H': formatUTCHour24,\n 'I': formatUTCHour12,\n 'j': formatUTCDayOfYear,\n 'L': formatUTCMilliseconds,\n 'm': formatUTCMonthNumber,\n 'M': formatUTCMinutes,\n 'p': formatUTCPeriod,\n 'Q': formatUnixTimestamp,\n 's': formatUnixTimestampSeconds,\n 'S': formatUTCSeconds,\n 'u': formatUTCWeekdayNumberMonday,\n 'U': formatUTCWeekNumberSunday,\n 'V': formatUTCWeekNumberISO,\n 'w': formatUTCWeekdayNumberSunday,\n 'W': formatUTCWeekNumberMonday,\n 'x': undefined,\n 'X': undefined,\n 'y': formatUTCYear,\n 'Y': formatUTCFullYear,\n 'Z': formatUTCZone,\n '%': formatLiteralPercent\n };\n var parses = {\n 'a': parseShortWeekday,\n 'A': parseWeekday,\n 'b': parseShortMonth,\n 'B': parseMonth,\n 'c': parseLocaleDateTime,\n 'd': parseDayOfMonth,\n 'e': parseDayOfMonth,\n 'f': parseMicroseconds,\n 'H': parseHour24,\n 'I': parseHour24,\n 'j': parseDayOfYear,\n 'L': parseMilliseconds,\n 'm': parseMonthNumber,\n 'M': parseMinutes,\n 'p': parsePeriod,\n 'Q': parseUnixTimestamp,\n 's': parseUnixTimestampSeconds,\n 'S': parseSeconds,\n 'u': parseWeekdayNumberMonday,\n 'U': parseWeekNumberSunday,\n 'V': parseWeekNumberISO,\n 'w': parseWeekdayNumberSunday,\n 'W': parseWeekNumberMonday,\n 'x': parseLocaleDate,\n 'X': parseLocaleTime,\n 'y': parseYear,\n 'Y': parseFullYear,\n 'Z': parseZone,\n '%': parseLiteralPercent\n };\n // Recursive definitions.\n formats.x = newFormat(lDate, formats);\n formats.X = newFormat(lTime, formats);\n formats.c = newFormat(lDateTime, formats);\n utcFormats.x = newFormat(lDate, utcFormats);\n utcFormats.X = newFormat(lTime, utcFormats);\n utcFormats.c = newFormat(lDateTime, utcFormats);\n function newParse(specifier, newDate) {\n return function (str) {\n var d = newYear(1900);\n var i = parseSpecifier(d, specifier, str += '', 0);\n if (i != str.length) {\n return undefined;\n }\n // If a UNIX timestamp is specified, return it.\n if ('Q' in d) {\n return new Date(d.Q);\n }\n // The am-pm flag is 0 for AM, and 1 for PM.\n if ('p' in d) {\n d.H = d.H % 12 + d.p * 12;\n }\n // Convert day-of-week and week-of-year to day-of-year.\n if ('V' in d) {\n if (d.V < 1 || d.V > 53) {\n return undefined;\n }\n if (!('w' in d)) {\n d.w = 1;\n }\n if ('Z' in d) {\n var week = utcDate(newYear(d.y));\n var day$1 = week.getUTCDay();\n week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday.floor(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n }\n else {\n var week = newDate(newYear(d.y));\n var day$1 = week.getDay();\n week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday.floor(week);\n week = day.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n }\n else if ('W' in d || 'U' in d) {\n if (!('w' in d)) {\n d.w = 'u' in d\n ? d.u % 7\n : 'W' in d ? 1 : 0;\n }\n var day$1 = 'Z' in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = 'W' in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7;\n }\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if ('Z' in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n /**\n * Creates a new function that formats the given Date or timestamp according to specifier.\n * @param specifier\n * @param formats\n */\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [];\n var n = specifier.length;\n var i = -1;\n var j = 0;\n if (!(date instanceof Date)) {\n date = new Date(+date);\n }\n while (++i < n) {\n if (specifier.charCodeAt(i) === percentCharCode) {\n string.push(specifier.slice(j, i)); // copy the chunks of specifier with no directives as is\n var c = specifier.charAt(++i);\n var pad_1 = pads[c];\n if (pad_1 != undefined) { // if format directive has a padding modifier in front of it\n c = specifier.charAt(++i); // fetch the directive itself\n }\n else {\n pad_1 = c === 'e' ? ' ' : '0'; // use the default padding modifier\n }\n var format = formats[c];\n if (format) { // if the directive has a corresponding formatting function\n c = format(date, pad_1); // replace the directive with the formatted date\n }\n string.push(c);\n j = i + 1;\n }\n }\n string.push(specifier.slice(j, i));\n return string.join('');\n };\n }\n // Simultaneously walks over the specifier and the parsed string, populating the `d` map with parsed values.\n // The returned number is expected to equal the length of the parsed `string`, if parsing succeeded.\n function parseSpecifier(d, specifier, string, j) {\n // i - `specifier` string index\n // j - parsed `string` index\n var i = 0;\n var n = specifier.length;\n var m = string.length;\n while (i < n) {\n if (j >= m) {\n return -1;\n }\n var code = specifier.charCodeAt(i++);\n if (code === percentCharCode) {\n var char = specifier.charAt(i++);\n var parse = parses[(char in pads ? specifier.charAt(i++) : char)];\n if (!parse || ((j = parse(d, string, j)) < 0)) {\n return -1;\n }\n }\n else if (code != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n // ----------------------------- formats ----------------------------------\n function formatMicroseconds(date, fill) {\n return formatMilliseconds(date, fill) + '000';\n }\n function formatMilliseconds(date, fill) {\n return pad(date.getMilliseconds(), fill, 3);\n }\n function formatSeconds(date, fill) {\n return pad(date.getSeconds(), fill, 2);\n }\n function formatMinutes(date, fill) {\n return pad(date.getMinutes(), fill, 2);\n }\n function formatHour12(date, fill) {\n return pad(date.getHours() % 12 || 12, fill, 2);\n }\n function formatHour24(date, fill) {\n return pad(date.getHours(), fill, 2);\n }\n function formatPeriod(date) {\n return lPeriods[date.getHours() >= 12 ? 1 : 0];\n }\n function formatShortWeekday(date) {\n return lShortWeekdays[date.getDay()];\n }\n function formatWeekday(date) {\n return lWeekdays[date.getDay()];\n }\n function formatWeekdayNumberMonday(date) {\n var dayOfWeek = date.getDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatWeekNumberSunday(date, fill) {\n return pad(sunday.count(year.floor(date), date), fill, 2);\n }\n function formatWeekNumberISO(date, fill) {\n var day = date.getDay();\n date = (day >= 4 || day === 0) ? thursday.floor(date) : thursday.ceil(date);\n var yearStart = year.floor(date);\n return pad(thursday.count(yearStart, date) + (yearStart.getDay() === 4 ? 1 : 0), fill, 2);\n }\n function formatWeekdayNumberSunday(date) {\n return date.getDay();\n }\n function formatWeekNumberMonday(date, fill) {\n return pad(monday.count(year.floor(date), date), fill, 2);\n }\n function formatDayOfMonth(date, fill) {\n return pad(date.getDate(), fill, 2);\n }\n function formatDayOfYear(date, fill) {\n return pad(1 + day.count(year.floor(date), date), fill, 3);\n }\n function formatShortMonth(date) {\n return lShortMonths[date.getMonth()];\n }\n function formatMonth(date) {\n return lMonths[date.getMonth()];\n }\n function formatMonthNumber(date, fill) {\n return pad(date.getMonth() + 1, fill, 2);\n }\n function formatYear(date, fill) {\n return pad(date.getFullYear() % 100, fill, 2);\n }\n function formatFullYear(date, fill) {\n return pad(date.getFullYear() % 10000, fill, 4);\n }\n function formatZone(date) {\n var z = date.getTimezoneOffset();\n return (z > 0 ? '-' : (z *= -1, '+')) + pad(Math.floor(z / 60), '0', 2) + pad(z % 60, '0', 2);\n }\n // -------------------------- UTC formats -----------------------------------\n function formatUTCMicroseconds(date, fill) {\n return formatUTCMilliseconds(date, fill) + '000';\n }\n function formatUTCMilliseconds(date, fill) {\n return pad(date.getUTCMilliseconds(), fill, 3);\n }\n function formatUTCSeconds(date, fill) {\n return pad(date.getUTCSeconds(), fill, 2);\n }\n function formatUTCMinutes(date, fill) {\n return pad(date.getUTCMinutes(), fill, 2);\n }\n function formatUTCHour12(date, fill) {\n return pad(date.getUTCHours() % 12 || 12, fill, 2);\n }\n function formatUTCHour24(date, fill) {\n return pad(date.getUTCHours(), fill, 2);\n }\n function formatUTCPeriod(date) {\n return lPeriods[date.getUTCHours() >= 12 ? 1 : 0];\n }\n function formatUTCDayOfMonth(date, fill) {\n return pad(date.getUTCDate(), fill, 2);\n }\n function formatUTCDayOfYear(date, fill) {\n return pad(1 + utcDay.count(utcYear.floor(date), date), fill, 3);\n }\n function formatUTCMonthNumber(date, fill) {\n return pad(date.getUTCMonth() + 1, fill, 2);\n }\n function formatUTCShortMonth(date) {\n return lShortMonths[date.getUTCMonth()];\n }\n function formatUTCMonth(date) {\n return lMonths[date.getUTCMonth()];\n }\n function formatUTCShortWeekday(date) {\n return lShortWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekday(date) {\n return lWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekdayNumberMonday(date) {\n var dayOfWeek = date.getUTCDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatUTCWeekNumberSunday(date, fill) {\n return pad(utcSunday.count(utcYear.floor(date), date), fill, 2);\n }\n function formatUTCWeekNumberISO(date, fill) {\n var day = date.getUTCDay();\n date = (day >= 4 || day === 0) ? utcThursday.floor(date) : utcThursday.ceil(date);\n var yearStart = utcYear.floor(date);\n return pad(utcThursday.count(yearStart, date) + (yearStart.getUTCDay() === 4 ? 1 : 0), fill, 4);\n }\n function formatUTCWeekdayNumberSunday(date) {\n return date.getUTCDay();\n }\n function formatUTCWeekNumberMonday(date, fill) {\n return pad(utcMonday.count(utcYear.floor(date), date), fill, 2);\n }\n function formatUTCYear(date, fill) {\n return pad(date.getUTCFullYear() % 100, fill, 2);\n }\n function formatUTCFullYear(date, fill) {\n return pad(date.getUTCFullYear() % 10000, fill, 4);\n }\n function formatUTCZone() {\n return '+0000';\n }\n function formatLiteralPercent(date) {\n return '%';\n }\n function formatUnixTimestamp(date) {\n return date.getTime();\n }\n function formatUnixTimestampSeconds(date) {\n return Math.floor(date.getTime() / 1000);\n }\n // ------------------------------- parsers ------------------------------------\n function parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(parseFloat(n[0]) / 1000), i + n[0].length) : -1;\n }\n function parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n }\n function parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n }\n function parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n }\n function parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n }\n function parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n }\n function parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = parseFloat(n[0]) - 1, i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, lDateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, lDate, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, lTime, string, i);\n }\n function parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n }\n function parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n }\n function parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n }\n function parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n }\n function parseZone(d, string, i) {\n var n = /^(Z)|^([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || '00')), i + n[0].length) : -1;\n }\n function parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n return {\n format: function (specifier) {\n var f = newFormat(specifier, formats);\n f.toString = function () { return specifier; };\n return f;\n },\n parse: function (specifier) {\n var p = newParse(specifier, localDate);\n p.toString = function () { return specifier; };\n return p;\n },\n utcFormat: function (specifier) {\n var f = newFormat(specifier, utcFormats);\n f.toString = function () { return specifier; };\n return f;\n },\n utcParse: function (specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function () { return specifier; };\n return p;\n }\n };\n}\n\nvar locale;\nsetDefaultLocale({\n dateTime: '%x, %X',\n date: '%-m/%-d/%Y',\n time: '%-I:%M:%S %p',\n periods: ['AM', 'PM'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n});\nfunction setDefaultLocale(definition) {\n return locale = formatLocale$1(definition);\n}\n\nvar __extends$N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$h = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar TimeScale = /** @class */ (function (_super) {\n __extends$N(TimeScale, _super);\n function TimeScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'time';\n _this.year = year;\n _this.month = month;\n _this.week = sunday;\n _this.day = day;\n _this.hour = hour;\n _this.minute = minute;\n _this.second = second;\n _this.millisecond = millisecond;\n _this.format = locale.format;\n /**\n * Array of default tick intervals in the following format:\n *\n * [\n * interval (unit of time),\n * number of units (step),\n * the length of that number of units in milliseconds\n * ]\n */\n _this.tickIntervals = [\n [_this.second, 1, durationSecond],\n [_this.second, 5, 5 * durationSecond],\n [_this.second, 15, 15 * durationSecond],\n [_this.second, 30, 30 * durationSecond],\n [_this.minute, 1, durationMinute],\n [_this.minute, 5, 5 * durationMinute],\n [_this.minute, 15, 15 * durationMinute],\n [_this.minute, 30, 30 * durationMinute],\n [_this.hour, 1, durationHour],\n [_this.hour, 3, 3 * durationHour],\n [_this.hour, 6, 6 * durationHour],\n [_this.hour, 12, 12 * durationHour],\n [_this.day, 1, durationDay],\n [_this.day, 2, 2 * durationDay],\n [_this.week, 1, durationWeek],\n [_this.month, 1, durationMonth],\n [_this.month, 3, 3 * durationMonth],\n [_this.year, 1, durationYear]\n ];\n _this.formatMillisecond = _this.format('.%L');\n _this.formatSecond = _this.format(':%S');\n _this.formatMinute = _this.format('%I:%M');\n _this.formatHour = _this.format('%I %p');\n _this.formatDay = _this.format('%a %d');\n _this.formatWeek = _this.format('%b %d');\n _this.formatMonth = _this.format('%B');\n _this.formatYear = _this.format('%Y');\n _this._domain = [new Date(2000, 0, 1), new Date(2000, 0, 2)];\n return _this;\n }\n TimeScale.prototype.defaultTickFormat = function (date) {\n return (this.second.floor(date) < date\n ? this.formatMillisecond\n : this.minute.floor(date) < date\n ? this.formatSecond\n : this.hour.floor(date) < date\n ? this.formatMinute\n : this.day.floor(date) < date\n ? this.formatHour\n : this.month.floor(date) < date\n ? (this.week.floor(date) < date ? this.formatDay : this.formatWeek)\n : this.year.floor(date) < date\n ? this.formatMonth\n : this.formatYear)(date);\n };\n /**\n *\n * @param interval If the `interval` is a number, it's interpreted as the desired tick count\n * and the method tries to pick an appropriate interval automatically, based on the extent of the domain.\n * If the `interval` is `undefined`, it defaults to `10`.\n * If the `interval` is a time interval, simply use it.\n * @param start The start time (timestamp).\n * @param stop The end time (timestamp).\n * @param step Number of intervals between ticks.\n */\n TimeScale.prototype.tickInterval = function (interval, start, stop, step) {\n var _a;\n if (typeof interval === 'number') {\n var tickCount = interval;\n var tickIntervals = this.tickIntervals;\n var target = Math.abs(stop - start) / tickCount;\n var i = complexBisectRight(tickIntervals, target, function (interval) { return interval[2]; });\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, tickCount);\n interval = this.year;\n }\n else if (i) {\n _a = __read$h(tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i], 2), interval = _a[0], step = _a[1];\n }\n else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = this.millisecond;\n }\n }\n return step == undefined ? interval : interval.every(step);\n };\n Object.defineProperty(TimeScale.prototype, \"domain\", {\n get: function () {\n return _super.prototype.getDomain.call(this).map(function (t) { return new Date(t); });\n },\n set: function (values) {\n _super.prototype.setDomain.call(this, Array.prototype.map.call(values, function (t) { return t instanceof Date ? +t : +new Date(+t); }));\n },\n enumerable: true,\n configurable: true\n });\n TimeScale.prototype.invert = function (y) {\n return new Date(_super.prototype.invert.call(this, y));\n };\n /**\n * Returns uniformly-spaced dates that represent the scale's domain.\n * @param interval The desired tick count or a time interval object.\n */\n TimeScale.prototype.ticks = function (interval) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var t0 = d[0];\n var t1 = d[d.length - 1];\n var reverse = t1 < t0;\n if (reverse) {\n var _ = t0;\n t0 = t1;\n t1 = _;\n }\n var t = this.tickInterval(interval, t0, t1);\n var i = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return reverse ? i.reverse() : i;\n };\n /**\n * Returns a time format function suitable for displaying tick values.\n * @param count Ignored. Used only to satisfy the {@link Scale} interface.\n * @param specifier If the specifier string is provided, this method is equivalent to\n * the {@link TimeLocaleObject.format} method.\n * If no specifier is provided, this method returns the default time format function.\n */\n TimeScale.prototype.tickFormat = function (count, specifier) {\n return specifier == undefined ? this.defaultTickFormat.bind(this) : this.format(specifier);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.\n * @param interval\n */\n TimeScale.prototype.nice = function (interval) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var i = this.tickInterval(interval, d[0], d[d.length - 1]);\n if (i) {\n this.domain = this._nice(d, i);\n }\n };\n TimeScale.prototype._nice = function (domain, interval) {\n var _a, _b;\n domain = domain.slice();\n var i0 = 0;\n var i1 = domain.length - 1;\n var x0 = domain[i0];\n var x1 = domain[i1];\n if (x1 < x0) {\n _a = __read$h([i1, i0], 2), i0 = _a[0], i1 = _a[1];\n _b = __read$h([x1, x0], 2), x0 = _b[0], x1 = _b[1];\n }\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n };\n return TimeScale;\n}(ContinuousScale));\n\nvar __values$2 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction identity$2(value) {\n return value;\n}\nfunction extent(values, predicate, map) {\n var transform = map || identity$2;\n var n = values.length;\n var i = -1;\n var value;\n var min;\n var max;\n while (++i < n) { // Find the first value.\n value = values[i];\n if (predicate(value)) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n value = values[i];\n if (predicate(value)) {\n if (min > value) {\n min = value;\n }\n if (max < value) {\n max = value;\n }\n }\n }\n }\n }\n return min === undefined || max === undefined ? undefined : [transform(min), transform(max)];\n}\n\nvar __extends$O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values$3 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SparklineAxis = /** @class */ (function (_super) {\n __extends$O(SparklineAxis, _super);\n function SparklineAxis() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'category';\n _this.stroke = 'rgb(204, 214, 235)';\n _this.strokeWidth = 1;\n return _this;\n }\n return SparklineAxis;\n}(Observable));\nvar Sparkline = /** @class */ (function (_super) {\n __extends$O(Sparkline, _super);\n function Sparkline() {\n var _this = _super.call(this) || this;\n _this.id = createId(_this);\n _this.seriesRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n _this._context = undefined;\n _this._container = undefined;\n _this._data = undefined;\n _this.padding = new Padding(3);\n _this.xKey = 'x';\n _this.yKey = 'y';\n _this.dataType = undefined;\n _this.xData = [];\n _this.yData = [];\n // Minimum y value in provided data.\n _this.min = undefined;\n // Maximum y value in provided data.\n _this.max = undefined;\n _this.yScale = new LinearScale();\n _this.axis = new SparklineAxis();\n _this.highlightStyle = {\n size: 6,\n fill: 'yellow',\n stroke: 'silver',\n strokeWidth: 1,\n };\n _this._width = 100;\n _this._height = 100;\n _this.smallestInterval = undefined;\n _this.layoutId = 0;\n _this.defaultDateFormatter = locale.format('%m/%d/%y, %H:%M:%S');\n _this._onMouseMove = _this.onMouseMove.bind(_this);\n _this._onMouseOut = _this.onMouseOut.bind(_this);\n var root = new Group();\n _this.rootGroup = root;\n var element = document.createElement('div');\n element.setAttribute('class', 'ag-sparkline-wrapper');\n var scene = new Scene(document);\n _this.scene = scene;\n _this.canvasElement = scene.canvas.element;\n scene.root = root;\n scene.container = element;\n scene.resize(_this.width, _this.height);\n _this.seriesRect.width = _this.width;\n _this.seriesRect.height = _this.height;\n // one style element for tooltip styles per document\n if (Sparkline.tooltipDocuments.indexOf(document) === -1) {\n var styleElement = document.createElement('style');\n styleElement.innerHTML = defaultTooltipCss;\n document.head.insertBefore(styleElement, document.head.querySelector('style'));\n Sparkline.tooltipDocuments.push(document);\n }\n _this.setupDomEventListeners(_this.scene.canvas.element);\n return _this;\n }\n Object.defineProperty(Sparkline.prototype, \"context\", {\n get: function () {\n return this._context;\n },\n set: function (value) {\n if (this._context !== value) {\n this._context = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n var parentNode = this.canvasElement.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.canvasElement);\n }\n if (value) {\n value.appendChild(this.canvasElement);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (value) {\n if (this._data !== value) {\n this._data = value;\n this.processData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.scene.resize(value, this.height);\n this.scheduleLayout();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.scene.resize(this.width, value);\n this.scheduleLayout();\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Generate node data from processed data.\n * Produce data joins.\n * Update selection's nodes using node data.\n */\n Sparkline.prototype.update = function () { };\n // Update y scale based on processed data.\n Sparkline.prototype.updateYScale = function () {\n this.updateYScaleRange();\n this.updateYScaleDomain();\n };\n // Update y scale domain based on processed data.\n Sparkline.prototype.updateYScaleDomain = function () { };\n // Update y scale range based on height and padding (seriesRect).\n Sparkline.prototype.updateYScaleRange = function () {\n var _a = this, yScale = _a.yScale, seriesRect = _a.seriesRect;\n yScale.range = [seriesRect.height, 0];\n };\n // Update x scale based on processed data.\n Sparkline.prototype.updateXScale = function () {\n var type = this.axis.type;\n this.xScale = this.getXScale(type);\n this.updateXScaleRange();\n this.updateXScaleDomain();\n };\n // Update x scale range based on width and padding (seriesRect).\n Sparkline.prototype.updateXScaleRange = function () {\n this.xScale.range = [0, this.seriesRect.width];\n };\n // Update x scale domain based on processed data and type of scale.\n Sparkline.prototype.updateXScaleDomain = function () {\n var _a = this, xData = _a.xData, xScale = _a.xScale;\n var xMinMax;\n if (xScale instanceof LinearScale) {\n xMinMax = extent(xData, isNumber);\n }\n else if (xScale instanceof TimeScale) {\n xMinMax = extent(xData, isContinuous);\n }\n this.xScale.domain = xMinMax ? xMinMax.slice() : xData;\n };\n /**\n * Return xScale instance based on the provided type or return a `BandScale` by default.\n * The default type is `category`.\n * @param type\n */\n Sparkline.prototype.getXScale = function (type) {\n if (type === void 0) { type = 'category'; }\n switch (type) {\n case 'number':\n return new LinearScale();\n case 'time':\n return new TimeScale();\n case 'category':\n default:\n return new BandScale();\n }\n };\n // Update axis line.\n Sparkline.prototype.updateAxisLine = function () { };\n // Update X and Y scales and the axis line.\n Sparkline.prototype.updateAxes = function () {\n this.updateYScale();\n this.updateXScale();\n this.updateAxisLine();\n };\n // Update horizontal and vertical crosshair lines.\n Sparkline.prototype.updateCrosshairs = function () {\n this.updateXCrosshairLine();\n this.updateYCrosshairLine();\n };\n // Using processed data, generate data that backs visible nodes.\n Sparkline.prototype.generateNodeData = function () {\n return [];\n };\n // Returns persisted node data associated with the sparkline's data.\n Sparkline.prototype.getNodeData = function () {\n return [];\n };\n // Update the selection's nodes.\n Sparkline.prototype.updateNodes = function () { };\n // Update the vertical crosshair line.\n Sparkline.prototype.updateXCrosshairLine = function () { };\n // Update the horizontal crosshair line.\n Sparkline.prototype.updateYCrosshairLine = function () { };\n Sparkline.prototype.highlightDatum = function (closestDatum) {\n this.updateNodes();\n };\n Sparkline.prototype.dehighlightDatum = function () {\n this.highlightedDatum = undefined;\n this.updateNodes();\n this.updateCrosshairs();\n };\n /**\n * Highlight closest datum and display tooltip if enabled.\n * Only update if necessary, i.e. only update if the highlighted datum is different from previously highlighted datum,\n * or if there is no previously highlighted datum.\n * @param event\n */\n Sparkline.prototype.onMouseMove = function (event) {\n var closestDatum = this.pickClosestSeriesNodeDatum(event.offsetX, event.offsetY);\n if (!closestDatum) {\n return;\n }\n var oldHighlightedDatum = this.highlightedDatum;\n this.highlightedDatum = closestDatum;\n if ((this.highlightedDatum && !oldHighlightedDatum) ||\n (this.highlightedDatum && oldHighlightedDatum && this.highlightedDatum !== oldHighlightedDatum)) {\n this.highlightDatum(closestDatum);\n this.updateCrosshairs();\n }\n if (this.tooltip.enabled) {\n this.handleTooltip(event, closestDatum);\n }\n };\n /**\n * Dehighlight all nodes and remove tooltip.\n * @param event\n */\n Sparkline.prototype.onMouseOut = function (event) {\n this.dehighlightDatum();\n this.tooltip.toggle(false);\n };\n // Fetch required values from the data object and process them.\n Sparkline.prototype.processData = function () {\n var _this = this;\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData;\n if (!data || this.invalidData(this.data)) {\n return;\n }\n yData.length = 0;\n xData.length = 0;\n var n = data.length;\n var dataType = this.getDataType(data);\n this.dataType = dataType;\n var xValueType = this.axis.type;\n var xType = xValueType !== 'number' && xValueType !== 'time' ? 'category' : xValueType;\n var isContinuousX = xType === 'number' || xType === 'time';\n var setSmallestXInterval = function (curr, prev) {\n if (_this.smallestInterval == undefined) {\n _this.smallestInterval = { x: Infinity, y: Infinity };\n }\n var x = _this.smallestInterval.x;\n var interval = Math.abs(curr - prev);\n if (interval > 0 && interval < x) {\n _this.smallestInterval.x = interval;\n }\n };\n var prevX;\n if (dataType === 'number') {\n for (var i = 0; i < n; i++) {\n var xDatum = i;\n var yDatum = data[i];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n else if (dataType === 'array') {\n for (var i = 0; i < n; i++) {\n var datum = data[i];\n if (Array.isArray(datum)) {\n var xDatum = datum[0];\n var yDatum = datum[1];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (x == undefined) {\n continue;\n }\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n }\n else if (dataType === 'object') {\n var _b = this, yKey = _b.yKey, xKey = _b.xKey;\n for (var i = 0; i < n; i++) {\n var datum = data[i];\n if (typeof datum === 'object' && !Array.isArray(datum)) {\n var xDatum = datum[xKey];\n var yDatum = datum[yKey];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (x == undefined) {\n continue;\n }\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n }\n // update axes\n this.updateAxes();\n // produce data joins and update selection's nodes\n this.update();\n };\n /**\n * Return the type of data provided to the sparkline based on the first truthy value in the data array.\n * If the value is not a number, array or object, return `undefined`.\n * @param data\n */\n Sparkline.prototype.getDataType = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = __values$3(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n if (datum != undefined) {\n if (isNumber(datum)) {\n return 'number';\n }\n else if (Array.isArray(datum)) {\n return 'array';\n }\n else if (typeof datum === 'object') {\n return 'object';\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Return the given value depending on the type of axis.\n * Return `undefined` if the value is invalid for the given axis type.\n * @param value\n */\n Sparkline.prototype.getDatum = function (value, type) {\n if ((type === 'number' && isNumber(value)) || (type === 'time' && (isNumber(value) || isDate(value)))) {\n return value;\n }\n else if (type === 'category') {\n if (isString(value) || isDate(value) || isNumber(value)) {\n return { toString: function () { return String(value); } };\n }\n else if (isStringObject(value)) {\n return value;\n }\n }\n };\n Object.defineProperty(Sparkline.prototype, \"layoutScheduled\", {\n /**\n * Only `true` while we are waiting for the layout to start.\n * This will be `false` if the layout has already started and is ongoing.\n */\n get: function () {\n return !!this.layoutId;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Execute update method on the next available screen repaint to make changes to the canvas.\n * If we are waiting for a layout to start and a new layout is requested,\n * cancel the previous layout using the non 0 integer (this.layoutId) returned from requestAnimationFrame.\n */\n Sparkline.prototype.scheduleLayout = function () {\n var _this = this;\n if (this.layoutId) {\n cancelAnimationFrame(this.layoutId);\n }\n this.layoutId = requestAnimationFrame(function () {\n _this.setSparklineDimensions();\n if (_this.invalidData(_this.data)) {\n return;\n }\n // update axes ranges\n _this.updateXScaleRange();\n _this.updateYScaleRange();\n // update axis line\n _this.updateAxisLine();\n // produce data joins and update selection's nodes\n _this.update();\n _this.layoutId = 0;\n });\n };\n Sparkline.prototype.setSparklineDimensions = function () {\n var _a = this, width = _a.width, height = _a.height, padding = _a.padding, seriesRect = _a.seriesRect, rootGroup = _a.rootGroup;\n var shrunkWidth = width - padding.left - padding.right;\n var shrunkHeight = height - padding.top - padding.bottom;\n seriesRect.width = shrunkWidth;\n seriesRect.height = shrunkHeight;\n seriesRect.x = padding.left;\n seriesRect.y = padding.top;\n rootGroup.translationX = seriesRect.x;\n rootGroup.translationY = seriesRect.y;\n };\n /**\n * Return the closest data point to x/y canvas coordinates.\n * @param x\n * @param y\n */\n Sparkline.prototype.pickClosestSeriesNodeDatum = function (x, y) {\n var minDistance = Infinity;\n var closestDatum;\n var hitPoint = this.rootGroup.transformPoint(x, y);\n var nodeData = this.getNodeData();\n for (var i = 0; i < nodeData.length; i++) {\n var datum = nodeData[i];\n if (!datum.point) {\n return;\n }\n var distance = this.getDistance(hitPoint, datum.point);\n if (distance <= minDistance) {\n minDistance = distance;\n closestDatum = datum;\n }\n else {\n return closestDatum;\n }\n }\n return closestDatum;\n };\n /**\n * Return the relevant distance between two points.\n * The distance will be calculated based on the x value of the points for all sparklines except bar sparkline, where the distance is based on the y values.\n * @param x\n * @param y\n */\n Sparkline.prototype.getDistance = function (p1, p2) {\n return Math.abs(p1.x - p2.x);\n };\n /**\n * calculate x/y coordinates for tooltip based on coordinates of highlighted datum, position of canvas and page offset.\n * @param datum\n */\n Sparkline.prototype.handleTooltip = function (event, datum) {\n var seriesDatum = datum.seriesDatum;\n var canvasElement = this.canvasElement;\n var clientX = event.clientX, clientY = event.clientY;\n // confine tooltip to sparkline width if tooltip container not provided.\n if (this.tooltip.container == undefined) {\n this.tooltip.container = canvasElement;\n }\n var meta = {\n pageX: clientX,\n pageY: clientY,\n };\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n // check if tooltip is enabled for this specific data point\n var enabled = this.tooltip.enabled;\n if (this.tooltip.renderer) {\n var tooltipRendererResult = this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n });\n enabled =\n typeof tooltipRendererResult !== 'string' && tooltipRendererResult.enabled !== undefined\n ? tooltipRendererResult.enabled\n : enabled;\n }\n var html = enabled && seriesDatum.y !== undefined && this.getTooltipHtml(datum);\n if (html) {\n this.tooltip.show(meta, html);\n }\n };\n Sparkline.prototype.formatNumericDatum = function (datum) {\n return String(Math.round(datum * 10) / 10);\n };\n Sparkline.prototype.formatDatum = function (datum) {\n var type = this.axis.type || 'category';\n if (type === 'number' && typeof datum === 'number') {\n return this.formatNumericDatum(datum);\n }\n else if (type === 'time' && (datum instanceof Date || isNumber(datum))) {\n return this.defaultDateFormatter(datum);\n }\n else {\n return String(datum);\n }\n };\n Sparkline.prototype.setupDomEventListeners = function (chartElement) {\n chartElement.addEventListener('mousemove', this._onMouseMove);\n chartElement.addEventListener('mouseout', this._onMouseOut);\n };\n Sparkline.prototype.cleanupDomEventListeners = function (chartElement) {\n chartElement.removeEventListener('mousemove', this._onMouseMove);\n chartElement.removeEventListener('mouseout', this._onMouseOut);\n };\n Sparkline.prototype.invalidData = function (data) {\n return !data || !Array.isArray(data) || data.length === 0;\n };\n /**\n * Cleanup and remove canvas element from the DOM.\n */\n Sparkline.prototype.destroy = function () {\n this.scene.container = undefined;\n // remove canvas element from the DOM\n this.container = undefined;\n this.cleanupDomEventListeners(this.scene.canvas.element);\n };\n Sparkline.tooltipDocuments = [];\n return Sparkline;\n}(Observable));\n\nvar __extends$P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction toTooltipHtml(input, defaults) {\n if (typeof input === 'string') {\n return input;\n }\n defaults = defaults || {};\n var _a = input.content, content = _a === void 0 ? defaults.content || '' : _a, _b = input.title, title = _b === void 0 ? defaults.title || undefined : _b, _c = input.color, color = _c === void 0 ? defaults.color : _c, _d = input.backgroundColor, backgroundColor = _d === void 0 ? defaults.backgroundColor : _d, _e = input.opacity, opacity = _e === void 0 ? defaults.opacity || 1 : _e;\n var titleHtml;\n var contentHtml;\n if (color) {\n titleHtml = title\n ? \"\" + title + \"\"\n : '';\n contentHtml = \"\" + content + \"\";\n }\n else {\n titleHtml = title ? \"\" + title + \"\" : '';\n contentHtml = \"\" + content + \"\";\n }\n if (backgroundColor) {\n var bgColor = Color.fromString(backgroundColor.toLowerCase());\n var r = bgColor.r, g = bgColor.g, b = bgColor.b, a = bgColor.a;\n // TODO: combine a and opacity for alpha?\n var alpha = opacity;\n var bgColorWithAlpha = Color.fromArray([r, g, b, alpha]);\n var bgColorRgbaString = bgColorWithAlpha.toRgbaString();\n return \"
\\n \" + titleHtml + \"\\n \" + contentHtml + \"\\n
\";\n }\n else {\n return \"
\\n \" + titleHtml + \"\\n \" + contentHtml + \"\\n
\";\n }\n}\nvar SparklineTooltip = /** @class */ (function (_super) {\n __extends$P(SparklineTooltip, _super);\n function SparklineTooltip() {\n var _this = _super.call(this) || this;\n _this.element = document.createElement('div');\n _this.enabled = true;\n _this.container = undefined;\n _this.xOffset = 10;\n _this.yOffset = 0;\n _this.renderer = undefined;\n var tooltipRoot = document.body;\n tooltipRoot.appendChild(_this.element);\n return _this;\n }\n SparklineTooltip.prototype.isVisible = function () {\n var element = this.element;\n if (element.classList) {\n return !element.classList.contains(SparklineTooltip.class + \"-wrapper-hidden\");\n }\n // IE11\n var classes = element.getAttribute('class');\n if (classes) {\n return classes.split(' ').indexOf(SparklineTooltip.class + \"-wrapper-hidden\") < 0;\n }\n return false;\n };\n SparklineTooltip.prototype.updateClass = function (visible) {\n var classList = [SparklineTooltip.class + \"-wrapper\"];\n if (visible !== true) {\n classList.push(SparklineTooltip.class + \"-wrapper-hidden\");\n }\n this.element.setAttribute('class', classList.join(' '));\n };\n SparklineTooltip.prototype.show = function (meta, html) {\n this.toggle(false);\n var element = this.element;\n if (html !== undefined) {\n element.innerHTML = html;\n }\n else if (!element.innerHTML) {\n return;\n }\n var left = meta.pageX + this.xOffset;\n var top = meta.pageY + this.yOffset;\n var tooltipRect = element.getBoundingClientRect();\n var maxLeft = window.innerWidth - tooltipRect.width;\n if (this.container) {\n var containerRect = this.container.getBoundingClientRect();\n maxLeft = containerRect.left + (containerRect.width - tooltipRect.width);\n }\n if (left > maxLeft) {\n left = meta.pageX - element.clientWidth - this.xOffset;\n }\n element.style.left = Math.round(left) + \"px\";\n element.style.top = Math.round(top) + \"px\";\n this.toggle(true);\n };\n SparklineTooltip.prototype.toggle = function (visible) {\n this.updateClass(visible);\n };\n SparklineTooltip.prototype.destroy = function () {\n var parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n };\n SparklineTooltip.class = 'ag-sparkline-tooltip';\n return SparklineTooltip;\n}(Observable));\n\nvar __extends$Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Marker = /** @class */ (function (_super) {\n __extends$Q(Marker, _super);\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this._size = 3;\n return _this;\n }\n Object.defineProperty(Marker.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Marker.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Marker.prototype, \"size\", {\n get: function () {\n return this._size;\n },\n set: function (value) {\n if (this._size !== value) {\n this._size = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n return Marker;\n}(Shape));\n\nvar __extends$R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Circle = /** @class */ (function (_super) {\n __extends$R(Circle, _super);\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Circle.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Circle.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Circle.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var radius = size / 2;\n ctx.beginPath();\n ctx.arc(x, y, radius, 0, 2 * Math.PI, false);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Circle.className = 'Circle';\n return Circle;\n}(Marker));\n\nvar __extends$S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Diamond = /** @class */ (function (_super) {\n __extends$S(Diamond, _super);\n function Diamond() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Diamond.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Diamond.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Diamond.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var hs = size / 2;\n ctx.beginPath();\n ctx.moveTo(x, (y -= hs));\n ctx.lineTo((x += hs), (y += hs));\n ctx.lineTo((x -= hs), (y += hs));\n ctx.lineTo((x -= hs), (y -= hs));\n ctx.lineTo((x += hs), (y -= hs));\n ctx.closePath();\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Diamond.className = 'Diamond';\n return Diamond;\n}(Marker));\n\nvar __extends$T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Square = /** @class */ (function (_super) {\n __extends$T(Square, _super);\n function Square() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Square.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Square.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Square.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var hs = size / 2;\n ctx.beginPath();\n ctx.moveTo((x -= hs), (y -= hs));\n ctx.lineTo((x += size), y);\n ctx.lineTo(x, (y += size));\n ctx.lineTo((x -= size), y);\n ctx.lineTo(x, (y -= size));\n ctx.closePath();\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Square.className = 'Square';\n return Square;\n}(Marker));\n\nfunction getMarker(shape) {\n switch (shape) {\n case 'circle':\n return Circle;\n case 'square':\n return Square;\n case 'diamond':\n return Diamond;\n default:\n return Circle;\n }\n}\n\nfunction getLineDash(lineCap, lineDash) {\n if (lineDash === void 0) { lineDash = 'solid'; }\n var buttOrNull = {\n solid: [],\n dash: [4, 3],\n dot: [1, 3],\n dashDot: [4, 3, 1, 3],\n dashDotDot: [4, 3, 1, 3, 1, 3],\n shortDot: [1, 1],\n shortDash: [3, 1],\n shortDashDot: [3, 1, 1, 1],\n shortDashDotDot: [3, 1, 1, 1, 1, 1],\n longDash: [8, 3],\n longDashDot: [8, 3, 1, 3],\n longDashDotDot: [8, 3, 1, 3, 1, 3]\n };\n var roundOrSquare = {\n solid: [],\n dash: [3, 3],\n dot: [0, 3],\n dashDot: [3, 3, 0, 3],\n dashDotDot: [3, 3, 0, 3, 0, 3],\n shortDot: [0, 2],\n shortDash: [2, 2],\n shortDashDot: [2, 2, 0, 2],\n shortDashDotDot: [2, 2, 0, 2, 0, 2],\n longDash: [7, 3],\n longDashDot: [7, 3, 0, 3],\n longDashDotDot: [7, 3, 0, 3, 0, 3]\n };\n if (lineCap === 'round' || lineCap === 'square') {\n if (roundOrSquare[lineDash] == undefined) {\n console.warn(\"'\" + lineDash + \"' is not a valid 'lineDash' option.\");\n return roundOrSquare.solid;\n }\n return roundOrSquare[lineDash];\n }\n if (buttOrNull[lineDash] == undefined) {\n console.warn(\"'\" + lineDash + \"' is not a valid 'lineDash' option.\");\n return buttOrNull.solid;\n }\n return buttOrNull[lineDash];\n}\n\nvar __extends$U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar SparklineMarker = /** @class */ (function () {\n function SparklineMarker() {\n this.enabled = true;\n this.shape = 'circle';\n this.size = 0;\n this.fill = 'rgb(124, 181, 236)';\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n this.formatter = undefined;\n }\n return SparklineMarker;\n}());\nvar SparklineLine = /** @class */ (function () {\n function SparklineLine() {\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n }\n return SparklineLine;\n}());\nvar SparklineCrosshairs = /** @class */ (function () {\n function SparklineCrosshairs() {\n this.xLine = {\n enabled: true,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n this.yLine = {\n enabled: false,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n }\n return SparklineCrosshairs;\n}());\nvar AreaSparkline = /** @class */ (function (_super) {\n __extends$U(AreaSparkline, _super);\n function AreaSparkline() {\n var _this = _super.call(this) || this;\n _this.fill = 'rgba(124, 181, 236, 0.25)';\n _this.strokePath = new Path();\n _this.fillPath = new Path();\n _this.xCrosshairLine = new Line();\n _this.yCrosshairLine = new Line();\n _this.areaSparklineGroup = new Group();\n _this.fillPathData = [];\n _this.strokePathData = [];\n _this.xAxisLine = new Line();\n _this.markers = new Group();\n _this.markerSelection = Selection.select(_this.markers).selectAll();\n _this.markerSelectionData = [];\n _this.marker = new SparklineMarker();\n _this.line = new SparklineLine();\n _this.crosshairs = new SparklineCrosshairs();\n _this.rootGroup.append(_this.areaSparklineGroup);\n _this.areaSparklineGroup.append([\n _this.fillPath,\n _this.xAxisLine,\n _this.strokePath,\n _this.xCrosshairLine,\n _this.yCrosshairLine,\n _this.markers,\n ]);\n return _this;\n }\n AreaSparkline.prototype.getNodeData = function () {\n return this.markerSelectionData;\n };\n /**\n * If marker shape is changed, this method should be called to remove the previous marker nodes selection.\n */\n AreaSparkline.prototype.onMarkerShapeChange = function () {\n this.markerSelection = this.markerSelection.setData([]);\n this.markerSelection.exit.remove();\n this.scheduleLayout();\n };\n AreaSparkline.prototype.update = function () {\n var data = this.generateNodeData();\n if (!data) {\n return;\n }\n var nodeData = data.nodeData, fillData = data.fillData, strokeData = data.strokeData;\n this.markerSelectionData = nodeData;\n this.fillPathData = fillData;\n this.strokePathData = strokeData;\n this.updateSelection(nodeData);\n this.updateNodes();\n this.updateStroke(strokeData);\n this.updateFill(fillData);\n };\n AreaSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yData = _a.yData, yScale = _a.yScale;\n var yMinMax = extent(yData, isNumber);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n // if yMin is positive, set yMin to 0\n yMin = yMin < 0 ? yMin : 0;\n // if yMax is negative, set yMax to 0\n yMax = yMax < 0 ? 0 : yMax;\n yScale.domain = [yMin, yMax];\n };\n AreaSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale;\n if (!data) {\n return;\n }\n var offsetX = xScale instanceof BandScale ? xScale.bandwidth / 2 : 0;\n var n = yData.length;\n var nodeData = [];\n var fillData = [];\n var strokeData = [];\n var firstValidX;\n var lastValidX;\n var previousX;\n var nextX;\n var yZero = yScale.convert(0);\n for (var i = 0; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var x = xScale.convert(xDatum) + offsetX;\n var y = yScale.convert(yDatum);\n // if this iteration is not the last, set nextX using the next value in the data array\n if (i + 1 < n) {\n nextX = xScale.convert(xData[i + 1]) + offsetX;\n }\n // set stroke data regardless of missing/ undefined values. Undefined values will be handled in the updateStroke() method\n strokeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n if (yDatum === undefined && previousX !== undefined) {\n // if yDatum is undefined and there is a valid previous data point, add a phantom point at yZero\n // if a next data point exists, add a phantom point at yZero at the next X\n fillData.push({ seriesDatum: undefined, point: { x: previousX, y: yZero } });\n if (nextX !== undefined) {\n fillData.push({ seriesDatum: undefined, point: { x: nextX, y: yZero } });\n }\n }\n else if (yDatum !== undefined) {\n fillData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n // set node data only if yDatum is not undefined. These values are used in the updateSelection() method to update markers\n nodeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n firstValidX = firstValidX !== undefined ? firstValidX : x;\n lastValidX = x;\n }\n previousX = x;\n }\n // phantom points for creating closed area\n fillData.push({ seriesDatum: undefined, point: { x: lastValidX, y: yZero } }, { seriesDatum: undefined, point: { x: firstValidX, y: yZero } });\n return { nodeData: nodeData, fillData: fillData, strokeData: strokeData };\n };\n AreaSparkline.prototype.updateAxisLine = function () {\n var _a = this, xScale = _a.xScale, yScale = _a.yScale, axis = _a.axis, xAxisLine = _a.xAxisLine;\n xAxisLine.x1 = xScale.range[0];\n xAxisLine.x2 = xScale.range[1];\n xAxisLine.y1 = xAxisLine.y2 = 0;\n xAxisLine.stroke = axis.stroke;\n xAxisLine.strokeWidth = axis.strokeWidth;\n var yZero = yScale.convert(0);\n xAxisLine.translationY = yZero;\n };\n AreaSparkline.prototype.updateSelection = function (selectionData) {\n var marker = this.marker;\n var shape = getMarker(marker.shape);\n var updateMarkerSelection = this.markerSelection.setData(selectionData);\n var enterMarkerSelection = updateMarkerSelection.enter.append(shape);\n updateMarkerSelection.exit.remove();\n this.markerSelection = updateMarkerSelection.merge(enterMarkerSelection);\n };\n AreaSparkline.prototype.updateNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, highlightStyle = _a.highlightStyle, marker = _a.marker;\n var highlightSize = highlightStyle.size, highlightFill = highlightStyle.fill, highlightStroke = highlightStyle.stroke, highlightStrokeWidth = highlightStyle.strokeWidth;\n var markerFormatter = marker.formatter;\n this.markerSelection.each(function (node, datum, index) {\n var point = datum.point, seriesDatum = datum.seriesDatum;\n if (!point) {\n return;\n }\n var highlighted = datum === highlightedDatum;\n var markerFill = highlighted && highlightFill !== undefined ? highlightFill : marker.fill;\n var markerStroke = highlighted && highlightStroke !== undefined ? highlightStroke : marker.stroke;\n var markerStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : marker.strokeWidth;\n var markerSize = highlighted && highlightSize !== undefined ? highlightSize : marker.size;\n var markerFormat;\n if (markerFormatter) {\n var first = index === 0;\n var last = index === _this.markerSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n markerFormat = markerFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: markerFill,\n stroke: markerStroke,\n strokeWidth: markerStrokeWidth,\n size: markerSize,\n highlighted: highlighted,\n });\n }\n node.size = markerFormat && markerFormat.size != undefined ? markerFormat.size : markerSize;\n node.fill = markerFormat && markerFormat.fill != undefined ? markerFormat.fill : markerFill;\n node.stroke = markerFormat && markerFormat.stroke != undefined ? markerFormat.stroke : markerStroke;\n node.strokeWidth =\n markerFormat && markerFormat.strokeWidth != undefined ? markerFormat.strokeWidth : markerStrokeWidth;\n node.translationX = point.x;\n node.translationY = point.y;\n node.visible =\n markerFormat && markerFormat.enabled != undefined\n ? markerFormat.enabled\n : marker.enabled && node.size > 0;\n });\n };\n AreaSparkline.prototype.updateStroke = function (strokeData) {\n var _a = this, strokePath = _a.strokePath, yData = _a.yData, line = _a.line;\n if (yData.length < 2) {\n return;\n }\n var path = strokePath.path;\n var n = strokeData.length;\n var moveTo = true;\n path.clear();\n for (var i = 0; i < n; i++) {\n var _b = strokeData[i], point = _b.point, seriesDatum = _b.seriesDatum;\n var x = point.x;\n var y = point.y;\n if (seriesDatum.y == undefined) {\n moveTo = true;\n }\n else {\n if (moveTo) {\n path.moveTo(x, y);\n moveTo = false;\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n strokePath.lineJoin = strokePath.lineCap = 'round';\n strokePath.fill = undefined;\n strokePath.stroke = line.stroke;\n strokePath.strokeWidth = line.strokeWidth;\n };\n AreaSparkline.prototype.updateFill = function (areaData) {\n var _a = this, fillPath = _a.fillPath, yData = _a.yData, fill = _a.fill;\n var path = fillPath.path;\n var n = areaData.length;\n path.clear();\n if (yData.length < 2) {\n return;\n }\n for (var i = 0; i < n; i++) {\n var point = areaData[i].point;\n var x = point.x;\n var y = point.y;\n if (i > 0) {\n path.lineTo(x, y);\n }\n else {\n path.moveTo(x, y);\n }\n }\n path.closePath();\n fillPath.lineJoin = 'round';\n fillPath.stroke = undefined;\n fillPath.fill = fill;\n };\n AreaSparkline.prototype.updateXCrosshairLine = function () {\n var _a = this, yScale = _a.yScale, xCrosshairLine = _a.xCrosshairLine, highlightedDatum = _a.highlightedDatum, xLine = _a.crosshairs.xLine;\n if (!xLine.enabled || highlightedDatum == undefined) {\n xCrosshairLine.strokeWidth = 0;\n return;\n }\n xCrosshairLine.y1 = yScale.range[0];\n xCrosshairLine.y2 = yScale.range[1];\n xCrosshairLine.x1 = xCrosshairLine.x2 = 0;\n xCrosshairLine.stroke = xLine.stroke;\n xCrosshairLine.strokeWidth = xLine.strokeWidth || 1;\n xCrosshairLine.lineCap = xLine.lineCap === 'round' || xLine.lineCap === 'square' ? xLine.lineCap : undefined;\n var lineDash = xLine.lineDash;\n xCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(xCrosshairLine.lineCap, xLine.lineDash);\n xCrosshairLine.translationX = highlightedDatum.point.x;\n };\n AreaSparkline.prototype.updateYCrosshairLine = function () {\n var _a = this, xScale = _a.xScale, yCrosshairLine = _a.yCrosshairLine, highlightedDatum = _a.highlightedDatum, yLine = _a.crosshairs.yLine;\n if (!yLine.enabled || highlightedDatum == undefined) {\n yCrosshairLine.strokeWidth = 0;\n return;\n }\n yCrosshairLine.x1 = xScale.range[0];\n yCrosshairLine.x2 = xScale.range[1];\n yCrosshairLine.y1 = yCrosshairLine.y2 = 0;\n yCrosshairLine.stroke = yLine.stroke;\n yCrosshairLine.strokeWidth = yLine.strokeWidth || 1;\n yCrosshairLine.lineCap = yLine.lineCap === 'round' || yLine.lineCap === 'square' ? yLine.lineCap : undefined;\n var lineDash = yLine.lineDash;\n yCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(yCrosshairLine.lineCap, yLine.lineDash);\n yCrosshairLine.translationY = highlightedDatum.point.y;\n };\n AreaSparkline.prototype.getTooltipHtml = function (datum) {\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n if (this.tooltip.renderer) {\n return toTooltipHtml(this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n AreaSparkline.className = 'AreaSparkline';\n return AreaSparkline;\n}(Sparkline));\n\nvar __extends$V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar SparklineMarker$1 = /** @class */ (function () {\n function SparklineMarker() {\n this.enabled = true;\n this.shape = 'circle';\n this.size = 0;\n this.fill = 'rgb(124, 181, 236)';\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n this.formatter = undefined;\n }\n return SparklineMarker;\n}());\nvar SparklineLine$1 = /** @class */ (function () {\n function SparklineLine() {\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n }\n return SparklineLine;\n}());\nvar SparklineCrosshairs$1 = /** @class */ (function () {\n function SparklineCrosshairs() {\n this.xLine = {\n enabled: true,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n this.yLine = {\n enabled: false,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n }\n return SparklineCrosshairs;\n}());\nvar LineSparkline = /** @class */ (function (_super) {\n __extends$V(LineSparkline, _super);\n function LineSparkline() {\n var _this = _super.call(this) || this;\n _this.linePath = new Path();\n _this.xCrosshairLine = new Line();\n _this.yCrosshairLine = new Line();\n _this.lineSparklineGroup = new Group();\n _this.markers = new Group();\n _this.markerSelection = Selection.select(_this.markers).selectAll();\n _this.markerSelectionData = [];\n _this.marker = new SparklineMarker$1();\n _this.line = new SparklineLine$1();\n _this.crosshairs = new SparklineCrosshairs$1();\n _this.rootGroup.append(_this.lineSparklineGroup);\n _this.lineSparklineGroup.append([_this.linePath, _this.xCrosshairLine, _this.yCrosshairLine, _this.markers]);\n return _this;\n }\n LineSparkline.prototype.getNodeData = function () {\n return this.markerSelectionData;\n };\n /**\n * If marker shape is changed, this method should be called to remove the previous marker nodes selection.\n */\n LineSparkline.prototype.onMarkerShapeChange = function () {\n this.markerSelection = this.markerSelection.setData([]);\n this.markerSelection.exit.remove();\n this.scheduleLayout();\n };\n LineSparkline.prototype.update = function () {\n var nodeData = this.generateNodeData();\n if (!nodeData) {\n return;\n }\n this.markerSelectionData = nodeData;\n this.updateSelection(nodeData);\n this.updateNodes();\n this.updateLine();\n };\n LineSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yData = _a.yData, yScale = _a.yScale;\n var yMinMax = extent(yData, isNumber);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n if (yMin === yMax) {\n // if all values in the data are the same, yMin and yMax will be equal, need to adjust the domain with some padding\n var padding = Math.abs(yMin * 0.01);\n yMin -= padding;\n yMax += padding;\n }\n yScale.domain = [yMin, yMax];\n };\n LineSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale;\n if (!data) {\n return;\n }\n var offsetX = xScale instanceof BandScale ? xScale.bandwidth / 2 : 0;\n var nodeData = [];\n for (var i = 0; i < yData.length; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n if (yDatum == undefined) {\n continue;\n }\n var x = xScale.convert(xDatum) + offsetX;\n var y = yScale.convert(yDatum);\n nodeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n }\n return nodeData;\n };\n LineSparkline.prototype.updateSelection = function (selectionData) {\n var marker = this.marker;\n var shape = getMarker(marker.shape);\n var updateMarkerSelection = this.markerSelection.setData(selectionData);\n var enterMarkerSelection = updateMarkerSelection.enter.append(shape);\n updateMarkerSelection.exit.remove();\n this.markerSelection = updateMarkerSelection.merge(enterMarkerSelection);\n };\n LineSparkline.prototype.updateNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, highlightStyle = _a.highlightStyle, marker = _a.marker;\n var highlightSize = highlightStyle.size, highlightFill = highlightStyle.fill, highlightStroke = highlightStyle.stroke, highlightStrokeWidth = highlightStyle.strokeWidth;\n var markerFormatter = marker.formatter;\n this.markerSelection.each(function (node, datum, index) {\n var highlighted = datum === highlightedDatum;\n var markerFill = highlighted && highlightFill !== undefined ? highlightFill : marker.fill;\n var markerStroke = highlighted && highlightStroke !== undefined ? highlightStroke : marker.stroke;\n var markerStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : marker.strokeWidth;\n var markerSize = highlighted && highlightSize !== undefined ? highlightSize : marker.size;\n var markerFormat;\n var seriesDatum = datum.seriesDatum, point = datum.point;\n if (markerFormatter) {\n var first = index === 0;\n var last = index === _this.markerSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n markerFormat = markerFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: markerFill,\n stroke: markerStroke,\n strokeWidth: markerStrokeWidth,\n size: markerSize,\n highlighted: highlighted,\n });\n }\n node.size = markerFormat && markerFormat.size != undefined ? markerFormat.size : markerSize;\n node.fill = markerFormat && markerFormat.fill != undefined ? markerFormat.fill : markerFill;\n node.stroke = markerFormat && markerFormat.stroke != undefined ? markerFormat.stroke : markerStroke;\n node.strokeWidth =\n markerFormat && markerFormat.strokeWidth != undefined ? markerFormat.strokeWidth : markerStrokeWidth;\n node.translationX = point.x;\n node.translationY = point.y;\n node.visible =\n markerFormat && markerFormat.enabled != undefined\n ? markerFormat.enabled\n : marker.enabled && node.size > 0;\n });\n };\n LineSparkline.prototype.updateLine = function () {\n var _a = this, linePath = _a.linePath, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, line = _a.line;\n if (yData.length < 2) {\n return;\n }\n var path = linePath.path;\n var n = yData.length;\n var offsetX = xScale instanceof BandScale ? xScale.bandwidth / 2 : 0;\n var moveTo = true;\n path.clear();\n for (var i = 0; i < n; i++) {\n var xDatum = xData[i];\n var yDatum = yData[i];\n var x = xScale.convert(xDatum) + offsetX;\n var y = yScale.convert(yDatum);\n if (yDatum == undefined) {\n moveTo = true;\n }\n else {\n if (moveTo) {\n path.moveTo(x, y);\n moveTo = false;\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n linePath.fill = undefined;\n linePath.stroke = line.stroke;\n linePath.strokeWidth = line.strokeWidth;\n };\n LineSparkline.prototype.updateXCrosshairLine = function () {\n var _a = this, yScale = _a.yScale, xCrosshairLine = _a.xCrosshairLine, highlightedDatum = _a.highlightedDatum, xLine = _a.crosshairs.xLine;\n if (!xLine.enabled || highlightedDatum == undefined) {\n xCrosshairLine.strokeWidth = 0;\n return;\n }\n xCrosshairLine.y1 = yScale.range[0];\n xCrosshairLine.y2 = yScale.range[1];\n xCrosshairLine.x1 = xCrosshairLine.x2 = 0;\n xCrosshairLine.stroke = xLine.stroke;\n xCrosshairLine.strokeWidth = xLine.strokeWidth || 1;\n xCrosshairLine.lineCap = xLine.lineCap === 'round' || xLine.lineCap === 'square' ? xLine.lineCap : undefined;\n var lineDash = xLine.lineDash;\n xCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(xCrosshairLine.lineCap, xLine.lineDash);\n xCrosshairLine.translationX = highlightedDatum.point.x;\n };\n LineSparkline.prototype.updateYCrosshairLine = function () {\n var _a = this, xScale = _a.xScale, yCrosshairLine = _a.yCrosshairLine, highlightedDatum = _a.highlightedDatum, yLine = _a.crosshairs.yLine;\n if (!yLine.enabled || highlightedDatum == undefined) {\n yCrosshairLine.strokeWidth = 0;\n return;\n }\n yCrosshairLine.x1 = xScale.range[0];\n yCrosshairLine.x2 = xScale.range[1];\n yCrosshairLine.y1 = yCrosshairLine.y2 = 0;\n yCrosshairLine.stroke = yLine.stroke;\n yCrosshairLine.strokeWidth = yLine.strokeWidth || 1;\n yCrosshairLine.lineCap = yLine.lineCap === 'round' || yLine.lineCap === 'square' ? yLine.lineCap : undefined;\n var lineDash = yLine.lineDash;\n yCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(yCrosshairLine.lineCap, yLine.lineDash);\n yCrosshairLine.translationY = highlightedDatum.point.y;\n };\n LineSparkline.prototype.getTooltipHtml = function (datum) {\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n if (this.tooltip.renderer) {\n return toTooltipHtml(this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n LineSparkline.className = 'LineSparkline';\n return LineSparkline;\n}(Sparkline));\n\nvar __extends$W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Rectangle = /** @class */ (function (_super) {\n __extends$W(Rectangle, _super);\n function Rectangle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this._width = 0;\n _this._height = 0;\n /**\n * If `true`, the rect is aligned to the pixel grid for crisp looking lines.\n */\n _this._crisp = false;\n return _this;\n }\n Object.defineProperty(Rectangle.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"crisp\", {\n get: function () {\n return this._crisp;\n },\n set: function (value) {\n if (this._crisp !== value) {\n this._crisp = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Rectangle.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Rectangle.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Rectangle.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height, crisp = _a.crisp;\n ctx.beginPath();\n if (crisp) {\n // ensure stroke aligns to the pixel grid\n var _b = this, a = _b.alignment, al = _b.align;\n ctx.rect(al(a, x), al(a, y), al(a, x, width), al(a, y, height));\n }\n else {\n ctx.rect(x, y, width, height);\n }\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Rectangle.className = 'Column';\n return Rectangle;\n}(Shape));\n\nvar __extends$X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Text = /** @class */ (function (_super) {\n __extends$X(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this.lineBreakRegex = /\\r?\\n/g;\n _this.lines = [];\n _this._text = '';\n _this._dirtyFont = true;\n _this._fontSize = 10;\n _this._fontFamily = 'sans-serif';\n _this._textAlign = Text.defaultStyles.textAlign;\n _this._textBaseline = Text.defaultStyles.textBaseline;\n _this._lineHeight = 14;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.splitText = function () {\n this.lines = this._text.split(this.lineBreakRegex);\n };\n Object.defineProperty(Text.prototype, \"text\", {\n get: function () {\n return this._text;\n },\n set: function (value) {\n var str = String(value); // `value` can be an object here\n if (this._text !== str) {\n this._text = str;\n this.splitText();\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"font\", {\n get: function () {\n if (this.dirtyFont) {\n this.dirtyFont = false;\n this._font = getFont$1(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n }\n return this._font;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"dirtyFont\", {\n get: function () {\n return this._dirtyFont;\n },\n set: function (value) {\n if (this._dirtyFont !== value) {\n this._dirtyFont = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontStyle\", {\n get: function () {\n return this._fontStyle;\n },\n set: function (value) {\n if (this._fontStyle !== value) {\n this._fontStyle = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontWeight\", {\n get: function () {\n return this._fontWeight;\n },\n set: function (value) {\n if (this._fontWeight !== value) {\n this._fontWeight = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontSize\", {\n get: function () {\n return this._fontSize;\n },\n set: function (value) {\n if (!isFinite(value)) {\n value = 10;\n }\n if (this._fontSize !== value) {\n this._fontSize = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontFamily\", {\n get: function () {\n return this._fontFamily;\n },\n set: function (value) {\n if (this._fontFamily !== value) {\n this._fontFamily = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textAlign\", {\n get: function () {\n return this._textAlign;\n },\n set: function (value) {\n if (this._textAlign !== value) {\n this._textAlign = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textBaseline\", {\n get: function () {\n return this._textBaseline;\n },\n set: function (value) {\n if (this._textBaseline !== value) {\n this._textBaseline = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"lineHeight\", {\n get: function () {\n return this._lineHeight;\n },\n set: function (value) {\n // Multi-line text is complicated because:\n // - Canvas does not support it natively, so we have to implement it manually\n // - need to know the height of each line -> need to parse the font shorthand ->\n // generally impossible to do because font size may not be in pixels\n // - so, need to measure the text instead, each line individually -> expensive\n // - or make the user provide the line height manually for multi-line text\n // - computeBBox should use the lineHeight for multi-line text but ignore it otherwise\n // - textBaseline kind of loses its meaning for multi-line text\n if (this._lineHeight !== value) {\n this._lineHeight = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.computeBBox = function () {\n return HdpiCanvas.has.textMetrics\n ? this.getPreciseBBox()\n : this.getApproximateBBox();\n };\n Text.prototype.getPreciseBBox = function () {\n var metrics = HdpiCanvas.measureText(this.text, this.font, this.textBaseline, this.textAlign);\n return new BBox(this.x - metrics.actualBoundingBoxLeft, this.y - metrics.actualBoundingBoxAscent, metrics.width, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n };\n Text.prototype.getApproximateBBox = function () {\n var size = HdpiCanvas.getTextSize(this.text, this.font);\n var _a = this, x = _a.x, y = _a.y;\n switch (this.textAlign) {\n case 'end':\n case 'right':\n x -= size.width;\n break;\n case 'center':\n x -= size.width / 2;\n }\n switch (this.textBaseline) {\n case 'alphabetic':\n y -= size.height * 0.7;\n break;\n case 'middle':\n y -= size.height * 0.45;\n break;\n case 'ideographic':\n y -= size.height;\n break;\n case 'hanging':\n y -= size.height * 0.2;\n break;\n case 'bottom':\n y -= size.height;\n break;\n }\n return new BBox(x, y, size.width, size.height);\n };\n Text.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox ? bbox.containsPoint(point.x, point.y) : false;\n };\n Text.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Text.prototype.render = function (ctx) {\n if (!this.lines.length || !this.scene) {\n return;\n }\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // this.matrix.transformBBox(this.computeBBox!()).render(ctx); // debug\n this.matrix.toContext(ctx);\n var _a = this, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n ctx.font = this.font;\n ctx.textAlign = this.textAlign;\n ctx.textBaseline = this.textBaseline;\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n var _b = this, fillShadow = _b.fillShadow, text = _b.text, x = _b.x, y = _b.y;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fillText(text, x, y);\n }\n if (stroke && strokeWidth) {\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n var _c = this, lineDash = _c.lineDash, lineDashOffset = _c.lineDashOffset, lineCap = _c.lineCap, lineJoin = _c.lineJoin, strokeShadow = _c.strokeShadow, text = _c.text, x = _c.x, y = _c.y;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.strokeText(text, x, y);\n }\n this.dirty = false;\n };\n Text.className = 'Text';\n Text.defaultStyles = chainObjects(Shape.defaultStyles, {\n textAlign: 'start',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 10,\n fontFamily: 'sans-serif',\n textBaseline: 'alphabetic'\n });\n return Text;\n}(Shape));\nfunction getFont$1(fontSize, fontFamily, fontStyle, fontWeight) {\n return [\n fontStyle || '',\n fontWeight || '',\n fontSize + 'px',\n fontFamily\n ].join(' ').trim();\n}\n\nvar __extends$Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Label = /** @class */ (function (_super) {\n __extends$Y(Label, _super);\n function Label() {\n var _this = _super.call(this) || this;\n _this.enabled = true;\n _this.fontSize = 8;\n _this.fontFamily = 'Verdana, sans-serif';\n _this.color = 'rgba(70, 70, 70, 1)';\n return _this;\n }\n Label.prototype.getFont = function () {\n return getFont$1(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n };\n __decorate$D([\n reactive('change', 'dataChange')\n ], Label.prototype, \"enabled\", void 0);\n __decorate$D([\n reactive('change')\n ], Label.prototype, \"fontSize\", void 0);\n __decorate$D([\n reactive('change')\n ], Label.prototype, \"fontFamily\", void 0);\n __decorate$D([\n reactive('change')\n ], Label.prototype, \"fontStyle\", void 0);\n __decorate$D([\n reactive('change')\n ], Label.prototype, \"fontWeight\", void 0);\n __decorate$D([\n reactive('change')\n ], Label.prototype, \"color\", void 0);\n return Label;\n}(Observable));\n\nvar __extends$Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Text$1 = /** @class */ (function (_super) {\n __extends$Z(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this.lineBreakRegex = /\\r?\\n/g;\n _this.lines = [];\n _this._text = '';\n _this._dirtyFont = true;\n _this._fontSize = 10;\n _this._fontFamily = 'sans-serif';\n _this._textAlign = Text.defaultStyles.textAlign;\n _this._textBaseline = Text.defaultStyles.textBaseline;\n _this._lineHeight = 14;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.splitText = function () {\n this.lines = this._text.split(this.lineBreakRegex);\n };\n Object.defineProperty(Text.prototype, \"text\", {\n get: function () {\n return this._text;\n },\n set: function (value) {\n var str = String(value); // `value` can be an object here\n if (this._text !== str) {\n this._text = str;\n this.splitText();\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"font\", {\n get: function () {\n if (this.dirtyFont) {\n this.dirtyFont = false;\n this._font = getFont$2(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n }\n return this._font;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"dirtyFont\", {\n get: function () {\n return this._dirtyFont;\n },\n set: function (value) {\n if (this._dirtyFont !== value) {\n this._dirtyFont = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontStyle\", {\n get: function () {\n return this._fontStyle;\n },\n set: function (value) {\n if (this._fontStyle !== value) {\n this._fontStyle = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontWeight\", {\n get: function () {\n return this._fontWeight;\n },\n set: function (value) {\n if (this._fontWeight !== value) {\n this._fontWeight = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontSize\", {\n get: function () {\n return this._fontSize;\n },\n set: function (value) {\n if (!isFinite(value)) {\n value = 10;\n }\n if (this._fontSize !== value) {\n this._fontSize = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontFamily\", {\n get: function () {\n return this._fontFamily;\n },\n set: function (value) {\n if (this._fontFamily !== value) {\n this._fontFamily = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textAlign\", {\n get: function () {\n return this._textAlign;\n },\n set: function (value) {\n if (this._textAlign !== value) {\n this._textAlign = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textBaseline\", {\n get: function () {\n return this._textBaseline;\n },\n set: function (value) {\n if (this._textBaseline !== value) {\n this._textBaseline = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"lineHeight\", {\n get: function () {\n return this._lineHeight;\n },\n set: function (value) {\n // Multi-line text is complicated because:\n // - Canvas does not support it natively, so we have to implement it manually\n // - need to know the height of each line -> need to parse the font shorthand ->\n // generally impossible to do because font size may not be in pixels\n // - so, need to measure the text instead, each line individually -> expensive\n // - or make the user provide the line height manually for multi-line text\n // - computeBBox should use the lineHeight for multi-line text but ignore it otherwise\n // - textBaseline kind of loses its meaning for multi-line text\n if (this._lineHeight !== value) {\n this._lineHeight = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.computeBBox = function () {\n return HdpiCanvas.has.textMetrics ? this.getPreciseBBox() : this.getApproximateBBox();\n };\n Text.prototype.getPreciseBBox = function () {\n var metrics = HdpiCanvas.measureText(this.text, this.font, this.textBaseline, this.textAlign);\n return new BBox(this.x - metrics.actualBoundingBoxLeft, this.y - metrics.actualBoundingBoxAscent, metrics.width, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n };\n Text.prototype.getApproximateBBox = function () {\n var size = HdpiCanvas.getTextSize(this.text, this.font);\n var _a = this, x = _a.x, y = _a.y;\n switch (this.textAlign) {\n case 'end':\n case 'right':\n x -= size.width;\n break;\n case 'center':\n x -= size.width / 2;\n }\n switch (this.textBaseline) {\n case 'alphabetic':\n y -= size.height * 0.7;\n break;\n case 'middle':\n y -= size.height * 0.45;\n break;\n case 'ideographic':\n y -= size.height;\n break;\n case 'hanging':\n y -= size.height * 0.2;\n break;\n case 'bottom':\n y -= size.height;\n break;\n }\n return new BBox(x, y, size.width, size.height);\n };\n Text.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox ? bbox.containsPoint(point.x, point.y) : false;\n };\n Text.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Text.prototype.render = function (ctx) {\n if (!this.lines.length || !this.scene) {\n return;\n }\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // this.matrix.transformBBox(this.computeBBox!()).render(ctx); // debug\n this.matrix.toContext(ctx);\n var _a = this, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n ctx.font = this.font;\n ctx.textAlign = this.textAlign;\n ctx.textBaseline = this.textBaseline;\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n var _b = this, fillShadow = _b.fillShadow, text = _b.text, x = _b.x, y = _b.y;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fillText(text, x, y);\n }\n if (stroke && strokeWidth) {\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n var _c = this, lineDash = _c.lineDash, lineDashOffset = _c.lineDashOffset, lineCap = _c.lineCap, lineJoin = _c.lineJoin, strokeShadow = _c.strokeShadow, text = _c.text, x = _c.x, y = _c.y;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.strokeText(text, x, y);\n }\n this.dirty = false;\n };\n Text.className = 'Text';\n Text.defaultStyles = chainObjects(Shape.defaultStyles, {\n textAlign: 'start',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 10,\n fontFamily: 'sans-serif',\n textBaseline: 'alphabetic',\n });\n return Text;\n}(Shape));\nfunction getFont$2(fontSize, fontFamily, fontStyle, fontWeight) {\n return [fontStyle || '', fontWeight || '', fontSize + 'px', fontFamily].join(' ').trim();\n}\n\nvar __extends$_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar BarColumnNodeTag;\n(function (BarColumnNodeTag) {\n BarColumnNodeTag[BarColumnNodeTag[\"Rect\"] = 0] = \"Rect\";\n BarColumnNodeTag[BarColumnNodeTag[\"Label\"] = 1] = \"Label\";\n})(BarColumnNodeTag || (BarColumnNodeTag = {}));\nvar BarColumnLabelPlacement;\n(function (BarColumnLabelPlacement) {\n BarColumnLabelPlacement[\"InsideBase\"] = \"insideBase\";\n BarColumnLabelPlacement[\"InsideEnd\"] = \"insideEnd\";\n BarColumnLabelPlacement[\"Center\"] = \"center\";\n BarColumnLabelPlacement[\"OutsideEnd\"] = \"outsideEnd\";\n})(BarColumnLabelPlacement || (BarColumnLabelPlacement = {}));\nvar BarColumnLabel = /** @class */ (function (_super) {\n __extends$_(BarColumnLabel, _super);\n function BarColumnLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n _this.placement = BarColumnLabelPlacement.InsideEnd;\n return _this;\n }\n return BarColumnLabel;\n}(Label));\nvar BarColumnSparkline = /** @class */ (function (_super) {\n __extends$_(BarColumnSparkline, _super);\n function BarColumnSparkline() {\n var _this = _super.call(this) || this;\n _this.fill = 'rgb(124, 181, 236)';\n _this.stroke = 'silver';\n _this.strokeWidth = 0;\n _this.paddingInner = 0.1;\n _this.paddingOuter = 0.2;\n _this.valueAxisDomain = undefined;\n _this.formatter = undefined;\n _this.axisLine = new Line();\n _this.bandWidth = 0;\n _this.sparklineGroup = new Group();\n _this.rectGroup = new Group();\n _this.labelGroup = new Group();\n _this.rectSelection = Selection.select(_this.rectGroup).selectAll();\n _this.labelSelection = Selection.select(_this.labelGroup).selectAll();\n _this.nodeSelectionData = [];\n _this.label = new BarColumnLabel();\n _this.rootGroup.append(_this.sparklineGroup);\n _this.sparklineGroup.append([_this.rectGroup, _this.axisLine, _this.labelGroup]);\n _this.axisLine.lineCap = 'round';\n _this.label.enabled = false;\n return _this;\n }\n BarColumnSparkline.prototype.getNodeData = function () {\n return this.nodeSelectionData;\n };\n BarColumnSparkline.prototype.update = function () {\n this.updateSelections();\n this.updateNodes();\n };\n BarColumnSparkline.prototype.updateSelections = function () {\n var nodeData = this.generateNodeData();\n if (!nodeData) {\n return;\n }\n this.nodeSelectionData = nodeData;\n this.updateRectSelection(nodeData);\n this.updateLabelSelection(nodeData);\n };\n BarColumnSparkline.prototype.updateNodes = function () {\n this.updateRectNodes();\n this.updateLabelNodes();\n };\n BarColumnSparkline.prototype.calculateStep = function (range) {\n var _a, _b;\n var _c = this, xScale = _c.xScale, paddingInner = _c.paddingInner, paddingOuter = _c.paddingOuter, smallestInterval = _c.smallestInterval;\n // calculate step\n var domainLength = xScale.domain[1] - xScale.domain[0];\n var intervals = (domainLength / (_b = (_a = smallestInterval) === null || _a === void 0 ? void 0 : _a.x, (_b !== null && _b !== void 0 ? _b : 1))) + 1;\n // The number of intervals/bands is used to determine the width of individual bands by dividing the available range.\n // Allow a maximum of 50 bands to ensure the step (width of individual bands + padding) does not fall below a certain number of pixels.\n // If the number of intervals exceeds 50, calculate the step for 50 bands within the given range.\n // This means there could be some overlap of the bands in the sparkline.\n var maxBands = 50;\n var bands = Math.min(intervals, maxBands);\n var gaps = bands - 1; // number of gaps (padding between bands)\n var step = range / Math.max(1, (2 * paddingOuter) + (gaps * paddingInner) + bands); // step width is a combination of band width and gap width\n return step;\n };\n BarColumnSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yScale = _a.yScale, yData = _a.yData, valueAxisDomain = _a.valueAxisDomain;\n var yMinMax = extent(yData, isNumber);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n // if yMin is positive, set yMin to 0\n yMin = yMin < 0 ? yMin : 0;\n // if yMax is negative, set yMax to 0\n yMax = yMax < 0 ? 0 : yMax;\n if (valueAxisDomain) {\n if (valueAxisDomain[1] < yMax) {\n valueAxisDomain[1] = yMax;\n }\n if (valueAxisDomain[0] > yMin) {\n valueAxisDomain[0] = yMin;\n }\n }\n yScale.domain = valueAxisDomain ? valueAxisDomain : [yMin, yMax];\n };\n BarColumnSparkline.prototype.updateRectSelection = function (selectionData) {\n var updateRectSelection = this.rectSelection.setData(selectionData);\n var enterRectSelection = updateRectSelection.enter.append(Rectangle);\n updateRectSelection.exit.remove();\n this.rectSelection = updateRectSelection.merge(enterRectSelection);\n };\n BarColumnSparkline.prototype.updateRectNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, nodeFormatter = _a.formatter, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n var _b = this.highlightStyle, highlightFill = _b.fill, highlightStroke = _b.stroke, highlightStrokeWidth = _b.strokeWidth;\n this.rectSelection.each(function (node, datum, index) {\n var highlighted = datum === highlightedDatum;\n var nodeFill = highlighted && highlightFill !== undefined ? highlightFill : fill;\n var nodeStroke = highlighted && highlightStroke !== undefined ? highlightStroke : stroke;\n var nodeStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : strokeWidth;\n var nodeFormat;\n var x = datum.x, y = datum.y, width = datum.width, height = datum.height, seriesDatum = datum.seriesDatum;\n if (nodeFormatter) {\n var first = index === 0;\n var last = index === _this.nodeSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n nodeFormat = nodeFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n width: width,\n height: height,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: nodeFill,\n stroke: nodeStroke,\n strokeWidth: nodeStrokeWidth,\n highlighted: highlighted,\n });\n }\n node.fill = (nodeFormat && nodeFormat.fill) || nodeFill;\n node.stroke = (nodeFormat && nodeFormat.stroke) || nodeStroke;\n node.strokeWidth = (nodeFormat && nodeFormat.strokeWidth) || nodeStrokeWidth;\n node.x = node.y = 0;\n node.width = width;\n node.height = height;\n node.visible = node.height > 0;\n node.translationX = x;\n node.translationY = y;\n // shifts bars upwards?\n // node.crisp = true;\n });\n };\n BarColumnSparkline.prototype.updateLabelSelection = function (selectionData) {\n var updateLabels = this.labelSelection.setData(selectionData);\n var enterLabels = updateLabels.enter.append(Text$1).each(function (text) {\n (text.tag = BarColumnNodeTag.Label), (text.pointerEvents = PointerEvents.None);\n });\n updateLabels.exit.remove();\n this.labelSelection = updateLabels.merge(enterLabels);\n };\n BarColumnSparkline.prototype.updateLabelNodes = function () {\n var _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n this.labelSelection.each(function (text, datum) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n };\n BarColumnSparkline.prototype.getTooltipHtml = function (datum) {\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n if (this.tooltip.renderer) {\n return toTooltipHtml(this.tooltip.renderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n BarColumnSparkline.prototype.formatLabelValue = function (value) {\n return value % 1 !== 0 ? value.toFixed(1) : value.toFixed(0);\n };\n return BarColumnSparkline;\n}(Sparkline));\n\nvar __extends$$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar BarSparkline = /** @class */ (function (_super) {\n __extends$$(BarSparkline, _super);\n function BarSparkline() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BarSparkline.prototype.updateYScaleRange = function () {\n var _a = this, seriesRect = _a.seriesRect, yScale = _a.yScale;\n yScale.range = [0, seriesRect.width];\n };\n BarSparkline.prototype.updateXScaleRange = function () {\n var _a = this, xScale = _a.xScale, seriesRect = _a.seriesRect, paddingOuter = _a.paddingOuter, paddingInner = _a.paddingInner;\n if (xScale instanceof BandScale) {\n xScale.range = [0, seriesRect.height];\n xScale.paddingInner = paddingInner;\n xScale.paddingOuter = paddingOuter;\n }\n else {\n // last node will be clipped if the scale is not a band scale\n // subtract last band width from the range so that the last band is not clipped\n var step = this.calculateStep(seriesRect.height);\n // PaddingOuter and paddingInner are fractions of the step with values between 0 and 1\n var padding = step * paddingOuter; // left and right outer padding\n this.bandWidth = step * (1 - paddingInner);\n xScale.range = [padding, seriesRect.height - padding - this.bandWidth];\n }\n };\n BarSparkline.prototype.updateAxisLine = function () {\n var _a = this, yScale = _a.yScale, axis = _a.axis, axisLine = _a.axisLine, seriesRect = _a.seriesRect;\n var strokeWidth = axis.strokeWidth;\n axisLine.x1 = 0;\n axisLine.x2 = 0;\n axisLine.y1 = 0;\n axisLine.y2 = seriesRect.height;\n axisLine.stroke = axis.stroke;\n axisLine.strokeWidth = strokeWidth + (strokeWidth % 2 === 1 ? 1 : 0);\n var yZero = yScale.convert(0);\n axisLine.translationX = yZero;\n };\n BarSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth, label = _a.label;\n if (!data) {\n return;\n }\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n var nodeData = [];\n var yZero = yScale.convert(0);\n for (var i = 0, n = yData.length; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var invalidDatum = yDatum === undefined;\n if (invalidDatum) {\n yDatum = 0;\n }\n var y = xScale.convert(xDatum);\n var x = Math.min(yScale.convert(yDatum), yZero);\n var bottom = Math.max(yScale.convert(yDatum), yZero);\n // if the scale is a band scale, the width of the rects will be the bandwidth, otherwise the width of the rects will be the range / number of items in the data\n var height = xScale instanceof BandScale\n ? xScale.bandwidth\n : this.bandWidth;\n var width = bottom - x;\n var midPoint = {\n x: yZero,\n y: y,\n };\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({ value: yDatum });\n }\n else {\n labelText = yDatum !== undefined && isNumber(yDatum) ? this.formatLabelValue(yDatum) : '';\n }\n var labelY = y + height / 2;\n var labelX = void 0;\n var labelTextBaseline = 'middle';\n var labelTextAlign = void 0;\n var isPositiveY = yDatum !== undefined && yDatum >= 0;\n var labelPadding = 4;\n if (labelPlacement === BarColumnLabelPlacement.Center) {\n labelX = x + width / 2;\n labelTextAlign = 'center';\n }\n else if (labelPlacement === BarColumnLabelPlacement.OutsideEnd) {\n labelX = x + (isPositiveY ? width + labelPadding : -labelPadding);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n else if (labelPlacement === BarColumnLabelPlacement.InsideEnd) {\n labelX = x + (isPositiveY ? width - labelPadding : labelPadding);\n labelTextAlign = isPositiveY ? 'end' : 'start';\n var textSize = HdpiCanvas.getTextSize(labelText, labelFontFamily);\n var textWidth = textSize.width || 20;\n var positiveBoundary = yZero + textWidth;\n var negativeBoundary = yZero - textWidth;\n var exceedsBoundaries = (isPositiveY && labelX < positiveBoundary) || (!isPositiveY && labelX > negativeBoundary);\n if (exceedsBoundaries) {\n // if labelX exceeds the boundary, labels should be positioned at `insideBase`.\n labelX = yZero + labelPadding * (isPositiveY ? 1 : -1);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n }\n else {\n // if labelPlacement === BarColumnLabelPlacement.InsideBase\n labelX = yZero + labelPadding * (isPositiveY ? 1 : -1);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n nodeData.push({\n x: x,\n y: y,\n width: width,\n height: height,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n seriesDatum: { x: xDatum, y: invalidDatum ? undefined : yDatum },\n point: midPoint,\n label: {\n x: labelX,\n y: labelY,\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n },\n });\n }\n return nodeData;\n };\n BarSparkline.prototype.getDistance = function (p1, p2) {\n return Math.abs(p1.y - p2.y);\n };\n BarSparkline.className = 'BarSparkline';\n return BarSparkline;\n}(BarColumnSparkline));\n\nvar __extends$10 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ColumnSparkline = /** @class */ (function (_super) {\n __extends$10(ColumnSparkline, _super);\n function ColumnSparkline() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnSparkline.prototype.updateYScaleRange = function () {\n var _a = this, seriesRect = _a.seriesRect, yScale = _a.yScale;\n yScale.range = [seriesRect.height, 0];\n };\n ColumnSparkline.prototype.updateXScaleRange = function () {\n var _a = this, xScale = _a.xScale, seriesRect = _a.seriesRect, paddingOuter = _a.paddingOuter, paddingInner = _a.paddingInner;\n if (xScale instanceof BandScale) {\n xScale.range = [0, seriesRect.width];\n xScale.paddingInner = paddingInner;\n xScale.paddingOuter = paddingOuter;\n }\n else {\n // last node will be clipped if the scale is not a band scale\n // subtract last band width from the range so that the last band is not clipped\n var step = this.calculateStep(seriesRect.width);\n // PaddingOuter and paddingInner are fractions of the step with values between 0 and 1\n var padding = step * paddingOuter; // left and right outer padding\n this.bandWidth = step * (1 - paddingInner);\n xScale.range = [padding, seriesRect.width - padding - this.bandWidth];\n }\n };\n ColumnSparkline.prototype.updateAxisLine = function () {\n var _a = this, yScale = _a.yScale, axis = _a.axis, axisLine = _a.axisLine, seriesRect = _a.seriesRect;\n var strokeWidth = axis.strokeWidth;\n axisLine.x1 = 0;\n axisLine.x2 = seriesRect.width;\n axisLine.y1 = 0;\n axisLine.y2 = 0;\n axisLine.stroke = axis.stroke;\n axisLine.strokeWidth = strokeWidth + (strokeWidth % 2 === 1 ? 1 : 0);\n var yZero = yScale.convert(0);\n axisLine.translationY = yZero;\n };\n ColumnSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth, label = _a.label;\n if (!data) {\n return;\n }\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n var nodeData = [];\n var yZero = yScale.convert(0);\n for (var i = 0, n = yData.length; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var invalidDatum = yDatum === undefined;\n if (invalidDatum) {\n yDatum = 0;\n }\n var y = Math.min(yScale.convert(yDatum), yZero);\n var x = xScale.convert(xDatum);\n var bottom = Math.max(yScale.convert(yDatum), yZero);\n // if the scale is a band scale, the width of the rects will be the bandwidth, otherwise the width of the rects will be the range / number of items in the data\n var width = xScale instanceof BandScale\n ? xScale.bandwidth\n : this.bandWidth;\n var height = bottom - y;\n var midPoint = {\n x: x + width / 2,\n y: yZero,\n };\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({ value: yDatum });\n }\n else {\n labelText = yDatum !== undefined && isNumber(yDatum) ? this.formatLabelValue(yDatum) : '';\n }\n var labelX = x + width / 2;\n var labelY = void 0;\n var labelTextAlign = 'center';\n var labelTextBaseline = void 0;\n var isPositiveY = yDatum !== undefined && yDatum >= 0;\n var labelPadding = 2;\n if (labelPlacement === BarColumnLabelPlacement.Center) {\n labelY = y + height / 2;\n labelTextBaseline = 'middle';\n }\n else if (labelPlacement === BarColumnLabelPlacement.OutsideEnd) {\n labelY = y + (isPositiveY ? -labelPadding : height + labelPadding);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n else if (labelPlacement === BarColumnLabelPlacement.InsideEnd) {\n labelY = y + (isPositiveY ? labelPadding : height - labelPadding);\n labelTextBaseline = isPositiveY ? 'top' : 'bottom';\n var textSize = HdpiCanvas.getTextSize(labelText, labelFontFamily);\n var textHeight = textSize.height || 10;\n var positiveBoundary = yZero - textHeight;\n var negativeBoundary = yZero + textHeight;\n var exceedsBoundaries = (isPositiveY && labelY > positiveBoundary) || (!isPositiveY && labelY < negativeBoundary);\n if (exceedsBoundaries) {\n // if labelY exceeds the y boundary, labels should be positioned at the insideBase\n labelY = yZero + labelPadding * (isPositiveY ? -1 : 1);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n }\n else {\n // if labelPlacement === BarColumnLabelPlacement.InsideBase\n labelY = yZero + labelPadding * (isPositiveY ? -1 : 1);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n nodeData.push({\n x: x,\n y: y,\n width: width,\n height: height,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n seriesDatum: { x: xDatum, y: invalidDatum ? undefined : yDatum },\n point: midPoint,\n label: {\n x: labelX,\n y: labelY,\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n },\n });\n }\n return nodeData;\n };\n ColumnSparkline.className = 'ColumnSparkline';\n return ColumnSparkline;\n}(BarColumnSparkline));\n\nvar AgSparkline = /** @class */ (function () {\n function AgSparkline() {\n }\n AgSparkline.create = function (options, tooltip) {\n // avoid mutating user provided options\n options = Object.create(options);\n var sparkline = getSparklineInstance(options.type);\n if (tooltip) {\n sparkline.tooltip = tooltip;\n }\n initSparkline(sparkline, options);\n initSparklineByType(sparkline, options);\n if (options.data) {\n sparkline.data = options.data;\n }\n return sparkline;\n };\n return AgSparkline;\n}());\nfunction getSparklineInstance(type) {\n if (type === void 0) { type = 'line'; }\n switch (type) {\n case 'column':\n return new ColumnSparkline();\n case 'bar':\n return new BarSparkline();\n case 'area':\n return new AreaSparkline();\n case 'line':\n default:\n return new LineSparkline();\n }\n}\nfunction initSparklineByType(sparkline, options) {\n switch (options.type) {\n case 'bar':\n initBarColumnSparkline(sparkline, options);\n break;\n case 'column':\n initBarColumnSparkline(sparkline, options);\n break;\n case 'area':\n initAreaSparkline(sparkline, options);\n break;\n case 'line':\n default:\n initLineSparkline(sparkline, options);\n break;\n }\n}\nfunction initSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'context', options.context, options);\n setValueIfPropertyExists(sparkline, 'width', options.width, options);\n setValueIfPropertyExists(sparkline, 'height', options.height, options);\n setValueIfPropertyExists(sparkline, 'container', options.container, options);\n setValueIfPropertyExists(sparkline, 'xKey', options.xKey, options);\n setValueIfPropertyExists(sparkline, 'yKey', options.yKey, options);\n if (options.padding) {\n initPaddingOptions(sparkline.padding, options.padding);\n }\n if (options.axis) {\n initAxisOptions(sparkline.axis, options.axis);\n }\n if (options.highlightStyle) {\n initHighlightStyleOptions(sparkline.highlightStyle, options.highlightStyle);\n }\n if (options.tooltip && sparkline.tooltip) {\n initTooltipOptions(sparkline.tooltip, options.tooltip);\n }\n}\nfunction initLineSparkline(sparkline, options) {\n if (options.marker) {\n initMarkerOptions(sparkline.marker, options.marker);\n }\n if (options.line) {\n initLineOptions(sparkline.line, options.line);\n }\n if (options.crosshairs) {\n initCrosshairsOptions(sparkline.crosshairs, options.crosshairs);\n }\n}\nfunction initAreaSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'fill', options.fill, options);\n if (options.marker) {\n initMarkerOptions(sparkline.marker, options.marker);\n }\n if (options.line) {\n initLineOptions(sparkline.line, options.line);\n }\n if (options.crosshairs) {\n initCrosshairsOptions(sparkline.crosshairs, options.crosshairs);\n }\n}\nfunction initBarColumnSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'valueAxisDomain', options.valueAxisDomain, options);\n setValueIfPropertyExists(sparkline, 'fill', options.fill, options);\n setValueIfPropertyExists(sparkline, 'stroke', options.stroke, options);\n setValueIfPropertyExists(sparkline, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(sparkline, 'paddingInner', options.paddingInner, options);\n setValueIfPropertyExists(sparkline, 'paddingOuter', options.paddingOuter, options);\n setValueIfPropertyExists(sparkline, 'formatter', options.formatter, options);\n if (options.label) {\n initLabelOptions(sparkline.label, options.label);\n }\n}\nfunction initPaddingOptions(target, options) {\n setValueIfPropertyExists(target, 'top', options.top, options);\n setValueIfPropertyExists(target, 'right', options.right, options);\n setValueIfPropertyExists(target, 'bottom', options.bottom, options);\n setValueIfPropertyExists(target, 'left', options.left, options);\n}\nfunction initMarkerOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'size', options.size, options);\n setValueIfPropertyExists(target, 'shape', options.shape, options);\n setValueIfPropertyExists(target, 'fill', options.fill, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(target, 'formatter', options.formatter, options);\n}\nfunction initLabelOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'fontStyle', options.fontStyle, options);\n setValueIfPropertyExists(target, 'fontWeight', options.fontWeight, options);\n setValueIfPropertyExists(target, 'fontSize', options.fontSize, options);\n setValueIfPropertyExists(target, 'fontFamily', options.fontFamily, options);\n setValueIfPropertyExists(target, 'textAlign', options.textAlign, options);\n setValueIfPropertyExists(target, 'textBaseline', options.textBaseline, options);\n setValueIfPropertyExists(target, 'color', options.color, options);\n setValueIfPropertyExists(target, 'formatter', options.formatter, options);\n setValueIfPropertyExists(target, 'placement', options.placement, options);\n}\nfunction initLineOptions(target, options) {\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initAxisOptions(target, options) {\n setValueIfPropertyExists(target, 'type', options.type, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initHighlightStyleOptions(target, options) {\n setValueIfPropertyExists(target, 'fill', options.fill, options);\n setValueIfPropertyExists(target, 'size', options.size, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initTooltipOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'container', options.container, options);\n setValueIfPropertyExists(target, 'xOffset', options.xOffset, options);\n setValueIfPropertyExists(target, 'yOffset', options.yOffset, options);\n setValueIfPropertyExists(target, 'renderer', options.renderer, options);\n}\nfunction initCrosshairsOptions(target, options) {\n if (target.xLine && options.xLine) {\n initCrosshairLineOptions(target.xLine, options.xLine);\n }\n if (target.yLine && options.yLine) {\n initCrosshairLineOptions(target.yLine, options.yLine);\n }\n}\nfunction initCrosshairLineOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(target, 'lineDash', options.lineDash, options);\n setValueIfPropertyExists(target, 'lineCap', options.lineCap, options);\n}\nvar doOnceFlags = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce(func, key) {\n if (doOnceFlags[key]) {\n return;\n }\n func();\n doOnceFlags[key] = true;\n}\nvar offsetValidator = function (property, value, defaultOffset) {\n if (isNumber(value)) {\n return true;\n }\n var message = \"AG Charts: \" + property + \" must be a number, the value you provided is not a valid number. Using the default of \" + defaultOffset + \"px.\";\n doOnce(function () { return console.warn(message); }, property + \" not a number\");\n return false;\n};\nvar validators = {\n xOffset: offsetValidator,\n yOffset: offsetValidator\n};\nfunction setValueIfPropertyExists(target, property, value, options) {\n if (property in options) {\n if (property in target) {\n var validator = validators[property];\n var isValid = validator ? validator(property, value, target[property]) : true;\n if (isValid && target[property] !== value) {\n // only set property if the value is different to new value\n target[property] = value;\n }\n }\n else {\n console.warn(\"Property \" + property + \" does not exist on the target object.\");\n }\n }\n}\n\nvar __extends$11 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$5 = (undefined && undefined.__assign) || function () {\n __assign$5 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$5.apply(this, arguments);\n};\nvar __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SparklineCellRenderer = /** @class */ (function (_super) {\n __extends$11(SparklineCellRenderer, _super);\n function SparklineCellRenderer() {\n return _super.call(this, SparklineCellRenderer.TEMPLATE) || this;\n }\n SparklineCellRenderer.prototype.init = function (params) {\n var _this = this;\n var firstTimeIn = true;\n var updateSparkline = function () {\n var _a = _this.getGui(), clientWidth = _a.clientWidth, clientHeight = _a.clientHeight;\n if (clientWidth === 0 || clientHeight === 0) {\n return;\n }\n if (firstTimeIn) {\n var options = __assign$5({ data: params.value, width: clientWidth, height: clientHeight, context: {\n data: params.data,\n } }, params.sparklineOptions);\n // create new instance of sparkline\n _this.sparkline = AgSparkline.create(options, _this.sparklineTooltipSingleton.getSparklineTooltip());\n // append sparkline canvas to cell renderer element\n _this.eSparkline.appendChild(_this.sparkline.canvasElement);\n firstTimeIn = false;\n }\n else {\n _this.sparkline.width = clientWidth;\n _this.sparkline.height = clientHeight;\n }\n };\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.getGui(), updateSparkline);\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n SparklineCellRenderer.prototype.refresh = function (params) {\n if (this.sparkline) {\n this.sparkline.data = params.value;\n return true;\n }\n return false;\n };\n SparklineCellRenderer.prototype.destroy = function () {\n if (this.sparkline) {\n this.sparkline.destroy();\n }\n _super.prototype.destroy.call(this);\n };\n SparklineCellRenderer.TEMPLATE /* html */ = \"
\\n \\n
\";\n __decorate$E([\n agGridCommunity.RefSelector('eSparkline')\n ], SparklineCellRenderer.prototype, \"eSparkline\", void 0);\n __decorate$E([\n agGridCommunity.Autowired('resizeObserverService')\n ], SparklineCellRenderer.prototype, \"resizeObserverService\", void 0);\n __decorate$E([\n agGridCommunity.Autowired('sparklineTooltipSingleton')\n ], SparklineCellRenderer.prototype, \"sparklineTooltipSingleton\", void 0);\n return SparklineCellRenderer;\n}(agGridCommunity.Component));\n\nvar __extends$12 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * This 'bean' creates a single sparkline tooltip that is bound to the grid lifecycle.\n */\nvar SparklineTooltipSingleton = /** @class */ (function (_super) {\n __extends$12(SparklineTooltipSingleton, _super);\n function SparklineTooltipSingleton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SparklineTooltipSingleton.prototype.postConstruct = function () {\n this.tooltip = new SparklineTooltip();\n };\n SparklineTooltipSingleton.prototype.getSparklineTooltip = function () {\n return this.tooltip;\n };\n SparklineTooltipSingleton.prototype.destroyTooltip = function () {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n };\n __decorate$F([\n agGridCommunity.PostConstruct\n ], SparklineTooltipSingleton.prototype, \"postConstruct\", null);\n __decorate$F([\n agGridCommunity.PreDestroy\n ], SparklineTooltipSingleton.prototype, \"destroyTooltip\", null);\n SparklineTooltipSingleton = __decorate$F([\n agGridCommunity.Bean('sparklineTooltipSingleton')\n ], SparklineTooltipSingleton);\n return SparklineTooltipSingleton;\n}(agGridCommunity.BeanStub));\n\nvar SparklinesModule = {\n moduleName: agGridCommunity.ModuleNames.SparklinesModule,\n beans: [SparklineTooltipSingleton],\n userComponents: [{ componentName: 'agSparklineCellRenderer', componentClass: SparklineCellRenderer }],\n dependantModules: [EnterpriseCoreModule],\n};\n\nvar __extends$13 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartDatasource = /** @class */ (function (_super) {\n __extends$13(ChartDatasource, _super);\n function ChartDatasource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartDatasource.prototype.getData = function (params) {\n if (params.crossFiltering) {\n if (params.grouping) {\n console.warn(\"AG Grid: crossing filtering with row grouping is not supported.\");\n return { chartData: [], columnNames: {} };\n }\n if (!this.gridOptionsWrapper.isRowModelDefault()) {\n console.warn(\"AG Grid: crossing filtering is only supported in the client side row model.\");\n return { chartData: [], columnNames: {} };\n }\n }\n var isServerSide = this.gridOptionsWrapper.isRowModelServerSide();\n if (isServerSide && params.pivoting) {\n this.updatePivotKeysForSSRM();\n }\n var result = this.extractRowsFromGridRowModel(params);\n result.chartData = this.aggregateRowsByDimension(params, result.chartData);\n return result;\n };\n ChartDatasource.prototype.extractRowsFromGridRowModel = function (params) {\n var _this = this;\n var extractedRowData = [];\n var columnNames = {};\n // maps used to keep track of expanded groups that need to be removed\n var groupNodeIndexes = {};\n var groupsToRemove = {};\n // only used when cross filtering\n var filteredNodes = {};\n var allRowNodes = [];\n var numRows;\n if (params.crossFiltering) {\n filteredNodes = this.getFilteredRowNodes();\n allRowNodes = this.getAllRowNodes();\n numRows = allRowNodes.length;\n }\n else {\n // make sure enough rows in range to chart. if user filters and less rows, then end row will be\n // the last displayed row, not where the range ends.\n var modelLastRow = this.gridRowModel.getRowCount() - 1;\n var rangeLastRow = params.endRow >= 0 ? Math.min(params.endRow, modelLastRow) : modelLastRow;\n numRows = rangeLastRow - params.startRow + 1;\n }\n var _loop_1 = function (i) {\n var data = {};\n var rowNode = params.crossFiltering ? allRowNodes[i] : this_1.gridRowModel.getRow(i + params.startRow);\n // first get data for dimensions columns\n params.dimensionCols.forEach(function (col) {\n var colId = col.colId;\n var column = _this.columnModel.getGridColumn(colId);\n if (column) {\n var valueObject = _this.valueService.getValue(column, rowNode);\n // when grouping we also need to build up multi category labels for charts\n if (params.grouping) {\n var valueString = valueObject && valueObject.toString ? String(valueObject.toString()) : '';\n // traverse parents to extract group label path\n var labels = ChartDatasource.getGroupLabels(rowNode, valueString);\n data[colId] = {\n labels: labels, toString: function () {\n return this.labels.filter(function (l) { return !!l; }).reverse().join(' - ');\n }\n };\n // keep track of group node indexes, so they can be padded when other groups are expanded\n if (rowNode.group) {\n groupNodeIndexes[labels.toString()] = i;\n }\n // if node (group or leaf) has parents then it is expanded and should be removed\n var groupKey = labels.slice(1, labels.length).toString();\n if (groupKey) {\n groupsToRemove[groupKey] = groupNodeIndexes[groupKey];\n }\n }\n else {\n // leaf nodes can be directly added to dimension columns\n data[colId] = valueObject;\n }\n }\n else {\n // introduce a default category when no dimensions exist with a value based off row index (+1)\n data[ChartDataModel.DEFAULT_CATEGORY] = i + 1;\n }\n });\n // then get data for value columns\n params.valueCols.forEach(function (col) {\n var columnNamesArr = [];\n // pivot keys should be added first\n var pivotKeys = col.getColDef().pivotKeys;\n if (pivotKeys) {\n columnNamesArr = pivotKeys.slice();\n }\n // then add column header name to results\n var headerName = col.getColDef().headerName;\n if (headerName) {\n columnNamesArr.push(headerName);\n }\n // add array of column names to results\n if (columnNamesArr.length > 0) {\n columnNames[col.getId()] = columnNamesArr;\n }\n var colId = col.getColId();\n if (params.crossFiltering) {\n var filteredOutColId = colId + '-filtered-out';\n // add data value to value column\n var value = _this.valueService.getValue(col, rowNode);\n var actualValue = value != null && typeof value.toNumber === 'function' ? value.toNumber() : value;\n if (filteredNodes[rowNode.id]) {\n data[colId] = actualValue;\n data[filteredOutColId] = params.aggFunc || params.isScatter ? undefined : 0;\n }\n else {\n data[colId] = params.aggFunc || params.isScatter ? undefined : 0;\n data[filteredOutColId] = actualValue;\n }\n }\n else {\n // add data value to value column\n var value = _this.valueService.getValue(col, rowNode);\n data[colId] = value != null && typeof value.toNumber === 'function' ? value.toNumber() : value;\n }\n });\n // row data from footer nodes should not be included in charts\n if (rowNode.footer) {\n // 'stamping' data as footer to avoid impacting previously calculated `groupIndexesToRemove` and will\n // be removed from the results along with any expanded group nodes\n data.footer = true;\n }\n // add data to results\n extractedRowData.push(data);\n };\n var this_1 = this;\n for (var i = 0; i < numRows; i++) {\n _loop_1(i);\n }\n if (params.grouping) {\n var groupIndexesToRemove_1 = agGridCommunity._.values(groupsToRemove);\n var filterFunc = function (data, index) { return !data.footer && !agGridCommunity._.includes(groupIndexesToRemove_1, index); };\n extractedRowData = extractedRowData.filter(filterFunc);\n }\n return { chartData: extractedRowData, columnNames: columnNames };\n };\n ChartDatasource.prototype.aggregateRowsByDimension = function (params, dataFromGrid) {\n var _this = this;\n var dimensionCols = params.dimensionCols;\n if (!params.aggFunc || dimensionCols.length === 0) {\n return dataFromGrid;\n }\n var lastCol = agGridCommunity._.last(dimensionCols);\n var lastColId = lastCol && lastCol.colId;\n var map = {};\n var dataAggregated = [];\n dataFromGrid.forEach(function (data) {\n var currentMap = map;\n dimensionCols.forEach(function (col) {\n var colId = col.colId;\n var key = data[colId];\n if (colId === lastColId) {\n var groupItem_1 = currentMap[key];\n if (!groupItem_1) {\n groupItem_1 = { __children: [] };\n dimensionCols.forEach(function (dimCol) {\n var dimColId = dimCol.colId;\n groupItem_1[dimColId] = data[dimColId];\n });\n currentMap[key] = groupItem_1;\n dataAggregated.push(groupItem_1);\n }\n groupItem_1.__children.push(data);\n }\n else {\n // map of maps\n if (!currentMap[key]) {\n currentMap[key] = {};\n }\n currentMap = currentMap[key];\n }\n });\n });\n if (agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.RowGroupingModule, 'Charting Aggregation')) {\n dataAggregated.forEach(function (groupItem) { return params.valueCols.forEach(function (col) {\n if (params.crossFiltering) {\n params.valueCols.forEach(function (valueCol) {\n var colId = valueCol.getColId();\n // filtered data\n var dataToAgg = groupItem.__children\n .filter(function (child) { return typeof child[colId] !== 'undefined'; })\n .map(function (child) { return child[colId]; });\n var aggResult = _this.aggregationStage.aggregateValues(dataToAgg, params.aggFunc);\n groupItem[valueCol.getId()] = aggResult && typeof aggResult.value !== 'undefined' ? aggResult.value : aggResult;\n // filtered out data\n var filteredOutColId = colId + \"-filtered-out\";\n var dataToAggFiltered = groupItem.__children\n .filter(function (child) { return typeof child[filteredOutColId] !== 'undefined'; })\n .map(function (child) { return child[filteredOutColId]; });\n var aggResultFiltered = _this.aggregationStage.aggregateValues(dataToAggFiltered, params.aggFunc);\n groupItem[filteredOutColId] = aggResultFiltered && typeof aggResultFiltered.value !== 'undefined' ? aggResultFiltered.value : aggResultFiltered;\n });\n }\n else {\n var dataToAgg = groupItem.__children.map(function (child) { return child[col.getId()]; });\n var aggResult = 0;\n if (agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.RowGroupingModule, 'Charting Aggregation')) {\n aggResult = _this.aggregationStage.aggregateValues(dataToAgg, params.aggFunc);\n }\n groupItem[col.getId()] = aggResult && typeof aggResult.value !== 'undefined' ? aggResult.value : aggResult;\n }\n }); });\n }\n return dataAggregated;\n };\n ChartDatasource.prototype.updatePivotKeysForSSRM = function () {\n var secondaryColumns = this.columnModel.getSecondaryColumns();\n if (!secondaryColumns) {\n return;\n }\n // we don't know what the application will use for the pivot key separator (i.e. '_' or '|' ) as the\n // secondary columns are provided to grid by the application via columnApi.setSecondaryColumns()\n var pivotKeySeparator = this.extractPivotKeySeparator(secondaryColumns);\n // `pivotKeys` is not used by the SSRM for pivoting, so it is safe to reuse this colDef property. This way\n // the same logic can be used for CSRM and SSRM to extract legend names in extractRowsFromGridRowModel()\n secondaryColumns.forEach(function (col) {\n var keys = col.getColId().split(pivotKeySeparator);\n col.getColDef().pivotKeys = keys.slice(0, keys.length - 1);\n });\n };\n ChartDatasource.prototype.extractPivotKeySeparator = function (secondaryColumns) {\n if (secondaryColumns.length === 0) {\n return \"\";\n }\n var extractSeparator = function (columnGroup, childId) {\n var groupId = columnGroup.getGroupId();\n if (!columnGroup.getParent()) {\n // removing groupId ('2000') from childId ('2000|Swimming') yields '|Swimming' so first char is separator\n return childId.split(groupId)[1][0];\n }\n return extractSeparator(columnGroup.getParent(), groupId);\n };\n var firstSecondaryCol = secondaryColumns[0];\n return extractSeparator(firstSecondaryCol.getParent(), firstSecondaryCol.getColId());\n };\n ChartDatasource.getGroupLabels = function (rowNode, initialLabel) {\n var labels = [initialLabel];\n while (rowNode && rowNode.level !== 0) {\n rowNode = rowNode.parent;\n if (rowNode) {\n labels.push(rowNode.key);\n }\n }\n return labels;\n };\n ChartDatasource.prototype.getFilteredRowNodes = function () {\n var filteredNodes = {};\n this.gridRowModel.forEachNodeAfterFilterAndSort(function (rowNode) {\n filteredNodes[rowNode.id] = rowNode;\n });\n return filteredNodes;\n };\n ChartDatasource.prototype.getAllRowNodes = function () {\n var allRowNodes = [];\n this.gridRowModel.forEachNode(function (rowNode) {\n allRowNodes.push(rowNode);\n });\n return this.sortRowNodes(allRowNodes);\n };\n ChartDatasource.prototype.sortRowNodes = function (rowNodes) {\n var sortOptions = this.sortController.getSortOptions();\n var noSort = !sortOptions || sortOptions.length == 0;\n if (noSort)\n return rowNodes;\n return this.rowNodeSorter.doFullSort(rowNodes, sortOptions);\n };\n __decorate$G([\n agGridCommunity.Autowired('rowModel')\n ], ChartDatasource.prototype, \"gridRowModel\", void 0);\n __decorate$G([\n agGridCommunity.Autowired('valueService')\n ], ChartDatasource.prototype, \"valueService\", void 0);\n __decorate$G([\n agGridCommunity.Autowired('columnModel')\n ], ChartDatasource.prototype, \"columnModel\", void 0);\n __decorate$G([\n agGridCommunity.Autowired('rowNodeSorter')\n ], ChartDatasource.prototype, \"rowNodeSorter\", void 0);\n __decorate$G([\n agGridCommunity.Autowired('sortController')\n ], ChartDatasource.prototype, \"sortController\", void 0);\n __decorate$G([\n agGridCommunity.Optional('aggregationStage')\n ], ChartDatasource.prototype, \"aggregationStage\", void 0);\n return ChartDatasource;\n}(agGridCommunity.BeanStub));\n\nvar __extends$14 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$i = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$8 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$i(arguments[i]));\n return ar;\n};\nvar ChartDataModel = /** @class */ (function (_super) {\n __extends$14(ChartDataModel, _super);\n function ChartDataModel(params) {\n var _this = _super.call(this) || this;\n _this.unlinked = false;\n _this.chartData = [];\n _this.valueColState = [];\n _this.dimensionColState = [];\n _this.columnNames = {};\n _this.grouping = false;\n _this.crossFiltering = false;\n // this control flag is used to only log warning for the initial user config\n _this.suppressComboChartWarnings = false;\n _this.chartId = params.chartId;\n _this.chartType = params.chartType;\n _this.pivotChart = params.pivotChart;\n _this.chartThemeName = params.chartThemeName;\n _this.aggFunc = params.aggFunc;\n _this.referenceCellRange = params.cellRange;\n _this.suppliedCellRange = params.cellRange;\n _this.suppressChartRanges = params.suppressChartRanges;\n _this.unlinked = !!params.unlinkChart;\n _this.crossFiltering = !!params.crossFiltering;\n _this.seriesChartTypes = params.seriesChartTypes || [];\n _this.initComboCharts(params);\n return _this;\n }\n ChartDataModel.prototype.initComboCharts = function (params) {\n var seriesChartTypesExist = this.seriesChartTypes && this.seriesChartTypes.length > 0;\n var customCombo = params.chartType === 'customCombo' || seriesChartTypesExist;\n if (customCombo) {\n // it is not necessary to supply a chart type for combo charts when `seriesChartTypes` is supplied\n this.chartType = 'customCombo';\n // cache supplied `seriesChartTypes` to allow switching between different chart types in the settings panel\n this.savedCustomSeriesChartTypes = this.seriesChartTypes || [];\n }\n };\n ChartDataModel.prototype.init = function () {\n this.datasource = this.createManagedBean(new ChartDatasource());\n this.updateCellRanges();\n };\n ChartDataModel.prototype.updateCellRanges = function (updatedColState) {\n if (this.valueCellRange) {\n this.referenceCellRange = this.valueCellRange;\n }\n var _a = this.getAllChartColumns(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var allColsFromRanges = this.getAllColumnsFromRanges();\n if (updatedColState) {\n this.updateColumnState(updatedColState);\n }\n this.setDimensionCellRange(dimensionCols, allColsFromRanges, updatedColState);\n this.setValueCellRange(valueCols, allColsFromRanges, updatedColState);\n if (!updatedColState) {\n this.resetColumnState();\n // dimension / category cell range could be out of sync after resetting column state when row grouping\n this.syncDimensionCellRange();\n }\n this.updateSeriesChartTypes();\n this.updateData();\n };\n ChartDataModel.prototype.updateSeriesChartTypes = function () {\n if (!this.isComboChart()) {\n return;\n }\n // ensure primary only chart types are not placed on secondary axis\n this.seriesChartTypes = this.seriesChartTypes.map(function (seriesChartType) {\n var primaryOnly = ['groupedColumn', 'stackedColumn', 'stackedArea'].includes(seriesChartType.chartType);\n seriesChartType.secondaryAxis = primaryOnly ? false : seriesChartType.secondaryAxis;\n return seriesChartType;\n });\n // note that when seriesChartTypes are supplied the chart type is also changed to 'customCombo'\n if (this.chartType === 'customCombo') {\n this.updateSeriesChartTypesForCustomCombo();\n return;\n }\n this.updateChartSeriesTypesForBuiltInCombos();\n };\n ChartDataModel.prototype.updateSeriesChartTypesForCustomCombo = function () {\n var _this = this;\n var seriesChartTypesSupplied = this.seriesChartTypes && this.seriesChartTypes.length > 0;\n if (!seriesChartTypesSupplied && !this.suppressComboChartWarnings) {\n console.warn(\"AG Grid: 'seriesChartTypes' are required when the 'customCombo' chart type is specified.\");\n }\n // ensure correct chartTypes are supplied\n this.seriesChartTypes = this.seriesChartTypes.map(function (s) {\n if (!ChartDataModel.SUPPORTED_COMBO_CHART_TYPES.includes(s.chartType)) {\n console.warn(\"AG Grid: invalid chartType '\" + s.chartType + \"' supplied in 'seriesChartTypes', converting to 'line' instead.\");\n s.chartType = 'line';\n }\n return s;\n });\n var getSeriesChartType = function (valueCol) {\n if (!_this.savedCustomSeriesChartTypes || _this.savedCustomSeriesChartTypes.length === 0) {\n _this.savedCustomSeriesChartTypes = _this.seriesChartTypes;\n }\n var providedSeriesChartType = _this.savedCustomSeriesChartTypes.find(function (s) { return s.colId === valueCol.colId; });\n if (!providedSeriesChartType) {\n if (valueCol.selected && !_this.suppressComboChartWarnings) {\n console.warn(\"AG Grid: no 'seriesChartType' found for colId = '\" + valueCol.colId + \"', defaulting to 'line'.\");\n }\n return {\n colId: valueCol.colId,\n chartType: 'line',\n secondaryAxis: false\n };\n }\n return providedSeriesChartType;\n };\n var updatedSeriesChartTypes = this.valueColState.map(getSeriesChartType);\n this.seriesChartTypes = updatedSeriesChartTypes;\n // also cache custom `seriesChartTypes` to allow for switching between different chart types\n this.savedCustomSeriesChartTypes = updatedSeriesChartTypes;\n // turn off warnings as first combo chart attempt has completed\n this.suppressComboChartWarnings = true;\n };\n ChartDataModel.prototype.updateChartSeriesTypesForBuiltInCombos = function () {\n var primaryChartType = this.chartType === 'columnLineCombo' ? 'groupedColumn' : 'stackedArea';\n var secondaryChartType = this.chartType === 'columnLineCombo' ? 'line' : 'groupedColumn';\n var selectedCols = this.valueColState.filter(function (cs) { return cs.selected; });\n var lineIndex = Math.ceil(selectedCols.length / 2);\n this.seriesChartTypes = selectedCols.map(function (valueCol, i) {\n var seriesType = (i >= lineIndex) ? secondaryChartType : primaryChartType;\n return { colId: valueCol.colId, chartType: seriesType, secondaryAxis: false };\n });\n };\n ChartDataModel.prototype.updateData = function () {\n var _a = this.getRowIndexes(), startRow = _a.startRow, endRow = _a.endRow;\n if (this.pivotChart) {\n this.resetColumnState();\n }\n this.grouping = this.isGrouping();\n var params = {\n aggFunc: this.aggFunc,\n dimensionCols: [this.getSelectedDimension()],\n grouping: this.grouping,\n pivoting: this.isPivotActive(),\n crossFiltering: this.crossFiltering,\n valueCols: this.getSelectedValueCols(),\n startRow: startRow,\n endRow: endRow,\n isScatter: agGridCommunity._.includes(['scatter', 'bubble'], this.chartType)\n };\n var _b = this.datasource.getData(params), chartData = _b.chartData, columnNames = _b.columnNames;\n this.chartData = chartData;\n this.columnNames = columnNames;\n };\n ChartDataModel.prototype.isGrouping = function () {\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n var groupedCols = usingTreeData ? null : this.columnModel.getRowGroupColumns();\n var isGroupActive = usingTreeData || (groupedCols && groupedCols.length > 0);\n // charts only group when the selected category is a group column\n var colId = this.getSelectedDimension().colId;\n var displayedGroupCols = this.columnModel.getGroupDisplayColumns();\n var groupDimensionSelected = displayedGroupCols.map(function (col) { return col.getColId(); }).some(function (id) { return id === colId; });\n return !!isGroupActive && groupDimensionSelected;\n };\n ChartDataModel.prototype.getSelectedValueCols = function () {\n return this.valueColState.filter(function (cs) { return cs.selected; }).map(function (cs) { return cs.column; });\n };\n ChartDataModel.prototype.getSelectedDimension = function () {\n return this.dimensionColState.filter(function (cs) { return cs.selected; })[0];\n };\n ChartDataModel.prototype.getColDisplayName = function (col) {\n return this.columnModel.getDisplayNameForColumn(col, 'chart');\n };\n ChartDataModel.prototype.isPivotMode = function () {\n return this.columnModel.isPivotMode();\n };\n ChartDataModel.prototype.isPivotActive = function () {\n return this.columnModel.isPivotActive();\n };\n ChartDataModel.prototype.createCellRange = function (type) {\n var columns = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n columns[_i - 1] = arguments[_i];\n }\n return {\n id: this.chartId,\n startRow: this.referenceCellRange.startRow,\n endRow: this.referenceCellRange.endRow,\n columns: columns,\n startColumn: type === agGridCommunity.CellRangeType.DIMENSION ? columns[0] : this.referenceCellRange.startColumn,\n type: type\n };\n };\n ChartDataModel.prototype.getAllColumnsFromRanges = function () {\n if (this.pivotChart) {\n return agGridCommunity._.convertToSet(this.columnModel.getAllDisplayedColumns());\n }\n var columns = this.dimensionCellRange || this.valueCellRange ? [] : this.referenceCellRange.columns;\n if (this.dimensionCellRange) {\n columns.push.apply(columns, __spread$8(this.dimensionCellRange.columns));\n }\n if (this.valueCellRange) {\n columns.push.apply(columns, __spread$8(this.valueCellRange.columns));\n }\n return agGridCommunity._.convertToSet(columns);\n };\n ChartDataModel.prototype.getRowIndexes = function () {\n var startRow = 0, endRow = 0;\n var rangeService = this.rangeService;\n var range = this.valueCellRange;\n if (rangeService && range) {\n startRow = rangeService.getRangeStartRow(range).rowIndex;\n // when the last row the cell range is a pinned 'bottom' row, the `endRow` index is set to -1 which results\n // in the ChartDatasource processing all non pinned rows from the `startRow` index.\n var endRowPosition = rangeService.getRangeEndRow(range);\n endRow = endRowPosition.rowPinned === agGridCommunity.Constants.PINNED_BOTTOM ? -1 : endRowPosition.rowIndex;\n }\n return { startRow: startRow, endRow: endRow };\n };\n ChartDataModel.prototype.getAllChartColumns = function () {\n var _this = this;\n var displayedCols = this.columnModel.getAllDisplayedColumns();\n var dimensionCols = new Set();\n var valueCols = new Set();\n displayedCols.forEach(function (col) {\n var colDef = col.getColDef();\n var chartDataType = colDef.chartDataType;\n if (chartDataType) {\n // chart data type was specified explicitly\n switch (chartDataType) {\n case 'category':\n case 'time':\n dimensionCols.add(col);\n return;\n case 'series':\n valueCols.add(col);\n return;\n case 'excluded':\n return;\n default:\n console.warn(\"AG Grid: unexpected chartDataType value '\" + chartDataType + \"' supplied, instead use 'category', 'series' or 'excluded'\");\n break;\n }\n }\n if (colDef.colId === 'ag-Grid-AutoColumn') {\n dimensionCols.add(col);\n return;\n }\n if (!col.isPrimary()) {\n valueCols.add(col);\n return;\n }\n // if 'chartDataType' is not provided then infer type based data contained in first row\n (_this.isNumberCol(col) ? valueCols : dimensionCols).add(col);\n });\n return { dimensionCols: dimensionCols, valueCols: valueCols };\n };\n ChartDataModel.prototype.isNumberCol = function (col) {\n if (col.getColId() === 'ag-Grid-AutoColumn') {\n return false;\n }\n var row = this.rowRenderer.getRowNode({ rowIndex: 0, rowPinned: null });\n if (!row) {\n return false;\n }\n var cellValue = this.valueService.getValue(col, row);\n if (cellValue == null) {\n cellValue = this.extractLeafData(row, col);\n }\n if (cellValue != null && typeof cellValue.toNumber === 'function') {\n cellValue = cellValue.toNumber();\n }\n return typeof cellValue === 'number';\n };\n ChartDataModel.prototype.extractLeafData = function (row, col) {\n if (!row.allLeafChildren) {\n return null;\n }\n for (var i = 0; i < row.allLeafChildren.length; i++) {\n var childRow = row.allLeafChildren[i];\n var value = this.valueService.getValue(col, childRow);\n if (value != null) {\n return value;\n }\n }\n return null;\n };\n ChartDataModel.prototype.resetColumnState = function () {\n var _this = this;\n var _a = this.getAllChartColumns(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var allCols = this.getAllColumnsFromRanges();\n var isInitialising = this.valueColState.length < 1;\n this.dimensionColState = [];\n this.valueColState = [];\n var hasSelectedDimension = false;\n var order = 1;\n var aggFuncDimension = this.suppliedCellRange.columns[0]; //TODO\n dimensionCols.forEach(function (column) {\n var isAutoGroupCol = column.getColId() === 'ag-Grid-AutoColumn';\n var selected = false;\n if (_this.crossFiltering && _this.aggFunc) {\n if (aggFuncDimension.getColId() === column.getColId()) {\n selected = true;\n }\n }\n else {\n selected = isAutoGroupCol ? true : !hasSelectedDimension && allCols.has(column);\n }\n _this.dimensionColState.push({\n column: column,\n colId: column.getColId(),\n displayName: _this.getColDisplayName(column),\n selected: selected,\n order: order++\n });\n if (selected) {\n hasSelectedDimension = true;\n }\n });\n var defaultCategory = {\n colId: ChartDataModel.DEFAULT_CATEGORY,\n displayName: this.chartTranslationService.translate('defaultCategory'),\n selected: !hasSelectedDimension,\n order: 0\n };\n this.dimensionColState.unshift(defaultCategory);\n var valueColumnsFromReferenceRange = this.referenceCellRange.columns.filter(function (c) { return valueCols.has(c); });\n valueCols.forEach(function (column) {\n // first time the value cell range is set, preserve the column order from the supplied range\n if (isInitialising && agGridCommunity._.includes(_this.referenceCellRange.columns, column)) {\n column = valueColumnsFromReferenceRange.shift();\n }\n _this.valueColState.push({\n column: column,\n colId: column.getColId(),\n displayName: _this.getColDisplayName(column),\n selected: allCols.has(column),\n order: order++\n });\n });\n };\n ChartDataModel.prototype.updateColumnState = function (updatedCol) {\n var idsMatch = function (cs) { return cs.colId === updatedCol.colId; };\n var _a = this, dimensionColState = _a.dimensionColState, valueColState = _a.valueColState;\n if (dimensionColState.filter(idsMatch).length > 0) {\n // only one dimension should be selected\n dimensionColState.forEach(function (cs) { return cs.selected = idsMatch(cs); });\n }\n else {\n // just update the selected value on the supplied value column\n valueColState.filter(idsMatch).forEach(function (cs) { return cs.selected = updatedCol.selected; });\n }\n var allColumns = __spread$8(dimensionColState, valueColState);\n var orderedColIds = [];\n // calculate new order\n allColumns.forEach(function (col, i) {\n if (i === updatedCol.order) {\n orderedColIds.push(updatedCol.colId);\n }\n if (col.colId !== updatedCol.colId) {\n orderedColIds.push(col.colId);\n }\n });\n // update col state with new order\n allColumns.forEach(function (col) {\n var order = orderedColIds.indexOf(col.colId);\n col.order = order >= 0 ? orderedColIds.indexOf(col.colId) : allColumns.length - 1;\n });\n this.reorderColState();\n };\n ChartDataModel.prototype.reorderColState = function () {\n var ascColStateOrder = function (a, b) { return a.order - b.order; };\n this.dimensionColState.sort(ascColStateOrder);\n this.valueColState.sort(ascColStateOrder);\n };\n ChartDataModel.prototype.setDimensionCellRange = function (dimensionCols, colsInRange, updatedColState) {\n var _this = this;\n this.dimensionCellRange = undefined;\n if (!updatedColState && !this.dimensionColState.length) {\n // use first dimension column in range by default\n dimensionCols.forEach(function (col) {\n if (_this.dimensionCellRange || !colsInRange.has(col)) {\n return;\n }\n _this.dimensionCellRange = _this.createCellRange(agGridCommunity.CellRangeType.DIMENSION, col);\n });\n return;\n }\n var selectedDimensionColState = updatedColState;\n if (this.crossFiltering && this.aggFunc) {\n var aggFuncDimension_1 = this.suppliedCellRange.columns[0]; //TODO\n selectedDimensionColState = this.dimensionColState.filter(function (cs) { return cs.colId === aggFuncDimension_1.getColId(); })[0];\n }\n else if (!selectedDimensionColState || !dimensionCols.has(selectedDimensionColState.column)) {\n selectedDimensionColState = this.dimensionColState.filter(function (cs) { return cs.selected; })[0];\n }\n if (selectedDimensionColState && selectedDimensionColState.colId !== ChartDataModel.DEFAULT_CATEGORY) {\n this.dimensionCellRange = this.createCellRange(agGridCommunity.CellRangeType.DIMENSION, selectedDimensionColState.column);\n }\n };\n ChartDataModel.prototype.setValueCellRange = function (valueCols, colsInRange, updatedColState) {\n this.valueCellRange = undefined;\n var selectedValueCols = [];\n valueCols.forEach(function (col) {\n if (updatedColState && updatedColState.colId === col.getColId()) {\n if (updatedColState.selected) {\n selectedValueCols.push(updatedColState.column);\n }\n }\n else if (colsInRange.has(col)) {\n selectedValueCols.push(col);\n }\n });\n if (selectedValueCols.length > 0) {\n var orderedColIds_1 = [];\n if (this.valueColState.length > 0) {\n orderedColIds_1 = this.valueColState.map(function (c) { return c.colId; });\n }\n else {\n colsInRange.forEach(function (c) { return orderedColIds_1.push(c.getColId()); });\n }\n selectedValueCols.sort(function (a, b) { return orderedColIds_1.indexOf(a.getColId()) - orderedColIds_1.indexOf(b.getColId()); });\n this.valueCellRange = this.createCellRange.apply(this, __spread$8([agGridCommunity.CellRangeType.VALUE], selectedValueCols));\n }\n };\n ChartDataModel.prototype.syncDimensionCellRange = function () {\n var selectedDimension = this.getSelectedDimension();\n if (selectedDimension && selectedDimension.column) {\n this.dimensionCellRange = this.createCellRange(agGridCommunity.CellRangeType.DIMENSION, selectedDimension.column);\n }\n };\n ChartDataModel.prototype.isComboChart = function () {\n return ['columnLineCombo', 'areaColumnCombo', 'customCombo'].includes(this.chartType);\n };\n ChartDataModel.DEFAULT_CATEGORY = 'AG-GRID-DEFAULT-CATEGORY';\n ChartDataModel.SUPPORTED_COMBO_CHART_TYPES = ['line', 'groupedColumn', 'stackedColumn', 'area', 'stackedArea'];\n __decorate$H([\n agGridCommunity.Autowired('columnModel')\n ], ChartDataModel.prototype, \"columnModel\", void 0);\n __decorate$H([\n agGridCommunity.Autowired('valueService')\n ], ChartDataModel.prototype, \"valueService\", void 0);\n __decorate$H([\n agGridCommunity.Autowired('rangeService')\n ], ChartDataModel.prototype, \"rangeService\", void 0);\n __decorate$H([\n agGridCommunity.Autowired('rowRenderer')\n ], ChartDataModel.prototype, \"rowRenderer\", void 0);\n __decorate$H([\n agGridCommunity.Autowired('chartTranslationService')\n ], ChartDataModel.prototype, \"chartTranslationService\", void 0);\n __decorate$H([\n agGridCommunity.PostConstruct\n ], ChartDataModel.prototype, \"init\", null);\n return ChartDataModel;\n}(agGridCommunity.BeanStub));\n\nvar __assign$6 = (undefined && undefined.__assign) || function () {\n __assign$6 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$6.apply(this, arguments);\n};\nvar Observable$1 = /** @class */ (function () {\n function Observable() {\n // Note that these maps can't be specified generically, so they are kept untyped.\n // Some methods in this class only need generics in their signatures, the generics inside the methods\n // are just for clarity. The generics in signatures allow for static type checking of user provided\n // listeners and for type inference, so that the users wouldn't have to specify the type of parameters\n // of their inline lambdas.\n this.allPropertyListeners = new Map(); // property name => property change listener => scopes\n this.allEventListeners = new Map(); // event type => event listener => scopes\n }\n Observable.prototype.addPropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (!propertyListeners) {\n propertyListeners = new Map();\n allPropertyListeners.set(name, propertyListeners);\n }\n if (!propertyListeners.has(listener)) {\n var scopes_1 = new Set();\n propertyListeners.set(listener, scopes_1);\n }\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removePropertyListener = function (name, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n if (listener) {\n var scopes = propertyListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n propertyListeners.delete(listener);\n }\n }\n }\n else {\n propertyListeners.clear();\n }\n }\n };\n Observable.prototype.notifyPropertyListeners = function (name, oldValue, value) {\n var _this = this;\n var allPropertyListeners = this.allPropertyListeners;\n var propertyListeners = allPropertyListeners.get(name);\n if (propertyListeners) {\n propertyListeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: name, source: _this, value: value, oldValue: oldValue }); });\n });\n }\n };\n Observable.prototype.addEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (!eventListeners) {\n eventListeners = new Map();\n allEventListeners.set(type, eventListeners);\n }\n if (!eventListeners.has(listener)) {\n var scopes_2 = new Set();\n eventListeners.set(listener, scopes_2);\n }\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.add(scope);\n }\n };\n Observable.prototype.removeEventListener = function (type, listener, scope) {\n if (scope === void 0) { scope = this; }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (eventListeners) {\n if (listener) {\n var scopes = eventListeners.get(listener);\n if (scopes) {\n scopes.delete(scope);\n if (!scopes.size) {\n eventListeners.delete(listener);\n }\n }\n }\n else {\n eventListeners.clear();\n }\n }\n };\n Observable.prototype.notifyEventListeners = function (types) {\n var _this = this;\n var allEventListeners = this.allEventListeners;\n types.forEach(function (type) {\n var listeners = allEventListeners.get(type);\n if (listeners) {\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, { type: type, source: _this }); });\n });\n }\n });\n };\n // 'source' is added automatically and is always the object this method belongs to.\n Observable.prototype.fireEvent = function (event) {\n var _this = this;\n var listeners = this.allEventListeners.get(event.type);\n if (listeners) {\n listeners.forEach(function (scopes, listener) {\n scopes.forEach(function (scope) { return listener.call(scope, __assign$6(__assign$6({}, event), { source: _this })); });\n });\n }\n };\n Observable.privateKeyPrefix = '_';\n return Observable;\n}());\nfunction reactive$1() {\n var events = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n events[_i] = arguments[_i];\n }\n var debug = events.indexOf('debugger') >= 0;\n return function (target, key) {\n // `target` is either a constructor (static member) or prototype (instance member)\n var privateKey = Observable$1.privateKeyPrefix + key;\n var privateKeyEvents = privateKey + 'Events';\n if (!target[key]) {\n if (events) {\n target[privateKeyEvents] = events;\n }\n Object.defineProperty(target, key, {\n set: function (value) {\n var oldValue = this[privateKey];\n // This is a way to stop inside the setter by adding the special\n // 'debugger' event to a reactive property, for example:\n // @reactive('layoutChange', 'debugger') title?: Caption;\n if (debug) { // DO NOT REMOVE\n debugger;\n }\n if (value !== oldValue || (typeof value === 'object' && value !== null)) {\n this[privateKey] = value;\n this.notifyPropertyListeners(key, oldValue, value);\n var events_1 = this[privateKeyEvents];\n if (events_1) {\n this.notifyEventListeners(events_1);\n }\n }\n },\n get: function () {\n return this[privateKey];\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n}\n\nvar __extends$15 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Padding$1 = /** @class */ (function (_super) {\n __extends$15(Padding, _super);\n function Padding(top, right, bottom, left) {\n if (top === void 0) { top = 0; }\n if (right === void 0) { right = top; }\n if (bottom === void 0) { bottom = top; }\n if (left === void 0) { left = right; }\n var _this = _super.call(this) || this;\n _this.top = top;\n _this.right = right;\n _this.bottom = bottom;\n _this.left = left;\n return _this;\n }\n Padding.prototype.clear = function () {\n this.top = this.right = this.bottom = this.left = 0;\n };\n __decorate$I([\n reactive$1('layoutChange')\n ], Padding.prototype, \"top\", void 0);\n __decorate$I([\n reactive$1('layoutChange')\n ], Padding.prototype, \"right\", void 0);\n __decorate$I([\n reactive$1('layoutChange')\n ], Padding.prototype, \"bottom\", void 0);\n __decorate$I([\n reactive$1('layoutChange')\n ], Padding.prototype, \"left\", void 0);\n return Padding;\n}(Observable$1));\n\n// For small data structs like a bounding box, objects are superior to arrays\n// in terms of performance (by 3-4% in Chrome 71, Safari 12 and by 20% in Firefox 64).\n// They are also self descriptive and harder to abuse.\n// For example, one has to do:\n// `ctx.strokeRect(bbox.x, bbox.y, bbox.width, bbox.height);`\n// rather than become enticed by the much slower:\n// `ctx.strokeRect(...bbox);`\n// https://jsperf.com/array-vs-object-create-access\nvar BBox$1 = /** @class */ (function () {\n function BBox(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BBox.prototype.isValid = function () {\n return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height);\n };\n BBox.prototype.dilate = function (value) {\n this.x -= value;\n this.y -= value;\n this.width += value * 2;\n this.height += value * 2;\n };\n BBox.prototype.containsPoint = function (x, y) {\n return x >= this.x && x <= (this.x + this.width)\n && y >= this.y && y <= (this.y + this.height);\n };\n BBox.prototype.render = function (ctx, params) {\n if (params === void 0) { params = BBox.noParams; }\n ctx.save();\n if (params.resetTransform) {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n ctx.strokeStyle = params.strokeStyle || 'cyan';\n ctx.lineWidth = params.lineWidth || 1;\n ctx.strokeRect(this.x, this.y, this.width, this.height);\n if (params.label) {\n ctx.fillStyle = params.fillStyle || 'black';\n ctx.textBaseline = 'bottom';\n ctx.fillText(params.label, this.x, this.y);\n }\n ctx.restore();\n };\n BBox.noParams = {};\n return BBox;\n}());\n\nvar __read$j = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * As of Jan 8, 2019, Firefox still doesn't implement\n * `getTransform(): DOMMatrix;`\n * `setTransform(transform?: DOMMatrix2DInit)`\n * in the `CanvasRenderingContext2D`.\n * Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=928150\n * IE11 and Edge 44 also don't have the support.\n * Thus this class, to keep track of the current transform and\n * combine transformations.\n * Standards:\n * https://html.spec.whatwg.org/dev/canvas.html\n * https://www.w3.org/TR/geometry-1/\n */\nvar Matrix$1 = /** @class */ (function () {\n function Matrix(elements) {\n if (elements === void 0) { elements = [1, 0, 0, 1, 0, 0]; }\n this.elements = elements;\n }\n Matrix.prototype.setElements = function (elements) {\n var e = this.elements;\n // `this.elements = elements.slice()` is 4-5 times slower\n // (in Chrome 71 and FF 64) than manually copying elements,\n // since slicing allocates new memory.\n // The performance of passing parameters individually\n // vs as an array is about the same in both browsers, so we\n // go with a single (array of elements) parameter, because\n // `setElements(elements)` and `setElements([a, b, c, d, e, f])`\n // calls give us roughly the same performance, versus\n // `setElements(...elements)` and `setElements(a, b, c, d, e, f)`,\n // where the spread operator causes a 20-30x performance drop\n // (30x when compiled to ES5's `.apply(this, elements)`\n // 20x when used natively).\n e[0] = elements[0];\n e[1] = elements[1];\n e[2] = elements[2];\n e[3] = elements[3];\n e[4] = elements[4];\n e[5] = elements[5];\n return this;\n };\n Matrix.prototype.setIdentityElements = function () {\n var e = this.elements;\n e[0] = 1;\n e[1] = 0;\n e[2] = 0;\n e[3] = 1;\n e[4] = 0;\n e[5] = 0;\n return this;\n };\n Object.defineProperty(Matrix.prototype, \"identity\", {\n get: function () {\n var e = this.elements;\n return e[0] === 1 && e[1] === 0 && e[2] === 0 &&\n e[3] === 1 && e[4] === 0 && e[5] === 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"a\", {\n get: function () {\n return this.elements[0];\n },\n set: function (value) {\n this.elements[0] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"b\", {\n get: function () {\n return this.elements[1];\n },\n set: function (value) {\n this.elements[1] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"c\", {\n get: function () {\n return this.elements[2];\n },\n set: function (value) {\n this.elements[2] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"d\", {\n get: function () {\n return this.elements[3];\n },\n set: function (value) {\n this.elements[3] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"e\", {\n get: function () {\n return this.elements[4];\n },\n set: function (value) {\n this.elements[4] = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"f\", {\n get: function () {\n return this.elements[5];\n },\n set: function (value) {\n this.elements[5] = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Performs the AxB matrix multiplication and saves the result\n * to `C`, if given, or to `A` otherwise.\n */\n Matrix.prototype.AxB = function (A, B, C) {\n var _a = __read$j(A, 6), m11 = _a[0], m12 = _a[1], m21 = _a[2], m22 = _a[3], m31 = _a[4], m32 = _a[5];\n var _b = __read$j(B, 6), o11 = _b[0], o12 = _b[1], o21 = _b[2], o22 = _b[3], o31 = _b[4], o32 = _b[5];\n C = C || A;\n C[0] = m11 * o11 + m21 * o12;\n C[1] = m12 * o11 + m22 * o12;\n C[2] = m11 * o21 + m21 * o22;\n C[3] = m12 * o21 + m22 * o22;\n C[4] = m11 * o31 + m21 * o32 + m31;\n C[5] = m12 * o31 + m22 * o32 + m32;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns the current matrix.\n * @param other\n */\n Matrix.prototype.multiplySelf = function (other) {\n this.AxB(this.elements, other.elements);\n return this;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns a new matrix.\n * @param other\n */\n Matrix.prototype.multiply = function (other) {\n var elements = new Array(6);\n this.AxB(this.elements, other.elements, elements);\n return new Matrix(elements);\n };\n Matrix.prototype.preMultiplySelf = function (other) {\n this.AxB(other.elements, this.elements, this.elements);\n return this;\n };\n /**\n * Returns the inverse of this matrix as a new matrix.\n */\n Matrix.prototype.inverse = function () {\n var _a = __read$j(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n return new Matrix([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n };\n /**\n * Save the inverse of this matrix to the given matrix.\n */\n Matrix.prototype.inverseTo = function (other) {\n var _a = __read$j(this.elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n other.setElements([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n return this;\n };\n Matrix.prototype.invertSelf = function () {\n var elements = this.elements;\n var _a = __read$j(elements, 6), a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4], f = _a[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n elements[0] = d;\n elements[1] = -b;\n elements[2] = -c;\n elements[3] = a;\n elements[4] = c * f - d * e;\n elements[5] = b * e - a * f;\n return this;\n };\n Matrix.prototype.clone = function () {\n return new Matrix(this.elements.slice());\n };\n Matrix.prototype.transformPoint = function (x, y) {\n var e = this.elements;\n return {\n x: x * e[0] + y * e[2] + e[4],\n y: x * e[1] + y * e[3] + e[5]\n };\n };\n Matrix.prototype.transformBBox = function (bbox, radius, target) {\n if (radius === void 0) { radius = 0; }\n var elements = this.elements;\n var xx = elements[0];\n var xy = elements[1];\n var yx = elements[2];\n var yy = elements[3];\n var h_w = bbox.width * 0.5;\n var h_h = bbox.height * 0.5;\n var cx = bbox.x + h_w;\n var cy = bbox.y + h_h;\n var w, h;\n if (radius) {\n h_w -= radius;\n h_h -= radius;\n var sx = Math.sqrt(xx * xx + yx * yx);\n var sy = Math.sqrt(xy * xy + yy * yy);\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx) + Math.abs(sx * radius);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy) + Math.abs(sy * radius);\n }\n else {\n w = Math.abs(h_w * xx) + Math.abs(h_h * yx);\n h = Math.abs(h_w * xy) + Math.abs(h_h * yy);\n }\n if (!target) {\n target = new BBox$1(0, 0, 0, 0);\n }\n target.x = cx * xx + cy * yx + elements[4] - w;\n target.y = cx * xy + cy * yy + elements[5] - h;\n target.width = w + w;\n target.height = h + h;\n return target;\n };\n Matrix.prototype.toContext = function (ctx) {\n // It's fair to say that matrix multiplications are not cheap.\n // However, updating path definitions on every frame isn't either, so\n // it may be cheaper to just translate paths. It's also fair to\n // say, that most paths will have to be re-rendered anyway, say\n // rectangle paths in a bar chart, where an animation would happen when\n // the data set changes and existing bars are morphed into new ones.\n // Or a pie chart, where old sectors are also morphed into new ones.\n // Same for the line chart. The only plausible case where translating\n // existing paths would be enough, is the scatter chart, where marker\n // icons, typically circles, stay the same size. But if circle radii\n // are bound to some data points, even circle paths would have to be\n // updated. And thus it makes sense to optimize for fewer matrix\n // transforms, where transform matrices of paths are mostly identity\n // matrices and `x`/`y`, `centerX`/`centerY` and similar properties\n // are used to define a path at specific coordinates. And only groups\n // are used to collectively apply a transform to a set of nodes.\n // If the matrix is mostly identity (95% of the time),\n // the `if (this.isIdentity)` check can make this call 3-4 times\n // faster on average: https://jsperf.com/matrix-check-first-vs-always-set\n if (this.identity) {\n return;\n }\n var e = this.elements;\n ctx.transform(e[0], e[1], e[2], e[3], e[4], e[5]);\n };\n Matrix.flyweight = function (elements) {\n if (elements) {\n if (elements instanceof Matrix) {\n Matrix.matrix.setElements(elements.elements);\n }\n else {\n Matrix.matrix.setElements(elements);\n }\n }\n else {\n Matrix.matrix.setIdentityElements();\n }\n return Matrix.matrix;\n };\n Matrix.matrix = new Matrix();\n return Matrix;\n}());\n\nfunction createId$1(instance) {\n var constructor = instance.constructor;\n var className = constructor.className;\n if (!className) {\n throw new Error(\"The \" + constructor + \" is missing the 'className' property.\");\n }\n return className + '-' + (constructor.id = (constructor.id || 0) + 1);\n}\n\nvar __read$k = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar PointerEvents$1;\n(function (PointerEvents) {\n PointerEvents[PointerEvents[\"All\"] = 0] = \"All\";\n PointerEvents[PointerEvents[\"None\"] = 1] = \"None\";\n})(PointerEvents$1 || (PointerEvents$1 = {}));\n/**\n * Abstract scene graph node.\n * Each node can have zero or one parent and belong to zero or one scene.\n */\nvar Node$1 = /** @class */ (function () {\n function Node() {\n /**\n * Unique node ID in the form `ClassName-NaturalNumber`.\n */\n this.id = createId$1(this);\n /**\n * Some number to identify this node, typically within a `Group` node.\n * Usually this will be some enum value used as a selector.\n */\n this.tag = NaN;\n /**\n * To simplify the type system (especially in Selections) we don't have the `Parent` node\n * (one that has children). Instead, we mimic HTML DOM, where any node can have children.\n * But we still need to distinguish regular leaf nodes from container leafs somehow.\n */\n this.isContainerNode = false;\n this._children = [];\n // Used to check for duplicate nodes.\n this.childSet = {}; // new Set()\n // These matrices may need to have package level visibility\n // for performance optimization purposes.\n this.matrix = new Matrix$1();\n this.inverseMatrix = new Matrix$1();\n this._dirtyTransform = false;\n this._scalingX = 1;\n this._scalingY = 1;\n /**\n * The center of scaling.\n * The default value of `null` means the scaling center will be\n * determined automatically, as the center of the bounding box\n * of a node.\n */\n this._scalingCenterX = null;\n this._scalingCenterY = null;\n this._rotationCenterX = null;\n this._rotationCenterY = null;\n /**\n * Rotation angle in radians.\n * The value is set as is. No normalization to the [-180, 180) or [0, 360)\n * interval is performed.\n */\n this._rotation = 0;\n this._translationX = 0;\n this._translationY = 0;\n /**\n * Each time a property of the node that effects how it renders changes\n * the `dirty` property of the node should be set to `true`. The change\n * to the `dirty` property of the node will propagate up to its parents\n * and eventually to the scene, at which point an animation frame callback\n * will be scheduled to rerender the scene and its nodes and reset the `dirty`\n * flags of all nodes and the {@link Scene._dirty | Scene} back to `false`.\n * Since changes to node properties are not rendered immediately, it's possible\n * to change as many properties on as many nodes as needed and the rendering\n * will still only happen once in the next animation frame callback.\n * The animation frame callback is only scheduled if it hasn't been already.\n */\n this._dirty = true;\n this._visible = true;\n this.dirtyZIndex = false;\n this._zIndex = 0;\n this.pointerEvents = PointerEvents$1.All;\n }\n /**\n * This is meaningfully faster than `instanceof` and should be the preferred way\n * of checking inside loops.\n * @param node\n */\n Node.isNode = function (node) {\n return node ? node.matrix !== undefined : false;\n };\n Node.prototype._setScene = function (value) {\n this._scene = value;\n var children = this.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n children[i]._setScene(value);\n }\n };\n Object.defineProperty(Node.prototype, \"scene\", {\n get: function () {\n return this._scene;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype._setParent = function (value) {\n this._parent = value;\n };\n Object.defineProperty(Node.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"children\", {\n get: function () {\n return this._children;\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.countChildren = function (depth) {\n if (depth === void 0) { depth = Node.MAX_SAFE_INTEGER; }\n if (depth <= 0) {\n return 0;\n }\n var children = this.children;\n var n = children.length;\n var size = n;\n for (var i = 0; i < n; i++) {\n size += children[i].countChildren(depth - 1);\n }\n return size;\n };\n /**\n * Appends one or more new node instances to this parent.\n * If one needs to:\n * - move a child to the end of the list of children\n * - move a child from one parent to another (including parents in other scenes)\n * one should use the {@link insertBefore} method instead.\n * @param nodes A node or nodes to append.\n */\n Node.prototype.append = function (nodes) {\n // Passing a single parameter to an open-ended version of `append`\n // would be 30-35% slower than this.\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n // The function takes an array rather than having open-ended\n // arguments like `...nodes: Node[]` because the latter is\n // transpiled to a function where the `arguments` object\n // is copied to a temporary array inside a loop.\n // So an array is created either way. And if we already have\n // an array of nodes we want to add, we have to use the prohibitively\n // expensive spread operator to pass it to the function,\n // and, on top of that, the copy of the `arguments` is still made.\n var n = nodes.length;\n for (var i = 0; i < n; i++) {\n var node = nodes[i];\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.scene) {\n throw new Error(node + \" already belongs a scene: \" + node.scene + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n this._children.push(node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n }\n this.dirty = true;\n };\n Node.prototype.appendChild = function (node) {\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.scene) {\n throw new Error(node + \" already belongs to a scene: \" + node.scene + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n this._children.push(node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n this.dirty = true;\n return node;\n };\n Node.prototype.removeChild = function (node) {\n if (node.parent === this) {\n var i = this.children.indexOf(node);\n if (i >= 0) {\n this._children.splice(i, 1);\n delete this.childSet[node.id];\n node._setParent();\n node._setScene();\n this.dirty = true;\n return node;\n }\n }\n throw new Error(\"The node to be removed is not a child of this node.\");\n };\n /**\n * Inserts the node `node` before the existing child node `nextNode`.\n * If `nextNode` is null, insert `node` at the end of the list of children.\n * If the `node` belongs to another parent, it is first removed.\n * Returns the `node`.\n * @param node\n * @param nextNode\n */\n Node.prototype.insertBefore = function (node, nextNode) {\n var parent = node.parent;\n if (node.parent) {\n node.parent.removeChild(node);\n }\n if (nextNode && nextNode.parent === this) {\n var i = this.children.indexOf(nextNode);\n if (i >= 0) {\n this._children.splice(i, 0, node);\n this.childSet[node.id] = true;\n node._setParent(this);\n node._setScene(this.scene);\n }\n else {\n throw new Error(nextNode + \" has \" + parent + \" as the parent, \"\n + \"but is not in its list of children.\");\n }\n this.dirty = true;\n }\n else {\n this.append(node);\n }\n return node;\n };\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n get: function () {\n var parent = this.parent;\n if (parent) {\n var children = parent.children;\n var index = children.indexOf(this);\n if (index >= 0 && index <= children.length - 1) {\n return children[index + 1];\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.transformPoint = function (x, y) {\n var matrix = Matrix$1.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.invertSelf().transformPoint(x, y);\n };\n Node.prototype.inverseTransformPoint = function (x, y) {\n var matrix = Matrix$1.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix.transformPoint(x, y);\n };\n Object.defineProperty(Node.prototype, \"dirtyTransform\", {\n get: function () {\n return this._dirtyTransform;\n },\n set: function (value) {\n this._dirtyTransform = value;\n if (value) {\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingX\", {\n get: function () {\n return this._scalingX;\n },\n set: function (value) {\n if (this._scalingX !== value) {\n this._scalingX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingY\", {\n get: function () {\n return this._scalingY;\n },\n set: function (value) {\n if (this._scalingY !== value) {\n this._scalingY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingCenterX\", {\n get: function () {\n return this._scalingCenterX;\n },\n set: function (value) {\n if (this._scalingCenterX !== value) {\n this._scalingCenterX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"scalingCenterY\", {\n get: function () {\n return this._scalingCenterY;\n },\n set: function (value) {\n if (this._scalingCenterY !== value) {\n this._scalingCenterY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationCenterX\", {\n get: function () {\n return this._rotationCenterX;\n },\n set: function (value) {\n if (this._rotationCenterX !== value) {\n this._rotationCenterX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationCenterY\", {\n get: function () {\n return this._rotationCenterY;\n },\n set: function (value) {\n if (this._rotationCenterY !== value) {\n this._rotationCenterY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotation\", {\n get: function () {\n return this._rotation;\n },\n set: function (value) {\n if (this._rotation !== value) {\n this._rotation = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"rotationDeg\", {\n get: function () {\n return this.rotation / Math.PI * 180;\n },\n /**\n * For performance reasons the rotation angle's internal representation\n * is in radians. Therefore, don't expect to get the same number you set.\n * Even with integer angles about a quarter of them from 0 to 359 cannot\n * be converted to radians and back without precision loss.\n * For example:\n *\n * node.rotationDeg = 11;\n * console.log(node.rotationDeg); // 10.999999999999998\n *\n * @param value Rotation angle in degrees.\n */\n set: function (value) {\n this.rotation = value / 180 * Math.PI;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"translationX\", {\n get: function () {\n return this._translationX;\n },\n set: function (value) {\n if (this._translationX !== value) {\n this._translationX = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"translationY\", {\n get: function () {\n return this._translationY;\n },\n set: function (value) {\n if (this._translationY !== value) {\n this._translationY = value;\n this.dirtyTransform = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.prototype.containsPoint = function (x, y) {\n return false;\n };\n /**\n * Hit testing method.\n * Recursively checks if the given point is inside this node or any of its children.\n * Returns the first matching node or `undefined`.\n * Nodes that render later (show on top) are hit tested first.\n * @param x\n * @param y\n */\n Node.prototype.pickNode = function (x, y) {\n if (!this.visible || this.pointerEvents === PointerEvents$1.None || !this.containsPoint(x, y)) {\n return;\n }\n var children = this.children;\n if (children.length) {\n // Nodes added later should be hit-tested first,\n // as they are rendered on top of the previously added nodes.\n for (var i = children.length - 1; i >= 0; i--) {\n var hit = children[i].pickNode(x, y);\n if (hit) {\n return hit;\n }\n }\n }\n else if (!this.isContainerNode) { // a leaf node, but not a container leaf\n return this;\n }\n };\n Node.prototype.computeBBox = function () { return; };\n Node.prototype.computeBBoxCenter = function () {\n var bbox = this.computeBBox && this.computeBBox();\n if (bbox) {\n return [\n bbox.x + bbox.width * 0.5,\n bbox.y + bbox.height * 0.5\n ];\n }\n return [0, 0];\n };\n Node.prototype.computeTransformMatrix = function () {\n // TODO: transforms without center of scaling and rotation correspond directly\n // to `setAttribute('transform', 'translate(tx, ty) rotate(rDeg) scale(sx, sy)')`\n // in SVG. Our use cases will mostly require positioning elements (rects, circles)\n // within a group, rotating groups at right angles (e.g. for axis) and translating\n // groups. We shouldn't even need `scale(1, -1)` (invert vertically), since this\n // can be done using D3-like scales already by inverting the output range.\n // So for now, just assume that centers of scaling and rotation are at the origin.\n // const [bbcx, bbcy] = this.computeBBoxCenter();\n var _a = __read$k([0, 0], 2), bbcx = _a[0], bbcy = _a[1];\n var sx = this.scalingX;\n var sy = this.scalingY;\n var scx;\n var scy;\n if (sx === 1 && sy === 1) {\n scx = 0;\n scy = 0;\n }\n else {\n scx = this.scalingCenterX === null ? bbcx : this.scalingCenterX;\n scy = this.scalingCenterY === null ? bbcy : this.scalingCenterY;\n }\n var r = this.rotation;\n var cos = Math.cos(r);\n var sin = Math.sin(r);\n var rcx;\n var rcy;\n if (r === 0) {\n rcx = 0;\n rcy = 0;\n }\n else {\n rcx = this.rotationCenterX === null ? bbcx : this.rotationCenterX;\n rcy = this.rotationCenterY === null ? bbcy : this.rotationCenterY;\n }\n var tx = this.translationX;\n var ty = this.translationY;\n // The transform matrix `M` is a result of the following transformations:\n // 1) translate the center of scaling to the origin\n // 2) scale\n // 3) translate back\n // 4) translate the center of rotation to the origin\n // 5) rotate\n // 6) translate back\n // 7) translate\n // (7) (6) (5) (4) (3) (2) (1)\n // | 1 0 tx | | 1 0 rcx | | cos -sin 0 | | 1 0 -rcx | | 1 0 scx | | sx 0 0 | | 1 0 -scx |\n // M = | 0 1 ty | * | 0 1 rcy | * | sin cos 0 | * | 0 1 -rcy | * | 0 1 scy | * | 0 sy 0 | * | 0 1 -scy |\n // | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 0 | | 0 0 1 |\n // Translation after steps 1-4 above:\n var tx4 = scx * (1 - sx) - rcx;\n var ty4 = scy * (1 - sy) - rcy;\n this.dirtyTransform = false;\n this.matrix.setElements([\n cos * sx, sin * sx,\n -sin * sy, cos * sy,\n cos * tx4 - sin * ty4 + rcx + tx,\n sin * tx4 + cos * ty4 + rcy + ty\n ]).inverseTo(this.inverseMatrix);\n };\n Object.defineProperty(Node.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n set: function (value) {\n // TODO: check if we are already dirty (e.g. if (this._dirty !== value))\n // if we are, then all parents and the scene have been\n // notified already, and we are doing redundant work\n // (but test if this is indeed the case)\n this._dirty = value;\n if (value) {\n if (this.parent) {\n this.parent.dirty = true;\n }\n else if (this.scene) {\n this.scene.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n if (this._visible !== value) {\n this._visible = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"zIndex\", {\n get: function () {\n return this._zIndex;\n },\n set: function (value) {\n if (this._zIndex !== value) {\n this._zIndex = value;\n if (this.parent) {\n this.parent.dirtyZIndex = true;\n }\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Node.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; // Number.MAX_SAFE_INTEGER\n return Node;\n}());\n\n/**\n * Creates a new object with a `parent` as its prototype\n * and copies properties from the `child` into it.\n * @param parent\n * @param child\n */\nfunction chainObjects$1(parent, child) {\n var obj = Object.create(parent);\n for (var prop in child) {\n if (child.hasOwnProperty(prop)) {\n obj[prop] = child[prop];\n }\n }\n return obj;\n}\nfunction getValue(object, path, defaultValue) {\n var parts = Array.isArray(path) ? path : path.split('.');\n var value = object;\n try {\n parts.forEach(function (part) {\n value = value[part];\n });\n }\n catch (e) {\n if (arguments.length === 3) {\n value = defaultValue;\n }\n else {\n throw e;\n }\n }\n return value;\n}\nfunction emptyTarget(value) {\n return Array.isArray(value) ? [] : {};\n}\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return (options.clone !== false && options.isMergeableObject(value))\n ? deepMerge(emptyTarget(value), value, options)\n : value;\n}\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepMerge;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepMerge;\n}\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n })\n : [];\n}\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n }\n catch (_) {\n return false;\n }\n}\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\nfunction mergeObject(target, source, options) {\n var destination = {};\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n }\n else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\nfunction defaultIsMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n}\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]';\n}\nfunction deepMerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || defaultIsMergeableObject;\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n }\n else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n }\n else {\n return mergeObject(target, source, options);\n }\n}\nfunction isObject(value) {\n return typeof value === 'object' && !Array.isArray(value);\n}\n\nvar __extends$16 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Shape$1 = /** @class */ (function (_super) {\n __extends$16(Shape, _super);\n function Shape() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastInstanceId = 0;\n _this._fillOpacity = 1;\n _this._strokeOpacity = 1;\n _this._fill = Shape.defaultStyles.fill;\n /**\n * Note that `strokeStyle = null` means invisible stroke,\n * while `lineWidth = 0` means no stroke, and sometimes this can mean different things.\n * For example, a rect shape with an invisible stroke may not align to the pixel grid\n * properly because the stroke affects the rules of alignment, and arc shapes forming\n * a pie chart will have a gap between them if they have an invisible stroke, whereas\n * there would be not gap if there was no stroke at all.\n * The preferred way of making the stroke invisible is setting the `lineWidth` to zero,\n * unless specific looks that is achieved by having an invisible stroke is desired.\n */\n _this._stroke = Shape.defaultStyles.stroke;\n _this._strokeWidth = Shape.defaultStyles.strokeWidth;\n _this._lineDash = Shape.defaultStyles.lineDash;\n _this._lineDashOffset = Shape.defaultStyles.lineDashOffset;\n _this._lineCap = Shape.defaultStyles.lineCap;\n _this._lineJoin = Shape.defaultStyles.lineJoin;\n _this._opacity = Shape.defaultStyles.opacity;\n _this.onShadowChange = function () {\n _this.dirty = true;\n };\n _this._fillShadow = Shape.defaultStyles.fillShadow;\n _this._strokeShadow = Shape.defaultStyles.strokeShadow;\n return _this;\n }\n /**\n * Creates a light-weight instance of the given shape (that serves as a template).\n * The created instance only stores the properites set on the instance itself\n * and the rest of the properties come via the prototype chain from the template.\n * This can greatly reduce memory usage in cases where one has many simular shapes,\n * for example, circles of different size, position and color. The exact memory usage\n * reduction will depend on the size of the template and the number of own properties\n * set on its lightweight instances, but will typically be around an order of magnitude\n * or more.\n *\n * Note: template shapes are not supposed to be part of the scene graph (they should not\n * have a parent).\n *\n * @param template\n */\n Shape.createInstance = function (template) {\n var shape = Object.create(template);\n shape._setParent(undefined);\n shape.id = template.id + '-Instance-' + String(++template.lastInstanceId);\n return shape;\n };\n /**\n * Restores the default styles introduced by this subclass.\n */\n Shape.prototype.restoreOwnStyles = function () {\n var styles = this.constructor.defaultStyles;\n var keys = Object.getOwnPropertyNames(styles);\n // getOwnPropertyNames is about 2.5 times faster than\n // for..in with the hasOwnProperty check and in this\n // case, where most properties are inherited, can be\n // more then an order of magnitude faster.\n for (var i = 0, n = keys.length; i < n; i++) {\n var key = keys[i];\n this[key] = styles[key];\n }\n };\n Shape.prototype.restoreAllStyles = function () {\n var styles = this.constructor.defaultStyles;\n for (var property in styles) {\n this[property] = styles[property];\n }\n };\n /**\n * Restores the base class default styles that have been overridden by this subclass.\n */\n Shape.prototype.restoreOverriddenStyles = function () {\n var styles = this.constructor.defaultStyles;\n var protoStyles = Object.getPrototypeOf(styles);\n for (var property in styles) {\n if (styles.hasOwnProperty(property) && protoStyles.hasOwnProperty(property)) {\n this[property] = styles[property];\n }\n }\n };\n Object.defineProperty(Shape.prototype, \"fillOpacity\", {\n get: function () {\n return this._fillOpacity;\n },\n set: function (value) {\n if (this._fillOpacity !== value) {\n this._fillOpacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeOpacity\", {\n get: function () {\n return this._strokeOpacity;\n },\n set: function (value) {\n if (this._strokeOpacity !== value) {\n this._strokeOpacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"fill\", {\n get: function () {\n return this._fill;\n },\n set: function (value) {\n if (this._fill !== value) {\n this._fill = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"stroke\", {\n get: function () {\n return this._stroke;\n },\n set: function (value) {\n if (this._stroke !== value) {\n this._stroke = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeWidth\", {\n get: function () {\n return this._strokeWidth;\n },\n set: function (value) {\n if (this._strokeWidth !== value) {\n this._strokeWidth = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"alignment\", {\n // An offset value to align to the pixel grid.\n get: function () {\n return Math.floor(this.strokeWidth) % 2 / 2;\n },\n enumerable: true,\n configurable: true\n });\n // Returns the aligned `start` or `length` value.\n // For example: `start` could be `y` and `length` could be `height` of a rectangle.\n Shape.prototype.align = function (alignment, start, length) {\n if (length != undefined) {\n return Math.floor(length) + Math.floor(start % 1 + length % 1);\n }\n return Math.floor(start) + alignment;\n };\n Object.defineProperty(Shape.prototype, \"lineDash\", {\n get: function () {\n return this._lineDash;\n },\n set: function (value) {\n var oldValue = this._lineDash;\n if (oldValue !== value) {\n if (oldValue && value && oldValue.length === value.length) {\n var identical = true;\n var n = value.length;\n for (var i = 0; i < n; i++) {\n if (oldValue[i] !== value[i]) {\n identical = false;\n break;\n }\n }\n if (identical) {\n return;\n }\n }\n this._lineDash = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineDashOffset\", {\n get: function () {\n return this._lineDashOffset;\n },\n set: function (value) {\n if (this._lineDashOffset !== value) {\n this._lineDashOffset = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineCap\", {\n get: function () {\n return this._lineCap;\n },\n set: function (value) {\n if (this._lineCap !== value) {\n this._lineCap = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"lineJoin\", {\n get: function () {\n return this._lineJoin;\n },\n set: function (value) {\n if (this._lineJoin !== value) {\n this._lineJoin = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"opacity\", {\n get: function () {\n return this._opacity;\n },\n set: function (value) {\n value = Math.min(1, Math.max(0, value));\n if (this._opacity !== value) {\n this._opacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"fillShadow\", {\n get: function () {\n return this._fillShadow;\n },\n set: function (value) {\n var oldValue = this._fillShadow;\n if (oldValue !== value) {\n if (oldValue) {\n oldValue.removeEventListener('change', this.onShadowChange);\n }\n if (value) {\n value.addEventListener('change', this.onShadowChange);\n }\n this._fillShadow = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Shape.prototype, \"strokeShadow\", {\n get: function () {\n return this._strokeShadow;\n },\n set: function (value) {\n var oldValue = this._strokeShadow;\n if (oldValue !== value) {\n if (oldValue) {\n oldValue.removeEventListener('change', this.onShadowChange);\n }\n if (value) {\n value.addEventListener('change', this.onShadowChange);\n }\n this._strokeShadow = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Shape.prototype.fillStroke = function (ctx) {\n if (!this.scene) {\n return;\n }\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (this.fill) {\n ctx.fillStyle = this.fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n // The canvas context scaling (depends on the device's pixel ratio)\n // has no effect on shadows, so we have to account for the pixel ratio\n // manually here.\n var fillShadow = this.fillShadow;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fill();\n }\n ctx.shadowColor = 'rgba(0, 0, 0, 0)';\n if (this.stroke && this.strokeWidth) {\n ctx.strokeStyle = this.stroke;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n ctx.lineWidth = this.strokeWidth;\n if (this.lineDash) {\n ctx.setLineDash(this.lineDash);\n }\n if (this.lineDashOffset) {\n ctx.lineDashOffset = this.lineDashOffset;\n }\n if (this.lineCap) {\n ctx.lineCap = this.lineCap;\n }\n if (this.lineJoin) {\n ctx.lineJoin = this.lineJoin;\n }\n var strokeShadow = this.strokeShadow;\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.stroke();\n }\n };\n Shape.prototype.containsPoint = function (x, y) {\n return this.isPointInPath(x, y);\n };\n /**\n * Defaults for style properties. Note that properties that affect the position\n * and shape of the node are not considered style properties, for example:\n * `x`, `y`, `width`, `height`, `radius`, `rotation`, etc.\n * Can be used to reset to the original styling after some custom styling\n * has been applied (using the `restoreOwnStyles` and `restoreAllStyles` methods).\n * These static defaults are meant to be inherited by subclasses.\n */\n Shape.defaultStyles = chainObjects$1({}, {\n fill: 'black',\n stroke: undefined,\n strokeWidth: 0,\n lineDash: undefined,\n lineDashOffset: 0,\n lineCap: undefined,\n lineJoin: undefined,\n opacity: 1,\n fillShadow: undefined,\n strokeShadow: undefined\n });\n return Shape;\n}(Node$1));\n\n/**\n * Wraps the native Canvas element and overrides its CanvasRenderingContext2D to\n * provide resolution independent rendering based on `window.devicePixelRatio`.\n */\nvar HdpiCanvas$1 = /** @class */ (function () {\n // The width/height attributes of the Canvas element default to\n // 300/150 according to w3.org.\n function HdpiCanvas(document, width, height) {\n if (document === void 0) { document = window.document; }\n if (width === void 0) { width = 600; }\n if (height === void 0) { height = 300; }\n this._container = undefined;\n // `NaN` is deliberate here, so that overrides are always applied\n // and the `resetTransform` inside the `resize` method works in IE11.\n this._pixelRatio = NaN;\n this._width = 0;\n this._height = 0;\n this.document = document;\n this.element = document.createElement('canvas');\n this.context = this.element.getContext('2d');\n this.element.style.userSelect = 'none';\n this.element.style.display = 'block';\n this.setPixelRatio();\n this.resize(width, height);\n }\n Object.defineProperty(HdpiCanvas.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n this.remove();\n if (value) {\n value.appendChild(this.element);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.remove = function () {\n var parentNode = this.element.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.element);\n }\n };\n HdpiCanvas.prototype.destroy = function () {\n this.element.remove();\n this._canvas = undefined;\n Object.freeze(this);\n };\n HdpiCanvas.prototype.toImage = function () {\n var img = this.document.createElement('img');\n img.src = this.getDataURL();\n return img;\n };\n HdpiCanvas.prototype.getDataURL = function (type) {\n return this.element.toDataURL(type);\n };\n /**\n * @param fileName The name of the file upon save. The `.png` extension is going to be added automatically.\n */\n HdpiCanvas.prototype.download = function (fileName) {\n fileName = ((fileName || '').trim() || 'image') + '.png';\n // Chart images saved as JPEG are a few times larger at 50% quality than PNG images,\n // so we don't support saving to JPEG.\n var type = 'image/png';\n var dataUrl = this.getDataURL(type);\n var document = this.document;\n var a = document.createElement('a');\n a.href = dataUrl;\n a.download = fileName;\n a.style.display = 'none';\n document.body.appendChild(a); // required for the `click` to work in Firefox\n a.click();\n document.body.removeChild(a);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelRatio\", {\n get: function () {\n return this._pixelRatio;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Changes the pixel ratio of the Canvas element to the given value,\n * or uses the window.devicePixelRatio (default), then resizes the Canvas\n * element accordingly (default).\n */\n HdpiCanvas.prototype.setPixelRatio = function (ratio) {\n var pixelRatio = ratio || window.devicePixelRatio;\n if (pixelRatio === this.pixelRatio) {\n return;\n }\n HdpiCanvas.overrideScale(this.context, pixelRatio);\n this._pixelRatio = pixelRatio;\n this.resize(this.width, this.height);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelated\", {\n get: function () {\n return this.element.style.imageRendering === 'pixelated';\n },\n set: function (value) {\n this.element.style.imageRendering = value ? 'pixelated' : 'auto';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.prototype.resize = function (width, height) {\n if (!(width > 0 && height > 0)) {\n return;\n }\n var _a = this, element = _a.element, context = _a.context, pixelRatio = _a.pixelRatio;\n element.width = Math.round(width * pixelRatio);\n element.height = Math.round(height * pixelRatio);\n element.style.width = width + 'px';\n element.style.height = height + 'px';\n context.resetTransform();\n this._width = width;\n this._height = height;\n };\n Object.defineProperty(HdpiCanvas, \"textMeasuringContext\", {\n get: function () {\n if (this._textMeasuringContext) {\n return this._textMeasuringContext;\n }\n var canvas = document.createElement('canvas');\n return this._textMeasuringContext = canvas.getContext('2d');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"svgText\", {\n get: function () {\n if (this._svgText) {\n return this._svgText;\n }\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n svg.setAttribute('width', '100');\n svg.setAttribute('height', '100');\n // Add a descriptive class name in case someone sees this SVG element\n // in devtools and wonders about its purpose:\n if (svg.classList) {\n svg.classList.add('text-measuring-svg');\n }\n else {\n svg.setAttribute('class', 'text-measuring-svg');\n }\n svg.style.position = 'absolute';\n svg.style.top = '-1000px';\n svg.style.visibility = 'hidden';\n var svgText = document.createElementNS(xmlns, 'text');\n svgText.setAttribute('x', '0');\n svgText.setAttribute('y', '30');\n svgText.setAttribute('text', 'black');\n svg.appendChild(svgText);\n document.body.appendChild(svg);\n this._svgText = svgText;\n return svgText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"has\", {\n get: function () {\n if (this._has) {\n return this._has;\n }\n var isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n var isSafari = !isChrome && navigator.userAgent.indexOf('Safari') > -1;\n return this._has = Object.freeze({\n textMetrics: this.textMeasuringContext.measureText('test').actualBoundingBoxDescent !== undefined\n // Firefox implemented advanced TextMetrics object in v74:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1102584\n // but it's buggy, so we'll keed using the SVG for text measurement in Firefox for now.\n && !isFirefox && !isSafari,\n getTransform: this.textMeasuringContext.getTransform !== undefined\n });\n },\n enumerable: true,\n configurable: true\n });\n HdpiCanvas.measureText = function (text, font, textBaseline, textAlign) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n ctx.textBaseline = textBaseline;\n ctx.textAlign = textAlign;\n return ctx.measureText(text);\n };\n /**\n * Returns the width and height of the measured text.\n * @param text The single-line text to measure.\n * @param font The font shorthand string.\n */\n HdpiCanvas.getTextSize = function (text, font) {\n if (this.has.textMetrics) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n var metrics = ctx.measureText(text);\n return {\n width: metrics.width,\n height: metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent\n };\n }\n else {\n return this.measureSvgText(text, font);\n }\n };\n HdpiCanvas.measureSvgText = function (text, font) {\n var cache = this.textSizeCache;\n var fontCache = cache[font];\n // Note: consider not caching the size of numeric strings.\n // For example: if (isNaN(+text)) { // skip\n if (fontCache) {\n var size_1 = fontCache[text];\n if (size_1) {\n return size_1;\n }\n }\n else {\n cache[font] = {};\n }\n var svgText = this.svgText;\n svgText.style.font = font;\n svgText.textContent = text;\n // `getBBox` returns an instance of `SVGRect` with the same `width` and `height`\n // measurements as `DOMRect` instance returned by the `getBoundingClientRect`.\n // But the `SVGRect` instance has half the properties of the `DOMRect`,\n // so we use the `getBBox` method.\n var bbox = svgText.getBBox();\n var size = {\n width: bbox.width,\n height: bbox.height\n };\n cache[font][text] = size;\n return size;\n };\n HdpiCanvas.overrideScale = function (ctx, scale) {\n var depth = 0;\n var overrides = {\n save: function () {\n this.$save();\n depth++;\n },\n restore: function () {\n if (depth > 0) {\n this.$restore();\n depth--;\n }\n },\n setTransform: function (a, b, c, d, e, f) {\n this.$setTransform(a * scale, b * scale, c * scale, d * scale, e * scale, f * scale);\n },\n resetTransform: function () {\n // As of Jan 8, 2019, `resetTransform` is still an \"experimental technology\",\n // and doesn't work in IE11 and Edge 44.\n this.$setTransform(scale, 0, 0, scale, 0, 0);\n this.save();\n depth = 0;\n // The scale above will be impossible to restore,\n // because we override the `ctx.restore` above and\n // check `depth` there.\n }\n };\n for (var name_1 in overrides) {\n if (overrides.hasOwnProperty(name_1)) {\n // Save native methods under prefixed names,\n // if this hasn't been done by the previous overrides already.\n if (!ctx['$' + name_1]) {\n ctx['$' + name_1] = ctx[name_1];\n }\n // Replace native methods with overrides,\n // or previous overrides with the new ones.\n ctx[name_1] = overrides[name_1];\n }\n }\n };\n HdpiCanvas.textSizeCache = {};\n return HdpiCanvas;\n}());\n\nvar __extends$17 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Text$2 = /** @class */ (function (_super) {\n __extends$17(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this.lineBreakRegex = /\\r?\\n/g;\n _this.lines = [];\n _this._text = '';\n _this._dirtyFont = true;\n _this._fontSize = 10;\n _this._fontFamily = 'sans-serif';\n _this._textAlign = Text.defaultStyles.textAlign;\n _this._textBaseline = Text.defaultStyles.textBaseline;\n _this._lineHeight = 14;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.splitText = function () {\n this.lines = this._text.split(this.lineBreakRegex);\n };\n Object.defineProperty(Text.prototype, \"text\", {\n get: function () {\n return this._text;\n },\n set: function (value) {\n var str = String(value); // `value` can be an object here\n if (this._text !== str) {\n this._text = str;\n this.splitText();\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"font\", {\n get: function () {\n if (this.dirtyFont) {\n this.dirtyFont = false;\n this._font = getFont$3(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n }\n return this._font;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"dirtyFont\", {\n get: function () {\n return this._dirtyFont;\n },\n set: function (value) {\n if (this._dirtyFont !== value) {\n this._dirtyFont = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontStyle\", {\n get: function () {\n return this._fontStyle;\n },\n set: function (value) {\n if (this._fontStyle !== value) {\n this._fontStyle = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontWeight\", {\n get: function () {\n return this._fontWeight;\n },\n set: function (value) {\n if (this._fontWeight !== value) {\n this._fontWeight = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontSize\", {\n get: function () {\n return this._fontSize;\n },\n set: function (value) {\n if (!isFinite(value)) {\n value = 10;\n }\n if (this._fontSize !== value) {\n this._fontSize = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"fontFamily\", {\n get: function () {\n return this._fontFamily;\n },\n set: function (value) {\n if (this._fontFamily !== value) {\n this._fontFamily = value;\n this.dirtyFont = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textAlign\", {\n get: function () {\n return this._textAlign;\n },\n set: function (value) {\n if (this._textAlign !== value) {\n this._textAlign = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"textBaseline\", {\n get: function () {\n return this._textBaseline;\n },\n set: function (value) {\n if (this._textBaseline !== value) {\n this._textBaseline = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"lineHeight\", {\n get: function () {\n return this._lineHeight;\n },\n set: function (value) {\n // Multi-line text is complicated because:\n // - Canvas does not support it natively, so we have to implement it manually\n // - need to know the height of each line -> need to parse the font shorthand ->\n // generally impossible to do because font size may not be in pixels\n // - so, need to measure the text instead, each line individually -> expensive\n // - or make the user provide the line height manually for multi-line text\n // - computeBBox should use the lineHeight for multi-line text but ignore it otherwise\n // - textBaseline kind of loses its meaning for multi-line text\n if (this._lineHeight !== value) {\n this._lineHeight = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Text.prototype.computeBBox = function () {\n return HdpiCanvas$1.has.textMetrics\n ? this.getPreciseBBox()\n : this.getApproximateBBox();\n };\n Text.prototype.getPreciseBBox = function () {\n var metrics = HdpiCanvas$1.measureText(this.text, this.font, this.textBaseline, this.textAlign);\n return new BBox$1(this.x - metrics.actualBoundingBoxLeft, this.y - metrics.actualBoundingBoxAscent, metrics.width, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n };\n Text.prototype.getApproximateBBox = function () {\n var size = HdpiCanvas$1.getTextSize(this.text, this.font);\n var _a = this, x = _a.x, y = _a.y;\n switch (this.textAlign) {\n case 'end':\n case 'right':\n x -= size.width;\n break;\n case 'center':\n x -= size.width / 2;\n }\n switch (this.textBaseline) {\n case 'alphabetic':\n y -= size.height * 0.7;\n break;\n case 'middle':\n y -= size.height * 0.45;\n break;\n case 'ideographic':\n y -= size.height;\n break;\n case 'hanging':\n y -= size.height * 0.2;\n break;\n case 'bottom':\n y -= size.height;\n break;\n }\n return new BBox$1(x, y, size.width, size.height);\n };\n Text.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox ? bbox.containsPoint(point.x, point.y) : false;\n };\n Text.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Text.prototype.render = function (ctx) {\n if (!this.lines.length || !this.scene) {\n return;\n }\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // this.matrix.transformBBox(this.computeBBox!()).render(ctx); // debug\n this.matrix.toContext(ctx);\n var _a = this, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n ctx.font = this.font;\n ctx.textAlign = this.textAlign;\n ctx.textBaseline = this.textBaseline;\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n var _b = this, fillShadow = _b.fillShadow, text = _b.text, x = _b.x, y = _b.y;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fillText(text, x, y);\n }\n if (stroke && strokeWidth) {\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n var _c = this, lineDash = _c.lineDash, lineDashOffset = _c.lineDashOffset, lineCap = _c.lineCap, lineJoin = _c.lineJoin, strokeShadow = _c.strokeShadow, text = _c.text, x = _c.x, y = _c.y;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.strokeText(text, x, y);\n }\n this.dirty = false;\n };\n Text.className = 'Text';\n Text.defaultStyles = chainObjects$1(Shape$1.defaultStyles, {\n textAlign: 'start',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 10,\n fontFamily: 'sans-serif',\n textBaseline: 'alphabetic'\n });\n return Text;\n}(Shape$1));\nfunction getFont$3(fontSize, fontFamily, fontStyle, fontWeight) {\n return [\n fontStyle || '',\n fontWeight || '',\n fontSize + 'px',\n fontFamily\n ].join(' ').trim();\n}\n\nvar __extends$18 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Caption = /** @class */ (function (_super) {\n __extends$18(Caption, _super);\n function Caption() {\n var _this = _super.call(this) || this;\n _this.node = new Text$2();\n _this.enabled = false;\n _this.padding = new Padding$1(10);\n var node = _this.node;\n node.textAlign = 'center';\n node.textBaseline = 'top';\n node.pointerEvents = PointerEvents$1.None;\n return _this;\n }\n Object.defineProperty(Caption.prototype, \"text\", {\n get: function () {\n return this.node.text;\n },\n set: function (value) {\n if (this.node.text !== value) {\n this.node.text = value;\n this.fireEvent({ type: 'change' });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontStyle\", {\n get: function () {\n return this.node.fontStyle;\n },\n set: function (value) {\n if (this.node.fontStyle !== value) {\n this.node.fontStyle = value;\n this.fireEvent({ type: 'change' });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontWeight\", {\n get: function () {\n return this.node.fontWeight;\n },\n set: function (value) {\n if (this.node.fontWeight !== value) {\n this.node.fontWeight = value;\n this.fireEvent({ type: 'change' });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontSize\", {\n get: function () {\n return this.node.fontSize;\n },\n set: function (value) {\n if (this.node.fontSize !== value) {\n this.node.fontSize = value;\n this.fireEvent({ type: 'change' });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"fontFamily\", {\n get: function () {\n return this.node.fontFamily;\n },\n set: function (value) {\n if (this.node.fontFamily !== value) {\n this.node.fontFamily = value;\n this.fireEvent({ type: 'change' });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Caption.prototype, \"color\", {\n get: function () {\n return this.node.fill;\n },\n set: function (value) {\n if (this.node.fill !== value) {\n this.node.fill = value;\n this.fireEvent({ type: 'change' });\n }\n },\n enumerable: true,\n configurable: true\n });\n __decorate$J([\n reactive$1('change')\n ], Caption.prototype, \"enabled\", void 0);\n __decorate$J([\n reactive$1('change')\n ], Caption.prototype, \"padding\", void 0);\n return Caption;\n}(Observable$1));\n\nvar __extends$19 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction ticks$1 (a, b, count) {\n var step = tickStep$1(a, b, count);\n a = Math.ceil(a / step) * step;\n b = Math.floor(b / step) * step + step / 2;\n // Add half a step here so that the array returned by `range` includes the last tick.\n return range$1(a, b, step);\n}\nvar e10$1 = Math.sqrt(50);\nvar e5$1 = Math.sqrt(10);\nvar e2$1 = Math.sqrt(2);\nfunction tickStep$1(a, b, count) {\n var rawStep = Math.abs(b - a) / Math.max(0, count);\n var step = Math.pow(10, Math.floor(Math.log(rawStep) / Math.LN10)); // = Math.log10(rawStep)\n var error = rawStep / step;\n if (error >= e10$1) {\n step *= 10;\n }\n else if (error >= e5$1) {\n step *= 5;\n }\n else if (error >= e2$1) {\n step *= 2;\n }\n return b < a ? -step : step;\n}\nfunction tickIncrement$1(a, b, count) {\n var rawStep = (b - a) / Math.max(0, count);\n var power = Math.floor(Math.log(rawStep) / Math.LN10);\n var error = rawStep / Math.pow(10, power);\n return power >= 0\n ? (error >= e10$1 ? 10 : error >= e5$1 ? 5 : error >= e2$1 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10$1 ? 10 : error >= e5$1 ? 5 : error >= e2$1 ? 2 : 1);\n}\nvar NumericTicks$1 = /** @class */ (function (_super) {\n __extends$19(NumericTicks, _super);\n function NumericTicks(fractionDigits, elements) {\n var _this = _super.call(this) || this;\n if (elements) {\n for (var i = 0, n = elements.length; i < n; i++) {\n _this[i] = elements[i];\n }\n }\n _this.fractionDigits = fractionDigits;\n return _this;\n }\n return NumericTicks;\n}(Array));\nfunction range$1(a, b, step) {\n if (step === void 0) { step = 1; }\n var absStep = Math.abs(step);\n var fractionDigits = (absStep > 0 && absStep < 1)\n ? Math.abs(Math.floor(Math.log(absStep) / Math.LN10))\n : 0;\n var f = Math.pow(10, fractionDigits);\n var n = Math.max(0, Math.ceil((b - a) / step)) || 0;\n var values = new NumericTicks$1(fractionDigits);\n for (var i = 0; i < n; i++) {\n var value = a + step * i;\n values[i] = Math.round(value * f) / f;\n }\n return values;\n}\n\nfunction calculateNiceSecondaryAxis(domain, primaryTickCount) {\n // Make secondary axis domain nice using strict tick count, matching the tick count from the primary axis.\n // This is to make the secondary axis grid lines/ tick positions align with the ones from the primary axis.\n var start = Math.floor(domain[0]);\n var stop = domain[1];\n start = calculateNiceStart(start, stop, primaryTickCount);\n var step = getTickStep(start, stop, primaryTickCount);\n var segments = primaryTickCount - 1;\n stop = start + (segments * step);\n var d = [start, stop];\n var ticks = getTicks(start, step, primaryTickCount);\n return [d, ticks];\n}\nfunction calculateNiceStart(a, b, count) {\n var rawStep = Math.abs(b - a) / (count - 1);\n var order = Math.floor(Math.log10(rawStep));\n var magnitude = Math.pow(10, order);\n return Math.floor(a / magnitude) * magnitude;\n}\nfunction getTicks(start, step, count) {\n // power of the step will be negative if the step is a fraction (between 0 and 1)\n var stepPower = Math.floor(Math.log10(step));\n var fractionDigits = (step > 0 && step < 1) ? Math.abs(stepPower) : 0;\n var f = Math.pow(10, fractionDigits);\n var ticks = new NumericTicks$1(fractionDigits);\n for (var i = 0; i < count; i++) {\n var tick = start + step * i;\n ticks[i] = Math.round(tick * f) / f;\n }\n return ticks;\n}\nfunction getTickStep(start, stop, count) {\n var segments = count - 1;\n var rawStep = (stop - start) / segments;\n return calculateNextNiceStep(rawStep);\n}\nfunction calculateNextNiceStep(rawStep) {\n var order = Math.floor(Math.log10(rawStep));\n var magnitude = Math.pow(10, order);\n // Make order 1\n var step = (rawStep / magnitude) * 10;\n if (step > 0 && step <= 1) {\n return magnitude / 10;\n }\n if (step > 1 && step <= 2) {\n return 2 * magnitude / 10;\n }\n if (step > 1 && step <= 5) {\n return 5 * magnitude / 10;\n }\n if (step > 5 && step <= 10) {\n return 10 * magnitude / 10;\n }\n if (step > 10 && step <= 20) {\n return 20 * magnitude / 10;\n }\n if (step > 20 && step <= 40) {\n return 40 * magnitude / 10;\n }\n if (step > 40 && step <= 50) {\n return 50 * magnitude / 10;\n }\n if (step > 50 && step <= 100) {\n return 100 * magnitude / 10;\n }\n return step;\n}\n\nvar constant$2 = (function (x) { return function () { return x; }; });\n\nfunction interpolateNumber$1 (a, b) {\n a = +a;\n b = +b;\n return function (t) { return a * (1 - t) + b * t; };\n}\n\nfunction date$1 (a, b) {\n var date = new Date;\n var msA = +a;\n var msB = +b;\n return function (t) {\n date.setTime(msA * (1 - t) + msB * t);\n return date;\n };\n}\n\nfunction array$1 (a, b) {\n var nb = b ? b.length : 0;\n var na = a ? Math.min(nb, a.length) : 0;\n var x = new Array(na);\n var c = new Array(nb);\n var i;\n for (i = 0; i < na; ++i) {\n x[i] = interpolateValue$1(a[i], b[i]);\n }\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n return c;\n };\n}\n\nfunction object$1 (a, b) {\n var i = {};\n var c = {};\n var k;\n if (a === null || typeof a !== 'object') {\n a = {};\n }\n if (b === null || typeof b !== 'object') {\n b = {};\n }\n for (k in b) {\n if (k in a) {\n i[k] = interpolateValue$1(a[k], b[k]);\n }\n else {\n c[k] = b[k];\n }\n }\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n return c;\n };\n}\n\nvar __read$l = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Color$1 = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) { // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.parseHex = function (input) {\n input = input.replace(/ /g, '').slice(1);\n var parts;\n switch (input.length) {\n case 6:\n case 8:\n parts = [];\n for (var i = 0; i < input.length; i += 2) {\n parts.push(parseInt(\"\" + input[i] + input[i + 1], 16));\n }\n break;\n case 3:\n case 4:\n parts = input.split('').map(function (p) { return parseInt(p, 16); }).map(function (p) { return p + p * 16; });\n break;\n }\n if (parts.length >= 3) {\n if (parts.every(function (p) { return p >= 0; })) {\n if (parts.length === 3) {\n parts.push(255);\n }\n return parts;\n }\n }\n };\n Color.fromHexString = function (str) {\n var values = Color.parseHex(str);\n if (values) {\n var _a = __read$l(values, 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.stringToRgba = function (str) {\n // Find positions of opening and closing parentheses.\n var _a = __read$l([NaN, NaN], 2), po = _a[0], pc = _a[1];\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n if (!po && c === '(') {\n po = i;\n }\n else if (c === ')') {\n pc = i;\n break;\n }\n }\n var contents = po && pc && str.substring(po + 1, pc);\n if (!contents) {\n return;\n }\n var parts = contents.split(',');\n var rgba = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n var value = parseFloat(part);\n if (isNaN(value)) {\n return;\n }\n if (part.indexOf('%') >= 0) { // percentage r, g, or b value\n value = Math.max(0, Math.min(100, value));\n value /= 100;\n }\n else {\n if (i === 3) { // alpha component\n value = Math.max(0, Math.min(1, value));\n }\n else { // absolute r, g, or b value\n value = Math.max(0, Math.min(255, value));\n value /= 255;\n }\n }\n rgba.push(value);\n }\n return rgba;\n };\n Color.fromRgbaString = function (str) {\n var rgba = Color.stringToRgba(str);\n if (rgba) {\n if (rgba.length === 3) {\n return new Color(rgba[0], rgba[1], rgba[2]);\n }\n else if (rgba.length === 4) {\n return new Color(rgba[0], rgba[1], rgba[2], rgba[3]);\n }\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#'\n + Color.padHex(Math.round(this.r * 255).toString(16))\n + Color.padHex(Math.round(this.g * 255).toString(16))\n + Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [\n Math.round(this.r * 255),\n Math.round(this.g * 255),\n Math.round(this.b * 255)\n ];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - (S * (1 - f)));\n switch (h >> 0) { // discard the floating point part of the number\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32'\n });\n return Color;\n}());\n\nfunction color$1 (a, b) {\n if (typeof a === 'string') {\n try {\n a = Color$1.fromString(a);\n }\n catch (e) {\n a = Color$1.fromArray([0, 0, 0]);\n }\n }\n if (typeof b === 'string') {\n try {\n b = Color$1.fromString(b);\n }\n catch (e) {\n b = Color$1.fromArray([0, 0, 0]);\n }\n }\n var red = interpolateNumber$1(a.r, b.r);\n var green = interpolateNumber$1(a.g, b.g);\n var blue = interpolateNumber$1(a.b, b.b);\n var alpha = interpolateNumber$1(a.a, b.a);\n return function (t) {\n return Color$1.fromArray([red(t), green(t), blue(t), alpha(t)]).toRgbaString();\n };\n}\n\nfunction interpolateValue$1 (a, b) {\n var t = typeof b;\n var c;\n if (b == null || t === 'boolean') {\n return constant$2(b);\n }\n if (t === 'number') {\n return interpolateNumber$1(a, b);\n }\n if (t === 'string') {\n try {\n c = Color$1.fromString(b);\n b = c;\n return color$1(a, b);\n }\n catch (e) {\n // return string(a, b);\n }\n }\n if (b instanceof Color$1) {\n return color$1(a, b);\n }\n if (b instanceof Date) {\n return date$1(a, b);\n }\n if (Array.isArray(b)) {\n return array$1(a, b);\n }\n if (typeof b.valueOf !== 'function' && typeof b.toString !== 'function' || isNaN(b)) {\n return object$1(a, b);\n }\n return interpolateNumber$1(a, b);\n}\n\nfunction ascending$1(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction bisectRight(list, x, comparator, lo, hi) {\n if (lo === void 0) { lo = 0; }\n if (hi === void 0) { hi = list.length; }\n while (lo < hi) {\n var mid = (lo + hi) >>> 1;\n if (comparator(list[mid], x) > 0) { // list[mid] > x\n hi = mid;\n }\n else {\n lo = mid + 1;\n }\n }\n return lo;\n}\nfunction complexBisectRight$1(list, x, map, lo, hi) {\n if (lo === void 0) { lo = 0; }\n if (hi === void 0) { hi = list.length; }\n var comparator = ascendingComparator$1(map);\n while (lo < hi) {\n var mid = (lo + hi) >>> 1;\n if (comparator(list[mid], x) < 0) {\n lo = mid + 1;\n }\n else {\n hi = mid;\n }\n }\n return lo;\n}\nfunction ascendingComparator$1(map) {\n return function (item, x) {\n return ascending$1(map(item), x);\n };\n}\n\nvar __read$m = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar constant$3 = function (x) { return function () { return x; }; };\nvar identity$3 = function (x) { return x; };\nfunction clamper$1(domain) {\n var _a;\n var a = domain[0];\n var b = domain[domain.length - 1];\n if (a > b) {\n _a = __read$m([b, a], 2), a = _a[0], b = _a[1];\n }\n return function (x) { return Math.max(a, Math.min(b, x)); };\n}\nvar ContinuousScale$1 = /** @class */ (function () {\n function ContinuousScale() {\n /**\n * The output value of the scale for `undefined` or `NaN` input values.\n */\n this.unknown = undefined;\n this.clamper = clamper$1;\n this._clamp = identity$3;\n this._domain = [0, 1];\n this._range = [0, 1];\n this.transform = identity$3; // transforms domain value\n this.untransform = identity$3; // untransforms domain value\n this._interpolate = interpolateValue$1;\n this.rescale();\n }\n Object.defineProperty(ContinuousScale.prototype, \"clamp\", {\n get: function () {\n return this._clamp !== identity$3;\n },\n set: function (value) {\n this._clamp = value ? this.clamper(this.domain) : identity$3;\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.setDomain = function (values) {\n this._domain = Array.prototype.map.call(values, function (v) { return +v; });\n if (this._clamp !== identity$3) {\n this._clamp = this.clamper(this.domain);\n }\n this.rescale();\n };\n ContinuousScale.prototype.getDomain = function () {\n return this._domain.slice();\n };\n Object.defineProperty(ContinuousScale.prototype, \"domain\", {\n get: function () {\n return this.getDomain();\n },\n set: function (values) {\n this.setDomain(values);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"range\", {\n get: function () {\n return this._range.slice();\n },\n set: function (values) {\n this._range = Array.prototype.slice.call(values);\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContinuousScale.prototype, \"interpolate\", {\n get: function () {\n return this._interpolate;\n },\n set: function (value) {\n this._interpolate = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n ContinuousScale.prototype.rescale = function () {\n if (Math.min(this.domain.length, this.range.length) > 2) {\n this.piecewise = this.polymap;\n }\n else {\n this.piecewise = this.bimap;\n }\n this.output = undefined;\n this.input = undefined;\n };\n /**\n * Returns a function that converts `x` in `[a, b]` to `t` in `[0, 1]`. Non-clamping.\n * @param a\n * @param b\n */\n ContinuousScale.prototype.normalize = function (a, b) {\n return (b -= (a = +a))\n ? function (x) { return (x - a) / b; }\n : constant$3(isNaN(b) ? NaN : 0.5);\n };\n ContinuousScale.prototype.bimap = function (domain, range, interpolate) {\n var x0 = domain[0];\n var x1 = domain[1];\n var y0 = range[0];\n var y1 = range[1];\n var xt;\n var ty;\n if (x1 < x0) {\n xt = this.normalize(x1, x0);\n ty = interpolate(y1, y0);\n }\n else {\n xt = this.normalize(x0, x1);\n ty = interpolate(y0, y1);\n }\n return function (x) { return ty(xt(x)); }; // domain value x --> t in [0, 1] --> range value y\n };\n ContinuousScale.prototype.polymap = function (domain, range, interpolate) {\n var _this = this;\n // number of segments in the polylinear scale\n var n = Math.min(domain.length, range.length) - 1;\n if (domain[n] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n // deinterpolators from domain segment value to t\n var dt = Array.from({ length: n }, function (_, i) { return _this.normalize(domain[i], domain[i + 1]); });\n // reinterpolators from t to range segment value\n var tr = Array.from({ length: n }, function (_, i) { return interpolate(range[i], range[i + 1]); });\n return function (x) {\n var i = bisectRight(domain, x, ascending$1, 1, n) - 1; // Find the domain segment that `x` belongs to.\n // This also tells us which deinterpolator/reinterpolator pair to use.\n return tr[i](dt[i](x));\n };\n };\n ContinuousScale.prototype.convert = function (x, clamper) {\n x = +x;\n if (isNaN(x)) {\n return this.unknown;\n }\n if (!this.output) {\n this.output = this.piecewise(this.domain.map(this.transform), this.range, this.interpolate);\n }\n var clamp = clamper ? clamper(this.domain) : this._clamp;\n return this.output(this.transform(clamp(x)));\n };\n ContinuousScale.prototype.invert = function (y) {\n if (!this.input) {\n this.input = this.piecewise(this.range, this.domain.map(this.transform), interpolateNumber$1);\n }\n return this._clamp(this.untransform(this.input(y)));\n };\n return ContinuousScale;\n}());\n\nfunction formatDefault$1(x, p) {\n var xs = x.toPrecision(p);\n out: for (var n = xs.length, i = 1, i0 = -1, i1 = 0; i < n; ++i) {\n switch (xs[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0)\n i0 = i;\n i1 = i;\n break;\n case 'e': break out;\n default:\n if (i0 > 0)\n i0 = 0;\n break;\n }\n }\n return i0 > 0 ? xs.slice(0, i0) + xs.slice(i1 + 1) : xs;\n}\nvar formatTypes$1 = {\n '': formatDefault$1,\n // Multiply by 100, and then decimal notation with a percent sign.\n '%': function (x, p) { return (x * 100).toFixed(p); },\n // Binary notation, rounded to integer.\n 'b': function (x) { return Math.round(x).toString(2); },\n // Converts the integer to the corresponding unicode character before printing.\n 'c': function (x) { return String(x); },\n // Decimal notation, rounded to integer.\n 'd': formatDecimal$1,\n // Exponent notation.\n 'e': function (x, p) { return x.toExponential(p); },\n // Fixed point notation.\n 'f': function (x, p) { return x.toFixed(p); },\n // Either decimal or exponent notation, rounded to significant digits.\n 'g': function (x, p) { return x.toPrecision(p); },\n // Octal notation, rounded to integer.\n 'o': function (x) { return Math.round(x).toString(8); },\n // Multiply by 100, round to significant digits, and then decimal notation with a percent sign.\n 'p': function (x, p) { return formatRounded$1(x * 100, p); },\n // Decimal notation, rounded to significant digits.\n 'r': formatRounded$1,\n // Decimal notation with a SI prefix, rounded to significant digits.\n 's': formatPrefixAuto$1,\n // Hexadecimal notation, using upper-case letters, rounded to integer.\n 'X': function (x) { return Math.round(x).toString(16).toUpperCase(); },\n // Hexadecimal notation, using lower-case letters, rounded to integer.\n 'x': function (x) { return Math.round(x).toString(16); }\n};\nvar prefixes$1 = ['y', 'z', 'a', 'f', 'p', 'n', '\\xB5', 'm', '', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n/**\n * [[fill]align][sign][#][0][width][grouping_option][.precision][type]\n */\nvar FormatSpecifier$1 = /** @class */ (function () {\n function FormatSpecifier(specifier) {\n if (specifier instanceof FormatSpecifier) {\n this.fill = specifier.fill;\n this.align = specifier.align;\n this.sign = specifier.sign;\n this.symbol = specifier.symbol;\n this.zero = specifier.zero;\n this.width = specifier.width;\n this.comma = specifier.comma;\n this.precision = specifier.precision;\n this.trim = specifier.trim;\n this.type = specifier.type;\n this.string = specifier.string;\n }\n else {\n this.fill = specifier.fill === undefined ? ' ' : String(specifier.fill);\n this.align = specifier.align === undefined ? '>' : String(specifier.align);\n this.sign = specifier.sign === undefined ? '-' : String(specifier.sign);\n this.symbol = specifier.symbol === undefined ? '' : String(specifier.symbol);\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? '' : String(specifier.type);\n this.string = specifier.string;\n }\n }\n return FormatSpecifier;\n}());\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar formatRegEx$1 = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nvar interpolateRegEx$1 = /(#\\{(.*?)\\})/g;\nfunction makeFormatSpecifier$1(specifier) {\n if (specifier instanceof FormatSpecifier$1) {\n return new FormatSpecifier$1(specifier);\n }\n var found = false;\n var string = specifier.replace(interpolateRegEx$1, function () {\n if (!found) {\n specifier = arguments[2];\n found = true;\n }\n return '#{}';\n });\n var match = formatRegEx$1.exec(specifier);\n if (!match) {\n throw new Error(\"Invalid format: \" + specifier);\n }\n return new FormatSpecifier$1({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10],\n string: found ? string : undefined\n });\n}\nfunction tickFormat$1(start, stop, count, specifier) {\n var step = tickStep$1(start, stop, count);\n var formatSpecifier = makeFormatSpecifier$1(specifier == undefined ? ',f' : specifier);\n var precision;\n switch (formatSpecifier.type) {\n case 's': {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (formatSpecifier.precision == null && !isNaN(precision = precisionPrefix$1(step, value))) {\n formatSpecifier.precision = precision;\n }\n return formatPrefix$1(formatSpecifier, value);\n }\n case '':\n case 'e':\n case 'g':\n case 'p':\n case 'r': {\n if (formatSpecifier.precision == null && !isNaN(precision = precisionRound$1(step, Math.max(Math.abs(start), Math.abs(stop))))) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === 'e');\n }\n break;\n }\n case 'f':\n case '%': {\n if (formatSpecifier.precision == null && !isNaN(precision = precisionFixed$1(step))) {\n formatSpecifier.precision = precision - +(formatSpecifier.type === '%') * 2;\n }\n break;\n }\n }\n return format$1(formatSpecifier);\n}\nvar prefixExponent$1;\nfunction formatPrefixAuto$1(x, p) {\n if (p === void 0) { p = 0; }\n var d = formatDecimalParts$1(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n prefixExponent$1 = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3;\n var i = exponent - prefixExponent$1 + 1;\n var n = coefficient.length;\n if (i === n) {\n return coefficient;\n }\n else {\n if (i > n) {\n return coefficient + new Array(i - n + 1).join('0');\n }\n if (i > 0) {\n return coefficient.slice(0, i) + '.' + coefficient.slice(i);\n }\n else {\n var parts = formatDecimalParts$1(x, Math.max(0, p + i - 1));\n return '0.' + new Array(1 - i).join('0') + parts[0]; // less than 1y!\n }\n }\n}\nfunction formatDecimal$1(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString('en').replace(/,/g, '')\n : x.toString(10);\n}\nfunction formatGroup$1(grouping, thousands) {\n return function (value, width) {\n var t = [];\n var i = value.length;\n var j = 0;\n var g = grouping[0];\n var length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) {\n g = Math.max(1, width - length);\n }\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) {\n break;\n }\n g = grouping[j = (j + 1) % grouping.length];\n }\n return t.reverse().join(thousands);\n };\n}\nfunction formatNumerals$1(numerals) {\n return function (value) { return value.replace(/[0-9]/g, function (i) { return numerals[+i]; }); };\n}\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nfunction formatTrim$1(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1 = 0; i < n; ++i) {\n switch (s[i]) {\n case '.':\n i0 = i1 = i;\n break;\n case '0':\n if (i0 === 0)\n i0 = i;\n i1 = i;\n break;\n default:\n if (!+s[i])\n break out;\n if (i0 > 0)\n i0 = 0;\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\nfunction formatRounded$1(x, p) {\n var d = formatDecimalParts$1(x, p);\n if (!d) {\n return String(x);\n }\n var coefficient = d[0];\n var exponent = d[1];\n if (exponent < 0) {\n return '0.' + new Array(-exponent).join('0') + coefficient;\n }\n else {\n if (coefficient.length > exponent + 1) {\n return coefficient.slice(0, exponent + 1) + '.' + coefficient.slice(exponent + 1);\n }\n else {\n return coefficient + new Array(exponent - coefficient.length + 2).join('0');\n }\n }\n}\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns ['123', 0].\nfunction formatDecimalParts$1(x, p) {\n var sx = p ? x.toExponential(p - 1) : x.toExponential();\n var i = sx.indexOf('e');\n if (i < 0) { // NaN, ±Infinity\n return undefined;\n }\n var coefficient = sx.slice(0, i);\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +sx.slice(i + 1)\n ];\n}\nfunction identity$4(x) {\n return x;\n}\nvar formatDefaultLocale$1;\nvar format$1;\nvar formatPrefix$1;\ndefaultLocale$1({\n thousands: ',',\n grouping: [3],\n currency: ['$', '']\n});\nfunction defaultLocale$1(definition) {\n formatDefaultLocale$1 = formatLocale$2(definition);\n format$1 = formatDefaultLocale$1.format;\n formatPrefix$1 = formatDefaultLocale$1.formatPrefix;\n}\nfunction exponent$1(x) {\n var parts = formatDecimalParts$1(Math.abs(x));\n if (parts) {\n return parts[1];\n }\n return NaN;\n}\nfunction precisionFixed$1(step) {\n return Math.max(0, -exponent$1(Math.abs(step)));\n}\nfunction precisionPrefix$1(step, value) {\n var x = Math.floor(exponent$1(value) / 3);\n x = Math.min(8, x);\n x = Math.max(-8, x);\n return Math.max(0, x * 3 - exponent$1(Math.abs(step)));\n}\nfunction precisionRound$1(step, max) {\n step = Math.abs(step);\n max = Math.abs(max) - step;\n return Math.max(0, exponent$1(max) - exponent$1(step)) + 1;\n}\nfunction formatLocale$2(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined\n ? identity$4\n : formatGroup$1(Array.prototype.map.call(locale.grouping, Number), String(locale.thousands));\n var currencyPrefix = locale.currency === undefined ? '' : String(locale.currency[0]);\n var currencySuffix = locale.currency === undefined ? '' : String(locale.currency[1]);\n var decimal = locale.decimal === undefined ? '.' : String(locale.decimal);\n var numerals = locale.numerals === undefined\n ? identity$4\n : formatNumerals$1(Array.prototype.map.call(locale.numerals, String));\n var percent = locale.percent === undefined ? '%' : String(locale.percent);\n var minus = locale.minus === undefined ? '\\u2212' : String(locale.minus);\n var nan = locale.nan === undefined ? 'NaN' : String(locale.nan);\n function newFormat(specifier) {\n var formatSpecifier = makeFormatSpecifier$1(specifier);\n var fill = formatSpecifier.fill;\n var align = formatSpecifier.align;\n var sign = formatSpecifier.sign;\n var symbol = formatSpecifier.symbol;\n var zero = formatSpecifier.zero;\n var width = formatSpecifier.width;\n var comma = formatSpecifier.comma;\n var precision = formatSpecifier.precision;\n var trim = formatSpecifier.trim;\n var type = formatSpecifier.type;\n // The 'n' type is an alias for ',g'.\n if (type === 'n') {\n comma = true;\n type = 'g';\n }\n else if (!formatTypes$1[type]) { // The '' type, and any invalid type, is an alias for '.12~g'.\n if (precision === undefined) {\n precision = 12;\n }\n trim = true;\n type = 'g';\n }\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === '0' && align === '=')) {\n zero = true;\n fill = '0';\n align = '=';\n }\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === '$' ? currencyPrefix : symbol === '#' && /[boxX]/.test(type) ? '0' + type.toLowerCase() : '';\n var suffix = symbol === '$' ? currencySuffix : /[%p]/.test(type) ? percent : '';\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes$1[type];\n var maybeSuffix = /[defgprs%]/.test(type);\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n if (precision === undefined) {\n precision = 6;\n }\n else if (/[gprs]/.test(type)) {\n precision = Math.max(1, Math.min(21, precision));\n }\n else {\n precision = Math.max(0, Math.min(20, precision));\n }\n function format(x) {\n var valuePrefix = prefix;\n var valueSuffix = suffix;\n var value;\n if (type === 'c') {\n valueSuffix = formatType(+x) + valueSuffix;\n value = '';\n }\n else {\n var nx = +x;\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = x < 0 || 1 / nx < 0;\n // Perform the initial formatting.\n value = isNaN(nx) ? nan : formatType(Math.abs(nx), precision);\n // Trim insignificant zeros.\n if (trim) {\n value = formatTrim$1(value);\n }\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== '+') {\n valueNegative = false;\n }\n // Compute the prefix and suffix.\n var signPrefix = valueNegative\n ? (sign === '(' ? sign : minus)\n : (sign === '-' || sign === '(' ? '' : sign);\n var signSuffix = valueNegative && sign === '(' ? ')' : '';\n valuePrefix = signPrefix + valuePrefix;\n valueSuffix = (type === 's' ? prefixes$1[8 + prefixExponent$1 / 3] : '') + valueSuffix + signSuffix;\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n for (var i = 0, n = value.length; i < n; i++) {\n var c = value.charCodeAt(i);\n if (48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n // If the fill character is not '0', grouping is applied before padding.\n if (comma && !zero)\n value = group(value, Infinity);\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length;\n var padding = length < width ? new Array(width - length + 1).join(fill) : '';\n // If the fill character is '0', grouping is applied after padding.\n if (comma && zero) {\n value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity);\n padding = '';\n }\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case '<':\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case '=':\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case '^':\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n var string = formatSpecifier.string;\n if (string) {\n return string.replace(interpolateRegEx$1, function () { return numerals(value); });\n }\n return numerals(value);\n }\n return format;\n }\n function formatPrefix(specifier, value) {\n var formatSpecifier = makeFormatSpecifier$1(specifier);\n formatSpecifier.type = 'f';\n var f = newFormat(formatSpecifier);\n var e = Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3;\n var k = Math.pow(10, -e);\n var prefix = prefixes$1[8 + e / 3];\n return function (value) {\n return f(k * +value) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar __extends$1a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Maps continuous domain to a continuous range.\n */\nvar LinearScale$1 = /** @class */ (function (_super) {\n __extends$1a(LinearScale, _super);\n function LinearScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'linear';\n return _this;\n }\n LinearScale.prototype.ticks = function (count) {\n if (count === void 0) { count = 10; }\n var d = this._domain;\n return ticks$1(d[0], d[d.length - 1], count);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * @param count Tick count.\n */\n LinearScale.prototype.nice = function (count) {\n if (count === void 0) { count = 10; }\n var d = this.domain;\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var step;\n if (stop < start) {\n step = start;\n start = stop;\n stop = step;\n step = i0;\n i0 = i1;\n i1 = step;\n }\n step = tickIncrement$1(start, stop, count);\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement$1(start, stop, count);\n }\n else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement$1(start, stop, count);\n }\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n this.domain = d;\n }\n else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n this.domain = d;\n }\n };\n LinearScale.prototype.tickFormat = function (count, specifier) {\n var d = this.domain;\n return tickFormat$1(d[0], d[d.length - 1], count == undefined ? 10 : count, specifier);\n };\n return LinearScale;\n}(ContinuousScale$1));\n\nvar __values$4 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// Custom `Array.find` implementation for legacy browsers.\nfunction find(arr, predicate) {\n for (var i = 0; i < arr.length; i++) {\n var value = arr[i];\n if (predicate(value, i, arr)) {\n return value;\n }\n }\n}\nfunction identity$5(value) {\n return value;\n}\nfunction extent$1(values, predicate, map) {\n var transform = map || identity$5;\n var n = values.length;\n var i = -1;\n var value;\n var min;\n var max;\n while (++i < n) { // Find the first value.\n value = values[i];\n if (predicate(value)) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n value = values[i];\n if (predicate(value)) {\n if (min > value) {\n min = value;\n }\n if (max < value) {\n max = value;\n }\n }\n }\n }\n }\n return min === undefined || max === undefined ? undefined : [transform(min), transform(max)];\n}\n/**\n * finds the min and max using a process appropriate for stacked values. Ie,\n * summing up the positive and negative numbers, and returning the totals of each\n */\nfunction findMinMax(values) {\n var e_1, _a;\n var min = 0;\n var max = 0;\n try {\n for (var values_1 = __values$4(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n if (value < 0) {\n min += value;\n }\n else {\n max += value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { min: min, max: max };\n}\n\n// Simplified version of https://github.com/plotly/fast-isnumeric\n// that doesn't treat number strings with leading/trailing whitespace as numbers.\nfunction isNumber$1(value) {\n if (typeof value !== 'number') {\n return false;\n }\n return Number.isFinite(value);\n}\nfunction isNumberObject$1(value) {\n return !!value && value.hasOwnProperty('valueOf') && isNumber$1(value.valueOf());\n}\nfunction isNumeric$1(value) {\n return isNumber$1(value) || isNumberObject$1(value);\n}\nfunction isDate$1(value) {\n return value instanceof Date && !isNaN(+value);\n}\nfunction isString$1(value) {\n return typeof value === 'string';\n}\nfunction isStringObject$1(value) {\n return !!value && value.hasOwnProperty('toString') && isString$1(value.toString());\n}\nfunction isDiscrete(value) {\n return isString$1(value) || isStringObject$1(value);\n}\nfunction isContinuous$1(value) {\n return isNumeric$1(value) || isDate$1(value);\n}\n\nvar __extends$1b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Group$1 = /** @class */ (function (_super) {\n __extends$1b(Group, _super);\n function Group() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isContainerNode = true;\n _this._opacity = 1;\n return _this;\n }\n Object.defineProperty(Group.prototype, \"opacity\", {\n get: function () {\n return this._opacity;\n },\n set: function (value) {\n value = Math.min(1, Math.max(0, value));\n if (this._opacity !== value) {\n this._opacity = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n // We consider a group to be boundless, thus any point belongs to it.\n Group.prototype.containsPoint = function (x, y) {\n return true;\n };\n Group.prototype.computeBBox = function () {\n var left = Infinity;\n var right = -Infinity;\n var top = Infinity;\n var bottom = -Infinity;\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.children.forEach(function (child) {\n if (!child.visible) {\n return;\n }\n var bbox = child.computeBBox();\n if (!bbox) {\n return;\n }\n if (!(child instanceof Group)) {\n if (child.dirtyTransform) {\n child.computeTransformMatrix();\n }\n var matrix = Matrix$1.flyweight(child.matrix);\n var parent_1 = child.parent;\n while (parent_1) {\n matrix.preMultiplySelf(parent_1.matrix);\n parent_1 = parent_1.parent;\n }\n matrix.transformBBox(bbox, 0, bbox);\n }\n var x = bbox.x;\n var y = bbox.y;\n if (x < left) {\n left = x;\n }\n if (y < top) {\n top = y;\n }\n if (x + bbox.width > right) {\n right = x + bbox.width;\n }\n if (y + bbox.height > bottom) {\n bottom = y + bbox.height;\n }\n });\n return new BBox$1(left, top, right - left, bottom - top);\n };\n Group.prototype.render = function (ctx) {\n // A group can have `scaling`, `rotation`, `translation` properties\n // that are applied to the canvas context before children are rendered,\n // so all children can be transformed at once.\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var children = this.children;\n var n = children.length;\n ctx.globalAlpha *= this.opacity;\n if (this.dirtyZIndex) {\n this.dirtyZIndex = false;\n children.sort(function (a, b) { return a.zIndex - b.zIndex; });\n }\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.visible) {\n ctx.save();\n child.render(ctx);\n ctx.restore();\n }\n }\n // debug\n // this.computeBBox().render(ctx, {\n // label: this.id,\n // resetTransform: true,\n // fillStyle: 'rgba(0, 0, 0, 0.5)'\n // });\n };\n Group.className = 'Group';\n return Group;\n}(Node$1));\n\nvar EnterNode$1 = /** @class */ (function () {\n function EnterNode(parent, datum) {\n this.next = null;\n this.scene = parent.scene;\n this.parent = parent;\n this.datum = datum;\n }\n EnterNode.prototype.appendChild = function (node) {\n // This doesn't work without the `strict: true` in the `tsconfig.json`,\n // so we must have two `if` checks below, instead of this single one.\n // if (this.next && !Node.isNode(this.next)) {\n // throw new Error(`${this.next} is not a Node.`);\n // }\n if (this.next === null) {\n return this.parent.insertBefore(node, null);\n }\n if (!Node$1.isNode(this.next)) {\n throw new Error(this.next + \" is not a Node.\");\n }\n return this.parent.insertBefore(node, this.next);\n };\n EnterNode.prototype.insertBefore = function (node, nextNode) {\n return this.parent.insertBefore(node, nextNode);\n };\n return EnterNode;\n}());\n/**\n * G - type of the selected node(s).\n * GDatum - type of the datum of the selected node(s).\n * P - type of the parent node(s).\n * PDatum - type of the datum of the parent node(s).\n */\nvar Selection$1 = /** @class */ (function () {\n function Selection(groups, parents) {\n this.groups = groups;\n this.parents = parents;\n }\n Selection.select = function (node) {\n return new Selection([[typeof node === 'function' ? node() : node]], [undefined]);\n };\n Selection.selectAll = function (nodes) {\n return new Selection([nodes == null ? [] : nodes], [undefined]);\n };\n /**\n * Creates new nodes, appends them to the nodes of this selection and returns them\n * as a new selection. The created nodes inherit the datums and the parents of the nodes\n * they replace.\n * @param Class The constructor function to use to create the new nodes.\n */\n Selection.prototype.append = function (Class) {\n return this.select(function (node) {\n return node.appendChild(new Class());\n });\n };\n /**\n * Same as the {@link append}, but accepts a custom creator function with the\n * {@link NodeSelector} signature rather than a constructor function.\n * @param creator\n */\n Selection.prototype.appendFn = function (creator) {\n return this.select(function (node, data, index, group) {\n return node.appendChild(creator(node, data, index, group));\n });\n };\n /**\n * Runs the given selector that returns a single node for every node in each group.\n * The original nodes are then replaced by the nodes returned by the selector\n * and returned as a new selection.\n * The selected nodes inherit the datums and the parents of the original nodes.\n */\n Selection.prototype.select = function (selector) {\n var groups = this.groups;\n var numGroups = groups.length;\n var subgroups = [];\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n var subgroup = subgroups[j] = new Array(groupSize);\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var subnode = selector(node, node.datum, i, group);\n if (subnode) {\n subnode.datum = node.datum;\n }\n subgroup[i] = subnode;\n }\n // else this can be a group of the `enter` selection,\n // for example, with no nodes at the i-th position,\n // only nodes at the end of the group\n }\n }\n return new Selection(subgroups, this.parents);\n };\n /**\n * Same as {@link select}, but uses the given {@param Class} (constructor) as a selector.\n * @param Class The constructor function to use to find matching nodes.\n */\n Selection.prototype.selectByClass = function (Class) {\n return this.select(function (node) {\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectByTag = function (tag) {\n return this.select(function (node) {\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n return child;\n }\n }\n }\n });\n };\n Selection.prototype.selectAllByClass = function (Class) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child instanceof Class) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectAllByTag = function (tag) {\n return this.selectAll(function (node) {\n var nodes = [];\n if (Node$1.isNode(node)) {\n var children = node.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n var child = children[i];\n if (child.tag === tag) {\n nodes.push(child);\n }\n }\n }\n return nodes;\n });\n };\n Selection.prototype.selectNone = function () {\n return [];\n };\n /**\n * Runs the given selector that returns a group of nodes for every node in each group.\n * The original nodes are then replaced by the groups of nodes returned by the selector\n * and returned as a new selection. The original nodes become the parent nodes for each\n * group in the new selection. The selected nodes do not inherit the datums of the original nodes.\n * If called without any parameters, creates a new selection with an empty group for each\n * node in this selection.\n */\n Selection.prototype.selectAll = function (selectorAll) {\n if (!selectorAll) {\n selectorAll = this.selectNone;\n }\n // Each subgroup is populated with the selector (run on each group node) results.\n var subgroups = [];\n // In the new selection that we return, subgroups become groups,\n // and group nodes become parents.\n var parents = [];\n var groups = this.groups;\n var groupCount = groups.length;\n for (var j = 0; j < groupCount; j++) {\n var group = groups[j];\n var groupLength = group.length;\n for (var i = 0; i < groupLength; i++) {\n var node = group[i];\n if (node) {\n subgroups.push(selectorAll(node, node.datum, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection(subgroups, parents);\n };\n /**\n * Runs the given callback for every node in this selection and returns this selection.\n * @param cb\n */\n Selection.prototype.each = function (cb) {\n var groups = this.groups;\n var numGroups = groups.length;\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n cb(node, node.datum, i, group);\n }\n }\n }\n return this;\n };\n Selection.prototype.remove = function () {\n return this.each(function (node) {\n if (Node$1.isNode(node)) {\n var parent_1 = node.parent;\n if (parent_1) {\n parent_1.removeChild(node);\n }\n }\n });\n };\n Selection.prototype.merge = function (other) {\n var groups0 = this.groups;\n var groups1 = other.groups;\n var m0 = groups0.length;\n var m1 = groups1.length;\n var m = Math.min(m0, m1);\n var merges = new Array(m0);\n var j = 0;\n for (; j < m; j++) {\n var group0 = groups0[j];\n var group1 = groups1[j];\n var n = group0.length;\n var merge = merges[j] = new Array(n);\n for (var i = 0; i < n; i++) {\n var node = group0[i] || group1[i];\n merge[i] = node || undefined;\n }\n }\n for (; j < m0; j++) {\n merges[j] = groups0[j];\n }\n return new Selection(merges, this.parents);\n };\n /**\n * Return the first non-null element in this selection.\n * If the selection is empty, returns null.\n */\n Selection.prototype.node = function () {\n var groups = this.groups;\n var numGroups = groups.length;\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var groupSize = group.length;\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n return node;\n }\n }\n }\n return null;\n };\n Selection.prototype.attr = function (name, value) {\n this.each(function (node) {\n node[name] = value;\n });\n return this;\n };\n Selection.prototype.attrFn = function (name, value) {\n this.each(function (node, datum, index, group) {\n node[name] = value(node, datum, index, group);\n });\n return this;\n };\n /**\n * Invokes the given function once, passing in this selection.\n * Returns this selection. Facilitates method chaining.\n * @param cb\n */\n Selection.prototype.call = function (cb) {\n cb(this);\n return this;\n };\n Object.defineProperty(Selection.prototype, \"size\", {\n /**\n * Returns the total number of nodes in this selection.\n */\n get: function () {\n var size = 0;\n this.each(function () { return size++; });\n return size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"data\", {\n /**\n * Returns the array of data for the selected elements.\n */\n get: function () {\n var data = [];\n this.each(function (_, datum) { return data.push(datum); });\n return data;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"enter\", {\n get: function () {\n return new Selection(this.enterGroups ? this.enterGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Selection.prototype, \"exit\", {\n get: function () {\n return new Selection(this.exitGroups ? this.exitGroups : [[]], this.parents);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the given value to each selected node and returns this selection\n * with its {@link GDatum} type changed to the type of the given value.\n * This method doesn't compute a join and doesn't affect indexes or the enter and exit selections.\n * This method can also be used to clear bound data.\n * @param value\n */\n Selection.prototype.setDatum = function (value) {\n return this.each(function (node) {\n node.datum = value;\n });\n };\n Object.defineProperty(Selection.prototype, \"datum\", {\n /**\n * Returns the bound datum for the first non-null element in the selection.\n * This is generally useful only if you know the selection contains exactly one element.\n */\n get: function () {\n var node = this.node();\n return node ? node.datum : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Binds the specified array of values with the selected nodes, returning a new selection\n * that represents the _update_ selection: the nodes successfully bound to the values.\n * Also defines the {@link enter} and {@link exit} selections on the returned selection,\n * which can be used to add or remove the nodes to correspond to the new data.\n * The `values` is an array of values of a particular type, or a function that returns\n * an array of values for each group.\n * When values are assigned to the nodes, they are stored in the {@link Node.datum} property.\n * @param values\n * @param key\n */\n Selection.prototype.setData = function (values, key) {\n if (typeof values !== 'function') {\n var data_1 = values;\n values = function () { return data_1; };\n }\n var groups = this.groups;\n var parents = this.parents;\n var numGroups = groups.length;\n var updateGroups = new Array(numGroups);\n var enterGroups = new Array(numGroups);\n var exitGroups = new Array(numGroups);\n for (var j = 0; j < numGroups; j++) {\n var group = groups[j];\n var parent_2 = parents[j];\n if (!parent_2) {\n throw new Error(\"Group #\" + j + \" has no parent: \" + group);\n }\n var groupSize = group.length;\n var data = values(parent_2, parent_2.datum, j, parents);\n var dataSize = data.length;\n var enterGroup = enterGroups[j] = new Array(dataSize);\n var updateGroup = updateGroups[j] = new Array(dataSize);\n var exitGroup = exitGroups[j] = new Array(groupSize);\n if (key) {\n this.bindKey(parent_2, group, enterGroup, updateGroup, exitGroup, data, key);\n }\n else {\n this.bindIndex(parent_2, group, enterGroup, updateGroup, exitGroup, data);\n }\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0; i0 < dataSize; i0++) {\n var previous = enterGroup[i0];\n if (previous) {\n if (i0 >= i1) {\n i1 = i0 + 1;\n }\n var next = void 0;\n while (!(next = updateGroup[i1]) && i1 < dataSize) {\n i1++;\n }\n previous.next = next || null;\n }\n }\n }\n var result = new Selection(updateGroups, parents);\n result.enterGroups = enterGroups;\n result.exitGroups = exitGroups;\n return result;\n };\n Selection.prototype.bindIndex = function (parent, group, enter, update, exit, data) {\n var groupSize = group.length;\n var dataSize = data.length;\n var i = 0;\n for (; i < dataSize; i++) {\n var node = group[i];\n if (node) {\n node.datum = data[i];\n update[i] = node;\n }\n else { // more datums than group nodes\n enter[i] = new EnterNode$1(parent, data[i]);\n }\n }\n // more group nodes than datums\n for (; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n exit[i] = node;\n }\n }\n };\n Selection.prototype.bindKey = function (parent, group, enter, update, exit, data, key) {\n var groupSize = group.length;\n var dataSize = data.length;\n var keyValues = new Array(groupSize);\n var nodeByKeyValue = {};\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node) {\n var keyValue = keyValues[i] = Selection.keyPrefix + key(node, node.datum, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n }\n else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n // Compute the key for each datum.\n // If there is a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (var i = 0; i < dataSize; i++) {\n var keyValue = Selection.keyPrefix + key(parent, data[i], i, data);\n var node = nodeByKeyValue[keyValue];\n if (node) {\n update[i] = node;\n node.datum = data[i];\n nodeByKeyValue[keyValue] = undefined;\n }\n else {\n enter[i] = new EnterNode$1(parent, data[i]);\n }\n }\n // Add any remaining nodes that were not bound to data to exit.\n for (var i = 0; i < groupSize; i++) {\n var node = group[i];\n if (node && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n };\n Selection.keyPrefix = '$'; // Protect against keys like '__proto__'.\n return Selection;\n}());\n\nvar __extends$1c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Line$1 = /** @class */ (function (_super) {\n __extends$1c(Line, _super);\n function Line() {\n var _this = _super.call(this) || this;\n _this._x1 = 0;\n _this._y1 = 0;\n _this._x2 = 0;\n _this._y2 = 0;\n _this.restoreOwnStyles();\n return _this;\n }\n Object.defineProperty(Line.prototype, \"x1\", {\n get: function () {\n // TODO: Investigate getter performance further in the context\n // of the scene graph.\n // In isolated benchmarks using a getter has the same\n // performance as a direct property access in Firefox 64.\n // But in Chrome 71 the getter is 60% slower than direct access.\n // Direct read is 4.5+ times slower in Chrome than it is in Firefox.\n // Property access and direct read have the same performance\n // in Safari 12, which is 2+ times faster than Firefox at this.\n // https://jsperf.com/es5-getters-setters-versus-getter-setter-methods/18\n // This is a know Chrome issue. They say it's not a regression, since\n // the behavior is observed since M60, but jsperf.com history shows the\n // 10x slowdown happened between Chrome 48 and Chrome 57.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=908743\n return this._x1;\n },\n set: function (value) {\n if (this._x1 !== value) {\n this._x1 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (value) {\n if (this._y1 !== value) {\n this._y1 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (value) {\n if (this._x2 !== value) {\n this._x2 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Line.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (value) {\n if (this._y2 !== value) {\n this._y2 = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Line.prototype.computeBBox = function () {\n return new BBox$1(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);\n };\n Line.prototype.isPointInPath = function (x, y) {\n return false;\n };\n Line.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Line.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var x1 = this.x1;\n var y1 = this.y1;\n var x2 = this.x2;\n var y2 = this.y2;\n // Align to the pixel grid if the line is strictly vertical\n // or horizontal (but not both, i.e. a dot).\n if (x1 === x2) {\n var x = Math.round(x1) + Math.floor(this.strokeWidth) % 2 / 2;\n x1 = x;\n x2 = x;\n }\n else if (y1 === y2) {\n var y = Math.round(y1) + Math.floor(this.strokeWidth) % 2 / 2;\n y1 = y;\n y2 = y;\n }\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Line.className = 'Line';\n Line.defaultStyles = chainObjects$1(Shape$1.defaultStyles, {\n fill: undefined,\n strokeWidth: 1\n });\n return Line;\n}(Shape$1));\n\n// @ts-ignore Suppress tsc error: Property 'sign' does not exist on type 'Math'\nvar sign$1 = Math.sign ? Math.sign : function (x) {\n x = +x;\n if (x === 0 || isNaN(x)) {\n return x;\n }\n return x > 0 ? 1 : -1;\n};\n/**\n * Finds the roots of a parametric linear equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction linearRoot$1(a, b) {\n var t = -b / a;\n return (a !== 0 && t >= 0 && t <= 1) ? [t] : [];\n}\n/**\n * Finds the roots of a parametric quadratic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction quadraticRoots$1(a, b, c) {\n if (a === 0) {\n return linearRoot$1(b, c);\n }\n var D = b * b - 4 * a * c; // The polynomial's discriminant.\n var roots = [];\n if (D === 0) { // A single real root.\n var t = -b / (2 * a);\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n }\n else if (D > 0) { // A pair of distinct real roots.\n var rD = Math.sqrt(D);\n var t1 = (-b - rD) / (2 * a);\n var t2 = (-b + rD) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n }\n // else -> Complex roots.\n return roots;\n}\n/**\n * Finds the roots of a parametric cubic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n * Returns an array of parametric intersection locations along the cubic,\n * excluding out-of-bounds intersections (before or after the end point\n * or in the imaginary plane).\n * An adaptation of http://www.particleincell.com/blog/2013/cubic-line-intersection/\n */\nfunction cubicRoots$1(a, b, c, d) {\n if (a === 0) {\n return quadraticRoots$1(b, c, d);\n }\n var A = b / a;\n var B = c / a;\n var C = d / a;\n var Q = (3 * B - A * A) / 9;\n var R = (9 * A * B - 27 * C - 2 * A * A * A) / 54;\n var D = Q * Q * Q + R * R; // The polynomial's discriminant.\n var third = 1 / 3;\n var roots = [];\n if (D >= 0) { // Complex or duplicate roots.\n var rD = Math.sqrt(D);\n var S = sign$1(R + rD) * Math.pow(Math.abs(R + rD), third);\n var T = sign$1(R - rD) * Math.pow(Math.abs(R - rD), third);\n var Im = Math.abs(Math.sqrt(3) * (S - T) / 2); // Complex part of the root pair.\n var t = -third * A + (S + T); // A real root.\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n if (Im === 0) {\n var t_1 = -third * A - (S + T) / 2; // The real part of a complex root.\n if (t_1 >= 0 && t_1 <= 1) {\n roots.push(t_1);\n }\n }\n }\n else { // Distinct real roots.\n var theta = Math.acos(R / Math.sqrt(-Q * Q * Q));\n var thirdA = third * A;\n var twoSqrtQ = 2 * Math.sqrt(-Q);\n var t1 = twoSqrtQ * Math.cos(third * theta) - thirdA;\n var t2 = twoSqrtQ * Math.cos(third * (theta + 2 * Math.PI)) - thirdA;\n var t3 = twoSqrtQ * Math.cos(third * (theta + 4 * Math.PI)) - thirdA;\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n if (t3 >= 0 && t3 <= 1) {\n roots.push(t3);\n }\n }\n return roots;\n}\n\n/**\n * Returns the intersection point for the given pair of line segments, or null,\n * if the segments are parallel or don't intersect.\n * Based on http://paulbourke.net/geometry/pointlineplane/\n */\nfunction segmentIntersection$1(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2) {\n var d = (ax2 - ax1) * (by2 - by1) - (ay2 - ay1) * (bx2 - bx1);\n if (d === 0) { // The lines are parallel.\n return null;\n }\n var ua = ((bx2 - bx1) * (ay1 - by1) - (ax1 - bx1) * (by2 - by1)) / d;\n var ub = ((ax2 - ax1) * (ay1 - by1) - (ay2 - ay1) * (ax1 - bx1)) / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n return {\n x: ax1 + ua * (ax2 - ax1),\n y: ay1 + ua * (ay2 - ay1)\n };\n }\n return null; // The intersection point is outside either or both segments.\n}\n/**\n * Returns intersection points of the given cubic curve and the line segment.\n * Takes in x/y components of cubic control points and line segment start/end points\n * as parameters.\n */\nfunction cubicSegmentIntersections$1(px1, py1, px2, py2, px3, py3, px4, py4, x1, y1, x2, y2) {\n var intersections = [];\n // Find line equation coefficients.\n var A = y1 - y2;\n var B = x2 - x1;\n var C = x1 * (y2 - y1) - y1 * (x2 - x1);\n // Find cubic Bezier curve equation coefficients from control points.\n var bx = bezierCoefficients$1(px1, px2, px3, px4);\n var by = bezierCoefficients$1(py1, py2, py3, py4);\n var a = A * bx[0] + B * by[0]; // t^3\n var b = A * bx[1] + B * by[1]; // t^2\n var c = A * bx[2] + B * by[2]; // t\n var d = A * bx[3] + B * by[3] + C; // 1\n var roots = cubicRoots$1(a, b, c, d);\n // Verify that the roots are within bounds of the linear segment.\n for (var i = 0; i < roots.length; i++) {\n var t = roots[i];\n var tt = t * t;\n var ttt = t * tt;\n // Find the cartesian plane coordinates for the parametric root `t`.\n var x = bx[0] * ttt + bx[1] * tt + bx[2] * t + bx[3];\n var y = by[0] * ttt + by[1] * tt + by[2] * t + by[3];\n // The parametric cubic roots we found are intersection points\n // with an infinite line, and so the x/y coordinates above are as well.\n // Make sure the x/y is also within the bounds of the given segment.\n var s = void 0;\n if (x1 !== x2) {\n s = (x - x1) / (x2 - x1);\n }\n else { // the line is vertical\n s = (y - y1) / (y2 - y1);\n }\n if (s >= 0 && s <= 1) {\n intersections.push({ x: x, y: y });\n }\n }\n return intersections;\n}\n/**\n * Returns the given coordinates vector multiplied by the coefficient matrix\n * of the parametric cubic Bézier equation.\n */\nfunction bezierCoefficients$1(P1, P2, P3, P4) {\n return [\n -P1 + 3 * P2 - 3 * P3 + P4,\n 3 * P1 - 6 * P2 + 3 * P3,\n -3 * P1 + 3 * P2,\n P1 // | 1 0 0 0| |P4|\n ];\n}\n\nvar Path2D$1 = /** @class */ (function () {\n function Path2D() {\n // The methods of this class will likely be called many times per animation frame,\n // and any allocation can trigger a GC cycle during animation, so we attempt\n // to minimize the number of allocations.\n this.commands = [];\n this.params = [];\n this._closedPath = false;\n }\n Path2D.prototype.draw = function (ctx) {\n var commands = this.commands;\n var params = this.params;\n var n = commands.length;\n var j = 0;\n ctx.beginPath();\n for (var i = 0; i < n; i++) {\n switch (commands[i]) {\n case 'M':\n ctx.moveTo(params[j++], params[j++]);\n break;\n case 'L':\n ctx.lineTo(params[j++], params[j++]);\n break;\n case 'C':\n ctx.bezierCurveTo(params[j++], params[j++], params[j++], params[j++], params[j++], params[j++]);\n break;\n case 'Z':\n ctx.closePath();\n break;\n }\n }\n };\n Path2D.prototype.moveTo = function (x, y) {\n if (this.xy) {\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n this.commands.push('M');\n this.params.push(x, y);\n };\n Path2D.prototype.lineTo = function (x, y) {\n if (this.xy) {\n this.commands.push('L');\n this.params.push(x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.moveTo(x, y);\n }\n };\n Path2D.prototype.rect = function (x, y, width, height) {\n this.moveTo(x, y);\n this.lineTo(x + width, y);\n this.lineTo(x + width, y + height);\n this.lineTo(x, y + height);\n this.closePath();\n };\n /**\n * Adds an arc segment to the path definition.\n * https://www.w3.org/TR/SVG11/paths.html#PathDataEllipticalArcCommands\n * @param rx The major-axis radius.\n * @param ry The minor-axis radius.\n * @param rotation The x-axis rotation, expressed in radians.\n * @param fA The large arc flag. `1` to use angle > π.\n * @param fS The sweep flag. `1` for the arc that goes to `x`/`y` clockwise.\n * @param x2 The x coordinate to arc to.\n * @param y2 The y coordinate to arc to.\n */\n Path2D.prototype.arcTo = function (rx, ry, rotation, fA, fS, x2, y2) {\n // Convert from endpoint to center parametrization:\n // https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes\n var xy = this.xy;\n if (!xy) {\n return;\n }\n if (rx < 0) {\n rx = -rx;\n }\n if (ry < 0) {\n ry = -ry;\n }\n var x1 = xy[0];\n var y1 = xy[1];\n var hdx = (x1 - x2) / 2;\n var hdy = (y1 - y2) / 2;\n var sinPhi = Math.sin(rotation);\n var cosPhi = Math.cos(rotation);\n var xp = cosPhi * hdx + sinPhi * hdy;\n var yp = -sinPhi * hdx + cosPhi * hdy;\n var ratX = xp / rx;\n var ratY = yp / ry;\n var lambda = ratX * ratX + ratY * ratY;\n var cx = (x1 + x2) / 2;\n var cy = (y1 + y2) / 2;\n var cpx = 0;\n var cpy = 0;\n if (lambda >= 1) {\n lambda = Math.sqrt(lambda);\n rx *= lambda;\n ry *= lambda;\n // me gives lambda == cpx == cpy == 0;\n }\n else {\n lambda = Math.sqrt(1 / lambda - 1);\n if (fA === fS) {\n lambda = -lambda;\n }\n cpx = lambda * rx * ratY;\n cpy = -lambda * ry * ratX;\n cx += cosPhi * cpx - sinPhi * cpy;\n cy += sinPhi * cpx + cosPhi * cpy;\n }\n var theta1 = Math.atan2((yp - cpy) / ry, (xp - cpx) / rx);\n var deltaTheta = Math.atan2((-yp - cpy) / ry, (-xp - cpx) / rx) - theta1;\n // if (fS) {\n // if (deltaTheta <= 0) {\n // deltaTheta += Math.PI * 2;\n // }\n // }\n // else {\n // if (deltaTheta >= 0) {\n // deltaTheta -= Math.PI * 2;\n // }\n // }\n this.cubicArc(cx, cy, rx, ry, rotation, theta1, theta1 + deltaTheta, 1 - fS);\n };\n /**\n * Approximates an elliptical arc with up to four cubic Bézier curves.\n * @param commands The string array to write SVG command letters to.\n * @param params The number array to write SVG command parameters (cubic control points) to.\n * @param cx The x-axis coordinate for the ellipse's center.\n * @param cy The y-axis coordinate for the ellipse's center.\n * @param rx The ellipse's major-axis radius.\n * @param ry The ellipse's minor-axis radius.\n * @param phi The rotation for this ellipse, expressed in radians.\n * @param theta1 The starting angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param theta2 The ending angle, measured clockwise from the positive x-axis and expressed in radians.\n * @param anticlockwise The arc control points are always placed clockwise from `theta1` to `theta2`,\n * even when `theta1 > theta2`, unless this flag is set to `1`.\n */\n Path2D.cubicArc = function (commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n if (anticlockwise) {\n var temp = theta1;\n theta1 = theta2;\n theta2 = temp;\n }\n var start = params.length;\n // See https://pomax.github.io/bezierinfo/#circles_cubic\n // Arc of unit circle (start angle = 0, end angle <= π/2) in cubic Bézier coordinates:\n // S = [1, 0]\n // C1 = [1, f]\n // C2 = [cos(θ) + f * sin(θ), sin(θ) - f * cos(θ)]\n // E = [cos(θ), sin(θ)]\n // f = 4/3 * tan(θ/4)\n var f90 = 0.5522847498307935; // f for θ = π/2 is 4/3 * (Math.sqrt(2) - 1)\n var sinTheta1 = Math.sin(theta1);\n var cosTheta1 = Math.cos(theta1);\n var sinPhi = Math.sin(phi);\n var cosPhi = Math.cos(phi);\n var rightAngle = Math.PI / 2;\n // Since we know how to draw an arc of a unit circle with a cubic Bézier,\n // to draw an elliptical arc with arbitrary rotation and radii we:\n // 1) rotate the Bézier coordinates that represent a circular arc by θ\n // 2) scale the circular arc separately along the x/y axes, making it elliptical\n // 3) rotate elliptical arc by φ\n // |cos(φ) -sin(φ)| |sx 0| |cos(θ) -sin(θ)| -> |xx xy|\n // |sin(φ) cos(φ)| | 0 sy| |sin(θ) cos(θ)| -> |yx yy|\n var xx = cosPhi * cosTheta1 * rx - sinPhi * sinTheta1 * ry;\n var yx = sinPhi * cosTheta1 * rx + cosPhi * sinTheta1 * ry;\n var xy = -cosPhi * sinTheta1 * rx - sinPhi * cosTheta1 * ry;\n var yy = -sinPhi * sinTheta1 * rx + cosPhi * cosTheta1 * ry;\n // TODO: what if delta between θ1 and θ2 is greater than 2π?\n // Always draw clockwise from θ1 to θ2.\n theta2 -= theta1;\n if (theta2 < 0) {\n theta2 += Math.PI * 2;\n }\n // Multiplying each point [x, y] by:\n // |xx xy cx| |x|\n // |yx yy cy| |y|\n // | 0 0 1| |1|\n // TODO: This move command may be redundant, if we are already at this point.\n // The coordinates of the point calculated here may differ ever so slightly\n // because of precision error.\n commands.push('M');\n params.push(xx + cx, yx + cy);\n while (theta2 >= rightAngle) {\n theta2 -= rightAngle;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xy + cx;\n params.push(xx + xy * f90 + cx, yx + yy * f90 + cy, xx * f90 + xy + cx, yx * f90 + yy + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yy + cy);\n // Prepend π/2 rotation matrix.\n // |xx xy| | 0 1| -> | xy -xx|\n // |yx yy| |-1 0| -> | yy -yx|\n // [xx, yx, xy, yy] = [xy, yy, -xx, -yx];\n // Compared to swapping with a temp variable, destructuring is:\n // - 10% faster in Chrome 70\n // - 99% slower in Firefox 63\n // Temp variable solution is 45% faster in FF than Chrome.\n // https://jsperf.com/multi-swap\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1165569\n var temp = xx;\n xx = xy;\n xy = -temp;\n temp = yx;\n yx = yy;\n yy = -temp;\n }\n if (theta2) {\n var f = 4 / 3 * Math.tan(theta2 / 4);\n var sinPhi2 = Math.sin(theta2);\n var cosPhi2 = Math.cos(theta2);\n var C2x = cosPhi2 + f * sinPhi2;\n var C2y = sinPhi2 - f * cosPhi2;\n commands.push('C');\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var lastX = xx * cosPhi2 + xy * sinPhi2 + cx;\n params.push(xx + xy * f + cx, yx + yy * f + cy, xx * C2x + xy * C2y + cx, yx * C2x + yy * C2y + cy, Math.abs(lastX) < 1e-8 ? 0 : lastX, yx * cosPhi2 + yy * sinPhi2 + cy);\n }\n if (anticlockwise) {\n for (var i = start, j = params.length - 2; i < j; i += 2, j -= 2) {\n var temp = params[i];\n params[i] = params[j];\n params[j] = temp;\n temp = params[i + 1];\n params[i + 1] = params[j + 1];\n params[j + 1] = temp;\n }\n }\n };\n Path2D.prototype.cubicArc = function (cx, cy, rx, ry, phi, theta1, theta2, anticlockwise) {\n var commands = this.commands;\n var params = this.params;\n var start = commands.length;\n Path2D.cubicArc(commands, params, cx, cy, rx, ry, phi, theta1, theta2, anticlockwise);\n var x = params[params.length - 2];\n var y = params[params.length - 1];\n if (this.xy) {\n commands[start] = 'L';\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n };\n /**\n * Returns the `[x, y]` coordinates of the curve at `t`.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param t\n */\n Path2D.prototype.deCasteljau = function (points, t) {\n var n = points.length;\n if (n < 2 || n % 2 === 1) {\n throw new Error('Fewer than two points or not an even count.');\n }\n else if (n === 2 || t === 0) {\n return points.slice(0, 2);\n }\n else if (t === 1) {\n return points.slice(-2);\n }\n else {\n var newPoints = [];\n var last = n - 2;\n for (var i = 0; i < last; i += 2) {\n newPoints.push((1 - t) * points[i] + t * points[i + 2], // x\n (1 - t) * points[i + 1] + t * points[i + 3] // y\n );\n }\n return this.deCasteljau(newPoints, t);\n }\n };\n /**\n * Approximates the given curve using `n` line segments.\n * @param points `(n + 1) * 2` control point coordinates for a Bézier curve of n-th order.\n * @param n\n */\n Path2D.prototype.approximateCurve = function (points, n) {\n var xy = this.deCasteljau(points, 0);\n this.moveTo(xy[0], xy[1]);\n var step = 1 / n;\n for (var t = step; t <= 1; t += step) {\n var xy_1 = this.deCasteljau(points, t);\n this.lineTo(xy_1[0], xy_1[1]);\n }\n };\n /**\n * Adds a quadratic curve segment to the path definition.\n * Note: the given quadratic segment is converted and stored as a cubic one.\n * @param cx x-component of the curve's control point\n * @param cy y-component of the curve's control point\n * @param x x-component of the end point\n * @param y y-component of the end point\n */\n Path2D.prototype.quadraticCurveTo = function (cx, cy, x, y) {\n if (!this.xy) {\n this.moveTo(cx, cy);\n }\n // See https://pomax.github.io/bezierinfo/#reordering\n this.cubicCurveTo((this.xy[0] + 2 * cx) / 3, (this.xy[1] + 2 * cy) / 3, // 1/3 start + 2/3 control\n (2 * cx + x) / 3, (2 * cy + y) / 3, // 2/3 control + 1/3 end\n x, y);\n };\n Path2D.prototype.cubicCurveTo = function (cx1, cy1, cx2, cy2, x, y) {\n if (!this.xy) {\n this.moveTo(cx1, cy1);\n }\n this.commands.push('C');\n this.params.push(cx1, cy1, cx2, cy2, x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n };\n Object.defineProperty(Path2D.prototype, \"closedPath\", {\n get: function () {\n return this._closedPath;\n },\n enumerable: true,\n configurable: true\n });\n Path2D.prototype.closePath = function () {\n if (this.xy) {\n this.xy = undefined;\n this.commands.push('Z');\n this._closedPath = true;\n }\n };\n Path2D.prototype.clear = function () {\n this.commands.length = 0;\n this.params.length = 0;\n this.xy = undefined;\n this._closedPath = false;\n };\n Path2D.prototype.isPointInPath = function (x, y) {\n var commands = this.commands;\n var params = this.params;\n var cn = commands.length;\n // Hit testing using ray casting method, where the ray's origin is some point\n // outside the path. In this case, an offscreen point that is remote enough, so that\n // even if the path itself is large and is partially offscreen, the ray's origin\n // will likely be outside the path anyway. To test if the given point is inside the\n // path or not, we cast a ray from the origin to the given point and check the number\n // of intersections of this segment with the path. If the number of intersections is\n // even, then the ray both entered and exited the path an equal number of times,\n // therefore the point is outside the path, and inside the path, if the number of\n // intersections is odd. Since the path is compound, we check if the ray segment\n // intersects with each of the path's segments, which can be either a line segment\n // (one or no intersection points) or a Bézier curve segment (up to 3 intersection\n // points).\n var ox = -10000;\n var oy = -10000;\n // the starting point of the current path\n var sx = NaN;\n var sy = NaN;\n // the previous point of the current path\n var px = 0;\n var py = 0;\n var intersectionCount = 0;\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (commands[ci]) {\n case 'M':\n if (!isNaN(sx)) {\n if (segmentIntersection$1(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n sx = px = params[pi++];\n sy = py = params[pi++];\n break;\n case 'L':\n if (segmentIntersection$1(px, py, px = params[pi++], py = params[pi++], ox, oy, x, y)) {\n intersectionCount++;\n }\n break;\n case 'C':\n intersectionCount += cubicSegmentIntersections$1(px, py, params[pi++], params[pi++], params[pi++], params[pi++], px = params[pi++], py = params[pi++], ox, oy, x, y).length;\n break;\n case 'Z':\n if (!isNaN(sx)) {\n if (segmentIntersection$1(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n break;\n }\n }\n return intersectionCount % 2 === 1;\n };\n Path2D.fromString = function (value) {\n var path = new Path2D();\n path.setFromString(value);\n return path;\n };\n /**\n * Split the SVG path at command letters,\n * then extract the command letter and parameters from each substring.\n * @param value\n */\n Path2D.parseSvgPath = function (value) {\n return value.trim().split(Path2D.splitCommandsRe).map(function (part) {\n var strParams = part.match(Path2D.matchParamsRe);\n return {\n command: part.substr(0, 1),\n params: strParams ? strParams.map(parseFloat) : []\n };\n });\n };\n Path2D.prettifySvgPath = function (value) {\n return Path2D.parseSvgPath(value).map(function (d) { return d.command + d.params.join(','); }).join('\\n');\n };\n /**\n * See https://www.w3.org/TR/SVG11/paths.html\n * @param value\n */\n Path2D.prototype.setFromString = function (value) {\n var _this = this;\n this.clear();\n var parts = Path2D.parseSvgPath(value);\n // Current point.\n var x;\n var y;\n // Last control point. Used to calculate the reflection point\n // for `S`, `s`, `T`, `t` commands.\n var cpx;\n var cpy;\n var lastCommand;\n function checkQuadraticCP() {\n if (!lastCommand.match(Path2D.quadraticCommandRe)) {\n cpx = x;\n cpy = y;\n }\n }\n function checkCubicCP() {\n if (!lastCommand.match(Path2D.cubicCommandRe)) {\n cpx = x;\n cpy = y;\n }\n }\n // But that will make compiler complain about x/y, cpx/cpy\n // being used without being set first.\n parts.forEach(function (part) {\n var p = part.params;\n var n = p.length;\n var i = 0;\n switch (part.command) {\n case 'M':\n _this.moveTo(x = p[i++], y = p[i++]);\n while (i < n) {\n _this.lineTo(x = p[i++], y = p[i++]);\n }\n break;\n case 'm':\n _this.moveTo(x += p[i++], y += p[i++]);\n while (i < n) {\n _this.lineTo(x += p[i++], y += p[i++]);\n }\n break;\n case 'L':\n while (i < n) {\n _this.lineTo(x = p[i++], y = p[i++]);\n }\n break;\n case 'l':\n while (i < n) {\n _this.lineTo(x += p[i++], y += p[i++]);\n }\n break;\n case 'C':\n while (i < n) {\n _this.cubicCurveTo(p[i++], p[i++], cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'c':\n while (i < n) {\n _this.cubicCurveTo(x + p[i++], y + p[i++], cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'S':\n checkCubicCP();\n while (i < n) {\n _this.cubicCurveTo(x + x - cpx, y + y - cpy, cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 's':\n checkCubicCP();\n while (i < n) {\n _this.cubicCurveTo(x + x - cpx, y + y - cpy, cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'Q':\n while (i < n) {\n _this.quadraticCurveTo(cpx = p[i++], cpy = p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'q':\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + p[i++], cpy = y + p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'T':\n checkQuadraticCP();\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + x - cpx, cpy = y + y - cpy, x = p[i++], y = p[i++]);\n }\n break;\n case 't':\n checkQuadraticCP();\n while (i < n) {\n _this.quadraticCurveTo(cpx = x + x - cpx, cpy = y + y - cpy, x += p[i++], y += p[i++]);\n }\n break;\n case 'A':\n while (i < n) {\n _this.arcTo(p[i++], p[i++], p[i++] * Math.PI / 180, p[i++], p[i++], x = p[i++], y = p[i++]);\n }\n break;\n case 'a':\n while (i < n) {\n _this.arcTo(p[i++], p[i++], p[i++] * Math.PI / 180, p[i++], p[i++], x += p[i++], y += p[i++]);\n }\n break;\n case 'Z':\n case 'z':\n _this.closePath();\n break;\n case 'H':\n while (i < n) {\n _this.lineTo(x = p[i++], y);\n }\n break;\n case 'h':\n while (i < n) {\n _this.lineTo(x += p[i++], y);\n }\n break;\n case 'V':\n while (i < n) {\n _this.lineTo(x, y = p[i++]);\n }\n break;\n case 'v':\n while (i < n) {\n _this.lineTo(x, y += p[i++]);\n }\n break;\n }\n lastCommand = part.command;\n });\n };\n Path2D.prototype.toString = function () {\n var c = this.commands;\n var p = this.params;\n var cn = c.length;\n var out = [];\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (c[ci]) {\n case 'M':\n out.push('M' + p[pi++] + ',' + p[pi++]);\n break;\n case 'L':\n out.push('L' + p[pi++] + ',' + p[pi++]);\n break;\n case 'C':\n out.push('C' + p[pi++] + ',' + p[pi++] + ' ' +\n p[pi++] + ',' + p[pi++] + ' ' +\n p[pi++] + ',' + p[pi++]);\n break;\n case 'Z':\n out.push('Z');\n break;\n }\n }\n return out.join('');\n };\n Path2D.prototype.toPrettyString = function () {\n return Path2D.prettifySvgPath(this.toString());\n };\n Path2D.prototype.toSvg = function () {\n return Path2D.xmlDeclaration + \"\\n\\n \\n\";\n };\n Path2D.prototype.toDebugSvg = function () {\n var d = Path2D.prettifySvgPath(this.toString());\n return Path2D.xmlDeclaration + \"\\n\\n \\n\";\n };\n /**\n * Returns an array of sub-paths of this Path,\n * where each sub-path is represented exclusively by cubic segments.\n */\n Path2D.prototype.toCubicPaths = function () {\n // Each sub-path is an array of `(n * 3 + 1) * 2` numbers,\n // where `n` is the number of segments.\n var paths = [];\n var params = this.params;\n // current path\n var path;\n // the starting point of the current path\n var sx;\n var sy;\n // the previous point of the current path\n var px;\n var py;\n var i = 0; // current parameter\n this.commands.forEach(function (command) {\n switch (command) {\n case 'M':\n path = [\n sx = px = params[i++],\n sy = py = params[i++]\n ];\n paths.push(path);\n break;\n case 'L':\n var x = params[i++];\n var y = params[i++];\n // Place control points along the line `a + (b - a) * t`\n // at t = 1/3 and 2/3:\n path.push((px + px + x) / 3, (py + py + y) / 3, (px + x + x) / 3, (py + y + y) / 3, px = x, py = y);\n break;\n case 'C':\n path.push(params[i++], params[i++], params[i++], params[i++], px = params[i++], py = params[i++]);\n break;\n case 'Z':\n path.push((px + px + sx) / 3, (py + py + sy) / 3, (px + sx + sx) / 3, (py + sy + sy) / 3, px = sx, py = sy);\n break;\n }\n });\n return paths;\n };\n Path2D.cubicPathToString = function (path) {\n var n = path.length;\n if (!(n % 2 === 0 && (n / 2 - 1) / 2 >= 1)) {\n throw new Error('Invalid path.');\n }\n return 'M' + path.slice(0, 2).join(',') + 'C' + path.slice(2).join(',');\n };\n Path2D.splitCommandsRe = /(?=[AaCcHhLlMmQqSsTtVvZz])/g;\n Path2D.matchParamsRe = /-?[0-9]*\\.?\\d+/g;\n Path2D.quadraticCommandRe = /[QqTt]/;\n Path2D.cubicCommandRe = /[CcSs]/;\n Path2D.xmlDeclaration = '';\n Path2D.xmlns = 'http://www.w3.org/2000/svg';\n return Path2D;\n}());\n\nvar __extends$1d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Path$1 = /** @class */ (function (_super) {\n __extends$1d(Path, _super);\n function Path() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Declare a path to retain for later rendering and hit testing\n * using custom Path2D class. Think of it as a TypeScript version\n * of the native Path2D (with some differences) that works in all browsers.\n */\n _this.path = new Path2D$1();\n /**\n * The path only has to be updated when certain attributes change.\n * For example, if transform attributes (such as `translationX`)\n * are changed, we don't have to update the path. The `dirtyPath` flag\n * is how we keep track if the path has to be updated or not.\n */\n _this._dirtyPath = true;\n /**\n * Path definition in SVG path syntax:\n * https://www.w3.org/TR/SVG11/paths.html#DAttribute\n */\n _this._svgPath = '';\n return _this;\n }\n Object.defineProperty(Path.prototype, \"dirtyPath\", {\n get: function () {\n return this._dirtyPath;\n },\n set: function (value) {\n if (this._dirtyPath !== value) {\n this._dirtyPath = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Path.prototype, \"svgPath\", {\n get: function () {\n return this._svgPath;\n },\n set: function (value) {\n if (this._svgPath !== value) {\n this._svgPath = value;\n this.path.setFromString(value);\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Path.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n return this.path.closedPath && this.path.isPointInPath(point.x, point.y);\n };\n Path.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Path.prototype.updatePath = function () { };\n Path.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n // if (scene.debug.renderBoundingBoxes) {\n // const bbox = this.computeBBox();\n // if (bbox) {\n // this.matrix.transformBBox(bbox).render(ctx);\n // }\n // }\n this.matrix.toContext(ctx);\n if (this.dirtyPath) {\n this.updatePath();\n this.dirtyPath = false;\n }\n this.path.draw(ctx);\n this.fillStroke(ctx);\n this.dirty = false;\n };\n Path.className = 'Path';\n return Path;\n}(Shape$1));\n\nvar twoPi = Math.PI * 2;\n/**\n * Normalize the given angle to be in the [0, 2π) interval.\n * @param radians Angle in radians.\n */\nfunction normalizeAngle360(radians) {\n radians %= twoPi;\n radians += twoPi;\n radians %= twoPi;\n return radians;\n}\nfunction normalizeAngle360Inclusive(radians) {\n radians %= twoPi;\n radians += twoPi;\n if (radians !== twoPi) {\n radians %= twoPi;\n }\n return radians;\n}\n/**\n * Normalize the given angle to be in the [-π, π) interval.\n * @param radians Angle in radians.\n */\nfunction normalizeAngle180(radians) {\n radians %= twoPi;\n if (radians < -Math.PI) {\n radians += twoPi;\n }\n else if (radians >= Math.PI) {\n radians -= twoPi;\n }\n return radians;\n}\nfunction toRadians(degrees) {\n return degrees / 180 * Math.PI;\n}\n\nfunction isEqual(a, b, epsilon) {\n if (epsilon === void 0) { epsilon = 1e-10; }\n return Math.abs(a - b) < epsilon;\n}\n/**\n * `Number.toFixed(n)` always formats a number so that it has `n` digits after the decimal point.\n * For example, `Number(0.00003427).toFixed(2)` returns `0.00`.\n * That's not very helpful, because all the meaningful information is lost.\n * In this case we would want the formatted value to have at least two significant digits: `0.000034`,\n * not two fraction digits.\n * @param value\n * @param fractionOrSignificantDigits\n */\nfunction toFixed(value, fractionOrSignificantDigits) {\n if (fractionOrSignificantDigits === void 0) { fractionOrSignificantDigits = 2; }\n var power = Math.floor(Math.log(Math.abs(value)) / Math.LN10);\n if (power >= 0 || !isFinite(power)) {\n return value.toFixed(fractionOrSignificantDigits); // fraction digits\n }\n return value.toFixed(Math.abs(power) - 1 + fractionOrSignificantDigits); // significant digits\n}\n/**\n * Returns the mathematically correct n modulus of m. For context, the JS % operator is remainder\n * NOT modulus, which is why this is needed.\n */\nfunction mod(n, m) {\n // https://stackoverflow.com/a/13163436\n var remain = n % m;\n return remain >= 0 ? remain : (remain + m);\n}\n\nvar __extends$1e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ArcType;\n(function (ArcType) {\n ArcType[ArcType[\"Open\"] = 0] = \"Open\";\n ArcType[ArcType[\"Chord\"] = 1] = \"Chord\";\n ArcType[ArcType[\"Round\"] = 2] = \"Round\";\n})(ArcType || (ArcType = {}));\n/**\n * Elliptical arc node.\n */\nvar Arc = /** @class */ (function (_super) {\n __extends$1e(Arc, _super);\n function Arc() {\n var _this = _super.call(this) || this;\n _this._centerX = 0;\n _this._centerY = 0;\n _this._radiusX = 10;\n _this._radiusY = 10;\n _this._startAngle = 0;\n _this._endAngle = Math.PI * 2;\n _this._counterClockwise = false;\n /**\n * The type of arc to render:\n * - {@link ArcType.Open} - end points of the arc segment are not connected (default)\n * - {@link ArcType.Chord} - end points of the arc segment are connected by a line segment\n * - {@link ArcType.Round} - each of the end points of the arc segment are connected\n * to the center of the arc\n * Arcs with {@link ArcType.Open} do not support hit testing, even if they have their\n * {@link Shape.fillStyle} set, because they are not closed paths. Hit testing support\n * would require using two paths - one for rendering, another for hit testing - and there\n * doesn't seem to be a compelling reason to do that, when one can just use {@link ArcType.Chord}\n * to create a closed path.\n */\n _this._type = ArcType.Open;\n _this.restoreOwnStyles();\n return _this;\n }\n Object.defineProperty(Arc.prototype, \"centerX\", {\n get: function () {\n return this._centerX;\n },\n set: function (value) {\n if (this._centerX !== value) {\n this._centerX = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"centerY\", {\n get: function () {\n return this._centerY;\n },\n set: function (value) {\n if (this._centerY !== value) {\n this._centerY = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"radiusX\", {\n get: function () {\n return this._radiusX;\n },\n set: function (value) {\n if (this._radiusX !== value) {\n this._radiusX = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"radiusY\", {\n get: function () {\n return this._radiusY;\n },\n set: function (value) {\n if (this._radiusY !== value) {\n this._radiusY = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"startAngle\", {\n get: function () {\n return this._startAngle;\n },\n set: function (value) {\n if (this._startAngle !== value) {\n this._startAngle = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"endAngle\", {\n get: function () {\n return this._endAngle;\n },\n set: function (value) {\n if (this._endAngle !== value) {\n this._endAngle = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"fullPie\", {\n get: function () {\n return isEqual(normalizeAngle360(this.startAngle), normalizeAngle360(this.endAngle));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"counterClockwise\", {\n get: function () {\n return this._counterClockwise;\n },\n set: function (value) {\n if (this._counterClockwise !== value) {\n this._counterClockwise = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Arc.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n set: function (value) {\n if (this._type !== value) {\n this._type = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Arc.prototype.updatePath = function () {\n var path = this.path;\n path.clear(); // No need to recreate the Path, can simply clear the existing one.\n // This is much faster than the native Path2D implementation even though this `cubicArc`\n // method is pure TypeScript and actually produces the definition of an elliptical arc,\n // where you can specify two radii and rotation, while Path2D's `arc` method simply produces\n // a circular arc. Maybe it's due to the experimental nature of the Path2D class,\n // maybe it's because we have to create a new instance of it on each render, who knows...\n path.cubicArc(this.centerX, this.centerY, this.radiusX, this.radiusY, 0, this.startAngle, this.endAngle, this.counterClockwise ? 1 : 0);\n if (this.type === ArcType.Chord) {\n path.closePath();\n }\n else if (this.type === ArcType.Round && !this.fullPie) {\n path.lineTo(this.centerX, this.centerY);\n path.closePath();\n }\n };\n Arc.prototype.computeBBox = function () {\n // Only works with full arcs (circles) and untransformed ellipses.\n return new BBox$1(this.centerX - this.radiusX, this.centerY - this.radiusY, this.radiusX * 2, this.radiusY * 2);\n };\n Arc.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return this.type !== ArcType.Open\n && bbox.containsPoint(point.x, point.y)\n && this.path.isPointInPath(point.x, point.y);\n };\n Arc.className = 'Arc';\n Arc.defaultStyles = chainObjects$1(Shape$1.defaultStyles, {\n lineWidth: 1,\n fillStyle: null\n });\n return Arc;\n}(Path$1));\n\nvar doOnceFlags$1 = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce$1(func, key) {\n if (doOnceFlags$1[key]) {\n return;\n }\n func();\n doOnceFlags$1[key] = true;\n}\n\nvar __read$n = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values$5 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import { Rect } from \"./scene/shape/rect\"; // debug (bbox)\nvar Tags;\n(function (Tags) {\n Tags[Tags[\"Tick\"] = 0] = \"Tick\";\n Tags[Tags[\"GridLine\"] = 1] = \"GridLine\";\n})(Tags || (Tags = {}));\nvar AxisTick = /** @class */ (function () {\n function AxisTick() {\n /**\n * The line width to be used by axis ticks.\n */\n this.width = 1;\n /**\n * The line length to be used by axis ticks.\n */\n this.size = 6;\n /**\n * The color of the axis ticks.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make the ticks invisible.\n */\n this.color = 'rgba(195, 195, 195, 1)';\n /**\n * A hint of how many ticks to use (the exact number of ticks might differ),\n * a `TimeInterval` or a `CountableTimeInterval`.\n * For example:\n *\n * axis.tick.count = 5;\n * axis.tick.count = year;\n * axis.tick.count = month.every(6);\n */\n this.count = undefined;\n }\n return AxisTick;\n}());\nvar AxisLabel = /** @class */ (function () {\n function AxisLabel() {\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n /**\n * The padding between the labels and the ticks.\n */\n this.padding = 5;\n /**\n * The color of the labels.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make labels invisible.\n */\n this.color = 'rgba(87, 87, 87, 1)';\n /**\n * Custom label rotation in degrees.\n * Labels are rendered perpendicular to the axis line by default.\n * Or parallel to the axis line, if the {@link parallel} is set to `true`.\n * The value of this config is used as the angular offset/deflection\n * from the default rotation.\n */\n this.rotation = undefined;\n /**\n * If specified and axis labels may collide, they are rotated to reduce collisions. If the\n * `rotation` property is specified, it takes precedence.\n */\n this.autoRotate = undefined;\n /**\n * Rotation angle to use when autoRotate is applied.\n */\n this.autoRotateAngle = 335;\n /**\n * By default labels and ticks are positioned to the left of the axis line.\n * `true` positions the labels to the right of the axis line.\n * However, if the axis is rotated, it's easier to think in terms\n * of this side or the opposite side, rather than left and right.\n * We use the term `mirror` for conciseness, although it's not\n * true mirroring - for example, when a label is rotated, so that\n * it is inclined at the 45 degree angle, text flowing from north-west\n * to south-east, ending at the tick to the left of the axis line,\n * and then we set this config to `true`, the text will still be flowing\n * from north-west to south-east, _starting_ at the tick to the right\n * of the axis line.\n */\n this.mirrored = false;\n /**\n * Labels are rendered perpendicular to the axis line by default.\n * Setting this config to `true` makes labels render parallel to the axis line\n * and center aligns labels' text at the ticks.\n */\n this.parallel = false;\n /**\n * In case {@param value} is a number, the {@param fractionDigits} parameter will\n * be provided as well. The `fractionDigits` corresponds to the number of fraction\n * digits used by the tick step. For example, if the tick step is `0.0005`,\n * the `fractionDigits` is 4.\n */\n this.formatter = undefined;\n this.onFormatChange = undefined;\n }\n Object.defineProperty(AxisLabel.prototype, \"format\", {\n get: function () {\n return this._format;\n },\n set: function (value) {\n // See `TimeLocaleObject` docs for the list of supported format directives.\n if (this._format !== value) {\n this._format = value;\n if (this.onFormatChange) {\n this.onFormatChange(value);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n return AxisLabel;\n}());\n/**\n * A general purpose linear axis with no notion of orientation.\n * The axis is always rendered vertically, with horizontal labels positioned to the left\n * of the axis line by default. The axis can be {@link rotation | rotated} by an arbitrary angle,\n * so that it can be used as a top, right, bottom, left, radial or any other kind\n * of linear axis.\n * The generic `D` parameter is the type of the domain of the axis' scale.\n * The output range of the axis' scale is always numeric (screen coordinates).\n */\nvar Axis = /** @class */ (function () {\n function Axis(scale) {\n // debug (bbox)\n // private bboxRect = (() => {\n // const rect = new Rect();\n // rect.fill = undefined;\n // rect.stroke = 'red';\n // rect.strokeWidth = 1;\n // rect.strokeOpacity = 0.2;\n // return rect;\n // })();\n this.id = createId$1(this);\n this.lineNode = new Line$1();\n this.group = new Group$1();\n this.line = {\n width: 1,\n color: 'rgba(195, 195, 195, 1)'\n };\n this.tick = new AxisTick();\n this.label = new AxisLabel();\n this.translation = { x: 0, y: 0 };\n this.rotation = 0; // axis rotation angle in degrees\n this._labelAutoRotated = false;\n /**\n * This will be assigned a value when `this.calculateTickCount` is invoked.\n * If the user has specified a tick count, it will be used, otherwise a tick count will be calculated based on the available range.\n */\n this._calculatedTickCount = undefined;\n this.requestedRange = [0, 1];\n this._visibleRange = [0, 1];\n this._title = undefined;\n /**\n * The length of the grid. The grid is only visible in case of a non-zero value.\n * In case {@link radialGrid} is `true`, the value is interpreted as an angle\n * (in degrees).\n */\n this._gridLength = 0;\n /**\n * The array of styles to cycle through when rendering grid lines.\n * For example, use two {@link GridStyle} objects for alternating styles.\n * Contains only one {@link GridStyle} object by default, meaning all grid lines\n * have the same style.\n */\n this.gridStyle = [{\n stroke: 'rgba(219, 219, 219, 1)',\n lineDash: [4, 2]\n }];\n /**\n * `false` - render grid as lines of {@link gridLength} that extend the ticks\n * on the opposite side of the axis\n * `true` - render grid as concentric circles that go through the ticks\n */\n this._radialGrid = false;\n this.fractionDigits = 0;\n this.thickness = 0;\n this.scale = scale;\n this.groupSelection = Selection$1.select(this.group).selectAll();\n this.label.onFormatChange = this.onLabelFormatChange.bind(this);\n this.group.append(this.lineNode);\n // this.group.append(this.bboxRect); // debug (bbox)\n }\n Object.defineProperty(Axis.prototype, \"scale\", {\n get: function () {\n return this._scale;\n },\n set: function (value) {\n this._scale = value;\n this.requestedRange = value.range.slice();\n this.onLabelFormatChange();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"ticks\", {\n get: function () {\n return this._ticks;\n },\n set: function (values) {\n this._ticks = values;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"labelAutoRotated\", {\n get: function () {\n return this._labelAutoRotated;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"calculatedTickCount\", {\n get: function () {\n var _a;\n return _a = this._calculatedTickCount, (_a !== null && _a !== void 0 ? _a : this.tick.count);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Overridden in ChartAxis subclass.\n * Sets an appropriate tick count based on the available range.\n */\n Axis.prototype.calculateTickCount = function (availableRange) { };\n /**\n * Meant to be overridden in subclasses to provide extra context the the label formatter.\n * The return value of this function will be passed to the laber.formatter as the `axis` parameter.\n */\n Axis.prototype.getMeta = function () { };\n Axis.prototype.updateRange = function () {\n var _a = this, rr = _a.requestedRange, vr = _a.visibleRange, scale = _a.scale;\n var span = (rr[1] - rr[0]) / (vr[1] - vr[0]);\n var shift = span * vr[0];\n var start = rr[0] - shift;\n scale.range = [start, start + span];\n };\n /**\n * Checks if a point or an object is in range.\n * @param x A point (or object's starting point).\n * @param width Object's width.\n * @param tolerance Expands the range on both ends by this amount.\n */\n Axis.prototype.inRange = function (x, width, tolerance) {\n if (width === void 0) { width = 0; }\n if (tolerance === void 0) { tolerance = 0; }\n return this.inRangeEx(x, width, tolerance) === 0;\n };\n Axis.prototype.inRangeEx = function (x, width, tolerance) {\n if (width === void 0) { width = 0; }\n if (tolerance === void 0) { tolerance = 0; }\n var range = this.range;\n // Account for inverted ranges, for example [500, 100] as well as [100, 500]\n var min = Math.min(range[0], range[1]);\n var max = Math.max(range[0], range[1]);\n if ((x + width) < (min - tolerance)) {\n return -1; // left of range\n }\n if (x > (max + tolerance)) {\n return 1; // right of range\n }\n return 0; // in range\n };\n Object.defineProperty(Axis.prototype, \"range\", {\n get: function () {\n return this.requestedRange.slice();\n },\n set: function (value) {\n this.requestedRange = value.slice();\n this.updateRange();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"visibleRange\", {\n get: function () {\n return this._visibleRange.slice();\n },\n set: function (value) {\n if (value && value.length === 2) {\n var _a = __read$n(value, 2), min = _a[0], max = _a[1];\n min = Math.max(0, min);\n max = Math.min(1, max);\n min = Math.min(min, max);\n max = Math.max(min, max);\n this._visibleRange = [min, max];\n this.updateRange();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"domain\", {\n get: function () {\n return this.scale.domain.slice();\n },\n set: function (value) {\n this.scale.domain = value.slice();\n this.onLabelFormatChange(this.label.format);\n },\n enumerable: true,\n configurable: true\n });\n Axis.prototype.onLabelFormatChange = function (format) {\n if (format && this.scale && this.scale.tickFormat) {\n try {\n this.labelFormatter = this.scale.tickFormat(this.calculatedTickCount, format);\n }\n catch (e) {\n this.labelFormatter = undefined;\n doOnce$1(function () { return console.warn(\"AG Charts - the axis label format string \" + format + \" is invalid. No formatting will be applied\"); }, \"invalid axis label format string \" + format);\n }\n }\n else {\n this.labelFormatter = undefined;\n }\n };\n Object.defineProperty(Axis.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (value) {\n var oldTitle = this._title;\n if (oldTitle !== value) {\n if (oldTitle) {\n this.group.removeChild(oldTitle.node);\n }\n if (value) {\n value.node.rotation = -Math.PI / 2;\n this.group.appendChild(value.node);\n }\n this._title = value;\n // position title so that it doesn't briefly get rendered in the top left hand corner of the canvas before update is called.\n this.positionTitle();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"gridLength\", {\n get: function () {\n return this._gridLength;\n },\n set: function (value) {\n // Was visible and now invisible, or was invisible and now visible.\n if (this._gridLength && !value || !this._gridLength && value) {\n this.groupSelection = this.groupSelection.remove().setData([]);\n }\n this._gridLength = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"radialGrid\", {\n get: function () {\n return this._radialGrid;\n },\n set: function (value) {\n if (this._radialGrid !== value) {\n this._radialGrid = value;\n this.groupSelection = this.groupSelection.remove().setData([]);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates/removes/updates the scene graph nodes that constitute the axis.\n * Supposed to be called _manually_ after changing _any_ of the axis properties.\n * This allows to bulk set axis properties before updating the nodes.\n * The node changes made by this method are rendered on the next animation frame.\n * We could schedule this method call automatically on the next animation frame\n * when any of the axis properties change (the way we do when properties of scene graph's\n * nodes change), but this will mean that we first wait for the next animation\n * frame to make changes to the nodes of the axis, then wait for another animation\n * frame to render those changes. It's nice to have everything update automatically,\n * but this extra level of async indirection will not just introduce an unwanted delay,\n * it will also make it harder to reason about the program.\n */\n Axis.prototype.update = function () {\n var _this = this;\n var _a = this, group = _a.group, scale = _a.scale, tick = _a.tick, label = _a.label, gridStyle = _a.gridStyle, requestedRange = _a.requestedRange;\n var requestedRangeMin = Math.min(requestedRange[0], requestedRange[1]);\n var requestedRangeMax = Math.max(requestedRange[0], requestedRange[1]);\n var rotation = toRadians(this.rotation);\n var labelRotation = label.rotation ? normalizeAngle360(toRadians(label.rotation)) : 0;\n var parallelLabels = label.parallel;\n var labelAutoRotation = 0;\n group.translationX = this.translation.x;\n group.translationY = this.translation.y;\n group.rotation = rotation;\n var halfBandwidth = (scale.bandwidth || 0) / 2;\n // The side of the axis line to position the labels on.\n // -1 = left (default)\n // 1 = right\n var sideFlag = label.mirrored ? 1 : -1;\n // When labels are parallel to the axis line, the `parallelFlipFlag` is used to\n // flip the labels to avoid upside-down text, when the axis is rotated\n // such that it is in the right hemisphere, i.e. the angle of rotation\n // is in the [0, π] interval.\n // The rotation angle is normalized, so that we have an easier time checking\n // if it's in the said interval. Since the axis is always rendered vertically\n // and then rotated, zero rotation means 12 (not 3) o-clock.\n // -1 = flip\n // 1 = don't flip (default)\n var parallelFlipRotation = normalizeAngle360(rotation);\n var parallelFlipFlag = !labelRotation && parallelFlipRotation >= 0 && parallelFlipRotation <= Math.PI ? -1 : 1;\n var regularFlipRotation = normalizeAngle360(rotation - Math.PI / 2);\n // Flip if the axis rotation angle is in the top hemisphere.\n var regularFlipFlag = !labelRotation && regularFlipRotation >= 0 && regularFlipRotation <= Math.PI ? -1 : 1;\n var ticks = this.ticks || scale.ticks(this.calculatedTickCount);\n var update = this.groupSelection.setData(ticks);\n update.exit.remove();\n var enter = update.enter.append(Group$1);\n // Line auto-snaps to pixel grid if vertical or horizontal.\n enter.append(Line$1).each(function (node) { return node.tag = Tags.Tick; });\n if (this.gridLength) {\n if (this.radialGrid) {\n enter.append(Arc).each(function (node) { return node.tag = Tags.GridLine; });\n }\n else {\n enter.append(Line$1).each(function (node) { return node.tag = Tags.GridLine; });\n }\n }\n enter.append(Text$2);\n var groupSelection = update.merge(enter);\n var anyVisible = false;\n groupSelection\n .attrFn('translationY', function (_, datum) {\n return Math.round(scale.convert(datum) + halfBandwidth);\n })\n .attrFn('visible', function (node) {\n var min = Math.floor(requestedRangeMin);\n var max = Math.ceil(requestedRangeMax);\n var visible = (min !== max) && node.translationY >= min && node.translationY <= max;\n anyVisible = visible || anyVisible;\n return visible;\n });\n this.group.visible = anyVisible;\n if (!anyVisible) {\n this.groupSelection = groupSelection;\n return;\n }\n // `ticks instanceof NumericTicks` doesn't work here, so we feature detect.\n this.fractionDigits = ticks.fractionDigits >= 0 ? ticks.fractionDigits : 0;\n // Update properties that affect the size of the axis labels and measure the labels\n var labelBboxes = new Map();\n var labelCount = 0;\n var halfFirstLabelLength = false;\n var halfLastLabelLength = false;\n var availableRange = requestedRangeMax - requestedRangeMin;\n var labelSelection = groupSelection.selectByClass(Text$2)\n .each(function (node, datum, index) {\n node.fontStyle = label.fontStyle;\n node.fontWeight = label.fontWeight;\n node.fontSize = label.fontSize;\n node.fontFamily = label.fontFamily;\n node.fill = label.color;\n node.text = _this.formatTickDatum(datum, index);\n node.visible = node.parent.visible;\n if (node.visible !== true) {\n return;\n }\n labelBboxes.set(index, node.computeBBox());\n if (node.text === '' || node.text == undefined) {\n return;\n }\n labelCount++;\n if (index === 0 && (node.translationY === scale.range[0])) {\n halfFirstLabelLength = true; // first label protrudes axis line\n }\n else if (index === ticks.length - 1 && (node.translationY === scale.range[1])) {\n halfLastLabelLength = true; // last label protrudes axis line\n }\n });\n var labelX = sideFlag * (tick.size + label.padding);\n var step = availableRange / labelCount;\n var calculateLabelsLength = function (bboxes, useWidth) {\n var e_1, _a;\n var totalLength = 0;\n var rotate = false;\n var lastIdx = bboxes.size - 1;\n var padding = 12;\n try {\n for (var _b = __values$5(bboxes.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$n(_c.value, 2), i = _d[0], bbox = _d[1];\n var divideBy = (i === 0 && halfFirstLabelLength) || (i === lastIdx && halfLastLabelLength) ? 2 : 1;\n var length_1 = useWidth ? bbox.width / divideBy : bbox.height / divideBy;\n var lengthWithPadding = length_1 <= 0 ? 0 : length_1 + padding;\n totalLength += lengthWithPadding;\n if (lengthWithPadding > step) {\n rotate = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { totalLength: totalLength, rotate: rotate };\n };\n var useWidth = parallelLabels; // When the labels are parallel to the axis line, use the width of the text to calculate the total length of all labels\n var _b = calculateLabelsLength(labelBboxes, useWidth), totalLabelLength = _b.totalLength, rotate = _b.rotate;\n this._labelAutoRotated = false;\n if (label.rotation === undefined && label.autoRotate === true && rotate) {\n // When no user label rotation angle has been specified and the width of any label exceeds the average tick gap (`rotate` is `true`),\n // automatically rotate the labels\n labelAutoRotation = normalizeAngle360(toRadians(label.autoRotateAngle));\n this._labelAutoRotated = true;\n }\n if (labelRotation || labelAutoRotation) {\n // If the label rotation angle results in a non-parallel orientation, use the height of the texts to calculate the total length of all labels\n if (parallelLabels) {\n useWidth = (labelRotation === Math.PI) || (labelAutoRotation === Math.PI) ? true : false;\n }\n else {\n useWidth = labelRotation === Math.PI / 2 || labelRotation === (Math.PI + Math.PI / 2) || labelAutoRotation === Math.PI / 2 || labelAutoRotation === (Math.PI + Math.PI / 2) ? true : false;\n }\n totalLabelLength = calculateLabelsLength(labelBboxes, useWidth).totalLength;\n }\n var autoRotation = parallelLabels\n ? parallelFlipFlag * Math.PI / 2\n : (regularFlipFlag === -1 ? Math.PI : 0);\n var labelTextBaseline = parallelLabels && !labelRotation\n ? (sideFlag * parallelFlipFlag === -1 ? 'hanging' : 'bottom')\n : 'middle';\n var alignFlag = (labelRotation > 0 && labelRotation <= Math.PI) || (labelAutoRotation > 0 && labelAutoRotation <= Math.PI) ? -1 : 1;\n var labelTextAlign = parallelLabels\n ? labelRotation || labelAutoRotation ? (sideFlag * alignFlag === -1 ? 'end' : 'start') : 'center'\n : sideFlag * regularFlipFlag === -1 ? 'end' : 'start';\n labelSelection.each(function (label) {\n if (label.text === '' || label.text == undefined) {\n label.visible = false; // hide empty labels\n return;\n }\n label.textBaseline = labelTextBaseline;\n label.textAlign = labelTextAlign;\n label.x = labelX;\n label.rotationCenterX = labelX;\n label.rotation = autoRotation + labelRotation + labelAutoRotation;\n });\n if (totalLabelLength > availableRange) {\n var isContinuous_1 = scale instanceof ContinuousScale$1;\n var averageLabelLength = totalLabelLength / labelCount;\n var labelsToShow = Math.floor(availableRange / averageLabelLength);\n var showEvery_1 = labelsToShow > 2 ? Math.ceil(labelCount / labelsToShow) : labelCount;\n var visibleLabelIndex_1 = 0;\n labelSelection.each(function (label, _, index) {\n if (label.visible !== true) {\n return;\n }\n var forceVisible = isContinuous_1 && _this.tick.count === undefined ? index === 0 || index === labelCount - 1 : false; // always show first and last labels for a continuous axis when tick count has not been specified by the user\n label.visible = forceVisible || visibleLabelIndex_1 % showEvery_1 === 0 ? true : false;\n visibleLabelIndex_1++;\n if (!label.visible) {\n labelBboxes.delete(index);\n }\n });\n }\n groupSelection.selectByTag(Tags.Tick)\n .each(function (line, _, index) {\n line.strokeWidth = tick.width;\n line.stroke = tick.color;\n line.visible = labelBboxes.has(index);\n })\n .attr('x1', sideFlag * tick.size)\n .attr('x2', 0)\n .attr('y1', 0)\n .attr('y2', 0);\n if (this.gridLength && gridStyle.length) {\n var styleCount_1 = gridStyle.length;\n var gridLines = void 0;\n if (this.radialGrid) {\n var angularGridLength_1 = normalizeAngle360Inclusive(toRadians(this.gridLength));\n gridLines = groupSelection.selectByTag(Tags.GridLine)\n .each(function (arc, datum, index) {\n var radius = Math.round(scale.convert(datum) + halfBandwidth);\n arc.centerX = 0;\n arc.centerY = scale.range[0] - radius;\n arc.endAngle = angularGridLength_1;\n arc.radiusX = radius;\n arc.radiusY = radius;\n arc.visible = labelBboxes.has(index);\n });\n }\n else {\n gridLines = groupSelection.selectByTag(Tags.GridLine)\n .each(function (line, _, index) {\n line.x1 = 0;\n line.x2 = -sideFlag * _this.gridLength;\n line.y1 = 0;\n line.y2 = 0;\n line.visible = Math.abs(line.parent.translationY - scale.range[0]) > 1 && labelBboxes.has(index);\n });\n }\n gridLines.each(function (gridLine, _, index) {\n var style = gridStyle[index % styleCount_1];\n gridLine.stroke = style.stroke;\n gridLine.strokeWidth = tick.width;\n gridLine.lineDash = style.lineDash;\n gridLine.fill = undefined;\n });\n }\n this.groupSelection = groupSelection;\n // Render axis line.\n var lineNode = this.lineNode;\n lineNode.x1 = 0;\n lineNode.x2 = 0;\n lineNode.y1 = requestedRange[0];\n lineNode.y2 = requestedRange[1];\n lineNode.strokeWidth = this.line.width;\n lineNode.stroke = this.line.color;\n lineNode.visible = ticks.length > 0;\n this.positionTitle();\n // debug (bbox)\n // const bbox = this.computeBBox();\n // const bboxRect = this.bboxRect;\n // bboxRect.x = bbox.x;\n // bboxRect.y = bbox.y;\n // bboxRect.width = bbox.width;\n // bboxRect.height = bbox.height;\n };\n Axis.prototype.positionTitle = function () {\n var _a = this, title = _a.title, lineNode = _a.lineNode;\n if (!title) {\n return;\n }\n var titleVisible = false;\n if (title.enabled && lineNode.visible) {\n titleVisible = true;\n var _b = this, label = _b.label, rotation = _b.rotation, requestedRange = _b.requestedRange;\n var sideFlag = label.mirrored ? 1 : -1;\n var parallelFlipRotation = normalizeAngle360(rotation);\n var padding = title.padding.bottom;\n var titleNode = title.node;\n var bbox = this.computeBBox({ excludeTitle: true });\n var titleRotationFlag = sideFlag === -1 && parallelFlipRotation > Math.PI && parallelFlipRotation < Math.PI * 2 ? -1 : 1;\n titleNode.rotation = titleRotationFlag * sideFlag * Math.PI / 2;\n // titleNode.x = titleRotationFlag * sideFlag * (lineNode.y1 + lineNode.y2) / 2; // TODO: remove?\n titleNode.x = titleRotationFlag * sideFlag * (requestedRange[0] + requestedRange[1]) / 2;\n if (sideFlag === -1) {\n titleNode.y = titleRotationFlag * (-padding - bbox.width + Math.max(bbox.x + bbox.width, 0));\n }\n else {\n titleNode.y = -padding - bbox.width - Math.min(bbox.x, 0);\n }\n titleNode.textBaseline = titleRotationFlag === 1 ? 'bottom' : 'top';\n }\n title.node.visible = titleVisible;\n };\n // For formatting (nice rounded) tick values.\n Axis.prototype.formatTickDatum = function (datum, index) {\n var _a = this, label = _a.label, labelFormatter = _a.labelFormatter, fractionDigits = _a.fractionDigits;\n var meta = this.getMeta();\n return label.formatter\n ? label.formatter({\n value: fractionDigits >= 0 ? datum : String(datum),\n index: index,\n fractionDigits: fractionDigits,\n formatter: labelFormatter,\n axis: meta\n })\n : labelFormatter\n ? labelFormatter(datum)\n : typeof datum === 'number' && fractionDigits >= 0\n // the `datum` is a floating point number\n ? datum.toFixed(fractionDigits)\n // the`datum` is an integer, a string or an object\n : String(datum);\n };\n // For formatting arbitrary values between the ticks.\n Axis.prototype.formatDatum = function (datum) {\n return String(datum);\n };\n Axis.prototype.computeBBox = function (options) {\n var _a = this, title = _a.title, lineNode = _a.lineNode;\n var labels = this.groupSelection.selectByClass(Text$2);\n var left = Infinity;\n var right = -Infinity;\n var top = Infinity;\n var bottom = -Infinity;\n labels.each(function (label) {\n // The label itself is rotated, but not translated, the group that\n // contains it is. So to capture the group transform in the label bbox\n // calculation we combine the transform matrices of the label and the group.\n // Depending on the timing of the `axis.computeBBox()` method call, we may\n // not have the group's and the label's transform matrices updated yet (because\n // the transform matrix is not recalculated whenever a node's transform attributes\n // change, instead it's marked for recalculation on the next frame by setting\n // the node's `dirtyTransform` flag to `true`), so we force them to update\n // right here by calling `computeTransformMatrix`.\n label.computeTransformMatrix();\n var matrix = Matrix$1.flyweight(label.matrix);\n var group = label.parent;\n group.computeTransformMatrix();\n matrix.preMultiplySelf(group.matrix);\n var labelBBox = label.computeBBox();\n if (labelBBox) {\n var bbox = matrix.transformBBox(labelBBox);\n left = Math.min(left, bbox.x);\n right = Math.max(right, bbox.x + bbox.width);\n top = Math.min(top, bbox.y);\n bottom = Math.max(bottom, bbox.y + bbox.height);\n }\n });\n if (title && title.enabled && lineNode.visible && (!options || !options.excludeTitle)) {\n var label = title.node;\n label.computeTransformMatrix();\n var matrix = Matrix$1.flyweight(label.matrix);\n var labelBBox = label.computeBBox();\n if (labelBBox) {\n var bbox = matrix.transformBBox(labelBBox);\n left = Math.min(left, bbox.x);\n right = Math.max(right, bbox.x + bbox.width);\n top = Math.min(top, bbox.y);\n bottom = Math.max(bottom, bbox.y + bbox.height);\n }\n }\n left = Math.min(left, 0);\n right = Math.max(right, 0);\n top = Math.min(top, lineNode.y1, lineNode.y2);\n bottom = Math.max(bottom, lineNode.y1, lineNode.y2);\n return new BBox$1(left, top, right - left, bottom - top);\n };\n return Axis;\n}());\n\nvar __extends$1f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ChartAxisDirection;\n(function (ChartAxisDirection) {\n ChartAxisDirection[\"X\"] = \"x\";\n ChartAxisDirection[\"Y\"] = \"y\"; // means 'radius' in polar charts\n})(ChartAxisDirection || (ChartAxisDirection = {}));\nfunction flipChartAxisDirection(direction) {\n if (direction === ChartAxisDirection.X) {\n return ChartAxisDirection.Y;\n }\n else {\n return ChartAxisDirection.X;\n }\n}\nvar ChartAxisPosition;\n(function (ChartAxisPosition) {\n ChartAxisPosition[\"Top\"] = \"top\";\n ChartAxisPosition[\"Right\"] = \"right\";\n ChartAxisPosition[\"Bottom\"] = \"bottom\";\n ChartAxisPosition[\"Left\"] = \"left\";\n ChartAxisPosition[\"Angle\"] = \"angle\";\n ChartAxisPosition[\"Radius\"] = \"radius\";\n})(ChartAxisPosition || (ChartAxisPosition = {}));\nvar ChartAxis = /** @class */ (function (_super) {\n __extends$1f(ChartAxis, _super);\n function ChartAxis() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.keys = [];\n _this.direction = ChartAxisDirection.Y;\n _this.boundSeries = [];\n _this._position = ChartAxisPosition.Left;\n return _this;\n }\n Object.defineProperty(ChartAxis.prototype, \"type\", {\n get: function () {\n return this.constructor.type || '';\n },\n enumerable: true,\n configurable: true\n });\n ChartAxis.prototype.getMeta = function () {\n return {\n id: this.id,\n direction: this.direction,\n boundSeries: this.boundSeries,\n };\n };\n ChartAxis.prototype.useCalculatedTickCount = function () {\n // We only want to use the new algorithm for number axes. Category axes don't use a\n // calculated or user-supplied tick-count, and time axes need special handling depending on\n // the time-range involved.\n return this.scale instanceof LinearScale$1;\n };\n /**\n * For continuous axes, if tick count has not been specified, set the number of ticks based on the available range\n */\n ChartAxis.prototype.calculateTickCount = function (availableRange) {\n if (!this.useCalculatedTickCount()) {\n return;\n }\n // Approximate number of pixels to allocate for each tick.\n var optimalRangePx = 600;\n var optimalTickInteralPx = 70;\n var tickIntervalRatio = Math.pow(Math.log(availableRange) / Math.log(optimalRangePx), 2);\n var tickInterval = optimalTickInteralPx * tickIntervalRatio;\n this._calculatedTickCount = this.tick.count || Math.max(2, Math.floor(availableRange / tickInterval));\n };\n Object.defineProperty(ChartAxis.prototype, \"position\", {\n get: function () {\n return this._position;\n },\n set: function (value) {\n if (this._position !== value) {\n this._position = value;\n switch (value) {\n case ChartAxisPosition.Top:\n this.direction = ChartAxisDirection.X;\n this.rotation = -90;\n this.label.mirrored = true;\n this.label.parallel = true;\n break;\n case ChartAxisPosition.Right:\n this.direction = ChartAxisDirection.Y;\n this.rotation = 0;\n this.label.mirrored = true;\n this.label.parallel = false;\n break;\n case ChartAxisPosition.Bottom:\n this.direction = ChartAxisDirection.X;\n this.rotation = -90;\n this.label.mirrored = false;\n this.label.parallel = true;\n break;\n case ChartAxisPosition.Left:\n this.direction = ChartAxisDirection.Y;\n this.rotation = 0;\n this.label.mirrored = false;\n this.label.parallel = false;\n break;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n return ChartAxis;\n}(Axis));\n\nvar __extends$1g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$o = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// Instead of clamping the values outside of domain to the range,\n// return NaNs to indicate invalid input.\nfunction clamper$2(domain) {\n var _a;\n var a = domain[0];\n var b = domain[domain.length - 1];\n if (a > b) {\n _a = __read$o([b, a], 2), a = _a[0], b = _a[1];\n }\n return function (x) { return x >= a && x <= b ? x : NaN; };\n}\nvar NumberAxis = /** @class */ (function (_super) {\n __extends$1g(NumberAxis, _super);\n function NumberAxis() {\n var _this = _super.call(this, new LinearScale$1()) || this;\n _this._nice = true;\n _this._min = NaN;\n _this._max = NaN;\n _this.scale.clamper = clamper$2;\n return _this;\n }\n Object.defineProperty(NumberAxis.prototype, \"nice\", {\n get: function () {\n return this._nice;\n },\n set: function (value) {\n if (this._nice !== value) {\n this._nice = value;\n if (value && this.scale.nice) {\n this.scale.nice(typeof this.calculatedTickCount === 'number' ? this.calculatedTickCount : undefined);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n NumberAxis.prototype.setDomain = function (domain, primaryTickCount) {\n var _a = this, scale = _a.scale, min = _a.min, max = _a.max;\n if (domain.length > 2) {\n domain = extent$1(domain, isContinuous$1, Number) || [0, 1];\n }\n domain = [\n isNaN(min) ? domain[0] : min,\n isNaN(max) ? domain[1] : max\n ];\n if (primaryTickCount) {\n // when `primaryTickCount` is supplied the current axis is a secondary axis which needs to be aligned to\n // the primary by constraining the tick count to the primary axis tick count\n var _b = __read$o(calculateNiceSecondaryAxis(domain, primaryTickCount), 2), d = _b[0], ticks = _b[1];\n scale.domain = d;\n this.ticks = ticks;\n return;\n }\n else {\n scale.domain = domain;\n this.onLabelFormatChange(this.label.format); // not sure why this is required?\n this.scale.clamp = true;\n if (this.nice && this.scale.nice) {\n this.scale.nice(typeof this.calculatedTickCount === 'number' ? this.calculatedTickCount : undefined);\n }\n }\n };\n Object.defineProperty(NumberAxis.prototype, \"domain\", {\n get: function () {\n return this.scale.domain;\n },\n set: function (domain) {\n this.setDomain(domain);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NumberAxis.prototype, \"min\", {\n get: function () {\n return this._min;\n },\n set: function (value) {\n if (this._min !== value) {\n this._min = value;\n if (!isNaN(value)) {\n this.scale.domain = [value, this.scale.domain[1]];\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NumberAxis.prototype, \"max\", {\n get: function () {\n return this._max;\n },\n set: function (value) {\n if (this._max !== value) {\n this._max = value;\n if (!isNaN(value)) {\n this.scale.domain = [this.scale.domain[0], value];\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n NumberAxis.prototype.formatDatum = function (datum) {\n if (typeof datum === \"number\") {\n return datum.toFixed(2);\n }\n else {\n doOnce$1(function () { return console.warn('AG Charts - Data contains Date objects which are being plotted against a number axis, please only use a number axis for numbers.'); }, \"number axis config used with Date objects\");\n return String(datum);\n }\n };\n NumberAxis.className = 'NumberAxis';\n NumberAxis.type = 'number';\n return NumberAxis;\n}(ChartAxis));\n\nvar __read$p = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Maps a discrete domain to a continuous numeric range.\n * See https://github.com/d3/d3-scale#band-scales for more info.\n */\nvar BandScale$1 = /** @class */ (function () {\n function BandScale() {\n this.type = 'band';\n /**\n * Maps datum to its index in the {@link domain} array.\n * Used to check for duplicate datums (not allowed).\n */\n this.index = new Map();\n /**\n * The output range values for datum at each index.\n */\n this.ordinalRange = [];\n /**\n * Contains unique datums only. Since `{}` is used in place of `Map`\n * for IE11 compatibility, the datums are converted `toString` before\n * the uniqueness check.\n */\n this._domain = [];\n this._range = [0, 1];\n this._bandwidth = 1;\n /**\n * The ratio of the range that is reserved for space between bands.\n */\n this._paddingInner = 0;\n /**\n * The ratio of the range that is reserved for space before the first\n * and after the last band.\n */\n this._paddingOuter = 0;\n this._round = false;\n /**\n * How the leftover range is distributed.\n * `0.5` - equal distribution of space before the first and after the last band,\n * with bands effectively centered within the range.\n */\n this._align = 0.5;\n }\n Object.defineProperty(BandScale.prototype, \"domain\", {\n get: function () {\n return this._domain;\n },\n set: function (values) {\n var domain = this._domain;\n domain.length = 0;\n this.index = new Map();\n var index = this.index;\n // In case one wants to have duplicate domain values, for example, two 'Italy' categories,\n // one should use objects rather than strings for domain values like so:\n // { toString: () => 'Italy' }\n // { toString: () => 'Italy' }\n values.forEach(function (value) {\n if (index.get(value) === undefined) {\n index.set(value, domain.push(value) - 1);\n }\n });\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"range\", {\n get: function () {\n return this._range;\n },\n set: function (values) {\n this._range[0] = values[0];\n this._range[1] = values[1];\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.ticks = function () {\n return this._domain;\n };\n BandScale.prototype.convert = function (d) {\n var i = this.index.get(d);\n if (i === undefined) {\n return NaN;\n }\n var r = this.ordinalRange[i];\n if (r === undefined) {\n return NaN;\n }\n return r;\n };\n Object.defineProperty(BandScale.prototype, \"bandwidth\", {\n get: function () {\n return this._bandwidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"padding\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n value = Math.max(0, Math.min(1, value));\n this._paddingInner = value;\n this._paddingOuter = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingInner\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n this._paddingInner = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingOuter\", {\n get: function () {\n return this._paddingOuter;\n },\n set: function (value) {\n this._paddingOuter = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"round\", {\n get: function () {\n return this._round;\n },\n set: function (value) {\n this._round = value;\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"align\", {\n get: function () {\n return this._align;\n },\n set: function (value) {\n this._align = Math.max(0, Math.min(1, value)); // [0, 1]\n this.rescale();\n },\n enumerable: true,\n configurable: true\n });\n BandScale.prototype.rescale = function () {\n var _a;\n var n = this._domain.length;\n if (!n) {\n return;\n }\n var _b = __read$p(this._range, 2), a = _b[0], b = _b[1];\n var reversed = b < a;\n if (reversed) {\n _a = __read$p([b, a], 2), a = _a[0], b = _a[1];\n }\n var step = (b - a) / Math.max(1, n - this._paddingInner + this._paddingOuter * 2);\n if (this._round) {\n step = Math.floor(step);\n }\n a += (b - a - step * (n - this._paddingInner)) * this._align;\n this._bandwidth = step * (1 - this._paddingInner);\n if (this._round) {\n a = Math.round(a);\n this._bandwidth = Math.round(this._bandwidth);\n }\n var values = [];\n for (var i = 0; i < n; i++) {\n values.push(a + step * i);\n }\n this.ordinalRange = reversed ? values.reverse() : values;\n };\n return BandScale;\n}());\n\nvar __extends$1h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CategoryAxis = /** @class */ (function (_super) {\n __extends$1h(CategoryAxis, _super);\n function CategoryAxis() {\n var _this = _super.call(this, new BandScale$1()) || this;\n _this.scale.paddingInner = 0.2;\n _this.scale.paddingOuter = 0.3;\n return _this;\n }\n Object.defineProperty(CategoryAxis.prototype, \"paddingInner\", {\n get: function () {\n return this.scale.paddingInner;\n },\n set: function (value) {\n this.scale.paddingInner = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CategoryAxis.prototype, \"paddingOuter\", {\n get: function () {\n return this.scale.paddingOuter;\n },\n set: function (value) {\n this.scale.paddingOuter = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CategoryAxis.prototype, \"domain\", {\n get: function () {\n return this.scale.domain.slice();\n },\n set: function (values) {\n // Prevent duplicate categories.\n this.scale.domain = values\n .filter(function (s, i, arr) { return arr.indexOf(s) === i; });\n },\n enumerable: true,\n configurable: true\n });\n CategoryAxis.className = 'CategoryAxis';\n CategoryAxis.type = 'category';\n return CategoryAxis;\n}(ChartAxis));\n\n/**\n * The tree layout is calculated in abstract x/y coordinates, where the root is at (0, 0)\n * and the tree grows downward from the root.\n */\nvar TreeNode = /** @class */ (function () {\n function TreeNode(label, parent, number) {\n if (label === void 0) { label = ''; }\n if (number === void 0) { number = 0; }\n this.x = 0;\n this.y = 0;\n this.subtreeLeft = NaN;\n this.subtreeRight = NaN;\n this.screenX = 0;\n this.screenY = 0;\n this.children = [];\n this.leafCount = 0;\n this.prelim = 0;\n this.mod = 0;\n this.ancestor = this;\n this.change = 0;\n this.shift = 0;\n this.label = label;\n // screenX and screenY are meant to be recomputed from (layout) x and y\n // when the tree is resized (without performing another layout)\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n this.number = number;\n }\n TreeNode.prototype.getLeftSibling = function () {\n return this.number > 0 && this.parent ? this.parent.children[this.number - 1] : undefined;\n };\n TreeNode.prototype.getLeftmostSibling = function () {\n return this.number > 0 && this.parent ? this.parent.children[0] : undefined;\n };\n // traverse the left contour of a subtree, return the successor of v on this contour\n TreeNode.prototype.nextLeft = function () {\n return this.children ? this.children[0] : this.thread;\n };\n // traverse the right contour of a subtree, return the successor of v on this contour\n TreeNode.prototype.nextRight = function () {\n return this.children ? this.children[this.children.length - 1] : this.thread;\n };\n TreeNode.prototype.getSiblings = function () {\n var _this = this;\n return this.parent ? this.parent.children.filter(function (_, i) { return i !== _this.number; }) : [];\n };\n return TreeNode;\n}());\n/**\n * Converts an array of ticks, where each tick has an array of labels, to a label tree.\n * If `pad` is `true`, will ensure that every branch matches the depth of the tree by\n * creating empty labels.\n */\nfunction ticksToTree(ticks, pad) {\n if (pad === void 0) { pad = true; }\n var root = new TreeNode();\n var depth = 0;\n if (pad) {\n ticks.forEach(function (tick) { return depth = Math.max(depth, tick.labels.length); });\n }\n ticks.forEach(function (tick) {\n if (pad) {\n while (tick.labels.length < depth) {\n tick.labels.unshift('');\n }\n }\n insertTick(root, tick);\n });\n return root;\n}\nfunction insertTick(root, tick) {\n var pathParts = tick.labels.slice().reverse(); // path elements from root to leaf label\n var lastPartIndex = pathParts.length - 1;\n pathParts.forEach(function (pathPart, partIndex) {\n var children = root.children;\n var existingNode = find(children, function (child) { return child.label === pathPart; });\n var isNotLeaf = partIndex !== lastPartIndex;\n if (existingNode && isNotLeaf) { // the isNotLeaf check is to allow duplicate leafs\n root = existingNode;\n }\n else {\n var node = new TreeNode(pathPart, root);\n node.number = children.length;\n children.push(node);\n if (isNotLeaf) {\n root = node;\n }\n }\n });\n}\n// Shift the subtree.\nfunction moveSubtree(wm, wp, shift) {\n var subtrees = wp.number - wm.number;\n var ratio = shift / subtrees;\n wp.change -= ratio;\n wp.shift += shift;\n wm.change += ratio;\n wp.prelim += shift;\n wp.mod += shift;\n}\nfunction ancestor(vim, v, defaultAncestor) {\n return v.getSiblings().indexOf(vim.ancestor) >= 0 ? vim.ancestor : defaultAncestor;\n}\n// Spaces out the children.\nfunction executeShifts(v) {\n var children = v.children;\n if (children) {\n var shift = 0;\n var change = 0;\n for (var i = children.length - 1; i >= 0; i--) {\n var w = children[i];\n w.prelim += shift;\n w.mod += shift;\n change += w.change;\n shift += w.shift + change;\n }\n }\n}\n// Moves current subtree with v as the root if some nodes are conflicting in space.\nfunction apportion(v, defaultAncestor, distance) {\n var w = v.getLeftSibling();\n if (w) {\n var vop = v;\n var vip = v;\n var vim = w;\n var vom = vip.getLeftmostSibling();\n var sip = vip.mod;\n var sop = vop.mod;\n var sim = vim.mod;\n var som = vom.mod;\n while (vim.nextRight() && vip.nextLeft()) {\n vim = vim.nextRight();\n vip = vip.nextLeft();\n vom = vom.nextLeft();\n vop = vop.nextRight();\n vop.ancestor = v;\n var shift = (vim.prelim + sim) - (vip.prelim + sip) + distance;\n if (shift > 0) {\n moveSubtree(ancestor(vim, v, defaultAncestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.mod;\n sip += vip.mod;\n som += vom.mod;\n sop += vop.mod;\n }\n if (vim.nextRight() && !vop.nextRight()) {\n vop.thread = vim.nextRight();\n vop.mod += sim - sop;\n }\n else {\n if (vip.nextLeft() && !vom.nextLeft()) {\n vom.thread = vip.nextLeft();\n vom.mod += sip - som;\n }\n defaultAncestor = v;\n }\n }\n return defaultAncestor;\n}\n// Compute the preliminary x-coordinate of node and its children (recursively).\nfunction firstWalk(node, distance) {\n var children = node.children;\n if (children.length) {\n var defaultAncestor_1 = children[0];\n children.forEach(function (child) {\n firstWalk(child, distance);\n defaultAncestor_1 = apportion(child, defaultAncestor_1, distance);\n });\n executeShifts(node);\n var midpoint = (children[0].prelim + children[children.length - 1].prelim) / 2;\n var leftSibling = node.getLeftSibling();\n if (leftSibling) {\n node.prelim = leftSibling.prelim + distance;\n node.mod = node.prelim - midpoint;\n }\n else {\n node.prelim = midpoint;\n }\n }\n else {\n var leftSibling = node.getLeftSibling();\n node.prelim = leftSibling ? leftSibling.prelim + distance : 0;\n }\n}\nvar Dimensions = /** @class */ (function () {\n function Dimensions() {\n this.top = Infinity;\n this.right = -Infinity;\n this.bottom = -Infinity;\n this.left = Infinity;\n }\n Dimensions.prototype.update = function (node, xy) {\n var _a = xy(node), x = _a.x, y = _a.y;\n if (x > this.right) {\n this.right = x;\n }\n if (x < this.left) {\n this.left = x;\n }\n if (y > this.bottom) {\n this.bottom = y;\n }\n if (y < this.top) {\n this.top = y;\n }\n };\n return Dimensions;\n}());\nfunction secondWalk(v, m, layout) {\n v.x = v.prelim + m;\n v.y = v.depth;\n layout.update(v);\n v.children.forEach(function (w) { return secondWalk(w, m + v.mod, layout); });\n}\n// After the second walk the parent nodes are positioned at the center of their immediate children.\n// If we want the parent nodes to be positioned at the center of the subtree for which they are roots,\n// we need a third walk to adjust the positions.\nfunction thirdWalk(v) {\n var children = v.children;\n var leafCount = 0;\n children.forEach(function (w) {\n thirdWalk(w);\n if (w.children.length) {\n leafCount += w.leafCount;\n }\n else {\n leafCount++;\n }\n });\n v.leafCount = leafCount;\n if (children.length) {\n v.subtreeLeft = children[0].subtreeLeft;\n v.subtreeRight = children[v.children.length - 1].subtreeRight;\n v.x = (v.subtreeLeft + v.subtreeRight) / 2;\n }\n else {\n v.subtreeLeft = v.x;\n v.subtreeRight = v.x;\n }\n}\nfunction treeLayout(root) {\n var layout = new TreeLayout;\n firstWalk(root, 1);\n secondWalk(root, -root.prelim, layout);\n thirdWalk(root);\n return layout;\n}\nvar TreeLayout = /** @class */ (function () {\n function TreeLayout() {\n this.dimensions = new Dimensions;\n this.leafCount = 0;\n this.nodes = [];\n // One might want to process leaf nodes separately from the rest of the tree.\n // For example, position labels corresponding to leafs vertically, rather than horizontally.\n this.leafNodes = [];\n this.nonLeafNodes = [];\n this.depth = 0;\n }\n TreeLayout.prototype.update = function (node) {\n this.dimensions.update(node, function (node) { return ({ x: node.x, y: node.y }); });\n if (!node.children.length) {\n this.leafCount++;\n this.leafNodes.push(node);\n }\n else {\n this.nonLeafNodes.push(node);\n }\n if (node.depth > this.depth) {\n this.depth = node.depth;\n }\n this.nodes.push(node);\n };\n TreeLayout.prototype.resize = function (width, height, shiftX, shiftY, flipX) {\n if (shiftX === void 0) { shiftX = 0; }\n if (shiftY === void 0) { shiftY = 0; }\n if (flipX === void 0) { flipX = false; }\n var xSteps = this.leafCount - 1;\n var ySteps = this.depth;\n var dimensions = this.dimensions;\n var scalingX = 1;\n var scalingY = 1;\n if (width > 0 && xSteps) {\n var existingSpacingX = (dimensions.right - dimensions.left) / xSteps;\n var desiredSpacingX = width / xSteps;\n scalingX = desiredSpacingX / existingSpacingX;\n if (flipX) {\n scalingX = -scalingX;\n }\n }\n if (height > 0 && ySteps) {\n var existingSpacingY = (dimensions.bottom - dimensions.top) / ySteps;\n var desiredSpacingY = height / ySteps;\n scalingY = desiredSpacingY / existingSpacingY;\n }\n var screenDimensions = new Dimensions();\n this.nodes.forEach(function (node) {\n node.screenX = node.x * scalingX;\n node.screenY = node.y * scalingY;\n screenDimensions.update(node, function (node) { return ({ x: node.screenX, y: node.screenY }); });\n });\n // Normalize so that root top and leftmost leaf left start at zero.\n var offsetX = -screenDimensions.left;\n var offsetY = -screenDimensions.top;\n this.nodes.forEach(function (node) {\n node.screenX += offsetX + shiftX;\n node.screenY += offsetY + shiftY;\n });\n };\n return TreeLayout;\n}());\n\nvar __extends$1i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar GroupedCategoryAxisLabel = /** @class */ (function (_super) {\n __extends$1i(GroupedCategoryAxisLabel, _super);\n function GroupedCategoryAxisLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.grid = false;\n return _this;\n }\n return GroupedCategoryAxisLabel;\n}(AxisLabel));\nvar GroupedCategoryAxis = /** @class */ (function (_super) {\n __extends$1i(GroupedCategoryAxis, _super);\n function GroupedCategoryAxis() {\n var _this = _super.call(this, new BandScale$1()) || this;\n // Label scale (labels are positionsed between ticks, tick count = label count + 1).\n // We don't call is `labelScale` for consistency with other axes.\n _this.tickScale = new BandScale$1();\n _this.longestSeparatorLength = 0;\n _this.translation = {\n x: 0,\n y: 0\n };\n /**\n * Axis rotation angle in degrees.\n */\n _this.rotation = 0;\n _this.line = {\n width: 1,\n color: 'rgba(195, 195, 195, 1)'\n };\n // readonly tick = new AxisTick();\n _this.label = new GroupedCategoryAxisLabel();\n /**\n * The color of the labels.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make labels invisible.\n */\n _this.labelColor = 'rgba(87, 87, 87, 1)';\n var _a = _this, group = _a.group, tickScale = _a.tickScale, scale = _a.scale;\n scale.paddingOuter = 0.1;\n scale.paddingInner = scale.paddingOuter * 2;\n _this.requestedRange = scale.range.slice();\n _this.scale = scale;\n tickScale.paddingInner = 1;\n tickScale.paddingOuter = 0;\n _this.gridLineSelection = Selection$1.select(group).selectAll();\n _this.axisLineSelection = Selection$1.select(group).selectAll();\n _this.separatorSelection = Selection$1.select(group).selectAll();\n _this.labelSelection = Selection$1.select(group).selectAll();\n return _this;\n // this.group.append(this.bboxRect); // debug (bbox)\n }\n Object.defineProperty(GroupedCategoryAxis.prototype, \"domain\", {\n get: function () {\n return this.scale.domain;\n },\n set: function (domainValues) {\n // Prevent duplicate categories.\n var values = domainValues.filter(function (s, i, arr) { return arr.indexOf(s) === i; });\n this.scale.domain = values;\n var tickTree = ticksToTree(values);\n this.tickTreeLayout = treeLayout(tickTree);\n var domain = values.slice();\n domain.push('');\n this.tickScale.domain = domain;\n this.resizeTickTree();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(GroupedCategoryAxis.prototype, \"range\", {\n get: function () {\n return this.requestedRange.slice();\n },\n set: function (value) {\n this.requestedRange = value.slice();\n this.updateRange();\n },\n enumerable: true,\n configurable: true\n });\n GroupedCategoryAxis.prototype.updateRange = function () {\n var _a = this, rr = _a.requestedRange, vr = _a.visibleRange, scale = _a.scale;\n var span = (rr[1] - rr[0]) / (vr[1] - vr[0]);\n var shift = span * vr[0];\n var start = rr[0] - shift;\n this.tickScale.range = scale.range = [start, start + span];\n this.resizeTickTree();\n };\n GroupedCategoryAxis.prototype.resizeTickTree = function () {\n var s = this.scale;\n var range = s.domain.length ? [s.convert(s.domain[0]), s.convert(s.domain[s.domain.length - 1])] : s.range;\n var layout = this.tickTreeLayout;\n var lineHeight = this.lineHeight;\n if (layout) {\n layout.resize(Math.abs(range[1] - range[0]), layout.depth * lineHeight, (Math.min(range[0], range[1]) || 0) + (s.bandwidth || 0) / 2, -layout.depth * lineHeight, (range[1] - range[0]) < 0);\n }\n };\n Object.defineProperty(GroupedCategoryAxis.prototype, \"lineHeight\", {\n get: function () {\n return this.label.fontSize * 1.5;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(GroupedCategoryAxis.prototype, \"gridLength\", {\n get: function () {\n return this._gridLength;\n },\n /**\n * The length of the grid. The grid is only visible in case of a non-zero value.\n */\n set: function (value) {\n // Was visible and now invisible, or was invisible and now visible.\n if (this._gridLength && !value || !this._gridLength && value) {\n this.gridLineSelection = this.gridLineSelection.remove().setData([]);\n this.labelSelection = this.labelSelection.remove().setData([]);\n }\n this._gridLength = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates/removes/updates the scene graph nodes that constitute the axis.\n * Supposed to be called _manually_ after changing _any_ of the axis properties.\n * This allows to bulk set axis properties before updating the nodes.\n * The node changes made by this method are rendered on the next animation frame.\n * We could schedule this method call automatically on the next animation frame\n * when any of the axis properties change (the way we do when properties of scene graph's\n * nodes change), but this will mean that we first wait for the next animation\n * frame to make changes to the nodes of the axis, then wait for another animation\n * frame to render those changes. It's nice to have everything update automatically,\n * but this extra level of async indirection will not just introduce an unwanted delay,\n * it will also make it harder to reason about the program.\n */\n GroupedCategoryAxis.prototype.update = function () {\n var _this = this;\n var _a = this, group = _a.group, scale = _a.scale, label = _a.label, tickScale = _a.tickScale, requestedRange = _a.requestedRange;\n var rangeStart = scale.range[0];\n var rangeEnd = scale.range[1];\n var rangeLength = Math.abs(rangeEnd - rangeStart);\n var bandwidth = (rangeLength / scale.domain.length) || 0;\n var parallelLabels = label.parallel;\n var rotation = toRadians(this.rotation);\n var isHorizontal = Math.abs(Math.cos(rotation)) < 1e-8;\n var labelRotation = this.label.rotation ? normalizeAngle360(toRadians(this.label.rotation)) : 0;\n group.translationX = this.translation.x;\n group.translationY = this.translation.y;\n group.rotation = rotation;\n var title = this.title;\n // The Text `node` of the Caption is not used to render the title of the grouped category axis.\n // The phantom root of the tree layout is used instead.\n if (title) {\n title.node.visible = false;\n }\n var lineHeight = this.lineHeight;\n // Render ticks and labels.\n var tickTreeLayout = this.tickTreeLayout;\n var labels = scale.ticks();\n var treeLabels = tickTreeLayout ? tickTreeLayout.nodes : [];\n var isLabelTree = tickTreeLayout ? tickTreeLayout.depth > 1 : false;\n var ticks = tickScale.ticks();\n // The side of the axis line to position the labels on.\n // -1 = left (default)\n // 1 = right\n var sideFlag = label.mirrored ? 1 : -1;\n // When labels are parallel to the axis line, the `parallelFlipFlag` is used to\n // flip the labels to avoid upside-down text, when the axis is rotated\n // such that it is in the right hemisphere, i.e. the angle of rotation\n // is in the [0, π] interval.\n // The rotation angle is normalized, so that we have an easier time checking\n // if it's in the said interval. Since the axis is always rendered vertically\n // and then rotated, zero rotation means 12 (not 3) o-clock.\n // -1 = flip\n // 1 = don't flip (default)\n var parallelFlipRotation = normalizeAngle360(rotation);\n var parallelFlipFlag = (!labelRotation && parallelFlipRotation >= 0 && parallelFlipRotation <= Math.PI) ? -1 : 1;\n var regularFlipRotation = normalizeAngle360(rotation - Math.PI / 2);\n // Flip if the axis rotation angle is in the top hemisphere.\n var regularFlipFlag = (!labelRotation && regularFlipRotation >= 0 && regularFlipRotation <= Math.PI) ? -1 : 1;\n var updateGridLines = this.gridLineSelection.setData(this.gridLength ? ticks : []);\n updateGridLines.exit.remove();\n var enterGridLines = updateGridLines.enter.append(Line$1);\n var gridLineSelection = updateGridLines.merge(enterGridLines);\n var updateLabels = this.labelSelection.setData(treeLabels);\n updateLabels.exit.remove();\n var enterLabels = updateLabels.enter.append(Text$2);\n var labelSelection = updateLabels.merge(enterLabels);\n var labelFormatter = label.formatter;\n var labelBBoxes = new Map();\n var maxLeafLabelWidth = 0;\n labelSelection\n .each(function (node, datum, index) {\n node.fontStyle = label.fontStyle;\n node.fontWeight = label.fontWeight;\n node.fontSize = label.fontSize;\n node.fontFamily = label.fontFamily;\n node.fill = label.color;\n node.textBaseline = parallelFlipFlag === -1 ? 'bottom' : 'hanging';\n // label.textBaseline = parallelLabels && !labelRotation\n // ? (sideFlag * parallelFlipFlag === -1 ? 'hanging' : 'bottom')\n // : 'middle';\n node.textAlign = 'center';\n node.translationX = datum.screenY - label.fontSize * 0.25;\n node.translationY = datum.screenX;\n if (index === 0) { // use the phantom root as the axis title\n if (title && title.enabled && labels.length > 0) {\n node.visible = true;\n node.text = title.text;\n node.fontSize = title.fontSize;\n node.fontStyle = title.fontStyle;\n node.fontWeight = title.fontWeight;\n node.fontFamily = title.fontFamily;\n node.textBaseline = 'hanging';\n }\n else {\n node.visible = false;\n }\n }\n else {\n node.text = labelFormatter\n ? labelFormatter({\n value: String(datum.label),\n index: index\n })\n : String(datum.label);\n node.visible =\n datum.screenX >= requestedRange[0] &&\n datum.screenX <= requestedRange[1];\n }\n var bbox = node.computeBBox();\n labelBBoxes.set(node.id, bbox);\n if (bbox.width > maxLeafLabelWidth) {\n maxLeafLabelWidth = bbox.width;\n }\n });\n var labelX = sideFlag * label.padding;\n var autoRotation = parallelLabels\n ? parallelFlipFlag * Math.PI / 2\n : (regularFlipFlag === -1 ? Math.PI : 0);\n var labelGrid = this.label.grid;\n var separatorData = [];\n labelSelection.each(function (label, datum, index) {\n label.x = labelX;\n label.rotationCenterX = labelX;\n if (!datum.children.length) {\n label.rotation = labelRotation;\n label.textAlign = 'end';\n label.textBaseline = 'middle';\n var bbox = labelBBoxes.get(label.id);\n if (bbox && bbox.height > bandwidth) {\n label.visible = false;\n }\n }\n else {\n label.translationX -= maxLeafLabelWidth - lineHeight + _this.label.padding;\n var availableRange = datum.leafCount * bandwidth;\n var bbox = labelBBoxes.get(label.id);\n if (bbox && bbox.width > availableRange) {\n label.visible = false;\n }\n else if (isHorizontal) {\n label.rotation = autoRotation;\n }\n else {\n label.rotation = -Math.PI / 2;\n }\n }\n // Calculate positions of label separators for all nodes except the root.\n // Each separator is placed to the top of the current label.\n if (datum.parent && isLabelTree) {\n var y = !datum.children.length\n ? datum.screenX - bandwidth / 2\n : datum.screenX - datum.leafCount * bandwidth / 2;\n if (!datum.children.length) {\n if ((datum.number !== datum.children.length - 1) || labelGrid) {\n separatorData.push({\n y: y,\n x1: 0,\n x2: -maxLeafLabelWidth - _this.label.padding * 2,\n toString: function () { return String(index); }\n });\n }\n }\n else {\n var x = -maxLeafLabelWidth - _this.label.padding * 2 + datum.screenY;\n separatorData.push({\n y: y,\n x1: x + lineHeight,\n x2: x,\n toString: function () { return String(index); }\n });\n }\n }\n });\n // Calculate the position of the long separator on the far bottom of the axis.\n var minX = 0;\n separatorData.forEach(function (d) { return minX = Math.min(minX, d.x2); });\n this.longestSeparatorLength = Math.abs(minX);\n separatorData.push({\n y: Math.max(rangeStart, rangeEnd),\n x1: 0,\n x2: minX,\n toString: function () { return String(separatorData.length); }\n });\n var updateSeparators = this.separatorSelection.setData(separatorData);\n updateSeparators.exit.remove();\n var enterSeparators = updateSeparators.enter.append(Line$1);\n var separatorSelection = updateSeparators.merge(enterSeparators);\n this.separatorSelection = separatorSelection;\n var epsilon = 0.0000001;\n separatorSelection.each(function (line, datum, i) {\n line.x1 = datum.x1;\n line.x2 = datum.x2;\n line.y1 = datum.y;\n line.y2 = datum.y;\n line.visible = datum.y >= requestedRange[0] - epsilon && datum.y <= requestedRange[1] + epsilon;\n line.stroke = _this.tick.color;\n line.fill = undefined;\n line.strokeWidth = 1;\n });\n this.gridLineSelection = gridLineSelection;\n this.labelSelection = labelSelection;\n // Render axis lines.\n var lineCount = tickTreeLayout ? tickTreeLayout.depth + 1 : 1;\n var lines = [];\n for (var i = 0; i < lineCount; i++) {\n lines.push(i);\n }\n var updateAxisLines = this.axisLineSelection.setData(lines);\n updateAxisLines.exit.remove();\n var enterAxisLines = updateAxisLines.enter.append(Line$1);\n var axisLineSelection = updateAxisLines.merge(enterAxisLines);\n this.axisLineSelection = axisLineSelection;\n axisLineSelection.each(function (line, _, index) {\n var x = index > 0 ? -maxLeafLabelWidth - _this.label.padding * 2 - (index - 1) * lineHeight : 0;\n line.x1 = x;\n line.x2 = x;\n line.y1 = requestedRange[0];\n line.y2 = requestedRange[1];\n line.strokeWidth = _this.line.width;\n line.stroke = _this.line.color;\n line.visible = labels.length > 0 && (index === 0 || (labelGrid && isLabelTree));\n });\n if (this.gridLength) {\n var styles_1 = this.gridStyle;\n var styleCount_1 = styles_1.length;\n gridLineSelection\n .each(function (line, datum, index) {\n var y = Math.round(tickScale.convert(datum));\n line.x1 = 0;\n line.x2 = -sideFlag * _this.gridLength;\n line.y1 = y;\n line.y2 = y;\n line.visible = y >= requestedRange[0] && y <= requestedRange[1] &&\n Math.abs(line.parent.translationY - rangeStart) > 1;\n var style = styles_1[index % styleCount_1];\n line.stroke = style.stroke;\n line.strokeWidth = _this.tick.width;\n line.lineDash = style.lineDash;\n line.fill = undefined;\n });\n }\n // debug (bbox)\n // const bbox = this.computeBBox();\n // const bboxRect = this.bboxRect;\n // bboxRect.x = bbox.x;\n // bboxRect.y = bbox.y;\n // bboxRect.width = bbox.width;\n // bboxRect.height = bbox.height;\n };\n GroupedCategoryAxis.prototype.computeBBox = function (options) {\n var includeTitle = !options || !options.excludeTitle;\n var left = Infinity;\n var right = -Infinity;\n var top = Infinity;\n var bottom = -Infinity;\n this.labelSelection.each(function (label, _, index) {\n // The label itself is rotated, but not translated, the group that\n // contains it is. So to capture the group transform in the label bbox\n // calculation we combine the transform matrices of the label and the group.\n // Depending on the timing of the `axis.computeBBox()` method call, we may\n // not have the group's and the label's transform matrices updated yet (because\n // the transform matrix is not recalculated whenever a node's transform attributes\n // change, instead it's marked for recalculation on the next frame by setting\n // the node's `dirtyTransform` flag to `true`), so we force them to update\n // right here by calling `computeTransformMatrix`.\n if (index > 0 || includeTitle) { // first node is the root (title)\n label.computeTransformMatrix();\n var matrix = Matrix$1.flyweight(label.matrix);\n var labelBBox = label.computeBBox();\n if (labelBBox) {\n var bbox = matrix.transformBBox(labelBBox);\n left = Math.min(left, bbox.x);\n right = Math.max(right, bbox.x + bbox.width);\n top = Math.min(top, bbox.y);\n bottom = Math.max(bottom, bbox.y + bbox.height);\n }\n }\n });\n return new BBox$1(left, top, Math.max(right - left, this.longestSeparatorLength), bottom - top);\n };\n // debug (bbox)\n // private bboxRect = (() => {\n // const rect = new Rect();\n // rect.fill = undefined;\n // rect.stroke = 'red';\n // rect.strokeWidth = 1;\n // rect.strokeOpacity = 0.2;\n // return rect;\n // })();\n GroupedCategoryAxis.className = 'GroupedCategoryAxis';\n GroupedCategoryAxis.type = 'groupedCategory';\n return GroupedCategoryAxis;\n}(ChartAxis));\n\nvar __extends$1j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar t0$1 = new Date;\nvar t1$1 = new Date;\n/**\n * The interval methods don't mutate Date parameters.\n */\nvar TimeInterval$1 = /** @class */ (function () {\n function TimeInterval(floor, offset) {\n this._floor = floor;\n this._offset = offset;\n }\n /**\n * Returns a new date representing the latest interval boundary date before or equal to date.\n * For example, `day.floor(date)` typically returns 12:00 AM local time on the given date.\n * @param date\n */\n TimeInterval.prototype.floor = function (date) {\n date = new Date(+date);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the earliest interval boundary date after or equal to date.\n * @param date\n */\n TimeInterval.prototype.ceil = function (date) {\n date = new Date(+date - 1);\n this._floor(date);\n this._offset(date, 1);\n this._floor(date);\n return date;\n };\n /**\n * Returns a new date representing the closest interval boundary date to date.\n * @param date\n */\n TimeInterval.prototype.round = function (date) {\n var d0 = this.floor(date);\n var d1 = this.ceil(date);\n var ms = +date;\n return ms - d0.getTime() < d1.getTime() - ms ? d0 : d1;\n };\n /**\n * Returns a new date equal to date plus step intervals.\n * @param date\n * @param step\n */\n TimeInterval.prototype.offset = function (date, step) {\n if (step === void 0) { step = 1; }\n date = new Date(+date);\n this._offset(date, Math.floor(step));\n return date;\n };\n /**\n * Returns an array of dates representing every interval boundary after or equal to start (inclusive) and before stop (exclusive).\n * @param start\n * @param stop\n * @param step\n */\n TimeInterval.prototype.range = function (start, stop, step) {\n if (step === void 0) { step = 1; }\n var range = [];\n start = this.ceil(start);\n step = Math.floor(step);\n if (start > stop || step <= 0) {\n return range;\n }\n var previous;\n do {\n previous = new Date(+start);\n range.push(previous);\n this._offset(start, step);\n this._floor(start);\n } while (previous < start && start < stop);\n return range;\n };\n // Returns an interval that is a subset of this interval.\n // For example, to create an interval that return 1st, 11th, 21st and 31st of each month:\n // day.filter(date => (date.getDate() - 1) % 10 === 0)\n TimeInterval.prototype.filter = function (test) {\n var _this = this;\n var floor = function (date) {\n if (date >= date) {\n while (_this._floor(date), !test(date)) {\n date.setTime(date.getTime() - 1);\n }\n }\n return date;\n };\n var offset = function (date, step) {\n if (date >= date) {\n if (step < 0) {\n while (++step <= 0) {\n do {\n _this._offset(date, -1);\n } while (!test(date));\n }\n }\n else {\n while (--step >= 0) {\n do {\n _this._offset(date, 1);\n } while (!test(date));\n }\n }\n }\n return date;\n };\n return new TimeInterval(floor, offset);\n };\n return TimeInterval;\n}());\nvar CountableTimeInterval$1 = /** @class */ (function (_super) {\n __extends$1j(CountableTimeInterval, _super);\n function CountableTimeInterval(floor, offset, count, field) {\n var _this = _super.call(this, floor, offset) || this;\n _this._count = count;\n _this._field = field;\n return _this;\n }\n /**\n * Returns the number of interval boundaries after start (exclusive) and before or equal to end (inclusive).\n * @param start\n * @param end\n */\n CountableTimeInterval.prototype.count = function (start, end) {\n t0$1.setTime(+start);\n t1$1.setTime(+end);\n this._floor(t0$1);\n this._floor(t1$1);\n return Math.floor(this._count(t0$1, t1$1));\n };\n /**\n * Returns a filtered view of this interval representing every step'th date.\n * The meaning of step is dependent on this interval’s parent interval as defined by the `field` function.\n * @param step\n */\n CountableTimeInterval.prototype.every = function (step) {\n var _this = this;\n var result;\n step = Math.floor(step);\n if (isFinite(step) && step > 0) {\n if (step > 1) {\n var field_1 = this._field;\n if (field_1) {\n result = this.filter(function (d) { return field_1(d) % step === 0; });\n }\n else {\n result = this.filter(function (d) { return _this.count(0, d) % step === 0; });\n }\n }\n else {\n result = this;\n }\n }\n return result;\n };\n return CountableTimeInterval;\n}(TimeInterval$1));\n\nfunction floor$9(date) {\n return date;\n}\nfunction offset$9(date, milliseconds) {\n date.setTime(date.getTime() + milliseconds);\n}\nfunction count$9(start, end) {\n return end.getTime() - start.getTime();\n}\nvar millisecond$1 = new CountableTimeInterval$1(floor$9, offset$9, count$9);\n\n// Common time unit sizes in milliseconds.\nvar durationSecond$1 = 1000;\nvar durationMinute$1 = durationSecond$1 * 60;\nvar durationHour$1 = durationMinute$1 * 60;\nvar durationDay$1 = durationHour$1 * 24;\nvar durationWeek$1 = durationDay$1 * 7;\nvar durationMonth$1 = durationDay$1 * 30;\nvar durationYear$1 = durationDay$1 * 365;\n\nfunction floor$a(date) {\n date.setTime(date.getTime() - date.getMilliseconds());\n}\nfunction offset$a(date, seconds) {\n date.setTime(date.getTime() + seconds * durationSecond$1);\n}\nfunction count$a(start, end) {\n return (end.getTime() - start.getTime()) / durationSecond$1;\n}\nvar second$1 = new CountableTimeInterval$1(floor$a, offset$a, count$a);\n\nfunction floor$b(date) {\n date.setTime(date.getTime() - date.getMilliseconds() - date.getSeconds() * durationSecond$1);\n}\nfunction offset$b(date, minutes) {\n date.setTime(date.getTime() + minutes * durationMinute$1);\n}\nfunction count$b(start, end) {\n return (end.getTime() - start.getTime()) / durationMinute$1;\n}\nfunction field$7(date) {\n return date.getMinutes();\n}\nvar minute$1 = new CountableTimeInterval$1(floor$b, offset$b, count$b, field$7);\n\nfunction floor$c(date) {\n date.setTime(date.getTime() - date.getMilliseconds() - date.getSeconds() * durationSecond$1 - date.getMinutes() * durationMinute$1);\n}\nfunction offset$c(date, hours) {\n date.setTime(date.getTime() + hours * durationHour$1);\n}\nfunction count$c(start, end) {\n return (end.getTime() - start.getTime()) / durationHour$1;\n}\nfunction field$8(date) {\n return date.getHours();\n}\nvar hour$1 = new CountableTimeInterval$1(floor$c, offset$c, count$c, field$8);\n\nfunction floor$d(date) {\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$d(date, days) {\n date.setDate(date.getDate() + days);\n}\nfunction count$d(start, end) {\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (end.getTime() - start.getTime() - tzMinuteDelta * durationMinute$1) / durationDay$1;\n}\nfunction field$9(date) {\n return date.getDate() - 1;\n}\nvar day$1 = new CountableTimeInterval$1(floor$d, offset$d, count$d, field$9);\n\n// Set date to n-th day of the week.\nfunction weekday$2(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n // 1..31 1..7\n date.setDate(date.getDate() - (date.getDay() + 7 - n) % 7);\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setDate(date.getDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n var msDelta = end.getTime() - start.getTime();\n var tzMinuteDelta = end.getTimezoneOffset() - start.getTimezoneOffset();\n return (msDelta - tzMinuteDelta * durationMinute$1) / durationWeek$1;\n }\n return new CountableTimeInterval$1(floor, offset, count);\n}\nvar sunday$1 = weekday$2(0);\nvar monday$1 = weekday$2(1);\nvar tuesday$1 = weekday$2(2);\nvar wednesday$1 = weekday$2(3);\nvar thursday$1 = weekday$2(4);\nvar friday$1 = weekday$2(5);\nvar saturday$1 = weekday$2(6);\n\nfunction floor$e(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$e(date, months) {\n date.setMonth(date.getMonth() + months);\n}\nfunction count$e(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}\nfunction field$a(date) {\n return date.getMonth();\n}\nvar month$1 = new CountableTimeInterval$1(floor$e, offset$e, count$e, field$a);\n\nfunction floor$f(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}\nfunction offset$f(date, years) {\n date.setFullYear(date.getFullYear() + years);\n}\nfunction count$f(start, end) {\n return end.getFullYear() - start.getFullYear();\n}\nfunction field$b(date) {\n return date.getFullYear();\n}\nvar year$1 = new CountableTimeInterval$1(floor$f, offset$f, count$f, field$b);\n\nfunction floor$g(date) {\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$g(date, days) {\n date.setUTCDate(date.getUTCDate() + days);\n}\nfunction count$g(start, end) {\n return (end.getTime() - start.getTime()) / durationDay$1;\n}\nfunction field$c(date) {\n return date.getUTCDate() - 1;\n}\nvar utcDay$1 = new CountableTimeInterval$1(floor$g, offset$g, count$g, field$c);\n\nfunction floor$h(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$h(date, years) {\n date.setUTCFullYear(date.getUTCFullYear() + years);\n}\nfunction count$h(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}\nfunction field$d(date) {\n return date.getUTCFullYear();\n}\nvar utcYear$1 = new CountableTimeInterval$1(floor$h, offset$h, count$h, field$d);\n\n// Set date to n-th day of the week.\nfunction weekday$3(n) {\n // Sets the `date` to the start of the `n`-th day of the current week.\n // n == 0 is Sunday.\n function floor(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - n) % 7);\n date.setHours(0, 0, 0, 0); // h, m, s, ms\n }\n // Offset the date by the given number of weeks.\n function offset(date, weeks) {\n date.setUTCDate(date.getUTCDate() + weeks * 7);\n }\n // Count the number of weeks between the start and end dates.\n function count(start, end) {\n return (end.getTime() - start.getTime()) / durationWeek$1;\n }\n return new CountableTimeInterval$1(floor, offset, count);\n}\nvar utcSunday$1 = weekday$3(0);\nvar utcMonday$1 = weekday$3(1);\nvar utcTuesday$1 = weekday$3(2);\nvar utcWednesday$1 = weekday$3(3);\nvar utcThursday$1 = weekday$3(4);\nvar utcFriday$1 = weekday$3(5);\nvar utcSaturday$1 = weekday$3(6);\n\nfunction localDate$1(d) {\n // For JS Dates the [0, 100) interval is a time warp, a fast forward to the 20th century.\n // For example, -1 is -0001 BC, 0 is already 1900 AD.\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\nfunction utcDate$1(d) {\n if (d.y >= 0 && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n/**\n * Creates a lookup map for array of names to go from a name to index.\n * @param names\n */\nfunction formatLookup$1(names) {\n var map = {};\n for (var i = 0, n = names.length; i < n; i++) {\n map[names[i].toLowerCase()] = i;\n }\n return map;\n}\nfunction newYear$1(y) {\n return {\n y: y,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\nvar percentCharCode$1 = 37;\nvar numberRe$1 = /^\\s*\\d+/; // ignores next directive\nvar percentRe$1 = /^%/;\nvar requoteRe$1 = /[\\\\^$*+?|[\\]().{}]/g;\n/**\n * Prepends any character in the `requoteRe` set with a backslash.\n * @param s\n */\nvar requote$1 = function (s) { return s.replace(requoteRe$1, '\\\\$&'); }; // $& - matched substring\n/**\n * Returns a RegExp that matches any string that starts with any of the given names (case insensitive).\n * @param names\n */\nvar formatRe$1 = function (names) { return new RegExp('^(?:' + names.map(requote$1).join('|') + ')', 'i'); };\n// A map of padding modifiers to padding strings. Default is `0`.\nvar pads$1 = {\n '-': '',\n '_': ' ',\n '0': '0'\n};\nfunction pad$1(value, fill, width) {\n var sign = value < 0 ? '-' : '';\n var string = String(sign ? -value : value);\n var length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n/**\n * Create a new time-locale-based object which exposes time-formatting\n * methods for the specified locale definition.\n *\n * @param timeLocale A time locale definition.\n */\nfunction formatLocale$3(timeLocale) {\n var lDateTime = timeLocale.dateTime;\n var lDate = timeLocale.date;\n var lTime = timeLocale.time;\n var lPeriods = timeLocale.periods;\n var lWeekdays = timeLocale.days;\n var lShortWeekdays = timeLocale.shortDays;\n var lMonths = timeLocale.months;\n var lShortMonths = timeLocale.shortMonths;\n var periodRe = formatRe$1(lPeriods);\n var periodLookup = formatLookup$1(lPeriods);\n var weekdayRe = formatRe$1(lWeekdays);\n var weekdayLookup = formatLookup$1(lWeekdays);\n var shortWeekdayRe = formatRe$1(lShortWeekdays);\n var shortWeekdayLookup = formatLookup$1(lShortWeekdays);\n var monthRe = formatRe$1(lMonths);\n var monthLookup = formatLookup$1(lMonths);\n var shortMonthRe = formatRe$1(lShortMonths);\n var shortMonthLookup = formatLookup$1(lShortMonths);\n var formats = {\n 'a': formatShortWeekday,\n 'A': formatWeekday,\n 'b': formatShortMonth,\n 'B': formatMonth,\n 'c': undefined,\n 'd': formatDayOfMonth,\n 'e': formatDayOfMonth,\n 'f': formatMicroseconds,\n 'H': formatHour24,\n 'I': formatHour12,\n 'j': formatDayOfYear,\n 'L': formatMilliseconds,\n 'm': formatMonthNumber,\n 'M': formatMinutes,\n 'p': formatPeriod,\n 'Q': formatUnixTimestamp,\n 's': formatUnixTimestampSeconds,\n 'S': formatSeconds,\n 'u': formatWeekdayNumberMonday,\n 'U': formatWeekNumberSunday,\n 'V': formatWeekNumberISO,\n 'w': formatWeekdayNumberSunday,\n 'W': formatWeekNumberMonday,\n 'x': undefined,\n 'X': undefined,\n 'y': formatYear,\n 'Y': formatFullYear,\n 'Z': formatZone,\n '%': formatLiteralPercent\n };\n var utcFormats = {\n 'a': formatUTCShortWeekday,\n 'A': formatUTCWeekday,\n 'b': formatUTCShortMonth,\n 'B': formatUTCMonth,\n 'c': undefined,\n 'd': formatUTCDayOfMonth,\n 'e': formatUTCDayOfMonth,\n 'f': formatUTCMicroseconds,\n 'H': formatUTCHour24,\n 'I': formatUTCHour12,\n 'j': formatUTCDayOfYear,\n 'L': formatUTCMilliseconds,\n 'm': formatUTCMonthNumber,\n 'M': formatUTCMinutes,\n 'p': formatUTCPeriod,\n 'Q': formatUnixTimestamp,\n 's': formatUnixTimestampSeconds,\n 'S': formatUTCSeconds,\n 'u': formatUTCWeekdayNumberMonday,\n 'U': formatUTCWeekNumberSunday,\n 'V': formatUTCWeekNumberISO,\n 'w': formatUTCWeekdayNumberSunday,\n 'W': formatUTCWeekNumberMonday,\n 'x': undefined,\n 'X': undefined,\n 'y': formatUTCYear,\n 'Y': formatUTCFullYear,\n 'Z': formatUTCZone,\n '%': formatLiteralPercent\n };\n var parses = {\n 'a': parseShortWeekday,\n 'A': parseWeekday,\n 'b': parseShortMonth,\n 'B': parseMonth,\n 'c': parseLocaleDateTime,\n 'd': parseDayOfMonth,\n 'e': parseDayOfMonth,\n 'f': parseMicroseconds,\n 'H': parseHour24,\n 'I': parseHour24,\n 'j': parseDayOfYear,\n 'L': parseMilliseconds,\n 'm': parseMonthNumber,\n 'M': parseMinutes,\n 'p': parsePeriod,\n 'Q': parseUnixTimestamp,\n 's': parseUnixTimestampSeconds,\n 'S': parseSeconds,\n 'u': parseWeekdayNumberMonday,\n 'U': parseWeekNumberSunday,\n 'V': parseWeekNumberISO,\n 'w': parseWeekdayNumberSunday,\n 'W': parseWeekNumberMonday,\n 'x': parseLocaleDate,\n 'X': parseLocaleTime,\n 'y': parseYear,\n 'Y': parseFullYear,\n 'Z': parseZone,\n '%': parseLiteralPercent\n };\n // Recursive definitions.\n formats.x = newFormat(lDate, formats);\n formats.X = newFormat(lTime, formats);\n formats.c = newFormat(lDateTime, formats);\n utcFormats.x = newFormat(lDate, utcFormats);\n utcFormats.X = newFormat(lTime, utcFormats);\n utcFormats.c = newFormat(lDateTime, utcFormats);\n function newParse(specifier, newDate) {\n return function (str) {\n var d = newYear$1(1900);\n var i = parseSpecifier(d, specifier, str += '', 0);\n if (i != str.length) {\n return undefined;\n }\n // If a UNIX timestamp is specified, return it.\n if ('Q' in d) {\n return new Date(d.Q);\n }\n // The am-pm flag is 0 for AM, and 1 for PM.\n if ('p' in d) {\n d.H = d.H % 12 + d.p * 12;\n }\n // Convert day-of-week and week-of-year to day-of-year.\n if ('V' in d) {\n if (d.V < 1 || d.V > 53) {\n return undefined;\n }\n if (!('w' in d)) {\n d.w = 1;\n }\n if ('Z' in d) {\n var week = utcDate$1(newYear$1(d.y));\n var day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday$1.ceil(week) : utcMonday$1.floor(week);\n week = utcDay$1.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n }\n else {\n var week = newDate(newYear$1(d.y));\n var day = week.getDay();\n week = day > 4 || day === 0 ? monday$1.ceil(week) : monday$1.floor(week);\n week = day$1.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n }\n else if ('W' in d || 'U' in d) {\n if (!('w' in d)) {\n d.w = 'u' in d\n ? d.u % 7\n : 'W' in d ? 1 : 0;\n }\n var day = 'Z' in d ? utcDate$1(newYear$1(d.y)).getUTCDay() : newDate(newYear$1(d.y)).getDay();\n d.m = 0;\n d.d = 'W' in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if ('Z' in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate$1(d);\n }\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n /**\n * Creates a new function that formats the given Date or timestamp according to specifier.\n * @param specifier\n * @param formats\n */\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [];\n var n = specifier.length;\n var i = -1;\n var j = 0;\n if (!(date instanceof Date)) {\n date = new Date(+date);\n }\n while (++i < n) {\n if (specifier.charCodeAt(i) === percentCharCode$1) {\n string.push(specifier.slice(j, i)); // copy the chunks of specifier with no directives as is\n var c = specifier.charAt(++i);\n var pad_1 = pads$1[c];\n if (pad_1 != undefined) { // if format directive has a padding modifier in front of it\n c = specifier.charAt(++i); // fetch the directive itself\n }\n else {\n pad_1 = c === 'e' ? ' ' : '0'; // use the default padding modifier\n }\n var format = formats[c];\n if (format) { // if the directive has a corresponding formatting function\n c = format(date, pad_1); // replace the directive with the formatted date\n }\n string.push(c);\n j = i + 1;\n }\n }\n string.push(specifier.slice(j, i));\n return string.join('');\n };\n }\n // Simultaneously walks over the specifier and the parsed string, populating the `d` map with parsed values.\n // The returned number is expected to equal the length of the parsed `string`, if parsing succeeded.\n function parseSpecifier(d, specifier, string, j) {\n // i - `specifier` string index\n // j - parsed `string` index\n var i = 0;\n var n = specifier.length;\n var m = string.length;\n while (i < n) {\n if (j >= m) {\n return -1;\n }\n var code = specifier.charCodeAt(i++);\n if (code === percentCharCode$1) {\n var char = specifier.charAt(i++);\n var parse = parses[(char in pads$1 ? specifier.charAt(i++) : char)];\n if (!parse || ((j = parse(d, string, j)) < 0)) {\n return -1;\n }\n }\n else if (code != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n // ----------------------------- formats ----------------------------------\n function formatMicroseconds(date, fill) {\n return formatMilliseconds(date, fill) + '000';\n }\n function formatMilliseconds(date, fill) {\n return pad$1(date.getMilliseconds(), fill, 3);\n }\n function formatSeconds(date, fill) {\n return pad$1(date.getSeconds(), fill, 2);\n }\n function formatMinutes(date, fill) {\n return pad$1(date.getMinutes(), fill, 2);\n }\n function formatHour12(date, fill) {\n return pad$1(date.getHours() % 12 || 12, fill, 2);\n }\n function formatHour24(date, fill) {\n return pad$1(date.getHours(), fill, 2);\n }\n function formatPeriod(date) {\n return lPeriods[date.getHours() >= 12 ? 1 : 0];\n }\n function formatShortWeekday(date) {\n return lShortWeekdays[date.getDay()];\n }\n function formatWeekday(date) {\n return lWeekdays[date.getDay()];\n }\n function formatWeekdayNumberMonday(date) {\n var dayOfWeek = date.getDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatWeekNumberSunday(date, fill) {\n return pad$1(sunday$1.count(year$1.floor(date), date), fill, 2);\n }\n function formatWeekNumberISO(date, fill) {\n var day = date.getDay();\n date = (day >= 4 || day === 0) ? thursday$1.floor(date) : thursday$1.ceil(date);\n var yearStart = year$1.floor(date);\n return pad$1(thursday$1.count(yearStart, date) + (yearStart.getDay() === 4 ? 1 : 0), fill, 2);\n }\n function formatWeekdayNumberSunday(date) {\n return date.getDay();\n }\n function formatWeekNumberMonday(date, fill) {\n return pad$1(monday$1.count(year$1.floor(date), date), fill, 2);\n }\n function formatDayOfMonth(date, fill) {\n return pad$1(date.getDate(), fill, 2);\n }\n function formatDayOfYear(date, fill) {\n return pad$1(1 + day$1.count(year$1.floor(date), date), fill, 3);\n }\n function formatShortMonth(date) {\n return lShortMonths[date.getMonth()];\n }\n function formatMonth(date) {\n return lMonths[date.getMonth()];\n }\n function formatMonthNumber(date, fill) {\n return pad$1(date.getMonth() + 1, fill, 2);\n }\n function formatYear(date, fill) {\n return pad$1(date.getFullYear() % 100, fill, 2);\n }\n function formatFullYear(date, fill) {\n return pad$1(date.getFullYear() % 10000, fill, 4);\n }\n function formatZone(date) {\n var z = date.getTimezoneOffset();\n return (z > 0 ? '-' : (z *= -1, '+')) + pad$1(Math.floor(z / 60), '0', 2) + pad$1(z % 60, '0', 2);\n }\n // -------------------------- UTC formats -----------------------------------\n function formatUTCMicroseconds(date, fill) {\n return formatUTCMilliseconds(date, fill) + '000';\n }\n function formatUTCMilliseconds(date, fill) {\n return pad$1(date.getUTCMilliseconds(), fill, 3);\n }\n function formatUTCSeconds(date, fill) {\n return pad$1(date.getUTCSeconds(), fill, 2);\n }\n function formatUTCMinutes(date, fill) {\n return pad$1(date.getUTCMinutes(), fill, 2);\n }\n function formatUTCHour12(date, fill) {\n return pad$1(date.getUTCHours() % 12 || 12, fill, 2);\n }\n function formatUTCHour24(date, fill) {\n return pad$1(date.getUTCHours(), fill, 2);\n }\n function formatUTCPeriod(date) {\n return lPeriods[date.getUTCHours() >= 12 ? 1 : 0];\n }\n function formatUTCDayOfMonth(date, fill) {\n return pad$1(date.getUTCDate(), fill, 2);\n }\n function formatUTCDayOfYear(date, fill) {\n return pad$1(1 + utcDay$1.count(utcYear$1.floor(date), date), fill, 3);\n }\n function formatUTCMonthNumber(date, fill) {\n return pad$1(date.getUTCMonth() + 1, fill, 2);\n }\n function formatUTCShortMonth(date) {\n return lShortMonths[date.getUTCMonth()];\n }\n function formatUTCMonth(date) {\n return lMonths[date.getUTCMonth()];\n }\n function formatUTCShortWeekday(date) {\n return lShortWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekday(date) {\n return lWeekdays[date.getUTCDay()];\n }\n function formatUTCWeekdayNumberMonday(date) {\n var dayOfWeek = date.getUTCDay();\n return dayOfWeek === 0 ? 7 : dayOfWeek;\n }\n function formatUTCWeekNumberSunday(date, fill) {\n return pad$1(utcSunday$1.count(utcYear$1.floor(date), date), fill, 2);\n }\n function formatUTCWeekNumberISO(date, fill) {\n var day = date.getUTCDay();\n date = (day >= 4 || day === 0) ? utcThursday$1.floor(date) : utcThursday$1.ceil(date);\n var yearStart = utcYear$1.floor(date);\n return pad$1(utcThursday$1.count(yearStart, date) + (yearStart.getUTCDay() === 4 ? 1 : 0), fill, 4);\n }\n function formatUTCWeekdayNumberSunday(date) {\n return date.getUTCDay();\n }\n function formatUTCWeekNumberMonday(date, fill) {\n return pad$1(utcMonday$1.count(utcYear$1.floor(date), date), fill, 2);\n }\n function formatUTCYear(date, fill) {\n return pad$1(date.getUTCFullYear() % 100, fill, 2);\n }\n function formatUTCFullYear(date, fill) {\n return pad$1(date.getUTCFullYear() % 10000, fill, 4);\n }\n function formatUTCZone() {\n return '+0000';\n }\n function formatLiteralPercent(date) {\n return '%';\n }\n function formatUnixTimestamp(date) {\n return date.getTime();\n }\n function formatUnixTimestampSeconds(date) {\n return Math.floor(date.getTime() / 1000);\n }\n // ------------------------------- parsers ------------------------------------\n function parseMicroseconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(parseFloat(n[0]) / 1000), i + n[0].length) : -1;\n }\n function parseMilliseconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n }\n function parseSeconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n }\n function parseMinutes(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n }\n function parseHour24(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseDayOfMonth(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n }\n function parseDayOfYear(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberSunday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberISO(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberMonday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n }\n function parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonthNumber(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.m = parseFloat(n[0]) - 1, i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, lDateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, lDate, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, lTime, string, i);\n }\n function parseUnixTimestamp(d, string, i) {\n var n = numberRe$1.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n }\n function parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe$1.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n }\n function parseYear(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n }\n function parseFullYear(d, string, i) {\n var n = numberRe$1.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n }\n function parseZone(d, string, i) {\n var n = /^(Z)|^([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || '00')), i + n[0].length) : -1;\n }\n function parseLiteralPercent(d, string, i) {\n var n = percentRe$1.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n return {\n format: function (specifier) {\n var f = newFormat(specifier, formats);\n f.toString = function () { return specifier; };\n return f;\n },\n parse: function (specifier) {\n var p = newParse(specifier, localDate$1);\n p.toString = function () { return specifier; };\n return p;\n },\n utcFormat: function (specifier) {\n var f = newFormat(specifier, utcFormats);\n f.toString = function () { return specifier; };\n return f;\n },\n utcParse: function (specifier) {\n var p = newParse(specifier, utcDate$1);\n p.toString = function () { return specifier; };\n return p;\n }\n };\n}\n\nvar locale$1;\nsetDefaultLocale$1({\n dateTime: '%x, %X',\n date: '%-m/%-d/%Y',\n time: '%-I:%M:%S %p',\n periods: ['AM', 'PM'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n});\nfunction setDefaultLocale$1(definition) {\n return locale$1 = formatLocale$3(definition);\n}\n\nvar __extends$1k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar TimeScale$1 = /** @class */ (function (_super) {\n __extends$1k(TimeScale, _super);\n function TimeScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'time';\n _this.year = year$1;\n _this.month = month$1;\n _this.week = sunday$1;\n _this.day = day$1;\n _this.hour = hour$1;\n _this.minute = minute$1;\n _this.second = second$1;\n _this.millisecond = millisecond$1;\n _this.format = locale$1.format;\n /**\n * Array of default tick intervals in the following format:\n *\n * [\n * interval (unit of time),\n * number of units (step),\n * the length of that number of units in milliseconds\n * ]\n */\n _this.tickIntervals = [\n [_this.second, 1, durationSecond$1],\n [_this.second, 5, 5 * durationSecond$1],\n [_this.second, 15, 15 * durationSecond$1],\n [_this.second, 30, 30 * durationSecond$1],\n [_this.minute, 1, durationMinute$1],\n [_this.minute, 5, 5 * durationMinute$1],\n [_this.minute, 15, 15 * durationMinute$1],\n [_this.minute, 30, 30 * durationMinute$1],\n [_this.hour, 1, durationHour$1],\n [_this.hour, 3, 3 * durationHour$1],\n [_this.hour, 6, 6 * durationHour$1],\n [_this.hour, 12, 12 * durationHour$1],\n [_this.day, 1, durationDay$1],\n [_this.day, 2, 2 * durationDay$1],\n [_this.week, 1, durationWeek$1],\n [_this.month, 1, durationMonth$1],\n [_this.month, 3, 3 * durationMonth$1],\n [_this.year, 1, durationYear$1]\n ];\n _this.formatMillisecond = _this.format('.%L');\n _this.formatSecond = _this.format(':%S');\n _this.formatMinute = _this.format('%I:%M');\n _this.formatHour = _this.format('%I %p');\n _this.formatDay = _this.format('%a %d');\n _this.formatWeek = _this.format('%b %d');\n _this.formatMonth = _this.format('%B');\n _this.formatYear = _this.format('%Y');\n _this._domain = [new Date(2000, 0, 1), new Date(2000, 0, 2)];\n return _this;\n }\n TimeScale.prototype.defaultTickFormat = function (date) {\n return (this.second.floor(date) < date\n ? this.formatMillisecond\n : this.minute.floor(date) < date\n ? this.formatSecond\n : this.hour.floor(date) < date\n ? this.formatMinute\n : this.day.floor(date) < date\n ? this.formatHour\n : this.month.floor(date) < date\n ? (this.week.floor(date) < date ? this.formatDay : this.formatWeek)\n : this.year.floor(date) < date\n ? this.formatMonth\n : this.formatYear)(date);\n };\n /**\n *\n * @param interval If the `interval` is a number, it's interpreted as the desired tick count\n * and the method tries to pick an appropriate interval automatically, based on the extent of the domain.\n * If the `interval` is `undefined`, it defaults to `10`.\n * If the `interval` is a time interval, simply use it.\n * @param start The start time (timestamp).\n * @param stop The end time (timestamp).\n * @param step Number of intervals between ticks.\n */\n TimeScale.prototype.tickInterval = function (interval, start, stop, step) {\n var _a;\n if (typeof interval === 'number') {\n var tickCount = interval;\n var tickIntervals = this.tickIntervals;\n var target = Math.abs(stop - start) / tickCount;\n var i = complexBisectRight$1(tickIntervals, target, function (interval) { return interval[2]; });\n if (i === tickIntervals.length) {\n step = tickStep$1(start / durationYear$1, stop / durationYear$1, tickCount);\n interval = this.year;\n }\n else if (i) {\n _a = __read$q(tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i], 2), interval = _a[0], step = _a[1];\n }\n else {\n step = Math.max(tickStep$1(start, stop, interval), 1);\n interval = this.millisecond;\n }\n }\n return step == undefined ? interval : interval.every(step);\n };\n Object.defineProperty(TimeScale.prototype, \"domain\", {\n get: function () {\n return _super.prototype.getDomain.call(this).map(function (t) { return new Date(t); });\n },\n set: function (values) {\n _super.prototype.setDomain.call(this, Array.prototype.map.call(values, function (t) { return t instanceof Date ? +t : +new Date(+t); }));\n },\n enumerable: true,\n configurable: true\n });\n TimeScale.prototype.invert = function (y) {\n return new Date(_super.prototype.invert.call(this, y));\n };\n /**\n * Returns uniformly-spaced dates that represent the scale's domain.\n * @param interval The desired tick count or a time interval object.\n */\n TimeScale.prototype.ticks = function (interval) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var t0 = d[0];\n var t1 = d[d.length - 1];\n var reverse = t1 < t0;\n if (reverse) {\n var _ = t0;\n t0 = t1;\n t1 = _;\n }\n var t = this.tickInterval(interval, t0, t1);\n var i = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return reverse ? i.reverse() : i;\n };\n /**\n * Returns a time format function suitable for displaying tick values.\n * @param count Ignored. Used only to satisfy the {@link Scale} interface.\n * @param specifier If the specifier string is provided, this method is equivalent to\n * the {@link TimeLocaleObject.format} method.\n * If no specifier is provided, this method returns the default time format function.\n */\n TimeScale.prototype.tickFormat = function (count, specifier) {\n return specifier == undefined ? this.defaultTickFormat.bind(this) : this.format(specifier);\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.\n * @param interval\n */\n TimeScale.prototype.nice = function (interval) {\n if (interval === void 0) { interval = 10; }\n var d = _super.prototype.getDomain.call(this);\n var i = this.tickInterval(interval, d[0], d[d.length - 1]);\n if (i) {\n this.domain = this._nice(d, i);\n }\n };\n TimeScale.prototype._nice = function (domain, interval) {\n var _a, _b;\n domain = domain.slice();\n var i0 = 0;\n var i1 = domain.length - 1;\n var x0 = domain[i0];\n var x1 = domain[i1];\n if (x1 < x0) {\n _a = __read$q([i1, i0], 2), i0 = _a[0], i1 = _a[1];\n _b = __read$q([x1, x0], 2), x0 = _b[0], x1 = _b[1];\n }\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n };\n return TimeScale;\n}(ContinuousScale$1));\n\nvar __extends$1l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TimeAxis = /** @class */ (function (_super) {\n __extends$1l(TimeAxis, _super);\n function TimeAxis() {\n var _this = _super.call(this, new TimeScale$1()) || this;\n _this.datumFormat = '%m/%d/%y, %H:%M:%S';\n _this._nice = true;\n var scale = _this.scale;\n scale.clamp = true;\n _this.scale = scale;\n _this.datumFormatter = scale.tickFormat(_this.calculatedTickCount, _this.datumFormat);\n return _this;\n }\n Object.defineProperty(TimeAxis.prototype, \"nice\", {\n get: function () {\n return this._nice;\n },\n set: function (value) {\n if (this._nice !== value) {\n this._nice = value;\n if (value && this.scale.nice) {\n this.scale.nice(10);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeAxis.prototype, \"domain\", {\n get: function () {\n return this.scale.domain;\n },\n set: function (domain) {\n if (domain.length > 2) {\n domain = (extent$1(domain, isContinuous$1, Number) || [0, 1000]).map(function (x) { return new Date(x); });\n }\n this.scale.domain = domain;\n if (this.nice && this.scale.nice) {\n this.scale.nice(10);\n }\n },\n enumerable: true,\n configurable: true\n });\n TimeAxis.prototype.onLabelFormatChange = function (format) {\n if (format) {\n _super.prototype.onLabelFormatChange.call(this, format);\n }\n else {\n // For time axis labels to look nice, even if date format wasn't set.\n this.labelFormatter = this.scale.tickFormat(this.calculatedTickCount, undefined);\n }\n };\n TimeAxis.prototype.formatDatum = function (datum) {\n return this.datumFormatter(datum);\n };\n TimeAxis.className = 'TimeAxis';\n TimeAxis.type = 'time';\n return TimeAxis;\n}(ChartAxis));\n\nvar __read$r = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$9 = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$r(arguments[i]));\n return ar;\n};\nvar Scene$1 = /** @class */ (function () {\n // As a rule of thumb, constructors with no parameters are preferred.\n // A few exceptions are:\n // - we absolutely need to know something at construction time (document)\n // - knowing something at construction time meaningfully improves performance (width, height)\n function Scene(document, width, height) {\n var _this = this;\n if (document === void 0) { document = window.document; }\n this.id = createId$1(this);\n this._dirty = false;\n this.animationFrameId = 0;\n this._root = null;\n this.debug = {\n renderFrameIndex: false,\n renderBoundingBoxes: false\n };\n this._frameIndex = 0;\n this.render = function () {\n var _a;\n var _b = _this, ctx = _b.ctx, root = _b.root, pendingSize = _b.pendingSize;\n _this.animationFrameId = 0;\n if (pendingSize) {\n (_a = _this.canvas).resize.apply(_a, __spread$9(pendingSize));\n _this.pendingSize = undefined;\n }\n if (root && !root.visible) {\n _this.dirty = false;\n return;\n }\n // start with a blank canvas, clear previous drawing\n ctx.clearRect(0, 0, _this.width, _this.height);\n if (root) {\n ctx.save();\n if (root.visible) {\n root.render(ctx);\n }\n ctx.restore();\n }\n _this._frameIndex++;\n if (_this.debug.renderFrameIndex) {\n ctx.fillStyle = 'white';\n ctx.fillRect(0, 0, 40, 15);\n ctx.fillStyle = 'black';\n ctx.fillText(_this.frameIndex.toString(), 2, 10);\n }\n _this.dirty = false;\n };\n this.canvas = new HdpiCanvas$1(document, width, height);\n this.ctx = this.canvas.context;\n }\n Object.defineProperty(Scene.prototype, \"container\", {\n get: function () {\n return this.canvas.container;\n },\n set: function (value) {\n this.canvas.container = value;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.download = function (fileName) {\n this.canvas.download(fileName);\n };\n Scene.prototype.getDataURL = function (type) {\n return this.canvas.getDataURL(type);\n };\n Object.defineProperty(Scene.prototype, \"width\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[0] : this.canvas.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"height\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[1] : this.canvas.height;\n },\n enumerable: true,\n configurable: true\n });\n Scene.prototype.resize = function (width, height) {\n width = Math.round(width);\n height = Math.round(height);\n if (width === this.width && height === this.height) {\n return;\n }\n this.pendingSize = [width, height];\n this.dirty = true;\n };\n Object.defineProperty(Scene.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n set: function (dirty) {\n if (dirty) {\n if (!this._dirty) {\n this.animationFrameId = requestAnimationFrame(this.render);\n }\n }\n else if (this.animationFrameId) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = 0;\n }\n this._dirty = dirty;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"root\", {\n get: function () {\n return this._root;\n },\n set: function (node) {\n if (node === this._root) {\n return;\n }\n if (this._root) {\n this._root._setScene();\n }\n this._root = node;\n if (node) {\n // If `node` is the root node of another scene ...\n if (node.parent === null && node.scene && node.scene !== this) {\n node.scene.root = null;\n }\n node._setScene(this);\n }\n this.dirty = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"frameIndex\", {\n get: function () {\n return this._frameIndex;\n },\n enumerable: true,\n configurable: true\n });\n Scene.className = 'Scene';\n return Scene;\n}());\n\nvar Gradient = /** @class */ (function () {\n function Gradient() {\n this.stops = [];\n }\n return Gradient;\n}());\n\nvar __extends$1m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LinearGradient = /** @class */ (function (_super) {\n __extends$1m(LinearGradient, _super);\n function LinearGradient() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.angle = 0;\n return _this;\n }\n LinearGradient.prototype.createGradient = function (ctx, bbox) {\n var stops = this.stops;\n var radians = (this.angle % 360) * Math.PI / 180;\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n var w = bbox.width;\n var h = bbox.height;\n var cx = bbox.x + w * 0.5;\n var cy = bbox.y + h * 0.5;\n if (w > 0 && h > 0) {\n var l = (Math.sqrt(h * h + w * w) * Math.abs(Math.cos(radians - Math.atan(h / w)))) / 2;\n var gradient_1 = ctx.createLinearGradient(cx + cos * l, cy + sin * l, cx - cos * l, cy - sin * l);\n stops.forEach(function (stop) {\n gradient_1.addColorStop(stop.offset, stop.color);\n });\n return gradient_1;\n }\n return 'black';\n };\n return LinearGradient;\n}(Gradient));\n\nvar __extends$1n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RectSizing;\n(function (RectSizing) {\n RectSizing[RectSizing[\"Content\"] = 0] = \"Content\";\n RectSizing[RectSizing[\"Border\"] = 1] = \"Border\";\n})(RectSizing || (RectSizing = {}));\nvar Rect = /** @class */ (function (_super) {\n __extends$1n(Rect, _super);\n function Rect() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this._width = 10;\n _this._height = 10;\n _this._radius = 0;\n /**\n * If `true`, the rect is aligned to the pixel grid for crisp looking lines.\n * Animated rects may not look nice with this option enabled, for example\n * when a rect is translated by a sub-pixel value on each frame.\n */\n _this._crisp = false;\n _this._gradient = false;\n _this.effectiveStrokeWidth = Shape$1.defaultStyles.strokeWidth;\n /**\n * Similar to https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing\n */\n _this._sizing = RectSizing.Content;\n return _this;\n }\n Object.defineProperty(Rect.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"radius\", {\n get: function () {\n return this._radius;\n },\n set: function (value) {\n if (this._radius !== value) {\n this._radius = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"crisp\", {\n get: function () {\n return this._crisp;\n },\n set: function (value) {\n if (this._crisp !== value) {\n this._crisp = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"gradient\", {\n get: function () {\n return this._gradient;\n },\n set: function (value) {\n if (this._gradient !== value) {\n this._gradient = value;\n this.updateGradientInstance();\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Rect.prototype.updateGradientInstance = function () {\n if (this.gradient) {\n var fill = this.fill;\n if (fill) {\n var gradient = new LinearGradient();\n gradient.angle = 270;\n gradient.stops = [{\n offset: 0,\n color: Color$1.fromString(fill).brighter().toString()\n }, {\n offset: 1,\n color: Color$1.fromString(fill).darker().toString()\n }];\n this.gradientInstance = gradient;\n }\n }\n else {\n this.gradientInstance = undefined;\n }\n };\n Object.defineProperty(Rect.prototype, \"fill\", {\n get: function () {\n return this._fill;\n },\n set: function (value) {\n if (this._fill !== value) {\n this._fill = value;\n this.updateGradientInstance();\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"strokeWidth\", {\n get: function () {\n return this._strokeWidth;\n },\n set: function (value) {\n if (this._strokeWidth !== value) {\n this._strokeWidth = value;\n // Normally, when the `lineWidth` changes, we only need to repaint the rect\n // without updating the path. If the `isCrisp` is set to `true` however,\n // we need to update the path to make sure the new stroke aligns to\n // the pixel grid. This is the reason we override the `lineWidth` setter\n // and getter here.\n if (this.crisp || this.sizing === RectSizing.Border) {\n this.dirtyPath = true;\n }\n else {\n this.effectiveStrokeWidth = value;\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"sizing\", {\n get: function () {\n return this._sizing;\n },\n set: function (value) {\n if (this._sizing !== value) {\n this._sizing = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Rect.prototype.updatePath = function () {\n var borderSizing = this.sizing === RectSizing.Border;\n var path = this.path;\n path.clear();\n var x = this.x;\n var y = this.y;\n var width = this.width;\n var height = this.height;\n var strokeWidth;\n if (borderSizing) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n strokeWidth = Math.min(this.strokeWidth, halfWidth, halfHeight);\n x = Math.min(x + strokeWidth / 2, x + halfWidth);\n y = Math.min(y + strokeWidth / 2, y + halfHeight);\n width = Math.max(width - strokeWidth, 0);\n height = Math.max(height - strokeWidth, 0);\n }\n else {\n strokeWidth = this.strokeWidth;\n }\n this.effectiveStrokeWidth = strokeWidth;\n if (this.crisp && !borderSizing) {\n var _a = this, a = _a.alignment, al = _a.align;\n path.rect(al(a, x), al(a, y), al(a, x, width), al(a, y, height));\n }\n else {\n path.rect(x, y, width, height);\n }\n };\n Rect.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox$1(x, y, width, height);\n };\n Rect.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox.containsPoint(point.x, point.y);\n };\n Rect.prototype.isPointInStroke = function (x, y) {\n return false;\n };\n Rect.prototype.fillStroke = function (ctx) {\n if (!this.scene) {\n return;\n }\n var pixelRatio = this.scene.canvas.pixelRatio || 1;\n if (this.fill) {\n if (this.gradientInstance) {\n ctx.fillStyle = this.gradientInstance.createGradient(ctx, this.computeBBox());\n }\n else {\n ctx.fillStyle = this.fill;\n }\n ctx.globalAlpha = this.opacity * this.fillOpacity;\n // The canvas context scaling (depends on the device's pixel ratio)\n // has no effect on shadows, so we have to account for the pixel ratio\n // manually here.\n var fillShadow = this.fillShadow;\n if (fillShadow && fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n ctx.fill();\n }\n ctx.shadowColor = 'rgba(0, 0, 0, 0)';\n if (this.stroke && this.effectiveStrokeWidth) {\n ctx.strokeStyle = this.stroke;\n ctx.globalAlpha = this.opacity * this.strokeOpacity;\n ctx.lineWidth = this.effectiveStrokeWidth;\n if (this.lineDash) {\n ctx.setLineDash(this.lineDash);\n }\n if (this.lineDashOffset) {\n ctx.lineDashOffset = this.lineDashOffset;\n }\n if (this.lineCap) {\n ctx.lineCap = this.lineCap;\n }\n if (this.lineJoin) {\n ctx.lineJoin = this.lineJoin;\n }\n var strokeShadow = this.strokeShadow;\n if (strokeShadow && strokeShadow.enabled) {\n ctx.shadowColor = strokeShadow.color;\n ctx.shadowOffsetX = strokeShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = strokeShadow.yOffset * pixelRatio;\n ctx.shadowBlur = strokeShadow.blur * pixelRatio;\n }\n ctx.stroke();\n }\n };\n Rect.className = 'Rect';\n return Rect;\n}(Path$1));\n\nvar __extends$1o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Marker$1 = /** @class */ (function (_super) {\n __extends$1o(Marker, _super);\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._x = 0;\n _this._y = 0;\n _this._size = 12;\n return _this;\n }\n Object.defineProperty(Marker.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Marker.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Marker.prototype, \"size\", {\n get: function () {\n return this._size;\n },\n set: function (value) {\n if (this._size !== value) {\n this._size = Math.abs(value);\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Marker.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var half = size / 2;\n return new BBox$1(x - half, y - half, size, size);\n };\n return Marker;\n}(Path$1));\n\nvar __extends$1p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Square$1 = /** @class */ (function (_super) {\n __extends$1p(Square, _super);\n function Square() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Square.prototype.updatePath = function () {\n var _a = this, path = _a.path, x = _a.x, y = _a.y;\n var hs = this.size / 2;\n var _b = this, a = _b.alignment, al = _b.align;\n path.clear();\n path.moveTo(al(a, x - hs), al(a, y - hs));\n path.lineTo(al(a, x + hs), al(a, y - hs));\n path.lineTo(al(a, x + hs), al(a, y + hs));\n path.lineTo(al(a, x - hs), al(a, y + hs));\n path.closePath();\n };\n Square.className = 'Square';\n return Square;\n}(Marker$1));\n\nvar __extends$1q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MarkerLabel = /** @class */ (function (_super) {\n __extends$1q(MarkerLabel, _super);\n function MarkerLabel() {\n var _this = _super.call(this) || this;\n _this.label = new Text$2();\n _this._marker = new Square$1();\n _this._markerSize = 15;\n _this._spacing = 8;\n var label = _this.label;\n label.textBaseline = 'middle';\n label.fontSize = 12;\n label.fontFamily = 'Verdana, sans-serif';\n label.fill = 'black';\n // For better looking vertical alignment of labels to markers.\n label.y = HdpiCanvas$1.has.textMetrics ? 1 : 0;\n _this.append([_this.marker, label]);\n _this.update();\n return _this;\n }\n Object.defineProperty(MarkerLabel.prototype, \"text\", {\n get: function () {\n return this.label.text;\n },\n set: function (value) {\n this.label.text = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontStyle\", {\n get: function () {\n return this.label.fontStyle;\n },\n set: function (value) {\n this.label.fontStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontWeight\", {\n get: function () {\n return this.label.fontWeight;\n },\n set: function (value) {\n this.label.fontWeight = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontSize\", {\n get: function () {\n return this.label.fontSize;\n },\n set: function (value) {\n this.label.fontSize = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"fontFamily\", {\n get: function () {\n return this.label.fontFamily;\n },\n set: function (value) {\n this.label.fontFamily = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"color\", {\n get: function () {\n return this.label.fill;\n },\n set: function (value) {\n this.label.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"marker\", {\n get: function () {\n return this._marker;\n },\n set: function (value) {\n if (this._marker !== value) {\n this.removeChild(this._marker);\n this._marker = value;\n this.appendChild(value);\n this.update();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerSize\", {\n get: function () {\n return this._markerSize;\n },\n set: function (value) {\n if (this._markerSize !== value) {\n this._markerSize = value;\n this.update();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerFill\", {\n get: function () {\n return this.marker.fill;\n },\n set: function (value) {\n this.marker.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerStroke\", {\n get: function () {\n return this.marker.stroke;\n },\n set: function (value) {\n this.marker.stroke = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerStrokeWidth\", {\n get: function () {\n return this.marker.strokeWidth;\n },\n set: function (value) {\n this.marker.strokeWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerFillOpacity\", {\n get: function () {\n return this.marker.fillOpacity;\n },\n set: function (value) {\n this.marker.fillOpacity = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerStrokeOpacity\", {\n get: function () {\n return this.marker.strokeOpacity;\n },\n set: function (value) {\n this.marker.strokeOpacity = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"opacity\", {\n get: function () {\n return this.marker.opacity;\n },\n set: function (value) {\n this.marker.opacity = value;\n this.label.opacity = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"spacing\", {\n get: function () {\n return this._spacing;\n },\n set: function (value) {\n if (this._spacing !== value) {\n this._spacing = value;\n this.update();\n }\n },\n enumerable: true,\n configurable: true\n });\n MarkerLabel.prototype.update = function () {\n var marker = this.marker;\n var markerSize = this.markerSize;\n marker.size = markerSize;\n this.label.x = markerSize / 2 + this.spacing;\n };\n MarkerLabel.className = 'MarkerLabel';\n return MarkerLabel;\n}(Group$1));\n\nvar __extends$1r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Circle$1 = /** @class */ (function (_super) {\n __extends$1r(Circle, _super);\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Circle.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y, path = _a.path, size = _a.size;\n var r = size / 2;\n path.clear();\n path.cubicArc(x, y, r, r, 0, 0, Math.PI * 2, 0);\n path.closePath();\n };\n Circle.className = 'Circle';\n return Circle;\n}(Marker$1));\n\nvar __extends$1s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Cross = /** @class */ (function (_super) {\n __extends$1s(Cross, _super);\n function Cross() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Cross.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y;\n var _b = this, path = _b.path, size = _b.size;\n var s = size / 4.2;\n path.clear();\n path.moveTo(x -= s, y);\n path.lineTo(x -= s, y -= s);\n path.lineTo(x += s, y -= s);\n path.lineTo(x += s, y += s);\n path.lineTo(x += s, y -= s);\n path.lineTo(x += s, y += s);\n path.lineTo(x -= s, y += s);\n path.lineTo(x += s, y += s);\n path.lineTo(x -= s, y += s);\n path.lineTo(x -= s, y -= s);\n path.lineTo(x -= s, y += s);\n path.lineTo(x -= s, y -= s);\n path.closePath();\n };\n Cross.className = 'Cross';\n return Cross;\n}(Marker$1));\n\nvar __extends$1t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Diamond$1 = /** @class */ (function (_super) {\n __extends$1t(Diamond, _super);\n function Diamond() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Diamond.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y;\n var _b = this, path = _b.path, size = _b.size;\n var s = size / 2;\n path.clear();\n path.moveTo(x, y -= s);\n path.lineTo(x += s, y += s);\n path.lineTo(x -= s, y += s);\n path.lineTo(x -= s, y -= s);\n path.lineTo(x += s, y -= s);\n path.closePath();\n };\n Diamond.className = 'Diamond';\n return Diamond;\n}(Marker$1));\n\nvar __extends$1u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Heart = /** @class */ (function (_super) {\n __extends$1u(Heart, _super);\n function Heart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Heart.prototype.rad = function (degree) {\n return degree / 180 * Math.PI;\n };\n Heart.prototype.updatePath = function () {\n var _a = this, x = _a.x, path = _a.path, size = _a.size, rad = _a.rad;\n var r = size / 4;\n var y = this.y + r / 2;\n path.clear();\n path.cubicArc(x - r, y - r, r, r, 0, rad(130), rad(330), 0);\n path.cubicArc(x + r, y - r, r, r, 0, rad(220), rad(50), 0);\n path.lineTo(x, y + r);\n path.closePath();\n };\n Heart.className = 'Heart';\n return Heart;\n}(Marker$1));\n\nvar __extends$1v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Plus = /** @class */ (function (_super) {\n __extends$1v(Plus, _super);\n function Plus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Plus.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y;\n var _b = this, path = _b.path, size = _b.size;\n var s = size / 3;\n var hs = s / 2;\n path.clear();\n path.moveTo(x -= hs, y -= hs);\n path.lineTo(x, y -= s);\n path.lineTo(x += s, y);\n path.lineTo(x, y += s);\n path.lineTo(x += s, y);\n path.lineTo(x, y += s);\n path.lineTo(x -= s, y);\n path.lineTo(x, y += s);\n path.lineTo(x -= s, y);\n path.lineTo(x, y -= s);\n path.lineTo(x -= s, y);\n path.lineTo(x, y -= s);\n path.closePath();\n };\n Plus.className = 'Plus';\n return Plus;\n}(Marker$1));\n\nvar __extends$1w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Triangle = /** @class */ (function (_super) {\n __extends$1w(Triangle, _super);\n function Triangle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Triangle.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y;\n var _b = this, path = _b.path, size = _b.size;\n var s = size * 1.1;\n path.clear();\n path.moveTo(x, y -= s * 0.48);\n path.lineTo(x += s * 0.5, y += s * 0.87);\n path.lineTo(x -= s, y);\n path.closePath();\n };\n Triangle.className = 'Triangle';\n return Triangle;\n}(Marker$1));\n\n// This function is in its own file because putting it into SeriesMarker makes the Legend\n// suddenly aware of the series (it's an agnostic component), and putting it into Marker\n// introduces circular dependencies.\nfunction getMarker$1(shape) {\n if (shape === void 0) { shape = Square$1; }\n if (typeof shape === 'string') {\n switch (shape) {\n case 'circle':\n return Circle$1;\n case 'cross':\n return Cross;\n case 'diamond':\n return Diamond$1;\n case 'heart':\n return Heart;\n case 'plus':\n return Plus;\n case 'triangle':\n return Triangle;\n default:\n return Square$1;\n }\n }\n if (typeof shape === 'function') {\n return shape;\n }\n return Square$1;\n}\n\nvar __extends$1x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LegendOrientation;\n(function (LegendOrientation) {\n LegendOrientation[LegendOrientation[\"Vertical\"] = 0] = \"Vertical\";\n LegendOrientation[LegendOrientation[\"Horizontal\"] = 1] = \"Horizontal\";\n})(LegendOrientation || (LegendOrientation = {}));\nvar LegendPosition;\n(function (LegendPosition) {\n LegendPosition[\"Top\"] = \"top\";\n LegendPosition[\"Right\"] = \"right\";\n LegendPosition[\"Bottom\"] = \"bottom\";\n LegendPosition[\"Left\"] = \"left\";\n})(LegendPosition || (LegendPosition = {}));\nvar LegendLabel = /** @class */ (function (_super) {\n __extends$1x(LegendLabel, _super);\n function LegendLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.color = 'black';\n _this.fontSize = 12;\n _this.fontFamily = 'Verdana, sans-serif';\n return _this;\n }\n __decorate$K([\n reactive$1('change')\n ], LegendLabel.prototype, \"color\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendLabel.prototype, \"fontStyle\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendLabel.prototype, \"fontWeight\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendLabel.prototype, \"fontSize\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendLabel.prototype, \"fontFamily\", void 0);\n __decorate$K([\n reactive$1()\n ], LegendLabel.prototype, \"formatter\", void 0);\n return LegendLabel;\n}(Observable$1));\nvar LegendMarker = /** @class */ (function (_super) {\n __extends$1x(LegendMarker, _super);\n function LegendMarker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.size = 15;\n /**\n * Padding between the marker and the label within each legend item.\n */\n _this.padding = 8;\n _this.strokeWidth = 1;\n return _this;\n }\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendMarker.prototype, \"size\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendMarker.prototype, \"shape\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendMarker.prototype, \"padding\", void 0);\n __decorate$K([\n reactive$1('change')\n ], LegendMarker.prototype, \"strokeWidth\", void 0);\n return LegendMarker;\n}(Observable$1));\nvar LegendItem = /** @class */ (function (_super) {\n __extends$1x(LegendItem, _super);\n function LegendItem() {\n var _this = _super.call(this) || this;\n _this.marker = new LegendMarker();\n _this.label = new LegendLabel();\n /**\n * The legend uses grid layout for its items, occupying as few columns as possible when positioned to left or right,\n * and as few rows as possible when positioned to top or bottom. This config specifies the amount of horizontal\n * padding between legend items.\n */\n _this.paddingX = 16;\n /**\n * The legend uses grid layout for its items, occupying as few columns as possible when positioned to left or right,\n * and as few rows as possible when positioned to top or bottom. This config specifies the amount of vertical\n * padding between legend items.\n */\n _this.paddingY = 8;\n var changeListener = function () { return _this.fireEvent({ type: 'change' }); };\n _this.marker.addEventListener('change', changeListener);\n _this.label.addEventListener('change', changeListener);\n var layoutChangeListener = function () { return _this.fireEvent({ type: 'layoutChange' }); };\n _this.marker.addEventListener('layoutChange', layoutChangeListener);\n _this.label.addEventListener('layoutChange', layoutChangeListener);\n return _this;\n }\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendItem.prototype, \"paddingX\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], LegendItem.prototype, \"paddingY\", void 0);\n return LegendItem;\n}(Observable$1));\nvar Legend = /** @class */ (function (_super) {\n __extends$1x(Legend, _super);\n function Legend() {\n var _this = _super.call(this) || this;\n _this.id = createId$1(_this);\n _this.group = new Group$1();\n _this.itemSelection = Selection$1.select(_this.group).selectAll();\n _this.oldSize = [0, 0];\n _this.item = new LegendItem();\n _this.data = [];\n _this.enabled = true;\n _this.orientation = LegendOrientation.Vertical;\n _this.position = LegendPosition.Right;\n /**\n * Spacing between the legend and the edge of the chart's element.\n */\n _this.spacing = 20;\n _this._size = [0, 0];\n _this.addPropertyListener('data', _this.onDataChange);\n _this.addPropertyListener('enabled', _this.onEnabledChange);\n _this.addPropertyListener('position', _this.onPositionChange);\n _this.item.marker.addPropertyListener('shape', _this.onMarkerShapeChange, _this);\n _this.addEventListener('change', _this.update);\n _this.item.addEventListener('change', function () { return _this.fireEvent({ type: 'change' }); });\n _this.item.addEventListener('layoutChange', function () { return _this.fireEvent({ type: 'layoutChange' }); });\n return _this;\n }\n Object.defineProperty(Legend.prototype, \"size\", {\n get: function () {\n return this._size;\n },\n enumerable: true,\n configurable: true\n });\n Legend.prototype.onDataChange = function (event) {\n this.group.visible = event.value.length > 0 && this.enabled;\n };\n Legend.prototype.onEnabledChange = function (event) {\n this.group.visible = event.value && this.data.length > 0;\n };\n Legend.prototype.onPositionChange = function (event) {\n switch (event.value) {\n case 'right':\n case 'left':\n this.orientation = LegendOrientation.Vertical;\n break;\n case 'bottom':\n case 'top':\n this.orientation = LegendOrientation.Horizontal;\n break;\n }\n };\n Legend.prototype.onMarkerShapeChange = function () {\n this.itemSelection = this.itemSelection.setData([]);\n this.itemSelection.exit.remove();\n if (this.group.scene) {\n this.group.scene.dirty = false;\n }\n };\n /**\n * The method is given the desired size of the legend, which only serves as a hint.\n * The vertically oriented legend will take as much horizontal space as needed, but will\n * respect the height constraints, and the horizontal legend will take as much vertical\n * space as needed in an attempt not to exceed the given width.\n * After the layout is done, the {@link size} will contain the actual size of the legend.\n * If the actual size is not the same as the previous actual size, the legend will fire\n * the 'layoutChange' event to communicate that another layout is needed, and the above\n * process should be repeated.\n * @param width\n * @param height\n */\n Legend.prototype.performLayout = function (width, height) {\n var item = this.item;\n var marker = item.marker, paddingX = item.paddingX, paddingY = item.paddingY;\n var updateSelection = this.itemSelection.setData(this.data, function (_, datum) {\n var MarkerShape = getMarker$1(marker.shape || datum.marker.shape);\n return datum.id + '-' + datum.itemId + '-' + MarkerShape.name;\n });\n updateSelection.exit.remove();\n var enterSelection = updateSelection.enter.append(MarkerLabel).each(function (node, datum) {\n var MarkerShape = getMarker$1(marker.shape || datum.marker.shape);\n node.marker = new MarkerShape();\n });\n var itemSelection = this.itemSelection = updateSelection.merge(enterSelection);\n var itemCount = itemSelection.size;\n // Update properties that affect the size of the legend items and measure them.\n var bboxes = [];\n var itemMarker = this.item.marker;\n var itemLabel = this.item.label;\n var maxCharCount = 25;\n var ellipsis = \"...\";\n itemSelection.each(function (markerLabel, datum) {\n // TODO: measure only when one of these properties or data change (in a separate routine)\n markerLabel.markerSize = itemMarker.size;\n markerLabel.spacing = itemMarker.padding;\n markerLabel.fontStyle = itemLabel.fontStyle;\n markerLabel.fontWeight = itemLabel.fontWeight;\n markerLabel.fontSize = itemLabel.fontSize;\n markerLabel.fontFamily = itemLabel.fontFamily;\n var text = datum.label.text;\n if (text.length > maxCharCount) {\n text = \"\" + text.substring(0, maxCharCount - ellipsis.length) + ellipsis;\n }\n markerLabel.text = text;\n bboxes.push(markerLabel.computeBBox());\n });\n var itemHeight = bboxes.length && bboxes[0].height;\n var rowCount = 0;\n var columnWidth = 0;\n var paddedItemsWidth = 0;\n var paddedItemsHeight = 0;\n width = Math.max(1, width);\n height = Math.max(1, height);\n switch (this.orientation) {\n case LegendOrientation.Horizontal:\n if (!(isFinite(width) && width > 0)) {\n return false;\n }\n rowCount = 0;\n var columnCount = 0;\n // Split legend items into columns until the width is suitable.\n do {\n var itemsWidth = 0;\n columnCount = 0;\n columnWidth = 0;\n rowCount++;\n var i = 0;\n while (i < itemCount) {\n var bbox = bboxes[i];\n if (bbox.width > columnWidth) {\n columnWidth = bbox.width;\n }\n i++;\n if (i % rowCount === 0) {\n itemsWidth += columnWidth;\n columnWidth = 0;\n columnCount++;\n }\n }\n if (i % rowCount !== 0) {\n itemsWidth += columnWidth;\n columnCount++;\n }\n paddedItemsWidth = itemsWidth + (columnCount - 1) * paddingX;\n } while (paddedItemsWidth > width && columnCount > 1);\n paddedItemsHeight = itemHeight * rowCount + (rowCount - 1) * paddingY;\n break;\n case LegendOrientation.Vertical:\n if (!(isFinite(height) && height > 0)) {\n return false;\n }\n rowCount = itemCount * 2;\n // Split legend items into columns until the height is suitable.\n do {\n rowCount = (rowCount >> 1) + (rowCount % 2);\n columnWidth = 0;\n var itemsWidth = 0;\n var itemsHeight = 0;\n var columnCount_1 = 0;\n var i = 0;\n while (i < itemCount) {\n var bbox = bboxes[i];\n if (!columnCount_1) {\n itemsHeight += bbox.height;\n }\n if (bbox.width > columnWidth) {\n columnWidth = bbox.width;\n }\n i++;\n if (i % rowCount === 0) {\n itemsWidth += columnWidth;\n columnWidth = 0;\n columnCount_1++;\n }\n }\n if (i % rowCount !== 0) {\n itemsWidth += columnWidth;\n columnCount_1++;\n }\n paddedItemsWidth = itemsWidth + (columnCount_1 - 1) * paddingX;\n paddedItemsHeight = itemsHeight + (rowCount - 1) * paddingY;\n } while (paddedItemsHeight > height && rowCount > 1);\n break;\n }\n // Top-left corner of the first legend item.\n var startX = (width - paddedItemsWidth) / 2;\n var startY = (height - paddedItemsHeight) / 2;\n var x = 0;\n var y = 0;\n columnWidth = 0;\n // Position legend items using the layout computed above.\n itemSelection.each(function (markerLabel, datum, i) {\n // Round off for pixel grid alignment to work properly.\n markerLabel.translationX = Math.floor(startX + x);\n markerLabel.translationY = Math.floor(startY + y);\n var bbox = bboxes[i];\n if (bbox.width > columnWidth) {\n columnWidth = bbox.width;\n }\n if ((i + 1) % rowCount === 0) {\n x += columnWidth + paddingX;\n y = 0;\n columnWidth = 0;\n }\n else {\n y += bbox.height + paddingY;\n }\n });\n // Update legend item properties that don't affect the layout.\n this.update();\n var size = this._size;\n var oldSize = this.oldSize;\n size[0] = paddedItemsWidth;\n size[1] = paddedItemsHeight;\n if (size[0] !== oldSize[0] || size[1] !== oldSize[1]) {\n oldSize[0] = size[0];\n oldSize[1] = size[1];\n }\n };\n Legend.prototype.update = function () {\n var _this = this;\n this.itemSelection.each(function (markerLabel, datum) {\n var marker = datum.marker;\n markerLabel.markerFill = marker.fill;\n markerLabel.markerStroke = marker.stroke;\n markerLabel.markerStrokeWidth = _this.item.marker.strokeWidth;\n markerLabel.markerFillOpacity = marker.fillOpacity;\n markerLabel.markerStrokeOpacity = marker.strokeOpacity;\n markerLabel.opacity = datum.enabled ? 1 : 0.5;\n markerLabel.color = _this.item.label.color;\n });\n };\n Legend.prototype.getDatumForPoint = function (x, y) {\n var node = this.group.pickNode(x, y);\n if (node && node.parent) {\n return node.parent.datum;\n }\n };\n Legend.className = 'Legend';\n __decorate$K([\n reactive$1('layoutChange')\n ], Legend.prototype, \"data\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], Legend.prototype, \"enabled\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], Legend.prototype, \"orientation\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], Legend.prototype, \"position\", void 0);\n __decorate$K([\n reactive$1('layoutChange')\n ], Legend.prototype, \"spacing\", void 0);\n return Legend;\n}(Observable$1));\n\nvar __values$6 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SizeMonitor = /** @class */ (function () {\n function SizeMonitor() {\n }\n SizeMonitor.init = function () {\n var _this = this;\n var NativeResizeObserver = window.ResizeObserver;\n if (NativeResizeObserver) {\n this.resizeObserver = new NativeResizeObserver(function (entries) {\n var e_1, _a;\n try {\n for (var entries_1 = __values$6(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n var _b = entry.contentRect, width = _b.width, height = _b.height;\n _this.checkSize(_this.elements.get(entry.target), entry.target, width, height);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n }\n else { // polyfill (more reliable even in browsers that support ResizeObserver)\n var step = function () {\n _this.elements.forEach(function (entry, element) {\n _this.checkClientSize(element, entry);\n });\n };\n window.setInterval(step, 100);\n }\n this.ready = true;\n };\n SizeMonitor.checkSize = function (entry, element, width, height) {\n if (entry) {\n if (!entry.size || width !== entry.size.width || height !== entry.size.height) {\n entry.size = { width: width, height: height };\n entry.cb(entry.size, element);\n }\n }\n };\n // Only a single callback is supported.\n SizeMonitor.observe = function (element, cb) {\n if (!this.ready) {\n this.init();\n }\n this.unobserve(element);\n if (this.resizeObserver) {\n this.resizeObserver.observe(element);\n }\n this.elements.set(element, { cb: cb });\n // Ensure first size callback happens synchronously.\n this.checkClientSize(element, { cb: cb });\n };\n SizeMonitor.unobserve = function (element) {\n if (this.resizeObserver) {\n this.resizeObserver.unobserve(element);\n }\n this.elements.delete(element);\n };\n SizeMonitor.checkClientSize = function (element, entry) {\n var width = element.clientWidth ? element.clientWidth : 0;\n var height = element.clientHeight ? element.clientHeight : 0;\n this.checkSize(entry, element, width, height);\n };\n SizeMonitor.elements = new Map();\n SizeMonitor.ready = false;\n return SizeMonitor;\n}());\n\nfunction circleRectOverlap(cx, cy, r, x, y, w, h) {\n // Find closest horizontal and vertical edges.\n var edgeX = cx < x ? x : cx > x + w ? x + w : cx;\n var edgeY = cy < y ? y : cy > y + h ? y + h : cy;\n // Find distance to closest edges.\n var dx = cx - edgeX;\n var dy = cy - edgeY;\n var d = Math.sqrt((dx * dx) + (dy * dy));\n return d <= r;\n}\nfunction rectRectOverlap(x1, y1, w1, h1, x2, y2, w2, h2) {\n var xOverlap = (x1 + w1) > x2 && x1 < (x2 + w2);\n var yOverlap = (y1 + h1) > y2 && y1 < (y2 + h2);\n return xOverlap && yOverlap;\n}\nfunction rectContainsRect(r1x, r1y, r1w, r1h, r2x, r2y, r2w, r2h) {\n return (r2x + r2w) < (r1x + r1w) && (r2x) > (r1x) && (r2y) > (r1y) && (r2y + r2h) < (r1y + r1h);\n}\n/**\n * @param data Points and labels for one or more series. The order of series determines label placement precedence.\n * @param bounds Bounds to fit the labels into. If a label can't be fully contained, it doesn't fit.\n * @returns Placed labels for the given series (in the given order).\n */\nfunction placeLabels(data, bounds, padding) {\n if (padding === void 0) { padding = 5; }\n var result = [];\n data = data.map(function (d) { return d.slice().sort(function (a, b) { return b.size - a.size; }); });\n for (var j = 0; j < data.length; j++) {\n var labels = result[j] = [];\n var datum = data[j];\n if (!(datum && datum.length && datum[0].label)) {\n continue;\n }\n var _loop_1 = function (i, ln) {\n var d = datum[i];\n var l = d.label;\n var r = d.size * 0.5;\n var x = d.point.x - l.width * 0.5;\n var y = d.point.y - r - l.height - padding;\n var width = l.width, height = l.height;\n var withinBounds = !bounds || rectContainsRect(bounds.x, bounds.y, bounds.width, bounds.height, x, y, width, height);\n if (!withinBounds) {\n return \"continue\";\n }\n var overlapPoints = data.some(function (datum) { return datum.some(function (d) { return circleRectOverlap(d.point.x, d.point.y, d.size * 0.5, x, y, width, height); }); });\n if (overlapPoints) {\n return \"continue\";\n }\n var overlapLabels = result.some(function (labels) { return labels.some(function (l) { return rectRectOverlap(l.x, l.y, l.width, l.height, x, y, width, height); }); });\n if (overlapLabels) {\n return \"continue\";\n }\n labels.push({\n index: i,\n text: l.text,\n x: x,\n y: y,\n width: width,\n height: height\n });\n };\n for (var i = 0, ln = datum.length; i < ln; i++) {\n _loop_1(i, ln);\n }\n }\n return result;\n}\n\nvar __extends$1y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$7 = (undefined && undefined.__assign) || function () {\n __assign$7 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$7.apply(this, arguments);\n};\nvar __decorate$L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$7 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar defaultTooltipCss$1 = \"\\n.ag-chart-tooltip {\\n display: table;\\n position: absolute;\\n user-select: none;\\n pointer-events: none;\\n white-space: nowrap;\\n z-index: 99999;\\n font: 12px Verdana, sans-serif;\\n color: black;\\n background: rgb(244, 244, 244);\\n border-radius: 5px;\\n box-shadow: 0 0 1px rgba(3, 3, 3, 0.7), 0.5vh 0.5vh 1vh rgba(3, 3, 3, 0.25);\\n}\\n\\n.ag-chart-tooltip-hidden {\\n top: -10000px !important;\\n}\\n\\n.ag-chart-tooltip-title {\\n font-weight: bold;\\n padding: 7px;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n color: white;\\n background-color: #888888;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n}\\n\\n.ag-chart-tooltip-content {\\n padding: 7px;\\n line-height: 1.7em;\\n border-bottom-left-radius: 5px;\\n border-bottom-right-radius: 5px;\\n overflow: hidden;\\n}\\n\\n.ag-chart-tooltip-content:empty {\\n padding: 0;\\n height: 7px;\\n}\\n\\n.ag-chart-tooltip-arrow::before {\\n content: \\\"\\\";\\n\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n\\n border: 6px solid #989898;\\n\\n border-left-color: transparent;\\n border-right-color: transparent;\\n border-top-color: #989898;\\n border-bottom-color: transparent;\\n\\n width: 0;\\n height: 0;\\n\\n margin: 0 auto;\\n}\\n\\n.ag-chart-tooltip-arrow::after {\\n content: \\\"\\\";\\n\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n\\n border: 5px solid black;\\n\\n border-left-color: transparent;\\n border-right-color: transparent;\\n border-top-color: rgb(244, 244, 244);\\n border-bottom-color: transparent;\\n\\n width: 0;\\n height: 0;\\n\\n margin: 0 auto;\\n}\\n\\n.ag-chart-wrapper {\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\";\nfunction toTooltipHtml$1(input, defaults) {\n if (typeof input === 'string') {\n return input;\n }\n defaults = defaults || {};\n var _a = input.content, content = _a === void 0 ? defaults.content || '' : _a, _b = input.title, title = _b === void 0 ? defaults.title || undefined : _b, _c = input.color, color = _c === void 0 ? defaults.color || 'white' : _c, _d = input.backgroundColor, backgroundColor = _d === void 0 ? defaults.backgroundColor || '#888' : _d;\n var titleHtml = title ? \"
\" + title + \"
\" : '';\n return titleHtml + \"
\" + content + \"
\";\n}\nvar ChartTooltip = /** @class */ (function (_super) {\n __extends$1y(ChartTooltip, _super);\n function ChartTooltip(chart, document) {\n var _this = _super.call(this) || this;\n _this.enabled = true;\n _this.class = Chart.defaultTooltipClass;\n _this.delay = 0;\n /**\n * If `true`, the tooltip will be shown for the marker closest to the mouse cursor.\n * Only has effect on series with markers.\n */\n _this.tracking = true;\n _this.showTimeout = 0;\n _this.constrained = false;\n _this.chart = chart;\n _this.class = '';\n var tooltipRoot = document.body;\n var element = document.createElement('div');\n _this.element = tooltipRoot.appendChild(element);\n // Detect when the chart becomes invisible and hide the tooltip as well.\n if (window.IntersectionObserver) {\n var target_1 = _this.chart.scene.canvas.element;\n var observer = new IntersectionObserver(function (entries) {\n var e_1, _a;\n try {\n for (var entries_1 = __values$7(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n if (entry.target === target_1 && entry.intersectionRatio === 0) {\n _this.toggle(false);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, { root: tooltipRoot });\n observer.observe(target_1);\n _this.observer = observer;\n }\n return _this;\n }\n ChartTooltip.prototype.destroy = function () {\n var parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n if (this.observer) {\n this.observer.unobserve(this.chart.scene.canvas.element);\n }\n };\n ChartTooltip.prototype.isVisible = function () {\n var element = this.element;\n if (element.classList) { // if not IE11\n return !element.classList.contains(Chart.defaultTooltipClass + '-hidden');\n }\n // IE11 part.\n var classes = element.getAttribute('class');\n if (classes) {\n return classes.split(' ').indexOf(Chart.defaultTooltipClass + '-hidden') < 0;\n }\n return false;\n };\n ChartTooltip.prototype.updateClass = function (visible, constrained) {\n var classList = [Chart.defaultTooltipClass, this.class];\n if (visible !== true) {\n classList.push(Chart.defaultTooltipClass + \"-hidden\");\n }\n if (constrained !== true) {\n classList.push(Chart.defaultTooltipClass + \"-arrow\");\n }\n this.element.setAttribute('class', classList.join(' '));\n };\n /**\n * Shows tooltip at the given event's coordinates.\n * If the `html` parameter is missing, moves the existing tooltip to the new position.\n */\n ChartTooltip.prototype.show = function (meta, html, instantly) {\n var _this = this;\n if (instantly === void 0) { instantly = false; }\n var el = this.element;\n if (html !== undefined) {\n el.innerHTML = html;\n }\n else if (!el.innerHTML) {\n return;\n }\n var left = meta.pageX - el.clientWidth / 2;\n var top = meta.pageY - el.clientHeight - 8;\n this.constrained = false;\n if (this.chart.container) {\n var tooltipRect = el.getBoundingClientRect();\n var minLeft = 0;\n var maxLeft = window.innerWidth - tooltipRect.width - 1;\n if (left < minLeft) {\n left = minLeft;\n this.updateClass(true, this.constrained = true);\n }\n else if (left > maxLeft) {\n left = maxLeft;\n this.updateClass(true, this.constrained = true);\n }\n if (top < window.pageYOffset) {\n top = meta.pageY + 20;\n this.updateClass(true, this.constrained = true);\n }\n }\n el.style.left = Math.round(left) + \"px\";\n el.style.top = Math.round(top) + \"px\";\n if (this.delay > 0 && !instantly) {\n this.toggle(false);\n this.showTimeout = window.setTimeout(function () {\n _this.toggle(true);\n }, this.delay);\n return;\n }\n this.toggle(true);\n };\n ChartTooltip.prototype.toggle = function (visible) {\n if (!visible) {\n window.clearTimeout(this.showTimeout);\n if (this.chart.lastPick && !this.delay) {\n this.chart.dehighlightDatum();\n this.chart.lastPick = undefined;\n }\n }\n this.updateClass(visible, this.constrained);\n };\n __decorate$L([\n reactive$1()\n ], ChartTooltip.prototype, \"enabled\", void 0);\n __decorate$L([\n reactive$1()\n ], ChartTooltip.prototype, \"class\", void 0);\n __decorate$L([\n reactive$1()\n ], ChartTooltip.prototype, \"delay\", void 0);\n __decorate$L([\n reactive$1()\n ], ChartTooltip.prototype, \"tracking\", void 0);\n return ChartTooltip;\n}(Observable$1));\nvar Chart = /** @class */ (function (_super) {\n __extends$1y(Chart, _super);\n function Chart(document) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this) || this;\n _this.id = createId$1(_this);\n _this.background = new Rect();\n _this.legend = new Legend();\n _this.legendAutoPadding = new Padding$1();\n _this.captionAutoPadding = 0; // top padding only\n _this._container = undefined;\n _this._data = [];\n _this._autoSize = false;\n _this.padding = new Padding$1(20);\n _this._axes = [];\n _this._series = [];\n _this._axesChanged = false;\n _this._seriesChanged = false;\n _this.layoutCallbackId = 0;\n _this._performLayout = function () {\n _this.layoutCallbackId = 0;\n _this.background.width = _this.width;\n _this.background.height = _this.height;\n _this.performLayout();\n if (!_this.layoutPending) {\n _this.fireEvent({ type: 'layoutDone' });\n }\n };\n _this.dataCallbackId = 0;\n _this.nodeData = new Map();\n _this.updateCallbackId = 0;\n _this.legendBBox = new BBox$1(0, 0, 0, 0);\n _this._onMouseDown = _this.onMouseDown.bind(_this);\n _this._onMouseMove = _this.onMouseMove.bind(_this);\n _this._onMouseUp = _this.onMouseUp.bind(_this);\n _this._onMouseOut = _this.onMouseOut.bind(_this);\n _this._onClick = _this.onClick.bind(_this);\n _this.pointerInsideLegend = false;\n _this.pointerOverLegendDatum = false;\n var root = new Group$1();\n var background = _this.background;\n background.fill = 'white';\n root.appendChild(background);\n var element = _this._element = document.createElement('div');\n element.setAttribute('class', 'ag-chart-wrapper');\n var scene = new Scene$1(document);\n _this.scene = scene;\n _this.autoSize = true; // Triggers width/height calc - needs to happen before root group assignment.\n scene.root = root;\n scene.container = element;\n _this.padding.addEventListener('layoutChange', _this.scheduleLayout, _this);\n var legend = _this.legend;\n legend.addEventListener('layoutChange', _this.scheduleLayout, _this);\n legend.item.label.addPropertyListener('formatter', _this.updateLegend, _this);\n legend.addPropertyListener('position', _this.onLegendPositionChange, _this);\n _this.tooltip = new ChartTooltip(_this, document);\n _this.tooltip.addPropertyListener('class', function () { return _this.tooltip.toggle(); });\n if (Chart.tooltipDocuments.indexOf(document) < 0) {\n var styleElement = document.createElement('style');\n styleElement.innerHTML = defaultTooltipCss$1;\n // Make sure the default tooltip style goes before other styles so it can be overridden.\n document.head.insertBefore(styleElement, document.head.querySelector('style'));\n Chart.tooltipDocuments.push(document);\n }\n _this.setupDomListeners(scene.canvas.element);\n _this.addPropertyListener('title', _this.onCaptionChange);\n _this.addPropertyListener('subtitle', _this.onCaptionChange);\n _this.addEventListener('layoutChange', _this.scheduleLayout);\n return _this;\n }\n Object.defineProperty(Chart.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n var parentNode = this.element.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.element);\n }\n if (value) {\n value.appendChild(this.element);\n }\n this._container = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (data) {\n this._data = data;\n this.series.forEach(function (series) { return series.data = data; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"width\", {\n get: function () {\n return this.scene.width;\n },\n set: function (value) {\n this.autoSize = false;\n if (this.width !== value) {\n this.scene.resize(value, this.height);\n this.fireEvent({ type: 'layoutChange' });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"height\", {\n get: function () {\n return this.scene.height;\n },\n set: function (value) {\n this.autoSize = false;\n if (this.height !== value) {\n this.scene.resize(this.width, value);\n this.fireEvent({ type: 'layoutChange' });\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"autoSize\", {\n get: function () {\n return this._autoSize;\n },\n set: function (value) {\n if (this._autoSize !== value) {\n this._autoSize = value;\n var style = this.element.style;\n if (value) {\n var chart_1 = this; // capture `this` for IE11\n SizeMonitor.observe(this.element, function (size) {\n if (size.width !== chart_1.width || size.height !== chart_1.height) {\n chart_1.scene.resize(size.width, size.height);\n chart_1.fireEvent({ type: 'layoutChange' });\n }\n });\n style.display = 'block';\n style.width = '100%';\n style.height = '100%';\n }\n else {\n SizeMonitor.unobserve(this.element);\n style.display = 'inline-block';\n style.width = 'auto';\n style.height = 'auto';\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.download = function (fileName) {\n this.scene.download(fileName);\n };\n Chart.prototype.destroy = function () {\n this.tooltip.destroy();\n SizeMonitor.unobserve(this.element);\n this.container = undefined;\n this.cleanupDomListeners(this.scene.canvas.element);\n this.scene.container = undefined;\n };\n Chart.prototype.onLegendPositionChange = function () {\n this.legendAutoPadding.clear();\n this.layoutPending = true;\n };\n Chart.prototype.onCaptionChange = function (event) {\n var value = event.value, oldValue = event.oldValue;\n if (oldValue) {\n oldValue.removeEventListener('change', this.scheduleLayout, this);\n this.scene.root.removeChild(oldValue.node);\n }\n if (value) {\n value.addEventListener('change', this.scheduleLayout, this);\n this.scene.root.appendChild(value.node);\n }\n };\n Object.defineProperty(Chart.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"axes\", {\n get: function () {\n return this._axes;\n },\n set: function (values) {\n var _this = this;\n this._axes.forEach(function (axis) { return _this.detachAxis(axis); });\n // make linked axes go after the regular ones (simulates stable sort by `linkedTo` property)\n this._axes = values.filter(function (a) { return !a.linkedTo; }).concat(values.filter(function (a) { return a.linkedTo; }));\n this._axes.forEach(function (axis) { return _this.attachAxis(axis); });\n this.axesChanged = true;\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.attachAxis = function (axis) {\n this.scene.root.insertBefore(axis.group, this.seriesRoot);\n };\n Chart.prototype.detachAxis = function (axis) {\n this.scene.root.removeChild(axis.group);\n };\n Object.defineProperty(Chart.prototype, \"series\", {\n get: function () {\n return this._series;\n },\n set: function (values) {\n var _this = this;\n this.removeAllSeries();\n values.forEach(function (series) { return _this.addSeries(series); });\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.scheduleLayout = function () {\n this.layoutPending = true;\n };\n Chart.prototype.scheduleData = function () {\n // To prevent the chart from thinking the cursor is over the same node\n // after a change to data (the nodes are reused on data changes).\n this.dehighlightDatum();\n this.dataPending = true;\n };\n Chart.prototype.addSeries = function (series, before) {\n var _a = this, allSeries = _a.series, seriesRoot = _a.seriesRoot;\n var canAdd = allSeries.indexOf(series) < 0;\n if (canAdd) {\n var beforeIndex = before ? allSeries.indexOf(before) : -1;\n if (beforeIndex >= 0) {\n allSeries.splice(beforeIndex, 0, series);\n seriesRoot.insertBefore(series.group, before.group);\n }\n else {\n allSeries.push(series);\n seriesRoot.append(series.group);\n }\n this.initSeries(series);\n this.seriesChanged = true;\n this.axesChanged = true;\n return true;\n }\n return false;\n };\n Chart.prototype.initSeries = function (series) {\n series.chart = this;\n if (!series.data) {\n series.data = this.data;\n }\n series.addEventListener('layoutChange', this.scheduleLayout, this);\n series.addEventListener('dataChange', this.scheduleData, this);\n series.addEventListener('legendChange', this.updateLegend, this);\n series.addEventListener('nodeClick', this.onSeriesNodeClick, this);\n };\n Chart.prototype.freeSeries = function (series) {\n series.chart = undefined;\n series.removeEventListener('layoutChange', this.scheduleLayout, this);\n series.removeEventListener('dataChange', this.scheduleData, this);\n series.removeEventListener('legendChange', this.updateLegend, this);\n series.removeEventListener('nodeClick', this.onSeriesNodeClick, this);\n };\n Chart.prototype.addSeriesAfter = function (series, after) {\n var _a = this, allSeries = _a.series, seriesRoot = _a.seriesRoot;\n var canAdd = allSeries.indexOf(series) < 0;\n if (canAdd) {\n var afterIndex = after ? this.series.indexOf(after) : -1;\n if (afterIndex >= 0) {\n if (afterIndex + 1 < allSeries.length) {\n seriesRoot.insertBefore(series.group, allSeries[afterIndex + 1].group);\n }\n else {\n seriesRoot.append(series.group);\n }\n this.initSeries(series);\n allSeries.splice(afterIndex + 1, 0, series);\n }\n else {\n if (allSeries.length > 0) {\n seriesRoot.insertBefore(series.group, allSeries[0].group);\n }\n else {\n seriesRoot.append(series.group);\n }\n this.initSeries(series);\n allSeries.unshift(series);\n }\n this.seriesChanged = true;\n this.axesChanged = true;\n }\n return false;\n };\n Chart.prototype.removeSeries = function (series) {\n var index = this.series.indexOf(series);\n if (index >= 0) {\n this.series.splice(index, 1);\n this.freeSeries(series);\n this.seriesRoot.removeChild(series.group);\n this.seriesChanged = true;\n return true;\n }\n return false;\n };\n Chart.prototype.removeAllSeries = function () {\n var _this = this;\n this.series.forEach(function (series) {\n _this.freeSeries(series);\n _this.seriesRoot.removeChild(series.group);\n });\n this._series = []; // using `_series` instead of `series` to prevent infinite recursion\n this.seriesChanged = true;\n };\n Chart.prototype.assignSeriesToAxes = function () {\n var _this = this;\n this.axes.forEach(function (axis) {\n var axisName = axis.direction + 'Axis';\n var boundSeries = [];\n _this.series.forEach(function (series) {\n if (series[axisName] === axis) {\n boundSeries.push(series);\n }\n });\n axis.boundSeries = boundSeries;\n });\n this.seriesChanged = false;\n };\n Chart.prototype.assignAxesToSeries = function (force) {\n var _this = this;\n if (force === void 0) { force = false; }\n // This method has to run before `assignSeriesToAxes`.\n var directionToAxesMap = {};\n this.axes.forEach(function (axis) {\n var direction = axis.direction;\n var directionAxes = directionToAxesMap[direction] || (directionToAxesMap[direction] = []);\n directionAxes.push(axis);\n });\n this.series.forEach(function (series) {\n series.directions.forEach(function (direction) {\n var axisName = direction + 'Axis';\n if (!series[axisName] || force) {\n var directionAxes = directionToAxesMap[direction];\n if (directionAxes) {\n var axis = _this.findMatchingAxis(directionAxes, series.getKeys(direction));\n if (axis) {\n series[axisName] = axis;\n }\n }\n }\n });\n });\n this.axesChanged = false;\n };\n Chart.prototype.findMatchingAxis = function (directionAxes, directionKeys) {\n for (var i = 0; i < directionAxes.length; i++) {\n var axis = directionAxes[i];\n var axisKeys = axis.keys;\n if (!axisKeys.length) {\n return axis;\n }\n else if (directionKeys) {\n for (var j = 0; j < directionKeys.length; j++) {\n if (axisKeys.indexOf(directionKeys[j]) >= 0) {\n return axis;\n }\n }\n }\n }\n };\n Object.defineProperty(Chart.prototype, \"axesChanged\", {\n get: function () {\n return this._axesChanged;\n },\n set: function (value) {\n this._axesChanged = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"seriesChanged\", {\n get: function () {\n return this._seriesChanged;\n },\n set: function (value) {\n this._seriesChanged = value;\n if (value) {\n this.dataPending = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"layoutPending\", {\n /**\n * Only `true` while we are waiting for the layout to start.\n * This will be `false` if the layout has already started and is ongoing.\n */\n get: function () {\n return !!this.layoutCallbackId;\n },\n set: function (value) {\n if (value) {\n if (!(this.layoutCallbackId || this.dataPending)) {\n this.layoutCallbackId = requestAnimationFrame(this._performLayout);\n this.series.forEach(function (s) { return s.nodeDataPending = true; });\n }\n }\n else if (this.layoutCallbackId) {\n cancelAnimationFrame(this.layoutCallbackId);\n this.layoutCallbackId = 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"dataPending\", {\n get: function () {\n return !!this.dataCallbackId;\n },\n set: function (value) {\n var _this = this;\n if (this.dataCallbackId) {\n clearTimeout(this.dataCallbackId);\n this.dataCallbackId = 0;\n }\n if (value) {\n this.dataCallbackId = window.setTimeout(function () {\n _this.dataPending = false;\n _this.processData();\n }, 0);\n }\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.processData = function () {\n this.layoutPending = false;\n if (this.axesChanged) {\n this.assignAxesToSeries(true);\n this.assignSeriesToAxes();\n }\n if (this.seriesChanged) {\n this.assignSeriesToAxes();\n }\n this.series.forEach(function (s) { return s.processData(); });\n this.updateLegend(); // sets legend data which schedules a layout\n this.layoutPending = true;\n };\n Chart.prototype.createNodeData = function () {\n var _this = this;\n this.nodeData.clear();\n this.series.forEach(function (s) {\n var data = s.visible ? s.createNodeData() : [];\n _this.nodeData.set(s, data);\n });\n };\n Chart.prototype.placeLabels = function () {\n var series = [];\n var data = [];\n this.nodeData.forEach(function (d, s) {\n if (s.visible && s.label.enabled) {\n series.push(s);\n data.push(s.getLabelData());\n }\n });\n var seriesRect = this.seriesRect;\n var labels = seriesRect\n ? placeLabels(data, { x: 0, y: 0, width: seriesRect.width, height: seriesRect.height })\n : [];\n return new Map(labels.map(function (l, i) { return [series[i], l]; }));\n };\n Chart.prototype.updateLegend = function () {\n var legendData = [];\n this.series.filter(function (s) { return s.showInLegend; }).forEach(function (series) { return series.listSeriesItems(legendData); });\n var formatter = this.legend.item.label.formatter;\n if (formatter) {\n legendData.forEach(function (datum) { return datum.label.text = formatter({\n id: datum.id,\n itemId: datum.itemId,\n value: datum.label.text\n }); });\n }\n this.legend.data = legendData;\n };\n Object.defineProperty(Chart.prototype, \"updatePending\", {\n get: function () {\n return !!this.updateCallbackId;\n },\n set: function (value) {\n var _this = this;\n if (this.updateCallbackId) {\n clearTimeout(this.updateCallbackId);\n this.updateCallbackId = 0;\n }\n if (value && !this.layoutPending) {\n this.updateCallbackId = window.setTimeout(function () {\n _this.update();\n }, 0);\n }\n },\n enumerable: true,\n configurable: true\n });\n Chart.prototype.update = function () {\n this.updatePending = false;\n this.series.forEach(function (series) {\n if (series.updatePending) {\n series.update();\n }\n });\n };\n Chart.prototype.positionCaptions = function () {\n var _a = this, title = _a.title, subtitle = _a.subtitle;\n var titleVisible = false;\n var subtitleVisible = false;\n var spacing = 10;\n var paddingTop = spacing;\n if (title && title.enabled) {\n title.node.x = this.width / 2;\n title.node.y = paddingTop;\n titleVisible = true;\n var titleBBox = title.node.computeBBox(); // make sure to set node's x/y, then computeBBox\n if (titleBBox) {\n paddingTop = titleBBox.y + titleBBox.height;\n }\n if (subtitle && subtitle.enabled) {\n subtitle.node.x = this.width / 2;\n subtitle.node.y = paddingTop + spacing;\n subtitleVisible = true;\n var subtitleBBox = subtitle.node.computeBBox();\n if (subtitleBBox) {\n paddingTop = subtitleBBox.y + subtitleBBox.height;\n }\n }\n }\n if (title) {\n title.node.visible = titleVisible;\n }\n if (subtitle) {\n subtitle.node.visible = subtitleVisible;\n }\n this.captionAutoPadding = Math.floor(paddingTop);\n };\n Chart.prototype.positionLegend = function () {\n if (!this.legend.enabled || !this.legend.data.length) {\n return;\n }\n var _a = this, legend = _a.legend, captionAutoPadding = _a.captionAutoPadding, legendAutoPadding = _a.legendAutoPadding;\n var width = this.width;\n var height = this.height - captionAutoPadding;\n var legendGroup = legend.group;\n var legendSpacing = legend.spacing;\n var translationX = 0;\n var translationY = 0;\n var legendBBox;\n switch (legend.position) {\n case 'bottom':\n legend.performLayout(width - legendSpacing * 2, 0);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.height < Math.floor((height * 0.5)); // Remove legend if it takes up more than 50% of the chart height.\n if (legendGroup.visible) {\n translationX = (width - legendBBox.width) / 2 - legendBBox.x;\n translationY = captionAutoPadding + height - legendBBox.height - legendBBox.y - legendSpacing;\n legendAutoPadding.bottom = legendBBox.height;\n }\n else {\n legendAutoPadding.bottom = 0;\n }\n break;\n case 'top':\n legend.performLayout(width - legendSpacing * 2, 0);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.height < Math.floor((height * 0.5));\n if (legendGroup.visible) {\n translationX = (width - legendBBox.width) / 2 - legendBBox.x;\n translationY = captionAutoPadding + legendSpacing - legendBBox.y;\n legendAutoPadding.top = legendBBox.height;\n }\n else {\n legendAutoPadding.top = 0;\n }\n break;\n case 'left':\n legend.performLayout(0, height - legendSpacing * 2);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.width < Math.floor((width * 0.5)); // Remove legend if it takes up more than 50% of the chart width.\n if (legendGroup.visible) {\n translationX = legendSpacing - legendBBox.x;\n translationY = captionAutoPadding + (height - legendBBox.height) / 2 - legendBBox.y;\n legendAutoPadding.left = legendBBox.width;\n }\n else {\n legendAutoPadding.left = 0;\n }\n break;\n default: // case 'right':\n legend.performLayout(0, height - legendSpacing * 2);\n legendBBox = legendGroup.computeBBox();\n legendGroup.visible = legendBBox.width < Math.floor((width * 0.5));\n if (legendGroup.visible) {\n translationX = width - legendBBox.width - legendBBox.x - legendSpacing;\n translationY = captionAutoPadding + (height - legendBBox.height) / 2 - legendBBox.y;\n legendAutoPadding.right = legendBBox.width;\n }\n else {\n legendAutoPadding.right = 0;\n }\n break;\n }\n if (legendGroup.visible) {\n // Round off for pixel grid alignment to work properly.\n legendGroup.translationX = Math.floor(translationX + legendGroup.translationX);\n legendGroup.translationY = Math.floor(translationY + legendGroup.translationY);\n this.legendBBox = legendGroup.computeBBox();\n }\n };\n Chart.prototype.setupDomListeners = function (chartElement) {\n chartElement.addEventListener('mousedown', this._onMouseDown);\n chartElement.addEventListener('mousemove', this._onMouseMove);\n chartElement.addEventListener('mouseup', this._onMouseUp);\n chartElement.addEventListener('mouseout', this._onMouseOut);\n chartElement.addEventListener('click', this._onClick);\n };\n Chart.prototype.cleanupDomListeners = function (chartElement) {\n chartElement.removeEventListener('mousedown', this._onMouseDown);\n chartElement.removeEventListener('mousemove', this._onMouseMove);\n chartElement.removeEventListener('mouseup', this._onMouseUp);\n chartElement.removeEventListener('mouseout', this._onMouseOut);\n chartElement.removeEventListener('click', this._onClick);\n };\n Chart.prototype.getSeriesRect = function () {\n return this.seriesRect;\n };\n // x/y are local canvas coordinates in CSS pixels, not actual pixels\n Chart.prototype.pickSeriesNode = function (x, y) {\n if (!(this.seriesRect && this.seriesRect.containsPoint(x, y))) {\n return undefined;\n }\n var allSeries = this.series;\n var node = undefined;\n for (var i = allSeries.length - 1; i >= 0; i--) {\n var series = allSeries[i];\n if (!series.visible || !series.group.visible) {\n continue;\n }\n node = series.pickGroup.pickNode(x, y);\n if (node) {\n return {\n series: series,\n node: node\n };\n }\n }\n };\n // Provided x/y are in canvas coordinates.\n Chart.prototype.pickClosestSeriesNodeDatum = function (x, y) {\n if (!this.seriesRect || !this.seriesRect.containsPoint(x, y)) {\n return undefined;\n }\n var allSeries = this.series;\n function getDistance(p1, p2) {\n return Math.sqrt(Math.pow((p1.x - p2.x), 2) + Math.pow((p1.y - p2.y), 2));\n }\n var minDistance = Infinity;\n var closestDatum;\n var _loop_1 = function (i) {\n var series = allSeries[i];\n if (!series.visible || !series.group.visible) {\n return \"continue\";\n }\n var hitPoint = series.group.transformPoint(x, y);\n series.getNodeData().forEach(function (datum) {\n var _a, _b;\n if (!datum.point) {\n return;\n }\n // Ignore off-screen points when finding the closest series node datum in tracking mode.\n var xAxis = series.xAxis, yAxis = series.yAxis;\n var isInRange = ((_a = xAxis) === null || _a === void 0 ? void 0 : _a.inRange(datum.point.x)) && ((_b = yAxis) === null || _b === void 0 ? void 0 : _b.inRange(datum.point.y));\n if (!isInRange) {\n return;\n }\n var distance = getDistance(hitPoint, datum.point);\n if (distance < minDistance) {\n minDistance = distance;\n closestDatum = datum;\n }\n });\n };\n for (var i = allSeries.length - 1; i >= 0; i--) {\n _loop_1(i);\n }\n return closestDatum;\n };\n Chart.prototype.onMouseMove = function (event) {\n this.handleLegendMouseMove(event);\n if (this.tooltip.enabled) {\n if (this.tooltip.delay > 0) {\n this.tooltip.toggle(false);\n }\n this.handleTooltip(event);\n }\n };\n Chart.prototype.handleTooltip = function (event) {\n var _a = this, lastPick = _a.lastPick, tooltipTracking = _a.tooltip.tracking;\n var offsetX = event.offsetX, offsetY = event.offsetY;\n var pick = this.pickSeriesNode(offsetX, offsetY);\n var nodeDatum;\n if (pick && pick.node instanceof Shape$1) {\n var node = pick.node;\n nodeDatum = node.datum;\n if (lastPick && lastPick.datum === nodeDatum) {\n lastPick.node = node;\n lastPick.event = event;\n }\n // Marker nodes will have the `point` info in their datums.\n // Highlight if not a marker node or, if not in the tracking mode, highlight markers too.\n if ((!node.datum.point || !tooltipTracking)) {\n if (!lastPick // cursor moved from empty space to a node\n || lastPick.node !== node) { // cursor moved from one node to another\n this.onSeriesDatumPick(event, node.datum, node, event);\n }\n else if (pick.series.tooltip.enabled) { // cursor moved within the same node\n this.tooltip.show(event);\n }\n // A non-marker node (takes precedence over marker nodes) was highlighted.\n // Or we are not in the tracking mode.\n // Either way, we are done at this point.\n return;\n }\n }\n var hideTooltip = false;\n // In tracking mode a tooltip is shown for the closest rendered datum.\n // This makes it easier to show tooltips when markers are small and/or plentiful\n // and also gives the ability to show tooltips even when the series were configured\n // to not render markers.\n if (tooltipTracking) {\n var closestDatum = this.pickClosestSeriesNodeDatum(offsetX, offsetY);\n if (closestDatum && closestDatum.point) {\n var _b = closestDatum.point, x = _b.x, y = _b.y;\n var canvas = this.scene.canvas;\n var point = closestDatum.series.group.inverseTransformPoint(x, y);\n var canvasRect = canvas.element.getBoundingClientRect();\n this.onSeriesDatumPick({\n pageX: Math.round(canvasRect.left + window.pageXOffset + point.x),\n pageY: Math.round(canvasRect.top + window.pageYOffset + point.y)\n }, closestDatum, nodeDatum === closestDatum && pick ? pick.node : undefined, event);\n }\n else {\n hideTooltip = true;\n }\n }\n if (lastPick && (hideTooltip || !tooltipTracking)) {\n // Cursor moved from a non-marker node to empty space.\n this.dehighlightDatum();\n this.tooltip.toggle(false);\n this.lastPick = undefined;\n }\n };\n Chart.prototype.onMouseDown = function (event) { };\n Chart.prototype.onMouseUp = function (event) { };\n Chart.prototype.onMouseOut = function (event) {\n this.tooltip.toggle(false);\n };\n Chart.prototype.onClick = function (event) {\n if (this.checkSeriesNodeClick()) {\n return;\n }\n if (this.checkLegendClick(event)) {\n return;\n }\n this.fireEvent({\n type: 'click',\n event: event\n });\n };\n Chart.prototype.checkSeriesNodeClick = function () {\n var lastPick = this.lastPick;\n if (lastPick && lastPick.event && lastPick.node) {\n var event_1 = lastPick.event, datum = lastPick.datum;\n datum.series.fireNodeClickEvent(event_1, datum);\n return true;\n }\n return false;\n };\n Chart.prototype.onSeriesNodeClick = function (event) {\n this.fireEvent(__assign$7(__assign$7({}, event), { type: 'seriesNodeClick' }));\n };\n Chart.prototype.checkLegendClick = function (event) {\n var datum = this.legend.getDatumForPoint(event.offsetX, event.offsetY);\n if (datum) {\n var id_1 = datum.id, itemId = datum.itemId, enabled = datum.enabled;\n var series = find(this.series, function (series) { return series.id === id_1; });\n if (series) {\n series.toggleSeriesItem(itemId, !enabled);\n if (enabled) {\n this.tooltip.toggle(false);\n }\n this.legend.fireEvent({\n type: 'click',\n event: event,\n itemId: itemId,\n enabled: !enabled\n });\n return true;\n }\n }\n return false;\n };\n Chart.prototype.handleLegendMouseMove = function (event) {\n if (!this.legend.enabled) {\n return;\n }\n var offsetX = event.offsetX, offsetY = event.offsetY;\n var datum = this.legend.getDatumForPoint(offsetX, offsetY);\n var pointerInsideLegend = this.legendBBox.containsPoint(offsetX, offsetY);\n var pointerOverLegendDatum = pointerInsideLegend && datum !== undefined;\n if (!pointerInsideLegend && this.pointerInsideLegend) {\n this.pointerInsideLegend = false;\n this.element.style.cursor = 'default';\n // Dehighlight if the pointer was inside the legend and is now leaving it.\n this.dehighlightDatum();\n return;\n }\n if (pointerOverLegendDatum && !this.pointerOverLegendDatum) {\n this.element.style.cursor = 'pointer';\n }\n if (!pointerOverLegendDatum && this.pointerOverLegendDatum) {\n this.element.style.cursor = 'default';\n }\n this.pointerInsideLegend = pointerInsideLegend;\n this.pointerOverLegendDatum = pointerOverLegendDatum;\n var oldHighlightedDatum = this.highlightedDatum;\n if (datum) {\n var id_2 = datum.id, itemId = datum.itemId, enabled = datum.enabled;\n if (enabled) {\n var series = find(this.series, function (series) { return series.id === id_2; });\n if (series) {\n this.highlightedDatum = {\n series: series,\n itemId: itemId,\n datum: undefined\n };\n }\n }\n }\n // Careful to only schedule updates when necessary.\n if ((this.highlightedDatum && !oldHighlightedDatum) ||\n (this.highlightedDatum && oldHighlightedDatum &&\n (this.highlightedDatum.series !== oldHighlightedDatum.series ||\n this.highlightedDatum.itemId !== oldHighlightedDatum.itemId))) {\n this.series.forEach(function (s) { return s.updatePending = true; });\n }\n };\n Chart.prototype.onSeriesDatumPick = function (meta, datum, node, event) {\n var lastPick = this.lastPick;\n if (lastPick) {\n if (lastPick.datum === datum) {\n return;\n }\n this.dehighlightDatum();\n }\n this.lastPick = {\n datum: datum,\n node: node,\n event: event\n };\n this.highlightDatum(datum);\n var html = datum.series.tooltip.enabled && datum.series.getTooltipHtml(datum);\n if (html) {\n this.tooltip.show(meta, html);\n }\n };\n Chart.prototype.highlightDatum = function (datum) {\n this.element.style.cursor = datum.series.cursor;\n this.highlightedDatum = datum;\n this.series.forEach(function (s) { return s.updatePending = true; });\n };\n Chart.prototype.dehighlightDatum = function () {\n if (this.highlightedDatum) {\n this.highlightedDatum = undefined;\n this.series.forEach(function (s) { return s.updatePending = true; });\n }\n };\n Chart.defaultTooltipClass = 'ag-chart-tooltip';\n Chart.tooltipDocuments = [];\n __decorate$L([\n reactive$1('layoutChange')\n ], Chart.prototype, \"title\", void 0);\n __decorate$L([\n reactive$1('layoutChange')\n ], Chart.prototype, \"subtitle\", void 0);\n return Chart;\n}(Observable$1));\n\nvar __extends$1z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Acts as `Group` node but with specified bounds that form a rectangle.\n * Any parts of the child nodes outside that rectangle will not be visible.\n * Unlike the `Group` node, the `ClipRect` node cannot be transformed.\n */\nvar ClipRect = /** @class */ (function (_super) {\n __extends$1z(ClipRect, _super);\n function ClipRect() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isContainerNode = true;\n _this.path = new Path2D$1();\n _this._enabled = true;\n _this._dirtyPath = true;\n _this._x = 0;\n _this._y = 0;\n _this._width = 10;\n _this._height = 10;\n return _this;\n }\n ClipRect.prototype.containsPoint = function (x, y) {\n var point = this.transformPoint(x, y);\n return point.x >= this.x && point.x <= this.x + this.width\n && point.y >= this.y && point.y <= this.y + this.height;\n };\n Object.defineProperty(ClipRect.prototype, \"enabled\", {\n get: function () {\n return this._enabled;\n },\n set: function (value) {\n if (this._enabled !== value) {\n this._enabled = value;\n this.dirty = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ClipRect.prototype, \"dirtyPath\", {\n get: function () {\n return this._dirtyPath;\n },\n set: function (value) {\n if (this._dirtyPath !== value) {\n this._dirtyPath = value;\n if (value) {\n this.dirty = true;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ClipRect.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ClipRect.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ClipRect.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ClipRect.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n ClipRect.prototype.updatePath = function () {\n var path = this.path;\n path.clear();\n path.rect(this.x, this.y, this.width, this.height);\n this.dirtyPath = false;\n };\n ClipRect.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox$1(x, y, width, height);\n };\n ClipRect.prototype.render = function (ctx) {\n if (this.enabled) {\n if (this.dirtyPath) {\n this.updatePath();\n }\n this.path.draw(ctx);\n ctx.clip();\n }\n var children = this.children;\n var n = children.length;\n for (var i = 0; i < n; i++) {\n ctx.save();\n var child = children[i];\n if (child.visible) {\n child.render(ctx);\n }\n ctx.restore();\n }\n // debug\n // this.computeBBox().render(ctx, {\n // label: this.id,\n // resetTransform: true,\n // fillStyle: 'rgba(0, 0, 0, 0.5)'\n // });\n };\n ClipRect.className = 'ClipRect';\n return ClipRect;\n}(Node$1));\n\nvar __extends$1A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeHandle = /** @class */ (function (_super) {\n __extends$1A(RangeHandle, _super);\n function RangeHandle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._fill = '#f2f2f2';\n _this._stroke = '#999999';\n _this._strokeWidth = 1;\n _this._lineCap = 'square';\n _this._centerX = 0;\n _this._centerY = 0;\n // Use an even number for better looking results.\n _this._width = 8;\n // Use an even number for better looking results.\n _this._gripLineGap = 2;\n // Use an even number for better looking results.\n _this._gripLineLength = 8;\n _this._height = 16;\n return _this;\n }\n Object.defineProperty(RangeHandle.prototype, \"centerX\", {\n get: function () {\n return this._centerX;\n },\n set: function (value) {\n if (this._centerX !== value) {\n this._centerX = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"centerY\", {\n get: function () {\n return this._centerY;\n },\n set: function (value) {\n if (this._centerY !== value) {\n this._centerY = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"gripLineGap\", {\n get: function () {\n return this._gripLineGap;\n },\n set: function (value) {\n if (this._gripLineGap !== value) {\n this._gripLineGap = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"gripLineLength\", {\n get: function () {\n return this._gripLineLength;\n },\n set: function (value) {\n if (this._gripLineLength !== value) {\n this._gripLineLength = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n RangeHandle.prototype.computeBBox = function () {\n var _a = this, centerX = _a.centerX, centerY = _a.centerY, width = _a.width, height = _a.height;\n var x = centerX - width / 2;\n var y = centerY - height / 2;\n return new BBox$1(x, y, width, height);\n };\n RangeHandle.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox.containsPoint(point.x, point.y);\n };\n RangeHandle.prototype.updatePath = function () {\n var _a = this, path = _a.path, centerX = _a.centerX, centerY = _a.centerY, width = _a.width, height = _a.height;\n var _b = this, a = _b.alignment, al = _b.align;\n path.clear();\n var x = centerX - width / 2;\n var y = centerY - height / 2;\n var ax = al(a, x);\n var ay = al(a, y);\n var axw = ax + al(a, x, width);\n var ayh = ay + al(a, y, height);\n // Handle.\n path.moveTo(ax, ay);\n path.lineTo(axw, ay);\n path.lineTo(axw, ayh);\n path.lineTo(ax, ayh);\n path.lineTo(ax, ay);\n // Grip lines.\n var dx = this.gripLineGap / 2;\n var dy = this.gripLineLength / 2;\n path.moveTo(al(a, centerX - dx), al(a, centerY - dy));\n path.lineTo(al(a, centerX - dx), al(a, centerY + dy));\n path.moveTo(al(a, centerX + dx), al(a, centerY - dy));\n path.lineTo(al(a, centerX + dx), al(a, centerY + dy));\n };\n RangeHandle.className = 'RangeHandle';\n return RangeHandle;\n}(Path$1));\n\nvar __extends$1B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeMask = /** @class */ (function (_super) {\n __extends$1B(RangeMask, _super);\n function RangeMask() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._stroke = '#999999';\n _this._strokeWidth = 1;\n _this._fill = '#999999';\n _this._fillOpacity = 0.2;\n _this._lineCap = 'square';\n _this._x = 0;\n _this._y = 0;\n _this._width = 200;\n _this._height = 30;\n _this.minRange = 0.05;\n _this._min = 0;\n _this._max = 1;\n return _this;\n }\n Object.defineProperty(RangeMask.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"min\", {\n get: function () {\n return this._min;\n },\n set: function (value) {\n value = Math.min(Math.max(value, 0), this.max - this.minRange);\n if (isNaN(value)) {\n return;\n }\n if (this._min !== value) {\n this._min = value;\n this.dirtyPath = true;\n this.onRangeChange && this.onRangeChange(value, this.max);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"max\", {\n get: function () {\n return this._max;\n },\n set: function (value) {\n value = Math.max(Math.min(value, 1), this.min + this.minRange);\n if (isNaN(value)) {\n return;\n }\n if (this._max !== value) {\n this._max = value;\n this.dirtyPath = true;\n this.onRangeChange && this.onRangeChange(this.min, value);\n }\n },\n enumerable: true,\n configurable: true\n });\n RangeMask.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox$1(x, y, width, height);\n };\n RangeMask.prototype.computeVisibleRangeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n var minX = x + width * min;\n var maxX = x + width * max;\n return new BBox$1(minX, y, maxX - minX, height);\n };\n RangeMask.prototype.updatePath = function () {\n var _a = this, path = _a.path, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n var _b = this, a = _b.alignment, al = _b.align;\n path.clear();\n var ax = al(a, x);\n var ay = al(a, y);\n var axw = ax + al(a, x, width);\n var ayh = ay + al(a, y, height);\n // Whole range.\n path.moveTo(ax, ay);\n path.lineTo(axw, ay);\n path.lineTo(axw, ayh);\n path.lineTo(ax, ayh);\n path.lineTo(ax, ay);\n var minX = al(a, x + width * min);\n var maxX = al(a, x + width * max);\n // Visible range.\n path.moveTo(minX, ay);\n path.lineTo(minX, ayh);\n path.lineTo(maxX, ayh);\n path.lineTo(maxX, ay);\n path.lineTo(minX, ay);\n };\n RangeMask.className = 'RangeMask';\n return RangeMask;\n}(Path$1));\n\nvar __extends$1C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeSelector = /** @class */ (function (_super) {\n __extends$1C(RangeSelector, _super);\n function RangeSelector() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isContainerNode = true;\n _this.minHandle = new RangeHandle();\n _this.maxHandle = new RangeHandle();\n _this.mask = (function () {\n var _a = RangeSelector.defaults, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n var mask = new RangeMask();\n mask.x = x;\n mask.y = y;\n mask.width = width;\n mask.height = height;\n mask.min = min;\n mask.max = max;\n var _b = _this, minHandle = _b.minHandle, maxHandle = _b.maxHandle;\n minHandle.centerX = x;\n maxHandle.centerX = x + width;\n minHandle.centerY = maxHandle.centerY = y + height / 2;\n _this.append([mask, minHandle, maxHandle]);\n mask.onRangeChange = function (min, max) {\n _this.updateHandles();\n _this.onRangeChange && _this.onRangeChange(min, max);\n };\n return mask;\n })();\n _this._x = RangeSelector.defaults.x;\n _this._y = RangeSelector.defaults.y;\n _this._width = RangeSelector.defaults.width;\n _this._height = RangeSelector.defaults.height;\n _this._min = RangeSelector.defaults.min;\n _this._max = RangeSelector.defaults.max;\n return _this;\n }\n Object.defineProperty(RangeSelector.prototype, \"x\", {\n get: function () {\n return this.mask.x;\n },\n set: function (value) {\n this.mask.x = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"y\", {\n get: function () {\n return this.mask.y;\n },\n set: function (value) {\n this.mask.y = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"width\", {\n get: function () {\n return this.mask.width;\n },\n set: function (value) {\n this.mask.width = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"height\", {\n get: function () {\n return this.mask.height;\n },\n set: function (value) {\n this.mask.height = value;\n this.updateHandles();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"min\", {\n get: function () {\n return this.mask.min;\n },\n set: function (value) {\n this.mask.min = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"max\", {\n get: function () {\n return this.mask.max;\n },\n set: function (value) {\n this.mask.max = value;\n },\n enumerable: true,\n configurable: true\n });\n RangeSelector.prototype.updateHandles = function () {\n var _a = this, minHandle = _a.minHandle, maxHandle = _a.maxHandle, x = _a.x, y = _a.y, width = _a.width, height = _a.height, mask = _a.mask;\n minHandle.centerX = x + width * mask.min;\n maxHandle.centerX = x + width * mask.max;\n minHandle.centerY = maxHandle.centerY = y + height / 2;\n };\n RangeSelector.prototype.computeBBox = function () {\n return this.mask.computeBBox();\n };\n RangeSelector.prototype.computeVisibleRangeBBox = function () {\n return this.mask.computeVisibleRangeBBox();\n };\n RangeSelector.prototype.render = function (ctx) {\n if (this.dirtyTransform) {\n this.computeTransformMatrix();\n }\n this.matrix.toContext(ctx);\n var _a = this, mask = _a.mask, minHandle = _a.minHandle, maxHandle = _a.maxHandle;\n [mask, minHandle, maxHandle].forEach(function (child) {\n ctx.save();\n if (child.visible) {\n child.render(ctx);\n }\n ctx.restore();\n });\n };\n RangeSelector.className = 'Range';\n RangeSelector.defaults = {\n x: 0,\n y: 0,\n width: 200,\n height: 30,\n min: 0,\n max: 1\n };\n return RangeSelector;\n}(Group$1));\n\nvar NavigatorMask = /** @class */ (function () {\n function NavigatorMask(rangeMask) {\n this.rm = rangeMask;\n }\n Object.defineProperty(NavigatorMask.prototype, \"fill\", {\n get: function () {\n return this.rm.fill;\n },\n set: function (value) {\n this.rm.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"stroke\", {\n get: function () {\n return this.rm.stroke;\n },\n set: function (value) {\n this.rm.stroke = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"strokeWidth\", {\n get: function () {\n return this.rm.strokeWidth;\n },\n set: function (value) {\n this.rm.strokeWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"fillOpacity\", {\n get: function () {\n return this.rm.fillOpacity;\n },\n set: function (value) {\n this.rm.fillOpacity = value;\n },\n enumerable: true,\n configurable: true\n });\n return NavigatorMask;\n}());\n\nvar NavigatorHandle = /** @class */ (function () {\n function NavigatorHandle(rangeHandle) {\n this.rh = rangeHandle;\n }\n Object.defineProperty(NavigatorHandle.prototype, \"fill\", {\n get: function () {\n return this.rh.fill;\n },\n set: function (value) {\n this.rh.fill = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"stroke\", {\n get: function () {\n return this.rh.stroke;\n },\n set: function (value) {\n this.rh.stroke = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"strokeWidth\", {\n get: function () {\n return this.rh.strokeWidth;\n },\n set: function (value) {\n this.rh.strokeWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"width\", {\n get: function () {\n return this.rh.width;\n },\n set: function (value) {\n this.rh.width = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"height\", {\n get: function () {\n return this.rh.height;\n },\n set: function (value) {\n this.rh.height = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"gripLineGap\", {\n get: function () {\n return this.rh.gripLineGap;\n },\n set: function (value) {\n this.rh.gripLineGap = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"gripLineLength\", {\n get: function () {\n return this.rh.gripLineLength;\n },\n set: function (value) {\n this.rh.gripLineLength = value;\n },\n enumerable: true,\n configurable: true\n });\n return NavigatorHandle;\n}());\n\nvar Navigator = /** @class */ (function () {\n function Navigator(chart) {\n var _this = this;\n this.rs = new RangeSelector();\n this.mask = new NavigatorMask(this.rs.mask);\n this.minHandle = new NavigatorHandle(this.rs.minHandle);\n this.maxHandle = new NavigatorHandle(this.rs.maxHandle);\n this.minHandleDragging = false;\n this.maxHandleDragging = false;\n this.panHandleOffset = NaN;\n this.changedCursor = false;\n this._margin = 10;\n this.chart = chart;\n chart.scene.root.append(this.rs);\n this.rs.onRangeChange = function (min, max) { return _this.updateAxes(min, max); };\n }\n Object.defineProperty(Navigator.prototype, \"enabled\", {\n get: function () {\n return this.rs.visible;\n },\n set: function (value) {\n this.rs.visible = value;\n this.chart.layoutPending = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"x\", {\n get: function () {\n return this.rs.x;\n },\n set: function (value) {\n this.rs.x = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"y\", {\n get: function () {\n return this.rs.y;\n },\n set: function (value) {\n this.rs.y = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"width\", {\n get: function () {\n return this.rs.width;\n },\n set: function (value) {\n this.rs.width = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"height\", {\n get: function () {\n return this.rs.height;\n },\n set: function (value) {\n this.rs.height = value;\n this.chart.layoutPending = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"margin\", {\n get: function () {\n return this._margin;\n },\n set: function (value) {\n this._margin = value;\n this.chart.layoutPending = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"min\", {\n get: function () {\n return this.rs.min;\n },\n set: function (value) {\n this.rs.min = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"max\", {\n get: function () {\n return this.rs.max;\n },\n set: function (value) {\n this.rs.max = value;\n },\n enumerable: true,\n configurable: true\n });\n Navigator.prototype.updateAxes = function (min, max) {\n var _this = this;\n var chart = this.chart;\n var clipSeries = false;\n chart.axes.forEach(function (axis) {\n if (axis.direction === ChartAxisDirection.X) {\n if (!clipSeries && (min > 0 || max < 1)) {\n clipSeries = true;\n }\n axis.visibleRange = [min, max];\n var oldLabelAutoRotated = axis.labelAutoRotated;\n axis.update();\n if (axis.labelAutoRotated !== oldLabelAutoRotated) {\n _this.chart.layoutPending = true;\n }\n }\n });\n chart.seriesRoot.enabled = clipSeries;\n chart.series.forEach(function (s) { return s.nodeDataPending = true; });\n };\n Navigator.prototype.onDragStart = function (offset) {\n if (!this.enabled) {\n return;\n }\n var offsetX = offset.offsetX, offsetY = offset.offsetY;\n var rs = this.rs;\n var minHandle = rs.minHandle, maxHandle = rs.maxHandle, x = rs.x, width = rs.width, min = rs.min;\n var visibleRange = rs.computeVisibleRangeBBox();\n if (!(this.minHandleDragging || this.maxHandleDragging)) {\n if (minHandle.containsPoint(offsetX, offsetY)) {\n this.minHandleDragging = true;\n }\n else if (maxHandle.containsPoint(offsetX, offsetY)) {\n this.maxHandleDragging = true;\n }\n else if (visibleRange.containsPoint(offsetX, offsetY)) {\n this.panHandleOffset = (offsetX - x) / width - min;\n }\n }\n };\n Navigator.prototype.onDrag = function (offset) {\n if (!this.enabled) {\n return;\n }\n var _a = this, rs = _a.rs, panHandleOffset = _a.panHandleOffset;\n var x = rs.x, y = rs.y, width = rs.width, height = rs.height, minHandle = rs.minHandle, maxHandle = rs.maxHandle;\n var style = this.chart.element.style;\n var offsetX = offset.offsetX, offsetY = offset.offsetY;\n var minX = x + width * rs.min;\n var maxX = x + width * rs.max;\n var visibleRange = new BBox$1(minX, y, maxX - minX, height);\n function getRatio() {\n return Math.min(Math.max((offsetX - x) / width, 0), 1);\n }\n if (minHandle.containsPoint(offsetX, offsetY)) {\n this.changedCursor = true;\n style.cursor = 'ew-resize';\n }\n else if (maxHandle.containsPoint(offsetX, offsetY)) {\n this.changedCursor = true;\n style.cursor = 'ew-resize';\n }\n else if (visibleRange.containsPoint(offsetX, offsetY)) {\n this.changedCursor = true;\n style.cursor = 'grab';\n }\n else if (this.changedCursor) {\n this.changedCursor = false;\n style.cursor = 'default';\n }\n if (this.minHandleDragging) {\n rs.min = getRatio();\n }\n else if (this.maxHandleDragging) {\n rs.max = getRatio();\n }\n else if (!isNaN(panHandleOffset)) {\n var span = rs.max - rs.min;\n var min = Math.min(getRatio() - panHandleOffset, 1 - span);\n if (min <= rs.min) { // pan left\n rs.min = min;\n rs.max = rs.min + span;\n }\n else { // pan right\n rs.max = min + span;\n rs.min = rs.max - span;\n }\n }\n };\n Navigator.prototype.onDragStop = function () {\n this.stopHandleDragging();\n };\n Navigator.prototype.stopHandleDragging = function () {\n this.minHandleDragging = this.maxHandleDragging = false;\n this.panHandleOffset = NaN;\n };\n return Navigator;\n}());\n\nvar __extends$1D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$s = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$a = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$s(arguments[i]));\n return ar;\n};\nvar CartesianChart = /** @class */ (function (_super) {\n __extends$1D(CartesianChart, _super);\n function CartesianChart(document) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document) || this;\n _this._seriesRoot = new ClipRect();\n _this.navigator = new Navigator(_this);\n // Prevent the scene from rendering chart components in an invalid state\n // (before first layout is performed).\n _this.scene.root.visible = false;\n var root = _this.scene.root;\n root.append(_this.seriesRoot);\n root.append(_this.legend.group);\n _this.navigator.enabled = false;\n return _this;\n }\n Object.defineProperty(CartesianChart.prototype, \"seriesRoot\", {\n get: function () {\n return this._seriesRoot;\n },\n enumerable: true,\n configurable: true\n });\n CartesianChart.prototype.performLayout = function () {\n if (this.dataPending) {\n return;\n }\n this.scene.root.visible = true;\n var _a = this, width = _a.width, height = _a.height, axes = _a.axes, legend = _a.legend, navigator = _a.navigator;\n var shrinkRect = new BBox$1(0, 0, width, height);\n this.positionCaptions();\n this.positionLegend();\n if (legend.enabled && legend.data.length) {\n var legendAutoPadding = this.legendAutoPadding;\n var legendPadding = this.legend.spacing;\n shrinkRect.x += legendAutoPadding.left;\n shrinkRect.y += legendAutoPadding.top;\n shrinkRect.width -= legendAutoPadding.left + legendAutoPadding.right;\n shrinkRect.height -= legendAutoPadding.top + legendAutoPadding.bottom;\n switch (this.legend.position) {\n case 'right':\n shrinkRect.width -= legendPadding;\n break;\n case 'bottom':\n shrinkRect.height -= legendPadding;\n break;\n case 'left':\n shrinkRect.x += legendPadding;\n shrinkRect.width -= legendPadding;\n break;\n case 'top':\n shrinkRect.y += legendPadding;\n shrinkRect.height -= legendPadding;\n break;\n }\n }\n var _b = this, captionAutoPadding = _b.captionAutoPadding, padding = _b.padding;\n shrinkRect.x += padding.left;\n shrinkRect.width -= padding.left + padding.right;\n shrinkRect.y += padding.top + captionAutoPadding;\n shrinkRect.height -= padding.top + captionAutoPadding + padding.bottom;\n if (navigator.enabled) {\n shrinkRect.height -= navigator.height + navigator.margin;\n }\n // Set the number of ticks for continuous axes based on the available range\n // before updating the axis domain via `this.updateAxes()` as the tick count has an effect on the calculated `nice` domain extent\n axes.forEach(function (axis) {\n var availableRange = 0;\n switch (axis.position) {\n case ChartAxisPosition.Top:\n case ChartAxisPosition.Bottom:\n availableRange = shrinkRect.width;\n break;\n case ChartAxisPosition.Left:\n case ChartAxisPosition.Right:\n availableRange = shrinkRect.height;\n break;\n }\n axis.calculateTickCount(availableRange);\n });\n this.updateAxes();\n var bottomAxesHeight = 0;\n var axisPositionVisited = {\n top: false,\n right: false,\n bottom: false,\n left: false,\n angle: false,\n radius: false\n };\n axes.forEach(function (axis) {\n axis.group.visible = true;\n var axisThickness = Math.floor(axis.thickness || axis.computeBBox().width);\n // for multiple axes in the same direction and position, apply padding at the top of each inner axis (i.e. between axes).\n var axisPadding = axis.title && axis.title.padding.top || 15;\n if (axisPositionVisited[axis.position]) {\n axisThickness += axisPadding;\n }\n switch (axis.position) {\n case ChartAxisPosition.Top:\n axisPositionVisited[ChartAxisPosition.Top] = true;\n shrinkRect.y += axisThickness;\n shrinkRect.height -= axisThickness;\n axis.translation.y = Math.floor(shrinkRect.y + 1);\n axis.label.mirrored = true;\n break;\n case ChartAxisPosition.Right:\n axisPositionVisited[ChartAxisPosition.Right] = true;\n shrinkRect.width -= axisThickness;\n axis.translation.x = Math.max(Math.floor(shrinkRect.x), Math.floor(shrinkRect.x + shrinkRect.width));\n axis.label.mirrored = true;\n break;\n case ChartAxisPosition.Bottom:\n axisPositionVisited[ChartAxisPosition.Bottom] = true;\n shrinkRect.height -= axisThickness;\n bottomAxesHeight += axisThickness;\n axis.translation.y = Math.max(Math.floor(shrinkRect.y), Math.floor(shrinkRect.y + shrinkRect.height + 1));\n break;\n case ChartAxisPosition.Left:\n axisPositionVisited[ChartAxisPosition.Left] = true;\n shrinkRect.x += axisThickness;\n shrinkRect.width -= axisThickness;\n axis.translation.x = Math.floor(shrinkRect.x);\n break;\n }\n });\n // width and height should not be negative\n shrinkRect.width = Math.max(0, shrinkRect.width);\n shrinkRect.height = Math.max(0, shrinkRect.height);\n axes.forEach(function (axis) {\n switch (axis.position) {\n case ChartAxisPosition.Top:\n case ChartAxisPosition.Bottom:\n axis.translation.x = Math.floor(shrinkRect.x);\n axis.range = [0, shrinkRect.width];\n axis.gridLength = shrinkRect.height;\n break;\n case ChartAxisPosition.Left:\n case ChartAxisPosition.Right:\n axis.translation.y = Math.floor(shrinkRect.y);\n if (axis instanceof CategoryAxis || axis instanceof GroupedCategoryAxis) {\n axis.range = [0, shrinkRect.height];\n }\n else {\n axis.range = [shrinkRect.height, 0];\n }\n axis.gridLength = shrinkRect.width;\n break;\n }\n });\n this.createNodeData();\n this.seriesRect = shrinkRect;\n this.series.forEach(function (series) {\n series.group.translationX = Math.floor(shrinkRect.x);\n series.group.translationY = Math.floor(shrinkRect.y);\n series.update(); // this has to happen after the `updateAxes` call\n });\n var seriesRoot = this.seriesRoot;\n seriesRoot.x = shrinkRect.x;\n seriesRoot.y = shrinkRect.y;\n seriesRoot.width = shrinkRect.width;\n seriesRoot.height = shrinkRect.height;\n if (navigator.enabled) {\n navigator.x = shrinkRect.x;\n navigator.y = shrinkRect.y + shrinkRect.height + bottomAxesHeight + navigator.margin;\n navigator.width = shrinkRect.width;\n }\n this.axes.forEach(function (axis) { return axis.update(); });\n };\n CartesianChart.prototype.initSeries = function (series) {\n _super.prototype.initSeries.call(this, series);\n };\n CartesianChart.prototype.freeSeries = function (series) {\n _super.prototype.freeSeries.call(this, series);\n };\n CartesianChart.prototype.setupDomListeners = function (chartElement) {\n _super.prototype.setupDomListeners.call(this, chartElement);\n this._onTouchStart = this.onTouchStart.bind(this);\n this._onTouchMove = this.onTouchMove.bind(this);\n this._onTouchEnd = this.onTouchEnd.bind(this);\n this._onTouchCancel = this.onTouchCancel.bind(this);\n chartElement.addEventListener('touchstart', this._onTouchStart, { passive: true });\n chartElement.addEventListener('touchmove', this._onTouchMove, { passive: true });\n chartElement.addEventListener('touchend', this._onTouchEnd, { passive: true });\n chartElement.addEventListener('touchcancel', this._onTouchCancel, { passive: true });\n };\n CartesianChart.prototype.cleanupDomListeners = function (chartElement) {\n _super.prototype.cleanupDomListeners.call(this, chartElement);\n chartElement.removeEventListener('touchstart', this._onTouchStart);\n chartElement.removeEventListener('touchmove', this._onTouchMove);\n chartElement.removeEventListener('touchend', this._onTouchEnd);\n chartElement.removeEventListener('touchcancel', this._onTouchCancel);\n };\n CartesianChart.prototype.getTouchOffset = function (event) {\n var rect = this.scene.canvas.element.getBoundingClientRect();\n var touch = event.touches[0];\n return touch ? {\n offsetX: touch.clientX - rect.left,\n offsetY: touch.clientY - rect.top\n } : undefined;\n };\n CartesianChart.prototype.onTouchStart = function (event) {\n var offset = this.getTouchOffset(event);\n if (offset) {\n this.navigator.onDragStart(offset);\n }\n };\n CartesianChart.prototype.onTouchMove = function (event) {\n var offset = this.getTouchOffset(event);\n if (offset) {\n this.navigator.onDrag(offset);\n }\n };\n CartesianChart.prototype.onTouchEnd = function (event) {\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.onTouchCancel = function (event) {\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.onMouseDown = function (event) {\n _super.prototype.onMouseDown.call(this, event);\n this.navigator.onDragStart(event);\n };\n CartesianChart.prototype.onMouseMove = function (event) {\n _super.prototype.onMouseMove.call(this, event);\n this.navigator.onDrag(event);\n };\n CartesianChart.prototype.onMouseUp = function (event) {\n _super.prototype.onMouseUp.call(this, event);\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.onMouseOut = function (event) {\n _super.prototype.onMouseOut.call(this, event);\n this.navigator.onDragStop();\n };\n CartesianChart.prototype.assignAxesToSeries = function (force) {\n if (force === void 0) { force = false; }\n _super.prototype.assignAxesToSeries.call(this, force);\n this.series.forEach(function (series) {\n if (!series.xAxis) {\n console.warn(\"Could not find a matching xAxis for the \" + series.id + \" series.\");\n }\n if (!series.yAxis) {\n console.warn(\"Could not find a matching yAxis for the \" + series.id + \" series.\");\n }\n });\n };\n CartesianChart.prototype.updateAxes = function () {\n var _this = this;\n var navigator = this.navigator;\n var clipSeries = false;\n var primaryTickCount;\n this.axes.forEach(function (axis) {\n var _a;\n var direction = axis.direction, boundSeries = axis.boundSeries;\n if (boundSeries.length === 0 && _this._series.length > 0) {\n console.warn('AG Charts - chart series not initialised; check series and axes configuration.');\n }\n if (axis.linkedTo) {\n axis.domain = axis.linkedTo.domain;\n }\n else {\n var domains_1 = [];\n boundSeries.filter(function (s) { return s.visible; }).forEach(function (series) {\n domains_1.push(series.getDomain(direction));\n });\n var domain = (_a = new Array()).concat.apply(_a, __spread$a(domains_1));\n var isYAxis = axis.direction === 'y';\n if (axis instanceof NumberAxis && isYAxis) {\n // the `primaryTickCount` is used to align the secondary axis tick count with the primary\n axis.setDomain(domain, primaryTickCount);\n primaryTickCount = primaryTickCount || axis.scale.ticks(axis.calculatedTickCount).length;\n }\n else {\n axis.domain = domain;\n }\n }\n if (axis.direction === ChartAxisDirection.X) {\n axis.visibleRange = [navigator.min, navigator.max];\n }\n if (!clipSeries && (axis.visibleRange[0] > 0 || axis.visibleRange[1] < 1)) {\n clipSeries = true;\n }\n axis.update();\n });\n this.seriesRoot.enabled = clipSeries;\n };\n CartesianChart.className = 'CartesianChart';\n CartesianChart.type = 'cartesian';\n return CartesianChart;\n}(Chart));\n\nvar __extends$1E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar HierarchyChart = /** @class */ (function (_super) {\n __extends$1E(HierarchyChart, _super);\n function HierarchyChart(document) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document) || this;\n _this._data = {};\n _this._seriesRoot = new ClipRect();\n // Prevent the scene from rendering chart components in an invalid state\n // (before first layout is performed).\n _this.scene.root.visible = false;\n var root = _this.scene.root;\n root.append(_this.seriesRoot);\n root.append(_this.legend.group);\n return _this;\n }\n Object.defineProperty(HierarchyChart.prototype, \"seriesRoot\", {\n get: function () {\n return this._seriesRoot;\n },\n enumerable: true,\n configurable: true\n });\n HierarchyChart.prototype.performLayout = function () {\n if (this.dataPending) {\n return;\n }\n this.scene.root.visible = true;\n var _a = this, width = _a.width, height = _a.height, legend = _a.legend;\n var shrinkRect = new BBox$1(0, 0, width, height);\n this.positionCaptions();\n this.positionLegend();\n if (legend.enabled && legend.data.length) {\n var legendAutoPadding = this.legendAutoPadding;\n var legendPadding = this.legend.spacing;\n shrinkRect.x += legendAutoPadding.left;\n shrinkRect.y += legendAutoPadding.top;\n shrinkRect.width -= legendAutoPadding.left + legendAutoPadding.right;\n shrinkRect.height -= legendAutoPadding.top + legendAutoPadding.bottom;\n switch (this.legend.position) {\n case 'right':\n shrinkRect.width -= legendPadding;\n break;\n case 'bottom':\n shrinkRect.height -= legendPadding;\n break;\n case 'left':\n shrinkRect.x += legendPadding;\n shrinkRect.width -= legendPadding;\n break;\n case 'top':\n shrinkRect.y += legendPadding;\n shrinkRect.height -= legendPadding;\n break;\n }\n }\n var _b = this, captionAutoPadding = _b.captionAutoPadding, padding = _b.padding;\n shrinkRect.x += padding.left;\n shrinkRect.width -= padding.left + padding.right;\n shrinkRect.y += padding.top + captionAutoPadding;\n shrinkRect.height -= padding.top + captionAutoPadding + padding.bottom;\n this.seriesRect = shrinkRect;\n this.series.forEach(function (series) {\n series.group.translationX = Math.floor(shrinkRect.x);\n series.group.translationY = Math.floor(shrinkRect.y);\n series.update(); // this has to happen after the `updateAxes` call\n });\n var seriesRoot = this.seriesRoot;\n seriesRoot.x = shrinkRect.x;\n seriesRoot.y = shrinkRect.y;\n seriesRoot.width = shrinkRect.width;\n seriesRoot.height = shrinkRect.height;\n };\n HierarchyChart.className = 'HierarchyChart';\n HierarchyChart.type = 'hierarchy';\n return HierarchyChart;\n}(Chart));\n\nvar __extends$1F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$t = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$b = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$t(arguments[i]));\n return ar;\n};\nvar GroupedCategoryChart = /** @class */ (function (_super) {\n __extends$1F(GroupedCategoryChart, _super);\n function GroupedCategoryChart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupedCategoryChart.prototype.updateAxes = function () {\n this.axes.forEach(function (axis) {\n var _a;\n var direction = axis.direction, boundSeries = axis.boundSeries;\n var domains = [];\n var isNumericX = undefined;\n boundSeries.filter(function (s) { return s.visible; }).forEach(function (series) {\n if (direction === ChartAxisDirection.X) {\n if (isNumericX === undefined) {\n // always add first X domain\n var domain_1 = series.getDomain(direction);\n domains.push(domain_1);\n isNumericX = typeof domain_1[0] === 'number';\n }\n else if (isNumericX) {\n // only add further X domains if the axis is numeric\n domains.push(series.getDomain(direction));\n }\n }\n else {\n domains.push(series.getDomain(direction));\n }\n });\n var domain = (_a = new Array()).concat.apply(_a, __spread$b(domains));\n axis.domain = extent$1(domain, isContinuous$1) || domain;\n axis.update();\n });\n };\n GroupedCategoryChart.className = 'GroupedCategoryChart';\n GroupedCategoryChart.type = 'groupedCategory';\n return GroupedCategoryChart;\n}(CartesianChart));\n\nvar __extends$1G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Label$1 = /** @class */ (function (_super) {\n __extends$1G(Label, _super);\n function Label() {\n var _this = _super.call(this) || this;\n _this.enabled = true;\n _this.fontSize = 12;\n _this.fontFamily = 'Verdana, sans-serif';\n _this.color = 'rgba(70, 70, 70, 1)';\n return _this;\n }\n Label.prototype.getFont = function () {\n return getFont$3(this.fontSize, this.fontFamily, this.fontStyle, this.fontWeight);\n };\n __decorate$M([\n reactive$1('change', 'dataChange')\n ], Label.prototype, \"enabled\", void 0);\n __decorate$M([\n reactive$1('change')\n ], Label.prototype, \"fontSize\", void 0);\n __decorate$M([\n reactive$1('change')\n ], Label.prototype, \"fontFamily\", void 0);\n __decorate$M([\n reactive$1('change')\n ], Label.prototype, \"fontStyle\", void 0);\n __decorate$M([\n reactive$1('change')\n ], Label.prototype, \"fontWeight\", void 0);\n __decorate$M([\n reactive$1('change')\n ], Label.prototype, \"color\", void 0);\n return Label;\n}(Observable$1));\n\nvar __extends$1H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$u = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$c = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$u(arguments[i]));\n return ar;\n};\nvar SeriesItemHighlightStyle = /** @class */ (function () {\n function SeriesItemHighlightStyle() {\n this.fill = 'yellow';\n this.stroke = undefined;\n this.strokeWidth = undefined;\n }\n return SeriesItemHighlightStyle;\n}());\nvar SeriesHighlightStyle = /** @class */ (function () {\n function SeriesHighlightStyle() {\n this.strokeWidth = undefined;\n this.dimOpacity = undefined;\n }\n return SeriesHighlightStyle;\n}());\nvar HighlightStyle = /** @class */ (function () {\n function HighlightStyle() {\n /**\n * @deprecated Use item.fill instead.\n */\n this.fill = undefined;\n /**\n * @deprecated Use item.stroke instead.\n */\n this.stroke = undefined;\n /**\n * @deprecated Use item.strokeWidth instead.\n */\n this.strokeWidth = undefined;\n this.item = new SeriesItemHighlightStyle();\n this.series = new SeriesHighlightStyle();\n }\n return HighlightStyle;\n}());\nvar SeriesTooltip = /** @class */ (function (_super) {\n __extends$1H(SeriesTooltip, _super);\n function SeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enabled = true;\n return _this;\n }\n __decorate$N([\n reactive$1('change')\n ], SeriesTooltip.prototype, \"enabled\", void 0);\n return SeriesTooltip;\n}(Observable$1));\nvar Series = /** @class */ (function (_super) {\n __extends$1H(Series, _super);\n function Series() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.id = createId$1(_this);\n // The group node that contains all the nodes used to render this series.\n _this.group = new Group$1();\n // The group node that contains all the nodes that can be \"picked\" (react to hover, tap, click).\n _this.pickGroup = _this.group.appendChild(new Group$1());\n _this.directions = [ChartAxisDirection.X, ChartAxisDirection.Y];\n _this.directionKeys = {};\n _this.label = new Label$1();\n _this.data = undefined;\n _this.visible = true;\n _this.showInLegend = true;\n _this.cursor = 'default';\n _this._nodeDataPending = true;\n _this._updatePending = false;\n _this.highlightStyle = new HighlightStyle();\n _this.scheduleLayout = function () {\n _this.fireEvent({ type: 'layoutChange' });\n };\n _this.scheduleData = function () {\n _this.fireEvent({ type: 'dataChange' });\n };\n return _this;\n }\n Object.defineProperty(Series.prototype, \"type\", {\n get: function () {\n return this.constructor.type || '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Series.prototype, \"grouped\", {\n set: function (g) {\n if (g === true) {\n throw new Error(\"AG Charts - grouped: true is unsupported for series of type: \" + this.type);\n }\n },\n enumerable: true,\n configurable: true\n });\n Series.prototype.setColors = function (fills, strokes) { };\n // Returns the actual keys used (to fetch the values from `data` items) for the given direction.\n Series.prototype.getKeys = function (direction) {\n var _this = this;\n var directionKeys = this.directionKeys;\n var keys = directionKeys && directionKeys[direction];\n var values = [];\n if (keys) {\n keys.forEach(function (key) {\n var value = _this[key];\n if (value) {\n if (Array.isArray(value)) {\n values.push.apply(values, __spread$c(value));\n }\n else {\n values.push(value);\n }\n }\n });\n }\n return values;\n };\n // Using processed data, create data that backs visible nodes.\n Series.prototype.createNodeData = function () { return []; };\n // Returns persisted node data associated with the rendered portion of the series' data.\n Series.prototype.getNodeData = function () { return []; };\n Series.prototype.getLabelData = function () { return []; };\n Object.defineProperty(Series.prototype, \"nodeDataPending\", {\n get: function () {\n return this._nodeDataPending;\n },\n set: function (value) {\n if (this._nodeDataPending !== value) {\n this._nodeDataPending = value;\n this.updatePending = true;\n if (value && this.chart) {\n this.chart.updatePending = value;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Series.prototype.scheduleNodeDate = function () {\n this.nodeDataPending = true;\n };\n Object.defineProperty(Series.prototype, \"updatePending\", {\n get: function () {\n return this._updatePending;\n },\n set: function (value) {\n if (this._updatePending !== value) {\n this._updatePending = value;\n if (value && this.chart) {\n this.chart.updatePending = value;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Series.prototype.scheduleUpdate = function () {\n this.updatePending = true;\n };\n Series.prototype.getOpacity = function (datum) {\n var _a = this, chart = _a.chart, _b = _a.highlightStyle.series.dimOpacity, dimOpacity = _b === void 0 ? 1 : _b;\n return !chart || !chart.highlightedDatum ||\n chart.highlightedDatum.series === this &&\n (!datum || chart.highlightedDatum.itemId === datum.itemId) ? 1 : dimOpacity;\n };\n Series.prototype.getStrokeWidth = function (defaultStrokeWidth, datum) {\n var _a = this, chart = _a.chart, strokeWidth = _a.highlightStyle.series.strokeWidth;\n return chart && chart.highlightedDatum &&\n chart.highlightedDatum.series === this &&\n (!datum || chart.highlightedDatum.itemId === datum.itemId) &&\n strokeWidth !== undefined ? strokeWidth : defaultStrokeWidth;\n };\n Series.prototype.fireNodeClickEvent = function (event, datum) { };\n Series.prototype.toggleSeriesItem = function (itemId, enabled) {\n this.visible = enabled;\n };\n // Each series is expected to have its own logic to efficiently update its nodes\n // on hightlight changes.\n Series.prototype.onHighlightChange = function () { };\n Series.prototype.fixNumericExtent = function (extent, type, axis) {\n if (!extent) {\n return [0, 1];\n }\n var _a = __read$u(extent, 2), min = _a[0], max = _a[1];\n min = +min;\n max = +max;\n if (min === 0 && max === 0) {\n // domain has zero length and the single valid value is 0. Use the default of [0, 1].\n return [0, 1];\n }\n if (min === max) {\n // domain has zero length, there is only a single valid value in data\n if (axis instanceof TimeAxis) { // numbers in domain correspond to Unix timestamps\n // automatically expand domain by 1 in each direction\n min -= 1;\n max += 1;\n }\n else {\n var padding = Math.abs(min * 0.01);\n min -= padding;\n max += padding;\n }\n }\n if (!(isNumber$1(min) && isNumber$1(max))) {\n return [0, 1];\n }\n return [min, max];\n };\n Series.highlightedZIndex = 1000000000000;\n __decorate$N([\n reactive$1('dataChange')\n ], Series.prototype, \"data\", void 0);\n __decorate$N([\n reactive$1('dataChange')\n ], Series.prototype, \"visible\", void 0);\n __decorate$N([\n reactive$1('layoutChange')\n ], Series.prototype, \"showInLegend\", void 0);\n return Series;\n}(Observable$1));\n\nvar __extends$1I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SeriesMarker = /** @class */ (function (_super) {\n __extends$1I(SeriesMarker, _super);\n function SeriesMarker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enabled = true;\n /**\n * One of the predefined marker names, or a marker constructor function (for user-defined markers).\n * A series will create one marker instance per data point.\n */\n _this.shape = Circle$1;\n _this.size = 6;\n /**\n * In case a series has the `sizeKey` set, the `sizeKey` values along with the `size` and `maxSize` configs\n * will be used to determine the size of the marker. All values will be mapped to a marker size\n * within the `[size, maxSize]` range, where the largest values will correspond to the `maxSize`\n * and the lowest to the `size`.\n */\n _this.maxSize = 30;\n _this.strokeWidth = 1;\n return _this;\n }\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"enabled\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"shape\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"size\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"maxSize\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"domain\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"fill\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"stroke\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"strokeWidth\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"fillOpacity\", void 0);\n __decorate$O([\n reactive$1('change')\n ], SeriesMarker.prototype, \"strokeOpacity\", void 0);\n return SeriesMarker;\n}(Observable$1));\n\nvar __extends$1J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PolarSeries = /** @class */ (function (_super) {\n __extends$1J(PolarSeries, _super);\n function PolarSeries() {\n var _a;\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.directionKeys = (_a = {},\n _a[ChartAxisDirection.X] = ['angleKey'],\n _a[ChartAxisDirection.Y] = ['radiusKey'],\n _a);\n /**\n * The center of the polar series (for example, the center of a pie).\n * If the polar chart has multiple series, all of them will have their\n * center set to the same value as a result of the polar chart layout.\n * The center coordinates are not supposed to be set by the user.\n */\n _this.centerX = 0;\n _this.centerY = 0;\n /**\n * The maximum radius the series can use.\n * This value is set automatically as a result of the polar chart layout\n * and is not supposed to be set by the user.\n */\n _this.radius = 0;\n return _this;\n }\n return PolarSeries;\n}(Series));\nvar PolarSeriesMarker = /** @class */ (function (_super) {\n __extends$1J(PolarSeriesMarker, _super);\n function PolarSeriesMarker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return PolarSeriesMarker;\n}(SeriesMarker));\n\nvar __extends$1K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PolarChart = /** @class */ (function (_super) {\n __extends$1K(PolarChart, _super);\n function PolarChart(document) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document) || this;\n _this.padding = new Padding$1(40);\n _this.scene.root.append(_this.legend.group);\n _this.padding.addEventListener('layoutChange', _this.scheduleLayout, _this);\n return _this;\n }\n Object.defineProperty(PolarChart.prototype, \"seriesRoot\", {\n get: function () {\n return this.scene.root;\n },\n enumerable: true,\n configurable: true\n });\n PolarChart.prototype.performLayout = function () {\n var shrinkRect = new BBox$1(0, 0, this.width, this.height);\n this.positionCaptions();\n this.positionLegend();\n var captionAutoPadding = this.captionAutoPadding;\n shrinkRect.y += captionAutoPadding;\n shrinkRect.height -= captionAutoPadding;\n if (this.legend.enabled && this.legend.data.length) {\n var legendAutoPadding = this.legendAutoPadding;\n shrinkRect.x += legendAutoPadding.left;\n shrinkRect.y += legendAutoPadding.top;\n shrinkRect.width -= legendAutoPadding.left + legendAutoPadding.right;\n shrinkRect.height -= legendAutoPadding.top + legendAutoPadding.bottom;\n var legendPadding = this.legend.spacing;\n switch (this.legend.position) {\n case 'right':\n shrinkRect.width -= legendPadding;\n break;\n case 'bottom':\n shrinkRect.height -= legendPadding;\n break;\n case 'left':\n shrinkRect.x += legendPadding;\n shrinkRect.width -= legendPadding;\n break;\n case 'top':\n shrinkRect.y += legendPadding;\n shrinkRect.height -= legendPadding;\n break;\n }\n }\n var padding = this.padding;\n shrinkRect.x += padding.left;\n shrinkRect.y += padding.top;\n shrinkRect.width -= padding.left + padding.right;\n shrinkRect.height -= padding.top + padding.bottom;\n this.seriesRect = shrinkRect;\n var centerX = shrinkRect.x + shrinkRect.width / 2;\n var centerY = shrinkRect.y + shrinkRect.height / 2;\n var radius = Math.max(0, Math.min(shrinkRect.width, shrinkRect.height) / 2); // radius shouldn't be negative\n this.series.forEach(function (series) {\n if (series instanceof PolarSeries) {\n series.centerX = centerX;\n series.centerY = centerY;\n series.radius = radius;\n series.update();\n }\n });\n };\n PolarChart.className = 'PolarChart';\n PolarChart.type = 'polar';\n return PolarChart;\n}(Chart));\n\nvar __extends$1L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CartesianSeries = /** @class */ (function (_super) {\n __extends$1L(CartesianSeries, _super);\n function CartesianSeries() {\n var _a;\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.directionKeys = (_a = {},\n _a[ChartAxisDirection.X] = ['xKey'],\n _a[ChartAxisDirection.Y] = ['yKey'],\n _a);\n return _this;\n }\n /**\n * Note: we are passing `isContinuousX` and `isContinuousY` into this method because it will\n * typically be called inside a loop and this check only needs to happen once.\n * @param x A domain value to be plotted along the x-axis.\n * @param y A domain value to be plotted along the y-axis.\n * @param isContinuousX Typically this will be the value of `xAxis.scale instanceof ContinuousScale`.\n * @param isContinuousY Typically this will be the value of `yAxis.scale instanceof ContinuousScale`.\n * @returns `[x, y]`, if both x and y are valid domain values for their respective axes/scales, or `undefined`.\n */\n CartesianSeries.prototype.checkDomainXY = function (x, y, isContinuousX, isContinuousY) {\n var isValidDatum = (isContinuousX && isContinuous$1(x) || !isContinuousX && isDiscrete(x)) &&\n (isContinuousY && isContinuous$1(y) || !isContinuousY && isDiscrete(y));\n return isValidDatum ? [x, y] : undefined;\n };\n /**\n * Note: we are passing `isContinuousScale` into this method because it will\n * typically be called inside a loop and this check only needs to happen once.\n * @param value A domain value to be plotted along an axis.\n * @param isContinuousScale Typically this will be the value of `xAxis.scale instanceof ContinuousScale` or `yAxis.scale instanceof ContinuousScale`.\n * @returns `value`, if the value is valid for its axis/scale, or `undefined`.\n */\n CartesianSeries.prototype.checkDatum = function (value, isContinuousScale) {\n if (isContinuousScale && isContinuous$1(value)) {\n return value;\n }\n else if (!isContinuousScale) {\n if (!isDiscrete(value)) {\n return String(value);\n }\n return value;\n }\n return undefined;\n };\n /**\n * Note: we are passing the xAxis and yAxis because the calling code is supposed to make sure\n * that series has both of them defined, and also to avoid one level of indirection,\n * e.g. `this.xAxis!.inRange(x)`, both of which are suboptimal in tight loops where this method is used.\n * @param x A range value to be plotted along the x-axis.\n * @param y A range value to be plotted along the y-axis.\n * @param xAxis The series' x-axis.\n * @param yAxis The series' y-axis.\n * @returns\n */\n CartesianSeries.prototype.checkRangeXY = function (x, y, xAxis, yAxis) {\n return !isNaN(x) && !isNaN(y) && xAxis.inRange(x) && yAxis.inRange(y);\n };\n return CartesianSeries;\n}(Series));\nvar CartesianSeriesMarker = /** @class */ (function (_super) {\n __extends$1L(CartesianSeriesMarker, _super);\n function CartesianSeriesMarker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n return CartesianSeriesMarker;\n}(SeriesMarker));\n\nfunction equal(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor)\n return false;\n var length_1, i = void 0;\n if (Array.isArray(a)) {\n length_1 = a.length;\n if (length_1 != b.length)\n return false;\n for (i = length_1; i-- !== 0;)\n if (!equal(a[i], b[i]))\n return false;\n return true;\n }\n // if ((a instanceof Map) && (b instanceof Map)) {\n // if (a.size !== b.size) return false;\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // for (i of a.entries())\n // if (!equal(i[1], b.get(i[0]))) return false;\n // return true;\n // }\n //\n // if ((a instanceof Set) && (b instanceof Set)) {\n // if (a.size !== b.size) return false;\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // return true;\n // }\n //\n // if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n // length = a.length;\n // if (length != b.length) return false;\n // for (i = length; i-- !== 0;)\n // if (a[i] !== b[i]) return false;\n // return true;\n // }\n if (a.constructor === RegExp)\n return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n var keys = Object.keys(a);\n length_1 = keys.length;\n if (length_1 !== Object.keys(b).length)\n return false;\n for (i = length_1; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length_1; i-- !== 0;) {\n var key = keys[i];\n if (!equal(a[key], b[key]))\n return false;\n }\n return true;\n }\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n}\n\nvar __read$v = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar interpolatePattern = /(#\\{(.*?)\\})/g;\nfunction interpolate(input, values, formats) {\n return input.replace(interpolatePattern, function () {\n var name = arguments[2];\n var _a = __read$v(name.split(':'), 2), valueName = _a[0], formatName = _a[1];\n var value = values[valueName];\n if (typeof value === 'number') {\n var format = formatName && formats && formats[formatName];\n if (format) {\n var _b = format, locales = _b.locales, options = _b.options;\n return value.toLocaleString(locales, options);\n }\n return String(value);\n }\n if (value instanceof Date) {\n var format = formatName && formats && formats[formatName];\n if (typeof format === 'string') {\n var formatter = locale$1.format(format);\n return formatter(value);\n }\n return value.toDateString();\n }\n if (typeof value === 'string' || (value && value.toString)) {\n return String(value);\n }\n return '';\n });\n}\n\nvar element = null;\nfunction sanitizeHtml(text) {\n element = element || document.createElement('div');\n if (!text) {\n return '';\n }\n element.innerText = text;\n return element.innerHTML;\n}\n\nvar __extends$1M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$8 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$w = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$d = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$w(arguments[i]));\n return ar;\n};\nvar AreaSeriesLabel = /** @class */ (function (_super) {\n __extends$1M(AreaSeriesLabel, _super);\n function AreaSeriesLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$P([\n reactive$1('change')\n ], AreaSeriesLabel.prototype, \"formatter\", void 0);\n return AreaSeriesLabel;\n}(Label$1));\nvar AreaSeriesTooltip = /** @class */ (function (_super) {\n __extends$1M(AreaSeriesTooltip, _super);\n function AreaSeriesTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$P([\n reactive$1('change')\n ], AreaSeriesTooltip.prototype, \"renderer\", void 0);\n __decorate$P([\n reactive$1('change')\n ], AreaSeriesTooltip.prototype, \"format\", void 0);\n return AreaSeriesTooltip;\n}(SeriesTooltip));\nvar AreaSeries = /** @class */ (function (_super) {\n __extends$1M(AreaSeries, _super);\n function AreaSeries() {\n var _this = _super.call(this) || this;\n _this.tooltip = new AreaSeriesTooltip();\n _this.areaGroup = _this.group.insertBefore(new Group$1, _this.pickGroup);\n _this.strokeGroup = _this.group.insertBefore(new Group$1, _this.pickGroup);\n _this.markerGroup = _this.pickGroup.appendChild(new Group$1);\n _this.labelGroup = _this.group.appendChild(new Group$1);\n _this.fillSelection = Selection$1.select(_this.areaGroup).selectAll();\n _this.strokeSelection = Selection$1.select(_this.strokeGroup).selectAll();\n _this.markerSelection = Selection$1.select(_this.markerGroup).selectAll();\n _this.labelSelection = Selection$1.select(_this.labelGroup).selectAll();\n /**\n * The assumption is that the values will be reset (to `true`)\n * in the {@link yKeys} setter.\n */\n _this.seriesItemEnabled = new Map();\n _this.xData = [];\n _this.yData = [];\n _this.fillSelectionData = [];\n _this.strokeSelectionData = [];\n _this.markerSelectionData = [];\n _this.labelSelectionData = [];\n _this.yDomain = [];\n _this.xDomain = [];\n _this.directionKeys = {\n x: ['xKey'],\n y: ['yKeys']\n };\n _this.marker = new CartesianSeriesMarker();\n _this.label = new AreaSeriesLabel();\n _this.fills = [\n '#c16068',\n '#a2bf8a',\n '#ebcc87',\n '#80a0c3',\n '#b58dae',\n '#85c0d1'\n ];\n _this.strokes = [\n '#874349',\n '#718661',\n '#a48f5f',\n '#5a7088',\n '#7f637a',\n '#5d8692'\n ];\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this._xKey = '';\n _this.xName = '';\n _this._yKeys = [];\n _this.yNames = [];\n _this.strokeWidth = 2;\n _this.addEventListener('update', _this.scheduleUpdate);\n var _a = _this, marker = _a.marker, label = _a.label;\n marker.enabled = false;\n marker.addPropertyListener('shape', _this.onMarkerShapeChange, _this);\n marker.addEventListener('change', _this.scheduleUpdate, _this);\n label.enabled = false;\n label.addEventListener('change', _this.scheduleUpdate, _this);\n return _this;\n }\n AreaSeries.prototype.onMarkerShapeChange = function () {\n this.markerSelection = this.markerSelection.setData([]);\n this.markerSelection.exit.remove();\n this.fireEvent({ type: 'legendChange' });\n };\n Object.defineProperty(AreaSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n if (this._xKey !== value) {\n this._xKey = value;\n this.xData = [];\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AreaSeries.prototype, \"yKeys\", {\n get: function () {\n return this._yKeys;\n },\n set: function (values) {\n if (!equal(this._yKeys, values)) {\n this._yKeys = values;\n this.yData = [];\n var seriesItemEnabled_1 = this.seriesItemEnabled;\n seriesItemEnabled_1.clear();\n values.forEach(function (key) { return seriesItemEnabled_1.set(key, true); });\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n AreaSeries.prototype.setColors = function (fills, strokes) {\n this.fills = fills;\n this.strokes = strokes;\n };\n Object.defineProperty(AreaSeries.prototype, \"normalizedTo\", {\n get: function () {\n return this._normalizedTo;\n },\n set: function (value) {\n var absValue = value ? Math.abs(value) : undefined;\n if (this._normalizedTo !== absValue) {\n this._normalizedTo = absValue;\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n AreaSeries.prototype.processData = function () {\n var e_1, _a, e_2, _b, e_3, _c;\n var _this = this;\n var _d = this, xKey = _d.xKey, yKeys = _d.yKeys, seriesItemEnabled = _d.seriesItemEnabled, xAxis = _d.xAxis, yAxis = _d.yAxis, normalizedTo = _d.normalizedTo;\n var data = xKey && yKeys.length && this.data ? this.data : [];\n if (!xAxis || !yAxis) {\n return false;\n }\n // If the data is an array of rows like so:\n //\n // [{\n // xKey: 'Jan',\n // yKey1: 5,\n // yKey2: 7,\n // yKey3: -9,\n // }, {\n // xKey: 'Feb',\n // yKey1: 10,\n // yKey2: -15,\n // yKey3: 20\n // }]\n //\n var isContinuousX = xAxis.scale instanceof ContinuousScale$1;\n var isContinuousY = yAxis.scale instanceof ContinuousScale$1;\n var normalized = normalizedTo && isFinite(normalizedTo);\n var yData = [];\n var xData = [];\n var xValues = [];\n var _loop_1 = function (datum) {\n // X datum\n if (!(xKey in datum)) {\n doOnce$1(function () { return console.warn(\"The key '\" + xKey + \"' was not found in the data: \", datum); }, xKey + \" not found in data\");\n return \"continue\";\n }\n var xDatum = this_1.checkDatum(datum[xKey], isContinuousX);\n if (isContinuousX && xDatum === undefined) {\n return \"continue\";\n }\n else {\n xValues.push(xDatum);\n xData.push({ xDatum: xDatum, seriesDatum: datum });\n }\n // Y datum\n yKeys.forEach(function (yKey, i) {\n if (!(yKey in datum)) {\n doOnce$1(function () { return console.warn(\"The key '\" + yKey + \"' was not found in the data: \", datum); }, yKey + \" not found in data\");\n return;\n }\n var value = datum[yKey];\n var seriesYs = yData[i] || (yData[i] = []);\n if (!seriesItemEnabled.get(yKey)) {\n seriesYs.push(0);\n }\n else {\n var yDatum = _this.checkDatum(value, isContinuousY);\n seriesYs.push(yDatum);\n }\n });\n };\n var this_1 = this;\n try {\n for (var data_1 = __values$8(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n _loop_1(datum);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.yData = yData;\n this.xData = xData;\n this.xDomain = isContinuousX ? this.fixNumericExtent(extent$1(xValues, isContinuous$1), 'x', xAxis) : xValues;\n // xData: ['Jan', 'Feb', undefined]\n //\n // yData: [\n // [5, 10], <- series 1 (yKey1)\n // [7, -15], <- series 2 (yKey2)\n // [-9, 20] <- series 3 (yKey3)\n // ]\n var yMin = 0;\n var yMax = 0;\n for (var i = 0; i < xData.length; i++) {\n var total = { sum: 0, absSum: 0 };\n try {\n for (var yData_1 = (e_2 = void 0, __values$8(yData)), yData_1_1 = yData_1.next(); !yData_1_1.done; yData_1_1 = yData_1.next()) {\n var seriesYs = yData_1_1.value;\n if (seriesYs[i] === undefined) {\n continue;\n }\n var y = +seriesYs[i]; // convert to number as the value could be a Date object\n total.absSum += Math.abs(y);\n total.sum += y;\n if (total.sum > yMax) {\n yMax = total.sum;\n }\n else if (total.sum < yMin) {\n yMin = total.sum;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (yData_1_1 && !yData_1_1.done && (_b = yData_1.return)) _b.call(yData_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (!(normalized && normalizedTo)) {\n continue;\n }\n var normalizedTotal = 0;\n try {\n // normalize y values using the absolute sum of y values in the stack\n for (var yData_2 = (e_3 = void 0, __values$8(yData)), yData_2_1 = yData_2.next(); !yData_2_1.done; yData_2_1 = yData_2.next()) {\n var seriesYs = yData_2_1.value;\n var normalizedY = +seriesYs[i] / total.absSum * normalizedTo;\n seriesYs[i] = normalizedY;\n // sum normalized values to get updated yMin and yMax of normalized area\n normalizedTotal += normalizedY;\n if (normalizedTotal > yMax) {\n yMax = normalizedTotal;\n }\n else if (normalizedTotal < yMin) {\n yMin = normalizedTotal;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (yData_2_1 && !yData_2_1.done && (_c = yData_2.return)) _c.call(yData_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n if (normalized && normalizedTo) {\n // multiplier to control the unused whitespace in the y domain, value selected by subjective visual 'niceness'.\n var domainWhitespaceAdjustment = 0.5;\n // set the yMin and yMax based on cumulative sum of normalized values\n yMin = yMin < (-normalizedTo * domainWhitespaceAdjustment) ? -normalizedTo : yMin;\n yMax = yMax > (normalizedTo * domainWhitespaceAdjustment) ? normalizedTo : yMax;\n }\n this.yDomain = this.fixNumericExtent([yMin, yMax], 'y', yAxis);\n this.fireEvent({ type: 'dataProcessed' });\n return true;\n };\n AreaSeries.prototype.findLargestMinMax = function (totals) {\n var e_4, _a;\n var min = 0;\n var max = 0;\n try {\n for (var totals_1 = __values$8(totals), totals_1_1 = totals_1.next(); !totals_1_1.done; totals_1_1 = totals_1.next()) {\n var total = totals_1_1.value;\n if (total.min < min) {\n min = total.min;\n }\n if (total.max > max) {\n max = total.max;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (totals_1_1 && !totals_1_1.done && (_a = totals_1.return)) _a.call(totals_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return { min: min, max: max };\n };\n AreaSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n else {\n return this.yDomain;\n }\n };\n AreaSeries.prototype.update = function () {\n this.updatePending = false;\n this.updateSelections();\n this.updateNodes();\n };\n AreaSeries.prototype.updateSelections = function () {\n if (!this.nodeDataPending) {\n return;\n }\n this.nodeDataPending = false;\n this.createSelectionData();\n this.updateFillSelection();\n this.updateStrokeSelection();\n this.updateMarkerSelection();\n this.updateLabelSelection();\n };\n AreaSeries.prototype.updateNodes = function () {\n this.group.visible = this.visible && this.xData.length > 0 && this.yData.length > 0;\n this.updateFillNodes();\n this.updateStrokeNodes();\n this.updateMarkerNodes();\n this.updateLabelNodes();\n };\n AreaSeries.prototype.createSelectionData = function () {\n var _this = this;\n var _a = this, data = _a.data, xAxis = _a.xAxis, yAxis = _a.yAxis, xData = _a.xData, yData = _a.yData, labelSelectionData = _a.labelSelectionData, markerSelectionData = _a.markerSelectionData, strokeSelectionData = _a.strokeSelectionData, fillSelectionData = _a.fillSelectionData, xKey = _a.xKey;\n if (!data || !xAxis || !yAxis || !xData.length || !yData.length) {\n return;\n }\n var _b = this, yKeys = _b.yKeys, marker = _b.marker, label = _b.label, fills = _b.fills, strokes = _b.strokes;\n var xScale = xAxis.scale;\n var yScale = yAxis.scale;\n var continuousY = yScale instanceof ContinuousScale$1;\n var xOffset = (xScale.bandwidth || 0) / 2;\n markerSelectionData.length = 0;\n labelSelectionData.length = 0;\n strokeSelectionData.length = 0;\n fillSelectionData.length = 0;\n var cumulativePathValues = new Array(xData.length).fill(null).map(function () { return ({ left: 0, right: 0 }); });\n var cumulativeMarkerValues = new Array(xData.length).fill(0);\n var createPathCoordinates = function (xDatum, yDatum, idx, side) {\n var x = xScale.convert(xDatum) + xOffset;\n var prevY = cumulativePathValues[idx][side];\n var currY = cumulativePathValues[idx][side] + yDatum;\n var prevYCoordinate = yScale.convert(prevY, continuousY ? clamper$1 : undefined);\n var currYCoordinate = yScale.convert(currY, continuousY ? clamper$1 : undefined);\n cumulativePathValues[idx][side] = currY;\n return [\n { x: x, y: currYCoordinate },\n { x: x, y: prevYCoordinate },\n ];\n };\n var createMarkerCoordinate = function (xDatum, yDatum, idx, rawYDatum) {\n var currY;\n // if not normalized, the invalid data points will be processed as `undefined` in processData()\n // if normalized, the invalid data points will be processed as 0 rather than `undefined`\n // check if unprocessed datum is valid as we only want to show markers for valid points\n var normalized = _this.normalizedTo && isFinite(_this.normalizedTo);\n var normalizedAndValid = normalized && continuousY && isContinuous$1(rawYDatum);\n var valid = (!normalized && !isNaN(yDatum)) || normalizedAndValid;\n if (valid) {\n currY = cumulativeMarkerValues[idx] += yDatum;\n }\n var x = xScale.convert(xDatum) + xOffset;\n var y = yScale.convert(currY, continuousY ? clamper$1 : undefined);\n return { x: x, y: y };\n };\n yData.forEach(function (seriesYs, seriesIdx) {\n var yKey = yKeys[seriesIdx];\n var fillSelectionForSeries = fillSelectionData[seriesIdx] || (fillSelectionData[seriesIdx] = { itemId: yKey, points: [] });\n var fillPoints = fillSelectionForSeries.points;\n var fillPhantomPoints = [];\n var strokeDatum = strokeSelectionData[seriesIdx] || (strokeSelectionData[seriesIdx] = { itemId: yKey, points: [], yValues: [] });\n var strokePoints = strokeDatum.points;\n var yValues = strokeDatum.yValues;\n seriesYs.forEach(function (yDatum, datumIdx) {\n var _a;\n var _b = xData[datumIdx], xDatum = _b.xDatum, seriesDatum = _b.seriesDatum;\n var nextXDatum = (_a = xData[datumIdx + 1]) === null || _a === void 0 ? void 0 : _a.xDatum;\n var nextYDatum = seriesYs[datumIdx + 1];\n // marker data\n var point = createMarkerCoordinate(xDatum, +yDatum, datumIdx, seriesDatum[yKey]);\n if (marker) {\n markerSelectionData.push({\n index: datumIdx,\n series: _this,\n itemId: yKey,\n datum: seriesDatum,\n yValue: yDatum,\n yKey: yKey,\n point: point,\n fill: fills[seriesIdx % fills.length],\n stroke: strokes[seriesIdx % strokes.length]\n });\n }\n // label data\n var labelText;\n if (label.formatter) {\n labelText = label.formatter({ value: yDatum });\n }\n else {\n labelText = isNumber$1(yDatum) ? Number(yDatum).toFixed(2) : String(yDatum);\n }\n if (label) {\n labelSelectionData.push({\n index: datumIdx,\n itemId: yKey,\n point: point,\n label: _this.seriesItemEnabled.get(yKey) && labelText ? {\n text: labelText,\n fontStyle: label.fontStyle,\n fontWeight: label.fontWeight,\n fontSize: label.fontSize,\n fontFamily: label.fontFamily,\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: label.color\n } : undefined\n });\n }\n // fill data\n // Handle data in pairs of current and next x and y values\n var windowX = [xDatum, nextXDatum];\n var windowY = [yDatum, nextYDatum];\n if (windowX.some(function (v) { return v == undefined; })) {\n return;\n }\n if (windowY.some(function (v) { return v == undefined; })) {\n windowY[0] = 0;\n windowY[1] = 0;\n }\n var currCoordinates = createPathCoordinates(windowX[0], +windowY[0], datumIdx, 'right');\n fillPoints.push(currCoordinates[0]);\n fillPhantomPoints.push(currCoordinates[1]);\n var nextCoordinates = createPathCoordinates(windowX[1], +windowY[1], datumIdx, 'left');\n fillPoints.push(nextCoordinates[0]);\n fillPhantomPoints.push(nextCoordinates[1]);\n // stroke data\n strokePoints.push({ x: NaN, y: NaN }); // moveTo\n yValues.push(undefined);\n strokePoints.push(currCoordinates[0]);\n yValues.push(yDatum);\n if (nextYDatum !== undefined) {\n strokePoints.push(nextCoordinates[0]);\n yValues.push(yDatum);\n }\n });\n fillPoints.push.apply(fillPoints, __spread$d(fillPhantomPoints.slice().reverse()));\n });\n };\n AreaSeries.prototype.updateFillSelection = function () {\n var updateFills = this.fillSelection.setData(this.fillSelectionData);\n updateFills.exit.remove();\n var enterFills = updateFills.enter.append(Path$1)\n .each(function (path) {\n path.lineJoin = 'round';\n path.stroke = undefined;\n path.pointerEvents = PointerEvents$1.None;\n });\n this.fillSelection = updateFills.merge(enterFills);\n };\n AreaSeries.prototype.updateFillNodes = function () {\n var _this = this;\n var _a = this, fills = _a.fills, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, strokeWidth = _a.strokeWidth, shadow = _a.shadow, seriesItemEnabled = _a.seriesItemEnabled;\n this.fillSelection.each(function (shape, datum, index) {\n shape.fill = fills[index % fills.length];\n shape.fillOpacity = fillOpacity;\n shape.strokeOpacity = strokeOpacity;\n shape.strokeWidth = strokeWidth;\n shape.lineDash = _this.lineDash;\n shape.lineDashOffset = _this.lineDashOffset;\n shape.fillShadow = shadow;\n shape.visible = !!seriesItemEnabled.get(datum.itemId);\n shape.opacity = _this.getOpacity(datum);\n var points = datum.points;\n var path = shape.path;\n path.clear();\n points.forEach(function (_a, i) {\n var x = _a.x, y = _a.y;\n if (i > 0) {\n path.lineTo(x, y);\n }\n else {\n path.moveTo(x, y);\n }\n });\n path.closePath();\n });\n };\n AreaSeries.prototype.updateStrokeSelection = function () {\n var updateStrokes = this.strokeSelection.setData(this.strokeSelectionData);\n updateStrokes.exit.remove();\n var enterStrokes = updateStrokes.enter.append(Path$1)\n .each(function (path) {\n path.fill = undefined;\n path.lineJoin = path.lineCap = 'round';\n path.pointerEvents = PointerEvents$1.None;\n });\n this.strokeSelection = updateStrokes.merge(enterStrokes);\n };\n AreaSeries.prototype.updateStrokeNodes = function () {\n var _this = this;\n if (!this.data) {\n return;\n }\n var _a = this, strokes = _a.strokes, strokeOpacity = _a.strokeOpacity, seriesItemEnabled = _a.seriesItemEnabled;\n var moveTo = true;\n this.strokeSelection.each(function (shape, datum, index) {\n shape.visible = !!seriesItemEnabled.get(datum.itemId);\n shape.opacity = _this.getOpacity(datum);\n shape.stroke = strokes[index % strokes.length];\n shape.strokeWidth = _this.getStrokeWidth(_this.strokeWidth, datum);\n shape.strokeOpacity = strokeOpacity;\n shape.lineDash = _this.lineDash;\n shape.lineDashOffset = _this.lineDashOffset;\n var points = datum.points, yValues = datum.yValues;\n var path = shape.path;\n path.clear();\n for (var i = 0; i < points.length; i++) {\n var _a = points[i], x = _a.x, y = _a.y;\n if (yValues[i] === undefined) {\n moveTo = true;\n }\n else {\n if (moveTo) {\n path.moveTo(x, y);\n moveTo = false;\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n });\n };\n AreaSeries.prototype.updateMarkerSelection = function () {\n var MarkerShape = getMarker$1(this.marker.shape);\n var data = MarkerShape ? this.markerSelectionData : [];\n var updateMarkers = this.markerSelection.setData(data);\n updateMarkers.exit.remove();\n var enterMarkers = updateMarkers.enter.append(MarkerShape);\n this.markerSelection = updateMarkers.merge(enterMarkers);\n };\n AreaSeries.prototype.updateMarkerNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this, xKey = _a.xKey, marker = _a.marker, seriesItemEnabled = _a.seriesItemEnabled, yKeys = _a.yKeys, fills = _a.fills, strokes = _a.strokes, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f;\n var size = marker.size, formatter = marker.formatter;\n var markerStrokeWidth = marker.strokeWidth !== undefined ? marker.strokeWidth : this.strokeWidth;\n this.markerSelection.each(function (node, datum) {\n var yKeyIndex = yKeys.indexOf(datum.yKey);\n var isDatumHighlighted = datum === highlightedDatum;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : marker.fill || fills[yKeyIndex % fills.length];\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : marker.stroke || strokes[yKeyIndex % fills.length];\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n xKey: xKey,\n yKey: datum.yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted\n });\n }\n node.fill = format && format.fill || fill;\n node.stroke = format && format.stroke || stroke;\n node.strokeWidth = format && format.strokeWidth !== undefined\n ? format.strokeWidth\n : strokeWidth;\n node.size = format && format.size !== undefined\n ? format.size\n : size;\n node.translationX = datum.point.x;\n node.translationY = datum.point.y;\n node.visible = marker.enabled && node.size > 0 && !!seriesItemEnabled.get(datum.yKey) && !isNaN(datum.point.x) && !isNaN(datum.point.y);\n node.opacity = _this.getOpacity(datum);\n });\n };\n AreaSeries.prototype.updateLabelSelection = function () {\n var updateLabels = this.labelSelection.setData(this.labelSelectionData);\n updateLabels.exit.remove();\n var enterLabels = updateLabels.enter.append(Text$2);\n this.labelSelection = updateLabels.merge(enterLabels);\n };\n AreaSeries.prototype.updateLabelNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n this.labelSelection.each(function (text, datum) {\n var point = datum.point, label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = point.x;\n text.y = point.y - 10;\n text.fill = color;\n text.visible = true;\n text.opacity = _this.getOpacity(datum);\n }\n else {\n text.visible = false;\n }\n });\n };\n AreaSeries.prototype.getNodeData = function () {\n return this.markerSelectionData;\n };\n AreaSeries.prototype.fireNodeClickEvent = function (event, datum) {\n this.fireEvent({\n type: 'nodeClick',\n event: event,\n series: this,\n datum: datum.datum,\n xKey: this.xKey,\n yKey: datum.yKey\n });\n };\n AreaSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var xKey = this.xKey;\n var yKey = nodeDatum.yKey;\n if (!(xKey && yKey) || !this.seriesItemEnabled.get(yKey)) {\n return '';\n }\n var datum = nodeDatum.datum;\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var _a = this, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!(xAxis && yAxis && isNumber$1(yValue))) {\n return '';\n }\n var _b = this, xName = _b.xName, yKeys = _b.yKeys, yNames = _b.yNames, yData = _b.yData, fills = _b.fills, strokes = _b.strokes, tooltip = _b.tooltip, marker = _b.marker;\n var size = marker.size, markerFormatter = marker.formatter, markerStrokeWidth = marker.strokeWidth, markerFill = marker.fill, markerStroke = marker.stroke;\n var xString = xAxis.formatDatum(xValue);\n var yString = yAxis.formatDatum(yValue);\n var yKeyIndex = yKeys.indexOf(yKey);\n var seriesYs = yData[yKeyIndex];\n var processedYValue = seriesYs[nodeDatum.index];\n var yName = yNames[yKeyIndex];\n var title = sanitizeHtml(yName);\n var content = sanitizeHtml(xString + ': ' + yString);\n var strokeWidth = markerStrokeWidth !== undefined ? markerStrokeWidth : this.strokeWidth;\n var fill = markerFill || fills[yKeyIndex % fills.length];\n var stroke = markerStroke || strokes[yKeyIndex % fills.length];\n var format = undefined;\n if (markerFormatter) {\n format = markerFormatter({\n datum: datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false\n });\n }\n var color = format && format.fill || fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content\n };\n var tooltipRenderer = tooltip.renderer, tooltipFormat = tooltip.format;\n if (tooltipFormat || tooltipRenderer) {\n var params = {\n datum: datum,\n xKey: xKey,\n xName: xName,\n xValue: xValue,\n yKey: yKey,\n yValue: yValue,\n processedYValue: processedYValue,\n yName: yName,\n color: color\n };\n if (tooltipFormat) {\n return toTooltipHtml$1({\n content: interpolate(tooltipFormat, params)\n }, defaults);\n }\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer(params), defaults);\n }\n }\n return toTooltipHtml$1(defaults);\n };\n AreaSeries.prototype.listSeriesItems = function (legendData) {\n var _a = this, data = _a.data, id = _a.id, xKey = _a.xKey, yKeys = _a.yKeys, yNames = _a.yNames, seriesItemEnabled = _a.seriesItemEnabled, marker = _a.marker, fills = _a.fills, strokes = _a.strokes, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity;\n if (data && data.length && xKey && yKeys.length) {\n yKeys.forEach(function (yKey, index) {\n legendData.push({\n id: id,\n itemId: yKey,\n enabled: seriesItemEnabled.get(yKey) || false,\n label: {\n text: yNames[index] || yKeys[index]\n },\n marker: {\n shape: marker.shape,\n fill: marker.fill || fills[index % fills.length],\n stroke: marker.stroke || strokes[index % strokes.length],\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity\n }\n });\n });\n }\n };\n AreaSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n this.seriesItemEnabled.set(itemId, enabled);\n this.scheduleData();\n };\n AreaSeries.className = 'AreaSeries';\n AreaSeries.type = 'area';\n __decorate$P([\n reactive$1('dataChange')\n ], AreaSeries.prototype, \"fills\", void 0);\n __decorate$P([\n reactive$1('dataChange')\n ], AreaSeries.prototype, \"strokes\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"fillOpacity\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"lineDash\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"xName\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"yNames\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"strokeWidth\", void 0);\n __decorate$P([\n reactive$1('update')\n ], AreaSeries.prototype, \"shadow\", void 0);\n return AreaSeries;\n}(CartesianSeries));\n\nvar __extends$1N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$9 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar BarSeriesNodeTag;\n(function (BarSeriesNodeTag) {\n BarSeriesNodeTag[BarSeriesNodeTag[\"Bar\"] = 0] = \"Bar\";\n BarSeriesNodeTag[BarSeriesNodeTag[\"Label\"] = 1] = \"Label\";\n})(BarSeriesNodeTag || (BarSeriesNodeTag = {}));\nvar BarLabelPlacement;\n(function (BarLabelPlacement) {\n BarLabelPlacement[\"Inside\"] = \"inside\";\n BarLabelPlacement[\"Outside\"] = \"outside\";\n})(BarLabelPlacement || (BarLabelPlacement = {}));\nvar BarSeriesLabel = /** @class */ (function (_super) {\n __extends$1N(BarSeriesLabel, _super);\n function BarSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.placement = BarLabelPlacement.Inside;\n return _this;\n }\n __decorate$Q([\n reactive$1('change')\n ], BarSeriesLabel.prototype, \"formatter\", void 0);\n __decorate$Q([\n reactive$1('change')\n ], BarSeriesLabel.prototype, \"placement\", void 0);\n return BarSeriesLabel;\n}(Label$1));\nvar BarSeriesTooltip = /** @class */ (function (_super) {\n __extends$1N(BarSeriesTooltip, _super);\n function BarSeriesTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$Q([\n reactive$1('change')\n ], BarSeriesTooltip.prototype, \"renderer\", void 0);\n return BarSeriesTooltip;\n}(SeriesTooltip));\nfunction flat(arr, target) {\n if (target === void 0) { target = []; }\n arr.forEach(function (v) {\n if (Array.isArray(v)) {\n flat(v, target);\n }\n else {\n target.push(v);\n }\n });\n return target;\n}\nfunction is2dArray(array) {\n return array.length > 0 && Array.isArray(array[0]);\n}\nvar BarSeries = /** @class */ (function (_super) {\n __extends$1N(BarSeries, _super);\n function BarSeries() {\n var _a;\n var _this = _super.call(this) || this;\n // Need to put bar and label nodes into separate groups, because even though label nodes are\n // created after the bar nodes, this only guarantees that labels will always be on top of bars\n // on the first run. If on the next run more bars are added, they might clip the labels\n // rendered during the previous run.\n _this.rectGroup = _this.pickGroup.appendChild(new Group$1);\n _this.labelGroup = _this.group.appendChild(new Group$1);\n _this.rectSelection = Selection$1.select(_this.rectGroup).selectAll();\n _this.labelSelection = Selection$1.select(_this.labelGroup).selectAll();\n _this.nodeData = [];\n _this.xData = [];\n _this.yData = [];\n _this.yDomain = [];\n _this.label = new BarSeriesLabel();\n /**\n * The assumption is that the values will be reset (to `true`)\n * in the {@link yKeys} setter.\n */\n _this.seriesItemEnabled = new Map();\n _this.tooltip = new BarSeriesTooltip();\n _this.flipXY = false;\n _this.fills = [\n '#c16068',\n '#a2bf8a',\n '#ebcc87',\n '#80a0c3',\n '#b58dae',\n '#85c0d1'\n ];\n _this.strokes = [\n '#874349',\n '#718661',\n '#a48f5f',\n '#5a7088',\n '#7f637a',\n '#5d8692'\n ];\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n /**\n * Used to get the position of bars within each group.\n */\n _this.groupScale = new BandScale$1();\n _this.directionKeys = (_a = {},\n _a[ChartAxisDirection.X] = ['xKey'],\n _a[ChartAxisDirection.Y] = ['yKeys'],\n _a);\n _this._xKey = '';\n _this._xName = '';\n _this.cumYKeyCount = [];\n _this.flatYKeys = undefined; // only set when a user used a flat array for yKeys\n _this.hideInLegend = [];\n /**\n * yKeys: [['coffee']] - regular bars, each category has a single bar that shows a value for coffee\n * yKeys: [['coffee'], ['tea'], ['milk']] - each category has three bars that show values for coffee, tea and milk\n * yKeys: [['coffee', 'tea', 'milk']] - each category has a single bar with three stacks that show values for coffee, tea and milk\n * yKeys: [['coffee', 'tea', 'milk'], ['paper', 'ink']] - each category has 2 stacked bars,\n * first showing values for coffee, tea and milk and second values for paper and ink\n */\n _this._yKeys = [];\n _this._grouped = false;\n /**\n * A map of `yKeys` to their names (used in legends and tooltips).\n * For example, if a key is `product_name` it's name can be a more presentable `Product Name`.\n */\n _this._yNames = {};\n _this._strokeWidth = 1;\n _this.addEventListener('update', _this.scheduleUpdate);\n _this.label.enabled = false;\n _this.label.addEventListener('change', _this.scheduleUpdate, _this);\n return _this;\n }\n BarSeries.prototype.getKeys = function (direction) {\n var _this = this;\n var directionKeys = this.directionKeys;\n var keys = directionKeys && directionKeys[this.flipXY ? flipChartAxisDirection(direction) : direction];\n var values = [];\n if (keys) {\n keys.forEach(function (key) {\n var value = _this[key];\n if (value) {\n if (Array.isArray(value)) {\n values = values.concat(flat(value));\n }\n else {\n values.push(value);\n }\n }\n });\n }\n return values;\n };\n Object.defineProperty(BarSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n if (this._xKey !== value) {\n this._xKey = value;\n this.xData = [];\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"xName\", {\n get: function () {\n return this._xName;\n },\n set: function (value) {\n if (this._xName !== value) {\n this._xName = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"yKeys\", {\n get: function () {\n return this._yKeys;\n },\n set: function (yKeys) {\n var _this = this;\n var flatYKeys = undefined;\n // Convert from flat y-keys to grouped y-keys.\n if (!is2dArray(yKeys)) {\n flatYKeys = yKeys;\n yKeys = this.grouped ? flatYKeys.map(function (k) { return [k]; }) : [flatYKeys];\n }\n if (!equal(this._yKeys, yKeys)) {\n this.flatYKeys = flatYKeys ? flatYKeys : undefined;\n this._yKeys = yKeys;\n var prevYKeyCount_1 = 0;\n this.cumYKeyCount = [];\n var visibleStacks_1 = [];\n yKeys.forEach(function (stack, index) {\n if (stack.length > 0) {\n visibleStacks_1.push(String(index));\n }\n _this.cumYKeyCount.push(prevYKeyCount_1);\n prevYKeyCount_1 += stack.length;\n });\n this.yData = [];\n var seriesItemEnabled_1 = this.seriesItemEnabled;\n seriesItemEnabled_1.clear();\n yKeys.forEach(function (stack) {\n stack.forEach(function (yKey) { return seriesItemEnabled_1.set(yKey, true); });\n });\n var groupScale = this.groupScale;\n groupScale.domain = visibleStacks_1;\n groupScale.padding = 0.1;\n groupScale.round = true;\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"grouped\", {\n get: function () {\n return this._grouped;\n },\n set: function (value) {\n if (this._grouped !== value) {\n this._grouped = value;\n if (this.flatYKeys) {\n this.yKeys = this.flatYKeys;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"yNames\", {\n get: function () {\n return this._yNames;\n },\n set: function (values) {\n if (Array.isArray(values) && this.flatYKeys) {\n var map_1 = {};\n this.flatYKeys.forEach(function (k, i) {\n map_1[k] = values[i];\n });\n values = map_1;\n }\n this._yNames = values;\n this.scheduleData();\n },\n enumerable: true,\n configurable: true\n });\n BarSeries.prototype.setColors = function (fills, strokes) {\n this.fills = fills;\n this.strokes = strokes;\n };\n Object.defineProperty(BarSeries.prototype, \"normalizedTo\", {\n get: function () {\n return this._normalizedTo;\n },\n set: function (value) {\n var absValue = value ? Math.abs(value) : undefined;\n if (this._normalizedTo !== absValue) {\n this._normalizedTo = absValue;\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"strokeWidth\", {\n get: function () {\n return this._strokeWidth;\n },\n set: function (value) {\n if (this._strokeWidth !== value) {\n this._strokeWidth = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BarSeries.prototype, \"shadow\", {\n get: function () {\n return this._shadow;\n },\n set: function (value) {\n if (this._shadow !== value) {\n this._shadow = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n BarSeries.prototype.onHighlightChange = function () {\n this.updateRectNodes();\n };\n BarSeries.prototype.processData = function () {\n var _this = this;\n var _a = this, xKey = _a.xKey, yKeys = _a.yKeys, seriesItemEnabled = _a.seriesItemEnabled, xAxis = _a.xAxis;\n var data = xKey && yKeys.length && this.data ? this.data : [];\n if (!xAxis) {\n return false;\n }\n var keysFound = true; // only warn once\n this.xData = data.map(function (datum) {\n if (keysFound && !(xKey in datum)) {\n keysFound = false;\n console.warn(\"The key '\" + xKey + \"' was not found in the data: \", datum);\n }\n return _this.checkDatum(datum[xKey], false);\n });\n this.yData = data.map(function (datum) { return yKeys.map(function (stack) {\n return stack.map(function (yKey) {\n if (keysFound && !(yKey in datum)) {\n keysFound = false;\n console.warn(\"The key '\" + yKey + \"' was not found in the data: \", datum);\n }\n var yDatum = _this.checkDatum(datum[yKey], true);\n if (!seriesItemEnabled.get(yKey) || yDatum === undefined) {\n return 0;\n }\n return yDatum;\n });\n }); });\n // Contains min/max values for each stack in each group,\n // where min is zero and max is a positive total of all values in the stack\n // or min is a negative total of all values in the stack and max is zero.\n var yMinMax = this.yData.map(function (group) { return group.map(function (stack) { return findMinMax(stack); }); });\n var _b = this, yData = _b.yData, normalizedTo = _b.normalizedTo;\n // Calculate the sum of the absolute values of all items in each stack in each group. Used for normalization of stacked bars.\n var yAbsTotal = this.yData.map(function (group) { return group.map(function (stack) { return stack.reduce(function (acc, stack) {\n acc += Math.abs(stack);\n return acc;\n }, 0); }); });\n var yLargestMinMax = this.findLargestMinMax(yMinMax);\n var yMin;\n var yMax;\n if (normalizedTo && isFinite(normalizedTo)) {\n yMin = yLargestMinMax.min < 0 ? -normalizedTo : 0;\n yMax = yLargestMinMax.max > 0 ? normalizedTo : 0;\n yData.forEach(function (group, i) {\n group.forEach(function (stack, j) {\n stack.forEach(function (y, k) {\n stack[k] = y / yAbsTotal[i][j] * normalizedTo;\n });\n });\n });\n }\n else {\n yMin = yLargestMinMax.min;\n yMax = yLargestMinMax.max;\n }\n this.yDomain = this.fixNumericExtent([yMin, yMax], 'y', this.yAxis);\n this.fireEvent({ type: 'dataProcessed' });\n return true;\n };\n BarSeries.prototype.findLargestMinMax = function (groups) {\n var e_1, _a, e_2, _b;\n var tallestStackMin = 0;\n var tallestStackMax = 0;\n try {\n for (var groups_1 = __values$9(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) {\n var group = groups_1_1.value;\n try {\n for (var group_1 = (e_2 = void 0, __values$9(group)), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {\n var stack = group_1_1.value;\n if (stack.min < tallestStackMin) {\n tallestStackMin = stack.min;\n }\n if (stack.max > tallestStackMax) {\n tallestStackMax = stack.max;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (group_1_1 && !group_1_1.done && (_b = group_1.return)) _b.call(group_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (groups_1_1 && !groups_1_1.done && (_a = groups_1.return)) _a.call(groups_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { min: tallestStackMin, max: tallestStackMax };\n };\n BarSeries.prototype.getDomain = function (direction) {\n if (this.flipXY) {\n direction = flipChartAxisDirection(direction);\n }\n if (direction === ChartAxisDirection.X) {\n return this.xData;\n }\n else {\n return this.yDomain;\n }\n };\n BarSeries.prototype.fireNodeClickEvent = function (event, datum) {\n this.fireEvent({\n type: 'nodeClick',\n event: event,\n series: this,\n datum: datum.datum,\n xKey: this.xKey,\n yKey: datum.yKey\n });\n };\n BarSeries.prototype.getCategoryAxis = function () {\n return this.flipXY ? this.yAxis : this.xAxis;\n };\n BarSeries.prototype.getValueAxis = function () {\n return this.flipXY ? this.xAxis : this.yAxis;\n };\n BarSeries.prototype.createNodeData = function () {\n var _this = this;\n var _a = this, chart = _a.chart, data = _a.data, visible = _a.visible;\n var xAxis = this.getCategoryAxis();\n var yAxis = this.getValueAxis();\n if (!(chart && data && visible && xAxis && yAxis) || chart.layoutPending || chart.dataPending) {\n return [];\n }\n var flipXY = this.flipXY;\n var xScale = xAxis.scale;\n var yScale = yAxis.scale;\n var _b = this, groupScale = _b.groupScale, yKeys = _b.yKeys, cumYKeyCount = _b.cumYKeyCount, fills = _b.fills, strokes = _b.strokes, strokeWidth = _b.strokeWidth, seriesItemEnabled = _b.seriesItemEnabled, xData = _b.xData, yData = _b.yData, label = _b.label;\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n groupScale.range = [0, xScale.bandwidth];\n var barWidth = groupScale.bandwidth ;\n var nodeData = [];\n xData.forEach(function (group, groupIndex) {\n var seriesDatum = data[groupIndex];\n var x = xScale.convert(group);\n var groupYs = yData[groupIndex]; // y-data for groups of stacks\n for (var stackIndex = 0; stackIndex < groupYs.length; stackIndex++) {\n var stackYs = groupYs[stackIndex]; // y-data for a stack within a group\n var prevMinY = 0;\n var prevMaxY = 0;\n for (var levelIndex = 0; levelIndex < stackYs.length; levelIndex++) {\n var currY = +stackYs[levelIndex];\n var yKey = yKeys[stackIndex][levelIndex];\n var barX = x + groupScale.convert(String(stackIndex)) ;\n // Bars outside of visible range are not rendered, so we create node data\n // only for the visible subset of user data.\n if (!xAxis.inRange(barX, barWidth)) {\n continue;\n }\n var prevY = currY < 0 ? prevMinY : prevMaxY;\n var continuousY = yScale instanceof ContinuousScale$1;\n var y = yScale.convert(prevY + currY, continuousY ? clamper$1 : undefined);\n var bottomY = yScale.convert(prevY, continuousY ? clamper$1 : undefined);\n var yValue = seriesDatum[yKey]; // unprocessed y-value\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({ value: isNumber$1(yValue) ? yValue : undefined });\n }\n else {\n labelText = isNumber$1(yValue) ? yValue.toFixed(2) : '';\n }\n var labelX = void 0;\n var labelY = void 0;\n if (flipXY) {\n labelY = barX + barWidth / 2;\n if (labelPlacement === BarLabelPlacement.Inside) {\n labelX = y + (yValue >= 0 ? -1 : 1) * Math.abs(bottomY - y) / 2;\n }\n else {\n labelX = y + (yValue >= 0 ? 1 : -1) * 4;\n }\n }\n else {\n labelX = barX + barWidth / 2;\n if (labelPlacement === BarLabelPlacement.Inside) {\n labelY = y + (yValue >= 0 ? 1 : -1) * Math.abs(bottomY - y) / 2;\n }\n else {\n labelY = y + (yValue >= 0 ? -3 : 4);\n }\n }\n var labelTextAlign = void 0;\n var labelTextBaseline = void 0;\n if (labelPlacement === BarLabelPlacement.Inside) {\n labelTextAlign = 'center';\n labelTextBaseline = 'middle';\n }\n else {\n labelTextAlign = flipXY ? (yValue >= 0 ? 'start' : 'end') : 'center';\n labelTextBaseline = flipXY ? 'middle' : (yValue >= 0 ? 'bottom' : 'top');\n }\n var colorIndex = cumYKeyCount[stackIndex] + levelIndex;\n nodeData.push({\n index: groupIndex,\n series: _this,\n itemId: yKey,\n datum: seriesDatum,\n yValue: yValue,\n yKey: yKey,\n x: flipXY ? Math.min(y, bottomY) : barX,\n y: flipXY ? barX : Math.min(y, bottomY),\n width: flipXY ? Math.abs(bottomY - y) : barWidth,\n height: flipXY ? barWidth : Math.abs(bottomY - y),\n fill: fills[colorIndex % fills.length],\n stroke: strokes[colorIndex % strokes.length],\n strokeWidth: strokeWidth,\n label: seriesItemEnabled.get(yKey) && labelText ? {\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n x: labelX,\n y: labelY\n } : undefined\n });\n if (currY < 0) {\n prevMinY += currY;\n }\n else {\n prevMaxY += currY;\n }\n }\n }\n });\n return this.nodeData = nodeData;\n };\n BarSeries.prototype.update = function () {\n this.updatePending = false;\n this.updateSelections();\n this.updateNodes();\n };\n BarSeries.prototype.updateSelections = function () {\n if (!this.nodeDataPending) {\n return;\n }\n this.nodeDataPending = false;\n this.createNodeData();\n this.updateRectSelection();\n this.updateLabelSelection();\n };\n BarSeries.prototype.updateNodes = function () {\n this.group.visible = this.visible;\n this.updateRectNodes();\n this.updateLabelNodes();\n };\n BarSeries.prototype.updateRectSelection = function () {\n var updateRects = this.rectSelection.setData(this.nodeData);\n updateRects.exit.remove();\n var enterRects = updateRects.enter.append(Rect).each(function (rect) {\n rect.tag = BarSeriesNodeTag.Bar;\n rect.crisp = true;\n });\n this.rectSelection = updateRects.merge(enterRects);\n };\n BarSeries.prototype.updateRectNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this, fills = _a.fills, strokes = _a.strokes, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, shadow = _a.shadow, formatter = _a.formatter, xKey = _a.xKey, flipXY = _a.flipXY, yKeys = _a.yKeys, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f;\n this.rectSelection.each(function (rect, datum, index) {\n var colorIndex = 0;\n var i = 0;\n for (var j = 0; j < yKeys.length; j++) {\n var stack = yKeys[j];\n i = stack.indexOf(datum.yKey);\n if (i >= 0) {\n colorIndex += i;\n break;\n }\n colorIndex += stack.length;\n }\n var isDatumHighlighted = datum === highlightedDatum;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : fills[colorIndex % fills.length];\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : strokes[colorIndex % fills.length];\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : _this.getStrokeWidth(_this.strokeWidth, datum);\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: isDatumHighlighted,\n xKey: xKey,\n yKey: datum.yKey\n });\n }\n rect.x = datum.x;\n rect.y = datum.y;\n rect.width = datum.width;\n rect.height = datum.height;\n rect.fill = format && format.fill || fill;\n rect.stroke = format && format.stroke || stroke;\n rect.strokeWidth = format && format.strokeWidth !== undefined ? format.strokeWidth : strokeWidth;\n rect.fillOpacity = fillOpacity;\n rect.strokeOpacity = strokeOpacity;\n rect.lineDash = _this.lineDash;\n rect.lineDashOffset = _this.lineDashOffset;\n rect.fillShadow = shadow;\n // Prevent stroke from rendering for zero height columns and zero width bars.\n rect.visible = flipXY ? datum.width > 0 : datum.height > 0;\n rect.zIndex = isDatumHighlighted ? Series.highlightedZIndex : index;\n rect.opacity = _this.getOpacity(datum);\n });\n };\n BarSeries.prototype.updateLabelSelection = function () {\n var updateLabels = this.labelSelection.setData(this.nodeData);\n updateLabels.exit.remove();\n var enterLabels = updateLabels.enter.append(Text$2).each(function (text) {\n text.tag = BarSeriesNodeTag.Label;\n text.pointerEvents = PointerEvents$1.None;\n });\n this.labelSelection = updateLabels.merge(enterLabels);\n };\n BarSeries.prototype.updateLabelNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this, highlightedDatum = _a.chart.highlightedDatum, _b = _a.label, labelEnabled = _b.enabled, fontStyle = _b.fontStyle, fontWeight = _b.fontWeight, fontSize = _b.fontSize, fontFamily = _b.fontFamily, color = _b.color;\n this.labelSelection.each(function (text, datum, index) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fill = color;\n text.visible = true;\n text.opacity = _this.getOpacity(datum);\n }\n else {\n text.visible = false;\n }\n });\n };\n BarSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, yKeys = _a.yKeys, yData = _a.yData;\n var xAxis = this.getCategoryAxis();\n var yAxis = this.getValueAxis();\n var yKey = nodeDatum.yKey;\n if (!yData.length || !xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var yGroup = yData[nodeDatum.index];\n var fillIndex = 0;\n var i = 0;\n var j = 0;\n for (; j < yKeys.length; j++) {\n var stack = yKeys[j];\n i = stack.indexOf(yKey);\n if (i >= 0) {\n fillIndex += i;\n break;\n }\n fillIndex += stack.length;\n }\n var _b = this, xName = _b.xName, yNames = _b.yNames, fills = _b.fills, strokes = _b.strokes, tooltip = _b.tooltip, formatter = _b.formatter;\n var tooltipRenderer = tooltip.renderer;\n var datum = nodeDatum.datum;\n var yName = yNames[yKey];\n var fill = fills[fillIndex % fills.length];\n var stroke = strokes[fillIndex % fills.length];\n var strokeWidth = this.getStrokeWidth(this.strokeWidth, datum);\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var processedYValue = yGroup[j][i];\n var xString = sanitizeHtml(xAxis.formatDatum(xValue));\n var yString = sanitizeHtml(yAxis.formatDatum(yValue));\n var title = sanitizeHtml(yName);\n var content = xString + ': ' + yString;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: false,\n xKey: xKey,\n yKey: yKey\n });\n }\n var color = format && format.fill || fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n processedYValue: processedYValue,\n yName: yName,\n color: color\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n BarSeries.prototype.listSeriesItems = function (legendData) {\n var _a = this, id = _a.id, data = _a.data, xKey = _a.xKey, yKeys = _a.yKeys, yNames = _a.yNames, cumYKeyCount = _a.cumYKeyCount, seriesItemEnabled = _a.seriesItemEnabled, hideInLegend = _a.hideInLegend, fills = _a.fills, strokes = _a.strokes, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity;\n if (data && data.length && xKey && yKeys.length) {\n this.yKeys.forEach(function (stack, stackIndex) {\n stack.forEach(function (yKey, levelIndex) {\n if (hideInLegend.indexOf(yKey) < 0) {\n var colorIndex = cumYKeyCount[stackIndex] + levelIndex;\n legendData.push({\n id: id,\n itemId: yKey,\n enabled: seriesItemEnabled.get(yKey) || false,\n label: {\n text: yNames[yKey] || yKey\n },\n marker: {\n fill: fills[colorIndex % fills.length],\n stroke: strokes[colorIndex % strokes.length],\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity\n }\n });\n }\n });\n });\n }\n };\n BarSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n var seriesItemEnabled = this.seriesItemEnabled;\n seriesItemEnabled.set(itemId, enabled);\n var yKeys = this.yKeys.map(function (stack) { return stack.slice(); }); // deep clone\n seriesItemEnabled.forEach(function (enabled, yKey) {\n if (!enabled) {\n yKeys.forEach(function (stack) {\n var index = stack.indexOf(yKey);\n if (index >= 0) {\n stack.splice(index, 1);\n }\n });\n }\n });\n var visibleStacks = [];\n yKeys.forEach(function (stack, index) {\n if (stack.length > 0) {\n visibleStacks.push(String(index));\n }\n });\n this.groupScale.domain = visibleStacks;\n this.scheduleData();\n };\n BarSeries.className = 'BarSeries';\n BarSeries.type = 'bar';\n __decorate$Q([\n reactive$1('dataChange')\n ], BarSeries.prototype, \"flipXY\", void 0);\n __decorate$Q([\n reactive$1('dataChange')\n ], BarSeries.prototype, \"fills\", void 0);\n __decorate$Q([\n reactive$1('dataChange')\n ], BarSeries.prototype, \"strokes\", void 0);\n __decorate$Q([\n reactive$1('update')\n ], BarSeries.prototype, \"fillOpacity\", void 0);\n __decorate$Q([\n reactive$1('update')\n ], BarSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$Q([\n reactive$1('update')\n ], BarSeries.prototype, \"lineDash\", void 0);\n __decorate$Q([\n reactive$1('update')\n ], BarSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$Q([\n reactive$1('update')\n ], BarSeries.prototype, \"formatter\", void 0);\n __decorate$Q([\n reactive$1('layoutChange')\n ], BarSeries.prototype, \"hideInLegend\", void 0);\n return BarSeries;\n}(CartesianSeries));\n\nvar __extends$1O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$x = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar LineSeriesLabel = /** @class */ (function (_super) {\n __extends$1O(LineSeriesLabel, _super);\n function LineSeriesLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$R([\n reactive$1('change')\n ], LineSeriesLabel.prototype, \"formatter\", void 0);\n return LineSeriesLabel;\n}(Label$1));\nvar LineSeriesTooltip = /** @class */ (function (_super) {\n __extends$1O(LineSeriesTooltip, _super);\n function LineSeriesTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$R([\n reactive$1('change')\n ], LineSeriesTooltip.prototype, \"renderer\", void 0);\n __decorate$R([\n reactive$1('change')\n ], LineSeriesTooltip.prototype, \"format\", void 0);\n return LineSeriesTooltip;\n}(SeriesTooltip));\nvar LineSeries = /** @class */ (function (_super) {\n __extends$1O(LineSeries, _super);\n function LineSeries() {\n var _this = _super.call(this) || this;\n _this.xDomain = [];\n _this.yDomain = [];\n _this.xData = [];\n _this.yData = [];\n _this.lineNode = new Path$1();\n // We use groups for this selection even though each group only contains a marker ATM\n // because in the future we might want to add label support as well.\n _this.nodeSelection = Selection$1.select(_this.pickGroup).selectAll();\n _this.nodeData = [];\n _this.marker = new CartesianSeriesMarker();\n _this.label = new LineSeriesLabel();\n _this.stroke = '#874349';\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.strokeWidth = 2;\n _this.strokeOpacity = 1;\n _this.tooltip = new LineSeriesTooltip();\n _this._xKey = '';\n _this.xName = '';\n _this._yKey = '';\n _this.yName = '';\n var lineNode = _this.lineNode;\n lineNode.fill = undefined;\n lineNode.lineJoin = 'round';\n lineNode.pointerEvents = PointerEvents$1.None;\n // Make line render before markers in the pick group.\n _this.group.insertBefore(lineNode, _this.pickGroup);\n _this.addEventListener('update', _this.scheduleUpdate);\n var _a = _this, marker = _a.marker, label = _a.label;\n marker.fill = '#c16068';\n marker.stroke = '#874349';\n marker.addPropertyListener('shape', _this.onMarkerShapeChange, _this);\n marker.addEventListener('change', _this.scheduleUpdate, _this);\n label.enabled = false;\n label.addEventListener('change', _this.scheduleUpdate, _this);\n return _this;\n }\n LineSeries.prototype.onMarkerShapeChange = function () {\n this.nodeSelection = this.nodeSelection.setData([]);\n this.nodeSelection.exit.remove();\n this.fireEvent({ type: 'legendChange' });\n };\n LineSeries.prototype.setColors = function (fills, strokes) {\n this.stroke = fills[0];\n this.marker.stroke = strokes[0];\n this.marker.fill = fills[0];\n };\n Object.defineProperty(LineSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n if (this._xKey !== value) {\n this._xKey = value;\n this.xData = [];\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LineSeries.prototype, \"yKey\", {\n get: function () {\n return this._yKey;\n },\n set: function (value) {\n if (this._yKey !== value) {\n this._yKey = value;\n this.yData = [];\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n LineSeries.prototype.processData = function () {\n var _a = this, xAxis = _a.xAxis, yAxis = _a.yAxis, xKey = _a.xKey, yKey = _a.yKey, xData = _a.xData, yData = _a.yData;\n var data = xKey && yKey && this.data ? this.data : [];\n if (!xAxis || !yAxis) {\n return false;\n }\n var isContinuousX = xAxis.scale instanceof ContinuousScale$1;\n var isContinuousY = yAxis.scale instanceof ContinuousScale$1;\n xData.length = 0;\n yData.length = 0;\n for (var i = 0, n = data.length; i < n; i++) {\n var datum = data[i];\n var x = datum[xKey];\n var y = datum[yKey];\n var xDatum = this.checkDatum(x, isContinuousX);\n if (isContinuousX && xDatum === undefined) {\n continue;\n }\n else {\n xData.push(xDatum);\n }\n var yDatum = this.checkDatum(y, isContinuousY);\n yData.push(yDatum);\n }\n this.xDomain = isContinuousX ? this.fixNumericExtent(extent$1(xData, isContinuous$1), 'x', xAxis) : xData;\n this.yDomain = isContinuousY ? this.fixNumericExtent(extent$1(yData, isContinuous$1), 'y', yAxis) : yData;\n return true;\n };\n LineSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n return this.yDomain;\n };\n LineSeries.prototype.onHighlightChange = function () {\n this.updateNodes();\n };\n LineSeries.prototype.resetHighlight = function () {\n this.lineNode.strokeWidth = this.strokeWidth;\n };\n LineSeries.prototype.update = function () {\n this.updatePending = false;\n this.updateSelections();\n this.updateNodes();\n };\n LineSeries.prototype.updateSelections = function () {\n if (!this.nodeDataPending) {\n return;\n }\n this.nodeDataPending = false;\n this.updateLinePath(); // this will create node data too\n this.updateNodeSelection();\n };\n LineSeries.prototype.updateLinePath = function () {\n var _a;\n var _b = this, data = _b.data, xAxis = _b.xAxis, yAxis = _b.yAxis;\n if (!data || !xAxis || !yAxis) {\n return;\n }\n var _c = this, xData = _c.xData, yData = _c.yData, lineNode = _c.lineNode, label = _c.label, xKey = _c.xKey, yKey = _c.yKey;\n var xScale = xAxis.scale;\n var yScale = yAxis.scale;\n var xOffset = (xScale.bandwidth || 0) / 2;\n var yOffset = (yScale.bandwidth || 0) / 2;\n var linePath = lineNode.path;\n var nodeData = [];\n linePath.clear();\n var moveTo = true;\n var prevXInRange = undefined;\n var nextXYDatums = undefined;\n for (var i = 0; i < xData.length; i++) {\n var xyDatums = nextXYDatums || [xData[i], yData[i]];\n if (xyDatums[1] === undefined) {\n prevXInRange = undefined;\n moveTo = true;\n }\n else {\n var _d = __read$x(xyDatums, 2), xDatum = _d[0], yDatum = _d[1];\n var x = xScale.convert(xDatum) + xOffset;\n if (isNaN(x)) {\n prevXInRange = undefined;\n moveTo = true;\n continue;\n }\n var tolerance = (xScale.bandwidth || (this.marker.size * 0.5 + (this.marker.strokeWidth || 0))) + 1;\n nextXYDatums = yData[i + 1] === undefined ? undefined : [xData[i + 1], yData[i + 1]];\n var xInRange = xAxis.inRangeEx(x, 0, tolerance);\n var nextXInRange = nextXYDatums && xAxis.inRangeEx(xScale.convert(nextXYDatums[0]) + xOffset, 0, tolerance);\n if (xInRange === -1 && nextXInRange === -1) {\n moveTo = true;\n continue;\n }\n if (xInRange === 1 && prevXInRange === 1) {\n moveTo = true;\n continue;\n }\n prevXInRange = xInRange;\n var y = yScale.convert(yDatum) + yOffset;\n if (moveTo) {\n linePath.moveTo(x, y);\n moveTo = false;\n }\n else {\n linePath.lineTo(x, y);\n }\n var labelText = void 0;\n if (label.formatter) {\n labelText = label.formatter({ value: yDatum });\n }\n else {\n labelText = typeof yDatum === 'number' && isFinite(yDatum) ? yDatum.toFixed(2) : yDatum ? String(yDatum) : '';\n }\n var seriesDatum = (_a = {}, _a[xKey] = xDatum, _a[yKey] = yDatum, _a);\n nodeData.push({\n series: this,\n datum: seriesDatum,\n point: { x: x, y: y },\n label: labelText ? {\n text: labelText,\n fontStyle: label.fontStyle,\n fontWeight: label.fontWeight,\n fontSize: label.fontSize,\n fontFamily: label.fontFamily,\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: label.color\n } : undefined\n });\n }\n }\n // Used by marker nodes and for hit-testing even when not using markers\n // when `chart.tooltip.tracking` is true.\n this.nodeData = nodeData;\n };\n LineSeries.prototype.updateNodeSelection = function () {\n var marker = this.marker;\n var nodeData = marker.shape ? this.nodeData : [];\n var MarkerShape = getMarker$1(marker.shape);\n var updateSelection = this.nodeSelection.setData(nodeData);\n updateSelection.exit.remove();\n var enterSelection = updateSelection.enter.append(Group$1);\n enterSelection.append(MarkerShape);\n enterSelection.append(Text$2);\n this.nodeSelection = updateSelection.merge(enterSelection);\n };\n LineSeries.prototype.updateNodes = function () {\n this.group.visible = this.visible;\n this.updateLineNode();\n this.updateMarkerNodes();\n this.updateTextNodes();\n };\n LineSeries.prototype.updateLineNode = function () {\n var lineNode = this.lineNode;\n lineNode.stroke = this.stroke;\n lineNode.strokeWidth = this.getStrokeWidth(this.strokeWidth);\n lineNode.strokeOpacity = this.strokeOpacity;\n lineNode.lineDash = this.lineDash;\n lineNode.lineDashOffset = this.lineDashOffset;\n lineNode.opacity = this.getOpacity();\n };\n LineSeries.prototype.updateMarkerNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this, marker = _a.marker, xKey = _a.xKey, yKey = _a.yKey, lineStroke = _a.stroke, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f;\n var size = marker.size, formatter = marker.formatter;\n var markerStrokeWidth = marker.strokeWidth !== undefined ? marker.strokeWidth : this.strokeWidth;\n var MarkerShape = getMarker$1(marker.shape);\n this.nodeSelection.selectByClass(MarkerShape)\n .each(function (node, datum) {\n var isDatumHighlighted = datum === highlightedDatum;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : marker.fill;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : marker.stroke || lineStroke;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted\n });\n }\n node.fill = format && format.fill || fill;\n node.stroke = format && format.stroke || stroke;\n node.strokeWidth = format && format.strokeWidth !== undefined\n ? format.strokeWidth\n : strokeWidth;\n node.size = format && format.size !== undefined\n ? format.size\n : size;\n node.translationX = datum.point.x;\n node.translationY = datum.point.y;\n node.opacity = _this.getOpacity(datum);\n node.visible = marker.enabled && node.size > 0;\n });\n };\n LineSeries.prototype.updateTextNodes = function () {\n var _this = this;\n this.nodeSelection.selectByClass(Text$2)\n .each(function (text, datum) {\n var point = datum.point, label = datum.label;\n var _a = _this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = point.x;\n text.y = point.y - 10;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n };\n LineSeries.prototype.getNodeData = function () {\n return this.nodeData;\n };\n LineSeries.prototype.fireNodeClickEvent = function (event, datum) {\n this.fireEvent({\n type: 'nodeClick',\n event: event,\n series: this,\n datum: datum.datum,\n xKey: this.xKey,\n yKey: this.yKey\n });\n };\n LineSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, yKey = _a.yKey, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var _b = this, xName = _b.xName, yName = _b.yName, tooltip = _b.tooltip, marker = _b.marker;\n var tooltipRenderer = tooltip.renderer, tooltipFormat = tooltip.format;\n var datum = nodeDatum.datum;\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var xString = xAxis.formatDatum(xValue);\n var yString = yAxis.formatDatum(yValue);\n var title = sanitizeHtml(this.title || yName);\n var content = sanitizeHtml(xString + ': ' + yString);\n var markerFormatter = marker.formatter, fill = marker.fill, stroke = marker.stroke, markerStrokeWidth = marker.strokeWidth, size = marker.size;\n var strokeWidth = markerStrokeWidth !== undefined ? markerStrokeWidth : this.strokeWidth;\n var format = undefined;\n if (markerFormatter) {\n format = markerFormatter({\n datum: datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false\n });\n }\n var color = format && format.fill || fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content\n };\n if (tooltipFormat || tooltipRenderer) {\n var params = {\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n yName: yName,\n title: title,\n color: color\n };\n if (tooltipFormat) {\n return toTooltipHtml$1({\n content: interpolate(tooltipFormat, params)\n }, defaults);\n }\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer(params), defaults);\n }\n }\n return toTooltipHtml$1(defaults);\n };\n LineSeries.prototype.listSeriesItems = function (legendData) {\n var _a = this, id = _a.id, data = _a.data, xKey = _a.xKey, yKey = _a.yKey, yName = _a.yName, visible = _a.visible, title = _a.title, marker = _a.marker, stroke = _a.stroke, strokeOpacity = _a.strokeOpacity;\n if (data && data.length && xKey && yKey) {\n legendData.push({\n id: id,\n itemId: undefined,\n enabled: visible,\n label: {\n text: title || yName || yKey\n },\n marker: {\n shape: marker.shape,\n fill: marker.fill || 'rgba(0, 0, 0, 0)',\n stroke: marker.stroke || stroke || 'rgba(0, 0, 0, 0)',\n fillOpacity: 1,\n strokeOpacity: strokeOpacity\n }\n });\n }\n };\n LineSeries.className = 'LineSeries';\n LineSeries.type = 'line';\n __decorate$R([\n reactive$1('layoutChange')\n ], LineSeries.prototype, \"title\", void 0);\n __decorate$R([\n reactive$1('update')\n ], LineSeries.prototype, \"stroke\", void 0);\n __decorate$R([\n reactive$1('update')\n ], LineSeries.prototype, \"lineDash\", void 0);\n __decorate$R([\n reactive$1('update')\n ], LineSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$R([\n reactive$1('update')\n ], LineSeries.prototype, \"strokeWidth\", void 0);\n __decorate$R([\n reactive$1('update')\n ], LineSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$R([\n reactive$1('update')\n ], LineSeries.prototype, \"xName\", void 0);\n __decorate$R([\n reactive$1('update')\n ], LineSeries.prototype, \"yName\", void 0);\n return LineSeries;\n}(CartesianSeries));\n\nvar __extends$1P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$8 = (undefined && undefined.__assign) || function () {\n __assign$8 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$8.apply(this, arguments);\n};\nvar __decorate$S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ScatterSeriesTooltip = /** @class */ (function (_super) {\n __extends$1P(ScatterSeriesTooltip, _super);\n function ScatterSeriesTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$S([\n reactive$1('change')\n ], ScatterSeriesTooltip.prototype, \"renderer\", void 0);\n return ScatterSeriesTooltip;\n}(SeriesTooltip));\nvar ScatterSeries = /** @class */ (function (_super) {\n __extends$1P(ScatterSeries, _super);\n function ScatterSeries() {\n var _this = _super.call(this) || this;\n _this.xDomain = [];\n _this.yDomain = [];\n _this.xData = [];\n _this.yData = [];\n _this.validData = [];\n _this.sizeData = [];\n _this.sizeScale = new LinearScale$1();\n _this.nodeData = [];\n _this.markerSelection = Selection$1.select(_this.pickGroup).selectAll();\n _this.labelSelection = Selection$1.select(_this.group).selectAll();\n _this.marker = new CartesianSeriesMarker();\n _this.label = new Label$1();\n _this._fill = '#c16068';\n _this._stroke = '#874349';\n _this._strokeWidth = 2;\n _this._fillOpacity = 1;\n _this._strokeOpacity = 1;\n _this.xKey = '';\n _this.yKey = '';\n _this.xName = '';\n _this.yName = '';\n _this.sizeName = 'Size';\n _this.labelName = 'Label';\n _this.tooltip = new ScatterSeriesTooltip();\n var _a = _this, marker = _a.marker, label = _a.label;\n marker.addPropertyListener('shape', _this.onMarkerShapeChange, _this);\n marker.addEventListener('change', _this.scheduleUpdate, _this);\n _this.addPropertyListener('xKey', function () { return _this.xData = []; });\n _this.addPropertyListener('yKey', function () { return _this.yData = []; });\n _this.addPropertyListener('sizeKey', function () { return _this.sizeData = []; });\n label.enabled = false;\n label.addEventListener('change', _this.scheduleUpdate, _this);\n label.addEventListener('dataChange', _this.scheduleData, _this);\n return _this;\n }\n Object.defineProperty(ScatterSeries.prototype, \"fill\", {\n get: function () {\n return this._fill;\n },\n /**\n * @deprecated Use {@link marker.fill} instead.\n */\n set: function (value) {\n if (this._fill !== value) {\n this._fill = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScatterSeries.prototype, \"stroke\", {\n get: function () {\n return this._stroke;\n },\n /**\n * @deprecated Use {@link marker.stroke} instead.\n */\n set: function (value) {\n if (this._stroke !== value) {\n this._stroke = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScatterSeries.prototype, \"strokeWidth\", {\n get: function () {\n return this._strokeWidth;\n },\n /**\n * @deprecated Use {@link marker.strokeWidth} instead.\n */\n set: function (value) {\n if (this._strokeWidth !== value) {\n this._strokeWidth = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScatterSeries.prototype, \"fillOpacity\", {\n get: function () {\n return this._fillOpacity;\n },\n /**\n * @deprecated Use {@link marker.fillOpacity} instead.\n */\n set: function (value) {\n if (this._fillOpacity !== value) {\n this._fillOpacity = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScatterSeries.prototype, \"strokeOpacity\", {\n get: function () {\n return this._strokeOpacity;\n },\n /**\n * @deprecated Use {@link marker.strokeOpacity} instead.\n */\n set: function (value) {\n if (this._strokeOpacity !== value) {\n this._strokeOpacity = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n ScatterSeries.prototype.onHighlightChange = function () {\n this.updateMarkerNodes();\n };\n ScatterSeries.prototype.onMarkerShapeChange = function () {\n this.markerSelection = this.markerSelection.setData([]);\n this.markerSelection.exit.remove();\n this.fireEvent({ type: 'legendChange' });\n };\n ScatterSeries.prototype.setColors = function (fills, strokes) {\n this.fill = fills[0];\n this.stroke = strokes[0];\n this.marker.fill = fills[0];\n this.marker.stroke = strokes[0];\n };\n ScatterSeries.prototype.processData = function () {\n var _this = this;\n var _a = this, xKey = _a.xKey, yKey = _a.yKey, sizeKey = _a.sizeKey, labelKey = _a.labelKey, xAxis = _a.xAxis, yAxis = _a.yAxis, marker = _a.marker, label = _a.label;\n if (!xAxis || !yAxis) {\n return false;\n }\n var data = xKey && yKey && this.data ? this.data : [];\n var xScale = xAxis.scale;\n var yScale = yAxis.scale;\n var isContinuousX = xScale instanceof ContinuousScale$1;\n var isContinuousY = yScale instanceof ContinuousScale$1;\n this.validData = data.filter(function (d) { return _this.checkDatum(d[xKey], isContinuousX) !== undefined && _this.checkDatum(d[yKey], isContinuousY) !== undefined; });\n this.xData = this.validData.map(function (d) { return d[xKey]; });\n this.yData = this.validData.map(function (d) { return d[yKey]; });\n this.sizeData = sizeKey ? this.validData.map(function (d) { return d[sizeKey]; }) : [];\n this.sizeScale.domain = marker.domain ? marker.domain : extent$1(this.sizeData, isContinuous$1) || [1, 1];\n if (xAxis.scale instanceof ContinuousScale$1) {\n this.xDomain = this.fixNumericExtent(extent$1(this.xData, isContinuous$1), 'x', xAxis);\n }\n else {\n this.xDomain = this.xData;\n }\n if (yAxis.scale instanceof ContinuousScale$1) {\n this.yDomain = this.fixNumericExtent(extent$1(this.yData, isContinuous$1), 'y', yAxis);\n }\n else {\n this.yDomain = this.yData;\n }\n return true;\n };\n ScatterSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n else {\n return this.yDomain;\n }\n };\n ScatterSeries.prototype.getNodeData = function () {\n return this.nodeData;\n };\n ScatterSeries.prototype.getLabelData = function () {\n return this.nodeData;\n };\n ScatterSeries.prototype.fireNodeClickEvent = function (event, datum) {\n this.fireEvent({\n type: 'nodeClick',\n event: event,\n series: this,\n datum: datum.datum,\n xKey: this.xKey,\n yKey: this.yKey,\n sizeKey: this.sizeKey\n });\n };\n ScatterSeries.prototype.createNodeData = function () {\n var _a = this, chart = _a.chart, data = _a.data, visible = _a.visible, xAxis = _a.xAxis, yAxis = _a.yAxis, label = _a.label, labelKey = _a.labelKey;\n if (!(chart && data && visible && xAxis && yAxis) || chart.layoutPending || chart.dataPending) {\n return [];\n }\n var xScale = xAxis.scale;\n var yScale = yAxis.scale;\n var isContinuousX = xScale instanceof ContinuousScale$1;\n var isContinuousY = yScale instanceof ContinuousScale$1;\n var xOffset = (xScale.bandwidth || 0) / 2;\n var yOffset = (yScale.bandwidth || 0) / 2;\n var _b = this, xData = _b.xData, yData = _b.yData, validData = _b.validData, sizeData = _b.sizeData, sizeScale = _b.sizeScale, marker = _b.marker;\n var nodeData = [];\n sizeScale.range = [marker.size, marker.maxSize];\n var font = label.getFont();\n for (var i = 0; i < xData.length; i++) {\n var xy = this.checkDomainXY(xData[i], yData[i], isContinuousX, isContinuousY);\n if (!xy) {\n continue;\n }\n var x = xScale.convert(xy[0]) + xOffset;\n var y = yScale.convert(xy[1]) + yOffset;\n if (!this.checkRangeXY(x, y, xAxis, yAxis)) {\n continue;\n }\n var text = labelKey ? String(validData[i][labelKey]) : '';\n var size = HdpiCanvas$1.getTextSize(text, font);\n nodeData.push({\n series: this,\n datum: validData[i],\n point: { x: x, y: y },\n size: sizeData.length ? sizeScale.convert(sizeData[i]) : marker.size,\n label: __assign$8({ text: text }, size),\n });\n }\n return this.nodeData = nodeData;\n };\n ScatterSeries.prototype.update = function () {\n this.updatePending = false;\n this.updateSelections();\n this.updateNodes();\n };\n ScatterSeries.prototype.updateSelections = function () {\n if (!this.nodeDataPending) {\n return;\n }\n this.nodeDataPending = false;\n this.createNodeData();\n this.updateMarkerSelection();\n this.updateLabelSelection();\n };\n ScatterSeries.prototype.updateNodes = function () {\n this.group.visible = this.visible;\n this.updateMarkerNodes();\n this.updateLabelNodes();\n };\n ScatterSeries.prototype.updateLabelSelection = function () {\n var placedLabels = this.chart && this.chart.placeLabels().get(this) || [];\n var updateLabels = this.labelSelection.setData(placedLabels);\n updateLabels.exit.remove();\n var enterLabels = updateLabels.enter.append(Text$2);\n this.labelSelection = updateLabels.merge(enterLabels);\n };\n ScatterSeries.prototype.updateMarkerSelection = function () {\n var MarkerShape = getMarker$1(this.marker.shape);\n var updateMarkers = this.markerSelection.setData(this.nodeData);\n updateMarkers.exit.remove();\n var enterMarkers = updateMarkers.enter.append(MarkerShape);\n this.markerSelection = updateMarkers.merge(enterMarkers);\n };\n ScatterSeries.prototype.updateLabelNodes = function () {\n var label = this.label;\n this.labelSelection.each(function (text, datum) {\n text.text = datum.text;\n text.fill = label.color;\n text.x = datum.x;\n text.y = datum.y;\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.textAlign = 'left';\n text.textBaseline = 'top';\n });\n };\n ScatterSeries.prototype.updateMarkerNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this, marker = _a.marker, xKey = _a.xKey, yKey = _a.yKey, strokeWidth = _a.strokeWidth, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, seriesFill = _a.fill, seriesStroke = _a.stroke, highlightedDatum = _a.chart.highlightedDatum, sizeScale = _a.sizeScale, sizeData = _a.sizeData, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f;\n var markerStrokeWidth = marker.strokeWidth !== undefined ? marker.strokeWidth : strokeWidth;\n var formatter = marker.formatter;\n sizeScale.range = [marker.size, marker.maxSize];\n this.markerSelection.each(function (node, datum, index) {\n var isDatumHighlighted = datum === highlightedDatum;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : marker.fill || seriesFill;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : marker.stroke || seriesStroke;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : _this.getStrokeWidth(markerStrokeWidth, datum);\n var size = sizeData.length ? sizeScale.convert(sizeData[index]) : marker.size;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted\n });\n }\n node.fill = format && format.fill || fill;\n node.stroke = format && format.stroke || stroke;\n node.strokeWidth = format && format.strokeWidth !== undefined\n ? format.strokeWidth\n : strokeWidth;\n node.size = format && format.size !== undefined\n ? format.size\n : size;\n node.fillOpacity = marker.fillOpacity !== undefined ? marker.fillOpacity : fillOpacity;\n node.strokeOpacity = marker.strokeOpacity !== undefined ? marker.strokeOpacity : strokeOpacity;\n node.translationX = datum.point.x;\n node.translationY = datum.point.y;\n node.opacity = _this.getOpacity(datum);\n node.zIndex = isDatumHighlighted ? Series.highlightedZIndex : index;\n node.visible = marker.enabled && node.size > 0;\n });\n };\n ScatterSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, yKey = _a.yKey, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var _b = this, seriesFill = _b.fill, seriesStroke = _b.stroke, marker = _b.marker, tooltip = _b.tooltip, xName = _b.xName, yName = _b.yName, sizeKey = _b.sizeKey, sizeName = _b.sizeName, labelKey = _b.labelKey, labelName = _b.labelName;\n var fill = marker.fill || seriesFill;\n var stroke = marker.stroke || seriesStroke;\n var strokeWidth = this.getStrokeWidth(marker.strokeWidth || this.strokeWidth, nodeDatum);\n var formatter = this.marker.formatter;\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: nodeDatum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: nodeDatum.size,\n highlighted: false\n });\n }\n var color = format && format.fill || fill || 'gray';\n var title = this.title || yName;\n var datum = nodeDatum.datum;\n var xValue = datum[xKey];\n var yValue = datum[yKey];\n var xString = sanitizeHtml(xAxis.formatDatum(xValue));\n var yString = sanitizeHtml(yAxis.formatDatum(yValue));\n var content = \"\" + sanitizeHtml(xName || xKey) + \": \" + xString + \"
\" +\n (\"\" + sanitizeHtml(yName || yKey) + \": \" + yString);\n if (sizeKey) {\n content += \"
\" + sanitizeHtml(sizeName || sizeKey) + \": \" + sanitizeHtml(datum[sizeKey]);\n }\n if (labelKey) {\n content = \"\" + sanitizeHtml(labelName || labelKey) + \": \" + sanitizeHtml(datum[labelKey]) + \"
\" + content;\n }\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content\n };\n var tooltipRenderer = tooltip.renderer;\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n yName: yName,\n sizeKey: sizeKey,\n sizeName: sizeName,\n labelKey: labelKey,\n labelName: labelName,\n title: title,\n color: color\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n ScatterSeries.prototype.listSeriesItems = function (legendData) {\n var _a = this, id = _a.id, data = _a.data, xKey = _a.xKey, yKey = _a.yKey, yName = _a.yName, title = _a.title, visible = _a.visible, marker = _a.marker, fill = _a.fill, stroke = _a.stroke, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity;\n if (data && data.length && xKey && yKey) {\n legendData.push({\n id: id,\n itemId: undefined,\n enabled: visible,\n label: {\n text: title || yName || yKey\n },\n marker: {\n shape: marker.shape,\n fill: marker.fill || fill || 'rgba(0, 0, 0, 0)',\n stroke: marker.stroke || stroke || 'rgba(0, 0, 0, 0)',\n fillOpacity: marker.fillOpacity !== undefined ? marker.fillOpacity : fillOpacity,\n strokeOpacity: marker.strokeOpacity !== undefined ? marker.strokeOpacity : strokeOpacity\n }\n });\n }\n };\n ScatterSeries.className = 'ScatterSeries';\n ScatterSeries.type = 'scatter';\n __decorate$S([\n reactive$1('layoutChange')\n ], ScatterSeries.prototype, \"title\", void 0);\n __decorate$S([\n reactive$1('dataChange')\n ], ScatterSeries.prototype, \"xKey\", void 0);\n __decorate$S([\n reactive$1('dataChange')\n ], ScatterSeries.prototype, \"yKey\", void 0);\n __decorate$S([\n reactive$1('dataChange')\n ], ScatterSeries.prototype, \"sizeKey\", void 0);\n __decorate$S([\n reactive$1('dataChange')\n ], ScatterSeries.prototype, \"labelKey\", void 0);\n return ScatterSeries;\n}(CartesianSeries));\n\nvar __extends$1Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$y = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$e = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$y(arguments[i]));\n return ar;\n};\nvar HistogramSeriesNodeTag;\n(function (HistogramSeriesNodeTag) {\n HistogramSeriesNodeTag[HistogramSeriesNodeTag[\"Bin\"] = 0] = \"Bin\";\n HistogramSeriesNodeTag[HistogramSeriesNodeTag[\"Label\"] = 1] = \"Label\";\n})(HistogramSeriesNodeTag || (HistogramSeriesNodeTag = {}));\nvar HistogramSeriesLabel = /** @class */ (function (_super) {\n __extends$1Q(HistogramSeriesLabel, _super);\n function HistogramSeriesLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$T([\n reactive$1('change')\n ], HistogramSeriesLabel.prototype, \"formatter\", void 0);\n return HistogramSeriesLabel;\n}(Label$1));\nvar defaultBinCount = 10;\nvar aggregationFunctions = {\n count: function (bin) { return bin.data.length; },\n sum: function (bin, yKey) { return bin.data.reduce(function (acc, datum) { return acc + datum[yKey]; }, 0); },\n mean: function (bin, yKey) { return aggregationFunctions.sum(bin, yKey) / aggregationFunctions.count(bin, yKey); }\n};\nvar HistogramBin = /** @class */ (function () {\n function HistogramBin(_a) {\n var _b = __read$y(_a, 2), domainMin = _b[0], domainMax = _b[1];\n this.data = [];\n this.aggregatedValue = 0;\n this.frequency = 0;\n this.domain = [domainMin, domainMax];\n }\n HistogramBin.prototype.addDatum = function (datum) {\n this.data.push(datum);\n this.frequency++;\n };\n Object.defineProperty(HistogramBin.prototype, \"domainWidth\", {\n get: function () {\n var _a = __read$y(this.domain, 2), domainMin = _a[0], domainMax = _a[1];\n return domainMax - domainMin;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramBin.prototype, \"relativeHeight\", {\n get: function () {\n return this.aggregatedValue / this.domainWidth;\n },\n enumerable: true,\n configurable: true\n });\n HistogramBin.prototype.calculateAggregatedValue = function (aggregationName, yKey) {\n if (!yKey) {\n // not having a yKey forces us into a frequency plot\n aggregationName = 'count';\n }\n var aggregationFunction = aggregationFunctions[aggregationName];\n this.aggregatedValue = aggregationFunction(this, yKey);\n };\n HistogramBin.prototype.getY = function (areaPlot) {\n return areaPlot ? this.relativeHeight : this.aggregatedValue;\n };\n return HistogramBin;\n}());\nvar HistogramSeriesTooltip = /** @class */ (function (_super) {\n __extends$1Q(HistogramSeriesTooltip, _super);\n function HistogramSeriesTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$T([\n reactive$1('change')\n ], HistogramSeriesTooltip.prototype, \"renderer\", void 0);\n return HistogramSeriesTooltip;\n}(SeriesTooltip));\nvar HistogramSeries = /** @class */ (function (_super) {\n __extends$1Q(HistogramSeries, _super);\n function HistogramSeries() {\n var _a;\n var _this = _super.call(this) || this;\n // Need to put column and label nodes into separate groups, because even though label nodes are\n // created after the column nodes, this only guarantees that labels will always be on top of columns\n // on the first run. If on the next run more columns are added, they might clip the labels\n // rendered during the previous run.\n _this.rectGroup = _this.pickGroup.appendChild(new Group$1());\n _this.textGroup = _this.group.appendChild(new Group$1());\n _this.rectSelection = Selection$1.select(_this.rectGroup).selectAll();\n _this.textSelection = Selection$1.select(_this.textGroup).selectAll();\n _this.binnedData = [];\n _this.xDomain = [];\n _this.yDomain = [];\n _this.label = new HistogramSeriesLabel();\n _this.seriesItemEnabled = true;\n _this.tooltip = new HistogramSeriesTooltip();\n _this.fill = undefined;\n _this.stroke = undefined;\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.directionKeys = (_a = {},\n _a[ChartAxisDirection.X] = ['xKey'],\n _a[ChartAxisDirection.Y] = ['yKey'],\n _a);\n _this._xKey = '';\n _this._areaPlot = false;\n _this._bins = undefined;\n _this._aggregation = 'count';\n _this._binCount = undefined;\n _this._xName = '';\n _this._yKey = '';\n _this._yName = '';\n _this._strokeWidth = 1;\n _this.label.enabled = false;\n _this.label.addEventListener('change', _this.scheduleUpdate, _this);\n return _this;\n }\n HistogramSeries.prototype.getKeys = function (direction) {\n var _this = this;\n var directionKeys = this.directionKeys;\n var keys = directionKeys && directionKeys[direction];\n var values = [];\n if (keys) {\n keys.forEach(function (key) {\n var value = _this[key];\n if (value) {\n if (Array.isArray(value)) {\n values.push.apply(values, __spread$e(value));\n }\n else {\n values.push(value);\n }\n }\n });\n }\n return values;\n };\n Object.defineProperty(HistogramSeries.prototype, \"xKey\", {\n get: function () {\n return this._xKey;\n },\n set: function (value) {\n if (this._xKey !== value) {\n this._xKey = value;\n this.scheduleData();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"areaPlot\", {\n get: function () {\n return this._areaPlot;\n },\n set: function (c) {\n this._areaPlot = c;\n this.scheduleData();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"bins\", {\n get: function () {\n return this._bins;\n },\n set: function (bins) {\n this._bins = bins;\n this.scheduleData();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"aggregation\", {\n get: function () {\n return this._aggregation;\n },\n set: function (aggregation) {\n this._aggregation = aggregation;\n this.scheduleData();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"binCount\", {\n get: function () {\n return this._binCount;\n },\n set: function (binCount) {\n this._binCount = binCount;\n this.scheduleData();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"xName\", {\n get: function () {\n return this._xName;\n },\n set: function (value) {\n if (this._xName !== value) {\n this._xName = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"yKey\", {\n get: function () {\n return this._yKey;\n },\n set: function (yKey) {\n this._yKey = yKey;\n this.seriesItemEnabled = true;\n this.scheduleData();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"yName\", {\n get: function () {\n return this._yName;\n },\n set: function (values) {\n this._yName = values;\n this.scheduleData();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"strokeWidth\", {\n get: function () {\n return this._strokeWidth;\n },\n set: function (value) {\n if (this._strokeWidth !== value) {\n this._strokeWidth = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HistogramSeries.prototype, \"shadow\", {\n get: function () {\n return this._shadow;\n },\n set: function (value) {\n if (this._shadow !== value) {\n this._shadow = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n HistogramSeries.prototype.onHighlightChange = function () {\n this.updateRectNodes();\n };\n HistogramSeries.prototype.setColors = function (fills, strokes) {\n this.fill = fills[0];\n this.stroke = strokes[0];\n };\n // During processData phase, used to unify different ways of the user specifying\n // the bins. Returns bins in format[[min1, max1], [min2, max2], ... ].\n HistogramSeries.prototype.deriveBins = function () {\n var _this = this;\n var _a = this, bins = _a.bins, binCount = _a.binCount;\n if (!this.data) {\n return [];\n }\n if (bins) {\n return bins;\n }\n var xData = this.data.map(function (datum) { return datum[_this.xKey]; });\n var xDomain = this.fixNumericExtent(extent$1(xData, isContinuous$1), 'x');\n var binStarts = ticks$1(xDomain[0], xDomain[1], this.binCount || defaultBinCount);\n var binSize = tickStep$1(xDomain[0], xDomain[1], this.binCount || defaultBinCount);\n var firstBinEnd = binStarts[0];\n var expandStartToBin = function (n) { return [n, n + binSize]; };\n return __spread$e([\n [firstBinEnd - binSize, firstBinEnd]\n ], binStarts.map(expandStartToBin));\n };\n HistogramSeries.prototype.placeDataInBins = function (data) {\n var _this = this;\n var xKey = this.xKey;\n var derivedBins = this.deriveBins();\n // creating a sorted copy allows binning in O(n) rather than O(n²)\n // but at the expense of more temporary memory\n var sortedData = data.slice().sort(function (a, b) {\n if (a[xKey] < b[xKey]) {\n return -1;\n }\n if (a[xKey] > b[xKey]) {\n return 1;\n }\n return 0;\n });\n var currentBin = 0;\n var bins = [new HistogramBin(derivedBins[0])];\n loop: for (var i = 0, ln = sortedData.length; i < ln; i++) {\n var datum = sortedData[i];\n while (datum[xKey] > derivedBins[currentBin][1]) {\n currentBin++;\n var bin = derivedBins[currentBin];\n if (!bin) {\n break loop;\n }\n bins.push(new HistogramBin(bin));\n }\n bins[currentBin].addDatum(datum);\n }\n bins.forEach(function (b) { return b.calculateAggregatedValue(_this._aggregation, _this.yKey); });\n return bins;\n };\n Object.defineProperty(HistogramSeries.prototype, \"xMax\", {\n get: function () {\n var _this = this;\n return this.data && this.data.reduce(function (acc, datum) {\n return Math.max(acc, datum[_this.xKey]);\n }, Number.NEGATIVE_INFINITY);\n },\n enumerable: true,\n configurable: true\n });\n HistogramSeries.prototype.processData = function () {\n var _this = this;\n var _a = this, xKey = _a.xKey, data = _a.data;\n this.binnedData = this.placeDataInBins(xKey && data ? data : []);\n var yData = this.binnedData.map(function (b) { return b.getY(_this.areaPlot); });\n var yMinMax = extent$1(yData, isContinuous$1);\n this.yDomain = this.fixNumericExtent([0, yMinMax ? yMinMax[1] : 1], 'y');\n var firstBin = this.binnedData[0];\n var lastBin = this.binnedData[this.binnedData.length - 1];\n var xMin = firstBin.domain[0];\n var xMax = lastBin.domain[1];\n this.xDomain = [xMin, xMax];\n this.fireEvent({ type: 'dataProcessed' });\n return true;\n };\n HistogramSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.xDomain;\n }\n else {\n return this.yDomain;\n }\n };\n HistogramSeries.prototype.fireNodeClickEvent = function (event, datum) {\n this.fireEvent({\n type: 'nodeClick',\n event: event,\n series: this,\n datum: datum.datum,\n xKey: this.xKey\n });\n };\n HistogramSeries.prototype.update = function () {\n this.updatePending = false;\n this.updateSelections();\n this.updateNodes();\n };\n HistogramSeries.prototype.updateSelections = function () {\n if (!this.nodeDataPending) {\n return;\n }\n this.nodeDataPending = false;\n var nodeData = this.createNodeData();\n this.updateRectSelection(nodeData);\n this.updateTextSelection(nodeData);\n };\n HistogramSeries.prototype.updateNodes = function () {\n this.group.visible = this.visible;\n this.updateRectNodes();\n this.updateTextNodes();\n };\n HistogramSeries.prototype.createNodeData = function () {\n var _this = this;\n var _a = this, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!this.seriesItemEnabled || !xAxis || !yAxis) {\n return [];\n }\n var xScale = xAxis.scale;\n var yScale = yAxis.scale;\n var _b = this, fill = _b.fill, stroke = _b.stroke, strokeWidth = _b.strokeWidth;\n var nodeData = [];\n var defaultLabelFormatter = function (params) { return String(params.value); };\n var _c = this.label, _d = _c.formatter, labelFormatter = _d === void 0 ? defaultLabelFormatter : _d, labelFontStyle = _c.fontStyle, labelFontWeight = _c.fontWeight, labelFontSize = _c.fontSize, labelFontFamily = _c.fontFamily, labelColor = _c.color;\n this.binnedData.forEach(function (binOfData) {\n var total = binOfData.aggregatedValue, frequency = binOfData.frequency, _a = __read$y(binOfData.domain, 2), xDomainMin = _a[0], xDomainMax = _a[1], relativeHeight = binOfData.relativeHeight;\n var xMinPx = xScale.convert(xDomainMin), xMaxPx = xScale.convert(xDomainMax), \n // note: assuming can't be negative:\n y = _this.areaPlot ? relativeHeight : (_this.yKey ? total : frequency), yZeroPx = yScale.convert(0), yMaxPx = yScale.convert(y), w = xMaxPx - xMinPx, h = Math.abs(yMaxPx - yZeroPx);\n var selectionDatumLabel = y !== 0 ? {\n text: labelFormatter({ value: binOfData.aggregatedValue }),\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n fill: labelColor,\n x: xMinPx + w / 2,\n y: yMaxPx + h / 2\n } : undefined;\n nodeData.push({\n series: _this,\n datum: binOfData,\n // since each selection is an aggregation of multiple data.\n x: xMinPx,\n y: yMaxPx,\n width: w,\n height: h,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n label: selectionDatumLabel,\n });\n });\n return nodeData;\n };\n HistogramSeries.prototype.updateRectSelection = function (nodeData) {\n var updateRects = this.rectSelection.setData(nodeData);\n updateRects.exit.remove();\n var enterRects = updateRects.enter.append(Rect).each(function (rect) {\n rect.tag = HistogramSeriesNodeTag.Bin;\n rect.crisp = true;\n });\n this.rectSelection = updateRects.merge(enterRects);\n };\n HistogramSeries.prototype.updateRectNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, shadow = _a.shadow, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f;\n this.rectSelection.each(function (rect, datum, index) {\n var isDatumHighlighted = datum === highlightedDatum;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : _this.getStrokeWidth(datum.strokeWidth, datum);\n rect.x = datum.x;\n rect.y = datum.y;\n rect.width = datum.width;\n rect.height = datum.height;\n rect.fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : datum.fill;\n rect.stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : datum.stroke;\n rect.fillOpacity = fillOpacity;\n rect.strokeOpacity = strokeOpacity;\n rect.strokeWidth = strokeWidth;\n rect.lineDash = _this.lineDash;\n rect.lineDashOffset = _this.lineDashOffset;\n rect.fillShadow = shadow;\n rect.zIndex = isDatumHighlighted ? Series.highlightedZIndex : index;\n rect.visible = datum.height > 0; // prevent stroke from rendering for zero height columns\n rect.opacity = _this.getOpacity(datum);\n });\n };\n HistogramSeries.prototype.updateTextSelection = function (nodeData) {\n var updateTexts = this.textSelection.setData(nodeData);\n updateTexts.exit.remove();\n var enterTexts = updateTexts.enter.append(Text$2).each(function (text) {\n text.tag = HistogramSeriesNodeTag.Label;\n text.pointerEvents = PointerEvents$1.None;\n text.textAlign = 'center';\n text.textBaseline = 'middle';\n });\n this.textSelection = updateTexts.merge(enterTexts);\n };\n HistogramSeries.prototype.updateTextNodes = function () {\n var labelEnabled = this.label.enabled;\n this.textSelection.each(function (text, datum) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.fill = label.fill;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n };\n HistogramSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, yKey = _a.yKey, xAxis = _a.xAxis, yAxis = _a.yAxis;\n if (!xKey || !xAxis || !yAxis) {\n return '';\n }\n var _b = this, xName = _b.xName, yName = _b.yName, color = _b.fill, tooltip = _b.tooltip, aggregation = _b.aggregation;\n var tooltipRenderer = tooltip.renderer;\n var bin = nodeDatum.datum;\n var aggregatedValue = bin.aggregatedValue, frequency = bin.frequency, _c = __read$y(bin.domain, 2), rangeMin = _c[0], rangeMax = _c[1];\n var title = sanitizeHtml(xName || xKey) + \": \" + xAxis.formatDatum(rangeMin) + \" - \" + xAxis.formatDatum(rangeMax);\n var content = yKey ?\n \"\" + sanitizeHtml(yName || yKey) + \" (\" + aggregation + \"): \" + yAxis.formatDatum(aggregatedValue) + \"
\" :\n '';\n content += \"Frequency: \" + frequency;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: bin,\n xKey: xKey,\n xValue: bin.domain,\n xName: xName,\n yKey: yKey,\n yValue: bin.aggregatedValue,\n yName: yName,\n color: color\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n HistogramSeries.prototype.listSeriesItems = function (legendData) {\n var _a = this, id = _a.id, data = _a.data, yKey = _a.yKey, yName = _a.yName, seriesItemEnabled = _a.seriesItemEnabled, fill = _a.fill, stroke = _a.stroke, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity;\n if (data && data.length) {\n legendData.push({\n id: id,\n itemId: yKey,\n enabled: seriesItemEnabled,\n label: {\n text: yName || yKey || 'Frequency'\n },\n marker: {\n fill: fill || 'rgba(0, 0, 0, 0)',\n stroke: stroke || 'rgba(0, 0, 0, 0)',\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity\n }\n });\n }\n };\n HistogramSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n if (itemId === this.yKey) {\n this.seriesItemEnabled = enabled;\n }\n this.scheduleData();\n };\n HistogramSeries.className = 'HistogramSeries';\n HistogramSeries.type = 'histogram';\n __decorate$T([\n reactive$1('dataChange')\n ], HistogramSeries.prototype, \"fill\", void 0);\n __decorate$T([\n reactive$1('dataChange')\n ], HistogramSeries.prototype, \"stroke\", void 0);\n __decorate$T([\n reactive$1('layoutChange')\n ], HistogramSeries.prototype, \"fillOpacity\", void 0);\n __decorate$T([\n reactive$1('layoutChange')\n ], HistogramSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$T([\n reactive$1('update')\n ], HistogramSeries.prototype, \"lineDash\", void 0);\n __decorate$T([\n reactive$1('update')\n ], HistogramSeries.prototype, \"lineDashOffset\", void 0);\n return HistogramSeries;\n}(CartesianSeries));\n\nvar __extends$1R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HierarchySeries = /** @class */ (function (_super) {\n __extends$1R(HierarchySeries, _super);\n function HierarchySeries() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.data = undefined;\n return _this;\n }\n __decorate$U([\n reactive$1('dataChange')\n ], HierarchySeries.prototype, \"data\", void 0);\n return HierarchySeries;\n}(Series));\n\nvar __extends$1S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DropShadow = /** @class */ (function (_super) {\n __extends$1S(DropShadow, _super);\n function DropShadow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enabled = true;\n _this.color = 'rgba(0, 0, 0, 0.5)';\n _this.xOffset = 0;\n _this.yOffset = 0;\n _this.blur = 5;\n return _this;\n }\n __decorate$V([\n reactive$1('change')\n ], DropShadow.prototype, \"enabled\", void 0);\n __decorate$V([\n reactive$1('change')\n ], DropShadow.prototype, \"color\", void 0);\n __decorate$V([\n reactive$1('change')\n ], DropShadow.prototype, \"xOffset\", void 0);\n __decorate$V([\n reactive$1('change')\n ], DropShadow.prototype, \"yOffset\", void 0);\n __decorate$V([\n reactive$1('change')\n ], DropShadow.prototype, \"blur\", void 0);\n return DropShadow;\n}(Observable$1));\n\nfunction slice(parent, x0, y0, x1, y1) {\n var nodes = parent.children;\n var k = parent.value && (y1 - y0) / parent.value;\n nodes.forEach(function (node) {\n node.x0 = x0;\n node.x1 = x1;\n node.y0 = y0;\n node.y1 = y0 += node.value * k;\n });\n}\nfunction dice(parent, x0, y0, x1, y1) {\n var nodes = parent.children;\n var k = parent.value && (x1 - x0) / parent.value;\n nodes.forEach(function (node) {\n node.x0 = x0;\n node.x1 = x0 += node.value * k;\n node.y0 = y0;\n node.y1 = y1;\n });\n}\nfunction roundNode(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\nfunction squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [];\n var nodes = parent.children;\n var n = nodes.length;\n var value = parent.value;\n var i0 = 0;\n var i1 = 0;\n var dx;\n var dy;\n var nodeValue;\n var sumValue;\n var minValue;\n var maxValue;\n var newRatio;\n var minRatio;\n var alpha;\n var beta;\n while (i0 < n) {\n dx = x1 - x0;\n dy = y1 - y0;\n // Find the next non-empty node.\n do {\n sumValue = nodes[i1++].value;\n } while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n nodeValue = nodes[i1].value;\n sumValue += nodeValue;\n if (nodeValue < minValue) {\n minValue = nodeValue;\n }\n if (nodeValue > maxValue) {\n maxValue = nodeValue;\n }\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n minRatio = newRatio;\n }\n // Position and record the row orientation.\n var row = {\n value: sumValue,\n dice: dx < dy,\n children: nodes.slice(i0, i1)\n };\n rows.push(row);\n if (row.dice) {\n dice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n }\n else {\n slice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n }\n value -= sumValue;\n i0 = i1;\n }\n return rows;\n}\nvar phi = (1 + Math.sqrt(5)) / 2;\nvar squarify = (function custom(ratio) {\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n squarify.ratio = function (x) { return custom((x = +x) > 1 ? x : 1); };\n return squarify;\n})(phi);\nvar Treemap = /** @class */ (function () {\n function Treemap() {\n this.paddingStack = [0];\n this.dx = 1;\n this.dy = 1;\n this.round = true;\n this.tile = squarify;\n this.paddingInner = function (_) { return 0; };\n this.paddingTop = function (_) { return 0; };\n this.paddingRight = function (_) { return 0; };\n this.paddingBottom = function (_) { return 0; };\n this.paddingLeft = function (_) { return 0; };\n }\n Object.defineProperty(Treemap.prototype, \"size\", {\n get: function () {\n return [this.dx, this.dy];\n },\n set: function (size) {\n this.dx = size[0];\n this.dy = size[1];\n },\n enumerable: true,\n configurable: true\n });\n Treemap.prototype.processData = function (root) {\n root.x0 = 0;\n root.y0 = 0;\n root.x1 = this.dx;\n root.y1 = this.dy;\n root.eachBefore(this.positionNode.bind(this));\n this.paddingStack = [0];\n if (this.round) {\n root.eachBefore(roundNode);\n }\n return root;\n };\n Treemap.prototype.positionNode = function (node) {\n var p = this.paddingStack[node.depth];\n var x0 = node.x0 + p;\n var y0 = node.y0 + p;\n var x1 = node.x1 - p;\n var y1 = node.y1 - p;\n if (x1 < x0) {\n x0 = x1 = (x0 + x1) / 2;\n }\n if (y1 < y0) {\n y0 = y1 = (y0 + y1) / 2;\n }\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = this.paddingStack[node.depth + 1] = this.paddingInner(node) / 2;\n x0 += this.paddingLeft(node) - p;\n y0 += this.paddingTop(node) - p;\n x1 -= this.paddingRight(node) - p;\n y1 -= this.paddingBottom(node) - p;\n if (x1 < x0) {\n x0 = x1 = (x0 + x1) / 2;\n }\n if (y1 < y0) {\n y0 = y1 = (y0 + y1) / 2;\n }\n this.tile(node, x0, y0, x1, y1);\n }\n };\n return Treemap;\n}());\n\nvar HierarchyNode = /** @class */ (function () {\n function HierarchyNode(datum) {\n this.value = 0;\n this.depth = 0;\n this.height = 0;\n this.parent = undefined;\n this.children = undefined;\n this.datum = datum;\n }\n HierarchyNode.prototype.countFn = function (node) {\n var sum = 0, children = node.children;\n if (!children || !children.length) {\n sum = 1;\n }\n else {\n var i = children.length;\n while (--i >= 0) {\n sum += children[i].value;\n }\n }\n node.value = sum;\n };\n HierarchyNode.prototype.count = function () {\n return this.eachAfter(this.countFn);\n };\n HierarchyNode.prototype.each = function (callback, scope) {\n var _this = this;\n var index = -1;\n this.iterator(function (node) {\n callback.call(scope, node, ++index, _this);\n });\n return this;\n };\n /**\n * Invokes the given callback for each node in post-order traversal.\n * @param callback\n * @param scope\n */\n HierarchyNode.prototype.eachAfter = function (callback, scope) {\n var node = this;\n var nodes = [node];\n var next = [];\n while (node = nodes.pop()) {\n next.push(node);\n var children = node.children;\n if (children) {\n for (var i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n var index = -1;\n while (node = next.pop()) {\n callback.call(scope, node, ++index, this);\n }\n return this;\n };\n /**\n * Invokes the given callback for each node in pre-order traversal.\n * @param callback\n * @param scope\n */\n HierarchyNode.prototype.eachBefore = function (callback, scope) {\n var node = this;\n var nodes = [node];\n var index = -1;\n while (node = nodes.pop()) {\n callback.call(scope, node, ++index, this);\n var children = node.children;\n if (children) {\n for (var i = children.length - 1; i >= 0; --i) {\n var child = children[i];\n nodes.push(child);\n }\n }\n }\n return this;\n };\n HierarchyNode.prototype.find = function (callback, scope) {\n var _this = this;\n var index = -1;\n var result;\n this.iterator(function (node) {\n if (callback.call(scope, node, ++index, _this)) {\n result = node;\n return false;\n }\n });\n return result;\n };\n HierarchyNode.prototype.sum = function (value) {\n return this.eachAfter(function (node) {\n var sum = +value(node.datum) || 0;\n var children = node.children;\n if (children) {\n var i = children.length;\n while (--i >= 0) {\n sum += children[i].value;\n }\n }\n node.value = sum;\n });\n };\n HierarchyNode.prototype.sort = function (compare) {\n return this.eachBefore(function (node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n };\n HierarchyNode.prototype.path = function (end) {\n var start = this;\n var ancestor = leastCommonAncestor(start, end);\n var nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n // const otherBranch = [];\n // while (end !== ancestor) {\n // otherBranch.push(end);\n // end = end.parent;\n // }\n // nodes.concat(otherBranch.reverse());\n return nodes;\n };\n HierarchyNode.prototype.ancestors = function () {\n var node = this;\n var nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n };\n HierarchyNode.prototype.descendants = function () {\n var nodes = [];\n this.iterator(function (node) { return nodes.push(node); });\n return nodes;\n };\n HierarchyNode.prototype.leaves = function () {\n var leaves = [];\n this.eachBefore(function (node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n };\n HierarchyNode.prototype.links = function () {\n var root = this;\n var links = [];\n root.each(function (node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({ source: node.parent, target: node });\n }\n });\n return links;\n };\n HierarchyNode.prototype.copy = function () {\n // TODO\n };\n HierarchyNode.prototype.iterator = function (callback) {\n var node = this;\n var next = [node];\n var current;\n doLoop: do {\n current = next.reverse();\n next = [];\n while (node = current.pop()) {\n if (callback(node) === false) {\n break doLoop;\n }\n var children = node.children;\n if (children) {\n for (var i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n };\n return HierarchyNode;\n}());\nfunction hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) {\n children = mapChildren;\n }\n }\n else if (children === undefined) {\n children = objectChildren;\n }\n var root = new HierarchyNode(data);\n var nodes = [root];\n var node;\n var child, childs, i, n;\n while (node = nodes.pop()) {\n if ((childs = children(node.datum)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new HierarchyNode(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n return root.eachBefore(computeHeight);\n}\nfunction computeHeight(node) {\n var height = 0;\n do {\n node.height = height;\n } while ((node = node.parent) && (node.height < ++height));\n}\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : undefined;\n}\nfunction objectChildren(d) {\n return d.children;\n}\nfunction leastCommonAncestor(a, b) {\n if (!(a && b)) {\n return undefined;\n }\n if (a === b) {\n return a;\n }\n var aNodes = a.ancestors();\n var bNodes = b.ancestors();\n var c = undefined;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n\nvar __extends$1T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TreemapSeriesTooltip = /** @class */ (function (_super) {\n __extends$1T(TreemapSeriesTooltip, _super);\n function TreemapSeriesTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$W([\n reactive$1('change')\n ], TreemapSeriesTooltip.prototype, \"renderer\", void 0);\n return TreemapSeriesTooltip;\n}(SeriesTooltip));\nvar TreemapSeriesLabel = /** @class */ (function (_super) {\n __extends$1T(TreemapSeriesLabel, _super);\n function TreemapSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.padding = 10;\n return _this;\n }\n __decorate$W([\n reactive$1('change')\n ], TreemapSeriesLabel.prototype, \"padding\", void 0);\n return TreemapSeriesLabel;\n}(Label$1));\nvar TextNodeTag;\n(function (TextNodeTag) {\n TextNodeTag[TextNodeTag[\"Name\"] = 0] = \"Name\";\n TextNodeTag[TextNodeTag[\"Value\"] = 1] = \"Value\";\n})(TextNodeTag || (TextNodeTag = {}));\nvar TreemapSeries = /** @class */ (function (_super) {\n __extends$1T(TreemapSeries, _super);\n function TreemapSeries() {\n var _this = _super.call(this) || this;\n _this.groupSelection = Selection$1.select(_this.pickGroup).selectAll();\n _this.labelMap = new Map();\n _this.layout = new Treemap();\n _this.title = (function () {\n var label = new TreemapSeriesLabel();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 12;\n label.fontFamily = 'Verdana, sans-serif';\n label.padding = 15;\n return label;\n })();\n _this.subtitle = (function () {\n var label = new TreemapSeriesLabel();\n label.color = 'white';\n label.fontSize = 9;\n label.fontFamily = 'Verdana, sans-serif';\n label.padding = 13;\n return label;\n })();\n _this.labels = {\n large: (function () {\n var label = new Label$1();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 18;\n return label;\n })(),\n medium: (function () {\n var label = new Label$1();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 14;\n return label;\n })(),\n small: (function () {\n var label = new Label$1();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 10;\n return label;\n })(),\n color: (function () {\n var label = new Label$1();\n label.color = 'white';\n return label;\n })()\n };\n _this._nodePadding = 2;\n _this.labelKey = 'label';\n _this.sizeKey = 'size';\n _this.colorKey = 'color';\n _this.colorDomain = [-5, 5];\n _this.colorRange = ['#cb4b3f', '#6acb64'];\n _this.colorParents = false;\n _this.gradient = true;\n _this.colorName = 'Change';\n _this.rootName = 'Root';\n _this._shadow = (function () {\n var shadow = new DropShadow();\n shadow.color = 'rgba(0, 0, 0, 0.4)';\n shadow.xOffset = 1.5;\n shadow.yOffset = 1.5;\n return shadow;\n })();\n _this.tooltip = new TreemapSeriesTooltip();\n _this.shadow.addEventListener('change', _this.scheduleUpdate, _this);\n _this.title.addEventListener('change', _this.scheduleUpdate, _this);\n _this.subtitle.addEventListener('change', _this.scheduleUpdate, _this);\n _this.labels.small.addEventListener('change', _this.scheduleUpdate, _this);\n _this.labels.medium.addEventListener('change', _this.scheduleUpdate, _this);\n _this.labels.large.addEventListener('change', _this.scheduleUpdate, _this);\n _this.labels.color.addEventListener('change', _this.scheduleUpdate, _this);\n return _this;\n }\n Object.defineProperty(TreemapSeries.prototype, \"nodePadding\", {\n get: function () {\n return this._nodePadding;\n },\n set: function (value) {\n if (this._nodePadding !== value) {\n this._nodePadding = value;\n this.updateLayoutPadding();\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreemapSeries.prototype, \"shadow\", {\n get: function () {\n return this._shadow;\n },\n set: function (value) {\n if (this._shadow !== value) {\n this._shadow = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n TreemapSeries.prototype.onHighlightChange = function () {\n this.updateNodes();\n };\n TreemapSeries.prototype.updateLayoutPadding = function () {\n var _a = this, title = _a.title, subtitle = _a.subtitle, nodePadding = _a.nodePadding, labelKey = _a.labelKey;\n this.layout.paddingRight = function (_) { return nodePadding; };\n this.layout.paddingBottom = function (_) { return nodePadding; };\n this.layout.paddingLeft = function (_) { return nodePadding; };\n this.layout.paddingTop = function (node) {\n var name = node.datum[labelKey] || '';\n if (node.children) {\n name = name.toUpperCase();\n }\n var font = node.depth > 1 ? subtitle : title;\n var textSize = HdpiCanvas$1.getTextSize(name, [font.fontWeight, font.fontSize + 'px', font.fontFamily].join(' ').trim());\n var innerNodeWidth = node.x1 - node.x0 - nodePadding * 2;\n var hasTitle = node.depth > 0 && node.children && textSize.width <= innerNodeWidth;\n node.hasTitle = !!hasTitle;\n return hasTitle ? textSize.height + nodePadding * 2 : nodePadding;\n };\n };\n TreemapSeries.prototype.processData = function () {\n if (!this.data) {\n return false;\n }\n var _a = this, data = _a.data, sizeKey = _a.sizeKey, labelKey = _a.labelKey, colorKey = _a.colorKey, colorDomain = _a.colorDomain, colorRange = _a.colorRange, colorParents = _a.colorParents;\n var dataRoot;\n if (sizeKey) {\n dataRoot = hierarchy(data).sum(function (datum) { return datum.children ? 1 : datum[sizeKey]; });\n }\n else {\n dataRoot = hierarchy(data).sum(function (datum) { return datum.children ? 0 : 1; });\n }\n this.dataRoot = dataRoot;\n var colorScale = new LinearScale$1();\n colorScale.domain = colorDomain;\n colorScale.range = colorRange;\n var series = this;\n function traverse(root, depth) {\n if (depth === void 0) { depth = 0; }\n var children = root.children, datum = root.datum;\n var label = datum[labelKey];\n var colorValue = colorKey ? datum[colorKey] : depth;\n root.series = series;\n root.fill = !children || colorParents ? colorScale.convert(colorValue) : '#272931';\n root.colorValue = colorValue;\n if (label) {\n root.label = children ? label.toUpperCase() : label;\n }\n else {\n root.label = '';\n }\n if (children) {\n children.forEach(function (child) { return traverse(child, depth + 1); });\n }\n }\n traverse(this.dataRoot);\n return true;\n };\n TreemapSeries.prototype.getLabelCenterX = function (datum) {\n return (datum.x0 + datum.x1) / 2;\n };\n TreemapSeries.prototype.getLabelCenterY = function (datum) {\n return (datum.y0 + datum.y1) / 2 + 2;\n };\n TreemapSeries.prototype.update = function () {\n this.updatePending = false;\n this.updateSelections();\n this.updateNodes();\n };\n TreemapSeries.prototype.updateSelections = function () {\n if (!this.nodeDataPending) {\n return;\n }\n this.nodeDataPending = false;\n var _a = this, chart = _a.chart, dataRoot = _a.dataRoot;\n if (!chart || !dataRoot) {\n return;\n }\n var seriesRect = chart.getSeriesRect();\n if (!seriesRect) {\n return;\n }\n this.layout.size = [seriesRect.width, seriesRect.height];\n this.updateLayoutPadding();\n var descendants = this.layout.processData(dataRoot).descendants();\n var updateGroups = this.groupSelection.setData(descendants);\n updateGroups.exit.remove();\n var enterGroups = updateGroups.enter.append(Group$1);\n enterGroups.append(Rect);\n enterGroups.append(Text$2).each(function (node) { return node.tag = TextNodeTag.Name; });\n enterGroups.append(Text$2).each(function (node) { return node.tag = TextNodeTag.Value; });\n this.groupSelection = updateGroups.merge(enterGroups);\n };\n TreemapSeries.prototype.updateNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n var _a = this, colorKey = _a.colorKey, labelMap = _a.labelMap, nodePadding = _a.nodePadding, title = _a.title, subtitle = _a.subtitle, labels = _a.labels, shadow = _a.shadow, gradient = _a.gradient, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f;\n this.groupSelection.selectByClass(Rect).each(function (rect, datum) {\n var isDatumHighlighted = datum === highlightedDatum;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : datum.fill;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : datum.depth < 2 ? undefined : 'black';\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : _this.getStrokeWidth(1, datum);\n rect.fill = fill;\n rect.stroke = stroke;\n rect.strokeWidth = strokeWidth;\n rect.crisp = true;\n rect.gradient = gradient;\n rect.x = datum.x0;\n rect.y = datum.y0;\n rect.width = datum.x1 - datum.x0;\n rect.height = datum.y1 - datum.y0;\n });\n this.groupSelection.selectByTag(TextNodeTag.Name).each(function (text, datum, index) {\n var isLeaf = !datum.children;\n var innerNodeWidth = datum.x1 - datum.x0 - nodePadding * 2;\n var innerNodeHeight = datum.y1 - datum.y0 - nodePadding * 2;\n var hasTitle = datum.hasTitle;\n var highlighted = datum === highlightedDatum;\n var label;\n if (isLeaf) {\n if (innerNodeWidth > 40 && innerNodeHeight > 40) {\n label = labels.large;\n }\n else if (innerNodeWidth > 20 && innerNodeHeight > 20) {\n label = labels.medium;\n }\n else {\n label = labels.small;\n }\n }\n else {\n if (datum.depth > 1) {\n label = subtitle;\n }\n else {\n label = title;\n }\n }\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.textBaseline = isLeaf ? 'bottom' : (hasTitle ? 'top' : 'middle');\n text.textAlign = hasTitle ? 'left' : 'center';\n text.text = datum.label;\n var textBBox = text.computeBBox();\n var hasLabel = isLeaf && !!textBBox\n && textBBox.width <= innerNodeWidth\n && textBBox.height * 2 + 8 <= innerNodeHeight;\n labelMap.set(index, text);\n text.fill = highlighted ? 'black' : label.color;\n text.fillShadow = hasLabel && !highlighted ? shadow : undefined;\n text.visible = hasTitle || hasLabel;\n if (hasTitle) {\n text.x = datum.x0 + nodePadding;\n text.y = datum.y0 + nodePadding;\n }\n else {\n text.x = _this.getLabelCenterX(datum);\n text.y = _this.getLabelCenterY(datum);\n }\n });\n this.groupSelection.selectByTag(TextNodeTag.Value).each(function (text, datum, index) {\n var isLeaf = !datum.children;\n var innerNodeWidth = datum.x1 - datum.x0 - nodePadding * 2;\n var highlighted = datum === highlightedDatum;\n var value = datum.colorValue;\n var label = labels.color;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.textBaseline = 'top';\n text.textAlign = 'center';\n text.text = typeof value === 'number' && isFinite(value)\n ? String(toFixed(datum.colorValue)) + '%'\n : '';\n var textBBox = text.computeBBox();\n var nameNode = labelMap.get(index);\n var hasLabel = !!nameNode && nameNode.visible;\n var isVisible = isLeaf && !!colorKey && hasLabel && !!textBBox && textBBox.width < innerNodeWidth;\n text.fill = highlighted ? 'black' : label.color;\n text.fillShadow = highlighted ? undefined : shadow;\n text.visible = isVisible;\n if (isVisible) {\n text.x = _this.getLabelCenterX(datum);\n text.y = _this.getLabelCenterY(datum);\n }\n else {\n if (nameNode && !(datum.children && datum.children.length)) {\n nameNode.textBaseline = 'middle';\n nameNode.y = _this.getLabelCenterY(datum);\n }\n }\n });\n };\n TreemapSeries.prototype.getDomain = function (direction) {\n return [0, 1];\n };\n TreemapSeries.prototype.fireNodeClickEvent = function (event, datum) {\n this.fireEvent({\n type: 'nodeClick',\n event: event,\n series: this,\n datum: datum.datum,\n labelKey: this.labelKey,\n sizeKey: this.sizeKey,\n colorKey: this.colorKey\n });\n };\n TreemapSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, tooltip = _a.tooltip, sizeKey = _a.sizeKey, labelKey = _a.labelKey, colorKey = _a.colorKey, colorName = _a.colorName, rootName = _a.rootName;\n var datum = nodeDatum.datum;\n var tooltipRenderer = tooltip.renderer;\n var title = nodeDatum.depth ? datum[labelKey] : (rootName || datum[labelKey]);\n var content = undefined;\n var color = nodeDatum.fill || 'gray';\n if (colorKey && colorName) {\n var colorValue = datum[colorKey];\n if (typeof colorValue === 'number' && isFinite(colorValue)) {\n content = \"\" + colorName + \": \" + toFixed(datum[colorKey]);\n }\n }\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: nodeDatum,\n sizeKey: sizeKey,\n labelKey: labelKey,\n colorKey: colorKey,\n title: title,\n color: color\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n TreemapSeries.prototype.listSeriesItems = function (legendData) {\n };\n TreemapSeries.className = 'TreemapSeries';\n TreemapSeries.type = 'treemap';\n __decorate$W([\n reactive$1('dataChange')\n ], TreemapSeries.prototype, \"labelKey\", void 0);\n __decorate$W([\n reactive$1('dataChange')\n ], TreemapSeries.prototype, \"sizeKey\", void 0);\n __decorate$W([\n reactive$1('dataChange')\n ], TreemapSeries.prototype, \"colorKey\", void 0);\n __decorate$W([\n reactive$1('dataChange')\n ], TreemapSeries.prototype, \"colorDomain\", void 0);\n __decorate$W([\n reactive$1('dataChange')\n ], TreemapSeries.prototype, \"colorRange\", void 0);\n __decorate$W([\n reactive$1('dataChange')\n ], TreemapSeries.prototype, \"colorParents\", void 0);\n __decorate$W([\n reactive$1('update')\n ], TreemapSeries.prototype, \"gradient\", void 0);\n return TreemapSeries;\n}(HierarchySeries));\n\nvar __extends$1U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Sector = /** @class */ (function (_super) {\n __extends$1U(Sector, _super);\n function Sector() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._centerX = 0;\n _this._centerY = 0;\n _this._centerOffset = 0;\n _this._innerRadius = 10;\n _this._outerRadius = 20;\n _this._startAngle = 0;\n _this._endAngle = Math.PI * 2;\n _this._angleOffset = 0;\n return _this;\n }\n Object.defineProperty(Sector.prototype, \"centerX\", {\n get: function () {\n return this._centerX;\n },\n set: function (value) {\n if (this._centerX !== value) {\n this._centerX = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sector.prototype, \"centerY\", {\n get: function () {\n return this._centerY;\n },\n set: function (value) {\n if (this._centerY !== value) {\n this._centerY = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sector.prototype, \"centerOffset\", {\n get: function () {\n return this._centerOffset;\n },\n set: function (value) {\n if (this._centerOffset !== value) {\n this._centerOffset = Math.max(0, value);\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sector.prototype, \"innerRadius\", {\n get: function () {\n return this._innerRadius;\n },\n set: function (value) {\n if (this._innerRadius !== value) {\n this._innerRadius = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sector.prototype, \"outerRadius\", {\n get: function () {\n return this._outerRadius;\n },\n set: function (value) {\n if (this._outerRadius !== value) {\n this._outerRadius = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sector.prototype, \"startAngle\", {\n get: function () {\n return this._startAngle;\n },\n set: function (value) {\n if (this._startAngle !== value) {\n this._startAngle = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sector.prototype, \"endAngle\", {\n get: function () {\n return this._endAngle;\n },\n set: function (value) {\n if (this._endAngle !== value) {\n this._endAngle = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sector.prototype, \"angleOffset\", {\n get: function () {\n return this._angleOffset;\n },\n set: function (value) {\n if (this._angleOffset !== value) {\n this._angleOffset = value;\n this.dirtyPath = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Sector.prototype.computeBBox = function () {\n var radius = this.outerRadius;\n return new BBox$1(this.centerX - radius, this.centerY - radius, radius * 2, radius * 2);\n };\n Sector.prototype.isFullPie = function () {\n return isEqual(normalizeAngle360(this.startAngle), normalizeAngle360(this.endAngle));\n };\n Sector.prototype.updatePath = function () {\n var path = this.path;\n var angleOffset = this.angleOffset;\n var startAngle = Math.min(this.startAngle, this.endAngle) + angleOffset;\n var endAngle = Math.max(this.startAngle, this.endAngle) + angleOffset;\n var midAngle = (startAngle + endAngle) * 0.5;\n var innerRadius = Math.min(this.innerRadius, this.outerRadius);\n var outerRadius = Math.max(this.innerRadius, this.outerRadius);\n var centerOffset = this.centerOffset;\n var fullPie = this.isFullPie();\n var centerX = this.centerX;\n var centerY = this.centerY;\n path.clear();\n if (centerOffset) {\n centerX += centerOffset * Math.cos(midAngle);\n centerY += centerOffset * Math.sin(midAngle);\n }\n if (!fullPie) {\n path.moveTo(centerX + innerRadius * Math.cos(startAngle), centerY + innerRadius * Math.sin(startAngle));\n // if (showTip) {\n // path.lineTo(\n // centerX + 0.5 * (innerRadius + outerRadius) * Math.cos(startAngle) + tipOffset * Math.cos(startAngle + Math.PI / 2),\n // centerY + 0.5 * (innerRadius + outerRadius) * Math.sin(startAngle) + tipOffset * Math.sin(startAngle + Math.PI / 2)\n // );\n // }\n path.lineTo(centerX + outerRadius * Math.cos(startAngle), centerY + outerRadius * Math.sin(startAngle));\n }\n path.cubicArc(centerX, centerY, outerRadius, outerRadius, 0, startAngle, endAngle, 0);\n // path[fullPie ? 'moveTo' : 'lineTo'](\n // centerX + innerRadius * Math.cos(endAngle),\n // centerY + innerRadius * Math.sin(endAngle)\n // );\n if (fullPie) {\n path.moveTo(centerX + innerRadius * Math.cos(endAngle), centerY + innerRadius * Math.sin(endAngle));\n }\n else {\n // if (showTip) {\n // path.lineTo(\n // centerX + 0.5 * (innerRadius + outerRadius) * Math.cos(endAngle) + tipOffset * Math.cos(endAngle + Math.PI / 2),\n // centerY + 0.5 * (innerRadius + outerRadius) * Math.sin(endAngle) + tipOffset * Math.sin(endAngle + Math.PI / 2)\n // );\n // }\n // Temp workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=993330\n // Revert this commit when fixed ^^.\n var x = centerX + innerRadius * Math.cos(endAngle);\n path.lineTo(Math.abs(x) < 1e-8 ? 0 : x, centerY + innerRadius * Math.sin(endAngle));\n }\n path.cubicArc(centerX, centerY, innerRadius, innerRadius, 0, endAngle, startAngle, 1);\n path.closePath();\n this.dirtyPath = false;\n };\n Sector.className = 'Sector';\n return Sector;\n}(Path$1));\n\nvar __extends$1V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$z = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$f = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$z(arguments[i]));\n return ar;\n};\nvar PieHighlightStyle = /** @class */ (function (_super) {\n __extends$1V(PieHighlightStyle, _super);\n function PieHighlightStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return PieHighlightStyle;\n}(HighlightStyle));\nvar PieNodeTag;\n(function (PieNodeTag) {\n PieNodeTag[PieNodeTag[\"Sector\"] = 0] = \"Sector\";\n PieNodeTag[PieNodeTag[\"Callout\"] = 1] = \"Callout\";\n PieNodeTag[PieNodeTag[\"Label\"] = 2] = \"Label\";\n})(PieNodeTag || (PieNodeTag = {}));\nvar PieSeriesLabel = /** @class */ (function (_super) {\n __extends$1V(PieSeriesLabel, _super);\n function PieSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.offset = 3; // from the callout line\n _this.minAngle = 20; // in degrees\n return _this;\n }\n __decorate$X([\n reactive$1('change')\n ], PieSeriesLabel.prototype, \"offset\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeriesLabel.prototype, \"minAngle\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeriesLabel.prototype, \"formatter\", void 0);\n return PieSeriesLabel;\n}(Label$1));\nvar PieSeriesCallout = /** @class */ (function (_super) {\n __extends$1V(PieSeriesCallout, _super);\n function PieSeriesCallout() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.colors = [\n '#874349',\n '#718661',\n '#a48f5f',\n '#5a7088',\n '#7f637a',\n '#5d8692'\n ];\n _this.length = 10;\n _this.strokeWidth = 1;\n return _this;\n }\n __decorate$X([\n reactive$1('change')\n ], PieSeriesCallout.prototype, \"colors\", void 0);\n __decorate$X([\n reactive$1('change')\n ], PieSeriesCallout.prototype, \"length\", void 0);\n __decorate$X([\n reactive$1('change')\n ], PieSeriesCallout.prototype, \"strokeWidth\", void 0);\n return PieSeriesCallout;\n}(Observable$1));\nvar PieSeriesTooltip = /** @class */ (function (_super) {\n __extends$1V(PieSeriesTooltip, _super);\n function PieSeriesTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate$X([\n reactive$1('change')\n ], PieSeriesTooltip.prototype, \"renderer\", void 0);\n return PieSeriesTooltip;\n}(SeriesTooltip));\nvar PieTitle = /** @class */ (function (_super) {\n __extends$1V(PieTitle, _super);\n function PieTitle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.showInLegend = false;\n return _this;\n }\n __decorate$X([\n reactive$1()\n ], PieTitle.prototype, \"showInLegend\", void 0);\n return PieTitle;\n}(Caption));\nvar PieSeries = /** @class */ (function (_super) {\n __extends$1V(PieSeries, _super);\n function PieSeries() {\n var _this = _super.call(this) || this;\n _this.radiusScale = new LinearScale$1();\n _this.groupSelection = Selection$1.select(_this.pickGroup).selectAll();\n /**\n * The processed data that gets visualized.\n */\n _this.groupSelectionData = [];\n _this.angleScale = (function () {\n var scale = new LinearScale$1();\n // Each slice is a ratio of the whole, where all ratios add up to 1.\n scale.domain = [0, 1];\n // Add 90 deg to start the first pie at 12 o'clock.\n scale.range = [-Math.PI, Math.PI].map(function (angle) { return angle + Math.PI / 2; });\n return scale;\n })();\n // When a user toggles a series item (e.g. from the legend), its boolean state is recorded here.\n _this.seriesItemEnabled = [];\n _this.label = new PieSeriesLabel();\n _this.callout = new PieSeriesCallout();\n _this.tooltip = new PieSeriesTooltip();\n /**\n * The key of the numeric field to use to determine the angle (for example,\n * a pie slice angle).\n */\n _this.angleKey = '';\n _this.angleName = '';\n _this._fills = [\n '#c16068',\n '#a2bf8a',\n '#ebcc87',\n '#80a0c3',\n '#b58dae',\n '#85c0d1'\n ];\n _this._strokes = [\n '#874349',\n '#718661',\n '#a48f5f',\n '#5a7088',\n '#7f637a',\n '#5d8692'\n ];\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n /**\n * The series rotation in degrees.\n */\n _this.rotation = 0;\n _this.outerRadiusOffset = 0;\n _this.innerRadiusOffset = 0;\n _this.strokeWidth = 1;\n _this.highlightStyle = new PieHighlightStyle();\n _this.addEventListener('update', _this.scheduleUpdate, _this);\n _this.label.addEventListener('change', _this.scheduleUpdate, _this);\n _this.label.addEventListener('dataChange', _this.scheduleData, _this);\n _this.callout.addEventListener('change', _this.scheduleLayout, _this);\n _this.addPropertyListener('data', function (event) {\n if (event.value) {\n event.source.seriesItemEnabled = event.value.map(function () { return true; });\n }\n });\n return _this;\n }\n Object.defineProperty(PieSeries.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (value) {\n var oldTitle = this._title;\n function updateLegend() {\n this.fireEvent({ type: 'legendChange' });\n }\n if (oldTitle !== value) {\n if (oldTitle) {\n oldTitle.removeEventListener('change', this.scheduleUpdate, this);\n oldTitle.removePropertyListener('showInLegend', updateLegend, this);\n this.group.removeChild(oldTitle.node);\n }\n if (value) {\n value.node.textBaseline = 'bottom';\n value.addEventListener('change', this.scheduleUpdate, this);\n value.addPropertyListener('showInLegend', updateLegend, this);\n this.group.appendChild(value.node);\n }\n this._title = value;\n this.scheduleUpdate();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PieSeries.prototype, \"fills\", {\n get: function () {\n return this._fills;\n },\n set: function (values) {\n this._fills = values;\n this.scheduleUpdate();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PieSeries.prototype, \"strokes\", {\n get: function () {\n return this._strokes;\n },\n set: function (values) {\n this._strokes = values;\n this.scheduleUpdate();\n },\n enumerable: true,\n configurable: true\n });\n PieSeries.prototype.onHighlightChange = function () {\n this.updateNodes();\n };\n PieSeries.prototype.setColors = function (fills, strokes) {\n this.fills = fills;\n this.strokes = strokes;\n this.callout.colors = strokes;\n };\n PieSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.angleScale.domain;\n }\n else {\n return this.radiusScale.domain;\n }\n };\n PieSeries.prototype.processData = function () {\n var _this = this;\n var _a = this, angleKey = _a.angleKey, radiusKey = _a.radiusKey, seriesItemEnabled = _a.seriesItemEnabled, angleScale = _a.angleScale, groupSelectionData = _a.groupSelectionData, label = _a.label;\n var data = angleKey && this.data ? this.data : [];\n var angleData = data.map(function (datum, index) { return seriesItemEnabled[index] && Math.abs(+datum[angleKey]) || 0; });\n var angleDataTotal = angleData.reduce(function (a, b) { return a + b; }, 0);\n // The ratios (in [0, 1] interval) used to calculate the end angle value for every pie slice.\n // Each slice starts where the previous one ends, so we only keep the ratios for end angles.\n var angleDataRatios = (function () {\n var sum = 0;\n return angleData.map(function (datum) { return sum += datum / angleDataTotal; });\n })();\n var labelFormatter = label.formatter;\n var labelKey = label.enabled && this.labelKey;\n var labelData = [];\n var radiusData = [];\n if (labelKey) {\n if (labelFormatter) {\n labelData = data.map(function (datum) { return labelFormatter({ value: datum[labelKey] }); });\n }\n else {\n labelData = data.map(function (datum) { return String(datum[labelKey]); });\n }\n }\n if (radiusKey) {\n var _b = this, radiusMin = _b.radiusMin, radiusMax = _b.radiusMax;\n var radii = data.map(function (datum) { return Math.abs(datum[radiusKey]); });\n var min_1 = radiusMin !== undefined ? radiusMin : Math.min.apply(Math, __spread$f(radii));\n var max = radiusMax !== undefined ? radiusMax : Math.max.apply(Math, __spread$f(radii));\n var delta_1 = max - min_1;\n radiusData = radii.map(function (value) { return delta_1 ? (value - min_1) / delta_1 : 1; });\n }\n groupSelectionData.length = 0;\n var rotation = toRadians(this.rotation);\n var halfPi = Math.PI / 2;\n var datumIndex = 0;\n var quadrantTextOpts = [\n { textAlign: 'center', textBaseline: 'bottom' },\n { textAlign: 'left', textBaseline: 'middle' },\n { textAlign: 'center', textBaseline: 'hanging' },\n { textAlign: 'right', textBaseline: 'middle' },\n ];\n // Process segments.\n var end = 0;\n angleDataRatios.forEach(function (start) {\n if (isNaN(start)) {\n return;\n } // No segments displayed - nothing to do.\n var radius = radiusKey ? radiusData[datumIndex] : 1;\n var startAngle = angleScale.convert(start) + rotation;\n var endAngle = angleScale.convert(end) + rotation;\n var midAngle = (startAngle + endAngle) / 2;\n var span = Math.abs(endAngle - startAngle);\n var midCos = Math.cos(midAngle);\n var midSin = Math.sin(midAngle);\n var labelMinAngle = toRadians(label.minAngle);\n var labelVisible = labelKey && span > labelMinAngle;\n var midAngle180 = normalizeAngle180(midAngle);\n // Split the circle into quadrants like so: ⊗\n var quadrantStart = -3 * Math.PI / 4; // same as `normalizeAngle180(toRadians(-135))`\n var quadrantOffset = midAngle180 - quadrantStart;\n var quadrant = Math.floor(quadrantOffset / halfPi);\n var quadrantIndex = mod(quadrant, quadrantTextOpts.length);\n var _a = quadrantTextOpts[quadrantIndex], textAlign = _a.textAlign, textBaseline = _a.textBaseline;\n groupSelectionData.push({\n series: _this,\n datum: data[datumIndex],\n itemId: datumIndex,\n index: datumIndex,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle,\n midAngle: midAngle,\n midCos: midCos,\n midSin: midSin,\n label: labelVisible ? {\n text: labelData[datumIndex],\n textAlign: textAlign,\n textBaseline: textBaseline\n } : undefined\n });\n datumIndex++;\n end = start; // Update for next iteration.\n });\n return true;\n };\n PieSeries.prototype.update = function () {\n this.updatePending = false;\n var _a = this, radius = _a.radius, innerRadiusOffset = _a.innerRadiusOffset, outerRadiusOffset = _a.outerRadiusOffset, title = _a.title;\n this.radiusScale.range = [\n innerRadiusOffset ? radius + innerRadiusOffset : 0,\n radius + (outerRadiusOffset || 0)\n ];\n this.group.translationX = this.centerX;\n this.group.translationY = this.centerY;\n if (title) {\n var outerRadius = Math.max(0, this.radiusScale.range[1]);\n if (outerRadius === 0) {\n title.node.visible = false;\n }\n else {\n title.node.translationY = -radius - outerRadiusOffset - 2;\n title.node.visible = title.enabled;\n }\n }\n this.updateSelections();\n this.updateNodes();\n };\n PieSeries.prototype.updateSelections = function () {\n if (!this.nodeDataPending) {\n return;\n }\n this.nodeDataPending = false;\n this.updateGroupSelection();\n };\n PieSeries.prototype.updateGroupSelection = function () {\n var updateGroups = this.groupSelection.setData(this.groupSelectionData);\n updateGroups.exit.remove();\n var enterGroups = updateGroups.enter.append(Group$1);\n enterGroups.append(Sector).each(function (node) { return node.tag = PieNodeTag.Sector; });\n enterGroups.append(Line$1).each(function (node) {\n node.tag = PieNodeTag.Callout;\n node.pointerEvents = PointerEvents$1.None;\n });\n enterGroups.append(Text$2).each(function (node) {\n node.tag = PieNodeTag.Label;\n node.pointerEvents = PointerEvents$1.None;\n });\n this.groupSelection = updateGroups.merge(enterGroups);\n };\n PieSeries.prototype.updateNodes = function () {\n var _this = this;\n if (!this.chart) {\n return;\n }\n this.group.visible = this.visible && this.seriesItemEnabled.indexOf(true) >= 0;\n var _a = this, fills = _a.fills, strokes = _a.strokes, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, radiusScale = _a.radiusScale, callout = _a.callout, shadow = _a.shadow, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f, angleKey = _a.angleKey, radiusKey = _a.radiusKey, formatter = _a.formatter;\n var centerOffsets = [];\n var innerRadius = radiusScale.convert(0);\n this.groupSelection.selectByTag(PieNodeTag.Sector).each(function (sector, datum, index) {\n var radius = radiusScale.convert(datum.radius);\n var isDatumHighlighted = !!highlightedDatum && highlightedDatum.series === _this && datum.itemId === highlightedDatum.itemId;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : fills[index % fills.length];\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : strokes[index % strokes.length];\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : _this.getStrokeWidth(_this.strokeWidth);\n var format = undefined;\n if (formatter) {\n format = formatter({\n datum: datum.datum,\n angleKey: angleKey,\n radiusKey: radiusKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: isDatumHighlighted\n });\n }\n // Bring highlighted slice's parent group to front.\n var parent = sector.parent && sector.parent.parent;\n if (isDatumHighlighted && parent) {\n parent.removeChild(sector.parent);\n parent.appendChild(sector.parent);\n }\n sector.innerRadius = Math.max(0, innerRadius);\n sector.outerRadius = Math.max(0, radius);\n sector.startAngle = datum.startAngle;\n sector.endAngle = datum.endAngle;\n sector.fill = format && format.fill || fill;\n sector.stroke = format && format.stroke || stroke;\n sector.strokeWidth = format && format.strokeWidth !== undefined ? format.strokeWidth : strokeWidth;\n sector.fillOpacity = fillOpacity;\n sector.strokeOpacity = strokeOpacity;\n sector.lineDash = _this.lineDash;\n sector.lineDashOffset = _this.lineDashOffset;\n sector.fillShadow = shadow;\n sector.lineJoin = 'round';\n sector.opacity = _this.getOpacity();\n centerOffsets.push(sector.centerOffset);\n });\n var calloutColors = callout.colors, calloutLength = callout.length, calloutStrokeWidth = callout.strokeWidth;\n this.groupSelection.selectByTag(PieNodeTag.Callout).each(function (line, datum, index) {\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n if (datum.label && outerRadius !== 0) {\n line.strokeWidth = calloutStrokeWidth;\n line.stroke = calloutColors[index % calloutColors.length];\n line.x1 = datum.midCos * outerRadius;\n line.y1 = datum.midSin * outerRadius;\n line.x2 = datum.midCos * (outerRadius + calloutLength);\n line.y2 = datum.midSin * (outerRadius + calloutLength);\n }\n else {\n line.stroke = undefined;\n }\n });\n {\n var _g = this.label, offset_1 = _g.offset, fontStyle_1 = _g.fontStyle, fontWeight_1 = _g.fontWeight, fontSize_1 = _g.fontSize, fontFamily_1 = _g.fontFamily, color_1 = _g.color;\n this.groupSelection.selectByTag(PieNodeTag.Label).each(function (text, datum, index) {\n var label = datum.label;\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n if (label && outerRadius !== 0) {\n var labelRadius = centerOffsets[index] + outerRadius + calloutLength + offset_1;\n text.fontStyle = fontStyle_1;\n text.fontWeight = fontWeight_1;\n text.fontSize = fontSize_1;\n text.fontFamily = fontFamily_1;\n text.text = label.text;\n text.x = datum.midCos * labelRadius;\n text.y = datum.midSin * labelRadius;\n text.fill = color_1;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n }\n else {\n text.fill = undefined;\n }\n });\n }\n };\n PieSeries.prototype.fireNodeClickEvent = function (event, datum) {\n this.fireEvent({\n type: 'nodeClick',\n event: event,\n series: this,\n datum: datum.datum,\n angleKey: this.angleKey,\n labelKey: this.labelKey,\n radiusKey: this.radiusKey\n });\n };\n PieSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var angleKey = this.angleKey;\n if (!angleKey) {\n return '';\n }\n var _a = this, fills = _a.fills, tooltip = _a.tooltip, angleName = _a.angleName, radiusKey = _a.radiusKey, radiusName = _a.radiusName, labelKey = _a.labelKey, labelName = _a.labelName;\n var tooltipRenderer = tooltip.renderer;\n var color = fills[nodeDatum.index % fills.length];\n var datum = nodeDatum.datum;\n var label = labelKey ? datum[labelKey] + \": \" : '';\n var angleValue = datum[angleKey];\n var formattedAngleValue = typeof angleValue === 'number' ? toFixed(angleValue) : angleValue.toString();\n var title = this.title ? this.title.text : undefined;\n var content = label + formattedAngleValue;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n angleKey: angleKey,\n angleValue: angleValue,\n angleName: angleName,\n radiusKey: radiusKey,\n radiusValue: radiusKey ? datum[radiusKey] : undefined,\n radiusName: radiusName,\n labelKey: labelKey,\n labelName: labelName,\n title: title,\n color: color,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n PieSeries.prototype.listSeriesItems = function (legendData) {\n var _this = this;\n var _a = this, labelKey = _a.labelKey, data = _a.data;\n if (data && data.length && labelKey) {\n var _b = this, fills_1 = _b.fills, strokes_1 = _b.strokes, id_1 = _b.id;\n var titleText_1 = this.title && this.title.showInLegend && this.title.text;\n data.forEach(function (datum, index) {\n var labelParts = [];\n titleText_1 && labelParts.push(titleText_1);\n labelParts.push(String(datum[labelKey]));\n legendData.push({\n id: id_1,\n itemId: index,\n enabled: _this.seriesItemEnabled[index],\n label: {\n text: labelParts.join(' - ')\n },\n marker: {\n fill: fills_1[index % fills_1.length],\n stroke: strokes_1[index % strokes_1.length],\n fillOpacity: _this.fillOpacity,\n strokeOpacity: _this.strokeOpacity\n }\n });\n });\n }\n };\n PieSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n this.seriesItemEnabled[itemId] = enabled;\n this.scheduleData();\n };\n PieSeries.className = 'PieSeries';\n PieSeries.type = 'pie';\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeries.prototype, \"angleKey\", void 0);\n __decorate$X([\n reactive$1('update')\n ], PieSeries.prototype, \"angleName\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeries.prototype, \"radiusKey\", void 0);\n __decorate$X([\n reactive$1('update')\n ], PieSeries.prototype, \"radiusName\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeries.prototype, \"radiusMin\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeries.prototype, \"radiusMax\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeries.prototype, \"labelKey\", void 0);\n __decorate$X([\n reactive$1('update')\n ], PieSeries.prototype, \"labelName\", void 0);\n __decorate$X([\n reactive$1('layoutChange')\n ], PieSeries.prototype, \"fillOpacity\", void 0);\n __decorate$X([\n reactive$1('layoutChange')\n ], PieSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$X([\n reactive$1('update')\n ], PieSeries.prototype, \"lineDash\", void 0);\n __decorate$X([\n reactive$1('update')\n ], PieSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$X([\n reactive$1('update')\n ], PieSeries.prototype, \"formatter\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeries.prototype, \"rotation\", void 0);\n __decorate$X([\n reactive$1('layoutChange')\n ], PieSeries.prototype, \"outerRadiusOffset\", void 0);\n __decorate$X([\n reactive$1('dataChange')\n ], PieSeries.prototype, \"innerRadiusOffset\", void 0);\n __decorate$X([\n reactive$1('layoutChange')\n ], PieSeries.prototype, \"strokeWidth\", void 0);\n __decorate$X([\n reactive$1('layoutChange')\n ], PieSeries.prototype, \"shadow\", void 0);\n return PieSeries;\n}(PolarSeries));\n\nfunction floor$i(date) {\n date.setUTCSeconds(0, 0);\n}\nfunction offset$i(date, minutes) {\n date.setTime(date.getTime() + minutes * durationMinute$1);\n}\nfunction count$i(start, end) {\n return (end.getTime() - start.getTime()) / durationMinute$1;\n}\nfunction field$e(date) {\n return date.getUTCMinutes();\n}\nvar utcMinute = new CountableTimeInterval$1(floor$i, offset$i, count$i, field$e);\n\nfunction floor$j(date) {\n date.setUTCMinutes(0, 0, 0);\n}\nfunction offset$j(date, hours) {\n date.setTime(date.getTime() + hours * durationHour$1);\n}\nfunction count$j(start, end) {\n return (end.getTime() - start.getTime()) / durationHour$1;\n}\nfunction field$f(date) {\n return date.getUTCHours();\n}\nvar utcHour = new CountableTimeInterval$1(floor$j, offset$j, count$j, field$f);\n\nfunction floor$k(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}\nfunction offset$k(date, months) {\n date.setUTCMonth(date.getUTCMonth() + months);\n}\nfunction count$k(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}\nfunction field$g(date) {\n return date.getUTCMonth();\n}\nvar utcMonth = new CountableTimeInterval$1(floor$k, offset$k, count$k, field$g);\n\nvar __assign$9 = (undefined && undefined.__assign) || function () {\n __assign$9 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$9.apply(this, arguments);\n};\nvar __read$A = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar palette = {\n fills: [\n '#f3622d',\n '#fba71b',\n '#57b757',\n '#41a9c9',\n '#4258c9',\n '#9a42c8',\n '#c84164',\n '#888888'\n ],\n strokes: [\n '#aa4520',\n '#b07513',\n '#3d803d',\n '#2d768d',\n '#2e3e8d',\n '#6c2e8c',\n '#8c2d46',\n '#5f5f5f'\n ]\n};\nfunction arrayMerge(target, source, options) {\n return source;\n}\nfunction isMergeableObject(value) {\n return defaultIsMergeableObject(value) && !(value instanceof TimeInterval$1);\n}\nvar mergeOptions = { arrayMerge: arrayMerge, isMergeableObject: isMergeableObject };\nvar BOLD = 'bold';\nvar INSIDE = 'inside';\nvar RIGHT = 'right';\nvar ChartTheme = /** @class */ (function () {\n function ChartTheme(options) {\n options = deepMerge({}, options || {}, mergeOptions);\n var _a = options.overrides, overrides = _a === void 0 ? null : _a, _b = options.palette, palette = _b === void 0 ? null : _b;\n var defaults = this.createChartConfigPerSeries(this.getDefaults());\n if (overrides) {\n var common = overrides.common, cartesian = overrides.cartesian, polar = overrides.polar, hierarchy = overrides.hierarchy;\n var applyOverrides = function (type, seriesTypes, overrideOpts) {\n if (overrideOpts) {\n defaults[type] = deepMerge(defaults[type], overrideOpts, mergeOptions);\n seriesTypes.forEach(function (seriesType) {\n defaults[seriesType] = deepMerge(defaults[seriesType], overrideOpts, mergeOptions);\n });\n }\n };\n applyOverrides('common', Object.keys(defaults), common);\n applyOverrides('cartesian', ChartTheme.cartesianSeriesTypes, cartesian);\n applyOverrides('polar', ChartTheme.polarSeriesTypes, polar);\n applyOverrides('hierarchy', ChartTheme.hierarchySeriesTypes, hierarchy);\n var seriesOverridesMap_1 = {};\n ChartTheme.seriesTypes.forEach(function (seriesType) {\n var chartConfig = overrides[seriesType];\n if (chartConfig) {\n if (chartConfig.series) {\n seriesOverridesMap_1[seriesType] = chartConfig.series;\n chartConfig.series = seriesOverridesMap_1;\n }\n defaults[seriesType] = deepMerge(defaults[seriesType], chartConfig, mergeOptions);\n }\n });\n }\n this.palette = (palette !== null && palette !== void 0 ? palette : this.getPalette());\n this.config = Object.freeze(defaults);\n }\n ChartTheme.prototype.getPalette = function () {\n return palette;\n };\n ChartTheme.getAxisDefaults = function () {\n return {\n top: {},\n right: {},\n bottom: {},\n left: {},\n thickness: 0,\n title: {\n enabled: false,\n padding: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 10\n },\n text: 'Axis Title',\n fontStyle: undefined,\n fontWeight: BOLD,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)'\n },\n label: {\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n padding: 5,\n rotation: undefined,\n color: 'rgb(87, 87, 87)',\n formatter: undefined,\n autoRotate: false\n },\n line: {\n width: 1,\n color: 'rgb(195, 195, 195)'\n },\n tick: {\n width: 1,\n size: 6,\n color: 'rgb(195, 195, 195)',\n },\n gridStyle: [{\n stroke: 'rgb(219, 219, 219)',\n lineDash: [4, 2]\n }]\n };\n };\n ChartTheme.getSeriesDefaults = function () {\n return {\n tooltip: {\n enabled: true,\n renderer: undefined,\n },\n visible: true,\n showInLegend: true,\n cursor: 'default',\n highlightStyle: {\n item: {\n fill: 'yellow'\n },\n series: {\n dimOpacity: 1\n }\n }\n };\n };\n ChartTheme.getBarSeriesDefaults = function () {\n return __assign$9(__assign$9({}, this.getSeriesDefaults()), { flipXY: false, fillOpacity: 1, strokeOpacity: 1, xKey: '', xName: '', yKeys: [], yNames: [], grouped: false, normalizedTo: undefined, strokeWidth: 1, lineDash: [0], lineDashOffset: 0, label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n placement: INSIDE,\n }, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5\n } });\n };\n ChartTheme.getLineSeriesDefaults = function () {\n var seriesDefaults = this.getSeriesDefaults();\n return __assign$9(__assign$9({}, seriesDefaults), { tooltip: __assign$9(__assign$9({}, seriesDefaults.tooltip), { format: undefined }) });\n };\n ChartTheme.getCartesianSeriesMarkerDefaults = function () {\n return {\n enabled: true,\n shape: 'circle',\n size: 6,\n maxSize: 30,\n strokeWidth: 1,\n formatter: undefined\n };\n };\n ChartTheme.getChartDefaults = function () {\n return {\n background: {\n visible: true,\n fill: 'white'\n },\n padding: {\n top: 20,\n right: 20,\n bottom: 20,\n left: 20\n },\n title: {\n enabled: false,\n padding: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 10\n },\n text: 'Title',\n fontStyle: undefined,\n fontWeight: BOLD,\n fontSize: 16,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)'\n },\n subtitle: {\n enabled: false,\n padding: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 10\n },\n text: 'Subtitle',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(140, 140, 140)'\n },\n legend: {\n enabled: true,\n position: RIGHT,\n spacing: 20,\n item: {\n paddingX: 16,\n paddingY: 8,\n marker: {\n shape: undefined,\n size: 15,\n strokeWidth: 1,\n padding: 8\n },\n label: {\n color: 'black',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n formatter: undefined\n }\n }\n },\n tooltip: {\n enabled: true,\n tracking: true,\n delay: 0,\n class: Chart.defaultTooltipClass\n }\n };\n };\n ChartTheme.prototype.createChartConfigPerSeries = function (config) {\n var typeToAliases = {\n cartesian: ChartTheme.cartesianSeriesTypes,\n polar: ChartTheme.polarSeriesTypes,\n hierarchy: ChartTheme.hierarchySeriesTypes,\n groupedCategory: [],\n };\n Object.entries(typeToAliases).forEach(function (_a) {\n var _b = __read$A(_a, 2), type = _b[0], aliases = _b[1];\n aliases.forEach(function (alias) {\n if (!config[alias]) {\n config[alias] = deepMerge({}, config[type], mergeOptions);\n }\n });\n });\n return config;\n };\n ChartTheme.prototype.getConfig = function (path, defaultValue) {\n var value = getValue(this.config, path, defaultValue);\n if (Array.isArray(value)) {\n return deepMerge([], value, mergeOptions);\n }\n if (isObject(value)) {\n return deepMerge({}, value, mergeOptions);\n }\n return value;\n };\n /**\n * Meant to be overridden in subclasses. For example:\n * ```\n * getDefaults() {\n * const subclassDefaults = { ... };\n * return this.mergeWithParentDefaults(subclassDefaults);\n * }\n * ```\n */\n ChartTheme.prototype.getDefaults = function () {\n return deepMerge({}, ChartTheme.defaults, mergeOptions);\n };\n ChartTheme.prototype.mergeWithParentDefaults = function (parentDefaults, defaults) {\n return deepMerge(parentDefaults, defaults, mergeOptions);\n };\n ChartTheme.fontFamily = 'Verdana, sans-serif';\n ChartTheme.cartesianDefaults = __assign$9(__assign$9({}, ChartTheme.getChartDefaults()), { axes: {\n number: __assign$9({}, ChartTheme.getAxisDefaults()),\n log: __assign$9(__assign$9({}, ChartTheme.getAxisDefaults()), { base: 10 }),\n category: __assign$9(__assign$9({}, ChartTheme.getAxisDefaults()), { label: __assign$9(__assign$9({}, ChartTheme.getAxisDefaults().label), { autoRotate: true }) }),\n groupedCategory: __assign$9({}, ChartTheme.getAxisDefaults()),\n time: __assign$9({}, ChartTheme.getAxisDefaults())\n }, series: {\n column: __assign$9(__assign$9({}, ChartTheme.getBarSeriesDefaults()), { flipXY: false }),\n bar: __assign$9(__assign$9({}, ChartTheme.getBarSeriesDefaults()), { flipXY: true }),\n line: __assign$9(__assign$9({}, ChartTheme.getLineSeriesDefaults()), { title: undefined, xKey: '', xName: '', yKey: '', yName: '', strokeWidth: 2, strokeOpacity: 1, lineDash: [0], lineDashOffset: 0, marker: __assign$9({}, ChartTheme.getCartesianSeriesMarkerDefaults()), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined\n } }),\n scatter: __assign$9(__assign$9({}, ChartTheme.getSeriesDefaults()), { title: undefined, xKey: '', yKey: '', sizeKey: undefined, labelKey: undefined, xName: '', yName: '', sizeName: 'Size', labelName: 'Label', strokeWidth: 2, fillOpacity: 1, strokeOpacity: 1, marker: __assign$9({}, ChartTheme.getCartesianSeriesMarkerDefaults()), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)'\n } }),\n area: __assign$9(__assign$9({}, ChartTheme.getSeriesDefaults()), { xKey: '', xName: '', yKeys: [], yNames: [], normalizedTo: undefined, fillOpacity: 0.8, strokeOpacity: 1, strokeWidth: 2, lineDash: [0], lineDashOffset: 0, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5\n }, marker: __assign$9(__assign$9({}, ChartTheme.getCartesianSeriesMarkerDefaults()), { enabled: false }), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined\n } }),\n histogram: __assign$9(__assign$9({}, ChartTheme.getSeriesDefaults()), { xKey: '', yKey: '', xName: '', yName: '', strokeWidth: 1, fillOpacity: 1, strokeOpacity: 1, lineDash: [0], lineDashOffset: 0, areaPlot: false, binCount: 10, bins: undefined, aggregation: 'sum', label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined\n }, shadow: {\n enabled: true,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 0,\n yOffset: 0,\n blur: 5,\n } })\n }, navigator: {\n enabled: false,\n height: 30,\n mask: {\n fill: '#999999',\n stroke: '#999999',\n strokeWidth: 1,\n fillOpacity: 0.2\n },\n minHandle: {\n fill: '#f2f2f2',\n stroke: '#999999',\n strokeWidth: 1,\n width: 8,\n height: 16,\n gripLineGap: 2,\n gripLineLength: 8\n },\n maxHandle: {\n fill: '#f2f2f2',\n stroke: '#999999',\n strokeWidth: 1,\n width: 8,\n height: 16,\n gripLineGap: 2,\n gripLineLength: 8\n }\n } });\n ChartTheme.polarDefaults = __assign$9(__assign$9({}, ChartTheme.getChartDefaults()), { series: {\n pie: __assign$9(__assign$9({}, ChartTheme.getSeriesDefaults()), { title: {\n enabled: true,\n padding: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 10\n },\n text: '',\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 14,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)'\n }, angleKey: '', angleName: '', radiusKey: undefined, radiusName: undefined, labelKey: undefined, labelName: undefined, label: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n offset: 3,\n minAngle: 20\n }, callout: {\n length: 10,\n strokeWidth: 2\n }, fillOpacity: 1, strokeOpacity: 1, strokeWidth: 1, lineDash: [0], lineDashOffset: 0, rotation: 0, outerRadiusOffset: 0, innerRadiusOffset: 0, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5\n } })\n } });\n ChartTheme.hierarchyDefaults = __assign$9(__assign$9({}, ChartTheme.getChartDefaults()), { series: {\n treemap: __assign$9(__assign$9({}, ChartTheme.getSeriesDefaults()), { showInLegend: false, labelKey: 'label', sizeKey: 'size', colorKey: 'color', colorDomain: [-5, 5], colorRange: ['#cb4b3f', '#6acb64'], colorParents: false, gradient: true, nodePadding: 2, title: {\n enabled: true,\n color: 'white',\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 12,\n fontFamily: 'Verdana, sans-serif',\n padding: 15\n }, subtitle: {\n enabled: true,\n color: 'white',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 9,\n fontFamily: 'Verdana, sans-serif',\n padding: 13\n }, labels: {\n large: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 18,\n fontFamily: 'Verdana, sans-serif',\n color: 'white'\n },\n medium: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 14,\n fontFamily: 'Verdana, sans-serif',\n color: 'white'\n },\n small: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 10,\n fontFamily: 'Verdana, sans-serif',\n color: 'white'\n },\n color: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: 'Verdana, sans-serif',\n color: 'white'\n }\n } })\n } });\n ChartTheme.defaults = {\n cartesian: ChartTheme.cartesianDefaults,\n groupedCategory: ChartTheme.cartesianDefaults,\n polar: ChartTheme.polarDefaults,\n hierarchy: ChartTheme.hierarchyDefaults,\n };\n ChartTheme.cartesianSeriesTypes = ['line', 'area', 'bar', 'column', 'scatter', 'histogram'];\n ChartTheme.polarSeriesTypes = ['pie'];\n ChartTheme.hierarchySeriesTypes = ['treemap'];\n ChartTheme.seriesTypes = ChartTheme.cartesianSeriesTypes\n .concat(ChartTheme.polarSeriesTypes)\n .concat(ChartTheme.hierarchySeriesTypes);\n return ChartTheme;\n}());\n\nvar __extends$1W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$a = (undefined && undefined.__assign) || function () {\n __assign$a = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$a.apply(this, arguments);\n};\nvar DarkTheme = /** @class */ (function (_super) {\n __extends$1W(DarkTheme, _super);\n function DarkTheme(options) {\n return _super.call(this, options) || this;\n }\n DarkTheme.prototype.getDefaults = function () {\n var fontColor = 'rgb(200, 200, 200)';\n var mutedFontColor = 'rgb(150, 150, 150)';\n var axisDefaults = {\n title: {\n color: fontColor\n },\n label: {\n color: fontColor\n },\n gridStyle: [{\n stroke: 'rgb(88, 88, 88)',\n lineDash: [4, 2]\n }]\n };\n var seriesLabelDefaults = {\n label: {\n color: fontColor\n }\n };\n var chartAxesDefaults = {\n axes: {\n number: __assign$a({}, axisDefaults),\n category: __assign$a({}, axisDefaults),\n time: __assign$a({}, axisDefaults)\n },\n };\n var chartDefaults = {\n background: {\n fill: 'rgb(34, 38, 41)'\n },\n title: {\n color: fontColor\n },\n subtitle: {\n color: mutedFontColor\n },\n legend: {\n item: {\n label: {\n color: fontColor\n }\n }\n }\n };\n return this.mergeWithParentDefaults(_super.prototype.getDefaults.call(this), {\n cartesian: __assign$a(__assign$a(__assign$a({}, chartDefaults), chartAxesDefaults), { series: {\n bar: __assign$a({}, seriesLabelDefaults),\n column: __assign$a({}, seriesLabelDefaults),\n histogram: __assign$a({}, seriesLabelDefaults)\n } }),\n groupedCategory: __assign$a(__assign$a(__assign$a({}, chartDefaults), chartAxesDefaults), { series: {\n bar: __assign$a({}, seriesLabelDefaults),\n column: __assign$a({}, seriesLabelDefaults),\n histogram: __assign$a({}, seriesLabelDefaults)\n } }),\n polar: __assign$a(__assign$a({}, chartDefaults), { series: {\n pie: __assign$a(__assign$a({}, seriesLabelDefaults), { title: {\n color: fontColor\n } })\n } }),\n hierarchy: __assign$a(__assign$a({}, chartDefaults), { series: {\n treemap: {\n title: {\n color: fontColor,\n },\n subtitle: {\n color: mutedFontColor,\n },\n labels: {\n large: {\n color: fontColor,\n },\n medium: {\n color: fontColor,\n },\n small: {\n color: fontColor,\n },\n color: {\n color: fontColor,\n },\n },\n },\n } }),\n });\n };\n return DarkTheme;\n}(ChartTheme));\n\nvar __extends$1X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$1 = {\n fills: [\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffeb3b',\n '#ffc107',\n '#ff9800',\n '#ff5722'\n ],\n strokes: [\n '#ab2f26',\n '#a31545',\n '#6d1b7b',\n '#482980',\n '#2c397f',\n '#1769aa',\n '#0276ab',\n '#008494',\n '#00695f',\n '#357a38',\n '#618834',\n '#909a28',\n '#b3a429',\n '#b38705',\n '#b36a00',\n '#b33d18'\n ]\n};\nvar MaterialLight = /** @class */ (function (_super) {\n __extends$1X(MaterialLight, _super);\n function MaterialLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MaterialLight.prototype.getPalette = function () {\n return palette$1;\n };\n return MaterialLight;\n}(ChartTheme));\n\nvar __extends$1Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$2 = {\n fills: [\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffeb3b',\n '#ffc107',\n '#ff9800',\n '#ff5722'\n ],\n strokes: [\n '#ab2f26',\n '#a31545',\n '#6d1b7b',\n '#482980',\n '#2c397f',\n '#1769aa',\n '#0276ab',\n '#008494',\n '#00695f',\n '#357a38',\n '#618834',\n '#909a28',\n '#b3a429',\n '#b38705',\n '#b36a00',\n '#b33d18'\n ]\n};\nvar MaterialDark = /** @class */ (function (_super) {\n __extends$1Y(MaterialDark, _super);\n function MaterialDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MaterialDark.prototype.getPalette = function () {\n return palette$2;\n };\n return MaterialDark;\n}(DarkTheme));\n\nvar __extends$1Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$3 = {\n fills: [\n '#c16068',\n '#a2bf8a',\n '#ebcc87',\n '#80a0c3',\n '#b58dae',\n '#85c0d1'\n ],\n strokes: [\n '#874349',\n '#718661',\n '#a48f5f',\n '#5a7088',\n '#7f637a',\n '#5d8692'\n ]\n};\nvar PastelLight = /** @class */ (function (_super) {\n __extends$1Z(PastelLight, _super);\n function PastelLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PastelLight.prototype.getPalette = function () {\n return palette$3;\n };\n return PastelLight;\n}(ChartTheme));\n\nvar __extends$1_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$4 = {\n fills: [\n '#c16068',\n '#a2bf8a',\n '#ebcc87',\n '#80a0c3',\n '#b58dae',\n '#85c0d1'\n ],\n strokes: [\n '#874349',\n '#718661',\n '#a48f5f',\n '#5a7088',\n '#7f637a',\n '#5d8692'\n ]\n};\nvar PastelDark = /** @class */ (function (_super) {\n __extends$1_(PastelDark, _super);\n function PastelDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PastelDark.prototype.getPalette = function () {\n return palette$4;\n };\n return PastelDark;\n}(DarkTheme));\n\nvar __extends$1$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$5 = {\n fills: [\n '#febe76',\n '#ff7979',\n '#badc58',\n '#f9ca23',\n '#f0932b',\n '#eb4c4b',\n '#6ab04c',\n '#7ed6df',\n '#e056fd',\n '#686de0'\n ],\n strokes: [\n '#b28553',\n '#b35555',\n '#829a3e',\n '#ae8d19',\n '#a8671e',\n '#a43535',\n '#4a7b35',\n '#58969c',\n '#9d3cb1',\n '#494c9d'\n ]\n};\nvar SolarLight = /** @class */ (function (_super) {\n __extends$1$(SolarLight, _super);\n function SolarLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SolarLight.prototype.getPalette = function () {\n return palette$5;\n };\n return SolarLight;\n}(ChartTheme));\n\nvar __extends$20 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$6 = {\n fills: [\n '#febe76',\n '#ff7979',\n '#badc58',\n '#f9ca23',\n '#f0932b',\n '#eb4c4b',\n '#6ab04c',\n '#7ed6df',\n '#e056fd',\n '#686de0'\n ],\n strokes: [\n '#b28553',\n '#b35555',\n '#829a3e',\n '#ae8d19',\n '#a8671e',\n '#a43535',\n '#4a7b35',\n '#58969c',\n '#9d3cb1',\n '#494c9d'\n ]\n};\nvar SolarDark = /** @class */ (function (_super) {\n __extends$20(SolarDark, _super);\n function SolarDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SolarDark.prototype.getPalette = function () {\n return palette$6;\n };\n return SolarDark;\n}(DarkTheme));\n\nvar __extends$21 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$7 = {\n fills: [\n '#5BC0EB',\n '#FDE74C',\n '#9BC53D',\n '#E55934',\n '#FA7921',\n '#fa3081'\n ],\n strokes: [\n '#4086a4',\n '#b1a235',\n '#6c8a2b',\n '#a03e24',\n '#af5517',\n '#af225a'\n ]\n};\nvar VividLight = /** @class */ (function (_super) {\n __extends$21(VividLight, _super);\n function VividLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VividLight.prototype.getPalette = function () {\n return palette$7;\n };\n return VividLight;\n}(ChartTheme));\n\nvar __extends$22 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$8 = {\n fills: [\n '#5BC0EB',\n '#FDE74C',\n '#9BC53D',\n '#E55934',\n '#FA7921',\n '#fa3081'\n ],\n strokes: [\n '#4086a4',\n '#b1a235',\n '#6c8a2b',\n '#a03e24',\n '#af5517',\n '#af225a'\n ]\n};\nvar VividDark = /** @class */ (function (_super) {\n __extends$22(VividDark, _super);\n function VividDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VividDark.prototype.getPalette = function () {\n return palette$8;\n };\n return VividDark;\n}(DarkTheme));\n\nvar __assign$b = (undefined && undefined.__assign) || function () {\n __assign$b = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$b.apply(this, arguments);\n};\nvar lightTheme = new ChartTheme();\nvar darkTheme = new DarkTheme();\nvar lightThemes = {\n 'undefined': lightTheme,\n 'null': lightTheme,\n 'ag-default': lightTheme,\n 'ag-material': new MaterialLight(),\n 'ag-pastel': new PastelLight(),\n 'ag-solar': new SolarLight(),\n 'ag-vivid': new VividLight(),\n};\nvar darkThemes = {\n 'undefined': darkTheme,\n 'null': darkTheme,\n 'ag-default-dark': darkTheme,\n 'ag-material-dark': new MaterialDark(),\n 'ag-pastel-dark': new PastelDark(),\n 'ag-solar-dark': new SolarDark(),\n 'ag-vivid-dark': new VividDark(),\n};\nvar themes = __assign$b(__assign$b({}, darkThemes), lightThemes);\nfunction getChartTheme(value) {\n if (value instanceof ChartTheme) {\n return value;\n }\n var stockTheme = themes[value];\n if (stockTheme) {\n return stockTheme;\n }\n value = value;\n if (value.baseTheme || value.overrides || value.palette) {\n var baseTheme = getChartTheme(value.baseTheme);\n return new baseTheme.constructor(value);\n }\n return lightTheme;\n}\n\nvar __extends$23 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$B = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar identity$6 = function (x) { return x; };\nvar LogScale = /** @class */ (function (_super) {\n __extends$23(LogScale, _super);\n function LogScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'log';\n _this._domain = [1, 10];\n _this.baseLog = identity$6; // takes a log with base `base` of `x`\n _this.basePow = identity$6; // raises `base` to the power of `x`\n _this._base = 10;\n return _this;\n }\n LogScale.prototype.setDomain = function (values) {\n var df = values[0];\n var dl = values[values.length - 1];\n if (df === 0 || dl === 0 || df < 0 && dl > 0 || df > 0 && dl < 0) {\n console.warn('Log scale domain should not start at, end at or cross zero.');\n if (df === 0 && dl > 0) {\n df = Number.EPSILON;\n }\n else if (dl === 0 && df < 0) {\n dl = -Number.EPSILON;\n }\n else if (df < 0 && dl > 0) {\n if (Math.abs(dl) >= Math.abs(df)) {\n df = Number.EPSILON;\n }\n else {\n dl = -Number.EPSILON;\n }\n }\n else if (df > 0 && dl < 0) {\n if (Math.abs(dl) >= Math.abs(df)) {\n df = -Number.EPSILON;\n }\n else {\n dl = Number.EPSILON;\n }\n }\n values = values.slice();\n values[0] = df;\n values[values.length - 1] = dl;\n }\n _super.prototype.setDomain.call(this, values);\n };\n LogScale.prototype.getDomain = function () {\n return _super.prototype.getDomain.call(this);\n };\n Object.defineProperty(LogScale.prototype, \"base\", {\n get: function () {\n return this._base;\n },\n set: function (value) {\n if (this._base !== value) {\n this._base = value;\n this.rescale();\n }\n },\n enumerable: true,\n configurable: true\n });\n LogScale.prototype.rescale = function () {\n var base = this.base;\n var baseLog = LogScale.makeLogFn(base);\n var basePow = LogScale.makePowFn(base);\n if (this.domain[0] < 0) {\n baseLog = this.reflect(baseLog);\n basePow = this.reflect(basePow);\n this.transform = function (x) { return -Math.log(-x); };\n this.untransform = function (x) { return -Math.exp(-x); };\n }\n else {\n this.transform = function (x) { return Math.log(x); };\n this.untransform = function (x) { return Math.exp(x); };\n }\n this.baseLog = baseLog;\n this.basePow = basePow;\n _super.prototype.rescale.call(this);\n };\n /**\n * For example, if `f` is `Math.log10`, we have\n *\n * f(100) == 2\n * f(-100) == NaN\n * rf = reflect(f)\n * rf(-100) == -2\n *\n * @param f\n */\n LogScale.prototype.reflect = function (f) {\n return function (x) { return -f(-x); };\n };\n LogScale.prototype.nice = function () {\n var _a, _b;\n var domain = this.domain;\n var i0 = 0;\n var i1 = domain.length - 1;\n var x0 = domain[i0];\n var x1 = domain[i1];\n if (x1 < x0) {\n _a = __read$B([i1, i0], 2), i0 = _a[0], i1 = _a[1];\n _b = __read$B([x1, x0], 2), x0 = _b[0], x1 = _b[1];\n }\n // For example, for base == 10:\n // [ 50, 900] becomes [ 10, 1000 ]\n domain[i0] = this.basePow(Math.floor(this.baseLog(x0)));\n domain[i1] = this.basePow(Math.ceil(this.baseLog(x1)));\n this.domain = domain;\n };\n LogScale.pow10 = function (x) {\n return isFinite(x)\n ? +('1e' + x) // to avoid precision issues, e.g. Math.pow(10, -4) is not 0.0001\n : x < 0\n ? 0\n : x;\n };\n LogScale.makePowFn = function (base) {\n if (base === 10) {\n return LogScale.pow10;\n }\n if (base === Math.E) {\n return Math.exp;\n }\n return function (x) { return Math.pow(base, x); };\n };\n // Make a log function witn an arbitrary base or return a native function if exists.\n LogScale.makeLogFn = function (base) {\n if (base === Math.E) {\n return Math.log;\n }\n if (base === 10) {\n return Math.log10;\n }\n if (base === 2) {\n return Math.log2;\n }\n var logBase = Math.log(base);\n return function (x) { return Math.log(x) / logBase; };\n };\n LogScale.prototype.ticks = function (count) {\n var _a;\n if (count === void 0) { count = 10; }\n var n = count == null ? 10 : +count;\n var base = this.base;\n var domain = this.domain;\n var d0 = domain[0];\n var d1 = domain[domain.length - 1];\n var isReversed = d1 < d0;\n if (isReversed) {\n _a = __read$B([d1, d0], 2), d0 = _a[0], d1 = _a[1];\n }\n var p0 = this.baseLog(d0);\n var p1 = this.baseLog(d1);\n var z = [];\n // if `base` is an integer and delta in order of magnitudes is less than n\n if (!(base % 1) && p1 - p0 < n) {\n // For example, if n == 10, base == 10 and domain == [10^2, 10^6]\n // then p1 - p0 < n == true.\n p0 = Math.round(p0) - 1;\n p1 = Math.round(p1) + 1;\n if (d0 > 0) {\n for (; p0 < p1; ++p0) {\n for (var k = 1, p = this.basePow(p0); k < base; ++k) {\n var t = p * k;\n // The `t` checks are needed because we expanded the [p0, p1] by 1 in each direction.\n if (t < d0)\n continue;\n if (t > d1)\n break;\n z.push(t);\n }\n }\n }\n else {\n for (; p0 < p1; ++p0) {\n for (var k = base - 1, p = this.basePow(p0); k >= 1; --k) {\n var t = p * k;\n if (t < d0)\n continue;\n if (t > d1)\n break;\n z.push(t);\n }\n }\n }\n if (z.length * 2 < n) {\n z = ticks$1(d0, d1, n);\n }\n }\n else {\n // For example, if n == 4, base == 10 and domain == [10^2, 10^6]\n // then p1 - p0 < n == false.\n // `ticks` return [2, 3, 4, 5, 6], then mapped to [10^2, 10^3, 10^4, 10^5, 10^6].\n z = ticks$1(p0, p1, Math.min(p1 - p0, n)).map(this.basePow);\n }\n return isReversed ? z.reverse() : z;\n };\n LogScale.prototype.tickFormat = function (count, specifier) {\n var _this = this;\n var base = this.base;\n if (specifier == null) {\n specifier = (base === 10 ? '.0e' : ',');\n }\n if (typeof specifier !== 'function') {\n specifier = format$1(specifier);\n }\n if (count === Infinity) {\n return specifier;\n }\n if (count == null) {\n count = 10;\n }\n var k = Math.max(1, base * count / this.ticks().length);\n return function (d) {\n var i = d / _this.basePow(Math.round(_this.baseLog(d)));\n if (i * base < base - 0.5) {\n i *= base;\n }\n return i <= k ? specifier(d) : '';\n };\n };\n return LogScale;\n}(ContinuousScale$1));\n\nvar __extends$24 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LogAxis = /** @class */ (function (_super) {\n __extends$24(LogAxis, _super);\n function LogAxis() {\n var _this = _super.call(this) || this;\n _this.scale = new LogScale();\n _this.scale.clamper = clamper$2;\n return _this;\n }\n Object.defineProperty(LogAxis.prototype, \"base\", {\n get: function () {\n return this.scale.base;\n },\n set: function (value) {\n this.scale.base = value;\n },\n enumerable: true,\n configurable: true\n });\n LogAxis.className = 'LogAxis';\n LogAxis.type = 'log';\n return LogAxis;\n}(NumberAxis));\n\nvar __assign$c = (undefined && undefined.__assign) || function () {\n __assign$c = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$c.apply(this, arguments);\n};\nvar __read$C = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$g = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$C(arguments[i]));\n return ar;\n};\nvar __values$a = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * Performs a JSON-diff between a source and target JSON structure.\n *\n * On a per property basis, takes the target property value where:\n * - types are different.\n * - type is primitive.\n * - type is array and length or content have changed.\n *\n * Recurses for object types.\n *\n * @param source starting point for diff\n * @param target target for diff vs. source\n * @param opts.stringify properties to stringify for comparison purposes\n *\n * @returns `null` if no differences, or an object with the subset of properties that have changed.\n */\nfunction jsonDiff(source, target, opts) {\n var e_1, _a;\n var _b = (opts || {}).stringify, stringify = _b === void 0 ? [] : _b;\n var sourceType = classify(source);\n var targetType = classify(target);\n if (targetType === 'array') {\n if (sourceType !== 'array' || source.length !== target.length) {\n return __spread$g(target);\n }\n if (target.some(function (targetElement, i) { var _a; return jsonDiff((_a = source) === null || _a === void 0 ? void 0 : _a[i], targetElement) != null; })) {\n return __spread$g(target);\n }\n return null;\n }\n var lhs = source || {};\n var rhs = target || {};\n var allProps = new Set(__spread$g(Object.keys(lhs), Object.keys(rhs)));\n var propsChangedCount = 0;\n var result = {};\n var _loop_1 = function (prop) {\n // Cheap-and-easy equality check.\n if (lhs[prop] === rhs[prop]) {\n return \"continue\";\n }\n var take = function (v) {\n result[prop] = v;\n propsChangedCount++;\n };\n if (stringify.includes(prop)) {\n if (JSON.stringify(lhs[prop] !== JSON.stringify(rhs[prop]))) {\n take(rhs[prop]);\n }\n return \"continue\";\n }\n var lhsType = classify(lhs[prop]);\n var rhsType = classify(rhs[prop]);\n if (lhsType !== rhsType) {\n // Types changed, just take RHS.\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'primitive' || rhsType === null) {\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'array' && lhs[prop].length !== rhs[prop].length) {\n // Arrays are different sizes, so just take target array.\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'class-instance') {\n // Don't try to do anything tricky with array diffs!\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'function' && lhs[prop] !== rhs[prop]) {\n take(rhs[prop]);\n return \"continue\";\n }\n var diff = jsonDiff(lhs[prop], rhs[prop], { stringify: stringify });\n if (diff !== null) {\n take(diff);\n }\n };\n try {\n for (var allProps_1 = __values$a(allProps), allProps_1_1 = allProps_1.next(); !allProps_1_1.done; allProps_1_1 = allProps_1.next()) {\n var prop = allProps_1_1.value;\n _loop_1(prop);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (allProps_1_1 && !allProps_1_1.done && (_a = allProps_1.return)) _a.call(allProps_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return propsChangedCount === 0 ? null : result;\n}\n/**\n * Special value used by `jsonMerge` to signal that a property should be removed from the merged\n * output.\n */\nvar DELETE = Symbol('');\nvar NOT_SPECIFIED = Symbol('');\n/**\n * Merge together the provide JSON object structures, with the precedence of application running\n * from higher indexes to lower indexes.\n *\n * Deep-clones all objects to avoid mutation of the inputs changing the output object. For arrays,\n * just performs a deep-clone of the entire array, no merging of elements attempted.\n *\n * @param json all json objects to merge\n *\n * @returns the combination of all of the json inputs\n */\nfunction jsonMerge() {\n var e_2, _a;\n var json = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n json[_i] = arguments[_i];\n }\n var jsonTypes = json.map(function (v) { return classify(v); });\n if (jsonTypes.some(function (v) { return v === 'array'; })) {\n // Clone final array.\n var finalValue = json[json.length - 1];\n if (finalValue instanceof Array) {\n return finalValue.map(function (v) {\n var type = classify(v);\n return type === 'array' ? jsonMerge([], v) :\n type === 'object' ? jsonMerge({}, v) :\n v;\n });\n }\n return finalValue;\n }\n var result = {};\n var props = new Set(json.map(function (v) { return v != null ? Object.keys(v) : []; })\n .reduce(function (r, n) { return r.concat(n); }, []));\n var _loop_2 = function (nextProp) {\n var values = json.map(function (j) { return j != null && nextProp in j ? j[nextProp] : NOT_SPECIFIED; })\n .filter(function (v) { return v !== NOT_SPECIFIED; });\n if (values.length === 0) {\n return \"continue\";\n }\n var lastValue = values[values.length - 1];\n if (lastValue === DELETE) {\n return \"continue\";\n }\n var types = values.map(function (v) { return classify(v); });\n var type = types[0];\n if (types.some(function (t) { return t !== type && t !== null; })) {\n // Short-circuit if mismatching types.\n result[nextProp] = lastValue;\n return \"continue\";\n }\n if (type === 'array' || type === 'object') {\n result[nextProp] = jsonMerge.apply(void 0, __spread$g(values));\n }\n else {\n // Just directly assign/overwrite.\n result[nextProp] = lastValue;\n }\n };\n try {\n for (var props_1 = __values$a(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var nextProp = props_1_1.value;\n _loop_2(nextProp);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n}\n/**\n * Recursively apply a JSON object into a class-hierarchy, optionally instantiating certain classes\n * by property name.\n *\n * @param target to apply source JSON properties into\n * @param source to be applied\n * @param params.path path for logging/error purposes, to aid with pinpointing problems\n * @param params.matcherPath path for pattern matching, to lookup allowedTypes override.\n * @param params.skip property names to skip from the source\n * @param params.constructors dictionary of property name to class constructors for properties that\n * require object construction\n * @param params.allowedTypes overrides by path for allowed property types\n */\nfunction jsonApply(target, source, params) {\n if (params === void 0) { params = {}; }\n var _a, _b, _c;\n var _d = params.path, path = _d === void 0 ? undefined : _d, _e = params.matcherPath, matcherPath = _e === void 0 ? path ? path.replace(/(\\[[0-9+]{1,}\\])/i, '[]') : undefined : _e, _f = params.skip, skip = _f === void 0 ? [] : _f, _g = params.constructors, constructors = _g === void 0 ? {} : _g, _h = params.allowedTypes, allowedTypes = _h === void 0 ? {} : _h;\n if (target == null) {\n throw new Error(\"AG Charts - target is uninitialised: \" + (path || ''));\n }\n if (source == null) {\n return target;\n }\n var targetType = classify(target);\n for (var property in source) {\n if (skip.indexOf(property) >= 0) {\n continue;\n }\n var newValue = source[property];\n var propertyPath = \"\" + (path ? path + '.' : '') + property;\n var propertyMatcherPath = \"\" + (matcherPath ? matcherPath + '.' : '') + property;\n var targetAny = target;\n var targetClass = targetAny.constructor;\n var currentValue = targetAny[property];\n var ctr = constructors[property];\n try {\n var currentValueType = classify(currentValue);\n var newValueType = classify(newValue);\n if (targetType === 'class-instance' && !(property in target || targetAny.hasOwnProperty(property))) {\n console.warn(\"AG Charts - unable to set [\" + propertyPath + \"] in \" + ((_a = targetClass) === null || _a === void 0 ? void 0 : _a.name) + \" - property is unknown\");\n continue;\n }\n var allowableTypes = allowedTypes[propertyMatcherPath] || [currentValueType];\n if (currentValueType === 'class-instance' && newValueType === 'object') {\n // Allowed, this is the common case! - do not error.\n }\n else if (currentValueType != null && newValueType != null && !allowableTypes.includes(newValueType)) {\n console.warn(\"AG Charts - unable to set [\" + propertyPath + \"] in \" + ((_b = targetClass) === null || _b === void 0 ? void 0 : _b.name) + \" - can't apply type of [\" + newValueType + \"], allowed types are: [\" + allowableTypes + \"]\");\n continue;\n }\n if (newValueType === 'array') {\n targetAny[property] = newValue;\n }\n else if (newValueType === 'class-instance') {\n targetAny[property] = newValue;\n }\n else if (newValueType === 'object') {\n if (currentValue != null) {\n jsonApply(currentValue, newValue, __assign$c(__assign$c({}, params), { path: propertyPath, matcherPath: propertyMatcherPath }));\n }\n else if (ctr != null) {\n targetAny[property] = jsonApply(new ctr(), newValue, __assign$c(__assign$c({}, params), { path: propertyPath, matcherPath: propertyMatcherPath }));\n }\n else {\n targetAny[property] = newValue;\n }\n }\n else {\n targetAny[property] = newValue;\n }\n }\n catch (error) {\n console.warn(\"AG Charts - unable to set [\" + propertyPath + \"] in [\" + ((_c = targetClass) === null || _c === void 0 ? void 0 : _c.name) + \"]; nested error is: \" + error.message);\n continue;\n }\n }\n return target;\n}\n/**\n * Walk the given JSON object graphs, invoking the visit() callback for every object encountered.\n * Arrays are descended into without a callback, however their elements will have the visit()\n * callback invoked if they are objects.\n *\n * @param json to traverse\n * @param visit callback for each non-primitive and non-array object found\n * @param opts.skip property names to skip when walking\n * @param jsons to traverse in parallel\n */\nfunction jsonWalk(json, visit, opts) {\n var jsons = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n jsons[_i - 3] = arguments[_i];\n }\n var _a;\n var jsonType = classify(json);\n var skip = opts.skip || [];\n if (jsonType === 'array') {\n json.forEach(function (element, index) {\n var _a;\n jsonWalk.apply(void 0, __spread$g([element, visit, opts], (_a = jsons) === null || _a === void 0 ? void 0 : _a.map(function (o) { var _a; return (_a = o) === null || _a === void 0 ? void 0 : _a[index]; })));\n });\n return;\n }\n else if (jsonType !== 'object') {\n return;\n }\n visit.apply(void 0, __spread$g([jsonType, json], jsons));\n var _loop_3 = function (property) {\n if (skip.indexOf(property) >= 0) {\n return \"continue\";\n }\n var value = json[property];\n var otherValues = (_a = jsons) === null || _a === void 0 ? void 0 : _a.map(function (o) { var _a; return (_a = o) === null || _a === void 0 ? void 0 : _a[property]; });\n var valueType = classify(value);\n if (valueType === 'object' || valueType === 'array') {\n jsonWalk.apply(void 0, __spread$g([value, visit, opts], otherValues));\n }\n };\n for (var property in json) {\n _loop_3(property);\n }\n}\n/**\n * Classify the type of a value to assist with handling for merge purposes.\n */\nfunction classify(value) {\n if (value == null) {\n return null;\n }\n else if (value instanceof HTMLElement) {\n return 'primitive';\n }\n else if (value instanceof Array) {\n return 'array';\n }\n else if (value instanceof Date) {\n return 'primitive';\n }\n else if (typeof value === 'object' && value.constructor === Object) {\n return 'object';\n }\n else if (typeof value === 'function') {\n return 'function';\n }\n else if (typeof value === 'object' && value.constructor != null) {\n return 'class-instance';\n }\n return 'primitive';\n}\n\nvar DEFAULT_CARTESIAN_CHART_OVERRIDES = {\n type: 'cartesian',\n axes: [{\n type: NumberAxis.type,\n position: ChartAxisPosition.Left,\n }, {\n type: CategoryAxis.type,\n position: ChartAxisPosition.Bottom,\n }],\n};\nvar DEFAULT_BAR_CHART_OVERRIDES = {\n axes: [{\n type: 'number',\n position: ChartAxisPosition.Bottom,\n }, {\n type: 'category',\n position: ChartAxisPosition.Left,\n }],\n};\nvar DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES = {\n axes: [{\n type: 'number',\n position: ChartAxisPosition.Bottom,\n }, {\n type: 'number',\n position: ChartAxisPosition.Left,\n }],\n};\n\nvar __assign$d = (undefined && undefined.__assign) || function () {\n __assign$d = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$d.apply(this, arguments);\n};\nfunction transform(input, transforms) {\n var result = {};\n for (var p in input) {\n var t = transforms[p] || (function (x) { return x; });\n result[p] = t(input[p], input);\n }\n return result;\n}\nfunction is2dArray$1(input) {\n return input != null && input instanceof Array && input[0] instanceof Array;\n}\nfunction yNamesMapping(p, src) {\n if (p == null) {\n return {};\n }\n if (!(p instanceof Array)) {\n return p;\n }\n var yKeys = src.yKeys;\n if (yKeys == null || is2dArray$1(yKeys)) {\n throw new Error('AG Charts - yNames and yKeys mismatching configuration.');\n }\n var result = {};\n yKeys.forEach(function (k, i) {\n result[k] = p[i];\n });\n return result;\n}\nfunction yKeysMapping(p, src) {\n if (p == null) {\n return [[]];\n }\n if (is2dArray$1(p)) {\n return p;\n }\n return src.grouped ? p.map(function (v) { return [v]; }) : [p];\n}\nfunction labelMapping(p) {\n if (p == null) {\n return undefined;\n }\n var placement = p.placement;\n return __assign$d(__assign$d({}, p), { placement: placement === 'inside' ? BarLabelPlacement.Inside :\n placement === 'outside' ? BarLabelPlacement.Outside :\n undefined });\n}\nfunction barSeriesTransform(options) {\n var result = __assign$d(__assign$d({}, options), { yKeys: options.yKeys || [options.yKey] });\n delete result['yKey'];\n return transform(result, {\n yNames: yNamesMapping,\n yKeys: yKeysMapping,\n label: labelMapping,\n });\n}\nfunction identityTransform(input) { return input; }\nvar SERIES_TRANSFORMS = {\n area: identityTransform,\n bar: barSeriesTransform,\n column: barSeriesTransform,\n histogram: identityTransform,\n line: identityTransform,\n pie: identityTransform,\n scatter: identityTransform,\n treemap: identityTransform,\n};\nfunction applySeriesTransform(options) {\n var type = options.type;\n var transform = SERIES_TRANSFORMS[type || 'line'];\n return transform(options);\n}\n\nvar __assign$e = (undefined && undefined.__assign) || function () {\n __assign$e = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$e.apply(this, arguments);\n};\nvar __values$b = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$D = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$h = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$D(arguments[i]));\n return ar;\n};\n/**\n * Groups the series options objects if they are of type `column` or `bar` and places them in an array at the index where the first instance of this series type was found.\n * Returns an array of arrays containing the ordered and grouped series options objects.\n */\nfunction groupSeriesByType(seriesOptions) {\n var e_1, _a;\n var indexMap = {};\n var result = [];\n try {\n for (var seriesOptions_1 = __values$b(seriesOptions), seriesOptions_1_1 = seriesOptions_1.next(); !seriesOptions_1_1.done; seriesOptions_1_1 = seriesOptions_1.next()) {\n var s = seriesOptions_1_1.value;\n if (s.type !== 'column' && s.type !== 'bar' && (s.type !== 'area' || s.stacked !== true)) {\n // No need to use index for these cases.\n result.push([s]);\n continue;\n }\n var seriesType = s.type || 'line';\n var groupingKey = s.stacked ? 'stacked' :\n s.grouped ? 'grouped' :\n s.yKeys ? 'stacked' :\n 'grouped';\n var indexKey = seriesType + \"-\" + s.xKey + \"-\" + groupingKey;\n if (indexMap[indexKey] == null) {\n // Add indexed array to result on first addition.\n indexMap[indexKey] = [];\n result.push(indexMap[indexKey]);\n }\n indexMap[indexKey].push(s);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (seriesOptions_1_1 && !seriesOptions_1_1.done && (_a = seriesOptions_1.return)) _a.call(seriesOptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n}\n/**\n * Takes an array of bar or area series options objects and returns a single object with the combined area series options.\n */\nfunction reduceSeries(series, enableBarSeriesSpecialCases) {\n var e_2, _a;\n var options = {};\n var arrayValueProperties = ['yKeys', 'fills', 'strokes', 'yNames', 'hideInChart', 'hideInLegend'];\n var stringValueProperties = ['yKey', 'fill', 'stroke', 'yName'];\n try {\n for (var series_1 = __values$b(series), series_1_1 = series_1.next(); !series_1_1.done; series_1_1 = series_1.next()) {\n var s = series_1_1.value;\n for (var property in s) {\n var arrayValueProperty = arrayValueProperties.indexOf(property) > -1;\n var stringValueProperty = stringValueProperties.indexOf(property) > -1;\n if (arrayValueProperty && s[property].length > 0) {\n options[property] = __spread$h((options[property] || []), s[property]);\n }\n else if (stringValueProperty) {\n options[property + \"s\"] = __spread$h((options[property + \"s\"] || []), [s[property]]);\n }\n else if (enableBarSeriesSpecialCases && property === 'showInLegend') {\n if (s[property] === false) {\n options.hideInLegend = __spread$h((options.hideInLegend || []), (s.yKey ? [s.yKey] : s.yKeys));\n }\n }\n else if (enableBarSeriesSpecialCases && property === 'grouped') {\n if (s[property] === true) {\n options[property] = s[property];\n }\n }\n else {\n options[property] = s[property];\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (series_1_1 && !series_1_1.done && (_a = series_1.return)) _a.call(series_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return options;\n}\n/**\n * Transforms provided series options array into an array containing series options which are compatible with standalone charts series options.\n */\nfunction processSeriesOptions(seriesOptions) {\n var e_3, _a;\n var result = [];\n var preprocessed = seriesOptions.map(function (series) {\n // Change the default for bar/columns when yKey is used to be grouped rather than stacked.\n if ((series.type === 'bar' || series.type === 'column') && series.yKey != null && !series.stacked) {\n return __assign$e(__assign$e({}, series), { grouped: series.grouped != null ? series.grouped : true });\n }\n return series;\n });\n try {\n for (var _b = __values$b(groupSeriesByType(preprocessed)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var series = _c.value;\n switch (series[0].type) {\n case 'column':\n case 'bar':\n result.push(reduceSeries(series, true));\n break;\n case 'area':\n result.push(reduceSeries(series, false));\n break;\n case 'line':\n default:\n if (series.length > 1) {\n console.warn('AG Charts - unexpected grouping of series type: ' + series[0].type);\n }\n result.push(series[0]);\n break;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return result;\n}\n\nvar __assign$f = (undefined && undefined.__assign) || function () {\n __assign$f = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$f.apply(this, arguments);\n};\nvar __values$c = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$E = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$i = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$E(arguments[i]));\n return ar;\n};\nfunction optionsType(input) {\n var _a, _b;\n return input.type || ((_b = (_a = input.series) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.type) || 'cartesian';\n}\nfunction isAgCartesianChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return true;\n }\n switch (specifiedType) {\n case 'cartesian':\n case 'area':\n case 'bar':\n case 'column':\n case 'groupedCategory':\n case 'histogram':\n case 'line':\n case 'scatter':\n return true;\n default:\n return false;\n }\n}\nfunction isAgHierarchyChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return false;\n }\n switch (input.type) {\n case 'hierarchy':\n case 'treemap':\n return true;\n default:\n return false;\n }\n}\nfunction isAgPolarChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return false;\n }\n switch (input.type) {\n case 'polar':\n case 'pie':\n return true;\n default:\n return false;\n }\n}\nfunction isSeriesOptionType(input) {\n if (input == null) {\n return false;\n }\n return ['line', 'bar', 'column', 'histogram', 'scatter', 'area', 'pie', 'treemap'].indexOf(input) >= 0;\n}\nfunction countArrayElements(input) {\n var e_1, _a;\n var count = 0;\n try {\n for (var input_1 = __values$c(input), input_1_1 = input_1.next(); !input_1_1.done; input_1_1 = input_1.next()) {\n var next = input_1_1.value;\n if (next instanceof Array) {\n count += countArrayElements(next);\n }\n if (next != null) {\n count++;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (input_1_1 && !input_1_1.done && (_a = input_1.return)) _a.call(input_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return count;\n}\nfunction takeColours(context, colours, maxCount) {\n var result = [];\n for (var count = 0; count < maxCount; count++) {\n result.push(colours[(count + context.colourIndex) % colours.length]);\n }\n return result;\n}\nfunction prepareOptions(newOptions, fallbackOptions) {\n var options = fallbackOptions == null ? newOptions : jsonMerge(fallbackOptions, newOptions);\n sanityCheckOptions(options);\n // Determine type and ensure it's explicit in the options config.\n var userSuppliedOptionsType = options.type;\n var type = optionsType(options);\n options = __assign$f(__assign$f({}, options), { type: type });\n var defaultSeriesType = isAgCartesianChartOptions(options) ? 'line' :\n isAgHierarchyChartOptions(options) ? 'treemap' :\n isAgPolarChartOptions(options) ? 'pie' :\n 'line';\n var defaultOverrides = type === 'bar' ? DEFAULT_BAR_CHART_OVERRIDES :\n type === 'scatter' ? DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES :\n type === 'histogram' ? DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES :\n isAgCartesianChartOptions(options) ? DEFAULT_CARTESIAN_CHART_OVERRIDES :\n {};\n var _a = prepareMainOptions(defaultOverrides, options), context = _a.context, mergedOptions = _a.mergedOptions, axesThemes = _a.axesThemes, seriesThemes = _a.seriesThemes;\n // Special cases where we have arrays of elements which need their own defaults.\n mergedOptions.series = processSeriesOptions(mergedOptions.series || [])\n .map(function (s) {\n var type = s.type ? s.type :\n isSeriesOptionType(userSuppliedOptionsType) ? userSuppliedOptionsType :\n defaultSeriesType;\n var series = __assign$f(__assign$f({}, s), { type: type });\n return prepareSeries(context, series, seriesThemes[type] || {});\n });\n if (isAgCartesianChartOptions(mergedOptions)) {\n (mergedOptions.axes || []).forEach(function (a, i) {\n var type = a.type || 'number';\n var axis = __assign$f(__assign$f({}, a), { type: type });\n var axesTheme = jsonMerge(axesThemes[type], axesThemes[type][a.position || 'unknown'] || {});\n mergedOptions.axes[i] = prepareAxis(axis, axesTheme);\n });\n }\n prepareEnabledOptions(options, mergedOptions);\n return mergedOptions;\n}\nfunction sanityCheckOptions(options) {\n var _a, _b;\n if ((_a = options.series) === null || _a === void 0 ? void 0 : _a.some(function (s) { return s.yKeys != null && s.yKey != null; })) {\n console.warn('AG Charts - series options yKeys and yKey are mutually exclusive, please only use yKey for future compatibility.');\n }\n if ((_b = options.series) === null || _b === void 0 ? void 0 : _b.some(function (s) { return s.yNames != null && s.yName != null; })) {\n console.warn('AG Charts - series options yNames and yName are mutually exclusive, please only use yName for future compatibility.');\n }\n}\nfunction prepareMainOptions(defaultOverrides, options) {\n var _a = prepareTheme(options), theme = _a.theme, cleanedTheme = _a.cleanedTheme, axesThemes = _a.axesThemes, seriesThemes = _a.seriesThemes;\n var context = { colourIndex: 0, palette: theme.palette };\n var mergedOptions = jsonMerge(defaultOverrides, cleanedTheme, options);\n return { context: context, mergedOptions: mergedOptions, axesThemes: axesThemes, seriesThemes: seriesThemes };\n}\nfunction prepareTheme(options) {\n var theme = getChartTheme(options.theme);\n var themeConfig = theme.getConfig(optionsType(options) || 'cartesian');\n return {\n theme: theme,\n axesThemes: themeConfig['axes'] || {},\n seriesThemes: themeConfig['series'] || {},\n cleanedTheme: jsonMerge(themeConfig, { axes: DELETE, series: DELETE }),\n };\n}\nfunction prepareSeries(context, input) {\n var defaults = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n defaults[_i - 2] = arguments[_i];\n }\n var paletteOptions = calculateSeriesPalette(context, input);\n // Part of the options interface, but not directly consumed by the series implementations.\n var removeOptions = { stacked: DELETE };\n var mergedResult = jsonMerge.apply(void 0, __spread$i(defaults, [paletteOptions, input, removeOptions]));\n return applySeriesTransform(mergedResult);\n}\nfunction calculateSeriesPalette(context, input) {\n var paletteOptions = {};\n var _a = context.palette, fills = _a.fills, strokes = _a.strokes;\n var inputAny = input;\n var colourCount = countArrayElements(inputAny['yKeys'] || []) || 1; // Defaults to 1 if no yKeys.\n switch (input.type) {\n case 'pie':\n colourCount = Math.max(fills.length, strokes.length);\n case 'area':\n case 'bar':\n case 'column':\n paletteOptions.fills = takeColours(context, fills, colourCount);\n paletteOptions.strokes = takeColours(context, strokes, colourCount);\n break;\n case 'histogram':\n paletteOptions.fill = takeColours(context, fills, 1)[0];\n paletteOptions.stroke = takeColours(context, strokes, 1)[0];\n break;\n case 'scatter':\n paletteOptions.fill = takeColours(context, fills, 1)[0];\n case 'line':\n paletteOptions.stroke = takeColours(context, fills, 1)[0];\n paletteOptions.marker = {\n stroke: takeColours(context, strokes, 1)[0],\n fill: takeColours(context, fills, 1)[0],\n };\n break;\n case 'treemap':\n break;\n default:\n throw new Error('AG Charts - unknown series type: ' + input.type);\n }\n context.colourIndex += colourCount;\n return paletteOptions;\n}\nfunction prepareAxis(input) {\n var defaults = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n defaults[_i - 1] = arguments[_i];\n }\n // Remove redundant theme overload keys.\n var removeOptions = { top: DELETE, bottom: DELETE, left: DELETE, right: DELETE };\n return jsonMerge.apply(void 0, __spread$i(defaults, [input, removeOptions]));\n}\nfunction prepareEnabledOptions(options, mergedOptions) {\n // Set `enabled: true` for all option objects where the user has provided values.\n jsonWalk(options, function (_, userOpts, mergedOpts) {\n if (!mergedOpts) {\n return;\n }\n if ('enabled' in mergedOpts && userOpts.enabled == null) {\n mergedOpts.enabled = true;\n }\n }, { skip: ['data'] }, mergedOptions);\n}\n\nvar __assign$g = (undefined && undefined.__assign) || function () {\n __assign$g = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$g.apply(this, arguments);\n};\nvar __read$F = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$j = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$F(arguments[i]));\n return ar;\n};\nvar __values$d = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction chartType(options) {\n if (isAgCartesianChartOptions(options)) {\n return 'cartesian';\n }\n else if (isAgPolarChartOptions(options)) {\n return 'polar';\n }\n else if (isAgHierarchyChartOptions(options)) {\n return 'hierarchy';\n }\n throw new Error('AG Chart - unknown type of chart for options with type: ' + options.type);\n}\n// Backwards-compatibility layer.\nvar AgChart = /** @class */ (function () {\n function AgChart() {\n }\n /** @deprecated use AgChart.create() or AgChart.update() instead. */\n AgChart.createComponent = function (options, type) {\n // console.warn('AG Charts - createComponent should no longer be used, use AgChart.update() instead.')\n if (type.indexOf('.series') >= 0) {\n var optionsWithType = __assign$g(__assign$g({}, options), { type: options.type || type.split('.')[0] });\n return createSeries([optionsWithType])[0];\n }\n return null;\n };\n AgChart.create = function (options, container, data) {\n return AgChartV2.create(options);\n };\n AgChart.update = function (chart, options, container, data) {\n return AgChartV2.update(chart, options);\n };\n return AgChart;\n}());\nvar AgChartV2 = /** @class */ (function () {\n function AgChartV2() {\n }\n AgChartV2.create = function (userOptions) {\n debug('user options', userOptions);\n var mergedOptions = prepareOptions(userOptions);\n var chart = isAgCartesianChartOptions(mergedOptions) ? (mergedOptions.type === 'groupedCategory' ? new GroupedCategoryChart(document) : new CartesianChart(document)) :\n isAgHierarchyChartOptions(mergedOptions) ? new HierarchyChart(document) :\n isAgPolarChartOptions(mergedOptions) ? new PolarChart(document) :\n undefined;\n if (!chart) {\n throw new Error(\"AG Charts - couldn't apply configuration, check type of options: \" + mergedOptions['type']);\n }\n AgChartV2.updateDelta(chart, mergedOptions, userOptions);\n return chart;\n };\n AgChartV2.update = function (chart, userOptions) {\n debug('user options', userOptions);\n var mergedOptions = prepareOptions(userOptions, chart.userOptions);\n if (chartType(mergedOptions) !== chartType(chart.options)) {\n chart.destroy();\n console.warn('AG Charts - options supplied require a different type of chart, please recreate the chart.');\n return;\n }\n var deltaOptions = jsonDiff(chart.options, mergedOptions, { stringify: ['data'] });\n if (deltaOptions == null) {\n return;\n }\n AgChartV2.updateDelta(chart, deltaOptions, userOptions);\n };\n AgChartV2.updateDelta = function (chart, update, userOptions) {\n if (update.type == null) {\n update = __assign$g(__assign$g({}, update), { type: chart.options.type || optionsType(update) });\n }\n debug('delta update', update);\n applyChartOptions(chart, update, userOptions);\n };\n AgChartV2.DEBUG = false;\n return AgChartV2;\n}());\nfunction debug(message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n if (AgChartV2.DEBUG) {\n console.log.apply(console, __spread$j([message], optionalParams));\n }\n}\nfunction applyChartOptions(chart, options, userOptions) {\n if (isAgCartesianChartOptions(options)) {\n applyOptionValues(chart, options, { skip: ['type', 'data', 'series', 'axes', 'autoSize', 'listeners', 'theme'] });\n }\n else if (isAgPolarChartOptions(options)) {\n applyOptionValues(chart, options, { skip: ['type', 'data', 'series', 'autoSize', 'listeners', 'theme'] });\n }\n else if (isAgHierarchyChartOptions(options)) {\n applyOptionValues(chart, options, { skip: ['type', 'data', 'series', 'autoSize', 'listeners', 'theme'] });\n }\n else {\n throw new Error(\"AG Charts - couldn't apply configuration, check type of options and chart: \" + options['type']);\n }\n var performProcessData = false;\n if (options.series && options.series.length > 0) {\n applySeries(chart, options);\n }\n if (isAgCartesianChartOptions(options) && options.axes) {\n performProcessData = applyAxes(chart, options);\n }\n if (options.data) {\n chart.data = options.data;\n performProcessData = true;\n }\n // Needs to be done last to avoid overrides by width/height properties.\n if (options.autoSize != null) {\n chart.autoSize = options.autoSize;\n }\n if (options.listeners) {\n registerListeners(chart, options.listeners);\n }\n chart.layoutPending = true;\n if (performProcessData) {\n chart.processData();\n }\n chart.performLayout();\n chart.options = jsonMerge(chart.options || {}, options);\n chart.userOptions = jsonMerge(chart.userOptions || {}, userOptions);\n}\nfunction applySeries(chart, options) {\n var optSeries = options.series;\n if (!optSeries) {\n return;\n }\n var matchingTypes = chart.series.length === optSeries.length &&\n chart.series.every(function (s, i) { var _a; return s.type === ((_a = optSeries[i]) === null || _a === void 0 ? void 0 : _a.type); });\n // Try to optimise series updates if series count and types didn't change.\n if (matchingTypes) {\n chart.series.forEach(function (s, i) {\n var _a, _b;\n var previousOpts = ((_b = (_a = chart.options) === null || _a === void 0 ? void 0 : _a.series) === null || _b === void 0 ? void 0 : _b[i]) || {};\n var seriesDiff = jsonDiff(previousOpts, optSeries[i] || {});\n debug(\"applying series diff idx \" + i, seriesDiff);\n jsonApply(s, seriesDiff);\n });\n return;\n }\n chart.series = createSeries(optSeries);\n}\nfunction applyAxes(chart, options) {\n var optAxes = options.axes;\n if (!optAxes) {\n return false;\n }\n var matchingTypes = chart.axes.length === optAxes.length &&\n chart.axes.every(function (a, i) { return a.type === optAxes[i].type; });\n // Try to optimise series updates if series count and types didn't change.\n if (matchingTypes) {\n var oldOpts_1 = chart.options;\n if (isAgCartesianChartOptions(oldOpts_1)) {\n chart.axes.forEach(function (a, i) {\n var _a;\n var previousOpts = ((_a = oldOpts_1.axes) === null || _a === void 0 ? void 0 : _a[i]) || {};\n var axisDiff = jsonDiff(previousOpts, optAxes[i]);\n debug(\"applying axis diff idx \" + i, axisDiff);\n jsonApply(a, axisDiff);\n });\n return true;\n }\n }\n chart.axes = createAxis(optAxes);\n return true;\n}\nfunction createSeries(options) {\n var e_1, _a;\n var series = [];\n var skip = ['listeners'];\n var index = 0;\n try {\n for (var _b = __values$d(options || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var seriesOptions = _c.value;\n var path = \"series[\" + index++ + \"]\";\n switch (seriesOptions.type) {\n case 'area':\n series.push(applySeriesValues(new AreaSeries(), seriesOptions, { path: path, skip: skip }));\n break;\n case 'bar':\n case 'column':\n series.push(applySeriesValues(new BarSeries(), seriesOptions, { path: path, skip: skip }));\n break;\n case 'histogram':\n series.push(applySeriesValues(new HistogramSeries(), seriesOptions, { path: path, skip: skip }));\n break;\n case 'line':\n series.push(applySeriesValues(new LineSeries(), seriesOptions, { path: path, skip: skip }));\n break;\n case 'scatter':\n series.push(applySeriesValues(new ScatterSeries(), seriesOptions, { path: path, skip: skip }));\n break;\n case 'pie':\n series.push(applySeriesValues(new PieSeries(), seriesOptions, { path: path, skip: skip }));\n break;\n case 'treemap':\n series.push(applySeriesValues(new TreemapSeries(), seriesOptions, { path: path, skip: skip }));\n break;\n default:\n throw new Error('AG Charts - unknown series type: ' + seriesOptions.type);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n series.forEach(function (next, index) {\n var _a, _b;\n var listeners = (_b = (_a = options) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.listeners;\n if (listeners == null) {\n return;\n }\n registerListeners(next, listeners);\n });\n return series;\n}\nfunction createAxis(options) {\n var e_2, _a;\n var axes = [];\n var index = 0;\n try {\n for (var _b = __values$d(options || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var axisOptions = _c.value;\n var path = \"axis[\" + index++ + \"]\";\n switch (axisOptions.type) {\n case 'number':\n axes.push(applyAxisValues(new NumberAxis(), axisOptions, { path: path }));\n break;\n case LogAxis.type:\n axes.push(applyAxisValues(new LogAxis(), axisOptions, { path: path }));\n break;\n case CategoryAxis.type:\n axes.push(applyAxisValues(new CategoryAxis(), axisOptions, { path: path }));\n break;\n case GroupedCategoryAxis.type:\n axes.push(applyAxisValues(new GroupedCategoryAxis(), axisOptions, { path: path }));\n break;\n case TimeAxis.type:\n axes.push(applyAxisValues(new TimeAxis(), axisOptions, { path: path }));\n break;\n default:\n throw new Error('AG Charts - unknown axis type: ' + axisOptions['type']);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return axes;\n}\nfunction registerListeners(source, listeners) {\n for (var property in listeners) {\n source.addEventListener(property, listeners[property]);\n }\n}\nvar JSON_APPLY_OPTIONS = {\n constructors: {\n 'title': Caption,\n 'subtitle': Caption,\n 'shadow': DropShadow,\n },\n allowedTypes: {\n 'series[].marker.shape': ['primitive', 'function'],\n 'axis[].tick.count': ['primitive', 'class-instance'],\n },\n};\nfunction applyOptionValues(target, options, _a) {\n var _b = _a === void 0 ? {} : _a, skip = _b.skip, path = _b.path;\n var applyOpts = __assign$g(__assign$g(__assign$g({}, JSON_APPLY_OPTIONS), { skip: __spread$j(['type'], (skip || [])) }), (path ? { path: path } : {}));\n return jsonApply(target, options, applyOpts);\n}\nfunction applySeriesValues(target, options, _a) {\n var _b = _a === void 0 ? {} : _a, skip = _b.skip, path = _b.path;\n var _c;\n var ctrs = ((_c = JSON_APPLY_OPTIONS) === null || _c === void 0 ? void 0 : _c.constructors) || {};\n var seriesTypeOverrides = {\n constructors: __assign$g(__assign$g({}, ctrs), { 'title': target.type === 'pie' ? PieTitle : ctrs['title'] }),\n };\n var applyOpts = __assign$g(__assign$g(__assign$g(__assign$g({}, JSON_APPLY_OPTIONS), seriesTypeOverrides), { skip: __spread$j(['type'], (skip || [])) }), (path ? { path: path } : {}));\n return jsonApply(target, options, applyOpts);\n}\nfunction applyAxisValues(target, options, _a) {\n var _b = _a === void 0 ? {} : _a, skip = _b.skip, path = _b.path;\n var applyOpts = __assign$g(__assign$g(__assign$g({}, JSON_APPLY_OPTIONS), { skip: __spread$j(['type'], (skip || [])) }), (path ? { path: path } : {}));\n return jsonApply(target, options, applyOpts);\n}\n\nfunction getSeriesType(chartType) {\n switch (chartType) {\n case 'bar':\n case 'groupedBar':\n case 'stackedBar':\n case 'normalizedBar':\n return 'bar';\n case 'column':\n case 'groupedColumn':\n case 'stackedColumn':\n case 'normalizedColumn':\n return 'column';\n case 'line':\n return 'line';\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n return 'area';\n case 'scatter':\n case 'bubble':\n return 'scatter';\n case 'histogram':\n return 'histogram';\n case 'pie':\n case 'doughnut':\n return 'pie';\n default:\n return 'cartesian';\n }\n}\n\nvar __extends$25 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartController = /** @class */ (function (_super) {\n __extends$25(ChartController, _super);\n function ChartController(model) {\n var _this = _super.call(this) || this;\n _this.model = model;\n return _this;\n }\n ChartController.prototype.init = function () {\n var _this = this;\n this.setChartRange();\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_RANGE_SELECTION_CHANGED, function (event) {\n if (event.id && event.id === _this.model.chartId) {\n _this.updateForRangeChange();\n }\n });\n if (this.model.unlinked) {\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n }\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_MOVED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PINNED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_VISIBLE, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_MODEL_UPDATED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_CELL_VALUE_CHANGED, this.updateForDataChange.bind(this));\n };\n ChartController.prototype.updateForGridChange = function () {\n if (this.model.unlinked) {\n return;\n }\n this.model.updateCellRanges();\n this.setChartRange();\n };\n ChartController.prototype.updateForDataChange = function () {\n if (this.model.unlinked) {\n return;\n }\n this.model.updateData();\n this.raiseChartUpdatedEvent();\n };\n ChartController.prototype.updateForRangeChange = function () {\n this.updateForGridChange();\n this.raiseChartRangeSelectionChangedEvent();\n };\n ChartController.prototype.updateForPanelChange = function (updatedCol) {\n this.model.updateCellRanges(updatedCol);\n this.setChartRange();\n this.raiseChartRangeSelectionChangedEvent();\n };\n ChartController.prototype.getChartModel = function () {\n var modelType = this.model.pivotChart ? 'pivot' : 'range';\n var seriesChartTypes = this.isComboChart() ? this.model.seriesChartTypes : undefined;\n return {\n modelType: modelType,\n chartId: this.model.chartId,\n chartType: this.model.chartType,\n chartThemeName: this.model.chartThemeName,\n chartOptions: this.chartProxy.getChartOptions(),\n chartPalette: this.chartProxy.getChartPalette(),\n cellRange: this.getCellRangeParams(),\n suppressChartRanges: this.model.suppressChartRanges,\n aggFunc: this.model.aggFunc,\n unlinkChart: this.model.unlinked,\n seriesChartTypes: seriesChartTypes\n };\n };\n ChartController.prototype.getChartId = function () {\n return this.model.chartId;\n };\n ChartController.prototype.getChartData = function () {\n return this.model.chartData;\n };\n ChartController.prototype.getChartType = function () {\n return this.model.chartType;\n };\n ChartController.prototype.setChartType = function (chartType) {\n this.model.chartType = chartType;\n this.model.updateSeriesChartTypes();\n this.raiseChartUpdatedEvent();\n this.raiseChartOptionsChangedEvent();\n };\n ChartController.prototype.setChartThemeName = function (chartThemeName) {\n this.model.chartThemeName = chartThemeName;\n this.raiseChartUpdatedEvent();\n this.raiseChartOptionsChangedEvent();\n };\n ChartController.prototype.getChartThemeName = function () {\n return this.model.chartThemeName;\n };\n ChartController.prototype.isPivotChart = function () {\n return this.model.pivotChart;\n };\n ChartController.prototype.isPivotMode = function () {\n return this.model.isPivotMode();\n };\n ChartController.prototype.isGrouping = function () {\n return this.model.isGrouping();\n };\n ChartController.prototype.getThemes = function () {\n return this.gridOptionsWrapper.getChartThemes();\n };\n ChartController.prototype.getPalettes = function () {\n var _this = this;\n var themeNames = this.gridOptionsWrapper.getChartThemes();\n return themeNames.map(function (themeName) {\n var stockTheme = _this.chartProxy.isStockTheme(themeName);\n var theme = stockTheme ? themeName : _this.chartProxy.lookupCustomChartTheme(themeName);\n return getChartTheme(theme).palette;\n });\n };\n ChartController.prototype.getValueColState = function () {\n return this.model.valueColState.map(this.displayNameMapper.bind(this));\n };\n ChartController.prototype.getSelectedValueColState = function () {\n return this.getValueColState().filter(function (cs) { return cs.selected; });\n };\n ChartController.prototype.getDimensionColState = function () {\n return this.model.dimensionColState;\n };\n ChartController.prototype.getSelectedDimension = function () {\n return this.model.getSelectedDimension();\n };\n ChartController.prototype.displayNameMapper = function (col) {\n var columnNames = this.model.columnNames[col.colId];\n col.displayName = columnNames ? columnNames.join(' - ') : this.model.getColDisplayName(col.column);\n return col;\n };\n ChartController.prototype.getColStateForMenu = function () {\n return { dimensionCols: this.model.dimensionColState, valueCols: this.getValueColState() };\n };\n ChartController.prototype.isDefaultCategorySelected = function () {\n return this.model.getSelectedDimension().colId === ChartDataModel.DEFAULT_CATEGORY;\n };\n ChartController.prototype.setChartRange = function (silent) {\n if (silent === void 0) { silent = false; }\n if (this.rangeService && !this.model.suppressChartRanges && !this.model.unlinked) {\n this.rangeService.setCellRanges(this.getCellRanges());\n }\n if (!silent) {\n this.raiseChartUpdatedEvent();\n }\n };\n ChartController.prototype.detachChartRange = function () {\n // when chart is detached it won't listen to changes from the grid\n this.model.unlinked = !this.model.unlinked;\n if (this.model.unlinked) {\n // remove range from grid\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n }\n else {\n // update chart data may have changed\n this.updateForGridChange();\n }\n };\n ChartController.prototype.setChartProxy = function (chartProxy) {\n this.chartProxy = chartProxy;\n };\n ChartController.prototype.getChartProxy = function () {\n return this.chartProxy;\n };\n ChartController.prototype.isActiveXYChart = function () {\n return agGridCommunity._.includes(['scatter', 'bubble'], this.getChartType());\n };\n ChartController.prototype.isChartLinked = function () {\n return !this.model.unlinked;\n };\n ChartController.prototype.customComboExists = function () {\n return this.model.savedCustomSeriesChartTypes && this.model.savedCustomSeriesChartTypes.length > 0;\n };\n ChartController.prototype.getSeriesChartTypes = function () {\n return this.model.seriesChartTypes;\n };\n ChartController.prototype.isComboChart = function () {\n return this.model.isComboChart();\n };\n ChartController.prototype.updateSeriesChartType = function (colId, chartType, secondaryAxis) {\n var seriesChartType = this.model.seriesChartTypes.find(function (s) { return s.colId === colId; });\n if (seriesChartType) {\n // once a combo chart has been modified it is now a 'customCombo' chart\n var updateChartType = this.model.chartType !== 'customCombo';\n if (updateChartType) {\n this.model.chartType = 'customCombo';\n }\n var prevSeriesChartType = seriesChartType.chartType;\n if (chartType != null) {\n seriesChartType.chartType = chartType;\n }\n if (secondaryAxis != null) {\n seriesChartType.secondaryAxis = secondaryAxis;\n }\n // replace existing custom series types with this latest version\n this.model.savedCustomSeriesChartTypes = this.model.seriesChartTypes;\n // series chart types can be modified, i.e. column chart types should be moved to primary axis\n this.model.updateSeriesChartTypes();\n this.updateForDataChange();\n if (updateChartType) {\n // update the settings panel by raising an EVENT_CHART_TYPE_CHANGED event\n this.dispatchEvent(Object.freeze({\n type: ChartController.EVENT_CHART_TYPE_CHANGED\n }));\n }\n if (prevSeriesChartType !== chartType) {\n // update the format panel by raising an EVENT_CHART_SERIES_CHART_TYPE_CHANGED event\n this.dispatchEvent(Object.freeze({\n type: ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED\n }));\n }\n }\n };\n ChartController.prototype.getActiveSeriesChartTypes = function () {\n var selectedColIds = this.getSelectedValueColState().map(function (c) { return c.colId; });\n return this.getSeriesChartTypes().filter(function (s) { return selectedColIds.includes(s.colId); });\n };\n ChartController.prototype.getChartSeriesTypes = function () {\n var supportedComboSeriesTypes = ['line', 'column', 'area'];\n return this.isComboChart() ? supportedComboSeriesTypes : [getSeriesType(this.getChartType())];\n };\n ChartController.prototype.getCellRanges = function () {\n return [this.model.dimensionCellRange, this.model.valueCellRange].filter(function (r) { return r; });\n };\n ChartController.prototype.getCellRangeParams = function () {\n var cellRanges = this.getCellRanges();\n var firstCellRange = cellRanges[0];\n var startRow = (firstCellRange && firstCellRange.startRow) || null;\n var endRow = (firstCellRange && firstCellRange.endRow) || null;\n return {\n rowStartIndex: startRow && startRow.rowIndex,\n rowStartPinned: startRow && startRow.rowPinned,\n rowEndIndex: endRow && endRow.rowIndex,\n rowEndPinned: endRow && endRow.rowPinned,\n columns: cellRanges.reduce(function (columns, value) { return columns.concat(value.columns.map(function (c) { return c.getId(); })); }, [])\n };\n };\n ChartController.prototype.raiseChartUpdatedEvent = function () {\n var event = Object.freeze({\n type: ChartController.EVENT_CHART_UPDATED\n });\n this.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartOptionsChangedEvent = function () {\n var _a = this.getChartModel(), chartId = _a.chartId, chartType = _a.chartType;\n var event = Object.freeze({\n type: agGridCommunity.Events.EVENT_CHART_OPTIONS_CHANGED,\n chartId: chartId,\n chartType: chartType,\n chartThemeName: this.model.chartThemeName,\n chartOptions: this.chartProxy.getChartOptions(),\n api: this.gridApi,\n columnApi: this.columnApi,\n });\n this.eventService.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartRangeSelectionChangedEvent = function () {\n var event = Object.freeze({\n type: agGridCommunity.Events.EVENT_CHART_RANGE_SELECTION_CHANGED,\n id: this.model.chartId,\n chartId: this.model.chartId,\n cellRange: this.getCellRangeParams(),\n api: this.gridApi,\n columnApi: this.columnApi,\n });\n this.eventService.dispatchEvent(event);\n };\n ChartController.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n };\n ChartController.EVENT_CHART_UPDATED = 'chartUpdated';\n ChartController.EVENT_CHART_TYPE_CHANGED = 'chartTypeChanged';\n ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED = 'chartSeriesChartTypeChanged';\n __decorate$Y([\n agGridCommunity.Autowired('rangeService')\n ], ChartController.prototype, \"rangeService\", void 0);\n __decorate$Y([\n agGridCommunity.Autowired('gridApi')\n ], ChartController.prototype, \"gridApi\", void 0);\n __decorate$Y([\n agGridCommunity.Autowired('columnApi')\n ], ChartController.prototype, \"columnApi\", void 0);\n __decorate$Y([\n agGridCommunity.PostConstruct\n ], ChartController.prototype, \"init\", null);\n return ChartController;\n}(agGridCommunity.BeanStub));\n\nvar __extends$26 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$G = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$k = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$G(arguments[i]));\n return ar;\n};\nvar __values$e = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ChartDataPanel = /** @class */ (function (_super) {\n __extends$26(ChartDataPanel, _super);\n function ChartDataPanel(chartController, chartOptionsService) {\n var _this = _super.call(this, ChartDataPanel.TEMPLATE) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.columnComps = new Map();\n return _this;\n }\n ChartDataPanel.prototype.init = function () {\n this.updatePanels();\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, this.updatePanels.bind(this));\n this.createAutoScrollService();\n };\n ChartDataPanel.prototype.destroy = function () {\n this.clearComponents();\n _super.prototype.destroy.call(this);\n };\n ChartDataPanel.prototype.updatePanels = function () {\n var _this = this;\n var currentChartType = this.chartType;\n var _a = this.chartController.getColStateForMenu(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var colIds = dimensionCols.map(function (c) { return c.colId; }).concat(valueCols.map(function (c) { return c.colId; }));\n this.chartType = this.chartController.getChartType();\n var groupExpandedState = this.getGroupExpandedState();\n if (agGridCommunity._.areEqual(agGridCommunity._.keys(this.columnComps), colIds) && this.chartType === currentChartType) {\n // if possible, we just update existing components\n __spread$k(dimensionCols, valueCols).forEach(function (col) {\n _this.columnComps.get(col.colId).setValue(col.selected, true);\n });\n if (this.chartController.isActiveXYChart()) {\n var getSeriesLabel_1 = this.generateGetSeriesLabel();\n valueCols.forEach(function (col) {\n _this.columnComps.get(col.colId).setLabel(getSeriesLabel_1(col));\n });\n }\n // recreate series chart type group if it exists as series may be added or removed via series group panel\n agGridCommunity._.removeFromParent(this.getGui().querySelector('#seriesChartTypeGroup'));\n this.seriesChartTypeGroupComp = this.destroyBean(this.seriesChartTypeGroupComp);\n this.createSeriesChartTypeGroup(valueCols);\n }\n else {\n // otherwise, we re-create everything\n this.clearComponents();\n this.createCategoriesGroup(dimensionCols);\n this.createSeriesGroup(valueCols);\n this.createSeriesChartTypeGroup(valueCols);\n }\n this.restoreGroupExpandedState(groupExpandedState);\n };\n ChartDataPanel.prototype.getGroupExpandedState = function () {\n return [\n this.categoriesGroupComp,\n this.seriesGroupComp,\n this.seriesChartTypeGroupComp\n ].map(function (group) { return !group ? true : group.isExpanded(); });\n };\n ChartDataPanel.prototype.restoreGroupExpandedState = function (groupExpandedState) {\n [\n this.categoriesGroupComp,\n this.seriesGroupComp,\n this.seriesChartTypeGroupComp\n ].forEach(function (group, idx) {\n if (!group) {\n return;\n }\n group.toggleGroupExpand(groupExpandedState[idx]);\n });\n };\n ChartDataPanel.prototype.createAutoScrollService = function () {\n var eGui = this.getGui();\n this.autoScrollService = new agGridCommunity.AutoScrollService({\n scrollContainer: eGui,\n scrollAxis: 'y',\n getVerticalPosition: function () { return eGui.scrollTop; },\n setVerticalPosition: function (position) { return eGui.scrollTop = position; }\n });\n };\n ChartDataPanel.prototype.addComponent = function (parent, component, id) {\n var eDiv = document.createElement('div');\n eDiv.id = id;\n eDiv.className = 'ag-chart-data-section';\n eDiv.appendChild(component.getGui());\n parent.appendChild(eDiv);\n };\n ChartDataPanel.prototype.addChangeListener = function (component, columnState) {\n var _this = this;\n this.addManagedListener(component, agGridCommunity.AgAbstractField.EVENT_CHANGED, function () {\n columnState.selected = component.getValue();\n _this.chartController.updateForPanelChange(columnState);\n });\n };\n ChartDataPanel.prototype.createCategoriesGroup = function (columns) {\n var _this = this;\n this.categoriesGroupComp = this.createBean(new agGridCommunity.AgGroupComponent({\n title: this.getCategoryGroupTitle(),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n var inputName = \"chartDimension\" + this.getCompId();\n columns.forEach(function (col) {\n var comp = _this.categoriesGroupComp.createManagedBean(new agGridCommunity.AgRadioButton());\n comp.setLabel(agGridCommunity._.escapeString(col.displayName));\n comp.setValue(col.selected);\n comp.setInputName(inputName);\n _this.addChangeListener(comp, col);\n _this.categoriesGroupComp.addItem(comp);\n _this.columnComps.set(col.colId, comp);\n });\n this.addComponent(this.getGui(), this.categoriesGroupComp, 'categoriesGroup');\n };\n ChartDataPanel.prototype.createSeriesGroup = function (columns) {\n var _this = this;\n this.seriesGroupComp = this.createManagedBean(new agGridCommunity.AgGroupComponent({\n title: this.getSeriesGroupTitle(),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n if (this.chartController.isActiveXYChart()) {\n var pairedModeToggle = this.seriesGroupComp.createManagedBean(new agGridCommunity.AgToggleButton());\n pairedModeToggle\n .setLabel(this.chartTranslationService.translate('paired'))\n .setLabelAlignment('left')\n .setLabelWidth('flex')\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getPairedMode())\n .onValueChange(function (newValue) {\n _this.chartOptionsService.setPairedMode(!!newValue);\n _this.chartController.updateForGridChange();\n });\n this.seriesGroupComp.addItem(pairedModeToggle);\n }\n var getSeriesLabel = this.generateGetSeriesLabel();\n columns.forEach(function (col) {\n var comp = _this.seriesGroupComp.createManagedBean(new agGridCommunity.AgCheckbox());\n comp.addCssClass('ag-data-select-checkbox');\n var label = getSeriesLabel(col);\n comp.setLabel(label);\n comp.setValue(col.selected);\n _this.addChangeListener(comp, col);\n _this.seriesGroupComp.addItem(comp);\n _this.columnComps.set(col.colId, comp);\n _this.addDragHandle(comp, col);\n });\n this.addComponent(this.getGui(), this.seriesGroupComp, 'seriesGroup');\n var dropTarget = {\n getIconName: function () { return agGridCommunity.DragAndDropService.ICON_MOVE; },\n getContainer: function () { return _this.seriesGroupComp.getGui(); },\n onDragging: function (params) { return _this.onDragging(params); },\n onDragLeave: function () { return _this.onDragLeave(); },\n isInterestedIn: this.isInterestedIn.bind(this),\n targetContainsSource: true\n };\n this.dragAndDropService.addDropTarget(dropTarget);\n };\n ChartDataPanel.prototype.createSeriesChartTypeGroup = function (columns) {\n var _this = this;\n if (!this.chartController.isComboChart()) {\n return;\n }\n this.seriesChartTypeGroupComp = this.createManagedBean(new agGridCommunity.AgGroupComponent({\n title: this.chartTranslationService.translate('seriesChartType'),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n var seriesChartTypes = this.chartController.getSeriesChartTypes();\n columns.forEach(function (col) {\n if (!col.selected) {\n return;\n }\n var seriesChartType = seriesChartTypes.filter(function (s) { return s.colId === col.colId; })[0];\n if (!seriesChartType) {\n return;\n }\n var seriesItemGroup = _this.seriesChartTypeGroupComp.createManagedBean(new agGridCommunity.AgGroupComponent({\n title: col.displayName,\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: true,\n cssIdentifier: 'charts-format-sub-level'\n }));\n var secondaryAxisComp = _this.seriesChartTypeGroupComp\n .createManagedBean(new agGridCommunity.AgCheckbox())\n .setLabel(_this.chartTranslationService.translate('secondaryAxis'))\n .setLabelWidth(\"flex\")\n .setDisabled(['groupedColumn', 'stackedColumn', 'stackedArea'].includes(seriesChartType.chartType))\n .setValue(!!seriesChartType.secondaryAxis)\n .onValueChange(function (enabled) { return _this.chartController.updateSeriesChartType(col.colId, undefined, enabled); });\n seriesItemGroup.addItem(secondaryAxisComp);\n var translate = function (key, defaultText) {\n return _this.chartTranslationService.translate(key, defaultText);\n };\n var availableChartTypes = [\n { value: 'line', text: translate('line', 'Line') },\n { value: 'area', text: translate('area', 'Area') },\n { value: 'stackedArea', text: translate('stackedArea', 'StackedArea') },\n { value: 'groupedColumn', text: translate('groupedColumn', 'Grouped Column') },\n { value: 'stackedColumn', text: translate('stackedColumn', 'Stacked Column') },\n ];\n var chartTypeComp = seriesItemGroup.createManagedBean(new agGridCommunity.AgSelect());\n chartTypeComp\n .setLabelAlignment('left')\n .setLabelWidth(\"flex\")\n .addOptions(availableChartTypes)\n .setValue(seriesChartType.chartType)\n .onValueChange(function (chartType) { return _this.chartController.updateSeriesChartType(col.colId, chartType); });\n seriesItemGroup.addItem(chartTypeComp);\n _this.seriesChartTypeGroupComp.addItem(seriesItemGroup);\n });\n this.addComponent(this.getGui(), this.seriesChartTypeGroupComp, 'seriesChartTypeGroup');\n };\n ChartDataPanel.prototype.addDragHandle = function (comp, col) {\n var _this = this;\n var eDragHandle = agGridCommunity._.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n eDragHandle.classList.add('ag-drag-handle', 'ag-chart-data-column-drag-handle');\n comp.getGui().insertAdjacentElement('beforeend', eDragHandle);\n var dragSource = {\n type: agGridCommunity.DragSourceType.ChartPanel,\n eElement: eDragHandle,\n dragItemName: col.displayName,\n getDragItem: function () { return ({ columns: [col.column] }); },\n onDragStopped: function () { return _this.onDragStop(); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ChartDataPanel.prototype.generateGetSeriesLabel = function () {\n if (!this.chartController.isActiveXYChart()) {\n return function (col) { return agGridCommunity._.escapeString(col.displayName); };\n }\n var isBubble = this.chartType === 'bubble';\n var isInPairedMode = this.isInPairedMode();\n var selectedValuesCount = 0;\n var indexToAxisLabel = new Map();\n indexToAxisLabel.set(0, 'X');\n indexToAxisLabel.set(1, 'Y');\n indexToAxisLabel.set(2, 'size');\n return function (col) {\n var escapedLabel = agGridCommunity._.escapeString(col.displayName);\n if (!col.selected) {\n return escapedLabel;\n }\n var axisLabel;\n if (isInPairedMode) {\n axisLabel = indexToAxisLabel.get(selectedValuesCount % (isBubble ? 3 : 2));\n }\n else {\n if (selectedValuesCount === 0) {\n axisLabel = 'X';\n }\n else {\n axisLabel = isBubble && selectedValuesCount % 2 === 0 ? 'size' : 'Y';\n }\n }\n selectedValuesCount++;\n return escapedLabel + \" (\" + axisLabel + \")\";\n };\n };\n ChartDataPanel.prototype.getCategoryGroupTitle = function () {\n return this.chartTranslationService.translate(this.chartController.isActiveXYChart() ? 'labels' : 'categories');\n };\n ChartDataPanel.prototype.getSeriesGroupTitle = function () {\n return this.chartTranslationService.translate(this.chartController.isActiveXYChart() ? 'xyValues' : 'series');\n };\n ChartDataPanel.prototype.isInPairedMode = function () {\n return this.chartController.isActiveXYChart() && this.chartOptionsService.getSeriesOption('paired', 'scatter');\n };\n ChartDataPanel.prototype.clearComponents = function () {\n agGridCommunity._.clearElement(this.getGui());\n this.categoriesGroupComp = this.destroyBean(this.categoriesGroupComp);\n this.seriesGroupComp = this.destroyBean(this.seriesGroupComp);\n this.seriesChartTypeGroupComp = this.destroyBean(this.seriesChartTypeGroupComp);\n this.columnComps.clear();\n };\n ChartDataPanel.prototype.onDragging = function (draggingEvent) {\n var itemHovered = this.checkHoveredItem(draggingEvent);\n if (!itemHovered) {\n return;\n }\n this.lastDraggedColumn = draggingEvent.dragItem.columns[0];\n var comp = itemHovered.comp, position = itemHovered.position;\n var _a = this.lastHoveredItem || {}, lastHoveredComp = _a.comp, lastHoveredPosition = _a.position;\n if (comp === lastHoveredComp && position === lastHoveredPosition) {\n return;\n }\n this.autoScrollService.check(draggingEvent.event);\n this.clearHoveredItems();\n this.lastHoveredItem = { comp: comp, position: position };\n var eGui = comp.getGui();\n eGui.classList.add('ag-list-item-hovered', \"ag-item-highlight-\" + position);\n };\n ChartDataPanel.prototype.checkHoveredItem = function (draggingEvent) {\n var e_1, _a;\n if (agGridCommunity._.missing(draggingEvent.vDirection)) {\n return null;\n }\n var mouseEvent = draggingEvent.event;\n try {\n for (var _b = __values$e(this.columnComps.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var comp = _c.value;\n var eGui = comp.getGui();\n if (!eGui.querySelector('.ag-chart-data-column-drag-handle')) {\n continue;\n }\n var rect = eGui.getBoundingClientRect();\n var isOverComp = mouseEvent.clientY >= rect.top && mouseEvent.clientY <= rect.bottom;\n if (isOverComp) {\n var height = eGui.clientHeight;\n var position = mouseEvent.clientY > rect.top + (height / 2) ? 'bottom' : 'top';\n return { comp: comp, position: position };\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return null;\n };\n ChartDataPanel.prototype.onDragLeave = function () {\n this.clearHoveredItems();\n };\n ChartDataPanel.prototype.onDragStop = function () {\n var _this = this;\n if (this.lastHoveredItem) {\n var _a = this.chartController.getColStateForMenu(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var draggedColumnState = __spread$k(dimensionCols, valueCols).find(function (state) { return state.column === _this.lastDraggedColumn; });\n if (draggedColumnState) {\n var targetIndex = Array.from(this.columnComps.values()).indexOf(this.lastHoveredItem.comp);\n if (this.lastHoveredItem.position === 'bottom') {\n targetIndex++;\n }\n draggedColumnState.order = targetIndex;\n this.chartController.updateForPanelChange(draggedColumnState);\n }\n }\n this.clearHoveredItems();\n this.lastDraggedColumn = undefined;\n this.autoScrollService.ensureCleared();\n };\n ChartDataPanel.prototype.clearHoveredItems = function () {\n this.columnComps.forEach(function (columnComp) {\n columnComp.getGui().classList.remove('ag-list-item-hovered', 'ag-item-highlight-top', 'ag-item-highlight-bottom');\n });\n this.lastHoveredItem = undefined;\n };\n ChartDataPanel.prototype.isInterestedIn = function (type) {\n return type === agGridCommunity.DragSourceType.ChartPanel;\n };\n ChartDataPanel.TEMPLATE = \"
\";\n __decorate$Z([\n agGridCommunity.Autowired('dragAndDropService')\n ], ChartDataPanel.prototype, \"dragAndDropService\", void 0);\n __decorate$Z([\n agGridCommunity.Autowired('chartTranslationService')\n ], ChartDataPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$Z([\n agGridCommunity.PostConstruct\n ], ChartDataPanel.prototype, \"init\", null);\n return ChartDataPanel;\n}(agGridCommunity.Component));\n\nvar __extends$27 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FontPanel = /** @class */ (function (_super) {\n __extends$27(FontPanel, _super);\n function FontPanel(params) {\n var _this = _super.call(this) || this;\n _this.activeComps = [];\n _this.params = params;\n return _this;\n }\n FontPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(FontPanel.TEMPLATE, { fontGroup: groupParams });\n this.initGroup();\n this.initFontFamilySelect();\n this.initFontWeightStyleSelect();\n this.initFontSizeSelect();\n this.initFontColorPicker();\n };\n FontPanel.prototype.addCompToPanel = function (comp) {\n this.fontGroup.addItem(comp);\n this.activeComps.push(comp);\n };\n FontPanel.prototype.setEnabled = function (enabled) {\n this.fontGroup.setEnabled(enabled);\n };\n FontPanel.prototype.initGroup = function () {\n var _this = this;\n this.fontGroup\n .setTitle(this.params.name || this.chartTranslationService.translate('font'))\n .setEnabled(this.params.enabled)\n .hideEnabledCheckbox(!!this.params.suppressEnabledCheckbox)\n .hideOpenCloseIcons(true)\n .onEnableChange(function (enabled) {\n if (_this.params.setEnabled) {\n _this.params.setEnabled(enabled);\n }\n });\n };\n FontPanel.prototype.initFontFamilySelect = function () {\n var _this = this;\n var families = [\n 'Arial, sans-serif',\n 'Aria Black, sans-serif',\n 'Book Antiqua, serif',\n 'Charcoal, sans-serif',\n 'Comic Sans MS, cursive',\n 'Courier, monospace',\n 'Courier New, monospace',\n 'Gadget, sans-serif',\n 'Geneva, sans-serif',\n 'Helvetica, sans-serif',\n 'Impact, sans-serif',\n 'Lucida Console, monospace',\n 'Lucida Grande, sans-serif',\n 'Lucida Sans Unicode, sans-serif',\n 'Monaco, monospace',\n 'Palatino Linotype, serif',\n 'Palatino, serif',\n 'Times New Roman, serif',\n 'Times, serif',\n 'Verdana, sans-serif'\n ];\n var family = this.params.initialFont.family;\n var initialValue = families[0];\n if (family) {\n // check for known values using lowercase\n var lowerCaseValues = families.map(function (f) { return f.toLowerCase(); });\n var valueIndex = lowerCaseValues.indexOf(family.toLowerCase());\n if (valueIndex >= 0) {\n initialValue = families[valueIndex];\n }\n else {\n // add user provided value to list\n var capitalisedFontValue = agGridCommunity._.capitalise(family);\n families.push(capitalisedFontValue);\n initialValue = capitalisedFontValue;\n }\n }\n var options = families.sort().map(function (value) { return ({ value: value, text: value }); });\n this.familySelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(\"\" + initialValue)\n .onValueChange(function (newValue) { return _this.params.setFont({ family: newValue }); });\n };\n FontPanel.prototype.initFontSizeSelect = function () {\n var _this = this;\n var sizes = [8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36];\n var size = this.params.initialFont.size;\n if (!agGridCommunity._.includes(sizes, size)) {\n sizes.push(size);\n }\n var options = sizes.sort(function (a, b) { return a - b; }).map(function (value) { return ({ value: \"\" + value, text: \"\" + value }); });\n this.sizeSelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(\"\" + size)\n .onValueChange(function (newValue) { return _this.params.setFont({ size: parseInt(newValue, 10) }); });\n this.sizeSelect.setLabel(this.chartTranslationService.translate('size'));\n };\n FontPanel.prototype.initFontWeightStyleSelect = function () {\n var _this = this;\n var _a = this.params.initialFont, _b = _a.weight, weight = _b === void 0 ? 'normal' : _b, _c = _a.style, style = _c === void 0 ? 'normal' : _c;\n var weightStyles = [\n { name: 'normal', weight: 'normal', style: 'normal' },\n { name: 'bold', weight: 'bold', style: 'normal' },\n { name: 'italic', weight: 'normal', style: 'italic' },\n { name: 'boldItalic', weight: 'bold', style: 'italic' }\n ];\n var selectedOption = weightStyles.find(function (x) { return x.weight === weight && x.style === style; });\n if (!selectedOption) {\n selectedOption = { name: 'predefined', weight: weight, style: style };\n weightStyles.unshift(selectedOption);\n }\n var options = weightStyles.map(function (ws) { return ({\n value: ws.name,\n text: _this.chartTranslationService.translate(ws.name),\n }); });\n this.weightStyleSelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(selectedOption.name)\n .onValueChange(function (newValue) {\n var selectedWeightStyle = weightStyles.find(function (x) { return x.name === newValue; });\n _this.params.setFont({ weight: selectedWeightStyle.weight, style: selectedWeightStyle.style });\n });\n };\n FontPanel.prototype.initFontColorPicker = function () {\n var _this = this;\n this.colorPicker\n .setLabel(this.chartTranslationService.translate('color'))\n .setInputWidth(45)\n .setValue(\"\" + this.params.initialFont.color)\n .onValueChange(function (newColor) { return _this.params.setFont({ color: newColor }); });\n };\n FontPanel.prototype.destroyActiveComps = function () {\n var _this = this;\n this.activeComps.forEach(function (comp) {\n agGridCommunity._.removeFromParent(comp.getGui());\n _this.destroyBean(comp);\n });\n };\n FontPanel.prototype.destroy = function () {\n this.destroyActiveComps();\n _super.prototype.destroy.call(this);\n };\n FontPanel.TEMPLATE = \"
\\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\";\n __decorate$_([\n agGridCommunity.RefSelector('fontGroup')\n ], FontPanel.prototype, \"fontGroup\", void 0);\n __decorate$_([\n agGridCommunity.RefSelector('familySelect')\n ], FontPanel.prototype, \"familySelect\", void 0);\n __decorate$_([\n agGridCommunity.RefSelector('weightStyleSelect')\n ], FontPanel.prototype, \"weightStyleSelect\", void 0);\n __decorate$_([\n agGridCommunity.RefSelector('sizeSelect')\n ], FontPanel.prototype, \"sizeSelect\", void 0);\n __decorate$_([\n agGridCommunity.RefSelector('colorPicker')\n ], FontPanel.prototype, \"colorPicker\", void 0);\n __decorate$_([\n agGridCommunity.Autowired('chartTranslationService')\n ], FontPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$_([\n agGridCommunity.PostConstruct\n ], FontPanel.prototype, \"init\", null);\n return FontPanel;\n}(agGridCommunity.Component));\n\nvar __extends$28 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LegendPanel = /** @class */ (function (_super) {\n __extends$28(LegendPanel, _super);\n function LegendPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.activePanels = [];\n return _this;\n }\n LegendPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(LegendPanel.TEMPLATE, { legendGroup: groupParams });\n this.initLegendGroup();\n this.initLegendPosition();\n this.initLegendPadding();\n this.initLegendItems();\n this.initLabelPanel();\n };\n LegendPanel.prototype.initLegendGroup = function () {\n var _this = this;\n this.legendGroup\n .setTitle(this.chartTranslationService.translate(\"legend\"))\n .hideEnabledCheckbox(false)\n .setEnabled(this.chartOptionsService.getChartOption(\"legend.enabled\") || false)\n .toggleGroupExpand(false)\n .onEnableChange(function (enabled) {\n _this.chartOptionsService.setChartOption(\"legend.enabled\", enabled);\n _this.legendGroup.toggleGroupExpand(true);\n });\n };\n LegendPanel.prototype.initLegendPosition = function () {\n var _this = this;\n var positions = [LegendPosition.Top, LegendPosition.Right, LegendPosition.Bottom, LegendPosition.Left];\n this.legendPositionSelect\n .setLabel(this.chartTranslationService.translate(\"position\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(80)\n .addOptions(positions.map(function (position) { return ({\n value: position,\n text: _this.chartTranslationService.translate(position)\n }); }))\n .setValue(this.chartOptionsService.getChartOption(\"legend.position\"))\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption(\"legend.position\", newValue); });\n };\n LegendPanel.prototype.initLegendPadding = function () {\n var _this = this;\n var currentValue = this.chartOptionsService.getChartOption(\"legend.spacing\");\n this.legendPaddingSlider\n .setLabel(this.chartTranslationService.translate(\"spacing\"))\n .setMaxValue(getMaxValue(currentValue, 200))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption(\"legend.spacing\", newValue); });\n };\n LegendPanel.prototype.initLegendItems = function () {\n var _this = this;\n var initSlider = function (expression, labelKey, input, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getChartOption(\"legend.\" + expression);\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) {\n _this.chartOptionsService.setChartOption(\"legend.\" + expression, newValue);\n });\n };\n initSlider(\"item.marker.size\", \"markerSize\", this.markerSizeSlider, 40);\n initSlider(\"item.marker.strokeWidth\", \"markerStroke\", this.markerStrokeSlider, 10);\n initSlider(\"item.marker.padding\", \"itemSpacing\", this.markerPaddingSlider, 20);\n initSlider(\"item.paddingX\", \"layoutHorizontalSpacing\", this.itemPaddingXSlider, 50);\n initSlider(\"item.paddingY\", \"layoutVerticalSpacing\", this.itemPaddingYSlider, 50);\n };\n LegendPanel.prototype.initLabelPanel = function () {\n var _this = this;\n var chartProxy = this.chartOptionsService;\n var initialFont = {\n family: chartProxy.getChartOption(\"legend.item.label.fontFamily\"),\n style: chartProxy.getChartOption(\"legend.item.label.fontStyle\"),\n weight: chartProxy.getChartOption(\"legend.item.label.fontWeight\"),\n size: chartProxy.getChartOption(\"legend.item.label.fontSize\"),\n color: chartProxy.getChartOption(\"legend.item.label.color\")\n };\n var setFont = function (font) {\n var proxy = _this.chartOptionsService;\n if (font.family) {\n proxy.setChartOption(\"legend.item.label.fontFamily\", font.family);\n }\n if (font.weight) {\n proxy.setChartOption(\"legend.item.label.fontWeight\", font.weight);\n }\n if (font.style) {\n proxy.setChartOption(\"legend.item.label.fontStyle\", font.style);\n }\n if (font.size) {\n proxy.setChartOption(\"legend.item.label.fontSize\", font.size);\n }\n if (font.color) {\n proxy.setChartOption(\"legend.item.label.color\", font.color);\n }\n };\n var params = {\n enabled: true,\n suppressEnabledCheckbox: true,\n initialFont: initialFont,\n setFont: setFont\n };\n var fontPanelComp = this.createBean(new FontPanel(params));\n this.legendGroup.addItem(fontPanelComp);\n this.activePanels.push(fontPanelComp);\n };\n LegendPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n agGridCommunity._.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n LegendPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n LegendPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$$([\n agGridCommunity.RefSelector('legendGroup')\n ], LegendPanel.prototype, \"legendGroup\", void 0);\n __decorate$$([\n agGridCommunity.RefSelector('legendPositionSelect')\n ], LegendPanel.prototype, \"legendPositionSelect\", void 0);\n __decorate$$([\n agGridCommunity.RefSelector('legendPaddingSlider')\n ], LegendPanel.prototype, \"legendPaddingSlider\", void 0);\n __decorate$$([\n agGridCommunity.RefSelector('markerSizeSlider')\n ], LegendPanel.prototype, \"markerSizeSlider\", void 0);\n __decorate$$([\n agGridCommunity.RefSelector('markerStrokeSlider')\n ], LegendPanel.prototype, \"markerStrokeSlider\", void 0);\n __decorate$$([\n agGridCommunity.RefSelector('markerPaddingSlider')\n ], LegendPanel.prototype, \"markerPaddingSlider\", void 0);\n __decorate$$([\n agGridCommunity.RefSelector('itemPaddingXSlider')\n ], LegendPanel.prototype, \"itemPaddingXSlider\", void 0);\n __decorate$$([\n agGridCommunity.RefSelector('itemPaddingYSlider')\n ], LegendPanel.prototype, \"itemPaddingYSlider\", void 0);\n __decorate$$([\n agGridCommunity.Autowired('chartTranslationService')\n ], LegendPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$$([\n agGridCommunity.PostConstruct\n ], LegendPanel.prototype, \"init\", null);\n return LegendPanel;\n}(agGridCommunity.Component));\n\nvar __extends$29 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisTicksPanel = /** @class */ (function (_super) {\n __extends$29(AxisTicksPanel, _super);\n function AxisTicksPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n AxisTicksPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(AxisTicksPanel.TEMPLATE, { axisTicksGroup: groupParams });\n this.initAxisTicks();\n };\n AxisTicksPanel.prototype.initAxisTicks = function () {\n var _this = this;\n this.axisTicksGroup\n .setTitle(this.chartTranslationService.translate(\"ticks\"))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n this.axisTicksColorPicker\n .setLabel(this.chartTranslationService.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getAxisProperty(\"tick.color\"))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setAxisProperty(\"tick.color\", newColor); });\n var initInput = function (expression, input, label, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getAxisProperty(expression);\n input.setLabel(label)\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(expression, newValue); });\n };\n initInput(\"tick.width\", this.axisTicksWidthSlider, this.chartTranslationService.translate(\"width\"), 10);\n initInput(\"tick.size\", this.axisTicksSizeSlider, this.chartTranslationService.translate(\"length\"), 30);\n };\n AxisTicksPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$10([\n agGridCommunity.RefSelector('axisTicksGroup')\n ], AxisTicksPanel.prototype, \"axisTicksGroup\", void 0);\n __decorate$10([\n agGridCommunity.RefSelector('axisTicksColorPicker')\n ], AxisTicksPanel.prototype, \"axisTicksColorPicker\", void 0);\n __decorate$10([\n agGridCommunity.RefSelector('axisTicksWidthSlider')\n ], AxisTicksPanel.prototype, \"axisTicksWidthSlider\", void 0);\n __decorate$10([\n agGridCommunity.RefSelector('axisTicksSizeSlider')\n ], AxisTicksPanel.prototype, \"axisTicksSizeSlider\", void 0);\n __decorate$10([\n agGridCommunity.Autowired('chartTranslationService')\n ], AxisTicksPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$10([\n agGridCommunity.PostConstruct\n ], AxisTicksPanel.prototype, \"init\", null);\n return AxisTicksPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisPanel = /** @class */ (function (_super) {\n __extends$2a(AxisPanel, _super);\n function AxisPanel(chartController, chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.activePanels = [];\n _this.axisLabelUpdateFuncs = [];\n return _this;\n }\n AxisPanel.prototype.init = function () {\n var _this = this;\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(AxisPanel.TEMPLATE, { axisGroup: groupParams });\n this.initAxis();\n this.initAxisTicks();\n this.initAxisLabels();\n var updateAxisLabelRotations = function () { return _this.axisLabelUpdateFuncs.forEach(function (func) { return func(); }); };\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, updateAxisLabelRotations);\n };\n AxisPanel.prototype.initAxis = function () {\n var _this = this;\n var chartTranslationService = this.chartTranslationService;\n this.axisGroup\n .setTitle(chartTranslationService.translate(\"axis\"))\n .toggleGroupExpand(false)\n .hideEnabledCheckbox(true);\n this.axisColorInput\n .setLabel(chartTranslationService.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getAxisProperty(\"line.color\"))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setAxisProperty(\"line.color\", newColor); });\n var currentValue = this.chartOptionsService.getAxisProperty(\"line.width\");\n this.axisLineWidthSlider\n .setMaxValue(getMaxValue(currentValue, 10))\n .setLabel(chartTranslationService.translate(\"thickness\"))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(\"line.width\", newValue); });\n if (agGridCommunity._.includes(['line', 'scatter', 'bubble'], this.chartController.getChartType()) && !this.chartController.isGrouping()) {\n var options_1 = [\n { value: '', text: chartTranslationService.translate('automatic') }\n ];\n ['category', 'time', 'number'].forEach(function (type) {\n options_1.push({ value: type, text: chartTranslationService.translate(type) });\n });\n this.xAxisTypeSelect\n .setLabel(chartTranslationService.translate('xType'))\n .setLabelWidth('flex')\n .addOptions(options_1)\n .setValue(this.chartOptionsService.getChartOption('xAxis.type') || '')\n .onValueChange(function (newValue) {\n _this.chartOptionsService.setChartOption('xAxis.type', typeof newValue === 'string' && newValue.length && newValue);\n _this.chartController.updateForDataChange();\n });\n }\n else {\n this.xAxisTypeSelect.setDisplayed(false);\n }\n };\n AxisPanel.prototype.initAxisTicks = function () {\n var axisTicksComp = this.createBean(new AxisTicksPanel(this.chartOptionsService));\n this.axisGroup.addItem(axisTicksComp);\n this.activePanels.push(axisTicksComp);\n };\n AxisPanel.prototype.initAxisLabels = function () {\n var _this = this;\n var initialFont = {\n family: this.chartOptionsService.getAxisProperty(\"label.fontFamily\"),\n style: this.chartOptionsService.getAxisProperty(\"label.fontStyle\"),\n weight: this.chartOptionsService.getAxisProperty(\"label.fontWeight\"),\n size: this.chartOptionsService.getAxisProperty(\"label.fontSize\"),\n color: this.chartOptionsService.getAxisProperty(\"label.color\")\n };\n var setFont = function (font) {\n if (font.family) {\n _this.chartOptionsService.setAxisProperty(\"label.fontFamily\", font.family);\n }\n if (font.weight) {\n _this.chartOptionsService.setAxisProperty(\"label.fontWeight\", font.weight);\n }\n if (font.style) {\n _this.chartOptionsService.setAxisProperty(\"label.fontStyle\", font.style);\n }\n if (font.size) {\n _this.chartOptionsService.setAxisProperty(\"label.fontSize\", font.size);\n }\n if (font.color) {\n _this.chartOptionsService.setAxisProperty(\"label.color\", font.color);\n }\n _this.chartController.getChartProxy().getChart().layoutPending = true;\n };\n var params = {\n enabled: true,\n suppressEnabledCheckbox: true,\n initialFont: initialFont,\n setFont: setFont\n };\n var labelPanelComp = this.createBean(new FontPanel(params));\n this.axisGroup.addItem(labelPanelComp);\n this.activePanels.push(labelPanelComp);\n this.addAdditionalLabelComps(labelPanelComp);\n };\n AxisPanel.prototype.addAdditionalLabelComps = function (labelPanelComp) {\n var _this = this;\n var createAngleComp = function (label, axisType) {\n var value = _this.chartOptionsService.getLabelRotation(axisType);\n var angleSelect = new agGridCommunity.AgAngleSelect()\n .setLabel(label)\n .setLabelWidth(\"flex\")\n .setValue(value || 0)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setLabelRotation(axisType, newValue); });\n // the axis label rotation needs to be updated when the default category changes in the data panel\n _this.axisLabelUpdateFuncs.push(function () {\n var value = _this.chartOptionsService.getLabelRotation(axisType);\n angleSelect.setValue(value);\n });\n var rotationInput = _this.createBean(angleSelect);\n labelPanelComp.addCompToPanel(rotationInput);\n };\n var degreesSymbol = String.fromCharCode(176);\n var xRotationLabel = this.chartTranslationService.translate(\"xRotation\") + \" \" + degreesSymbol;\n var yRotationLabel = this.chartTranslationService.translate(\"yRotation\") + \" \" + degreesSymbol;\n createAngleComp(xRotationLabel, \"xAxis\");\n createAngleComp(yRotationLabel, \"yAxis\");\n var labelPaddingSlider = this.createBean(new agGridCommunity.AgSlider());\n var currentValue = this.chartOptionsService.getAxisProperty(\"label.padding\");\n labelPaddingSlider.setLabel(this.chartTranslationService.translate(\"padding\"))\n .setMaxValue(getMaxValue(currentValue, 30))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(\"label.padding\", newValue); });\n labelPanelComp.addCompToPanel(labelPaddingSlider);\n };\n AxisPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n agGridCommunity._.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n AxisPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n AxisPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$11([\n agGridCommunity.RefSelector('axisGroup')\n ], AxisPanel.prototype, \"axisGroup\", void 0);\n __decorate$11([\n agGridCommunity.RefSelector('axisColorInput')\n ], AxisPanel.prototype, \"axisColorInput\", void 0);\n __decorate$11([\n agGridCommunity.RefSelector('axisLineWidthSlider')\n ], AxisPanel.prototype, \"axisLineWidthSlider\", void 0);\n __decorate$11([\n agGridCommunity.RefSelector('xAxisTypeSelect')\n ], AxisPanel.prototype, \"xAxisTypeSelect\", void 0);\n __decorate$11([\n agGridCommunity.Autowired('chartTranslationService')\n ], AxisPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$11([\n agGridCommunity.PostConstruct\n ], AxisPanel.prototype, \"init\", null);\n return AxisPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NavigatorPanel = /** @class */ (function (_super) {\n __extends$2b(NavigatorPanel, _super);\n function NavigatorPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n NavigatorPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(NavigatorPanel.TEMPLATE, { navigatorGroup: groupParams });\n this.initNavigator();\n };\n NavigatorPanel.prototype.initNavigator = function () {\n var _this = this;\n var chartTranslationService = this.chartTranslationService;\n this.navigatorGroup\n .setTitle(chartTranslationService.translate(\"navigator\"))\n .toggleGroupExpand(false)\n .hideEnabledCheckbox(false)\n .setEnabled(this.chartOptionsService.getChartOption(\"navigator.enabled\") || false)\n .onEnableChange(function (enabled) {\n _this.chartOptionsService.setChartOption(\"navigator.enabled\", enabled);\n _this.navigatorGroup.toggleGroupExpand(true);\n });\n var currentValue = this.chartOptionsService.getChartOption(\"navigator.height\");\n this.navigatorHeightSlider\n .setLabel(chartTranslationService.translate(\"height\"))\n .setMinValue(10)\n .setMaxValue(getMaxValue(currentValue, 60))\n .setTextFieldWidth(45)\n .setValue(\"\" + (currentValue || 30))\n .onValueChange(function (height) { return _this.chartOptionsService.setChartOption(\"navigator.height\", height); });\n };\n NavigatorPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n NavigatorPanel.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$12([\n agGridCommunity.RefSelector('navigatorGroup')\n ], NavigatorPanel.prototype, \"navigatorGroup\", void 0);\n __decorate$12([\n agGridCommunity.RefSelector('navigatorHeightSlider')\n ], NavigatorPanel.prototype, \"navigatorHeightSlider\", void 0);\n __decorate$12([\n agGridCommunity.Autowired('chartTranslationService')\n ], NavigatorPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$12([\n agGridCommunity.PostConstruct\n ], NavigatorPanel.prototype, \"init\", null);\n return NavigatorPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaddingPanel = /** @class */ (function (_super) {\n __extends$2c(PaddingPanel, _super);\n function PaddingPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n PaddingPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(PaddingPanel.TEMPLATE, { chartPaddingGroup: groupParams });\n this.initGroup();\n this.initChartPaddingItems();\n };\n PaddingPanel.prototype.initGroup = function () {\n this.chartPaddingGroup\n .setTitle(this.chartTranslationService.translate(\"padding\"))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n };\n PaddingPanel.prototype.initChartPaddingItems = function () {\n var _this = this;\n var initInput = function (property, input) {\n var currentValue = _this.chartOptionsService.getChartOption('padding.' + property);\n input.setLabel(_this.chartTranslationService.translate(property))\n .setMaxValue(getMaxValue(currentValue, 200))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption('padding.' + property, newValue); });\n };\n initInput('top', this.paddingTopSlider);\n initInput('right', this.paddingRightSlider);\n initInput('bottom', this.paddingBottomSlider);\n initInput('left', this.paddingLeftSlider);\n };\n PaddingPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$13([\n agGridCommunity.RefSelector('chartPaddingGroup')\n ], PaddingPanel.prototype, \"chartPaddingGroup\", void 0);\n __decorate$13([\n agGridCommunity.RefSelector('paddingTopSlider')\n ], PaddingPanel.prototype, \"paddingTopSlider\", void 0);\n __decorate$13([\n agGridCommunity.RefSelector('paddingRightSlider')\n ], PaddingPanel.prototype, \"paddingRightSlider\", void 0);\n __decorate$13([\n agGridCommunity.RefSelector('paddingBottomSlider')\n ], PaddingPanel.prototype, \"paddingBottomSlider\", void 0);\n __decorate$13([\n agGridCommunity.RefSelector('paddingLeftSlider')\n ], PaddingPanel.prototype, \"paddingLeftSlider\", void 0);\n __decorate$13([\n agGridCommunity.Autowired('chartTranslationService')\n ], PaddingPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$13([\n agGridCommunity.PostConstruct\n ], PaddingPanel.prototype, \"init\", null);\n return PaddingPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BackgroundPanel = /** @class */ (function (_super) {\n __extends$2d(BackgroundPanel, _super);\n function BackgroundPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n BackgroundPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(BackgroundPanel.TEMPLATE, { chartBackgroundGroup: groupParams });\n this.initGroup();\n this.initColorPicker();\n };\n BackgroundPanel.prototype.initGroup = function () {\n var _this = this;\n this.group\n .setTitle(this.chartTranslationService.translate('background'))\n .setEnabled(this.chartOptionsService.getChartOption('background.visible'))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(false)\n .onEnableChange(function (enabled) { return _this.chartOptionsService.setChartOption('background.visible', enabled); });\n };\n BackgroundPanel.prototype.initColorPicker = function () {\n var _this = this;\n this.colorPicker\n .setLabel(this.chartTranslationService.translate('color'))\n .setLabelWidth('flex')\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getChartOption('background.fill'))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setChartOption('background.fill', newColor); });\n };\n BackgroundPanel.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$14([\n agGridCommunity.RefSelector('chartBackgroundGroup')\n ], BackgroundPanel.prototype, \"group\", void 0);\n __decorate$14([\n agGridCommunity.RefSelector('colorPicker')\n ], BackgroundPanel.prototype, \"colorPicker\", void 0);\n __decorate$14([\n agGridCommunity.Autowired('chartTranslationService')\n ], BackgroundPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$14([\n agGridCommunity.PostConstruct\n ], BackgroundPanel.prototype, \"init\", null);\n return BackgroundPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TitlePanel = /** @class */ (function (_super) {\n __extends$2e(TitlePanel, _super);\n function TitlePanel(chartOptionsService) {\n var _this = _super.call(this, TitlePanel.TEMPLATE) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.activePanels = [];\n return _this;\n }\n TitlePanel.prototype.init = function () {\n this.initFontPanel();\n this.titlePlaceholder = this.chartTranslationService.translate('titlePlaceholder');\n };\n TitlePanel.prototype.hasTitle = function () {\n var title = this.getOption('title');\n return title && title.enabled && title.text && title.text.length > 0;\n };\n TitlePanel.prototype.initFontPanel = function () {\n var _this = this;\n var hasTitle = this.hasTitle;\n var setFont = function (font) {\n if (font.family) {\n _this.setOption('title.fontFamily', font.family);\n }\n if (font.weight) {\n _this.setOption('title.fontWeight', font.weight);\n }\n if (font.style) {\n _this.setOption('title.fontStyle', font.style);\n }\n if (font.size) {\n _this.setOption('title.fontSize', font.size);\n }\n if (font.color) {\n _this.setOption('title.color', font.color);\n }\n };\n var initialFont = {\n family: this.getOption('title.fontFamily'),\n style: this.getOption('title.fontStyle'),\n weight: this.getOption('title.fontWeight'),\n size: this.getOption('title.fontSize'),\n color: this.getOption('title.color')\n };\n if (!hasTitle) {\n setFont(initialFont);\n }\n var fontPanelParams = {\n name: this.chartTranslationService.translate('title'),\n enabled: this.hasTitle(),\n suppressEnabledCheckbox: false,\n initialFont: initialFont,\n setFont: setFont,\n setEnabled: function (enabled) {\n _this.setOption('title.enabled', enabled);\n var currentTitleText = _this.getOption('title.text');\n if (enabled && currentTitleText === 'Title') {\n _this.setOption('title.text', _this.titlePlaceholder);\n }\n }\n };\n var fontPanelComp = this.createBean(new FontPanel(fontPanelParams));\n this.getGui().appendChild(fontPanelComp.getGui());\n this.activePanels.push(fontPanelComp);\n // edits to the title can disable it, so keep the checkbox in sync:\n this.addManagedListener(this.eventService, 'chartTitleEdit', function () {\n fontPanelComp.setEnabled(_this.hasTitle());\n });\n };\n TitlePanel.prototype.getOption = function (expression) {\n return this.chartOptionsService.getChartOption(expression);\n };\n TitlePanel.prototype.setOption = function (property, value) {\n this.chartOptionsService.setChartOption(property, value);\n };\n TitlePanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n agGridCommunity._.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n TitlePanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n TitlePanel.TEMPLATE = \"
\";\n __decorate$15([\n agGridCommunity.Autowired('chartTranslationService')\n ], TitlePanel.prototype, \"chartTranslationService\", void 0);\n __decorate$15([\n agGridCommunity.PostConstruct\n ], TitlePanel.prototype, \"init\", null);\n return TitlePanel;\n}(agGridCommunity.Component));\n\nvar __extends$2f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartPanel = /** @class */ (function (_super) {\n __extends$2f(ChartPanel, _super);\n function ChartPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.activePanels = [];\n return _this;\n }\n ChartPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(ChartPanel.TEMPLATE, { chartGroup: groupParams });\n this.initGroup();\n this.initTitles();\n this.initPaddingPanel();\n this.initBackgroundPanel();\n };\n ChartPanel.prototype.initGroup = function () {\n this.chartGroup\n .setTitle(this.chartTranslationService.translate('chart'))\n .toggleGroupExpand(false)\n .hideEnabledCheckbox(true);\n };\n ChartPanel.prototype.initTitles = function () {\n var titlePanelComp = this.createBean(new TitlePanel(this.chartOptionsService));\n this.chartGroup.addItem(titlePanelComp);\n this.activePanels.push(titlePanelComp);\n };\n ChartPanel.prototype.initPaddingPanel = function () {\n var paddingPanelComp = this.createBean(new PaddingPanel(this.chartOptionsService));\n this.chartGroup.addItem(paddingPanelComp);\n this.activePanels.push(paddingPanelComp);\n };\n ChartPanel.prototype.initBackgroundPanel = function () {\n var backgroundPanelComp = this.createBean(new BackgroundPanel(this.chartOptionsService));\n this.chartGroup.addItem(backgroundPanelComp);\n this.activePanels.push(backgroundPanelComp);\n };\n ChartPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n agGridCommunity._.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n ChartPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n ChartPanel.TEMPLATE = \"
\\n \\n
\";\n __decorate$16([\n agGridCommunity.RefSelector('chartGroup')\n ], ChartPanel.prototype, \"chartGroup\", void 0);\n __decorate$16([\n agGridCommunity.Autowired('chartTranslationService')\n ], ChartPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$16([\n agGridCommunity.PostConstruct\n ], ChartPanel.prototype, \"init\", null);\n return ChartPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ShadowPanel = /** @class */ (function (_super) {\n __extends$2g(ShadowPanel, _super);\n function ShadowPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n ShadowPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(ShadowPanel.TEMPLATE, { shadowGroup: groupParams });\n this.shadowBlurSlider.setTextFieldWidth(45);\n this.shadowXOffsetSlider.setTextFieldWidth(45);\n this.shadowYOffsetSlider.setTextFieldWidth(45);\n this.initSeriesShadow();\n };\n ShadowPanel.prototype.initSeriesShadow = function () {\n var _this = this;\n this.shadowGroup\n .setTitle(this.chartTranslationService.translate(\"shadow\"))\n .setEnabled(this.chartOptionsService.getSeriesOption(\"shadow.enabled\", this.getSelectedSeries()))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(false)\n .onEnableChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.enabled\", newValue, _this.getSelectedSeries()); });\n this.shadowColorPicker\n .setLabel(this.chartTranslationService.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getSeriesOption(\"shadow.color\", this.getSelectedSeries()))\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.color\", newValue, _this.getSelectedSeries()); });\n var initInput = function (input, property, minValue, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getSeriesOption(\"shadow.\" + property, _this.getSelectedSeries());\n input.setLabel(_this.chartTranslationService.translate(property))\n .setMinValue(minValue)\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.\" + property, newValue, _this.getSelectedSeries()); });\n };\n initInput(this.shadowBlurSlider, \"blur\", 0, 20);\n initInput(this.shadowXOffsetSlider, \"xOffset\", -10, 10);\n initInput(this.shadowYOffsetSlider, \"yOffset\", -10, 10);\n };\n ShadowPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$17([\n agGridCommunity.RefSelector('shadowGroup')\n ], ShadowPanel.prototype, \"shadowGroup\", void 0);\n __decorate$17([\n agGridCommunity.RefSelector('shadowColorPicker')\n ], ShadowPanel.prototype, \"shadowColorPicker\", void 0);\n __decorate$17([\n agGridCommunity.RefSelector('shadowBlurSlider')\n ], ShadowPanel.prototype, \"shadowBlurSlider\", void 0);\n __decorate$17([\n agGridCommunity.RefSelector('shadowXOffsetSlider')\n ], ShadowPanel.prototype, \"shadowXOffsetSlider\", void 0);\n __decorate$17([\n agGridCommunity.RefSelector('shadowYOffsetSlider')\n ], ShadowPanel.prototype, \"shadowYOffsetSlider\", void 0);\n __decorate$17([\n agGridCommunity.Autowired('chartTranslationService')\n ], ShadowPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$17([\n agGridCommunity.PostConstruct\n ], ShadowPanel.prototype, \"init\", null);\n return ShadowPanel;\n}(agGridCommunity.Component));\n\nfunction initFontPanelParams(chartTranslationService, chartOptionsService, getSelectedSeries) {\n var initialFont = {\n family: chartOptionsService.getSeriesOption(\"label.fontFamily\", getSelectedSeries()),\n style: chartOptionsService.getSeriesOption(\"label.fontStyle\", getSelectedSeries()),\n weight: chartOptionsService.getSeriesOption(\"label.fontWeight\", getSelectedSeries()),\n size: chartOptionsService.getSeriesOption(\"label.fontSize\", getSelectedSeries()),\n color: chartOptionsService.getSeriesOption(\"label.color\", getSelectedSeries())\n };\n var setFont = function (font) {\n if (font.family) {\n chartOptionsService.setSeriesOption(\"label.fontFamily\", font.family, getSelectedSeries());\n }\n if (font.weight) {\n chartOptionsService.setSeriesOption(\"label.fontWeight\", font.weight, getSelectedSeries());\n }\n if (font.style) {\n chartOptionsService.setSeriesOption(\"label.fontStyle\", font.style, getSelectedSeries());\n }\n if (font.size) {\n chartOptionsService.setSeriesOption(\"label.fontSize\", font.size, getSelectedSeries());\n }\n if (font.color) {\n chartOptionsService.setSeriesOption(\"label.color\", font.color, getSelectedSeries());\n }\n };\n var params = {\n name: chartTranslationService.translate('labels'),\n enabled: chartOptionsService.getSeriesOption(\"label.enabled\", getSelectedSeries()) || false,\n setEnabled: function (enabled) { return chartOptionsService.setSeriesOption(\"label.enabled\", enabled, getSelectedSeries()); },\n suppressEnabledCheckbox: false,\n initialFont: initialFont,\n setFont: setFont\n };\n return params;\n}\n\nvar __extends$2h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$18 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MarkersPanel = /** @class */ (function (_super) {\n __extends$2h(MarkersPanel, _super);\n function MarkersPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n MarkersPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical'\n };\n this.setTemplate(MarkersPanel.TEMPLATE, { seriesMarkersGroup: groupParams });\n this.initMarkers();\n };\n MarkersPanel.prototype.initMarkers = function () {\n var _this = this;\n var seriesMarkerShapeOptions = [\n {\n value: 'square',\n text: 'Square'\n },\n {\n value: 'circle',\n text: 'Circle'\n },\n {\n value: 'cross',\n text: 'Cross'\n },\n {\n value: 'diamond',\n text: 'Diamond'\n },\n {\n value: 'plus',\n text: 'Plus'\n },\n {\n value: 'triangle',\n text: 'Triangle'\n },\n {\n value: 'heart',\n text: 'Heart'\n }\n ];\n this.seriesMarkerShapeSelect\n .addOptions(seriesMarkerShapeOptions)\n .setLabel(this.chartTranslationService.translate('shape'))\n .setValue(this.getSeriesOption(\"marker.shape\"))\n .onValueChange(function (value) { return _this.setSeriesOption(\"marker.shape\", value); });\n // scatter charts should always show markers\n var chartType = this.chartOptionsService.getChartType();\n var shouldHideEnabledCheckbox = agGridCommunity._.includes(['scatter', 'bubble'], chartType);\n this.seriesMarkersGroup\n .setTitle(this.chartTranslationService.translate(\"markers\"))\n .hideEnabledCheckbox(shouldHideEnabledCheckbox)\n .setEnabled(this.getSeriesOption(\"marker.enabled\") || false)\n .hideOpenCloseIcons(true)\n .onEnableChange(function (newValue) { return _this.setSeriesOption(\"marker.enabled\", newValue); });\n var initInput = function (expression, input, labelKey, defaultMaxValue) {\n var currentValue = _this.getSeriesOption(expression);\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.setSeriesOption(expression, newValue); });\n };\n if (chartType === 'bubble') {\n initInput(\"marker.maxSize\", this.seriesMarkerMinSizeSlider, \"maxSize\", 60);\n initInput(\"marker.size\", this.seriesMarkerSizeSlider, \"minSize\", 60);\n }\n else {\n this.seriesMarkerMinSizeSlider.setDisplayed(false);\n initInput(\"marker.size\", this.seriesMarkerSizeSlider, \"size\", 60);\n }\n initInput(\"marker.strokeWidth\", this.seriesMarkerStrokeWidthSlider, \"strokeWidth\", 10);\n };\n MarkersPanel.prototype.getSeriesOption = function (expression) {\n return this.chartOptionsService.getSeriesOption(expression, this.getSelectedSeries());\n };\n MarkersPanel.prototype.setSeriesOption = function (expression, newValue) {\n this.chartOptionsService.setSeriesOption(expression, newValue, this.getSelectedSeries());\n };\n MarkersPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$18([\n agGridCommunity.RefSelector('seriesMarkersGroup')\n ], MarkersPanel.prototype, \"seriesMarkersGroup\", void 0);\n __decorate$18([\n agGridCommunity.RefSelector('seriesMarkerShapeSelect')\n ], MarkersPanel.prototype, \"seriesMarkerShapeSelect\", void 0);\n __decorate$18([\n agGridCommunity.RefSelector('seriesMarkerSizeSlider')\n ], MarkersPanel.prototype, \"seriesMarkerSizeSlider\", void 0);\n __decorate$18([\n agGridCommunity.RefSelector('seriesMarkerMinSizeSlider')\n ], MarkersPanel.prototype, \"seriesMarkerMinSizeSlider\", void 0);\n __decorate$18([\n agGridCommunity.RefSelector('seriesMarkerStrokeWidthSlider')\n ], MarkersPanel.prototype, \"seriesMarkerStrokeWidthSlider\", void 0);\n __decorate$18([\n agGridCommunity.Autowired('chartTranslationService')\n ], MarkersPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$18([\n agGridCommunity.PostConstruct\n ], MarkersPanel.prototype, \"init\", null);\n return MarkersPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$19 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CalloutPanel = /** @class */ (function (_super) {\n __extends$2i(CalloutPanel, _super);\n function CalloutPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n CalloutPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical'\n };\n this.setTemplate(CalloutPanel.TEMPLATE, { calloutGroup: groupParams });\n this.initCalloutOptions();\n };\n CalloutPanel.prototype.initCalloutOptions = function () {\n var _this = this;\n this.calloutGroup\n .setTitle(this.chartTranslationService.translate(\"callout\"))\n .setEnabled(true)\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n var initInput = function (expression, input, labelKey, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getSeriesOption(expression, _this.getSelectedSeries());\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(expression, newValue, _this.getSelectedSeries()); });\n };\n initInput(\"callout.length\", this.calloutLengthSlider, \"length\", 40);\n initInput(\"callout.strokeWidth\", this.calloutStrokeWidthSlider, \"strokeWidth\", 10);\n initInput(\"label.offset\", this.labelOffsetSlider, \"offset\", 30);\n };\n CalloutPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$19([\n agGridCommunity.RefSelector('calloutGroup')\n ], CalloutPanel.prototype, \"calloutGroup\", void 0);\n __decorate$19([\n agGridCommunity.RefSelector('calloutLengthSlider')\n ], CalloutPanel.prototype, \"calloutLengthSlider\", void 0);\n __decorate$19([\n agGridCommunity.RefSelector('calloutStrokeWidthSlider')\n ], CalloutPanel.prototype, \"calloutStrokeWidthSlider\", void 0);\n __decorate$19([\n agGridCommunity.RefSelector('labelOffsetSlider')\n ], CalloutPanel.prototype, \"labelOffsetSlider\", void 0);\n __decorate$19([\n agGridCommunity.Autowired('chartTranslationService')\n ], CalloutPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$19([\n agGridCommunity.PostConstruct\n ], CalloutPanel.prototype, \"init\", null);\n return CalloutPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SeriesPanel = /** @class */ (function (_super) {\n __extends$2j(SeriesPanel, _super);\n function SeriesPanel(chartController, chartOptionsService, seriesType) {\n var _this = _super.call(this) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.activePanels = [];\n _this.widgetFuncs = {\n 'lineWidth': function () { return _this.initLineWidth(); },\n 'strokeWidth': function () { return _this.initStrokeWidth(); },\n 'lineDash': function () { return _this.initLineDash(); },\n 'lineOpacity': function () { return _this.initLineOpacity(); },\n 'fillOpacity': function () { return _this.initFillOpacity(); },\n 'markers': function () { return _this.initMarkers(); },\n 'labels': function () { return _this.initLabels(); },\n 'shadow': function () { return _this.initShadow(); },\n 'tooltips': function () { return _this.initTooltips(); },\n 'bins': function () { return _this.initBins(); },\n };\n _this.seriesWidgetMappings = {\n 'area': ['tooltips', 'lineWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'markers', 'labels', 'shadow'],\n 'bar': ['tooltips', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'column': ['tooltips', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'line': ['tooltips', 'lineWidth', 'lineDash', 'lineOpacity', 'markers', 'labels'],\n 'histogram': ['tooltips', 'bins', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'scatter': ['tooltips', 'markers', 'labels'],\n 'pie': ['tooltips', 'strokeWidth', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n };\n _this.seriesType = seriesType || _this.getChartSeriesType();\n return _this;\n }\n SeriesPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(SeriesPanel.TEMPLATE, { seriesGroup: groupParams });\n this.seriesGroup\n .setTitle(this.translate(\"series\"))\n .toggleGroupExpand(false)\n .hideEnabledCheckbox(true);\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED, this.refreshWidgets.bind(this));\n this.refreshWidgets();\n };\n SeriesPanel.prototype.refreshWidgets = function () {\n var _this = this;\n this.destroyActivePanels();\n if (this.chartController.isComboChart()) {\n this.updateSeriesType();\n this.initSeriesSelect();\n }\n this.seriesWidgetMappings[this.seriesType].forEach(function (w) { return _this.widgetFuncs[w](); });\n };\n SeriesPanel.prototype.initSeriesSelect = function () {\n var _this = this;\n var seriesSelect = this.seriesGroup.createManagedBean(new agGridCommunity.AgSelect());\n seriesSelect\n .setLabel(this.translate('seriesType'))\n .setLabelAlignment(\"left\")\n .setLabelWidth('flex')\n .setInputWidth(100)\n .addOptions(this.getSeriesSelectOptions())\n .setValue(\"\" + this.seriesType)\n .onValueChange(function (newValue) {\n _this.seriesType = newValue;\n _this.refreshWidgets();\n });\n this.seriesGroup.addItem(seriesSelect);\n this.activePanels.push(seriesSelect);\n };\n SeriesPanel.prototype.initTooltips = function () {\n var _this = this;\n var seriesTooltipsToggle = this.createBean(new agGridCommunity.AgToggleButton());\n seriesTooltipsToggle\n .setLabel(this.translate(\"tooltips\"))\n .setLabelAlignment(\"left\")\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.getSeriesOption(\"tooltip.enabled\") || false)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"tooltip.enabled\", newValue); });\n this.addWidget(seriesTooltipsToggle);\n };\n SeriesPanel.prototype.initStrokeWidth = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeWidth\");\n var seriesStrokeWidthSlider = this.createBean(new agGridCommunity.AgSlider());\n seriesStrokeWidthSlider\n .setLabel(this.translate(\"strokeWidth\"))\n .setMaxValue(getMaxValue(currentValue, 10))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeWidth\", newValue); });\n this.addWidget(seriesStrokeWidthSlider);\n };\n SeriesPanel.prototype.initLineWidth = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeWidth\");\n var seriesLineWidthSlider = this.createBean(new agGridCommunity.AgSlider());\n seriesLineWidthSlider\n .setLabel(this.translate('lineWidth'))\n .setMaxValue(getMaxValue(currentValue, 10))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeWidth\", newValue); });\n this.addWidget(seriesLineWidthSlider);\n };\n SeriesPanel.prototype.initLineDash = function () {\n var _this = this;\n var lineDash = this.getSeriesOption(\"lineDash\");\n var currentValue = lineDash ? lineDash[0] : 0;\n var seriesLineDashSlider = this.createBean(new agGridCommunity.AgSlider());\n seriesLineDashSlider\n .setLabel(this.translate('lineDash'))\n .setMaxValue(getMaxValue(currentValue, 30))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"lineDash\", [newValue]); });\n this.addWidget(seriesLineDashSlider);\n };\n SeriesPanel.prototype.initLineOpacity = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeOpacity\");\n var seriesLineOpacitySlider = this.createBean(new agGridCommunity.AgSlider());\n seriesLineOpacitySlider\n .setLabel(this.translate(\"strokeOpacity\"))\n .setStep(0.05)\n .setMaxValue(getMaxValue(currentValue, 1))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeOpacity\", newValue); });\n this.addWidget(seriesLineOpacitySlider);\n };\n SeriesPanel.prototype.initFillOpacity = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"fillOpacity\");\n var seriesFillOpacitySlider = this.createBean(new agGridCommunity.AgSlider());\n seriesFillOpacitySlider\n .setLabel(this.translate(\"fillOpacity\"))\n .setStep(0.05)\n .setMaxValue(getMaxValue(currentValue, 1))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"fillOpacity\", newValue); });\n this.addWidget(seriesFillOpacitySlider);\n };\n SeriesPanel.prototype.initLabels = function () {\n var _this = this;\n var params = initFontPanelParams(this.chartTranslationService, this.chartOptionsService, function () { return _this.seriesType; });\n var labelPanelComp = this.createBean(new FontPanel(params));\n if (this.seriesType === 'pie') {\n var calloutPanelComp = this.createBean(new CalloutPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n labelPanelComp.addCompToPanel(calloutPanelComp);\n this.activePanels.push(calloutPanelComp);\n }\n this.addWidget(labelPanelComp);\n };\n SeriesPanel.prototype.initShadow = function () {\n var _this = this;\n var shadowPanelComp = this.createBean(new ShadowPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n this.addWidget(shadowPanelComp);\n };\n SeriesPanel.prototype.initMarkers = function () {\n var _this = this;\n var markersPanelComp = this.createBean(new MarkersPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n this.addWidget(markersPanelComp);\n };\n SeriesPanel.prototype.initBins = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"binCount\");\n var seriesBinCountSlider = this.createBean(new agGridCommunity.AgSlider());\n seriesBinCountSlider\n .setLabel(this.translate(\"histogramBinCount\"))\n .setMinValue(4)\n .setMaxValue(getMaxValue(currentValue, 100))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"binCount\", newValue); });\n this.addWidget(seriesBinCountSlider);\n };\n SeriesPanel.prototype.addWidget = function (widget) {\n this.seriesGroup.addItem(widget);\n this.activePanels.push(widget);\n };\n SeriesPanel.prototype.getSeriesOption = function (expression) {\n return this.chartOptionsService.getSeriesOption(expression, this.seriesType);\n };\n SeriesPanel.prototype.setSeriesOption = function (expression, newValue) {\n this.chartOptionsService.setSeriesOption(expression, newValue, this.seriesType);\n };\n SeriesPanel.prototype.getChartSeriesType = function () {\n var ct = this.chartController.getSeriesChartTypes()[0].chartType;\n return (ct === 'columnLineCombo') ? 'column' : (ct === 'areaColumnCombo') ? 'area' : getSeriesType(ct);\n };\n SeriesPanel.prototype.getSeriesSelectOptions = function () {\n var _this = this;\n if (!this.seriesSelectOptions) {\n // lazy init options as they are only required for combo charts\n this.seriesSelectOptions = new Map([\n ['area', { value: 'area', text: this.translate('area', 'Area') }],\n ['bar', { value: 'bar', text: this.translate('bar', 'Bar') }],\n ['column', { value: 'column', text: this.translate('column', 'Column') }],\n ['line', { value: 'line', text: this.translate('line', 'Line') }],\n ['scatter', { value: 'scatter', text: this.translate('scatter', 'Scatter') }],\n ['histogram', { value: 'histogram', text: this.translate('histogram', 'Histogram') }],\n ['pie', { value: 'pie', text: this.translate('pie', 'Pie') }],\n ]);\n }\n var seriesSelectOptions = new Set();\n this.chartController.getActiveSeriesChartTypes().forEach(function (s) {\n var chartType = getSeriesType(s.chartType);\n seriesSelectOptions.add(_this.seriesSelectOptions.get(chartType));\n });\n return Array.from(seriesSelectOptions);\n };\n SeriesPanel.prototype.updateSeriesType = function () {\n var activeChartTypes = this.chartController.getActiveSeriesChartTypes().map(function (s) { return getSeriesType(s.chartType); });\n var invalidSeriesType = !activeChartTypes.includes(this.seriesType);\n if (invalidSeriesType && activeChartTypes.length > 0) {\n this.seriesType = activeChartTypes[0]; // default to first active series type\n }\n };\n SeriesPanel.prototype.translate = function (key, defaultText) {\n return this.chartTranslationService.translate(key, defaultText);\n };\n SeriesPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n agGridCommunity._.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n SeriesPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n SeriesPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$1a([\n agGridCommunity.RefSelector('seriesGroup')\n ], SeriesPanel.prototype, \"seriesGroup\", void 0);\n __decorate$1a([\n agGridCommunity.Autowired('chartTranslationService')\n ], SeriesPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$1a([\n agGridCommunity.PostConstruct\n ], SeriesPanel.prototype, \"init\", null);\n return SeriesPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction getMaxValue(currentValue, defaultMaxValue) {\n return Math.max(currentValue, defaultMaxValue);\n}\nvar FormatPanel = /** @class */ (function (_super) {\n __extends$2k(FormatPanel, _super);\n function FormatPanel(chartController, chartOptionsService) {\n var _this = _super.call(this, FormatPanel.TEMPLATE) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.panels = [];\n return _this;\n }\n FormatPanel.prototype.init = function () {\n this.createPanels();\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, this.createPanels.bind(this));\n };\n FormatPanel.prototype.createPanels = function () {\n var chartType = this.chartController.getChartType();\n var isGrouping = this.chartController.isGrouping();\n if (chartType === this.chartType && isGrouping === this.isGrouping) {\n // existing panels can be re-used\n return;\n }\n this.destroyPanels();\n this.addComponent(new ChartPanel(this.chartOptionsService));\n this.addComponent(new LegendPanel(this.chartOptionsService));\n switch (chartType) {\n case 'groupedColumn':\n case 'stackedColumn':\n case 'normalizedColumn':\n this.addComponent(new AxisPanel(this.chartController, this.chartOptionsService));\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService, 'column'));\n this.addComponent(new NavigatorPanel(this.chartOptionsService));\n break;\n case 'groupedBar':\n case 'stackedBar':\n case 'normalizedBar':\n this.addComponent(new AxisPanel(this.chartController, this.chartOptionsService));\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService, 'bar'));\n this.addComponent(new NavigatorPanel(this.chartOptionsService));\n break;\n case 'pie':\n case 'doughnut':\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService, 'pie'));\n break;\n case 'line':\n this.addComponent(new AxisPanel(this.chartController, this.chartOptionsService));\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService, 'line'));\n this.addComponent(new NavigatorPanel(this.chartOptionsService));\n break;\n case 'scatter':\n case 'bubble':\n this.addComponent(new AxisPanel(this.chartController, this.chartOptionsService));\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService, 'scatter'));\n this.addComponent(new NavigatorPanel(this.chartOptionsService));\n break;\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n this.addComponent(new AxisPanel(this.chartController, this.chartOptionsService));\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService, 'area'));\n this.addComponent(new NavigatorPanel(this.chartOptionsService));\n break;\n case 'histogram':\n this.addComponent(new AxisPanel(this.chartController, this.chartOptionsService));\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService, 'histogram'));\n this.addComponent(new NavigatorPanel(this.chartOptionsService));\n break;\n case 'columnLineCombo':\n case 'areaColumnCombo':\n case 'customCombo':\n this.addComponent(new AxisPanel(this.chartController, this.chartOptionsService));\n // there is no single series type supplied for combo charts, it is inferred by the Series Panel\n this.addComponent(new SeriesPanel(this.chartController, this.chartOptionsService));\n this.addComponent(new NavigatorPanel(this.chartOptionsService));\n break;\n default:\n // warn vanilla javascript users when they supply invalid chart type\n console.warn(\"AG Grid: ChartFormattingPanel - unexpected chart type index: \" + chartType + \" supplied\");\n }\n this.chartType = chartType;\n this.isGrouping = isGrouping;\n };\n FormatPanel.prototype.addComponent = function (component) {\n this.createBean(component);\n this.panels.push(component);\n component.addCssClass('ag-chart-format-section');\n this.getGui().appendChild(component.getGui());\n };\n FormatPanel.prototype.destroyPanels = function () {\n var _this = this;\n this.panels.forEach(function (panel) {\n agGridCommunity._.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n FormatPanel.prototype.destroy = function () {\n this.destroyPanels();\n _super.prototype.destroy.call(this);\n };\n FormatPanel.TEMPLATE = \"
\";\n __decorate$1b([\n agGridCommunity.PostConstruct\n ], FormatPanel.prototype, \"init\", null);\n return FormatPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MiniChart = /** @class */ (function (_super) {\n __extends$2l(MiniChart, _super);\n function MiniChart(container, tooltipName) {\n var _this = _super.call(this) || this;\n _this.size = 58;\n _this.padding = 5;\n _this.root = new Group$1();\n var scene = new Scene$1(window.document, _this.size, _this.size);\n scene.canvas.element.classList.add('ag-chart-mini-thumbnail-canvas');\n scene.root = _this.root;\n scene.container = container;\n _this.scene = scene;\n _this.tooltipName = tooltipName;\n return _this;\n }\n MiniChart.prototype.init = function () {\n this.scene.canvas.element.title = this.chartTranslationService.translate(this.tooltipName);\n };\n __decorate$1c([\n agGridCommunity.Autowired('chartTranslationService')\n ], MiniChart.prototype, \"chartTranslationService\", void 0);\n __decorate$1c([\n agGridCommunity.PostConstruct\n ], MiniChart.prototype, \"init\", null);\n return MiniChart;\n}(agGridCommunity.Component));\n\nvar __extends$2m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MiniChartWithAxes = /** @class */ (function (_super) {\n __extends$2m(MiniChartWithAxes, _super);\n function MiniChartWithAxes(container, tooltipName) {\n var _this = _super.call(this, container, tooltipName) || this;\n _this.stroke = 'gray';\n _this.axisOvershoot = 3;\n return _this;\n }\n MiniChartWithAxes.prototype.addAxes = function () {\n var size = this.size;\n var padding = this.padding;\n var leftAxis = new Line$1();\n leftAxis.x1 = padding;\n leftAxis.y1 = padding;\n leftAxis.x2 = padding;\n leftAxis.y2 = size - padding + this.axisOvershoot;\n leftAxis.stroke = this.stroke;\n var bottomAxis = new Line$1();\n bottomAxis.x1 = padding - this.axisOvershoot + 1;\n bottomAxis.y1 = size - padding;\n bottomAxis.x2 = size - padding + 1;\n bottomAxis.y2 = size - padding;\n bottomAxis.stroke = this.stroke;\n var root = this.root;\n root.append(leftAxis);\n root.append(bottomAxis);\n };\n __decorate$1d([\n agGridCommunity.PostConstruct\n ], MiniChartWithAxes.prototype, \"addAxes\", null);\n return MiniChartWithAxes;\n}(MiniChart));\n\nfunction createColumnRects(params) {\n var stacked = params.stacked, size = params.size, padding = params.padding, xScalePadding = params.xScalePadding, xScaleDomain = params.xScaleDomain, yScaleDomain = params.yScaleDomain;\n var xScale = new BandScale$1();\n xScale.domain = xScaleDomain;\n xScale.range = [padding, size - padding];\n xScale.paddingInner = xScalePadding;\n xScale.paddingOuter = xScalePadding;\n var yScale = new LinearScale$1();\n yScale.domain = yScaleDomain;\n yScale.range = [size - padding, padding];\n var createBars = function (series, xScale, yScale) {\n return series.map(function (datum, i) {\n var top = yScale.convert(datum);\n var rect = new Rect();\n rect.x = xScale.convert(i);\n rect.y = top;\n rect.width = xScale.bandwidth;\n rect.height = yScale.convert(0) - top;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n };\n if (stacked) {\n return params.data.map(function (d) { return createBars(d, xScale, yScale); });\n }\n return createBars(params.data, xScale, yScale);\n}\nfunction createLinePaths(root, data, size, padding) {\n var xScale = new LinearScale$1();\n xScale.domain = [0, 4];\n xScale.range = [padding, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 10];\n yScale.range = [size - padding, padding];\n var lines = data.map(function (series) {\n var line = new Path$1();\n line.strokeWidth = 3;\n line.lineCap = \"round\";\n line.fill = undefined;\n series.forEach(function (datum, i) {\n line.path[i > 0 ? \"lineTo\" : \"moveTo\"](xScale.convert(i), yScale.convert(datum));\n });\n return line;\n });\n var clipRect = new ClipRect();\n clipRect.x = clipRect.y = padding;\n clipRect.width = clipRect.height = size - padding * 2;\n clipRect.append(lines);\n root.append(clipRect);\n return lines;\n}\n\nvar __extends$2n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniColumn = /** @class */ (function (_super) {\n __extends$2n(MiniColumn, _super);\n function MiniColumn(container, fills, strokes) {\n var _this = _super.call(this, container, \"groupedColumnTooltip\") || this;\n _this.columnData = [2, 3, 4];\n var _a = _this, root = _a.root, columnData = _a.columnData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1, 2],\n yScaleDomain: [0, 4],\n xScalePadding: 0.3\n });\n root.append(_this.columns);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniColumn.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (column, i) {\n column.fill = fills[i];\n column.stroke = strokes[i];\n });\n };\n MiniColumn.chartType = 'groupedColumn';\n return MiniColumn;\n}(MiniChartWithAxes));\n\nvar __extends$2o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedColumn = /** @class */ (function (_super) {\n __extends$2o(MiniStackedColumn, _super);\n function MiniStackedColumn(container, fills, strokes, data, yScaleDomain, tooltipName) {\n if (data === void 0) { data = MiniStackedColumn.data; }\n if (yScaleDomain === void 0) { yScaleDomain = [0, 16]; }\n if (tooltipName === void 0) { tooltipName = \"stackedColumnTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var _a = _this, root = _a.root, size = _a.size, padding = _a.padding;\n _this.stackedColumns = createColumnRects({\n stacked: true,\n root: root,\n data: data,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1, 2],\n yScaleDomain: yScaleDomain,\n xScalePadding: 0.3,\n });\n root.append([].concat.apply([], _this.stackedColumns));\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniStackedColumn.prototype.updateColors = function (fills, strokes) {\n this.stackedColumns.forEach(function (series, i) {\n return series.forEach(function (column) {\n column.fill = fills[i];\n column.stroke = strokes[i];\n });\n });\n };\n MiniStackedColumn.chartType = 'stackedColumn';\n MiniStackedColumn.data = [\n [8, 12, 16],\n [6, 9, 12],\n [2, 3, 4]\n ];\n return MiniStackedColumn;\n}(MiniChartWithAxes));\n\nvar __extends$2p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedColumn = /** @class */ (function (_super) {\n __extends$2p(MiniNormalizedColumn, _super);\n function MiniNormalizedColumn(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, MiniNormalizedColumn.data, [0, 10], \"normalizedColumnTooltip\") || this;\n }\n MiniNormalizedColumn.chartType = 'normalizedColumn';\n MiniNormalizedColumn.data = [\n [10, 10, 10],\n [6, 7, 8],\n [2, 4, 6]\n ];\n return MiniNormalizedColumn;\n}(MiniStackedColumn));\n\nvar __extends$2q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniBar = /** @class */ (function (_super) {\n __extends$2q(MiniBar, _super);\n function MiniBar(container, fills, strokes) {\n var _this = _super.call(this, container, \"groupedBarTooltip\") || this;\n var padding = _this.padding;\n var size = _this.size;\n var data = [2, 3, 4];\n var yScale = new BandScale$1();\n yScale.domain = [0, 1, 2];\n yScale.range = [padding, size - padding];\n yScale.paddingInner = 0.3;\n yScale.paddingOuter = 0.3;\n var xScale = new LinearScale$1();\n xScale.domain = [0, 4];\n xScale.range = [size - padding, padding];\n var bottom = xScale.convert(0);\n var height = yScale.bandwidth;\n _this.bars = data.map(function (datum, i) {\n var rect = new Rect();\n rect.x = padding;\n rect.y = yScale.convert(i);\n rect.width = bottom - xScale.convert(datum);\n rect.height = height;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.bars);\n return _this;\n }\n MiniBar.prototype.updateColors = function (fills, strokes) {\n this.bars.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n };\n MiniBar.chartType = 'groupedBar';\n return MiniBar;\n}(MiniChartWithAxes));\n\nvar __extends$2r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedBar = /** @class */ (function (_super) {\n __extends$2r(MiniStackedBar, _super);\n function MiniStackedBar(container, fills, strokes, data, xScaleDomain, tooltipName) {\n if (data === void 0) { data = MiniStackedBar.data; }\n if (xScaleDomain === void 0) { xScaleDomain = [0, 16]; }\n if (tooltipName === void 0) { tooltipName = \"stackedBarTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var size = _this.size;\n var padding = _this.padding;\n var yScale = new BandScale$1();\n yScale.domain = [0, 1, 2];\n yScale.range = [padding, size - padding];\n yScale.paddingInner = 0.3;\n yScale.paddingOuter = 0.3;\n var xScale = new LinearScale$1();\n xScale.domain = xScaleDomain;\n xScale.range = [size - padding, padding];\n var bottom = xScale.convert(0);\n var height = yScale.bandwidth;\n _this.bars = data.map(function (series) {\n return series.map(function (datum, i) {\n var rect = new Rect();\n rect.x = padding;\n rect.y = yScale.convert(i);\n rect.width = bottom - xScale.convert(datum);\n rect.height = height;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n });\n _this.updateColors(fills, strokes);\n _this.root.append([].concat.apply([], _this.bars));\n return _this;\n }\n MiniStackedBar.prototype.updateColors = function (fills, strokes) {\n this.bars.forEach(function (series, i) {\n return series.forEach(function (bar) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n });\n };\n MiniStackedBar.chartType = 'stackedBar';\n MiniStackedBar.data = [\n [8, 12, 16],\n [6, 9, 12],\n [2, 3, 4]\n ];\n return MiniStackedBar;\n}(MiniChartWithAxes));\n\nvar __extends$2s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedBar = /** @class */ (function (_super) {\n __extends$2s(MiniNormalizedBar, _super);\n function MiniNormalizedBar(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, MiniNormalizedBar.data, [0, 10], \"normalizedBarTooltip\") || this;\n }\n MiniNormalizedBar.chartType = 'normalizedBar';\n MiniNormalizedBar.data = [\n [10, 10, 10],\n [6, 7, 8],\n [2, 4, 6]\n ];\n return MiniNormalizedBar;\n}(MiniStackedBar));\n\nvar __extends$2t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$H = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniDoughnut = /** @class */ (function (_super) {\n __extends$2t(MiniDoughnut, _super);\n function MiniDoughnut(container, fills, strokes, centerRadiusScaler, tooltipName) {\n if (centerRadiusScaler === void 0) { centerRadiusScaler = 0.6; }\n if (tooltipName === void 0) { tooltipName = \"doughnutTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var radius = (_this.size - _this.padding * 2) / 2;\n var center = radius + _this.padding;\n var angles = [\n [toRadians(-90), toRadians(30)],\n [toRadians(30), toRadians(120)],\n [toRadians(120), toRadians(180)],\n [toRadians(180), toRadians(210)],\n [toRadians(210), toRadians(240)],\n [toRadians(240), toRadians(270)]\n ];\n _this.sectors = angles.map(function (_a) {\n var _b = __read$H(_a, 2), startAngle = _b[0], endAngle = _b[1];\n var sector = new Sector();\n sector.centerX = center;\n sector.centerY = center;\n sector.innerRadius = radius * centerRadiusScaler;\n sector.outerRadius = radius;\n sector.startAngle = startAngle;\n sector.endAngle = endAngle;\n sector.stroke = undefined;\n sector.strokeWidth = 1;\n return sector;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.sectors);\n return _this;\n }\n MiniDoughnut.prototype.updateColors = function (fills, strokes) {\n this.sectors.forEach(function (sector, i) {\n sector.fill = fills[i % fills.length];\n sector.stroke = strokes[i % strokes.length];\n });\n };\n MiniDoughnut.chartType = 'doughnut';\n return MiniDoughnut;\n}(MiniChart));\n\nvar __extends$2u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniPie = /** @class */ (function (_super) {\n __extends$2u(MiniPie, _super);\n function MiniPie(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, 0, \"pieTooltip\") || this;\n }\n MiniPie.chartType = 'pie';\n return MiniPie;\n}(MiniDoughnut));\n\nvar __extends$2v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniLine = /** @class */ (function (_super) {\n __extends$2v(MiniLine, _super);\n function MiniLine(container, fills, strokes) {\n var _this = _super.call(this, container, \"lineTooltip\") || this;\n _this.data = [\n [9, 7, 8, 5, 6],\n [5, 6, 3, 4, 1],\n [1, 3, 4, 8, 7]\n ];\n _this.lines = createLinePaths(_this.root, _this.data, _this.size, _this.padding);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniLine.prototype.updateColors = function (fills, strokes) {\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i];\n });\n };\n MiniLine.chartType = 'line';\n return MiniLine;\n}(MiniChartWithAxes));\n\nvar __extends$2w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$I = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniScatter = /** @class */ (function (_super) {\n __extends$2w(MiniScatter, _super);\n function MiniScatter(container, fills, strokes) {\n var _this = _super.call(this, container, \"scatterTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n // [x, y] pairs\n var data = [\n [[0.3, 3], [1.1, 0.9], [2, 0.4], [3.4, 2.4]],\n [[0, 0.3], [1, 2], [2.4, 1.4], [3, 0]]\n ];\n var xScale = new LinearScale$1();\n xScale.domain = [-0.5, 4];\n xScale.range = [padding * 2, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [-0.5, 3.5];\n yScale.range = [size - padding, padding];\n var points = [];\n data.forEach(function (series) {\n series.forEach(function (_a) {\n var _b = __read$I(_a, 2), x = _b[0], y = _b[1];\n var arc = new Arc();\n arc.strokeWidth = 1;\n arc.centerX = xScale.convert(x);\n arc.centerY = yScale.convert(y);\n arc.radiusX = arc.radiusY = 2.5;\n points.push(arc);\n });\n });\n _this.points = points;\n _this.updateColors(fills, strokes);\n var clipRect = new ClipRect();\n clipRect.x = clipRect.y = padding;\n clipRect.width = clipRect.height = size - padding * 2;\n clipRect.append(_this.points);\n _this.root.append(clipRect);\n return _this;\n }\n MiniScatter.prototype.updateColors = function (fills, strokes) {\n this.points.forEach(function (line, i) {\n line.stroke = strokes[i % strokes.length];\n line.fill = fills[i % fills.length];\n });\n };\n MiniScatter.chartType = 'scatter';\n return MiniScatter;\n}(MiniChartWithAxes));\n\nvar __extends$2x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$J = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniBubble = /** @class */ (function (_super) {\n __extends$2x(MiniBubble, _super);\n function MiniBubble(container, fills, strokes) {\n var _this = _super.call(this, container, \"bubbleTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n // [x, y, radius] triples\n var data = [\n [[0.1, 0.3, 5], [0.5, 0.4, 7], [0.2, 0.8, 7]], [[0.8, 0.7, 5], [0.7, 0.3, 9]]\n ];\n var xScale = new LinearScale$1();\n xScale.domain = [0, 1];\n xScale.range = [padding * 2, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 1];\n yScale.range = [size - padding, padding];\n var points = [];\n data.forEach(function (series) {\n series.forEach(function (_a) {\n var _b = __read$J(_a, 3), x = _b[0], y = _b[1], radius = _b[2];\n var arc = new Arc();\n arc.strokeWidth = 1;\n arc.centerX = xScale.convert(x);\n arc.centerY = yScale.convert(y);\n arc.radiusX = arc.radiusY = radius;\n arc.fillOpacity = 0.7;\n points.push(arc);\n });\n });\n _this.points = points;\n _this.updateColors(fills, strokes);\n var clipRect = new ClipRect();\n clipRect.x = padding;\n clipRect.y = padding;\n clipRect.width = size - padding * 2;\n clipRect.height = size - padding * 2;\n clipRect.append(_this.points);\n _this.root.append(clipRect);\n return _this;\n }\n MiniBubble.prototype.updateColors = function (fills, strokes) {\n this.points.forEach(function (line, i) {\n line.stroke = strokes[i % strokes.length];\n line.fill = fills[i % fills.length];\n });\n };\n MiniBubble.chartType = 'bubble';\n return MiniBubble;\n}(MiniChartWithAxes));\n\nvar __extends$2y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniArea = /** @class */ (function (_super) {\n __extends$2y(MiniArea, _super);\n function MiniArea(container, fills, strokes, data) {\n if (data === void 0) { data = MiniArea.data; }\n var _this = _super.call(this, container, \"groupedAreaTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n var xScale = new BandScale$1();\n xScale.domain = [0, 1, 2];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n xScale.range = [padding + 0.5, size - padding - 0.5];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 6];\n yScale.range = [size - padding + 0.5, padding];\n var xCount = data.length;\n var last = xCount * 2 - 1;\n var pathData = [];\n var bottomY = yScale.convert(0);\n data.forEach(function (datum, i) {\n var x = xScale.convert(i);\n datum.forEach(function (yDatum, j) {\n var y = yScale.convert(yDatum);\n var points = pathData[j] || (pathData[j] = []);\n points[i] = {\n x: x,\n y: y\n };\n points[last - i] = {\n x: x,\n y: bottomY\n };\n });\n });\n _this.areas = pathData.reverse().map(function (points) {\n var area = new Path$1();\n area.strokeWidth = 1;\n area.fillOpacity = 0.7;\n var path = area.path;\n path.clear();\n points.forEach(function (point, i) { return path[i > 0 ? \"lineTo\" : \"moveTo\"](point.x, point.y); });\n path.closePath();\n return area;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.areas);\n return _this;\n }\n MiniArea.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n };\n MiniArea.chartType = 'area';\n MiniArea.data = [\n [1, 3, 5],\n [2, 6, 4],\n [5, 3, 1]\n ];\n return MiniArea;\n}(MiniChartWithAxes));\n\nvar __extends$2z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedArea = /** @class */ (function (_super) {\n __extends$2z(MiniStackedArea, _super);\n function MiniStackedArea(container, fills, strokes, data, tooltipName) {\n if (data === void 0) { data = MiniStackedArea.data; }\n if (tooltipName === void 0) { tooltipName = \"stackedAreaTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var size = _this.size;\n var padding = _this.padding;\n var xScale = new BandScale$1();\n xScale.domain = [0, 1, 2];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n xScale.range = [padding + 0.5, size - padding - 0.5];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 16];\n yScale.range = [size - padding + 0.5, padding + 0.5];\n var xCount = data.length;\n var last = xCount * 2 - 1;\n var pathData = [];\n data.forEach(function (datum, i) {\n var x = xScale.convert(i);\n var total = 0;\n datum.forEach(function (yDatum, j) {\n var y = yScale.convert(total + yDatum);\n var points = pathData[j] || (pathData[j] = []);\n points[i] = {\n x: x,\n y: y\n };\n points[last - i] = {\n x: x,\n y: yScale.convert(total) // bottom y\n };\n total += yDatum;\n });\n });\n _this.areas = pathData.map(function (points) {\n var area = new Path$1();\n area.strokeWidth = 1;\n var path = area.path;\n path.clear();\n points.forEach(function (point, i) { return path[i > 0 ? \"lineTo\" : \"moveTo\"](point.x, point.y); });\n path.closePath();\n return area;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.areas);\n return _this;\n }\n MiniStackedArea.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n };\n MiniStackedArea.chartType = 'stackedArea';\n MiniStackedArea.data = [\n [2, 3, 2],\n [3, 6, 5],\n [6, 2, 2]\n ];\n return MiniStackedArea;\n}(MiniChartWithAxes));\n\nvar __extends$2A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedArea = /** @class */ (function (_super) {\n __extends$2A(MiniNormalizedArea, _super);\n function MiniNormalizedArea(container, fills, strokes, data) {\n if (data === void 0) { data = MiniNormalizedArea.data; }\n return _super.call(this, container, fills, strokes, data, \"normalizedAreaTooltip\") || this;\n }\n MiniNormalizedArea.chartType = 'normalizedArea';\n MiniNormalizedArea.data = MiniStackedArea.data.map(function (stack) {\n var sum = stack.reduce(function (p, c) { return p + c; }, 0);\n return stack.map(function (v) { return v / sum * 16; });\n });\n return MiniNormalizedArea;\n}(MiniStackedArea));\n\nvar __extends$2B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$K = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniHistogram = /** @class */ (function (_super) {\n __extends$2B(MiniHistogram, _super);\n function MiniHistogram(container, fills, strokes) {\n var _this = _super.call(this, container, \"histogramTooltip\") || this;\n var padding = _this.padding;\n var size = _this.size;\n // approx normal curve\n var data = [2, 5, 11, 13, 10, 6, 1];\n var xScale = new LinearScale$1();\n xScale.domain = [0, data.length];\n xScale.range = [padding, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, data.reduce(function (a, b) { return Math.max(a, b); }, 0)];\n yScale.range = [size - padding, padding];\n var bottom = yScale.convert(0);\n _this.bars = data.map(function (datum, i) {\n var top = yScale.convert(datum);\n var left = xScale.convert(i);\n var right = xScale.convert(i + 1);\n var rect = new Rect();\n rect.x = left;\n rect.y = top;\n rect.width = right - left;\n rect.height = bottom - top;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.bars);\n return _this;\n }\n MiniHistogram.prototype.updateColors = function (_a, _b) {\n var _c = __read$K(_a, 1), fill = _c[0];\n var _d = __read$K(_b, 1), stroke = _d[0];\n this.bars.forEach(function (bar) {\n bar.fill = fill;\n bar.stroke = stroke;\n });\n };\n MiniHistogram.chartType = 'histogram';\n return MiniHistogram;\n}(MiniChartWithAxes));\n\nvar __extends$2C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniColumnLineCombo = /** @class */ (function (_super) {\n __extends$2C(MiniColumnLineCombo, _super);\n function MiniColumnLineCombo(container, fills, strokes) {\n var _this = _super.call(this, container, \"columnLineComboTooltip\") || this;\n _this.columnData = [3, 4];\n _this.lineData = [\n [5, 4, 6, 5, 4]\n ];\n var _a = _this, root = _a.root, columnData = _a.columnData, lineData = _a.lineData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 4],\n xScalePadding: 0.5\n });\n root.append(_this.columns);\n _this.lines = createLinePaths(root, lineData, size, padding);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniColumnLineCombo.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i + 2];\n });\n };\n MiniColumnLineCombo.chartType = 'columnLineCombo';\n return MiniColumnLineCombo;\n}(MiniChartWithAxes));\n\nvar __extends$2D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniAreaColumnCombo = /** @class */ (function (_super) {\n __extends$2D(MiniAreaColumnCombo, _super);\n function MiniAreaColumnCombo(container, fills, strokes) {\n var _this = _super.call(this, container, \"areaColumnComboTooltip\") || this;\n _this.columnData = [3, 4.5];\n _this.areaData = [\n [5, 4, 6, 5, 4],\n ];\n var _a = _this, root = _a.root, columnData = _a.columnData, areaData = _a.areaData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 6],\n xScalePadding: 0.5,\n });\n // scale for area series\n var xScale = new BandScale$1();\n xScale.range = [padding, size - padding];\n xScale.domain = [0, 1, 2, 3, 4];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n var yScale = new LinearScale$1();\n yScale.range = [size - padding, padding];\n yScale.domain = [0, 6];\n var pathData = [];\n var yZero = yScale.convert(0);\n var firstX = xScale.convert(0);\n areaData.forEach(function (series, i) {\n var points = pathData[i] || (pathData[i] = []);\n series.forEach(function (data, j) {\n var yDatum = data;\n var xDatum = j;\n var x = xScale.convert(xDatum);\n var y = yScale.convert(yDatum);\n points[j] = { x: x, y: y };\n });\n var lastX = xScale.convert(series.length - 1);\n pathData[i].push({\n x: lastX,\n y: yZero\n }, {\n x: firstX,\n y: yZero\n });\n });\n _this.areas = pathData.map(function (points) {\n var area = new Path$1();\n area.strokeWidth = 1;\n area.fillOpacity = 0.8;\n var path = area.path;\n points.forEach(function (point, i) { return path[i > 0 ? 'lineTo' : 'moveTo'](point.x, point.y); });\n return area;\n });\n root.append(_this.areas);\n root.append([].concat.apply([], _this.columns));\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniAreaColumnCombo.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i + 1];\n bar.stroke = strokes[i + 1];\n });\n };\n MiniAreaColumnCombo.chartType = 'areaColumnCombo';\n return MiniAreaColumnCombo;\n}(MiniChartWithAxes));\n\nvar __extends$2E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniCustomCombo = /** @class */ (function (_super) {\n __extends$2E(MiniCustomCombo, _super);\n function MiniCustomCombo(container, fills, strokes) {\n var _this = _super.call(this, container, \"customComboTooltip\") || this;\n _this.columnData = [3, 4];\n _this.lineData = [\n [5, 4, 6, 5, 4]\n ];\n var _a = _this, root = _a.root, columnData = _a.columnData, lineData = _a.lineData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 4],\n xScalePadding: 0.5\n });\n root.append(_this.columns);\n _this.lines = createLinePaths(root, lineData, size, padding);\n var axisStroke = 'grey';\n var axisOvershoot = 3;\n var leftAxis = new Line$1();\n leftAxis.x1 = padding;\n leftAxis.y1 = padding;\n leftAxis.x2 = padding;\n leftAxis.y2 = size - padding + axisOvershoot;\n leftAxis.stroke = axisStroke;\n var bottomAxis = new Line$1();\n bottomAxis.x1 = padding - axisOvershoot + 1;\n bottomAxis.y1 = size - padding;\n bottomAxis.x2 = size - padding + 1;\n bottomAxis.y2 = size - padding;\n bottomAxis.stroke = axisStroke;\n var penIcon = new Path$1();\n penIcon.svgPath = 'M25.76,43.46l5.51,5.07M49.86,22a3.26,3.26,0,0,0-3-.59,6.78,6.78,0,0,0-3.35,2.14l-18,20.25-.08.09-2.42,8-.18.57,8.19-3.6,18-20.34a6.83,6.83,0,0,0,1.73-3.59A3.29,3.29,0,0,0,49.86,22Zm-8.1,3.5,5.58,5m-6.6-3.85,5.51,5.06';\n penIcon.fill = 'whitesmoke';\n penIcon.stroke = 'darkslategrey';\n penIcon.strokeWidth = 1;\n root.append([bottomAxis, leftAxis, penIcon]);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniCustomCombo.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i + 2];\n });\n };\n MiniCustomCombo.chartType = 'customCombo';\n return MiniCustomCombo;\n}(MiniChart));\n\nvar __extends$2F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MiniChartsContainer = /** @class */ (function (_super) {\n __extends$2F(MiniChartsContainer, _super);\n function MiniChartsContainer(chartController, fills, strokes) {\n var _this = _super.call(this, MiniChartsContainer.TEMPLATE) || this;\n _this.wrappers = {};\n _this.chartGroups = {\n columnGroup: [\n MiniColumn,\n MiniStackedColumn,\n MiniNormalizedColumn\n ],\n barGroup: [\n MiniBar,\n MiniStackedBar,\n MiniNormalizedBar\n ],\n pieGroup: [\n MiniPie,\n MiniDoughnut\n ],\n lineGroup: [\n MiniLine\n ],\n scatterGroup: [\n MiniScatter,\n MiniBubble\n ],\n areaGroup: [\n MiniArea,\n MiniStackedArea,\n MiniNormalizedArea\n ],\n histogramGroup: [\n MiniHistogram\n ],\n combinationGroup: [\n MiniColumnLineCombo,\n MiniAreaColumnCombo,\n MiniCustomCombo\n ]\n };\n _this.chartController = chartController;\n _this.fills = fills;\n _this.strokes = strokes;\n return _this;\n }\n MiniChartsContainer.prototype.init = function () {\n var _this = this;\n // hide MiniCustomCombo if no custom combo exists\n if (!this.chartController.customComboExists()) {\n this.chartGroups.combinationGroup = this.chartGroups.combinationGroup.filter(function (miniChart) { return miniChart !== MiniCustomCombo; });\n }\n var eGui = this.getGui();\n Object.keys(this.chartGroups).forEach(function (group) {\n var chartGroup = _this.chartGroups[group];\n var groupComponent = _this.createBean(new agGridCommunity.AgGroupComponent({\n title: _this.chartTranslationService.translate(group),\n suppressEnabledCheckbox: true,\n enabled: true,\n suppressOpenCloseIcons: true,\n cssIdentifier: 'charts-settings',\n direction: 'horizontal'\n }));\n chartGroup.forEach(function (MiniClass) {\n var miniWrapper = document.createElement('div');\n miniWrapper.classList.add('ag-chart-mini-thumbnail');\n _this.addManagedListener(miniWrapper, 'click', function () {\n _this.chartController.setChartType(MiniClass.chartType);\n _this.updateSelectedMiniChart();\n });\n _this.wrappers[MiniClass.chartType] = miniWrapper;\n _this.createBean(new MiniClass(miniWrapper, _this.fills, _this.strokes));\n groupComponent.addItem(miniWrapper);\n });\n eGui.appendChild(groupComponent.getGui());\n });\n this.updateSelectedMiniChart();\n };\n MiniChartsContainer.prototype.updateSelectedMiniChart = function () {\n var selectedChartType = this.chartController.getChartType();\n for (var miniChartType in this.wrappers) {\n var miniChart = this.wrappers[miniChartType];\n var selected = miniChartType === selectedChartType;\n miniChart.classList.toggle('ag-selected', selected);\n }\n };\n MiniChartsContainer.TEMPLATE = \"
\";\n __decorate$1e([\n agGridCommunity.Autowired('chartTranslationService')\n ], MiniChartsContainer.prototype, \"chartTranslationService\", void 0);\n __decorate$1e([\n agGridCommunity.PostConstruct\n ], MiniChartsContainer.prototype, \"init\", null);\n return MiniChartsContainer;\n}(agGridCommunity.Component));\n\nvar __extends$2G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartSettingsPanel = /** @class */ (function (_super) {\n __extends$2G(ChartSettingsPanel, _super);\n function ChartSettingsPanel(chartController) {\n var _this = _super.call(this, ChartSettingsPanel.TEMPLATE) || this;\n _this.miniCharts = [];\n _this.cardItems = [];\n _this.activePaletteIndex = 0;\n _this.palettes = [];\n _this.themes = [];\n _this.chartController = chartController;\n return _this;\n }\n ChartSettingsPanel.prototype.postConstruct = function () {\n var _this = this;\n this.resetPalettes();\n this.ePrevBtn.insertAdjacentElement('afterbegin', agGridCommunity._.createIconNoSpan('previous', this.gridOptionsWrapper));\n this.eNextBtn.insertAdjacentElement('afterbegin', agGridCommunity._.createIconNoSpan('next', this.gridOptionsWrapper));\n this.addManagedListener(this.ePrevBtn, 'click', function () { return _this.setActivePalette(_this.getPrev(), 'left'); });\n this.addManagedListener(this.eNextBtn, 'click', function () { return _this.setActivePalette(_this.getNext(), 'right'); });\n // change the selected chart when a combo chart is modified via the data panel, i.e. the custom combo should be selected\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_TYPE_CHANGED, function () { return _this.resetPalettes(true); });\n this.scrollSelectedIntoView();\n };\n ChartSettingsPanel.prototype.scrollSelectedIntoView = function () {\n var _this = this;\n // the panel is not immediately visible due to the slide animation, so we add a\n // setTimeout to wait until the panel animation is over and is able to scroll\n setTimeout(function () {\n var currentPallet = _this.miniCharts.find(function (pallet) { return !pallet.getGui().classList.contains('ag-hidden'); });\n var currentChart = currentPallet.getGui().querySelector('.ag-selected');\n if (currentChart) {\n currentChart.scrollIntoView({ block: 'nearest' });\n }\n }, 250);\n };\n ChartSettingsPanel.prototype.resetPalettes = function (forceReset) {\n var _this = this;\n var palettes = this.chartController.getPalettes();\n if ((agGridCommunity._.shallowCompare(palettes, this.palettes) && !forceReset) || this.isAnimating) {\n return;\n }\n this.palettes = palettes;\n this.themes = this.chartController.getThemes();\n this.activePaletteIndex = this.themes.findIndex(function (name) { return name === _this.chartController.getChartThemeName(); });\n this.cardItems = [];\n agGridCommunity._.clearElement(this.eCardSelector);\n this.destroyMiniCharts();\n this.palettes.forEach(function (palette, index) {\n var isActivePalette = _this.activePaletteIndex === index;\n var fills = palette.fills, strokes = palette.strokes;\n var miniChartsContainer = _this.createBean(new MiniChartsContainer(_this.chartController, fills, strokes));\n _this.miniCharts.push(miniChartsContainer);\n _this.eMiniChartsContainer.appendChild(miniChartsContainer.getGui());\n _this.addCardLink(index);\n if (isActivePalette) {\n miniChartsContainer.updateSelectedMiniChart();\n }\n else {\n miniChartsContainer.addCssClass('ag-hidden');\n }\n });\n this.eNavBar.classList.toggle('ag-hidden', this.palettes.length <= 1);\n agGridCommunity._.radioCssClass(this.cardItems[this.activePaletteIndex], 'ag-selected', 'ag-not-selected');\n };\n ChartSettingsPanel.prototype.addCardLink = function (index) {\n var _this = this;\n var link = document.createElement('div');\n link.classList.add('ag-chart-settings-card-item');\n this.addManagedListener(link, 'click', function () {\n _this.setActivePalette(index, index < _this.activePaletteIndex ? 'left' : 'right');\n });\n this.eCardSelector.appendChild(link);\n this.cardItems.push(link);\n };\n ChartSettingsPanel.prototype.getPrev = function () {\n var prev = this.activePaletteIndex - 1;\n if (prev < 0) {\n prev = this.palettes.length - 1;\n }\n return prev;\n };\n ChartSettingsPanel.prototype.getNext = function () {\n var next = this.activePaletteIndex + 1;\n if (next >= this.palettes.length) {\n next = 0;\n }\n return next;\n };\n ChartSettingsPanel.prototype.setActivePalette = function (index, animationDirection) {\n var _this = this;\n if (this.isAnimating || this.activePaletteIndex === index) {\n return;\n }\n agGridCommunity._.radioCssClass(this.cardItems[index], 'ag-selected', 'ag-not-selected');\n var currentPalette = this.miniCharts[this.activePaletteIndex];\n var currentGui = currentPalette.getGui();\n var futurePalette = this.miniCharts[index];\n var nextGui = futurePalette.getGui();\n currentPalette.updateSelectedMiniChart();\n futurePalette.updateSelectedMiniChart();\n var multiplier = animationDirection === 'left' ? -1 : 1;\n var final = nextGui.style.left = (agGridCommunity._.getAbsoluteWidth(this.getGui()) * multiplier) + \"px\";\n this.activePaletteIndex = index;\n this.isAnimating = true;\n var animatingClass = 'ag-animating';\n futurePalette.removeCssClass('ag-hidden');\n currentPalette.addCssClass(animatingClass);\n futurePalette.addCssClass(animatingClass);\n this.chartController.setChartThemeName(this.themes[index]);\n window.setTimeout(function () {\n currentGui.style.left = -parseFloat(final) + \"px\";\n nextGui.style.left = '0px';\n }, 0);\n window.setTimeout(function () {\n _this.isAnimating = false;\n currentPalette.removeCssClass(animatingClass);\n futurePalette.removeCssClass(animatingClass);\n currentPalette.addCssClass('ag-hidden');\n }, 300);\n };\n ChartSettingsPanel.prototype.destroyMiniCharts = function () {\n agGridCommunity._.clearElement(this.eMiniChartsContainer);\n this.miniCharts = this.destroyBeans(this.miniCharts);\n };\n ChartSettingsPanel.prototype.destroy = function () {\n this.destroyMiniCharts();\n _super.prototype.destroy.call(this);\n };\n ChartSettingsPanel.TEMPLATE = \"
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\";\n __decorate$1f([\n agGridCommunity.Autowired('resizeObserverService')\n ], ChartSettingsPanel.prototype, \"resizeObserverService\", void 0);\n __decorate$1f([\n agGridCommunity.RefSelector('eMiniChartsContainer')\n ], ChartSettingsPanel.prototype, \"eMiniChartsContainer\", void 0);\n __decorate$1f([\n agGridCommunity.RefSelector('eNavBar')\n ], ChartSettingsPanel.prototype, \"eNavBar\", void 0);\n __decorate$1f([\n agGridCommunity.RefSelector('eCardSelector')\n ], ChartSettingsPanel.prototype, \"eCardSelector\", void 0);\n __decorate$1f([\n agGridCommunity.RefSelector('ePrevBtn')\n ], ChartSettingsPanel.prototype, \"ePrevBtn\", void 0);\n __decorate$1f([\n agGridCommunity.RefSelector('eNextBtn')\n ], ChartSettingsPanel.prototype, \"eNextBtn\", void 0);\n __decorate$1f([\n agGridCommunity.PostConstruct\n ], ChartSettingsPanel.prototype, \"postConstruct\", null);\n return ChartSettingsPanel;\n}(agGridCommunity.Component));\n\nvar __extends$2H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabbedChartMenu = /** @class */ (function (_super) {\n __extends$2H(TabbedChartMenu, _super);\n function TabbedChartMenu(params) {\n var _this = _super.call(this) || this;\n _this.tabs = [];\n var controller = params.controller, panels = params.panels, chartOptionsService = params.chartOptionsService;\n _this.chartController = controller;\n _this.chartOptionsService = chartOptionsService;\n _this.panels = panels;\n return _this;\n }\n TabbedChartMenu.prototype.init = function () {\n var _this = this;\n this.panels.forEach(function (panel) {\n var panelType = panel.replace('chart', '').toLowerCase();\n var _a = _this.createTab(panel, panelType, _this.getPanelClass(panelType)), comp = _a.comp, tab = _a.tab;\n _this.tabs.push(tab);\n _this.addDestroyFunc(function () { return _this.destroyBean(comp); });\n });\n this.tabbedLayout = new agGridCommunity.TabbedLayout({\n items: this.tabs,\n cssClass: 'ag-chart-tabbed-menu',\n keepScrollPosition: true\n });\n this.getContext().createBean(this.tabbedLayout);\n };\n TabbedChartMenu.prototype.createTab = function (name, title, TabPanelClass) {\n var eWrapperDiv = document.createElement('div');\n eWrapperDiv.classList.add('ag-chart-tab', \"ag-chart-\" + title);\n var comp = new TabPanelClass(this.chartController, this.chartOptionsService);\n this.getContext().createBean(comp);\n eWrapperDiv.appendChild(comp.getGui());\n var titleEl = document.createElement('div');\n var translatedTitle = this.chartTranslationService.translate(title);\n titleEl.innerText = translatedTitle;\n return {\n comp: comp,\n tab: {\n title: titleEl,\n titleLabel: translatedTitle,\n bodyPromise: agGridCommunity.AgPromise.resolve(eWrapperDiv),\n getScrollableContainer: function () {\n var scrollableContainer = eWrapperDiv.querySelector('.ag-scrollable-container');\n return (scrollableContainer || eWrapperDiv);\n },\n name: name\n }\n };\n };\n TabbedChartMenu.prototype.showTab = function (tab) {\n var tabItem = this.tabs[tab];\n this.tabbedLayout.showItem(tabItem);\n };\n TabbedChartMenu.prototype.getGui = function () {\n return this.tabbedLayout && this.tabbedLayout.getGui();\n };\n TabbedChartMenu.prototype.destroy = function () {\n if (this.parentComponent && this.parentComponent.isAlive()) {\n this.destroyBean(this.parentComponent);\n }\n _super.prototype.destroy.call(this);\n };\n TabbedChartMenu.prototype.getPanelClass = function (panelType) {\n switch (panelType) {\n case TabbedChartMenu.TAB_DATA:\n return ChartDataPanel;\n case TabbedChartMenu.TAB_FORMAT:\n return FormatPanel;\n default:\n return ChartSettingsPanel;\n }\n };\n TabbedChartMenu.TAB_DATA = 'data';\n TabbedChartMenu.TAB_FORMAT = 'format';\n __decorate$1g([\n agGridCommunity.Autowired('chartTranslationService')\n ], TabbedChartMenu.prototype, \"chartTranslationService\", void 0);\n __decorate$1g([\n agGridCommunity.PostConstruct\n ], TabbedChartMenu.prototype, \"init\", null);\n return TabbedChartMenu;\n}(agGridCommunity.Component));\n\nvar __extends$2I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$L = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar ChartMenu = /** @class */ (function (_super) {\n __extends$2I(ChartMenu, _super);\n function ChartMenu(eChartContainer, eMenuPanelContainer, chartController, chartOptionsService) {\n var _this = _super.call(this, ChartMenu.TEMPLATE) || this;\n _this.eChartContainer = eChartContainer;\n _this.eMenuPanelContainer = eMenuPanelContainer;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.buttons = {\n chartSettings: ['menu', function () { return _this.showMenu(\"chartSettings\"); }],\n chartData: ['menu', function () { return _this.showMenu(\"chartData\"); }],\n chartFormat: ['menu', function () { return _this.showMenu(\"chartFormat\"); }],\n chartLink: ['linked', function (e) { return _this.toggleDetached(e); }],\n chartUnlink: ['unlinked', function (e) { return _this.toggleDetached(e); }],\n chartDownload: ['save', function () { return _this.saveChart(); }]\n };\n _this.tabs = [];\n _this.menuVisible = false;\n return _this;\n }\n ChartMenu.prototype.postConstruct = function () {\n this.createButtons();\n this.refreshMenuClasses();\n // TODO requires a better solution as this causes the docs the 'jump' when pages are reloaded\n // this.addManagedListener(this.eventService, Events.EVENT_CHART_CREATED, (e: ChartCreated) => {\n // // creating settings panel ahead of time to prevent an undesirable 'jitter' when the canvas resizes\n // // caused as a result of scrollIntoView() when the selected chart type is scrolled into view\n // if (e.chartId === this.chartController.getChartId()) {\n // this.createMenuPanel(0);\n // }\n // });\n };\n ChartMenu.prototype.isVisible = function () {\n return this.menuVisible;\n };\n ChartMenu.prototype.getToolbarOptions = function () {\n var _this = this;\n var tabOptions = [\n 'chartSettings',\n 'chartData',\n 'chartFormat',\n this.chartController.isChartLinked() ? 'chartLink' : 'chartUnlink',\n 'chartDownload'\n ];\n var toolbarItemsFunc = this.gridOptionsWrapper.getChartToolbarItemsFunc();\n if (toolbarItemsFunc) {\n var params = {\n defaultItems: tabOptions\n };\n tabOptions = toolbarItemsFunc(params).filter(function (option) {\n if (!_this.buttons[option]) {\n console.warn(\"AG Grid: '\" + option + \" is not a valid Chart Toolbar Option\");\n return false;\n }\n return true;\n });\n }\n // pivot charts use the column tool panel instead of the data panel\n if (this.chartController.isPivotChart()) {\n tabOptions = tabOptions.filter(function (option) { return option !== 'chartData'; });\n }\n var ignoreOptions = ['chartUnlink', 'chartLink', 'chartDownload'];\n this.tabs = tabOptions.filter(function (option) { return ignoreOptions.indexOf(option) === -1; });\n return tabOptions.filter(function (value) {\n return ignoreOptions.indexOf(value) !== -1 ||\n (_this.tabs.length && value === _this.tabs[0]);\n });\n };\n ChartMenu.prototype.toggleDetached = function (e) {\n var target = e.target;\n var active = target.classList.contains('ag-icon-linked');\n target.classList.toggle('ag-icon-linked', !active);\n target.classList.toggle('ag-icon-unlinked', active);\n var tooltipKey = active ? 'chartUnlinkToolbarTooltip' : 'chartLinkToolbarTooltip';\n var tooltipTitle = this.chartTranslationService.translate(tooltipKey);\n if (tooltipTitle) {\n target.title = tooltipTitle;\n }\n this.chartController.detachChartRange();\n };\n ChartMenu.prototype.createButtons = function () {\n var _this = this;\n var chartToolbarOptions = this.getToolbarOptions();\n var gui = this.getGui();\n chartToolbarOptions.forEach(function (button) {\n var buttonConfig = _this.buttons[button];\n var _a = __read$L(buttonConfig, 2), iconName = _a[0], callback = _a[1];\n var buttonEl = agGridCommunity._.createIconNoSpan(iconName, _this.gridOptionsWrapper, undefined, true);\n buttonEl.classList.add('ag-chart-menu-icon');\n var tooltipTitle = _this.chartTranslationService.translate(button + 'ToolbarTooltip');\n if (tooltipTitle) {\n buttonEl.title = tooltipTitle;\n }\n _this.addManagedListener(buttonEl, 'click', callback);\n gui.appendChild(buttonEl);\n });\n };\n ChartMenu.prototype.saveChart = function () {\n var event = { type: ChartMenu.EVENT_DOWNLOAD_CHART };\n this.dispatchEvent(event);\n };\n ChartMenu.prototype.createMenuPanel = function (defaultTab) {\n var _this = this;\n var width = this.gridOptionsWrapper.chartMenuPanelWidth();\n var menuPanel = this.menuPanel = this.createBean(new agGridCommunity.AgPanel({\n minWidth: width,\n width: width,\n height: '100%',\n closable: true,\n hideTitleBar: true,\n cssIdentifier: 'chart-menu'\n }));\n menuPanel.setParentComponent(this);\n this.eMenuPanelContainer.appendChild(menuPanel.getGui());\n this.tabbedMenu = this.createBean(new TabbedChartMenu({\n controller: this.chartController,\n type: this.chartController.getChartType(),\n panels: this.tabs,\n chartOptionsService: this.chartOptionsService\n }));\n this.addManagedListener(menuPanel, agGridCommunity.Component.EVENT_DESTROYED, function () { return _this.destroyBean(_this.tabbedMenu); });\n return new agGridCommunity.AgPromise(function (res) {\n window.setTimeout(function () {\n menuPanel.setBodyComponent(_this.tabbedMenu);\n _this.tabbedMenu.showTab(defaultTab);\n _this.addManagedListener(_this.eChartContainer, 'click', function (event) {\n if (_this.getGui().contains(event.target)) {\n return;\n }\n if (_this.menuVisible) {\n _this.hideMenu();\n }\n });\n res(menuPanel);\n }, 100);\n });\n };\n ChartMenu.prototype.showContainer = function () {\n if (!this.menuPanel) {\n return;\n }\n this.menuVisible = true;\n this.showParent(this.menuPanel.getWidth());\n this.refreshMenuClasses();\n };\n ChartMenu.prototype.showMenu = function (tabName) {\n var tab = this.tabs.indexOf(tabName);\n if (!this.menuPanel) {\n this.createMenuPanel(tab).then(this.showContainer.bind(this));\n }\n else {\n this.showContainer();\n }\n };\n ChartMenu.prototype.hideMenu = function () {\n var _this = this;\n this.hideParent();\n window.setTimeout(function () {\n _this.menuVisible = false;\n _this.refreshMenuClasses();\n }, 500);\n };\n ChartMenu.prototype.refreshMenuClasses = function () {\n this.eChartContainer.classList.toggle('ag-chart-menu-visible', this.menuVisible);\n this.eChartContainer.classList.toggle('ag-chart-menu-hidden', !this.menuVisible);\n };\n ChartMenu.prototype.showParent = function (width) {\n this.eMenuPanelContainer.style.minWidth = width + \"px\";\n };\n ChartMenu.prototype.hideParent = function () {\n this.eMenuPanelContainer.style.minWidth = '0';\n };\n ChartMenu.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.menuPanel && this.menuPanel.isAlive()) {\n this.destroyBean(this.menuPanel);\n }\n };\n ChartMenu.EVENT_DOWNLOAD_CHART = \"downloadChart\";\n ChartMenu.TEMPLATE = \"
\";\n __decorate$1h([\n agGridCommunity.Autowired('chartTranslationService')\n ], ChartMenu.prototype, \"chartTranslationService\", void 0);\n __decorate$1h([\n agGridCommunity.PostConstruct\n ], ChartMenu.prototype, \"postConstruct\", null);\n return ChartMenu;\n}(agGridCommunity.Component));\n\nvar __extends$2J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$h = (undefined && undefined.__assign) || function () {\n __assign$h = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$h.apply(this, arguments);\n};\nvar __decorate$1i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TitleEdit = /** @class */ (function (_super) {\n __extends$2J(TitleEdit, _super);\n function TitleEdit(chartMenu) {\n var _this = _super.call(this, TitleEdit.TEMPLATE) || this;\n _this.chartMenu = chartMenu;\n return _this;\n }\n TitleEdit.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.getGui(), 'keypress', function (e) {\n if (e.key === 'Enter') {\n _this.endEditing();\n }\n });\n this.addManagedListener(this.getGui(), 'blur', this.endEditing.bind(this));\n };\n /* should be called when the containing component changes to a new chart proxy */\n TitleEdit.prototype.refreshTitle = function (chartController, chartOptionsService) {\n var _this = this;\n this.chartController = chartController;\n this.chartOptionsService = chartOptionsService;\n var chartProxy = this.chartController.getChartProxy();\n if (chartProxy) {\n for (var i = 0; i++; i < this.destroyableChartListeners.length) {\n this.destroyableChartListeners[i]();\n }\n this.destroyableChartListeners = [];\n }\n var chart = chartProxy.getChart();\n var canvas = chart.scene.canvas.element;\n var destroyDbleClickListener = this.addManagedListener(canvas, 'dblclick', function (event) {\n var title = chart.title;\n if (title && title.node.containsPoint(event.offsetX, event.offsetY)) {\n var bbox = title.node.computeBBox();\n var xy = title.node.inverseTransformPoint(bbox.x, bbox.y);\n _this.startEditing(__assign$h(__assign$h({}, bbox), xy));\n }\n });\n var wasInTitle = false;\n var destroyMouseMoveListener = this.addManagedListener(canvas, 'mousemove', function (event) {\n var title = chart.title;\n var inTitle = !!(title && title.enabled && title.node.containsPoint(event.offsetX, event.offsetY));\n if (wasInTitle !== inTitle) {\n canvas.style.cursor = inTitle ? 'pointer' : '';\n }\n wasInTitle = inTitle;\n });\n this.destroyableChartListeners = [\n destroyDbleClickListener,\n destroyMouseMoveListener\n ];\n };\n TitleEdit.prototype.startEditing = function (titleBBox) {\n if (this.chartMenu && this.chartMenu.isVisible()) {\n // currently we ignore requests to edit the chart title while the chart menu is showing\n // because the click to edit the chart will also close the chart menu, making the position\n // of the title change.\n return;\n }\n var minimumTargetInputWidth = 300;\n var maximumInputWidth = this.chartController.getChartProxy().getChart().width;\n var inputWidth = Math.max(Math.min(titleBBox.width + 20, maximumInputWidth), minimumTargetInputWidth);\n var inputElement = this.getGui();\n inputElement.classList.add('currently-editing');\n var inputStyle = inputElement.style;\n // match style of input to title that we're editing\n inputStyle.fontFamily = this.chartOptionsService.getChartOption('title.fontFamily');\n inputStyle.fontWeight = this.chartOptionsService.getChartOption('title.fontWeight');\n inputStyle.fontStyle = this.chartOptionsService.getChartOption('title.fontStyle');\n inputStyle.fontSize = this.chartOptionsService.getChartOption('title.fontSize') + 'px';\n inputStyle.color = this.chartOptionsService.getChartOption('title.color');\n // populate the input with the title, unless the title is the placeholder:\n var oldTitle = this.chartOptionsService.getChartOption('title.text');\n var inputValue = oldTitle === this.chartTranslationService.translate('titlePlaceholder') ? '' : oldTitle;\n inputElement.value = inputValue;\n var inputRect = inputElement.getBoundingClientRect();\n inputStyle.left = Math.round(titleBBox.x + titleBBox.width / 2 - inputWidth / 2) + 'px';\n inputStyle.top = Math.round(titleBBox.y + titleBBox.height / 2 - inputRect.height / 2) + 'px';\n inputStyle.width = Math.round(inputWidth) + 'px';\n inputElement.focus();\n };\n TitleEdit.prototype.endEditing = function () {\n var value = this.getGui().value;\n this.chartOptionsService.setChartOption('title.text', value);\n this.eventService.dispatchEvent({ type: 'chartTitleEdit' });\n this.removeCssClass('currently-editing');\n };\n TitleEdit.TEMPLATE = \"\\n \";\n __decorate$1i([\n agGridCommunity.Autowired('chartTranslationService')\n ], TitleEdit.prototype, \"chartTranslationService\", void 0);\n __decorate$1i([\n agGridCommunity.PostConstruct\n ], TitleEdit.prototype, \"init\", null);\n return TitleEdit;\n}(agGridCommunity.Component));\n\n// deepMerge\nfunction emptyTarget$1(value) {\n return Array.isArray(value) ? [] : {};\n}\nfunction cloneUnlessOtherwiseSpecified$1(value, options) {\n return (options.clone !== false && options.isMergeableObject(value))\n ? deepMerge$1(emptyTarget$1(value), value, options)\n : value;\n}\nfunction defaultArrayMerge$1(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified$1(element, options);\n });\n}\nfunction getMergeFunction$1(key, options) {\n if (!options.customMerge) {\n return deepMerge$1;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepMerge$1;\n}\nfunction getEnumerableOwnPropertySymbols$1(target) {\n // @ts-ignore\n return Object.getOwnPropertySymbols\n // @ts-ignore\n ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n })\n : [];\n}\nfunction getKeys$1(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols$1(target));\n}\nfunction propertyIsOnObject$1(object, property) {\n try {\n return property in object;\n }\n catch (_) {\n return false;\n }\n}\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe$1(target, key) {\n return propertyIsOnObject$1(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\nfunction mergeObject$1(target, source, options) {\n var destination = {};\n if (options.isMergeableObject(target)) {\n getKeys$1(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified$1(target[key], options);\n });\n }\n getKeys$1(source).forEach(function (key) {\n if (propertyIsUnsafe$1(target, key)) {\n return;\n }\n if (propertyIsOnObject$1(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction$1(key, options)(target[key], source[key], options);\n }\n else {\n destination[key] = cloneUnlessOtherwiseSpecified$1(source[key], options);\n }\n });\n return destination;\n}\nfunction defaultIsMergeableObject$1(value) {\n return isNonNullObject$1(value) && !isSpecial$1(value);\n}\nfunction isNonNullObject$1(value) {\n return !!value && typeof value === 'object';\n}\nfunction isSpecial$1(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]';\n}\nfunction deepMerge$1(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge$1;\n options.isMergeableObject = options.isMergeableObject || defaultIsMergeableObject$1;\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified$1;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified$1(source, options);\n }\n else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n }\n else {\n return mergeObject$1(target, source, options);\n }\n}\n\nvar __assign$i = (undefined && undefined.__assign) || function () {\n __assign$i = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$i.apply(this, arguments);\n};\nvar ChartProxy = /** @class */ (function () {\n function ChartProxy(chartProxyParams) {\n this.chartProxyParams = chartProxyParams;\n this.chartType = chartProxyParams.chartType;\n this.crossFiltering = chartProxyParams.crossFiltering;\n this.crossFilterCallback = chartProxyParams.crossFilterCallback;\n this.standaloneChartType = getSeriesType(this.chartType);\n if (this.chartProxyParams.chartOptionsToRestore) {\n this.chartOptions = this.chartProxyParams.chartOptionsToRestore;\n this.chartPalette = this.chartProxyParams.chartPaletteToRestore;\n var themeOverrides = { overrides: this.chartOptions, palette: this.chartPalette };\n this.chartTheme = getChartTheme(__assign$i({ baseTheme: this.getSelectedTheme() }, themeOverrides));\n return;\n }\n this.chartTheme = this.createChartTheme();\n this.chartOptions = this.convertConfigToOverrides(this.chartTheme.config);\n this.chartPalette = this.chartTheme.palette;\n }\n ChartProxy.prototype.recreateChart = function () {\n var _this = this;\n if (this.chart) {\n this.destroyChart();\n }\n this.chart = this.createChart();\n if (this.crossFiltering) {\n // add event listener to chart canvas to detect when user wishes to reset filters\n var resetFilters_1 = true;\n this.chart.addEventListener('click', function (e) { return _this.crossFilterCallback(e, resetFilters_1); });\n }\n };\n ChartProxy.prototype.getChart = function () {\n return this.chart;\n };\n ChartProxy.prototype.createChartTheme = function () {\n var _this = this;\n var themeName = this.getSelectedTheme();\n var stockTheme = this.isStockTheme(themeName);\n var gridOptionsThemeOverrides = this.chartProxyParams.getGridOptionsChartThemeOverrides();\n var apiThemeOverrides = this.chartProxyParams.apiChartThemeOverrides;\n if (gridOptionsThemeOverrides || apiThemeOverrides) {\n var themeOverrides_1 = {\n overrides: ChartProxy.mergeThemeOverrides(gridOptionsThemeOverrides, apiThemeOverrides)\n };\n var getCustomTheme = function () { return deepMerge$1(_this.lookupCustomChartTheme(themeName), themeOverrides_1); };\n return getChartTheme(stockTheme ? __assign$i({ baseTheme: themeName }, themeOverrides_1) : getCustomTheme());\n }\n return getChartTheme(stockTheme ? themeName : this.lookupCustomChartTheme(themeName));\n };\n ChartProxy.prototype.isStockTheme = function (themeName) {\n return agGridCommunity._.includes(Object.keys(themes), themeName);\n };\n ChartProxy.prototype.getSelectedTheme = function () {\n var chartThemeName = this.chartProxyParams.getChartThemeName();\n var availableThemes = this.chartProxyParams.getChartThemes();\n if (!agGridCommunity._.includes(availableThemes, chartThemeName)) {\n chartThemeName = availableThemes[0];\n }\n return chartThemeName;\n };\n ChartProxy.prototype.lookupCustomChartTheme = function (name) {\n var customChartThemes = this.chartProxyParams.customChartThemes;\n var customChartTheme = customChartThemes && customChartThemes[name];\n if (!customChartTheme) {\n console.warn(\"AG Grid: no stock theme exists with the name '\" + name + \"' and no \" +\n \"custom chart theme with that name was supplied to 'customChartThemes'\");\n }\n return customChartTheme;\n };\n ChartProxy.mergeThemeOverrides = function (gridOptionsThemeOverrides, apiThemeOverrides) {\n if (!gridOptionsThemeOverrides) {\n return apiThemeOverrides;\n }\n if (!apiThemeOverrides) {\n return gridOptionsThemeOverrides;\n }\n return deepMerge$1(gridOptionsThemeOverrides, apiThemeOverrides);\n };\n ChartProxy.prototype.downloadChart = function () {\n var chart = this.chart;\n var fileName = chart.title ? chart.title.text : 'chart';\n chart.scene.download(fileName);\n };\n ChartProxy.prototype.getChartImageDataURL = function (type) {\n return this.chart.scene.getDataURL(type);\n };\n ChartProxy.prototype.getChartOptions = function () {\n return this.chartOptions;\n };\n ChartProxy.prototype.getChartPalette = function () {\n return this.chartPalette;\n };\n ChartProxy.prototype.transformData = function (data, categoryKey) {\n var usingGroupedCategory = this.chartProxyParams.grouping || this.chart.axes.filter(function (a) { return a instanceof CategoryAxis; }).length < 1;\n if (usingGroupedCategory) {\n return data;\n }\n // replace the values for the selected category with a complex object to allow for duplicated categories\n return data.map(function (d, index) {\n var value = d[categoryKey];\n var valueString = value && value.toString ? value.toString() : '';\n var datum = __assign$i({}, d);\n datum[categoryKey] = { id: index, value: value, toString: function () { return valueString; } };\n return datum;\n });\n };\n ChartProxy.prototype.convertConfigToOverrides = function (config) {\n var isComboChart = ['columnLineCombo', 'areaColumnCombo', 'customCombo'].includes(this.chartType);\n var overrideObjs = isComboChart ? ['line', 'area', 'column', 'cartesian'] : [this.standaloneChartType];\n var overrides = {};\n overrideObjs.forEach(function (overrideObj) {\n var chartOverrides = deepMerge$1({}, config[overrideObj]);\n chartOverrides.series = chartOverrides.series[overrideObj];\n // special handing to add the scatter paired mode to the chart options\n if (overrideObj === 'scatter') {\n chartOverrides.paired = true;\n }\n overrides[overrideObj] = chartOverrides;\n });\n return overrides;\n };\n ChartProxy.prototype.destroy = function () {\n this.destroyChart();\n };\n ChartProxy.prototype.destroyChart = function () {\n if (this.chart) {\n this.chart.destroy();\n this.chart = undefined;\n }\n };\n return ChartProxy;\n}());\n\nvar __extends$2K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CartesianChartProxy = /** @class */ (function (_super) {\n __extends$2K(CartesianChartProxy, _super);\n function CartesianChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.axisTypeToClassMap = {\n number: NumberAxis,\n category: CategoryAxis,\n groupedCategory: GroupedCategoryAxis,\n time: TimeAxis\n };\n return _this;\n }\n CartesianChartProxy.prototype.updateAxes = function (params) {\n // when grouping recreate chart if the axis is not a 'groupedCategory', otherwise return\n if (params.grouping) {\n if (!(this.axisTypeToClassMap[this.xAxisType] === GroupedCategoryAxis)) {\n this.xAxisType = 'groupedCategory';\n this.recreateChart();\n }\n return;\n }\n // only update axis has changed and recreate the chart, i.e. switching from 'category' to 'time' axis\n var newXAxisType = CartesianChartProxy.isTimeAxis(params) ? 'time' : 'category';\n if (newXAxisType !== this.xAxisType) {\n this.xAxisType = newXAxisType;\n this.recreateChart();\n }\n };\n CartesianChartProxy.prototype.getAxesOptions = function (chartSeriesType) {\n if (chartSeriesType === void 0) { chartSeriesType = this.standaloneChartType; }\n return this.chartOptions[chartSeriesType].axes;\n };\n CartesianChartProxy.prototype.processDataForCrossFiltering = function (data, colId, params) {\n var yKey = colId;\n var atLeastOneSelectedPoint = false;\n if (this.crossFiltering) {\n data.forEach(function (d) {\n d[colId + '-total'] = d[colId] + d[colId + '-filtered-out'];\n if (d[colId + '-filtered-out'] > 0) {\n atLeastOneSelectedPoint = true;\n }\n });\n var lastSelectedChartId = params.getCrossFilteringContext().lastSelectedChartId;\n if (lastSelectedChartId === params.chartId) {\n yKey = colId + '-total';\n }\n }\n return { yKey: yKey, atLeastOneSelectedPoint: atLeastOneSelectedPoint };\n };\n CartesianChartProxy.prototype.updateSeriesForCrossFiltering = function (series, colId, chart, params, atLeastOneSelectedPoint) {\n if (this.crossFiltering) {\n // special custom marker handling to show and hide points\n series.marker.enabled = true;\n series.marker.formatter = function (p) {\n return {\n fill: p.highlighted ? 'yellow' : p.fill,\n size: p.highlighted ? 12 : p.datum[colId] > 0 ? 8 : 0,\n };\n };\n chart.tooltip.delay = 500;\n // make line opaque when some points are deselected\n var ctx = params.getCrossFilteringContext();\n var lastSelectionOnThisChart = ctx.lastSelectedChartId === params.chartId;\n var deselectedPoints = lastSelectionOnThisChart && atLeastOneSelectedPoint;\n if (series instanceof AreaSeries) {\n series.fillOpacity = deselectedPoints ? 0.3 : 1;\n }\n if (series instanceof LineSeries) {\n series.strokeOpacity = deselectedPoints ? 0.3 : 1;\n }\n // add node click cross filtering callback to series\n series.addEventListener('nodeClick', this.crossFilterCallback);\n }\n };\n CartesianChartProxy.isTimeAxis = function (params) {\n if (params.category && params.category.chartDataType) {\n return params.category.chartDataType === 'time';\n }\n var testDatum = params.data[0];\n return (testDatum && testDatum[params.category.id]) instanceof Date;\n };\n return CartesianChartProxy;\n}(ChartProxy));\n\nfunction hexToRGBA(hex, alpha) {\n var r = parseInt(hex.slice(1, 3), 16);\n var g = parseInt(hex.slice(3, 5), 16);\n var b = parseInt(hex.slice(5, 7), 16);\n return alpha ? \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + alpha + \")\" : \"rgba(\" + r + \", \" + g + \", \" + b + \")\";\n}\nfunction changeOpacity(fills, alpha) {\n return fills.map(function (fill) {\n var c = agGridCommunity.Color.fromString(fill);\n return new agGridCommunity.Color(c.r, c.g, c.b, alpha).toHexString();\n });\n}\n\nvar __extends$2L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$j = (undefined && undefined.__assign) || function () {\n __assign$j = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$j.apply(this, arguments);\n};\nvar __read$M = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar BarChartProxy = /** @class */ (function (_super) {\n __extends$2L(BarChartProxy, _super);\n function BarChartProxy(params) {\n var _this = _super.call(this, params) || this;\n // when the standalone chart type is 'bar' - xAxis is positioned to the 'left'\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n BarChartProxy.prototype.createChart = function () {\n var _a = __read$M([this.standaloneChartType === 'bar', this.isNormalised()], 2), isBar = _a[0], isNormalised = _a[1];\n return AgChart.create({\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n axes: this.getAxes(isBar, isNormalised),\n series: this.getSeries(isNormalised),\n });\n };\n BarChartProxy.prototype.update = function (params) {\n this.updateAxes(params);\n var barSeries = this.chart.series[0];\n if (this.crossFiltering) {\n this.updateCrossFilteringSeries(barSeries, params);\n }\n else {\n barSeries.fills = this.chartTheme.palette.fills;\n barSeries.strokes = this.chartTheme.palette.strokes;\n }\n barSeries.data = this.transformData(params.data, params.category.id);\n barSeries.xKey = params.category.id;\n barSeries.xName = params.category.name;\n barSeries.yKeys = params.fields.map(function (f) { return f.colId; });\n barSeries.yNames = params.fields.map(function (f) { return f.displayName; });\n };\n BarChartProxy.prototype.updateCrossFilteringSeries = function (barSeries, params) {\n // add additional filtered out field\n var fields = params.fields;\n fields.forEach(function (field) {\n var crossFilteringField = __assign$j({}, field);\n crossFilteringField.colId = field.colId + '-filtered-out';\n fields.push(crossFilteringField);\n });\n var palette = this.chartTheme.palette;\n // introduce cross filtering transparent fills\n var fills = [];\n palette.fills.forEach(function (fill) {\n fills.push(fill);\n fills.push(hexToRGBA(fill, '0.3'));\n });\n barSeries.fills = fills;\n // introduce cross filtering transparent strokes\n var strokes = [];\n palette.strokes.forEach(function (stroke) {\n fills.push(stroke);\n fills.push(hexToRGBA(stroke, '0.3'));\n });\n barSeries.strokes = strokes;\n // disable series highlighting by default\n barSeries.highlightStyle.fill = undefined;\n // hide 'filtered out' legend items\n var colIds = params.fields.map(function (f) { return f.colId; });\n barSeries.hideInLegend = colIds.filter(function (colId) { return colId.indexOf('-filtered-out') !== -1; });\n // sync toggling of legend item with hidden 'filtered out' item\n this.chart.legend.addEventListener('click', function (event) {\n barSeries.toggleSeriesItem(event.itemId + '-filtered-out', event.enabled);\n });\n this.chart.tooltip.delay = 500;\n // add node click cross filtering callback to series\n barSeries.addEventListener('nodeClick', this.crossFilterCallback);\n };\n BarChartProxy.prototype.getAxes = function (isBar, normalised) {\n var axisOptions = this.getAxesOptions();\n var axes = [\n __assign$j(__assign$j({}, deepMerge$1(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: isBar ? ChartAxisPosition.Left : ChartAxisPosition.Bottom }),\n __assign$j(__assign$j({}, deepMerge$1(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: isBar ? ChartAxisPosition.Bottom : ChartAxisPosition.Left }),\n ];\n // special handling to add a default label formatter to show '%' for normalized charts if none is provided\n if (normalised) {\n var numberAxis = axes[1];\n numberAxis.label = __assign$j(__assign$j({}, numberAxis.label), { formatter: function (params) { return Math.round(params.value) + '%'; } });\n }\n return axes;\n };\n BarChartProxy.prototype.getSeries = function (normalised) {\n var groupedCharts = ['groupedColumn', 'groupedBar'];\n var isGrouped = !this.crossFiltering && agGridCommunity._.includes(groupedCharts, this.chartType);\n return [__assign$j(__assign$j({}, this.chartOptions[this.standaloneChartType].series), { type: this.standaloneChartType, grouped: isGrouped, normalizedTo: normalised ? 100 : undefined })];\n };\n BarChartProxy.prototype.isNormalised = function () {\n var normalisedCharts = ['normalizedColumn', 'normalizedBar'];\n return !this.crossFiltering && agGridCommunity._.includes(normalisedCharts, this.chartType);\n };\n return BarChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$2M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$k = (undefined && undefined.__assign) || function () {\n __assign$k = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$k.apply(this, arguments);\n};\nvar AreaChartProxy = /** @class */ (function (_super) {\n __extends$2M(AreaChartProxy, _super);\n function AreaChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n AreaChartProxy.prototype.createChart = function () {\n return AgChart.create({\n type: 'area',\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n axes: this.getAxes(),\n });\n };\n AreaChartProxy.prototype.update = function (params) {\n this.updateAxes(params);\n if (this.chartType === 'area') {\n // area charts have multiple series\n this.updateAreaChart(params);\n }\n else {\n // stacked and normalized has a single series\n var areaSeries = this.chart.series[0];\n if (!areaSeries) {\n var seriesDefaults = __assign$k(__assign$k({}, this.chartOptions[this.standaloneChartType].series), { type: 'area', normalizedTo: this.chartType === 'normalizedArea' ? 100 : undefined });\n areaSeries = AgChart.createComponent(__assign$k({}, seriesDefaults), 'area.series');\n if (!areaSeries) {\n return;\n }\n this.chart.addSeries(areaSeries);\n }\n areaSeries.data = this.transformData(params.data, params.category.id);\n areaSeries.xKey = params.category.id;\n areaSeries.xName = params.category.name;\n areaSeries.yKeys = params.fields.map(function (f) { return f.colId; });\n areaSeries.yNames = params.fields.map(function (f) { return f.displayName; });\n areaSeries.fills = this.chartTheme.palette.fills;\n areaSeries.strokes = this.chartTheme.palette.strokes;\n }\n };\n AreaChartProxy.prototype.updateAreaChart = function (params) {\n var _this = this;\n var chart = this.chart;\n if (params.fields.length === 0) {\n chart.removeAllSeries();\n return;\n }\n var fieldIds = params.fields.map(function (f) { return f.colId; });\n var existingSeriesById = chart.series\n .reduceRight(function (map, series, i) {\n var id = series.yKeys[0];\n if (fieldIds.indexOf(id) === i) {\n map.set(id, series);\n }\n else {\n chart.removeSeries(series);\n }\n return map;\n }, new Map());\n var data = this.transformData(params.data, params.category.id);\n var previousSeries;\n var _a = this.chartTheme.palette, fills = _a.fills, strokes = _a.strokes;\n params.fields.forEach(function (f, index) {\n var _a = _this.processDataForCrossFiltering(data, f.colId, params), yKey = _a.yKey, atLeastOneSelectedPoint = _a.atLeastOneSelectedPoint;\n var areaSeries = existingSeriesById.get(f.colId);\n var fill = fills[index % fills.length];\n var stroke = strokes[index % strokes.length];\n if (areaSeries) {\n areaSeries.data = data;\n areaSeries.xKey = params.category.id;\n areaSeries.xName = params.category.name;\n areaSeries.yKeys = [yKey];\n areaSeries.yNames = [f.displayName];\n areaSeries.fills = [fill];\n areaSeries.strokes = [stroke];\n }\n else {\n var seriesOverrides = _this.chartOptions[_this.standaloneChartType].series;\n var seriesDefaults = __assign$k(__assign$k({}, seriesOverrides), { type: 'area', normalizedTo: _this.chartType === 'normalizedArea' ? 100 : undefined });\n var options = __assign$k(__assign$k({}, seriesDefaults), { data: data, xKey: params.category.id, xName: params.category.name, yKeys: [yKey], yNames: [f.displayName], fills: [fill], strokes: [stroke], marker: __assign$k(__assign$k({}, seriesDefaults.marker), { fill: fill,\n stroke: stroke }) });\n areaSeries = AgChart.createComponent(options, 'area.series');\n chart.addSeriesAfter(areaSeries, previousSeries);\n }\n _this.updateSeriesForCrossFiltering(areaSeries, f.colId, chart, params, atLeastOneSelectedPoint);\n previousSeries = areaSeries;\n });\n };\n AreaChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n var options = [\n __assign$k(__assign$k({}, deepMerge$1(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom, paddingInner: 1, paddingOuter: 0 }),\n __assign$k(__assign$k({}, deepMerge$1(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n if (this.xAxisType === 'time') {\n delete options[0].paddingInner;\n delete options[0].paddingOuter;\n }\n return options;\n };\n return AreaChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$2N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$l = (undefined && undefined.__assign) || function () {\n __assign$l = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$l.apply(this, arguments);\n};\nvar LineChartProxy = /** @class */ (function (_super) {\n __extends$2N(LineChartProxy, _super);\n function LineChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n LineChartProxy.prototype.createChart = function () {\n return AgChart.create({\n type: 'line',\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n axes: this.getAxes()\n });\n };\n LineChartProxy.prototype.update = function (params) {\n var _this = this;\n if (params.fields.length === 0) {\n this.chart.removeAllSeries();\n return;\n }\n this.updateAxes(params);\n var chart = this.chart;\n var fields = params.fields;\n var fieldIds = fields.map(function (f) { return f.colId; });\n var data = this.transformData(params.data, params.category.id);\n var existingSeriesById = chart.series.reduceRight(function (map, series, i) {\n var id = series.yKey;\n (fieldIds.indexOf(id) === i) ? map.set(id, series) : chart.removeSeries(series);\n return map;\n }, new Map());\n var previousSeries;\n var _a = this.chartTheme.palette, fills = _a.fills, strokes = _a.strokes;\n fields.forEach(function (f, index) {\n var _a = _this.processDataForCrossFiltering(data, f.colId, params), yKey = _a.yKey, atLeastOneSelectedPoint = _a.atLeastOneSelectedPoint;\n var lineSeries = existingSeriesById.get(f.colId);\n var fill = fills[index % fills.length];\n var stroke = strokes[index % strokes.length];\n if (lineSeries) {\n lineSeries.title = f.displayName;\n lineSeries.data = data;\n lineSeries.xKey = params.category.id;\n lineSeries.xName = params.category.name;\n lineSeries.yKey = yKey;\n lineSeries.yName = f.displayName;\n lineSeries.marker.fill = fill;\n lineSeries.marker.stroke = stroke;\n lineSeries.stroke = fill; // this is deliberate, so that the line colours match the fills of other series\n }\n else {\n var seriesOverrides = _this.chartOptions[_this.standaloneChartType].series;\n var seriesOptions = __assign$l(__assign$l({}, seriesOverrides), { type: 'line', title: f.displayName, data: data, xKey: params.category.id, xName: params.category.name, yKey: yKey, yName: f.displayName, stroke: fill, marker: __assign$l(__assign$l({}, seriesOverrides.marker), { fill: fill,\n stroke: stroke }) });\n lineSeries = AgChart.createComponent(seriesOptions, 'line.series');\n chart.addSeriesAfter(lineSeries, previousSeries);\n }\n _this.updateSeriesForCrossFiltering(lineSeries, f.colId, chart, params, atLeastOneSelectedPoint);\n previousSeries = lineSeries;\n });\n };\n LineChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n return [\n __assign$l(__assign$l({}, deepMerge$1(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom }),\n __assign$l(__assign$l({}, deepMerge$1(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n };\n return LineChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$2O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PolarChartProxy = /** @class */ (function (_super) {\n __extends$2O(PolarChartProxy, _super);\n function PolarChartProxy(params) {\n return _super.call(this, params) || this;\n }\n PolarChartProxy.prototype.addCrossFilteringTooltipRenderer = function (pieSeries) {\n pieSeries.tooltip.renderer = function (params) {\n var label = params.datum[params.labelKey];\n var ratio = params.datum[params.radiusKey];\n var totalValue = params.angleValue;\n var value = totalValue * ratio;\n return {\n content: label + \": \" + value,\n };\n };\n };\n return PolarChartProxy;\n}(ChartProxy));\n\nvar __extends$2P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$m = (undefined && undefined.__assign) || function () {\n __assign$m = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$m.apply(this, arguments);\n};\nvar PieChartProxy = /** @class */ (function (_super) {\n __extends$2P(PieChartProxy, _super);\n function PieChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.recreateChart();\n return _this;\n }\n PieChartProxy.prototype.createChart = function () {\n return AgChart.create({\n type: 'pie',\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n });\n };\n PieChartProxy.prototype.update = function (params) {\n var chart = this.chart;\n if (params.fields.length === 0) {\n chart.removeAllSeries();\n return;\n }\n var field = params.fields[0];\n var angleField = field;\n if (this.crossFiltering) {\n // add additional filtered out field\n var fields_1 = params.fields;\n fields_1.forEach(function (field) {\n var crossFilteringField = __assign$m({}, field);\n crossFilteringField.colId = field.colId + '-filtered-out';\n fields_1.push(crossFilteringField);\n });\n var filteredOutField_1 = fields_1[1];\n params.data.forEach(function (d) {\n d[field.colId + '-total'] = d[field.colId] + d[filteredOutField_1.colId];\n d[field.colId] = d[field.colId] / d[field.colId + '-total'];\n d[filteredOutField_1.colId] = 1;\n });\n var opaqueSeries = chart.series[1];\n var radiusField = filteredOutField_1;\n opaqueSeries = this.updateSeries(chart, opaqueSeries, angleField, radiusField, params, undefined);\n radiusField = angleField;\n var filteredSeries = chart.series[0];\n this.updateSeries(chart, filteredSeries, angleField, radiusField, params, opaqueSeries);\n }\n else {\n var series = chart.series[0];\n this.updateSeries(chart, series, angleField, angleField, params, undefined);\n }\n };\n PieChartProxy.prototype.updateSeries = function (chart, series, angleField, field, params, opaqueSeries) {\n var existingSeriesId = series && series.angleKey;\n var seriesOverrides = this.chartOptions[this.standaloneChartType].series;\n var pieSeries = series;\n if (existingSeriesId !== field.colId) {\n chart.removeSeries(series);\n var options = __assign$m(__assign$m({}, seriesOverrides), { type: 'pie', angleKey: this.crossFiltering ? angleField.colId + '-total' : angleField.colId, radiusKey: this.crossFiltering ? field.colId : undefined });\n pieSeries = AgChart.createComponent(options, 'pie.series');\n pieSeries.fills = this.chartTheme.palette.fills;\n pieSeries.strokes = this.chartTheme.palette.strokes;\n pieSeries.callout.colors = this.chartTheme.palette.strokes;\n if (this.crossFiltering && pieSeries && !pieSeries.tooltip.renderer) {\n // only add renderer if user hasn't provided one\n this.addCrossFilteringTooltipRenderer(pieSeries);\n }\n }\n pieSeries.angleName = field.displayName;\n pieSeries.labelKey = params.category.id;\n pieSeries.labelName = params.category.name;\n pieSeries.data = params.data;\n if (this.crossFiltering) {\n pieSeries.radiusMin = 0;\n pieSeries.radiusMax = 1;\n var isOpaqueSeries = !opaqueSeries;\n if (isOpaqueSeries) {\n pieSeries.fills = changeOpacity(pieSeries.fills, 0.3);\n pieSeries.strokes = changeOpacity(pieSeries.strokes, 0.3);\n pieSeries.callout.colors = changeOpacity(pieSeries.strokes, 0.3);\n pieSeries.showInLegend = false;\n }\n else {\n chart.legend.addEventListener('click', function (event) {\n if (opaqueSeries) {\n opaqueSeries.toggleSeriesItem(event.itemId, event.enabled);\n }\n });\n }\n chart.tooltip.delay = 500;\n // disable series highlighting by default\n pieSeries.highlightStyle.fill = undefined;\n pieSeries.addEventListener(\"nodeClick\", this.crossFilterCallback);\n }\n chart.addSeries(pieSeries);\n return pieSeries;\n };\n return PieChartProxy;\n}(PolarChartProxy));\n\nvar __extends$2Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$n = (undefined && undefined.__assign) || function () {\n __assign$n = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$n.apply(this, arguments);\n};\nvar DoughnutChartProxy = /** @class */ (function (_super) {\n __extends$2Q(DoughnutChartProxy, _super);\n function DoughnutChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.recreateChart();\n return _this;\n }\n DoughnutChartProxy.prototype.createChart = function () {\n return AgChart.create({\n type: 'pie',\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n });\n };\n DoughnutChartProxy.prototype.update = function (params) {\n var _this = this;\n if (params.fields.length === 0) {\n this.chart.removeAllSeries();\n return;\n }\n var doughnutChart = this.chart;\n var fieldIds = params.fields.map(function (f) { return f.colId; });\n var seriesMap = {};\n doughnutChart.series.forEach(function (series) {\n var pieSeries = series;\n var id = pieSeries.angleKey;\n if (agGridCommunity._.includes(fieldIds, id)) {\n seriesMap[id] = pieSeries;\n }\n });\n var fills = this.chartTheme.palette.fills;\n var strokes = this.chartTheme.palette.strokes;\n var seriesOverrides = this.chartOptions[this.standaloneChartType].series;\n var numFields = params.fields.length;\n var offset = 0;\n if (this.crossFiltering) {\n params.fields.forEach(function (field, index) {\n var filteredOutField = __assign$n({}, field);\n filteredOutField.colId = field.colId + '-filtered-out';\n params.data.forEach(function (d) {\n d[field.colId + '-total'] = d[field.colId] + d[filteredOutField.colId];\n d[field.colId] = d[field.colId] / d[field.colId + '-total'];\n d[filteredOutField.colId] = 1;\n });\n var _a = _this.updateSeries({\n seriesMap: seriesMap,\n angleField: field,\n field: filteredOutField,\n seriesDefaults: seriesOverrides,\n index: index,\n params: params,\n fills: fills,\n strokes: strokes,\n doughnutChart: doughnutChart,\n offset: offset,\n numFields: numFields,\n opaqueSeries: undefined\n }), updatedOffset = _a.updatedOffset, pieSeries = _a.pieSeries;\n _this.updateSeries({\n seriesMap: seriesMap,\n angleField: field,\n field: field,\n seriesDefaults: seriesOverrides,\n index: index,\n params: params,\n fills: fills,\n strokes: strokes,\n doughnutChart: doughnutChart,\n offset: offset,\n numFields: numFields,\n opaqueSeries: pieSeries\n });\n offset = updatedOffset;\n });\n }\n else {\n params.fields.forEach(function (f, index) {\n var updatedOffset = _this.updateSeries({\n seriesMap: seriesMap,\n angleField: f,\n field: f,\n seriesDefaults: seriesOverrides,\n index: index,\n params: params,\n fills: fills,\n strokes: strokes,\n doughnutChart: doughnutChart,\n offset: offset,\n numFields: numFields,\n opaqueSeries: undefined\n }).updatedOffset;\n offset = updatedOffset;\n });\n }\n // Because repaints are automatic, it's important to remove/add/update series at once,\n // so that we don't get painted twice.\n doughnutChart.series = agGridCommunity._.values(seriesMap);\n };\n DoughnutChartProxy.prototype.updateSeries = function (updateParams) {\n var existingSeries = updateParams.seriesMap[updateParams.field.colId];\n var seriesOptions = __assign$n(__assign$n({}, updateParams.seriesDefaults), { type: 'pie', angleKey: this.crossFiltering ? updateParams.angleField.colId + '-total' : updateParams.angleField.colId, radiusKey: this.crossFiltering ? updateParams.field.colId : undefined, title: __assign$n(__assign$n({}, updateParams.seriesDefaults.title), { text: updateParams.seriesDefaults.title.text || updateParams.field.displayName }) });\n var pieSeries = existingSeries || AgChart.createComponent(seriesOptions, 'pie.series');\n if (pieSeries.title) {\n pieSeries.title.showInLegend = updateParams.numFields > 1;\n }\n if (!existingSeries) {\n if (this.crossFiltering && !pieSeries.tooltip.renderer) {\n // only add renderer if user hasn't provided one\n this.addCrossFilteringTooltipRenderer(pieSeries);\n }\n }\n pieSeries.angleName = updateParams.field.displayName;\n pieSeries.labelKey = updateParams.params.category.id;\n pieSeries.labelName = updateParams.params.category.name;\n pieSeries.data = updateParams.params.data;\n if (this.crossFiltering) {\n pieSeries.radiusMin = 0;\n pieSeries.radiusMax = 1;\n var isOpaqueSeries = !updateParams.opaqueSeries;\n if (isOpaqueSeries) {\n pieSeries.fills = updateParams.fills.map(function (fill) { return hexToRGBA(fill, '0.3'); });\n pieSeries.strokes = updateParams.strokes.map(function (stroke) { return hexToRGBA(stroke, '0.3'); });\n pieSeries.showInLegend = false;\n }\n else {\n updateParams.doughnutChart.legend.addEventListener('click', function (event) {\n if (updateParams.opaqueSeries) {\n updateParams.opaqueSeries.toggleSeriesItem(event.itemId, event.enabled);\n }\n });\n pieSeries.fills = updateParams.fills;\n pieSeries.strokes = updateParams.strokes;\n pieSeries.callout.colors = updateParams.strokes;\n }\n // disable series highlighting by default\n pieSeries.highlightStyle.fill = undefined;\n pieSeries.addEventListener('nodeClick', this.crossFilterCallback);\n updateParams.doughnutChart.tooltip.delay = 500;\n }\n else {\n pieSeries.fills = updateParams.fills;\n pieSeries.strokes = updateParams.strokes;\n pieSeries.callout.colors = updateParams.strokes;\n }\n var offsetAmount = updateParams.numFields > 1 ? 20 : 40;\n pieSeries.outerRadiusOffset = updateParams.offset;\n updateParams.offset -= offsetAmount;\n pieSeries.innerRadiusOffset = updateParams.offset;\n updateParams.offset -= offsetAmount;\n if (!existingSeries) {\n updateParams.seriesMap[updateParams.field.colId] = pieSeries;\n }\n return { updatedOffset: updateParams.offset, pieSeries: pieSeries };\n };\n return DoughnutChartProxy;\n}(PolarChartProxy));\n\nvar __extends$2R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$o = (undefined && undefined.__assign) || function () {\n __assign$o = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$o.apply(this, arguments);\n};\nvar __read$N = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$l = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$N(arguments[i]));\n return ar;\n};\nvar ScatterChartProxy = /** @class */ (function (_super) {\n __extends$2R(ScatterChartProxy, _super);\n function ScatterChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = 'number';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n ScatterChartProxy.prototype.createChart = function () {\n return AgChart.create({\n type: 'scatter',\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n axes: this.getAxes()\n });\n };\n ScatterChartProxy.prototype.update = function (params) {\n var _this = this;\n if (params.fields.length < 2) {\n this.chart.removeAllSeries();\n return;\n }\n var fields = params.fields;\n if (this.crossFiltering) {\n // add additional filtered out field\n fields.forEach(function (field) {\n var crossFilteringField = __assign$o({}, field);\n crossFilteringField.colId = field.colId + '-filtered-out';\n fields.push(crossFilteringField);\n });\n }\n var paired = this.chartOptions[this.standaloneChartType].paired;\n var seriesDefinitions = this.getSeriesDefinitions(fields, paired);\n var dataDomain;\n if (this.crossFiltering) {\n dataDomain = this.getCrossFilteringDataDomain(seriesDefinitions, params);\n }\n var chart = this.chart;\n var existingSeriesById = chart.series.reduceRight(function (map, series, i) {\n var matchingIndex = seriesDefinitions.findIndex(function (s) {\n return s.xField.colId === series.xKey &&\n s.yField.colId === series.yKey &&\n ((!s.sizeField && !series.sizeKey) || (s.sizeField && s.sizeField.colId === series.sizeKey));\n });\n if (matchingIndex === i) {\n map.set(series.yKey, series);\n }\n else {\n chart.removeSeries(series);\n }\n return map;\n }, new Map());\n var _a = this.chartTheme.palette, fills = _a.fills, strokes = _a.strokes;\n if (this.crossFiltering) {\n // introduce cross filtering transparent fills\n var fillsMod_1 = [];\n fills.forEach(function (fill) {\n fillsMod_1.push(fill);\n fillsMod_1.push(hexToRGBA(fill, '0.3'));\n });\n fills = fillsMod_1;\n // introduce cross filtering transparent strokes\n var strokesMod_1 = [];\n strokes.forEach(function (stroke) {\n strokesMod_1.push(stroke);\n strokesMod_1.push(hexToRGBA(stroke, '0.3'));\n });\n strokes = strokesMod_1;\n }\n var labelFieldDefinition = params.category.id === ChartDataModel.DEFAULT_CATEGORY ? undefined : params.category;\n var previousSeries;\n var seriesOverrides = this.chartOptions[this.standaloneChartType].series;\n seriesDefinitions.forEach(function (seriesDefinition, index) {\n var existingSeries = existingSeriesById.get(seriesDefinition.yField.colId);\n var series = existingSeries || AgChart.createComponent(__assign$o(__assign$o({}, seriesOverrides), { type: 'scatter' }), 'scatter.series');\n if (!series) {\n return;\n }\n var _a = seriesDefinition, xFieldDefinition = _a.xField, yFieldDefinition = _a.yField, sizeFieldDefinition = _a.sizeField;\n series.title = yFieldDefinition.displayName + \" vs \" + xFieldDefinition.displayName;\n series.xKey = xFieldDefinition.colId;\n series.xName = xFieldDefinition.displayName;\n series.yKey = yFieldDefinition.colId;\n series.yName = yFieldDefinition.displayName;\n series.data = params.data;\n series.fill = fills[index % fills.length];\n series.stroke = strokes[index % strokes.length];\n if (sizeFieldDefinition) {\n series.sizeKey = sizeFieldDefinition.colId;\n series.sizeName = sizeFieldDefinition.displayName;\n }\n else {\n series.sizeKey = undefined;\n }\n if (labelFieldDefinition) {\n series.labelKey = labelFieldDefinition.id;\n series.labelName = labelFieldDefinition.name;\n }\n else {\n series.labelKey = series.yKey;\n }\n var isFilteredOutYKey = yFieldDefinition.colId.indexOf('-filtered-out') > -1;\n if (_this.crossFiltering) {\n if (!isFilteredOutYKey) {\n // sync toggling of legend item with hidden 'filtered out' item\n chart.legend.addEventListener('click', function (event) {\n series.toggleSeriesItem(event.itemId + '-filtered-out', event.enabled);\n });\n }\n if (dataDomain) {\n series.marker.domain = dataDomain;\n }\n chart.tooltip.delay = 500;\n // hide 'filtered out' legend items\n if (isFilteredOutYKey) {\n series.showInLegend = false;\n }\n // add node click cross filtering callback to series\n series.addEventListener('nodeClick', _this.crossFilterCallback);\n }\n if (!existingSeries) {\n chart.addSeriesAfter(series, previousSeries);\n }\n previousSeries = series;\n });\n };\n ScatterChartProxy.prototype.getSeriesDefinitions = function (fields, paired) {\n if (fields.length < 2) {\n return [];\n }\n var isBubbleChart = this.chartType === 'bubble';\n if (paired) {\n if (isBubbleChart) {\n return fields.map(function (currentXField, i) { return i % 3 === 0 ? ({\n xField: currentXField,\n yField: fields[i + 1],\n sizeField: fields[i + 2],\n }) : null; }).filter(function (x) { return x && x.yField && x.sizeField; });\n }\n return fields.map(function (currentXField, i) { return i % 2 === 0 ? ({\n xField: currentXField,\n yField: fields[i + 1],\n }) : null; }).filter(function (x) { return x && x.yField; });\n }\n var xField = fields[0];\n if (isBubbleChart) {\n return fields\n .map(function (yField, i) { return i % 2 === 1 ? ({\n xField: xField,\n yField: yField,\n sizeField: fields[i + 1],\n }) : null; })\n .filter(function (x) { return x && x.sizeField; });\n }\n return fields.filter(function (value, i) { return i > 0; }).map(function (yField) { return ({ xField: xField, yField: yField }); });\n };\n ScatterChartProxy.prototype.getCrossFilteringDataDomain = function (seriesDefinitions, params) {\n var domain;\n if (seriesDefinitions[0] && seriesDefinitions[0].sizeField) {\n var sizeColId_1 = seriesDefinitions[0].sizeField.colId;\n var allSizePoints_1 = [];\n params.data.forEach(function (d) {\n if (typeof d[sizeColId_1] !== 'undefined') {\n allSizePoints_1.push(d[sizeColId_1]);\n }\n if (typeof d[sizeColId_1 + '-filtered-out'] !== 'undefined') {\n allSizePoints_1.push(d[sizeColId_1 + '-filtered-out']);\n }\n });\n if (allSizePoints_1.length > 0) {\n domain = [Math.min.apply(Math, __spread$l(allSizePoints_1)), Math.max.apply(Math, __spread$l(allSizePoints_1))];\n }\n }\n return domain;\n };\n ScatterChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n return [\n __assign$o(__assign$o({}, deepMerge$1(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom }),\n __assign$o(__assign$o({}, deepMerge$1(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n };\n return ScatterChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$2S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$p = (undefined && undefined.__assign) || function () {\n __assign$p = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$p.apply(this, arguments);\n};\nvar __read$O = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar HistogramChartProxy = /** @class */ (function (_super) {\n __extends$2S(HistogramChartProxy, _super);\n function HistogramChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = 'number';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n HistogramChartProxy.prototype.createChart = function () {\n return AgChart.create({\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n axes: this.getAxes(),\n series: [__assign$p(__assign$p({}, this.chartOptions[this.standaloneChartType].series), { type: 'histogram' })]\n });\n };\n HistogramChartProxy.prototype.update = function (params) {\n var _a = __read$O(params.fields, 1), xField = _a[0];\n var chart = this.chart;\n var series = chart.series[0];\n series.data = params.data;\n series.xKey = xField.colId;\n series.xName = xField.displayName;\n // for now, only constant width is supported via integrated charts\n series.areaPlot = false;\n series.fill = this.chartTheme.palette.fills[0];\n series.stroke = this.chartTheme.palette.strokes[0];\n };\n HistogramChartProxy.prototype.getAxes = function () {\n var axisOptions = this.getAxesOptions();\n return [\n __assign$p(__assign$p({}, deepMerge$1(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom)), { type: this.xAxisType, position: ChartAxisPosition.Bottom }),\n __assign$p(__assign$p({}, deepMerge$1(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left)), { type: this.yAxisType, position: ChartAxisPosition.Left }),\n ];\n };\n return HistogramChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$2T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartOptionsService = /** @class */ (function (_super) {\n __extends$2T(ChartOptionsService, _super);\n function ChartOptionsService(chartController) {\n var _this = _super.call(this) || this;\n _this.chartController = chartController;\n return _this;\n }\n ChartOptionsService.prototype.getChartType = function () {\n return this.chartController.getChartType();\n };\n ChartOptionsService.prototype.getChartOption = function (expression) {\n return agGridCommunity._.get(this.getChart(), expression, undefined);\n };\n ChartOptionsService.prototype.setChartOption = function (expression, value) {\n var _this = this;\n // update chart options\n this.chartController.getChartSeriesTypes().forEach(function (optionsType) {\n var options = agGridCommunity._.get(_this.getChartOptions(), \"\" + optionsType, undefined);\n agGridCommunity._.set(options, expression, value);\n });\n // update chart\n agGridCommunity._.set(this.getChart(), expression, value);\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getAxisProperty = function (expression) {\n return agGridCommunity._.get(this.getChart().axes[0], expression, undefined);\n };\n ChartOptionsService.prototype.setAxisProperty = function (expression, value) {\n var _this = this;\n var chart = this.getChart();\n chart.axes.forEach(function (axis) {\n // update axis options\n _this.updateAxisOptions(axis, expression, value);\n // update chart axis\n agGridCommunity._.set(axis, expression, value);\n });\n // chart axis properties are not reactive, need to schedule a layout\n chart.layoutPending = true;\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getLabelRotation = function (axisType) {\n var axis = this.getAxis(axisType);\n return agGridCommunity._.get(axis, 'label.rotation', undefined);\n };\n ChartOptionsService.prototype.setLabelRotation = function (axisType, value) {\n var expression = 'label.rotation';\n // update chart\n var chartAxis = this.getAxis(axisType);\n agGridCommunity._.set(chartAxis, expression, value);\n // chart axis properties are not reactive, need to schedule a layout\n this.getChart().layoutPending = true;\n // do not update axis options when the default category is selected\n if (chartAxis && !this.chartController.isDefaultCategorySelected()) {\n this.updateAxisOptions(chartAxis, expression, value);\n this.raiseChartOptionsChangedEvent();\n }\n };\n ChartOptionsService.prototype.getSeriesOption = function (expression, seriesType) {\n var series = this.getChart().series.find(function (s) { return ChartOptionsService.isMatchingSeries(seriesType, s); });\n return agGridCommunity._.get(series, expression, undefined);\n };\n ChartOptionsService.prototype.setSeriesOption = function (expression, value, seriesType) {\n // update series options\n var options = this.getChartOptions();\n if (!options[seriesType]) {\n options[seriesType] = {};\n }\n agGridCommunity._.set(options[seriesType].series, expression, value);\n // update chart series\n this.getChart().series.forEach(function (s) {\n if (ChartOptionsService.isMatchingSeries(seriesType, s)) {\n agGridCommunity._.set(s, expression, value);\n }\n });\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getPairedMode = function () {\n var optionsType = getSeriesType(this.getChartType());\n return agGridCommunity._.get(this.getChartOptions(), optionsType + \".paired\", undefined);\n };\n ChartOptionsService.prototype.setPairedMode = function (paired) {\n var optionsType = getSeriesType(this.getChartType());\n var options = agGridCommunity._.get(this.getChartOptions(), \"\" + optionsType, undefined);\n agGridCommunity._.set(options, 'paired', paired);\n };\n ChartOptionsService.prototype.getChart = function () {\n return this.chartController.getChartProxy().getChart();\n };\n ChartOptionsService.prototype.getChartOptions = function () {\n return this.chartController.getChartProxy().getChartOptions();\n };\n ChartOptionsService.prototype.getAxis = function (axisType) {\n var chart = this.getChart();\n if (!chart.axes || chart.axes.length < 1) {\n return undefined;\n }\n if (axisType === 'xAxis') {\n return (chart.axes && chart.axes[0].direction === 'x') ? chart.axes[0] : chart.axes[1];\n }\n return (chart.axes && chart.axes[1].direction === 'y') ? chart.axes[1] : chart.axes[0];\n };\n ChartOptionsService.prototype.updateAxisOptions = function (chartAxis, expression, value) {\n var optionsType = getSeriesType(this.getChartType());\n var axisOptions = this.getChartOptions()[optionsType].axes;\n if (chartAxis instanceof NumberAxis) {\n agGridCommunity._.set(axisOptions.number, expression, value);\n }\n else if (chartAxis instanceof CategoryAxis) {\n agGridCommunity._.set(axisOptions.category, expression, value);\n }\n else if (chartAxis instanceof TimeAxis) {\n agGridCommunity._.set(axisOptions.time, expression, value);\n }\n else if (chartAxis instanceof GroupedCategoryAxis) {\n agGridCommunity._.set(axisOptions.groupedCategory, expression, value);\n }\n };\n ChartOptionsService.prototype.raiseChartOptionsChangedEvent = function () {\n var chartModel = this.chartController.getChartModel();\n var event = Object.freeze({\n type: agGridCommunity.Events.EVENT_CHART_OPTIONS_CHANGED,\n chartId: chartModel.chartId,\n chartType: chartModel.chartType,\n chartThemeName: chartModel.chartThemeName,\n chartOptions: chartModel.chartOptions,\n api: this.gridApi,\n columnApi: this.columnApi,\n });\n this.eventService.dispatchEvent(event);\n };\n ChartOptionsService.isMatchingSeries = function (seriesType, series) {\n return seriesType === 'area' && series instanceof AreaSeries ? true :\n seriesType === 'bar' && series instanceof BarSeries ? true :\n seriesType === 'column' && series instanceof BarSeries ? true :\n seriesType === 'histogram' && series instanceof HistogramSeries ? true :\n seriesType === 'line' && series instanceof LineSeries ? true :\n seriesType === 'pie' && series instanceof PieSeries ? true :\n seriesType === 'scatter' && series instanceof ScatterSeries;\n };\n ChartOptionsService.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$1j([\n agGridCommunity.Autowired('gridApi')\n ], ChartOptionsService.prototype, \"gridApi\", void 0);\n __decorate$1j([\n agGridCommunity.Autowired('columnApi')\n ], ChartOptionsService.prototype, \"columnApi\", void 0);\n return ChartOptionsService;\n}(agGridCommunity.BeanStub));\n\nvar __extends$2U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$q = (undefined && undefined.__assign) || function () {\n __assign$q = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$q.apply(this, arguments);\n};\nvar ComboChartProxy = /** @class */ (function (_super) {\n __extends$2U(ComboChartProxy, _super);\n function ComboChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.xAxisType = params.grouping ? 'groupedCategory' : 'category';\n _this.yAxisType = 'number';\n _this.recreateChart();\n return _this;\n }\n ComboChartProxy.prototype.createChart = function () {\n return AgChart.create({\n container: this.chartProxyParams.parentElement,\n theme: this.chartTheme,\n });\n };\n ComboChartProxy.prototype.update = function (params) {\n var category = params.category, data = params.data;\n var options = {\n data: this.transformData(data, category.id)\n };\n if (this.seriesChanged(params)) {\n options.series = this.getSeriesOptions(params);\n options.axes = this.getAxes(params);\n }\n AgChart.update(this.chart, options);\n };\n ComboChartProxy.prototype.seriesChanged = function (params) {\n var seriesChartTypes = params.seriesChartTypes;\n var seriesChartTypesChanged = !agGridCommunity._.areEqual(this.prevSeriesChartTypes, seriesChartTypes, function (s1, s2) { return s1.colId === s2.colId && s1.chartType === s2.chartType && s1.secondaryAxis === s2.secondaryAxis; });\n // cache a cloned copy of `seriesChartTypes` for subsequent comparisons\n this.prevSeriesChartTypes = seriesChartTypes.map(function (s) { return (__assign$q({}, s)); });\n // check if any fields have changed\n var fields = params.fields.map(function (f) { return f.colId; }).join();\n var fieldsChanged = this.prevFields !== fields;\n this.prevFields = fields;\n // check if the category has changed\n var categoryId = params.category.id;\n var categoryChanged = this.prevCategoryId !== categoryId;\n this.prevCategoryId = categoryId;\n return seriesChartTypesChanged || fieldsChanged || categoryChanged;\n };\n ComboChartProxy.prototype.getSeriesOptions = function (params) {\n var _this = this;\n var fields = params.fields, category = params.category, seriesChartTypes = params.seriesChartTypes;\n return fields.map(function (field) {\n var seriesChartType = seriesChartTypes.find(function (s) { return s.colId === field.colId; });\n if (seriesChartType) {\n var chartType = seriesChartType.chartType;\n return __assign$q(__assign$q({}, _this.extractSeriesOverrides(seriesChartType)), { type: getSeriesType(chartType), xKey: category.id, yKey: field.colId, yName: field.displayName, grouped: ['groupedColumn', 'groupedBar', 'groupedArea'].includes(chartType), stacked: ['stackedArea', 'stackedColumn'].includes(chartType) });\n }\n });\n };\n ComboChartProxy.prototype.getAxes = function (updateParams) {\n var _this = this;\n this.xAxisType = updateParams.grouping ? 'groupedCategory' : 'category';\n var fields = updateParams ? updateParams.fields : [];\n var fieldsMap = new Map(fields.map(function (f) { return [f.colId, f]; }));\n var _a = this.getYKeys(fields, updateParams.seriesChartTypes), primaryYKeys = _a.primaryYKeys, secondaryYKeys = _a.secondaryYKeys;\n var _b = this.getAxisOptions(), bottomOptions = _b.bottomOptions, leftOptions = _b.leftOptions, rightOptions = _b.rightOptions;\n var axes = [\n __assign$q(__assign$q({}, bottomOptions), { type: this.xAxisType, position: ChartAxisPosition.Bottom, gridStyle: [\n { strokeWidth: 0 },\n ] }),\n ];\n if (primaryYKeys.length > 0) {\n axes.push(__assign$q(__assign$q({}, leftOptions), { type: this.yAxisType, keys: primaryYKeys, position: ChartAxisPosition.Left, title: __assign$q({}, deepMerge$1(leftOptions.title, {\n enabled: true,\n text: primaryYKeys.map(function (key) {\n var field = fieldsMap.get(key);\n return field ? field.displayName : key;\n }).join(' / '),\n })) }));\n }\n if (secondaryYKeys.length > 0) {\n secondaryYKeys.forEach(function (secondaryYKey, i) {\n var field = fieldsMap.get(secondaryYKey);\n var secondaryAxisIsVisible = field && field.colId === secondaryYKey;\n if (!secondaryAxisIsVisible) {\n return;\n }\n var secondaryAxisOptions = __assign$q(__assign$q({}, rightOptions), { type: _this.yAxisType, keys: [secondaryYKey], position: ChartAxisPosition.Right, title: __assign$q({}, deepMerge$1(rightOptions.title, {\n enabled: true,\n text: field ? field.displayName : secondaryYKey,\n })) });\n var primaryYAxis = primaryYKeys.some(function (primaryYKey) { return !!fieldsMap.get(primaryYKey); });\n var lastSecondaryAxis = i === secondaryYKeys.length - 1;\n if (!primaryYAxis && lastSecondaryAxis) ;\n else {\n secondaryAxisOptions.gridStyle = [\n { strokeWidth: 0 },\n ];\n }\n axes.push(secondaryAxisOptions);\n });\n }\n return axes;\n };\n ComboChartProxy.prototype.getAxisOptions = function () {\n var axisOptions = this.getAxesOptions('cartesian');\n return {\n bottomOptions: deepMerge$1(axisOptions[this.xAxisType], axisOptions[this.xAxisType].bottom),\n leftOptions: deepMerge$1(axisOptions[this.yAxisType], axisOptions[this.yAxisType].left),\n rightOptions: deepMerge$1(axisOptions[this.yAxisType], axisOptions[this.yAxisType].right),\n };\n };\n ComboChartProxy.prototype.getYKeys = function (fields, seriesChartTypes) {\n var primaryYKeys = [];\n var secondaryYKeys = [];\n fields.forEach(function (field) {\n var colId = field.colId;\n var seriesChartType = seriesChartTypes.find(function (s) { return s.colId === colId; });\n if (seriesChartType) {\n seriesChartType.secondaryAxis ? secondaryYKeys.push(colId) : primaryYKeys.push(colId);\n }\n });\n return { primaryYKeys: primaryYKeys, secondaryYKeys: secondaryYKeys };\n };\n ComboChartProxy.prototype.extractSeriesOverrides = function (seriesChartType) {\n var seriesOverrides = this.chartOptions[getSeriesType(seriesChartType.chartType)].series;\n // TODO: remove once `yKeys` and `yNames` have been removed from the options\n delete seriesOverrides.yKeys;\n delete seriesOverrides.yNames;\n return seriesOverrides;\n };\n return ComboChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$2V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridChartComp = /** @class */ (function (_super) {\n __extends$2V(GridChartComp, _super);\n function GridChartComp(params) {\n var _this = _super.call(this, GridChartComp.TEMPLATE) || this;\n _this.params = params;\n return _this;\n }\n GridChartComp.prototype.init = function () {\n var availableChartThemes = this.gridOptionsWrapper.getChartThemes();\n if (availableChartThemes.length < 1) {\n throw new Error('Cannot create chart: no chart themes are available to be used.');\n }\n var chartThemeName = this.params.chartThemeName;\n if (!agGridCommunity._.includes(availableChartThemes, chartThemeName)) {\n chartThemeName = availableChartThemes[0];\n }\n var modelParams = {\n chartId: this.params.chartId,\n pivotChart: this.params.pivotChart,\n chartType: this.params.chartType,\n chartThemeName: chartThemeName,\n aggFunc: this.params.aggFunc,\n cellRange: this.params.cellRange,\n suppressChartRanges: this.params.suppressChartRanges,\n unlinkChart: this.params.unlinkChart,\n crossFiltering: this.params.crossFiltering,\n seriesChartTypes: this.params.seriesChartTypes,\n };\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n this.addCssClass(isRtl ? 'ag-rtl' : 'ag-ltr');\n // only the chart controller interacts with the chart model\n var model = this.createBean(new ChartDataModel(modelParams));\n this.chartController = this.createManagedBean(new ChartController(model));\n this.validateCustomThemes();\n // create chart before dialog to ensure dialog is correct size\n this.createChart();\n if (this.params.insideDialog) {\n this.addDialog();\n }\n this.addMenu();\n this.addTitleEditComp();\n this.addManagedListener(this.getGui(), 'focusin', this.setActiveChartCellRange.bind(this));\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, this.refresh.bind(this));\n if (this.chartMenu) {\n // chart menu may not exist, i.e. cross filtering\n this.addManagedListener(this.chartMenu, ChartMenu.EVENT_DOWNLOAD_CHART, this.downloadChart.bind(this));\n }\n this.refresh();\n this.raiseChartCreatedEvent();\n };\n GridChartComp.prototype.validateCustomThemes = function () {\n var suppliedThemes = this.gridOptionsWrapper.getChartThemes();\n var customChartThemes = this.gridOptionsWrapper.getCustomChartThemes();\n if (customChartThemes) {\n agGridCommunity._.getAllKeysInObjects([customChartThemes]).forEach(function (customThemeName) {\n if (!agGridCommunity._.includes(suppliedThemes, customThemeName)) {\n console.warn(\"AG Grid: a custom chart theme with the name '\" + customThemeName + \"' has been \" +\n \"supplied but not added to the 'chartThemes' list\");\n }\n });\n }\n };\n GridChartComp.prototype.createChart = function () {\n var _this = this;\n // if chart already exists, destroy it and remove it from DOM\n if (this.chartProxy) {\n this.chartProxy.destroy();\n }\n var crossFilterCallback = function (event, reset) {\n var ctx = _this.params.crossFilteringContext;\n ctx.lastSelectedChartId = reset ? '' : _this.chartController.getChartId();\n _this.crossFilterService.filter(event, reset);\n };\n var chartType = this.chartController.getChartType();\n var chartProxyParams = {\n chartType: chartType,\n getChartThemeName: this.getChartThemeName.bind(this),\n getChartThemes: this.getChartThemes.bind(this),\n customChartThemes: this.gridOptionsWrapper.getCustomChartThemes(),\n getGridOptionsChartThemeOverrides: this.getGridOptionsChartThemeOverrides.bind(this),\n apiChartThemeOverrides: this.params.chartThemeOverrides,\n crossFiltering: this.params.crossFiltering,\n crossFilterCallback: crossFilterCallback,\n parentElement: this.eChart,\n grouping: this.chartController.isGrouping(),\n chartOptionsToRestore: this.params.chartOptionsToRestore,\n chartPaletteToRestore: this.params.chartPaletteToRestore,\n seriesChartTypes: this.chartController.getSeriesChartTypes()\n };\n // ensure 'restoring' options are not reused when switching chart types\n this.params.chartOptionsToRestore = undefined;\n // set local state used to detect when chart changes\n this.chartType = chartType;\n this.chartThemeName = this.chartController.getChartThemeName();\n this.chartProxy = GridChartComp.createChartProxy(chartProxyParams);\n if (!this.chartProxy) {\n console.warn('AG Grid: invalid chart type supplied: ', chartProxyParams.chartType);\n return;\n }\n var canvas = this.eChart.querySelector('canvas');\n if (canvas) {\n canvas.classList.add('ag-charts-canvas');\n }\n this.chartController.setChartProxy(this.chartProxy);\n this.chartOptionsService = this.createBean(new ChartOptionsService(this.chartController));\n this.titleEdit && this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n };\n GridChartComp.prototype.getChartThemeName = function () {\n return this.chartController.getChartThemeName();\n };\n GridChartComp.prototype.getChartThemes = function () {\n return this.chartController.getThemes();\n };\n GridChartComp.prototype.getGridOptionsChartThemeOverrides = function () {\n return this.gridOptionsWrapper.getChartThemeOverrides();\n };\n GridChartComp.createChartProxy = function (chartProxyParams) {\n switch (chartProxyParams.chartType) {\n case 'column':\n case 'bar':\n case 'groupedColumn':\n case 'stackedColumn':\n case 'normalizedColumn':\n case 'groupedBar':\n case 'stackedBar':\n case 'normalizedBar':\n return new BarChartProxy(chartProxyParams);\n case 'pie':\n return new PieChartProxy(chartProxyParams);\n case 'doughnut':\n return new DoughnutChartProxy(chartProxyParams);\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n return new AreaChartProxy(chartProxyParams);\n case 'line':\n return new LineChartProxy(chartProxyParams);\n case 'scatter':\n case 'bubble':\n return new ScatterChartProxy(chartProxyParams);\n case 'histogram':\n return new HistogramChartProxy(chartProxyParams);\n case 'columnLineCombo':\n case 'areaColumnCombo':\n case 'customCombo':\n return new ComboChartProxy(chartProxyParams);\n default:\n throw \"AG Grid: Unable to create chart as an invalid chartType = '\" + chartProxyParams.chartType + \"' was supplied.\";\n }\n };\n GridChartComp.prototype.addDialog = function () {\n var _this = this;\n var title = this.chartTranslationService.translate(this.params.pivotChart ? 'pivotChartTitle' : 'rangeChartTitle');\n var _a = this.getBestDialogSize(), width = _a.width, height = _a.height;\n this.chartDialog = new agGridCommunity.AgDialog({\n resizable: true,\n movable: true,\n maximizable: true,\n title: title,\n width: width,\n height: height,\n component: this,\n centered: true,\n closable: true\n });\n this.getContext().createBean(this.chartDialog);\n this.chartDialog.addEventListener(agGridCommunity.AgDialog.EVENT_DESTROYED, function () { return _this.destroy(); });\n };\n GridChartComp.prototype.getBestDialogSize = function () {\n var popupParent = this.popupService.getPopupParent();\n var maxWidth = agGridCommunity._.getAbsoluteWidth(popupParent) * 0.75;\n var maxHeight = agGridCommunity._.getAbsoluteHeight(popupParent) * 0.75;\n var ratio = 0.553;\n var chart = this.chartProxy.getChart();\n var width = this.params.insideDialog ? 850 : chart.width;\n var height = this.params.insideDialog ? 470 : chart.height;\n if (width > maxWidth || height > maxHeight) {\n width = Math.min(width, maxWidth);\n height = Math.round(width * ratio);\n if (height > maxHeight) {\n height = maxHeight;\n width = Math.min(width, Math.round(height / ratio));\n }\n }\n return { width: width, height: height };\n };\n GridChartComp.prototype.addMenu = function () {\n if (!this.params.crossFiltering) {\n this.chartMenu = this.createBean(new ChartMenu(this.eChartContainer, this.eMenuContainer, this.chartController, this.chartOptionsService));\n this.eChartContainer.appendChild(this.chartMenu.getGui());\n }\n };\n GridChartComp.prototype.addTitleEditComp = function () {\n this.titleEdit = this.createBean(new TitleEdit(this.chartMenu));\n this.eTitleEditContainer.appendChild(this.titleEdit.getGui());\n if (this.chartProxy) {\n this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n }\n };\n GridChartComp.prototype.refresh = function () {\n if (this.shouldRecreateChart()) {\n this.createChart();\n }\n this.updateChart();\n };\n GridChartComp.prototype.shouldRecreateChart = function () {\n return this.chartType !== this.chartController.getChartType() || this.chartThemeName !== this.chartController.getChartThemeName();\n };\n GridChartComp.prototype.getCurrentChartType = function () {\n return this.chartType;\n };\n GridChartComp.prototype.getChartModel = function () {\n return this.chartController.getChartModel();\n };\n GridChartComp.prototype.getChartImageDataURL = function (fileFormat) {\n return this.chartProxy.getChartImageDataURL(fileFormat);\n };\n GridChartComp.prototype.updateChart = function () {\n var _this = this;\n var chartProxy = this.chartProxy;\n var selectedCols = this.chartController.getSelectedValueColState();\n var fields = selectedCols.map(function (c) { return ({ colId: c.colId, displayName: c.displayName }); });\n var data = this.chartController.getChartData();\n var chartEmpty = this.handleEmptyChart(data, fields);\n if (chartEmpty) {\n return;\n }\n var selectedDimension = this.chartController.getSelectedDimension();\n var chartUpdateParams = {\n data: data,\n grouping: this.chartController.isGrouping(),\n category: {\n id: selectedDimension.colId,\n name: selectedDimension.displayName,\n chartDataType: this.getChartDataType(selectedDimension.colId)\n },\n fields: fields,\n chartId: this.chartController.getChartId(),\n getCrossFilteringContext: function () { return _this.params.crossFilteringContext; },\n seriesChartTypes: this.chartController.getSeriesChartTypes()\n };\n chartProxy.update(chartUpdateParams);\n this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n };\n GridChartComp.prototype.getChartDataType = function (colId) {\n var column = this.columnModel.getPrimaryColumn(colId);\n return column ? column.getColDef().chartDataType : undefined;\n };\n GridChartComp.prototype.handleEmptyChart = function (data, fields) {\n var container = this.chartProxy.getChart().container;\n var pivotModeDisabled = this.chartController.isPivotChart() && !this.chartController.isPivotMode();\n var minFieldsRequired = 1;\n if (this.chartController.isActiveXYChart()) {\n minFieldsRequired = this.chartController.getChartType() === 'bubble' ? 3 : 2;\n }\n var isEmptyChart = fields.length < minFieldsRequired || data.length === 0;\n if (container) {\n var isEmpty = pivotModeDisabled || isEmptyChart;\n agGridCommunity._.setDisplayed(this.eChart, !isEmpty);\n agGridCommunity._.setDisplayed(this.eEmpty, isEmpty);\n }\n if (pivotModeDisabled) {\n this.eEmpty.innerText = this.chartTranslationService.translate('pivotChartRequiresPivotMode');\n return true;\n }\n if (isEmptyChart) {\n this.eEmpty.innerText = this.chartTranslationService.translate('noDataToChart');\n return true;\n }\n return false;\n };\n GridChartComp.prototype.downloadChart = function () {\n this.chartProxy.downloadChart();\n };\n GridChartComp.prototype.getChartId = function () {\n return this.chartController.getChartId();\n };\n GridChartComp.prototype.getUnderlyingChart = function () {\n return this.chartProxy.getChart();\n };\n GridChartComp.prototype.refreshCanvasSize = function () {\n if (!this.params.insideDialog) {\n return;\n }\n var eChart = this.eChart;\n if (this.chartMenu.isVisible()) {\n // we don't want the menu showing to affect the chart options\n var chart = this.chartProxy.getChart();\n chart.height = agGridCommunity._.getInnerHeight(eChart);\n chart.width = agGridCommunity._.getInnerWidth(eChart);\n }\n };\n GridChartComp.prototype.setActiveChartCellRange = function (focusEvent) {\n if (this.getGui().contains(focusEvent.relatedTarget)) {\n return;\n }\n this.chartController.setChartRange(true);\n this.gridApi.focusService.clearFocusedCell();\n };\n GridChartComp.prototype.raiseChartCreatedEvent = function () {\n var event = Object.freeze({\n type: agGridCommunity.Events.EVENT_CHART_CREATED,\n chartId: this.chartController.getChartId(),\n api: this.gridApi,\n columnApi: this.columnApi,\n });\n this.eventService.dispatchEvent(event);\n };\n GridChartComp.prototype.raiseChartDestroyedEvent = function () {\n var event = Object.freeze({\n type: agGridCommunity.Events.EVENT_CHART_DESTROYED,\n chartId: this.chartController.getChartId(),\n api: this.gridApi,\n columnApi: this.columnApi,\n });\n this.eventService.dispatchEvent(event);\n };\n GridChartComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.chartProxy) {\n this.chartProxy.destroy();\n }\n this.destroyBean(this.chartMenu);\n // don't want to invoke destroy() on the Dialog (prevents destroy loop)\n if (this.chartDialog && this.chartDialog.isAlive()) {\n this.destroyBean(this.chartDialog);\n }\n // if the user is providing containers for the charts, we need to clean up, otherwise the old chart\n // data will still be visible although the chart is no longer bound to the grid\n var eGui = this.getGui();\n agGridCommunity._.clearElement(eGui);\n // remove from parent, so if user provided container, we detach from the provided dom element\n agGridCommunity._.removeFromParent(eGui);\n this.raiseChartDestroyedEvent();\n };\n GridChartComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$1k([\n agGridCommunity.RefSelector('eChart')\n ], GridChartComp.prototype, \"eChart\", void 0);\n __decorate$1k([\n agGridCommunity.RefSelector('eChartContainer')\n ], GridChartComp.prototype, \"eChartContainer\", void 0);\n __decorate$1k([\n agGridCommunity.RefSelector('eMenuContainer')\n ], GridChartComp.prototype, \"eMenuContainer\", void 0);\n __decorate$1k([\n agGridCommunity.RefSelector('eEmpty')\n ], GridChartComp.prototype, \"eEmpty\", void 0);\n __decorate$1k([\n agGridCommunity.RefSelector('eTitleEditContainer')\n ], GridChartComp.prototype, \"eTitleEditContainer\", void 0);\n __decorate$1k([\n agGridCommunity.Autowired('environment')\n ], GridChartComp.prototype, \"environment\", void 0);\n __decorate$1k([\n agGridCommunity.Autowired('columnModel')\n ], GridChartComp.prototype, \"columnModel\", void 0);\n __decorate$1k([\n agGridCommunity.Autowired('chartCrossFilterService')\n ], GridChartComp.prototype, \"crossFilterService\", void 0);\n __decorate$1k([\n agGridCommunity.Autowired('chartTranslationService')\n ], GridChartComp.prototype, \"chartTranslationService\", void 0);\n __decorate$1k([\n agGridCommunity.Autowired('gridApi')\n ], GridChartComp.prototype, \"gridApi\", void 0);\n __decorate$1k([\n agGridCommunity.Autowired('columnApi')\n ], GridChartComp.prototype, \"columnApi\", void 0);\n __decorate$1k([\n agGridCommunity.Autowired('popupService')\n ], GridChartComp.prototype, \"popupService\", void 0);\n __decorate$1k([\n agGridCommunity.PostConstruct\n ], GridChartComp.prototype, \"init\", null);\n return GridChartComp;\n}(agGridCommunity.Component));\n\n// the line below is automatically modified during releases - do not modify\n// (see scripts/release/updateChartModel.js)\nvar CURRENT_VERSION = \"27.3.0\";\nfunction upgradeChartModel(model) {\n if (model.version == null) {\n // First release with version field.\n model.version = \"27.1.0\";\n }\n var _a = versionParts(model.version);\n // TODO: Add some transforms as the model changes over time.\n // if (major < 28) {\n // model = migrateToV28Model(model);\n // }\n return model;\n}\nfunction versionParts(version) {\n var split = typeof version === 'string' ?\n version.split('.').map(function (v) { return Number(v); }) :\n [];\n if (split.length !== 3 || split.some(function (v) { return isNaN(v); })) {\n throw new Error('AG Grid - Illegal version string: ' + version);\n }\n return {\n major: split[0],\n minor: split[1],\n patch: split[2],\n };\n}\n\nvar __extends$2W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$r = (undefined && undefined.__assign) || function () {\n __assign$r = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$r.apply(this, arguments);\n};\nvar __decorate$1l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartService = /** @class */ (function (_super) {\n __extends$2W(ChartService, _super);\n function ChartService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // we destroy all charts bound to this grid when grid is destroyed. activeCharts contains all charts, including\n // those in developer provided containers.\n _this.activeCharts = new Set();\n _this.activeChartComps = new Set();\n // this shared (singleton) context is used by cross filtering in line and area charts\n _this.crossFilteringContext = {\n lastSelectedChartId: '',\n };\n return _this;\n }\n ChartService.prototype.getChartModels = function () {\n var models = [];\n var versionedModel = function (c) {\n return __assign$r(__assign$r({}, c), { version: CURRENT_VERSION });\n };\n this.activeChartComps.forEach(function (c) { return models.push(versionedModel(c.getChartModel())); });\n return models;\n };\n ChartService.prototype.getChartRef = function (chartId) {\n var chartRef;\n this.activeCharts.forEach(function (cr) {\n if (cr.chartId === chartId) {\n chartRef = cr;\n }\n });\n return chartRef;\n };\n ChartService.prototype.getChartImageDataURL = function (params) {\n var url;\n this.activeChartComps.forEach(function (c) {\n if (c.getChartId() === params.chartId) {\n url = c.getChartImageDataURL(params.fileFormat);\n }\n });\n return url;\n };\n ChartService.prototype.createChartFromCurrentRange = function (chartType) {\n if (chartType === void 0) { chartType = 'groupedColumn'; }\n var selectedRange = this.getSelectedRange();\n return this.createChart(selectedRange, chartType);\n };\n ChartService.prototype.restoreChart = function (model, chartContainer) {\n var _this = this;\n if (!model) {\n console.warn(\"AG Grid - unable to restore chart as no chart model is provided\");\n return;\n }\n if (model.version !== CURRENT_VERSION) {\n model = upgradeChartModel(model);\n }\n var params = {\n cellRange: model.cellRange,\n chartType: model.chartType,\n chartThemeName: model.chartThemeName,\n chartContainer: chartContainer,\n suppressChartRanges: model.suppressChartRanges,\n aggFunc: model.aggFunc,\n unlinkChart: model.unlinkChart,\n seriesChartTypes: model.seriesChartTypes\n };\n var getCellRange = function (cellRangeParams) {\n return _this.rangeService\n ? _this.rangeService.createCellRangeFromCellRangeParams(cellRangeParams)\n : undefined;\n };\n if (model.modelType === 'pivot') {\n // if required enter pivot mode\n if (!this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(true, \"pivotChart\");\n }\n // pivot chart range contains all visible column without a row range to include all rows\n var columns = this.columnModel.getAllDisplayedColumns().map(function (col) { return col.getColId(); });\n var chartAllRangeParams = { rowStartIndex: null, rowEndIndex: null, columns: columns };\n var cellRange_1 = getCellRange(chartAllRangeParams);\n if (!cellRange_1) {\n console.warn(\"AG Grid - unable to create chart as there are no columns in the grid.\");\n return;\n }\n return this.createChart(cellRange_1, params.chartType, params.chartThemeName, true, true, params.chartContainer, undefined, undefined, params.unlinkChart, false, model.chartOptions);\n }\n var cellRange = getCellRange(params.cellRange);\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, params.suppressChartRanges, params.chartContainer, params.aggFunc, undefined, params.unlinkChart, false, model.chartOptions, model.chartPalette, params.seriesChartTypes);\n };\n ChartService.prototype.createRangeChart = function (params) {\n var cellRange = this.rangeService\n ? this.rangeService.createCellRangeFromCellRangeParams(params.cellRange)\n : undefined;\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, params.suppressChartRanges, params.chartContainer, params.aggFunc, params.chartThemeOverrides, params.unlinkChart, undefined, undefined, undefined, params.seriesChartTypes);\n };\n ChartService.prototype.createPivotChart = function (params) {\n // if required enter pivot mode\n if (!this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(true, \"pivotChart\");\n }\n // pivot chart range contains all visible column without a row range to include all rows\n var chartAllRangeParams = {\n rowStartIndex: null,\n rowEndIndex: null,\n columns: this.columnModel.getAllDisplayedColumns().map(function (col) { return col.getColId(); })\n };\n var cellRange = this.rangeService\n ? this.rangeService.createCellRangeFromCellRangeParams(chartAllRangeParams)\n : undefined;\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as there are no columns in the grid.\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, true, true, params.chartContainer, undefined, params.chartThemeOverrides, params.unlinkChart);\n };\n ChartService.prototype.createCrossFilterChart = function (params) {\n var cellRange = this.rangeService\n ? this.rangeService.createCellRangeFromCellRangeParams(params.cellRange)\n : undefined;\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n var crossFiltering = true;\n var suppressChartRangesSupplied = typeof params.suppressChartRanges !== 'undefined' && params.suppressChartRanges !== null;\n var suppressChartRanges = suppressChartRangesSupplied ? params.suppressChartRanges : true;\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, suppressChartRanges, params.chartContainer, params.aggFunc, params.chartThemeOverrides, params.unlinkChart, crossFiltering);\n };\n ChartService.prototype.createChart = function (cellRange, chartType, chartThemeName, pivotChart, suppressChartRanges, container, aggFunc, chartThemeOverrides, unlinkChart, crossFiltering, chartOptionsToRestore, chartPaletteToRestore, seriesChartTypes) {\n var _this = this;\n if (pivotChart === void 0) { pivotChart = false; }\n if (suppressChartRanges === void 0) { suppressChartRanges = false; }\n if (unlinkChart === void 0) { unlinkChart = false; }\n if (crossFiltering === void 0) { crossFiltering = false; }\n var createChartContainerFunc = this.gridOptionsWrapper.getCreateChartContainerFunc();\n var params = {\n chartId: this.generateId(),\n pivotChart: pivotChart,\n cellRange: cellRange,\n chartType: chartType,\n chartThemeName: chartThemeName,\n insideDialog: !(container || createChartContainerFunc),\n suppressChartRanges: suppressChartRanges,\n aggFunc: aggFunc,\n chartThemeOverrides: chartThemeOverrides,\n unlinkChart: unlinkChart,\n crossFiltering: crossFiltering,\n crossFilteringContext: this.crossFilteringContext,\n chartOptionsToRestore: chartOptionsToRestore,\n chartPaletteToRestore: chartPaletteToRestore,\n seriesChartTypes: seriesChartTypes\n };\n var chartComp = new GridChartComp(params);\n this.context.createBean(chartComp);\n var chartRef = this.createChartRef(chartComp);\n if (container) {\n // if container exists, means developer initiated chart create via API, so place in provided container\n container.appendChild(chartComp.getGui());\n // if the chart container was placed outside of an element that\n // has the grid's theme, we manually add the current theme to\n // make sure all styles for the chartMenu are rendered correctly\n var theme = this.environment.getTheme();\n if (theme.el && !theme.el.contains(container)) {\n container.classList.add(theme.theme);\n }\n }\n else if (createChartContainerFunc) {\n // otherwise user created chart via grid UI, check if developer provides containers (eg if the application\n // is using its own dialogs rather than the grid provided dialogs)\n createChartContainerFunc(chartRef);\n }\n else {\n // add listener to remove from active charts list when charts are destroyed, e.g. closing chart dialog\n chartComp.addEventListener(GridChartComp.EVENT_DESTROYED, function () {\n _this.activeChartComps.delete(chartComp);\n _this.activeCharts.delete(chartRef);\n });\n }\n return chartRef;\n };\n ChartService.prototype.createChartRef = function (chartComp) {\n var _this = this;\n var chartRef = {\n destroyChart: function () {\n if (_this.activeCharts.has(chartRef)) {\n _this.context.destroyBean(chartComp);\n _this.activeChartComps.delete(chartComp);\n _this.activeCharts.delete(chartRef);\n }\n },\n chartElement: chartComp.getGui(),\n chart: chartComp.getUnderlyingChart(),\n chartId: chartComp.getChartModel().chartId\n };\n this.activeCharts.add(chartRef);\n this.activeChartComps.add(chartComp);\n return chartRef;\n };\n ChartService.prototype.getSelectedRange = function () {\n var ranges = this.rangeService.getCellRanges();\n return ranges.length > 0 ? ranges[0] : {};\n };\n ChartService.prototype.generateId = function () {\n return 'id-' + Math.random().toString(36).substr(2, 16);\n };\n ChartService.prototype.destroyAllActiveCharts = function () {\n this.activeCharts.forEach(function (chart) { return chart.destroyChart(); });\n };\n __decorate$1l([\n agGridCommunity.Optional('rangeService')\n ], ChartService.prototype, \"rangeService\", void 0);\n __decorate$1l([\n agGridCommunity.Autowired('columnModel')\n ], ChartService.prototype, \"columnModel\", void 0);\n __decorate$1l([\n agGridCommunity.Autowired('environment')\n ], ChartService.prototype, \"environment\", void 0);\n __decorate$1l([\n agGridCommunity.PreDestroy\n ], ChartService.prototype, \"destroyAllActiveCharts\", null);\n ChartService = __decorate$1l([\n agGridCommunity.Bean('chartService')\n ], ChartService);\n return ChartService;\n}(agGridCommunity.BeanStub));\n\nvar __extends$2X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartTranslationService = /** @class */ (function (_super) {\n __extends$2X(ChartTranslationService, _super);\n function ChartTranslationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartTranslationService_1 = ChartTranslationService;\n ChartTranslationService.prototype.translate = function (toTranslate, defaultText) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var defaultTranslation = ChartTranslationService_1.DEFAULT_TRANSLATIONS[toTranslate] || defaultText;\n return translate(toTranslate, defaultTranslation);\n };\n var ChartTranslationService_1;\n ChartTranslationService.DEFAULT_TRANSLATIONS = {\n pivotChartTitle: 'Pivot Chart',\n rangeChartTitle: 'Range Chart',\n settings: 'Settings',\n data: 'Data',\n format: 'Format',\n categories: 'Categories',\n defaultCategory: '(None)',\n series: 'Series',\n xyValues: 'X Y Values',\n paired: 'Paired Mode',\n axis: 'Axis',\n navigator: 'Navigator',\n color: 'Color',\n thickness: 'Thickness',\n xType: 'X Type',\n automatic: 'Automatic',\n category: 'Category',\n number: 'Number',\n time: 'Time',\n xRotation: 'X Rotation',\n yRotation: 'Y Rotation',\n ticks: 'Ticks',\n width: 'Width',\n height: 'Height',\n length: 'Length',\n padding: 'Padding',\n spacing: 'Spacing',\n chart: 'Chart',\n title: 'Title',\n titlePlaceholder: 'Chart title - double click to edit',\n background: 'Background',\n font: 'Font',\n top: 'Top',\n right: 'Right',\n bottom: 'Bottom',\n left: 'Left',\n labels: 'Labels',\n size: 'Size',\n shape: 'Shape',\n minSize: 'Minimum Size',\n maxSize: 'Maximum Size',\n legend: 'Legend',\n position: 'Position',\n markerSize: 'Marker Size',\n markerStroke: 'Marker Stroke',\n markerPadding: 'Marker Padding',\n itemSpacing: 'Item Spacing',\n itemPaddingX: 'Item Padding X',\n itemPaddingY: 'Item Padding Y',\n layoutHorizontalSpacing: 'Horizontal Spacing',\n layoutVerticalSpacing: 'Vertical Spacing',\n strokeWidth: 'Stroke Width',\n offset: 'Offset',\n offsets: 'Offsets',\n tooltips: 'Tooltips',\n callout: 'Callout',\n markers: 'Markers',\n shadow: 'Shadow',\n blur: 'Blur',\n xOffset: 'X Offset',\n yOffset: 'Y Offset',\n lineWidth: 'Line Width',\n lineDash: 'Line Dash',\n normal: 'Normal',\n bold: 'Bold',\n italic: 'Italic',\n boldItalic: 'Bold Italic',\n predefined: 'Predefined',\n fillOpacity: 'Fill Opacity',\n strokeOpacity: 'Line Opacity',\n histogramBinCount: 'Bin count',\n columnGroup: 'Column',\n barGroup: 'Bar',\n pieGroup: 'Pie',\n lineGroup: 'Line',\n scatterGroup: 'X Y (Scatter)',\n areaGroup: 'Area',\n histogramGroup: 'Histogram',\n combinationGroup: 'Combination',\n groupedColumnTooltip: 'Grouped',\n stackedColumnTooltip: 'Stacked',\n normalizedColumnTooltip: '100% Stacked',\n groupedBarTooltip: 'Grouped',\n stackedBarTooltip: 'Stacked',\n normalizedBarTooltip: '100% Stacked',\n pieTooltip: 'Pie',\n doughnutTooltip: 'Doughnut',\n lineTooltip: 'Line',\n groupedAreaTooltip: 'Area',\n stackedAreaTooltip: 'Stacked',\n normalizedAreaTooltip: '100% Stacked',\n scatterTooltip: 'Scatter',\n bubbleTooltip: 'Bubble',\n histogramTooltip: 'Histogram',\n columnLineComboTooltip: 'Column & Line',\n areaColumnComboTooltip: 'Area & Column',\n customComboTooltip: 'Custom Combination',\n noDataToChart: 'No data available to be charted.',\n pivotChartRequiresPivotMode: 'Pivot Chart requires Pivot Mode enabled.',\n chartSettingsToolbarTooltip: 'Menu',\n chartLinkToolbarTooltip: 'Linked to Grid',\n chartUnlinkToolbarTooltip: 'Unlinked from Grid',\n chartDownloadToolbarTooltip: 'Download Chart',\n seriesChartType: 'Series Chart Type',\n seriesType: 'Series Type',\n secondaryAxis: 'Secondary Axis',\n };\n ChartTranslationService = ChartTranslationService_1 = __decorate$1m([\n agGridCommunity.Bean(\"chartTranslationService\")\n ], ChartTranslationService);\n return ChartTranslationService;\n}(agGridCommunity.BeanStub));\n\nvar __extends$2Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartCrossFilterService = /** @class */ (function (_super) {\n __extends$2Y(ChartCrossFilterService, _super);\n function ChartCrossFilterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartCrossFilterService_1 = ChartCrossFilterService;\n ChartCrossFilterService.prototype.filter = function (event, reset) {\n if (reset === void 0) { reset = false; }\n var filterModel = this.gridApi.getFilterModel();\n // filters should be reset when user clicks on canvas background\n if (reset) {\n this.resetFilters(filterModel);\n return;\n }\n var colId = ChartCrossFilterService_1.extractFilterColId(event);\n if (this.isValidColumnFilter(colId)) {\n // update filters based on current chart selections\n this.updateFilters(filterModel, event, colId);\n }\n else {\n console.warn(\"AG Grid: cross filtering requires a 'agSetColumnFilter' or 'agMultiColumnFilter' \" +\n \"to be defined on the column with id: '\" + colId + \"'\");\n }\n };\n ChartCrossFilterService.prototype.resetFilters = function (filterModel) {\n var filtersExist = Object.keys(filterModel).length > 0;\n if (filtersExist) {\n // only reset filters / charts when necessary to prevent undesirable flickering effect\n this.gridApi.setFilterModel(null);\n this.gridApi.onFilterChanged();\n }\n };\n ChartCrossFilterService.prototype.updateFilters = function (filterModel, event, colId) {\n var _a;\n var dataKey = ChartCrossFilterService_1.extractFilterColId(event);\n var rawValue = event.datum[dataKey];\n if (rawValue === undefined) {\n return;\n }\n var selectedValue = rawValue.toString();\n if (event.event.metaKey || event.event.ctrlKey) {\n var existingGridValues = this.getCurrentGridValuesForCategory(colId);\n var valueAlreadyExists = agGridCommunity._.includes(existingGridValues, selectedValue);\n var updatedValues = void 0;\n if (valueAlreadyExists) {\n updatedValues = existingGridValues.filter(function (v) { return v !== selectedValue; });\n }\n else {\n updatedValues = existingGridValues;\n updatedValues.push(selectedValue);\n }\n filterModel[colId] = this.getUpdatedFilterModel(colId, updatedValues);\n }\n else {\n var updatedValues = [selectedValue];\n filterModel = (_a = {}, _a[colId] = this.getUpdatedFilterModel(colId, updatedValues), _a);\n }\n this.gridApi.setFilterModel(filterModel);\n };\n ChartCrossFilterService.prototype.getUpdatedFilterModel = function (colId, updatedValues) {\n var columnFilterType = this.getColumnFilterType(colId);\n if (columnFilterType === 'agMultiColumnFilter') {\n return { filterType: 'multi', filterModels: [null, { filterType: 'set', values: updatedValues }] };\n }\n return { filterType: 'set', values: updatedValues };\n };\n ChartCrossFilterService.prototype.getCurrentGridValuesForCategory = function (colId) {\n var _this = this;\n var filteredValues = [];\n var column = this.getColumnById(colId);\n this.gridApi.forEachNodeAfterFilter(function (rowNode) {\n if (column && !rowNode.group) {\n var value = _this.valueService.getValue(column, rowNode) + '';\n if (!filteredValues.includes(value)) {\n filteredValues.push(value);\n }\n }\n });\n return filteredValues;\n };\n ChartCrossFilterService.extractFilterColId = function (event) {\n return event.xKey ? event.xKey : event.labelKey;\n };\n ChartCrossFilterService.prototype.isValidColumnFilter = function (colId) {\n if (colId.indexOf('-filtered-out')) {\n colId = colId.replace('-filtered-out', '');\n }\n var filterType = this.getColumnFilterType(colId);\n if (typeof filterType === 'boolean') {\n return filterType;\n }\n return agGridCommunity._.includes(['agSetColumnFilter', 'agMultiColumnFilter'], filterType);\n };\n ChartCrossFilterService.prototype.getColumnFilterType = function (colId) {\n var gridColumn = this.getColumnById(colId);\n if (gridColumn) {\n var colDef = gridColumn.getColDef();\n return colDef.filter != null ? colDef.filter : colDef.filterFramework;\n }\n };\n ChartCrossFilterService.prototype.getColumnById = function (colId) {\n return this.columnModel.getGridColumn(colId);\n };\n var ChartCrossFilterService_1;\n __decorate$1n([\n agGridCommunity.Autowired('gridApi')\n ], ChartCrossFilterService.prototype, \"gridApi\", void 0);\n __decorate$1n([\n agGridCommunity.Autowired('columnModel')\n ], ChartCrossFilterService.prototype, \"columnModel\", void 0);\n __decorate$1n([\n agGridCommunity.Autowired('valueService')\n ], ChartCrossFilterService.prototype, \"valueService\", void 0);\n ChartCrossFilterService = ChartCrossFilterService_1 = __decorate$1n([\n agGridCommunity.Bean(\"chartCrossFilterService\")\n ], ChartCrossFilterService);\n return ChartCrossFilterService;\n}(agGridCommunity.BeanStub));\n\nvar __extends$2Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$P = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$m = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$P(arguments[i]));\n return ar;\n};\nvar __values$f = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar RangeService = /** @class */ (function (_super) {\n __extends$2Z(RangeService, _super);\n function RangeService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellRanges = [];\n _this.bodyScrollListener = _this.onBodyScroll.bind(_this);\n _this.dragging = false;\n return _this;\n }\n RangeService.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_VISIBLE, this.onColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_GROUP_OPENED, this.refreshLastRangeStart.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_MOVED, this.refreshLastRangeStart.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PINNED, this.refreshLastRangeStart.bind(this));\n this.ctrlsService.whenReady(function () {\n var gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.autoScrollService = new agGridCommunity.AutoScrollService({\n scrollContainer: gridBodyCtrl.getBodyViewportElement(),\n scrollAxis: 'xy',\n getVerticalPosition: function () { return gridBodyCtrl.getScrollFeature().getVScrollPosition().top; },\n setVerticalPosition: function (position) { return gridBodyCtrl.getScrollFeature().setVerticalScrollPosition(position); },\n getHorizontalPosition: function () { return gridBodyCtrl.getScrollFeature().getHScrollPosition().left; },\n setHorizontalPosition: function (position) { return gridBodyCtrl.getScrollFeature().setHorizontalScrollPosition(position); },\n shouldSkipVerticalScroll: function () { return _this.gridOptionsWrapper.getDomLayout() !== agGridCommunity.Constants.DOM_LAYOUT_NORMAL; },\n shouldSkipHorizontalScroll: function () { return gridBodyCtrl.getScrollFeature().isHorizontalScrollShowing(); }\n });\n });\n };\n // Called for both columns loaded & column visibility events\n RangeService.prototype.onColumnsChanged = function () {\n var _this = this;\n // first move start column in last cell range (i.e. series chart range)\n this.refreshLastRangeStart();\n var allColumns = this.columnModel.getAllDisplayedColumns();\n // check that the columns in each range still exist and are visible\n this.cellRanges.forEach(function (cellRange) {\n var beforeCols = cellRange.columns;\n // remove hidden or removed cols from cell range\n cellRange.columns = cellRange.columns.filter(function (col) { return col.isVisible() && allColumns.indexOf(col) !== -1; });\n var colsInRangeChanged = !agGridCommunity._.areEqual(beforeCols, cellRange.columns);\n if (colsInRangeChanged) {\n // notify users and other parts of grid (i.e. status panel) that range has changed\n _this.dispatchChangedEvent(false, true, cellRange.id);\n }\n });\n // Remove empty cell ranges\n var countBefore = this.cellRanges.length;\n this.cellRanges = this.cellRanges.filter(function (range) { return range.columns.length > 0; });\n if (countBefore > this.cellRanges.length) {\n this.dispatchChangedEvent(false, true);\n }\n };\n RangeService.prototype.refreshLastRangeStart = function () {\n var lastRange = agGridCommunity._.last(this.cellRanges);\n if (!lastRange) {\n return;\n }\n this.refreshRangeStart(lastRange);\n };\n RangeService.prototype.isContiguousRange = function (cellRange) {\n var rangeColumns = cellRange.columns;\n if (!rangeColumns.length) {\n return false;\n }\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allPositions = rangeColumns.map(function (c) { return allColumns.indexOf(c); }).sort(function (a, b) { return a - b; });\n return agGridCommunity._.last(allPositions) - allPositions[0] + 1 === rangeColumns.length;\n };\n RangeService.prototype.getRangeStartRow = function (cellRange) {\n if (cellRange.startRow && cellRange.endRow) {\n return this.rowPositionUtils.before(cellRange.startRow, cellRange.endRow) ?\n cellRange.startRow : cellRange.endRow;\n }\n var rowPinned = this.pinnedRowModel.getPinnedTopRowCount() > 0 ? agGridCommunity.Constants.PINNED_TOP : null;\n return { rowIndex: 0, rowPinned: rowPinned };\n };\n RangeService.prototype.getRangeEndRow = function (cellRange) {\n if (cellRange.startRow && cellRange.endRow) {\n return this.rowPositionUtils.before(cellRange.startRow, cellRange.endRow) ?\n cellRange.endRow : cellRange.startRow;\n }\n var pinnedBottomRowCount = this.pinnedRowModel.getPinnedBottomRowCount();\n var pinnedBottom = pinnedBottomRowCount > 0;\n if (pinnedBottom) {\n return {\n rowIndex: pinnedBottomRowCount - 1,\n rowPinned: agGridCommunity.Constants.PINNED_BOTTOM\n };\n }\n return {\n rowIndex: this.rowModel.getRowCount() - 1,\n rowPinned: null\n };\n };\n RangeService.prototype.setRangeToCell = function (cell, appendRange) {\n if (appendRange === void 0) { appendRange = false; }\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n var columns = this.calculateColumnsBetween(cell.column, cell.column);\n if (!columns) {\n return;\n }\n var suppressMultiRangeSelections = this.gridOptionsWrapper.isSuppressMultiRangeSelection();\n // if not appending, then clear previous range selections\n if (suppressMultiRangeSelections || !appendRange || agGridCommunity._.missing(this.cellRanges)) {\n this.removeAllCellRanges(true);\n }\n var rowForCell = {\n rowIndex: cell.rowIndex,\n rowPinned: cell.rowPinned\n };\n // if there is already a range for this cell, then we reuse the same range, otherwise the user\n // can ctrl & click a cell many times and hit ctrl+c, which would result in the cell getting copied\n // many times to the clipboard.\n var cellRange;\n for (var i = 0; i < this.cellRanges.length; i++) {\n var range = this.cellRanges[i];\n var matches = \n // check cols are same\n (range.columns && range.columns.length === 1 && range.columns[0] === cell.column) &&\n // check rows are same\n this.rowPositionUtils.sameRow(rowForCell, range.startRow) &&\n this.rowPositionUtils.sameRow(rowForCell, range.endRow);\n if (matches) {\n cellRange = range;\n break;\n }\n }\n if (cellRange) {\n // we need it at the end of the list, as the dragStart picks the last created\n // range as the start point for the drag\n if (agGridCommunity._.last(this.cellRanges) !== cellRange) {\n agGridCommunity._.removeFromArray(this.cellRanges, cellRange);\n this.cellRanges.push(cellRange);\n }\n }\n else {\n cellRange = {\n startRow: rowForCell,\n endRow: rowForCell,\n columns: columns,\n startColumn: cell.column\n };\n this.cellRanges.push(cellRange);\n }\n this.setNewestRangeStartCell(cell);\n this.onDragStop();\n this.dispatchChangedEvent(true, true, cellRange.id);\n };\n RangeService.prototype.extendLatestRangeToCell = function (cellPosition) {\n if (this.isEmpty() || !this.newestRangeStartCell) {\n return;\n }\n var cellRange = agGridCommunity._.last(this.cellRanges);\n this.updateRangeEnd(cellRange, cellPosition);\n };\n RangeService.prototype.updateRangeEnd = function (cellRange, cellPosition, silent) {\n if (silent === void 0) { silent = false; }\n var endColumn = cellPosition.column;\n var colsToAdd = this.calculateColumnsBetween(cellRange.startColumn, endColumn);\n if (!colsToAdd || this.isLastCellOfRange(cellRange, cellPosition)) {\n return;\n }\n cellRange.columns = colsToAdd;\n cellRange.endRow = { rowIndex: cellPosition.rowIndex, rowPinned: cellPosition.rowPinned };\n if (!silent) {\n this.dispatchChangedEvent(true, true, cellRange.id);\n }\n };\n RangeService.prototype.refreshRangeStart = function (cellRange) {\n var startColumn = cellRange.startColumn, columns = cellRange.columns;\n var moveColInCellRange = function (colToMove, moveToFront) {\n var otherCols = cellRange.columns.filter(function (col) { return col !== colToMove; });\n if (colToMove) {\n cellRange.startColumn = colToMove;\n cellRange.columns = moveToFront ? __spread$m([colToMove], otherCols) : __spread$m(otherCols, [colToMove]);\n }\n else {\n cellRange.columns = otherCols;\n }\n };\n var _a = this.getRangeEdgeColumns(cellRange), left = _a.left, right = _a.right;\n var shouldMoveLeftCol = startColumn === columns[0] && startColumn !== left;\n if (shouldMoveLeftCol) {\n moveColInCellRange(left, true);\n return;\n }\n var shouldMoveRightCol = startColumn === agGridCommunity._.last(columns) && startColumn === right;\n if (shouldMoveRightCol) {\n moveColInCellRange(right, false);\n return;\n }\n };\n RangeService.prototype.getRangeEdgeColumns = function (cellRange) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allIndices = cellRange.columns\n .map(function (c) { return allColumns.indexOf(c); })\n .filter(function (i) { return i > -1; })\n .sort(function (a, b) { return a - b; });\n return {\n left: allColumns[allIndices[0]],\n right: allColumns[agGridCommunity._.last(allIndices)]\n };\n };\n // returns true if successful, false if not successful\n RangeService.prototype.extendLatestRangeInDirection = function (event) {\n if (this.isEmpty() || !this.newestRangeStartCell) {\n return;\n }\n var key = event.key;\n var ctrlKey = event.ctrlKey || event.metaKey;\n var lastRange = agGridCommunity._.last(this.cellRanges);\n var startCell = this.newestRangeStartCell;\n var firstCol = lastRange.columns[0];\n var lastCol = agGridCommunity._.last(lastRange.columns);\n // find the cell that is at the furthest away corner from the starting cell\n var endCellIndex = lastRange.endRow.rowIndex;\n var endCellFloating = lastRange.endRow.rowPinned;\n var endCellColumn = startCell.column === firstCol ? lastCol : firstCol;\n var endCell = { column: endCellColumn, rowIndex: endCellIndex, rowPinned: endCellFloating };\n var newEndCell = this.cellNavigationService.getNextCellToFocus(key, endCell, ctrlKey);\n // if user is at end of grid, so no cell to extend to, we return false\n if (!newEndCell) {\n return;\n }\n this.setCellRange({\n rowStartIndex: startCell.rowIndex,\n rowStartPinned: startCell.rowPinned,\n rowEndIndex: newEndCell.rowIndex,\n rowEndPinned: newEndCell.rowPinned,\n columnStart: startCell.column,\n columnEnd: newEndCell.column\n });\n return newEndCell;\n };\n RangeService.prototype.setCellRange = function (params) {\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n this.removeAllCellRanges(true);\n this.addCellRange(params);\n };\n RangeService.prototype.setCellRanges = function (cellRanges) {\n var _this = this;\n if (agGridCommunity._.shallowCompare(this.cellRanges, cellRanges)) {\n return;\n }\n this.removeAllCellRanges(true);\n cellRanges.forEach(function (newRange) {\n if (newRange.columns && newRange.startRow) {\n _this.setNewestRangeStartCell({\n rowIndex: newRange.startRow.rowIndex,\n rowPinned: newRange.startRow.rowPinned,\n column: newRange.columns[0]\n });\n }\n _this.cellRanges.push(newRange);\n });\n this.dispatchChangedEvent(false, true);\n };\n RangeService.prototype.setNewestRangeStartCell = function (position) {\n this.newestRangeStartCell = position;\n };\n RangeService.prototype.createCellRangeFromCellRangeParams = function (params) {\n var _this = this;\n var columns;\n var startsOnTheRight = false;\n if (params.columns) {\n columns = params.columns.map(function (c) { return _this.columnModel.getColumnWithValidation(c); }).filter(function (c) { return c; });\n }\n else {\n var columnStart = this.columnModel.getColumnWithValidation(params.columnStart);\n var columnEnd = this.columnModel.getColumnWithValidation(params.columnEnd);\n if (!columnStart || !columnEnd) {\n return;\n }\n columns = this.calculateColumnsBetween(columnStart, columnEnd);\n if (columns && columns.length) {\n startsOnTheRight = columns[0] !== columnStart;\n }\n }\n if (!columns) {\n return;\n }\n var startRow = params.rowStartIndex != null ? {\n rowIndex: params.rowStartIndex,\n rowPinned: params.rowStartPinned || null\n } : undefined;\n var endRow = params.rowEndIndex != null ? {\n rowIndex: params.rowEndIndex,\n rowPinned: params.rowEndPinned || null\n } : undefined;\n return {\n startRow: startRow,\n endRow: endRow,\n columns: columns,\n startColumn: startsOnTheRight ? agGridCommunity._.last(columns) : columns[0]\n };\n };\n RangeService.prototype.addCellRange = function (params) {\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n var newRange = this.createCellRangeFromCellRangeParams(params);\n if (newRange) {\n if (newRange.startRow) {\n this.setNewestRangeStartCell({\n rowIndex: newRange.startRow.rowIndex,\n rowPinned: newRange.startRow.rowPinned,\n column: newRange.startColumn\n });\n }\n this.cellRanges.push(newRange);\n this.dispatchChangedEvent(false, true, newRange.id);\n }\n };\n RangeService.prototype.getCellRanges = function () {\n return this.cellRanges;\n };\n RangeService.prototype.isEmpty = function () {\n return this.cellRanges.length === 0;\n };\n RangeService.prototype.isMoreThanOneCell = function () {\n var len = this.cellRanges.length;\n if (len === 0) {\n return false;\n }\n if (len > 1) {\n return true; // Assumes a cell range must contain at least one cell\n }\n // only one range, return true if range has more than one\n var range = this.cellRanges[0];\n var startRow = this.getRangeStartRow(range);\n var endRow = this.getRangeEndRow(range);\n return startRow.rowPinned !== endRow.rowPinned ||\n startRow.rowIndex !== endRow.rowIndex ||\n range.columns.length !== 1;\n };\n RangeService.prototype.areAllRangesAbleToMerge = function () {\n var e_1, _a;\n var _this = this;\n var rowToColumnMap = new Map();\n var len = this.cellRanges.length;\n if (len <= 1)\n return true;\n this.cellRanges.forEach(function (range) {\n var topRow = _this.getRangeStartRow(range);\n var bottomRow = _this.getRangeEndRow(range);\n var currentRow = topRow;\n var _loop_1 = function () {\n var rowName = (currentRow.rowPinned || 'normal') + \"_\" + currentRow.rowIndex;\n var columns = rowToColumnMap.get(rowName);\n var currentRangeColIds = range.columns.map(function (col) { return col.getId(); });\n if (columns) {\n var filteredColumns = currentRangeColIds.filter(function (col) { return columns.indexOf(col) === -1; });\n columns.push.apply(columns, __spread$m(filteredColumns));\n }\n else {\n rowToColumnMap.set(rowName, currentRangeColIds);\n }\n if (_this.rowPositionUtils.sameRow(currentRow, bottomRow)) {\n return \"break\";\n }\n currentRow = _this.cellNavigationService.getRowBelow(currentRow);\n };\n while (currentRow) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n });\n var columnsString;\n try {\n for (var _b = __values$f(rowToColumnMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var val = _c.value;\n var currentValString = val.sort().join();\n if (columnsString === undefined) {\n columnsString = currentValString;\n continue;\n }\n if (columnsString !== currentValString) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n RangeService.prototype.removeAllCellRanges = function (silent) {\n if (this.isEmpty()) {\n return;\n }\n this.onDragStop();\n this.cellRanges.length = 0;\n if (!silent) {\n this.dispatchChangedEvent(false, true);\n }\n };\n // as the user is dragging outside of the panel, the div starts to scroll, which in turn\n // means we are selection more (or less) cells, but the mouse isn't moving, so we recalculate\n // the selection my mimicking a new mouse event\n RangeService.prototype.onBodyScroll = function () {\n if (this.dragging && this.lastMouseEvent) {\n this.onDragging(this.lastMouseEvent);\n }\n };\n RangeService.prototype.isCellInAnyRange = function (cell) {\n return this.getCellRangeCount(cell) > 0;\n };\n RangeService.prototype.isCellInSpecificRange = function (cell, range) {\n var columnInRange = range.columns !== null && agGridCommunity._.includes(range.columns, cell.column);\n var rowInRange = this.isRowInRange(cell.rowIndex, cell.rowPinned, range);\n return columnInRange && rowInRange;\n };\n RangeService.prototype.isLastCellOfRange = function (cellRange, cell) {\n var startRow = cellRange.startRow, endRow = cellRange.endRow;\n var lastRow = this.rowPositionUtils.before(startRow, endRow) ? endRow : startRow;\n var isLastRow = cell.rowIndex === lastRow.rowIndex && cell.rowPinned === lastRow.rowPinned;\n var rangeFirstIndexColumn = cellRange.columns[0];\n var rangeLastIndexColumn = agGridCommunity._.last(cellRange.columns);\n var lastRangeColumn = cellRange.startColumn === rangeFirstIndexColumn ? rangeLastIndexColumn : rangeFirstIndexColumn;\n var isLastColumn = cell.column === lastRangeColumn;\n return isLastColumn && isLastRow;\n };\n RangeService.prototype.isBottomRightCell = function (cellRange, cell) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allPositions = cellRange.columns.map(function (c) { return allColumns.indexOf(c); }).sort(function (a, b) { return a - b; });\n var startRow = cellRange.startRow, endRow = cellRange.endRow;\n var lastRow = this.rowPositionUtils.before(startRow, endRow) ? endRow : startRow;\n var isRightColumn = allColumns.indexOf(cell.column) === agGridCommunity._.last(allPositions);\n var isLastRow = cell.rowIndex === lastRow.rowIndex && agGridCommunity._.makeNull(cell.rowPinned) === agGridCommunity._.makeNull(lastRow.rowPinned);\n return isRightColumn && isLastRow;\n };\n // returns the number of ranges this cell is in\n RangeService.prototype.getCellRangeCount = function (cell) {\n var _this = this;\n if (this.isEmpty()) {\n return 0;\n }\n return this.cellRanges.filter(function (cellRange) { return _this.isCellInSpecificRange(cell, cellRange); }).length;\n };\n RangeService.prototype.isRowInRange = function (rowIndex, floating, cellRange) {\n var firstRow = this.getRangeStartRow(cellRange);\n var lastRow = this.getRangeEndRow(cellRange);\n var thisRow = { rowIndex: rowIndex, rowPinned: floating || null };\n // compare rowPinned with == instead of === because it can be `null` or `undefined`\n var equalsFirstRow = thisRow.rowIndex === firstRow.rowIndex && thisRow.rowPinned == firstRow.rowPinned;\n var equalsLastRow = thisRow.rowIndex === lastRow.rowIndex && thisRow.rowPinned == lastRow.rowPinned;\n if (equalsFirstRow || equalsLastRow) {\n return true;\n }\n var afterFirstRow = !this.rowPositionUtils.before(thisRow, firstRow);\n var beforeLastRow = this.rowPositionUtils.before(thisRow, lastRow);\n return afterFirstRow && beforeLastRow;\n };\n RangeService.prototype.getDraggingRange = function () {\n return this.draggingRange;\n };\n RangeService.prototype.onDragStart = function (mouseEvent) {\n if (!this.gridOptionsWrapper.isEnableRangeSelection()) {\n return;\n }\n var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;\n // ctrlKey for windows, metaKey for Apple\n var multiKeyPressed = ctrlKey || metaKey;\n var allowMulti = !this.gridOptionsWrapper.isSuppressMultiRangeSelection();\n var multiSelectKeyPressed = allowMulti ? multiKeyPressed : false;\n var extendRange = shiftKey && agGridCommunity._.existsAndNotEmpty(this.cellRanges);\n if (!multiSelectKeyPressed && (!extendRange || agGridCommunity._.exists(agGridCommunity._.last(this.cellRanges).type))) {\n this.removeAllCellRanges(true);\n }\n // The DragService used by this service (RangeService), automatically adds a `mousemove`\n // listener the document of the page that will then call `onDragging`. If you are in a shadow DOM\n // DOM elements outside your component's wrapper will be inaccessible to you, so here, we add a \n // temporary `mousemove` listener to the gridPanel to be able to update the last hovered cell.\n this.cellHoverListener = this.addManagedListener(this.ctrlsService.getGridCtrl().getGui(), 'mousemove', this.updateValuesOnMove.bind(this));\n // This is the mouse start event, so we need to call `updateValuesOnMove` \n // manually once to get the necessary variables initiated.\n this.updateValuesOnMove(mouseEvent);\n if (!this.lastCellHovered) {\n return;\n }\n this.dragging = true;\n this.lastMouseEvent = mouseEvent;\n if (!extendRange) {\n this.setNewestRangeStartCell(this.lastCellHovered);\n }\n // if we didn't clear the ranges, then dragging means the user clicked, and when the\n // user clicks it means a range of one cell was created. we need to extend this range\n // rather than creating another range. otherwise we end up with two distinct ranges\n // from a drag operation (one from click, and one from drag).\n if (this.cellRanges.length > 0) {\n this.draggingRange = agGridCommunity._.last(this.cellRanges);\n }\n else {\n var mouseRowPosition = {\n rowIndex: this.lastCellHovered.rowIndex,\n rowPinned: this.lastCellHovered.rowPinned\n };\n this.draggingRange = {\n startRow: mouseRowPosition,\n endRow: mouseRowPosition,\n columns: [this.lastCellHovered.column],\n startColumn: this.newestRangeStartCell.column\n };\n this.cellRanges.push(this.draggingRange);\n }\n this.ctrlsService.getGridBodyCtrl().addScrollEventListener(this.bodyScrollListener);\n this.dispatchChangedEvent(true, false, this.draggingRange.id);\n };\n RangeService.prototype.updateValuesOnMove = function (mouseEvent) {\n var cell = this.mouseEventService.getCellPositionForEvent(mouseEvent);\n this.cellHasChanged = false;\n if (!cell || (this.lastCellHovered && this.cellPositionUtils.equals(cell, this.lastCellHovered))) {\n return;\n }\n if (this.lastCellHovered) {\n this.cellHasChanged = true;\n }\n this.lastCellHovered = cell;\n };\n RangeService.prototype.onDragging = function (mouseEvent) {\n var _this = this;\n if (!this.dragging || !mouseEvent) {\n return;\n }\n this.lastMouseEvent = mouseEvent;\n var cellPosition = this.lastCellHovered;\n var isMouseAndStartInPinned = function (position) {\n return cellPosition && cellPosition.rowPinned === position && _this.newestRangeStartCell.rowPinned === position;\n };\n var skipVerticalScroll = isMouseAndStartInPinned('top') || isMouseAndStartInPinned('bottom');\n this.autoScrollService.check(mouseEvent, skipVerticalScroll);\n if (!this.cellHasChanged) {\n return;\n }\n var columns = this.calculateColumnsBetween(this.newestRangeStartCell.column, cellPosition.column);\n if (!columns) {\n return;\n }\n this.draggingRange.endRow = {\n rowIndex: cellPosition.rowIndex,\n rowPinned: cellPosition.rowPinned\n };\n this.draggingRange.columns = columns;\n this.dispatchChangedEvent(false, false, this.draggingRange.id);\n };\n RangeService.prototype.onDragStop = function () {\n if (this.cellHoverListener) {\n this.cellHoverListener();\n this.cellHoverListener = undefined;\n }\n if (!this.dragging) {\n return;\n }\n var id = this.draggingRange.id;\n this.autoScrollService.ensureCleared();\n this.ctrlsService.getGridBodyCtrl().removeScrollEventListener(this.bodyScrollListener);\n this.lastMouseEvent = null;\n this.dragging = false;\n this.draggingRange = undefined;\n this.lastCellHovered = undefined;\n this.dispatchChangedEvent(false, true, id);\n };\n RangeService.prototype.dispatchChangedEvent = function (started, finished, id) {\n var event = Object.freeze({\n type: agGridCommunity.Events.EVENT_RANGE_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi,\n started: started,\n finished: finished,\n id: id,\n });\n this.eventService.dispatchEvent(event);\n };\n RangeService.prototype.calculateColumnsBetween = function (columnFrom, columnTo) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var isSameColumn = columnFrom === columnTo;\n var fromIndex = allColumns.indexOf(columnFrom);\n if (fromIndex < 0) {\n console.warn(\"AG Grid: column \" + columnFrom.getId() + \" is not visible\");\n return;\n }\n var toIndex = isSameColumn ? fromIndex : allColumns.indexOf(columnTo);\n if (toIndex < 0) {\n console.warn(\"AG Grid: column \" + columnTo.getId() + \" is not visible\");\n return;\n }\n if (isSameColumn) {\n return [columnFrom];\n }\n var firstIndex = Math.min(fromIndex, toIndex);\n var lastIndex = firstIndex === fromIndex ? toIndex : fromIndex;\n var columns = [];\n for (var i = firstIndex; i <= lastIndex; i++) {\n columns.push(allColumns[i]);\n }\n return columns;\n };\n __decorate$1o([\n agGridCommunity.Autowired('rowModel')\n ], RangeService.prototype, \"rowModel\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('columnModel')\n ], RangeService.prototype, \"columnModel\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('mouseEventService')\n ], RangeService.prototype, \"mouseEventService\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('columnApi')\n ], RangeService.prototype, \"columnApi\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('gridApi')\n ], RangeService.prototype, \"gridApi\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('cellNavigationService')\n ], RangeService.prototype, \"cellNavigationService\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired(\"pinnedRowModel\")\n ], RangeService.prototype, \"pinnedRowModel\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('rowPositionUtils')\n ], RangeService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('cellPositionUtils')\n ], RangeService.prototype, \"cellPositionUtils\", void 0);\n __decorate$1o([\n agGridCommunity.Autowired('ctrlsService')\n ], RangeService.prototype, \"ctrlsService\", void 0);\n __decorate$1o([\n agGridCommunity.PostConstruct\n ], RangeService.prototype, \"init\", null);\n RangeService = __decorate$1o([\n agGridCommunity.Bean('rangeService')\n ], RangeService);\n return RangeService;\n}(agGridCommunity.BeanStub));\n\nvar __extends$2_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AbstractSelectionHandle = /** @class */ (function (_super) {\n __extends$2_(AbstractSelectionHandle, _super);\n function AbstractSelectionHandle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.changedCalculatedValues = false;\n _this.dragging = false;\n _this.shouldDestroyOnEndDragging = false;\n return _this;\n }\n AbstractSelectionHandle.prototype.init = function () {\n var _this = this;\n this.dragService.addDragSource({\n dragStartPixels: 0,\n eElement: this.getGui(),\n onDragStart: this.onDragStart.bind(this),\n onDragging: function (e) {\n _this.dragging = true;\n _this.rangeService.autoScrollService.check(e);\n if (_this.changedCalculatedValues) {\n _this.onDrag(e);\n _this.changedCalculatedValues = false;\n }\n },\n onDragStop: function (e) {\n _this.dragging = false;\n _this.onDragEnd(e);\n _this.clearValues();\n _this.rangeService.autoScrollService.ensureCleared();\n // TODO: this causes a bug where if there are multiple grids in the same page, all of them will\n // be affected by a drag on any. Move it to the root element.\n document.body.classList.remove(_this.getDraggingCssClass());\n if (_this.shouldDestroyOnEndDragging) {\n _this.destroy();\n }\n }\n });\n this.addManagedListener(this.getGui(), 'mousedown', this.preventRangeExtension.bind(this));\n };\n AbstractSelectionHandle.prototype.isDragging = function () {\n return this.dragging;\n };\n AbstractSelectionHandle.prototype.getCellCtrl = function () {\n return this.cellCtrl;\n };\n AbstractSelectionHandle.prototype.setCellCtrl = function (cellComp) {\n this.cellCtrl = cellComp;\n };\n AbstractSelectionHandle.prototype.getCellRange = function () {\n return this.cellRange;\n };\n AbstractSelectionHandle.prototype.setCellRange = function (range) {\n this.cellRange = range;\n };\n AbstractSelectionHandle.prototype.getRangeStartRow = function () {\n return this.rangeStartRow;\n };\n AbstractSelectionHandle.prototype.setRangeStartRow = function (row) {\n this.rangeStartRow = row;\n };\n AbstractSelectionHandle.prototype.getRangeEndRow = function () {\n return this.rangeEndRow;\n };\n AbstractSelectionHandle.prototype.setRangeEndRow = function (row) {\n this.rangeEndRow = row;\n };\n AbstractSelectionHandle.prototype.getLastCellHovered = function () {\n return this.lastCellHovered;\n };\n AbstractSelectionHandle.prototype.preventRangeExtension = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n AbstractSelectionHandle.prototype.onDragStart = function (e) {\n this.cellHoverListener = this.addManagedListener(this.ctrlsService.getGridCtrl().getGui(), 'mousemove', this.updateValuesOnMove.bind(this));\n document.body.classList.add(this.getDraggingCssClass());\n };\n AbstractSelectionHandle.prototype.getDraggingCssClass = function () {\n return \"ag-dragging-\" + (this.type === agGridCommunity.SelectionHandleType.FILL ? 'fill' : 'range') + \"-handle\";\n };\n AbstractSelectionHandle.prototype.updateValuesOnMove = function (e) {\n var cell = this.mouseEventService.getCellPositionForEvent(e);\n if (!cell || (this.lastCellHovered && this.cellPositionUtils.equals(cell, this.lastCellHovered))) {\n return;\n }\n this.lastCellHovered = cell;\n this.changedCalculatedValues = true;\n };\n AbstractSelectionHandle.prototype.getType = function () {\n return this.type;\n };\n AbstractSelectionHandle.prototype.refresh = function (cellCtrl) {\n var oldCellComp = this.getCellCtrl();\n var eGui = this.getGui();\n var cellRange = agGridCommunity._.last(this.rangeService.getCellRanges());\n var start = cellRange.startRow;\n var end = cellRange.endRow;\n if (start && end) {\n var isBefore = this.rowPositionUtils.before(end, start);\n if (isBefore) {\n this.setRangeStartRow(end);\n this.setRangeEndRow(start);\n }\n else {\n this.setRangeStartRow(start);\n this.setRangeEndRow(end);\n }\n }\n if (oldCellComp !== cellCtrl || !agGridCommunity._.isVisible(eGui)) {\n this.setCellCtrl(cellCtrl);\n var eParentOfValue = cellCtrl.getComp().getParentOfValue();\n if (eParentOfValue) {\n eParentOfValue.appendChild(eGui);\n }\n }\n this.setCellRange(cellRange);\n };\n AbstractSelectionHandle.prototype.clearValues = function () {\n this.lastCellHovered = undefined;\n this.removeListeners();\n };\n AbstractSelectionHandle.prototype.removeListeners = function () {\n if (this.cellHoverListener) {\n this.cellHoverListener();\n this.cellHoverListener = undefined;\n }\n };\n AbstractSelectionHandle.prototype.destroy = function () {\n if (!this.shouldDestroyOnEndDragging && this.isDragging()) {\n agGridCommunity._.setDisplayed(this.getGui(), false);\n this.shouldDestroyOnEndDragging = true;\n return;\n }\n this.shouldDestroyOnEndDragging = false;\n _super.prototype.destroy.call(this);\n this.removeListeners();\n var eGui = this.getGui();\n if (eGui.parentElement) {\n eGui.parentElement.removeChild(eGui);\n }\n };\n __decorate$1p([\n agGridCommunity.Autowired(\"rowRenderer\")\n ], AbstractSelectionHandle.prototype, \"rowRenderer\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired(\"dragService\")\n ], AbstractSelectionHandle.prototype, \"dragService\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired(\"rangeService\")\n ], AbstractSelectionHandle.prototype, \"rangeService\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired(\"mouseEventService\")\n ], AbstractSelectionHandle.prototype, \"mouseEventService\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired(\"columnModel\")\n ], AbstractSelectionHandle.prototype, \"columnModel\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired(\"cellNavigationService\")\n ], AbstractSelectionHandle.prototype, \"cellNavigationService\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired(\"navigationService\")\n ], AbstractSelectionHandle.prototype, \"navigationService\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired('rowPositionUtils')\n ], AbstractSelectionHandle.prototype, \"rowPositionUtils\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired('cellPositionUtils')\n ], AbstractSelectionHandle.prototype, \"cellPositionUtils\", void 0);\n __decorate$1p([\n agGridCommunity.Autowired('ctrlsService')\n ], AbstractSelectionHandle.prototype, \"ctrlsService\", void 0);\n __decorate$1p([\n agGridCommunity.PostConstruct\n ], AbstractSelectionHandle.prototype, \"init\", null);\n return AbstractSelectionHandle;\n}(agGridCommunity.Component));\n\nvar __extends$2$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$s = (undefined && undefined.__assign) || function () {\n __assign$s = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$s.apply(this, arguments);\n};\nvar __decorate$1q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$Q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$n = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$Q(arguments[i]));\n return ar;\n};\nvar FillHandle = /** @class */ (function (_super) {\n __extends$2$(FillHandle, _super);\n function FillHandle() {\n var _this = _super.call(this, FillHandle.TEMPLATE) || this;\n _this.markedCells = [];\n _this.cellValues = [];\n _this.isUp = false;\n _this.isLeft = false;\n _this.isReduce = false;\n _this.type = agGridCommunity.SelectionHandleType.FILL;\n return _this;\n }\n FillHandle.prototype.updateValuesOnMove = function (e) {\n _super.prototype.updateValuesOnMove.call(this, e);\n if (!this.initialXY) {\n this.initialXY = this.mouseEventService.getNormalisedPosition(e);\n }\n var _a = this.initialXY, x = _a.x, y = _a.y;\n var _b = this.mouseEventService.getNormalisedPosition(e), newX = _b.x, newY = _b.y;\n var diffX = Math.abs(x - newX);\n var diffY = Math.abs(y - newY);\n var allowedDirection = this.gridOptionsWrapper.getFillHandleDirection();\n var direction;\n if (allowedDirection === 'xy') {\n direction = diffX > diffY ? 'x' : 'y';\n }\n else {\n direction = allowedDirection;\n }\n if (direction !== this.dragAxis) {\n this.dragAxis = direction;\n this.changedCalculatedValues = true;\n }\n };\n FillHandle.prototype.onDrag = function (e) {\n if (!this.initialPosition) {\n var cellCtrl = this.getCellCtrl();\n if (!cellCtrl) {\n return;\n }\n this.initialPosition = cellCtrl.getCellPosition();\n }\n var lastCellHovered = this.getLastCellHovered();\n if (lastCellHovered) {\n this.markPathFrom(this.initialPosition, lastCellHovered);\n }\n };\n FillHandle.prototype.onDragEnd = function (e) {\n this.initialXY = null;\n if (!this.markedCells.length) {\n return;\n }\n var isX = this.dragAxis === 'x';\n var initialRange = this.getCellRange();\n var colLen = initialRange.columns.length;\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n var finalRange;\n if (!this.isUp && !this.isLeft) {\n finalRange = this.rangeService.createCellRangeFromCellRangeParams({\n rowStartIndex: rangeStartRow.rowIndex,\n rowStartPinned: rangeStartRow.rowPinned,\n columnStart: initialRange.columns[0],\n rowEndIndex: isX ? rangeEndRow.rowIndex : this.lastCellMarked.rowIndex,\n rowEndPinned: isX ? rangeEndRow.rowPinned : this.lastCellMarked.rowPinned,\n columnEnd: isX ? this.lastCellMarked.column : initialRange.columns[colLen - 1]\n });\n }\n else {\n var startRow = isX ? rangeStartRow : this.lastCellMarked;\n finalRange = this.rangeService.createCellRangeFromCellRangeParams({\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n columnStart: isX ? this.lastCellMarked.column : initialRange.columns[0],\n rowEndIndex: rangeEndRow.rowIndex,\n rowEndPinned: rangeEndRow.rowPinned,\n columnEnd: initialRange.columns[colLen - 1]\n });\n }\n if (finalRange) {\n // raising fill events for undo / redo\n this.raiseFillStartEvent();\n this.handleValueChanged(initialRange, finalRange, e);\n this.rangeService.setCellRanges([finalRange]);\n this.raiseFillEndEvent(initialRange, finalRange);\n }\n };\n FillHandle.prototype.raiseFillStartEvent = function () {\n var fillStartEvent = {\n type: agGridCommunity.Events.EVENT_FILL_START,\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n api: this.gridOptionsWrapper.getApi()\n };\n this.eventService.dispatchEvent(fillStartEvent);\n };\n FillHandle.prototype.raiseFillEndEvent = function (initialRange, finalRange) {\n var fillEndEvent = {\n type: agGridCommunity.Events.EVENT_FILL_END,\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n api: this.gridOptionsWrapper.getApi(),\n initialRange: initialRange,\n finalRange: finalRange\n };\n this.eventService.dispatchEvent(fillEndEvent);\n };\n FillHandle.prototype.handleValueChanged = function (initialRange, finalRange, e) {\n var _this = this;\n var initialRangeEndRow = this.rangeService.getRangeEndRow(initialRange);\n var initialRangeStartRow = this.rangeService.getRangeStartRow(initialRange);\n var finalRangeEndRow = this.rangeService.getRangeEndRow(finalRange);\n var finalRangeStartRow = this.rangeService.getRangeStartRow(finalRange);\n var isVertical = this.dragAxis === 'y';\n // if the range is being reduced in size, all we need to do is\n // clear the cells that are no longer part of the range\n if (this.isReduce && !this.gridOptionsWrapper.isSuppressClearOnFillReduction()) {\n var columns = isVertical\n ? initialRange.columns\n : initialRange.columns.filter(function (col) { return finalRange.columns.indexOf(col) < 0; });\n var startRow = isVertical ? this.cellNavigationService.getRowBelow(finalRangeEndRow) : finalRangeStartRow;\n if (startRow) {\n this.clearCellsInRange(startRow, initialRangeEndRow, columns);\n }\n return;\n }\n var withinInitialRange = true;\n var values = [];\n var initialValues = [];\n var idx = 0;\n var resetValues = function () {\n values.length = 0;\n initialValues.length = 0;\n idx = 0;\n };\n var iterateAcrossCells = function (column, columns) {\n var currentRow = _this.isUp ? initialRangeEndRow : initialRangeStartRow;\n var finished = false;\n if (isVertical) {\n withinInitialRange = true;\n resetValues();\n }\n var _loop_1 = function () {\n var rowNode = _this.rowPositionUtils.getRowNode(currentRow);\n if (!rowNode) {\n return \"break\";\n }\n if (isVertical && column) {\n fillValues(values, column, rowNode, function () {\n return !_this.rowPositionUtils.sameRow(currentRow, _this.isUp ? initialRangeStartRow : initialRangeEndRow);\n });\n }\n else if (columns) {\n withinInitialRange = true;\n resetValues();\n columns.forEach(function (col) { return fillValues(values, col, rowNode, function () { return col !== (_this.isLeft ? initialRange.columns[0] : agGridCommunity._.last(initialRange.columns)); }); });\n }\n finished = _this.rowPositionUtils.sameRow(currentRow, _this.isUp ? finalRangeStartRow : finalRangeEndRow);\n currentRow = _this.isUp\n ? _this.cellNavigationService.getRowAbove(currentRow)\n : _this.cellNavigationService.getRowBelow(currentRow);\n };\n while (!finished && currentRow) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n };\n var fillValues = function (currentValues, col, rowNode, updateInitialSet) {\n var currentValue;\n var skipValue = false;\n if (withinInitialRange) {\n currentValue = _this.valueService.getValue(col, rowNode);\n initialValues.push(currentValue);\n withinInitialRange = updateInitialSet();\n }\n else {\n var _a = _this.processValues(e, currentValues, initialValues, col, rowNode, idx++), value = _a.value, fromUserFunction = _a.fromUserFunction;\n currentValue = value;\n if (col.isCellEditable(rowNode)) {\n var cellValue = _this.valueService.getValue(col, rowNode);\n if (!fromUserFunction || cellValue !== currentValue) {\n rowNode.setDataValue(col, currentValue);\n }\n else {\n skipValue = true;\n }\n }\n }\n if (!skipValue) {\n currentValues.push(currentValue);\n }\n };\n if (isVertical) {\n initialRange.columns.forEach(function (col) {\n iterateAcrossCells(col);\n });\n }\n else {\n var columns = this.isLeft ? __spread$n(finalRange.columns).reverse() : finalRange.columns;\n iterateAcrossCells(undefined, columns);\n }\n };\n FillHandle.prototype.clearCellsInRange = function (startRow, endRow, columns) {\n var currentRow = startRow;\n var finished = false;\n var _loop_2 = function () {\n var rowNode = this_1.rowPositionUtils.getRowNode(currentRow);\n // should never happen, defensive programming\n if (!rowNode) {\n return \"break\";\n }\n columns.forEach(function (col) {\n if (col.isCellEditable(rowNode)) {\n rowNode.setDataValue(col, null);\n }\n });\n finished = this_1.rowPositionUtils.sameRow(currentRow, endRow);\n currentRow = this_1.cellNavigationService.getRowBelow(currentRow);\n };\n var this_1 = this;\n while (!finished && currentRow) {\n var state_2 = _loop_2();\n if (state_2 === \"break\")\n break;\n }\n };\n FillHandle.prototype.processValues = function (event, values, initialValues, col, rowNode, idx) {\n var userFillOperation = this.gridOptionsWrapper.getFillOperation();\n var isVertical = this.dragAxis === 'y';\n var direction;\n if (isVertical) {\n direction = this.isUp ? 'up' : 'down';\n }\n else {\n direction = this.isLeft ? 'left' : 'right';\n }\n if (userFillOperation) {\n var params = {\n event: event,\n values: values,\n initialValues: initialValues,\n currentIndex: idx,\n currentCellValue: this.valueService.getValue(col, rowNode),\n direction: direction,\n column: col,\n rowNode: rowNode\n };\n var userResult = userFillOperation(params);\n if (userResult !== false) {\n return { value: userResult, fromUserFunction: true };\n }\n }\n var allNumbers = !values.some(function (val) {\n var asFloat = parseFloat(val);\n return isNaN(asFloat) || asFloat.toString() !== val.toString();\n });\n // values should be copied in order if the alt key is pressed\n // or if the values contain strings and numbers\n // However, if we only have one initial value selected, and that\n // value is a number and we are also pressing alt, then we should\n // increment or decrement the value by 1 based on direction.\n if (event.altKey || !allNumbers) {\n if (allNumbers && initialValues.length === 1) {\n var multiplier = (this.isUp || this.isLeft) ? -1 : 1;\n return { value: parseFloat(agGridCommunity._.last(values)) + 1 * multiplier, fromUserFunction: false };\n }\n return { value: values[idx % values.length], fromUserFunction: false };\n }\n return { value: agGridCommunity._.last(agGridCommunity._.findLineByLeastSquares(values.map(Number))), fromUserFunction: false };\n };\n FillHandle.prototype.clearValues = function () {\n this.clearMarkedPath();\n this.clearCellValues();\n this.lastCellMarked = undefined;\n _super.prototype.clearValues.call(this);\n };\n FillHandle.prototype.clearMarkedPath = function () {\n this.markedCells.forEach(function (cell) {\n var comp = cell.getComp();\n comp.addOrRemoveCssClass('ag-selection-fill-top', false);\n comp.addOrRemoveCssClass('ag-selection-fill-right', false);\n comp.addOrRemoveCssClass('ag-selection-fill-bottom', false);\n comp.addOrRemoveCssClass('ag-selection-fill-left', false);\n });\n this.markedCells.length = 0;\n this.isUp = false;\n this.isLeft = false;\n this.isReduce = false;\n };\n FillHandle.prototype.clearCellValues = function () {\n this.cellValues.length = 0;\n };\n FillHandle.prototype.markPathFrom = function (initialPosition, currentPosition) {\n this.clearMarkedPath();\n this.clearCellValues();\n if (this.dragAxis === 'y') {\n if (this.rowPositionUtils.sameRow(currentPosition, initialPosition)) {\n return;\n }\n var isBefore = this.rowPositionUtils.before(currentPosition, initialPosition);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n if (isBefore && ((currentPosition.rowPinned == rangeStartRow.rowPinned &&\n currentPosition.rowIndex >= rangeStartRow.rowIndex) ||\n (rangeStartRow.rowPinned != rangeEndRow.rowPinned &&\n currentPosition.rowPinned == rangeEndRow.rowPinned &&\n currentPosition.rowIndex <= rangeEndRow.rowIndex))) {\n this.reduceVertical(initialPosition, currentPosition);\n this.isReduce = true;\n }\n else {\n this.extendVertical(initialPosition, currentPosition, isBefore);\n this.isReduce = false;\n }\n }\n else {\n var initialColumn = initialPosition.column;\n var currentColumn = currentPosition.column;\n if (initialColumn === currentColumn) {\n return;\n }\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var initialIndex = displayedColumns.indexOf(initialColumn);\n var currentIndex = displayedColumns.indexOf(currentColumn);\n if (currentIndex <= initialIndex && currentIndex >= displayedColumns.indexOf(this.getCellRange().columns[0])) {\n this.reduceHorizontal(initialPosition, currentPosition);\n this.isReduce = true;\n }\n else {\n this.extendHorizontal(initialPosition, currentPosition, currentIndex < initialIndex);\n this.isReduce = false;\n }\n }\n this.lastCellMarked = currentPosition;\n };\n FillHandle.prototype.extendVertical = function (initialPosition, endPosition, isMovingUp) {\n var _a = this, navigationService = _a.navigationService, rangeService = _a.rangeService;\n var row = initialPosition;\n do {\n var cellRange = this.getCellRange();\n var colLen = cellRange.columns.length;\n for (var i = 0; i < colLen; i++) {\n var column = cellRange.columns[i];\n var rowPos = { rowIndex: row.rowIndex, rowPinned: row.rowPinned };\n var cellPos = __assign$s(__assign$s({}, rowPos), { column: column });\n var cellInRange = rangeService.isCellInSpecificRange(cellPos, cellRange);\n var isInitialRow = this.rowPositionUtils.sameRow(row, initialPosition);\n if (isMovingUp) {\n this.isUp = true;\n }\n if (!isInitialRow) {\n var cell = navigationService.getCellByPosition(cellPos);\n if (cell) {\n this.markedCells.push(cell);\n var cellCtrl = cell.getComp();\n if (!cellInRange) {\n cellCtrl.addOrRemoveCssClass('ag-selection-fill-left', i === 0);\n cellCtrl.addOrRemoveCssClass('ag-selection-fill-right', i === colLen - 1);\n }\n cellCtrl.addOrRemoveCssClass(isMovingUp ? 'ag-selection-fill-top' : 'ag-selection-fill-bottom', this.rowPositionUtils.sameRow(row, endPosition));\n }\n }\n }\n if (this.rowPositionUtils.sameRow(row, endPosition)) {\n break;\n }\n } while (\n // tslint:disable-next-line\n row = isMovingUp\n ? this.cellNavigationService.getRowAbove(row)\n : this.cellNavigationService.getRowBelow(row));\n };\n FillHandle.prototype.reduceVertical = function (initialPosition, endPosition) {\n var row = initialPosition;\n do {\n var cellRange = this.getCellRange();\n var colLen = cellRange.columns.length;\n var isLastRow = this.rowPositionUtils.sameRow(row, endPosition);\n for (var i = 0; i < colLen; i++) {\n var rowPos = { rowIndex: row.rowIndex, rowPinned: row.rowPinned };\n var celPos = __assign$s(__assign$s({}, rowPos), { column: cellRange.columns[i] });\n var cell = this.navigationService.getCellByPosition(celPos);\n if (cell) {\n this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-bottom', this.rowPositionUtils.sameRow(row, endPosition));\n }\n }\n if (isLastRow) {\n break;\n }\n // tslint:disable-next-line\n } while (row = this.cellNavigationService.getRowAbove(row));\n };\n FillHandle.prototype.extendHorizontal = function (initialPosition, endPosition, isMovingLeft) {\n var _this = this;\n var allCols = this.columnModel.getAllDisplayedColumns();\n var startCol = allCols.indexOf(isMovingLeft ? endPosition.column : initialPosition.column);\n var endCol = allCols.indexOf(isMovingLeft ? this.getCellRange().columns[0] : endPosition.column);\n var offset = isMovingLeft ? 0 : 1;\n var colsToMark = allCols.slice(startCol + offset, endCol + offset);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n colsToMark.forEach(function (column) {\n var row = rangeStartRow;\n var isLastRow = false;\n do {\n isLastRow = _this.rowPositionUtils.sameRow(row, rangeEndRow);\n var cell = _this.navigationService.getCellByPosition({\n rowIndex: row.rowIndex,\n rowPinned: row.rowPinned,\n column: column\n });\n if (cell) {\n _this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-top', _this.rowPositionUtils.sameRow(row, rangeStartRow));\n cellComp.addOrRemoveCssClass('ag-selection-fill-bottom', _this.rowPositionUtils.sameRow(row, rangeEndRow));\n if (isMovingLeft) {\n _this.isLeft = true;\n cellComp.addOrRemoveCssClass('ag-selection-fill-left', column === colsToMark[0]);\n }\n else {\n cellComp.addOrRemoveCssClass('ag-selection-fill-right', column === agGridCommunity._.last(colsToMark));\n }\n }\n row = _this.cellNavigationService.getRowBelow(row);\n } while (!isLastRow);\n });\n };\n FillHandle.prototype.reduceHorizontal = function (initialPosition, endPosition) {\n var _this = this;\n var allCols = this.columnModel.getAllDisplayedColumns();\n var startCol = allCols.indexOf(endPosition.column);\n var endCol = allCols.indexOf(initialPosition.column);\n var colsToMark = allCols.slice(startCol, endCol);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n colsToMark.forEach(function (column) {\n var row = rangeStartRow;\n var isLastRow = false;\n do {\n isLastRow = _this.rowPositionUtils.sameRow(row, rangeEndRow);\n var cell = _this.navigationService.getCellByPosition({\n rowIndex: row.rowIndex,\n rowPinned: row.rowPinned,\n column: column\n });\n if (cell) {\n _this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-right', column === colsToMark[0]);\n }\n row = _this.cellNavigationService.getRowBelow(row);\n } while (!isLastRow);\n });\n };\n FillHandle.prototype.refresh = function (cellCtrl) {\n var cellRange = this.rangeService.getCellRanges()[0];\n var isColumnRange = !cellRange.startRow || !cellRange.endRow;\n if (isColumnRange) {\n this.destroy();\n return;\n }\n _super.prototype.refresh.call(this, cellCtrl);\n };\n FillHandle.TEMPLATE = \"
\";\n __decorate$1q([\n agGridCommunity.Autowired('valueService')\n ], FillHandle.prototype, \"valueService\", void 0);\n return FillHandle;\n}(AbstractSelectionHandle));\n\nvar __extends$30 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$t = (undefined && undefined.__assign) || function () {\n __assign$t = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$t.apply(this, arguments);\n};\nvar RangeHandle$1 = /** @class */ (function (_super) {\n __extends$30(RangeHandle, _super);\n function RangeHandle() {\n var _this = _super.call(this, RangeHandle.TEMPLATE) || this;\n _this.type = agGridCommunity.SelectionHandleType.RANGE;\n _this.rangeFixed = false;\n return _this;\n }\n RangeHandle.prototype.onDrag = function (e) {\n var lastCellHovered = this.getLastCellHovered();\n if (!lastCellHovered) {\n return;\n }\n var cellRanges = this.rangeService.getCellRanges();\n var lastRange = agGridCommunity._.last(cellRanges);\n if (!this.rangeFixed) {\n this.fixRangeStartEnd(lastRange);\n this.rangeFixed = true;\n }\n this.endPosition = {\n rowIndex: lastCellHovered.rowIndex,\n rowPinned: lastCellHovered.rowPinned,\n column: lastCellHovered.column\n };\n // check if the cell ranges are for a chart\n if (cellRanges.length === 2 && cellRanges[0].type === agGridCommunity.CellRangeType.DIMENSION && lastRange.type === agGridCommunity.CellRangeType.VALUE) {\n var rowChanged = !this.rowPositionUtils.sameRow(this.endPosition, this.rangeService.getRangeEndRow(lastRange));\n if (rowChanged) {\n // ensure the dimension range is kept in sync with the value range (which has the handle)\n this.rangeService.updateRangeEnd(cellRanges[0], __assign$t(__assign$t({}, this.endPosition), { column: cellRanges[0].columns[0] }), true);\n }\n }\n this.rangeService.extendLatestRangeToCell(this.endPosition);\n };\n RangeHandle.prototype.onDragEnd = function (e) {\n var cellRange = agGridCommunity._.last(this.rangeService.getCellRanges());\n this.fixRangeStartEnd(cellRange);\n this.rangeFixed = false;\n };\n RangeHandle.prototype.fixRangeStartEnd = function (cellRange) {\n var startRow = this.rangeService.getRangeStartRow(cellRange);\n var endRow = this.rangeService.getRangeEndRow(cellRange);\n var column = cellRange.columns[0];\n cellRange.startRow = startRow;\n cellRange.endRow = endRow;\n cellRange.startColumn = column;\n };\n RangeHandle.TEMPLATE = \"
\";\n return RangeHandle;\n}(AbstractSelectionHandle));\n\nvar __extends$31 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectionHandleFactory = /** @class */ (function (_super) {\n __extends$31(SelectionHandleFactory, _super);\n function SelectionHandleFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionHandleFactory.prototype.createSelectionHandle = function (type) {\n return this.createBean(type === agGridCommunity.SelectionHandleType.RANGE ? new RangeHandle$1() : new FillHandle());\n };\n SelectionHandleFactory = __decorate$1r([\n agGridCommunity.Bean('selectionHandleFactory')\n ], SelectionHandleFactory);\n return SelectionHandleFactory;\n}(agGridCommunity.BeanStub));\n\nvar RangeSelectionModule = {\n moduleName: agGridCommunity.ModuleNames.RangeSelectionModule,\n beans: [RangeService, SelectionHandleFactory],\n agStackComponents: [\n { componentName: 'AgFillHandle', componentClass: FillHandle },\n { componentName: 'AgRangeHandle', componentClass: RangeHandle$1 }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar GridChartsModule = {\n moduleName: agGridCommunity.ModuleNames.GridChartsModule,\n beans: [\n ChartService, ChartTranslationService, ChartCrossFilterService\n ],\n dependantModules: [\n RangeSelectionModule,\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$32 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$u = (undefined && undefined.__assign) || function () {\n __assign$u = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$u.apply(this, arguments);\n};\nvar __decorate$1s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DetailCellRendererCtrl = /** @class */ (function (_super) {\n __extends$32(DetailCellRendererCtrl, _super);\n function DetailCellRendererCtrl() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.loadRowDataVersion = 0;\n _this.needRefresh = false;\n return _this;\n }\n DetailCellRendererCtrl.prototype.init = function (comp, params) {\n var _this = this;\n this.params = params;\n this.comp = comp;\n var doNothingBecauseInsidePinnedSection = params.pinned != null;\n if (doNothingBecauseInsidePinnedSection) {\n return;\n }\n this.setAutoHeightClasses();\n this.setupRefreshStrategy();\n this.addThemeToDetailGrid();\n this.createDetailGrid();\n this.loadRowData();\n this.addManagedListener(params.node.parent, agGridCommunity.RowNode.EVENT_DATA_CHANGED, function () {\n _this.needRefresh = true;\n });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_FULL_WIDTH_ROW_FOCUSED, this.onFullWidthRowFocused.bind(this));\n };\n DetailCellRendererCtrl.prototype.onFullWidthRowFocused = function (e) {\n var params = this.params;\n var row = { rowIndex: params.node.rowIndex, rowPinned: params.node.rowPinned };\n var eventRow = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n var isSameRow = this.rowPositionUtils.sameRow(row, eventRow);\n if (!isSameRow) {\n return;\n }\n this.focusService.focusInto(this.comp.getGui(), e.fromBelow);\n };\n DetailCellRendererCtrl.prototype.setAutoHeightClasses = function () {\n var autoHeight = this.gridOptionsWrapper.isDetailRowAutoHeight();\n var parentClass = autoHeight ? 'ag-details-row-auto-height' : 'ag-details-row-fixed-height';\n var detailClass = autoHeight ? 'ag-details-grid-auto-height' : 'ag-details-grid-fixed-height';\n this.comp.addOrRemoveCssClass(parentClass, true);\n this.comp.addOrRemoveDetailGridCssClass(detailClass, true);\n };\n DetailCellRendererCtrl.prototype.setupRefreshStrategy = function () {\n if (this.params.suppressRefresh) {\n console.warn(\"AG Grid: as of v23.2.0, cellRendererParams.suppressRefresh for Detail Cell Renderer is no \" +\n \"longer used. Please set cellRendererParams.refreshStrategy = 'nothing' instead.\");\n this.refreshStrategy = 'nothing';\n return;\n }\n var providedStrategy = this.params.refreshStrategy;\n var validSelection = providedStrategy == 'everything' || providedStrategy == 'nothing' || providedStrategy == 'rows';\n if (validSelection) {\n this.refreshStrategy = providedStrategy;\n return;\n }\n if (providedStrategy != null) {\n console.warn(\"AG Grid: invalid cellRendererParams.refreshStrategy = '\" + providedStrategy +\n \"' supplied, defaulting to refreshStrategy = 'rows'.\");\n }\n this.refreshStrategy = 'rows';\n };\n DetailCellRendererCtrl.prototype.addThemeToDetailGrid = function () {\n // this is needed by environment service of the child grid, the class needs to be on\n // the grid div itself - the browser's CSS on the other hand just inherits from the parent grid theme.\n var theme = this.environment.getTheme().theme;\n if (theme) {\n this.comp.addOrRemoveDetailGridCssClass(theme, true);\n }\n };\n DetailCellRendererCtrl.prototype.createDetailGrid = function () {\n if (agGridCommunity._.missing(this.params.detailGridOptions)) {\n console.warn('AG Grid: could not find detail grid options for master detail, ' +\n 'please set gridOptions.detailCellRendererParams.detailGridOptions');\n return;\n }\n var autoHeight = this.gridOptionsWrapper.isDetailRowAutoHeight();\n // we clone the detail grid options, as otherwise it would be shared\n // across many instances, and that would be a problem because we set\n // api and columnApi into gridOptions\n var gridOptions = __assign$u({}, this.params.detailGridOptions);\n if (autoHeight) {\n gridOptions.domLayout = 'autoHeight';\n }\n this.comp.setDetailGrid(gridOptions);\n };\n DetailCellRendererCtrl.prototype.registerDetailWithMaster = function (api, columnApi) {\n var rowId = this.params.node.id;\n var masterGridApi = this.params.api;\n var gridInfo = {\n id: rowId,\n api: api,\n columnApi: columnApi\n };\n var rowNode = this.params.node;\n // register with api\n masterGridApi.addDetailGridInfo(rowId, gridInfo);\n // register with node\n rowNode.detailGridInfo = gridInfo;\n this.addDestroyFunc(function () {\n // the gridInfo can be stale if a refresh happens and\n // a new row is created before the old one is destroyed.\n if (rowNode.detailGridInfo !== gridInfo) {\n return;\n }\n masterGridApi.removeDetailGridInfo(rowId); // unregister from api\n rowNode.detailGridInfo = null; // unregister from node\n });\n };\n DetailCellRendererCtrl.prototype.loadRowData = function () {\n var _this = this;\n // in case a refresh happens before the last refresh completes (as we depend on async\n // application logic) we keep track on what the latest call was.\n this.loadRowDataVersion++;\n var versionThisCall = this.loadRowDataVersion;\n var userFunc = this.params.getDetailRowData;\n if (!userFunc) {\n console.warn('AG Grid: could not find getDetailRowData for master / detail, ' +\n 'please set gridOptions.detailCellRendererParams.getDetailRowData');\n return;\n }\n var successCallback = function (rowData) {\n var mostRecentCall = _this.loadRowDataVersion === versionThisCall;\n if (mostRecentCall) {\n _this.comp.setRowData(rowData);\n }\n };\n var funcParams = {\n node: this.params.node,\n // we take data from node, rather than params.data\n // as the data could have been updated with new instance\n data: this.params.node.data,\n successCallback: successCallback,\n context: this.gridOptionsWrapper.getContext()\n };\n userFunc(funcParams);\n };\n DetailCellRendererCtrl.prototype.refresh = function () {\n var GET_GRID_TO_REFRESH = false;\n var GET_GRID_TO_DO_NOTHING = true;\n // if we return true, it means we pretend to the grid\n // that we have refreshed, so refresh will never happen.\n var doNotRefresh = !this.needRefresh || this.refreshStrategy === 'nothing';\n if (doNotRefresh) {\n // we do nothing in this refresh method, and also tell the grid to do nothing\n return GET_GRID_TO_DO_NOTHING;\n }\n // reset flag, so don't refresh again until more data changes.\n this.needRefresh = false;\n if (this.refreshStrategy === 'everything') {\n // we want full refresh, so tell the grid to destroy and recreate this cell\n return GET_GRID_TO_REFRESH;\n }\n else {\n // do the refresh here, and tell the grid to do nothing\n this.loadRowData();\n return GET_GRID_TO_DO_NOTHING;\n }\n };\n __decorate$1s([\n agGridCommunity.Autowired('environment')\n ], DetailCellRendererCtrl.prototype, \"environment\", void 0);\n __decorate$1s([\n agGridCommunity.Autowired('rowPositionUtils')\n ], DetailCellRendererCtrl.prototype, \"rowPositionUtils\", void 0);\n __decorate$1s([\n agGridCommunity.Autowired('focusService')\n ], DetailCellRendererCtrl.prototype, \"focusService\", void 0);\n return DetailCellRendererCtrl;\n}(agGridCommunity.BeanStub));\n\nvar __extends$33 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DetailCellRenderer = /** @class */ (function (_super) {\n __extends$33(DetailCellRenderer, _super);\n function DetailCellRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DetailCellRenderer.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.selectAndSetTemplate();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveDetailGridCssClass: function (cssClassName, on) { return _this.eDetailGrid.classList.toggle(cssClassName, on); },\n setDetailGrid: function (gridOptions) { return _this.setDetailGrid(gridOptions); },\n setRowData: function (rowData) { return _this.setRowData(rowData); },\n getGui: function () { return _this.eDetailGrid; }\n };\n this.ctrl = this.createManagedBean(new DetailCellRendererCtrl());\n this.ctrl.init(compProxy, params);\n };\n DetailCellRenderer.prototype.refresh = function () {\n return this.ctrl && this.ctrl.refresh();\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n DetailCellRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n DetailCellRenderer.prototype.selectAndSetTemplate = function () {\n var _this = this;\n if (this.params.pinned) {\n this.setTemplate('
');\n return;\n }\n var setDefaultTemplate = function () {\n _this.setTemplate(DetailCellRenderer.TEMPLATE);\n };\n if (agGridCommunity._.missing(this.params.template)) {\n // use default template\n setDefaultTemplate();\n }\n else {\n // use user provided template\n if (typeof this.params.template === 'string') {\n this.setTemplate(this.params.template);\n }\n else if (typeof this.params.template === 'function') {\n var templateFunc = this.params.template;\n var template = templateFunc(this.params);\n this.setTemplate(template);\n }\n else {\n console.warn('AG Grid: detailCellRendererParams.template should be function or string');\n setDefaultTemplate();\n }\n }\n if (this.eDetailGrid == null) {\n console.warn('AG Grid: reference to eDetailGrid was missing from the details template. ' +\n 'Please add ref=\"eDetailGrid\" to the template.');\n }\n };\n DetailCellRenderer.prototype.setDetailGrid = function (gridOptions) {\n if (!this.eDetailGrid) {\n return;\n }\n // AG-1715\n // this is only needed when reactUi=false, once we remove the old way\n // of doing react, and Master / Details is all native React, then we\n // can remove this code.\n var agGridReact = this.context.getBean('agGridReact');\n var agGridReactCloned = agGridReact ? agGridCommunity._.cloneObject(agGridReact) : undefined;\n // when we create detail grid, the detail grid needs frameworkComponentWrapper so that\n // it created child components correctly, ie Angular detail grid can have Angular cell renderer.\n // this is only used by Angular and Vue, as React uses native React AG Grid detail grids\n var frameworkComponentWrapper = this.context.getBean('frameworkComponentWrapper');\n var frameworkOverrides = this.getFrameworkOverrides();\n // tslint:disable-next-line\n new agGridCommunity.Grid(this.eDetailGrid, gridOptions, {\n frameworkOverrides: frameworkOverrides,\n providedBeanInstances: {\n agGridReact: agGridReactCloned,\n frameworkComponentWrapper: frameworkComponentWrapper\n }\n });\n this.detailApi = gridOptions.api;\n this.ctrl.registerDetailWithMaster(gridOptions.api, gridOptions.columnApi);\n this.addDestroyFunc(function () {\n if (gridOptions.api) {\n gridOptions.api.destroy();\n }\n });\n };\n DetailCellRenderer.prototype.setRowData = function (rowData) {\n // ensure detail grid api still exists (grid may be destroyed when async call tries to set data)\n this.detailApi && this.detailApi.setRowData(rowData);\n };\n DetailCellRenderer.TEMPLATE = \"
\\n
\\n
\";\n __decorate$1t([\n agGridCommunity.RefSelector('eDetailGrid')\n ], DetailCellRenderer.prototype, \"eDetailGrid\", void 0);\n return DetailCellRenderer;\n}(agGridCommunity.Component));\n\nvar MasterDetailModule = {\n moduleName: agGridCommunity.ModuleNames.MasterDetailModule,\n beans: [],\n userComponents: [\n { componentName: 'agDetailCellRenderer', componentClass: DetailCellRenderer }\n ],\n controllers: [\n { controllerName: 'detailCellRenderer', controllerClass: DetailCellRendererCtrl }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$34 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EnterpriseMenuFactory = /** @class */ (function (_super) {\n __extends$34(EnterpriseMenuFactory, _super);\n function EnterpriseMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EnterpriseMenuFactory.prototype.hideActiveMenu = function () {\n this.destroyBean(this.activeMenu);\n };\n EnterpriseMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent, defaultTab) {\n var _this = this;\n this.showMenu(column, function (menu) {\n var ePopup = menu.getGui();\n _this.popupService.positionPopupUnderMouseEvent({\n type: 'columnMenu',\n column: column,\n mouseEvent: mouseEvent,\n ePopup: ePopup\n });\n if (defaultTab) {\n menu.showTab(defaultTab);\n }\n }, 'columnMenu', defaultTab, undefined, mouseEvent.target);\n };\n EnterpriseMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType, defaultTab, restrictToTabs) {\n var _this = this;\n var multiplier = -1;\n var alignSide = 'left';\n if (this.gridOptionsWrapper.isEnableRtl()) {\n multiplier = 1;\n alignSide = 'right';\n }\n this.showMenu(column, function (menu) {\n var ePopup = menu.getGui();\n _this.popupService.positionPopupUnderComponent({\n type: containerType,\n column: column,\n eventSource: eventSource,\n ePopup: ePopup,\n alignSide: alignSide,\n nudgeX: 9 * multiplier,\n nudgeY: -23,\n keepWithinBounds: true\n });\n if (defaultTab) {\n menu.showTab(defaultTab);\n }\n }, containerType, defaultTab, restrictToTabs, eventSource);\n };\n EnterpriseMenuFactory.prototype.showMenu = function (column, positionCallback, containerType, defaultTab, restrictToTabs, eventSource) {\n var _this = this;\n var menu = this.createBean(new EnterpriseMenu(column, this.lastSelectedTab, restrictToTabs));\n var eMenuGui = menu.getGui();\n var anchorToElement = eventSource || this.ctrlsService.getGridBodyCtrl().getGui();\n var closedFuncs = [];\n closedFuncs.push(function (e) {\n _this.destroyBean(menu);\n column.setMenuVisible(false, 'contextMenu');\n var isKeyboardEvent = e instanceof KeyboardEvent;\n if (isKeyboardEvent && eventSource && agGridCommunity._.isVisible(eventSource)) {\n var focusableEl = _this.focusService.findTabbableParent(eventSource);\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n });\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n // need to show filter before positioning, as only after filter\n // is visible can we find out what the width of it is\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenuGui,\n closeOnEsc: true,\n closedCallback: function (e) {\n closedFuncs.forEach(function (f) { return f(e); });\n },\n afterGuiAttached: function (params) { return menu.afterGuiAttached(Object.assign({}, { container: containerType }, params)); },\n positionCallback: function () { return positionCallback(menu); },\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelColumnMenu', 'Column Menu')\n });\n if (addPopupRes) {\n // if user starts showing / hiding columns, or otherwise move the underlying column\n // for this menu, we want to stop tracking the menu with the column position. otherwise\n // the menu would move as the user is using the columns tab inside the menu.\n var stopAnchoringPromise = addPopupRes.stopAnchoringPromise;\n if (stopAnchoringPromise) {\n stopAnchoringPromise.then(function (stopAnchoringFunc) {\n column.addEventListener(agGridCommunity.Column.EVENT_LEFT_CHANGED, stopAnchoringFunc);\n column.addEventListener(agGridCommunity.Column.EVENT_VISIBLE_CHANGED, stopAnchoringFunc);\n closedFuncs.push(function () {\n column.removeEventListener(agGridCommunity.Column.EVENT_LEFT_CHANGED, stopAnchoringFunc);\n column.removeEventListener(agGridCommunity.Column.EVENT_VISIBLE_CHANGED, stopAnchoringFunc);\n });\n });\n }\n }\n if (!defaultTab) {\n menu.showTabBasedOnPreviousSelection();\n // reposition the menu because the method above could load\n // an element that is bigger than enterpriseMenu header.\n positionCallback(menu);\n }\n menu.addEventListener(EnterpriseMenu.EVENT_TAB_SELECTED, function (event) {\n _this.lastSelectedTab = event.key;\n });\n column.setMenuVisible(true, 'contextMenu');\n this.activeMenu = menu;\n menu.addEventListener(agGridCommunity.BeanStub.EVENT_DESTROYED, function () {\n if (_this.activeMenu === menu) {\n _this.activeMenu = null;\n }\n });\n };\n EnterpriseMenuFactory.prototype.isMenuEnabled = function (column) {\n return column.getMenuTabs(EnterpriseMenu.TABS_DEFAULT).length > 0;\n };\n __decorate$1u([\n agGridCommunity.Autowired('popupService')\n ], EnterpriseMenuFactory.prototype, \"popupService\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('focusService')\n ], EnterpriseMenuFactory.prototype, \"focusService\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('ctrlsService')\n ], EnterpriseMenuFactory.prototype, \"ctrlsService\", void 0);\n EnterpriseMenuFactory = __decorate$1u([\n agGridCommunity.Bean('menuFactory')\n ], EnterpriseMenuFactory);\n return EnterpriseMenuFactory;\n}(agGridCommunity.BeanStub));\nvar EnterpriseMenu = /** @class */ (function (_super) {\n __extends$34(EnterpriseMenu, _super);\n function EnterpriseMenu(column, initialSelection, restrictTo) {\n var _this = _super.call(this) || this;\n _this.tabFactories = {};\n _this.includeChecks = {};\n _this.column = column;\n _this.initialSelection = initialSelection;\n _this.tabFactories[EnterpriseMenu.TAB_GENERAL] = _this.createMainPanel.bind(_this);\n _this.tabFactories[EnterpriseMenu.TAB_FILTER] = _this.createFilterPanel.bind(_this);\n _this.tabFactories[EnterpriseMenu.TAB_COLUMNS] = _this.createColumnsPanel.bind(_this);\n _this.includeChecks[EnterpriseMenu.TAB_GENERAL] = function () { return true; };\n _this.includeChecks[EnterpriseMenu.TAB_FILTER] = function () { return column.isFilterAllowed(); };\n _this.includeChecks[EnterpriseMenu.TAB_COLUMNS] = function () { return true; };\n _this.restrictTo = restrictTo;\n return _this;\n }\n EnterpriseMenu.prototype.init = function () {\n var _this = this;\n var tabs = this.getTabsToCreate().map(function (name) { return _this.createTab(name); });\n this.tabbedLayout = new agGridCommunity.TabbedLayout({\n items: tabs,\n cssClass: 'ag-menu',\n onActiveItemClicked: this.onHidePopup.bind(this),\n onItemClicked: this.onTabItemClicked.bind(this)\n });\n this.createBean(this.tabbedLayout);\n if (this.mainMenuList) {\n this.mainMenuList.setParentComponent(this.tabbedLayout);\n }\n };\n EnterpriseMenu.prototype.getTabsToCreate = function () {\n var _this = this;\n if (this.restrictTo) {\n return this.restrictTo;\n }\n return this.column.getMenuTabs(EnterpriseMenu.TABS_DEFAULT)\n .filter(function (tabName) { return _this.isValidMenuTabItem(tabName); })\n .filter(function (tabName) { return _this.isNotSuppressed(tabName); })\n .filter(function (tabName) { return _this.isModuleLoaded(tabName); });\n };\n EnterpriseMenu.prototype.isModuleLoaded = function (menuTabName) {\n if (menuTabName === EnterpriseMenu.TAB_COLUMNS) {\n return agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.ColumnToolPanelModule);\n }\n return true;\n };\n EnterpriseMenu.prototype.isValidMenuTabItem = function (menuTabName) {\n var isValid = true;\n var itemsToConsider = EnterpriseMenu.TABS_DEFAULT;\n if (this.restrictTo != null) {\n isValid = this.restrictTo.indexOf(menuTabName) > -1;\n itemsToConsider = this.restrictTo;\n }\n isValid = isValid && EnterpriseMenu.TABS_DEFAULT.indexOf(menuTabName) > -1;\n if (!isValid) {\n console.warn(\"AG Grid: Trying to render an invalid menu item '\" + menuTabName + \"'. Check that your 'menuTabs' contains one of [\" + itemsToConsider + \"]\");\n }\n return isValid;\n };\n EnterpriseMenu.prototype.isNotSuppressed = function (menuTabName) {\n return this.includeChecks[menuTabName]();\n };\n EnterpriseMenu.prototype.createTab = function (name) {\n return this.tabFactories[name]();\n };\n EnterpriseMenu.prototype.showTabBasedOnPreviousSelection = function () {\n // show the tab the user was on last time they had a menu open\n this.showTab(this.initialSelection);\n };\n EnterpriseMenu.prototype.showTab = function (toShow) {\n if (this.tabItemColumns && toShow === EnterpriseMenu.TAB_COLUMNS) {\n this.tabbedLayout.showItem(this.tabItemColumns);\n }\n else if (this.tabItemFilter && toShow === EnterpriseMenu.TAB_FILTER) {\n this.tabbedLayout.showItem(this.tabItemFilter);\n }\n else if (this.tabItemGeneral && toShow === EnterpriseMenu.TAB_GENERAL) {\n this.tabbedLayout.showItem(this.tabItemGeneral);\n }\n else {\n this.tabbedLayout.showFirstItem();\n }\n };\n EnterpriseMenu.prototype.onTabItemClicked = function (event) {\n var key = null;\n switch (event.item) {\n case this.tabItemColumns:\n key = EnterpriseMenu.TAB_COLUMNS;\n break;\n case this.tabItemFilter:\n key = EnterpriseMenu.TAB_FILTER;\n break;\n case this.tabItemGeneral:\n key = EnterpriseMenu.TAB_GENERAL;\n break;\n }\n if (key) {\n this.activateTab(key);\n }\n };\n EnterpriseMenu.prototype.activateTab = function (tab) {\n var ev = {\n type: EnterpriseMenu.EVENT_TAB_SELECTED,\n key: tab\n };\n this.dispatchEvent(ev);\n };\n EnterpriseMenu.prototype.getMenuItems = function () {\n var defaultMenuOptions = this.getDefaultMenuOptions();\n var result;\n var userFunc = this.gridOptionsWrapper.getMainMenuItemsFunc();\n if (userFunc) {\n result = userFunc({\n column: this.column,\n defaultItems: defaultMenuOptions\n });\n }\n else {\n result = defaultMenuOptions;\n }\n // GUI looks weird when two separators are side by side. this can happen accidentally\n // if we remove items from the menu then two separators can edit up adjacent.\n agGridCommunity._.removeRepeatsFromArray(result, EnterpriseMenu.MENU_ITEM_SEPARATOR);\n return result;\n };\n EnterpriseMenu.prototype.getDefaultMenuOptions = function () {\n var result = [];\n var allowPinning = !this.column.getColDef().lockPinned;\n var rowGroupCount = this.columnModel.getRowGroupColumns().length;\n var doingGrouping = rowGroupCount > 0;\n var groupedByThisColumn = this.columnModel.getRowGroupColumns().indexOf(this.column) >= 0;\n var allowValue = this.column.isAllowValue();\n var allowRowGroup = this.column.isAllowRowGroup();\n var isPrimary = this.column.isPrimary();\n var pivotModeOn = this.columnModel.isPivotMode();\n var isInMemoryRowModel = this.rowModel.getType() === agGridCommunity.Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n var allowValueAgg = \n // if primary, then only allow aggValue if grouping and it's a value columns\n (isPrimary && doingGrouping && allowValue)\n // secondary columns can always have aggValue, as it means it's a pivot value column\n || !isPrimary;\n if (allowPinning) {\n result.push('pinSubMenu');\n }\n if (allowValueAgg) {\n result.push('valueAggSubMenu');\n }\n if (allowPinning || allowValueAgg) {\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n }\n result.push('autoSizeThis');\n result.push('autoSizeAll');\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n if (allowRowGroup && this.column.isPrimary()) {\n if (groupedByThisColumn) {\n result.push('rowUnGroup');\n }\n else {\n result.push('rowGroup');\n }\n }\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n result.push('resetColumns');\n // only add grouping expand/collapse if grouping in the InMemoryRowModel\n // if pivoting, we only have expandable groups if grouping by 2 or more columns\n // as the lowest level group is not expandable while pivoting.\n // if not pivoting, then any active row group can be expanded.\n var allowExpandAndContract = isInMemoryRowModel && (usingTreeData || rowGroupCount > (pivotModeOn ? 1 : 0));\n if (allowExpandAndContract) {\n result.push('expandAll');\n result.push('contractAll');\n }\n return result;\n };\n EnterpriseMenu.prototype.createMainPanel = function () {\n this.mainMenuList = this.createManagedBean(new agGridCommunity.AgMenuList());\n var menuItems = this.getMenuItems();\n var menuItemsMapped = this.menuItemMapper.mapWithStockItems(menuItems, this.column);\n this.mainMenuList.addMenuItems(menuItemsMapped);\n this.mainMenuList.addEventListener(agGridCommunity.AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, this.onHidePopup.bind(this));\n this.tabItemGeneral = {\n title: agGridCommunity._.createIconNoSpan('menu', this.gridOptionsWrapper, this.column),\n titleLabel: EnterpriseMenu.TAB_GENERAL.replace('MenuTab', ''),\n bodyPromise: agGridCommunity.AgPromise.resolve(this.mainMenuList.getGui()),\n name: EnterpriseMenu.TAB_GENERAL\n };\n return this.tabItemGeneral;\n };\n EnterpriseMenu.prototype.onHidePopup = function (event) {\n var keyboardEvent;\n if (event && event.event && event.event instanceof KeyboardEvent) {\n keyboardEvent = event.event;\n }\n this.hidePopupFunc(keyboardEvent && { keyboardEvent: keyboardEvent });\n // this method only gets called when the menu was closed by selection an option\n // in this case we highlight the cell that was previously highlighted\n var focusedCell = this.focusService.getFocusedCell();\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (eDocument.activeElement === eDocument.body && focusedCell) {\n var rowIndex = focusedCell.rowIndex, rowPinned = focusedCell.rowPinned, column = focusedCell.column;\n this.focusService.setFocusedCell(rowIndex, column, rowPinned, true);\n }\n };\n EnterpriseMenu.prototype.createFilterPanel = function () {\n var _a;\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(this.column, 'COLUMN_MENU');\n if (!filterWrapper) {\n throw new Error('AG Grid - Unable to instantiate filter');\n }\n var afterFilterAttachedCallback = function (params) {\n var _a;\n if (!((_a = filterWrapper) === null || _a === void 0 ? void 0 : _a.filterPromise)) {\n return;\n }\n // slightly odd block this - this promise will always have been resolved by the time it gets here, so won't be\n // async (_unless_ in react or similar, but if so why not encountered before now?).\n // I'd suggest a future improvement would be to remove/replace this promise as this block just wont work if it is\n // async and is confusing if you don't have this context\n filterWrapper.filterPromise.then(function (filter) {\n if (filter && filter.afterGuiAttached) {\n filter.afterGuiAttached(params);\n }\n });\n };\n this.tabItemFilter = {\n title: agGridCommunity._.createIconNoSpan('filter', this.gridOptionsWrapper, this.column),\n titleLabel: EnterpriseMenu.TAB_FILTER.replace('MenuTab', ''),\n bodyPromise: (_a = filterWrapper) === null || _a === void 0 ? void 0 : _a.guiPromise,\n afterAttachedCallback: afterFilterAttachedCallback,\n name: EnterpriseMenu.TAB_FILTER\n };\n return this.tabItemFilter;\n };\n EnterpriseMenu.prototype.createColumnsPanel = function () {\n var eWrapperDiv = document.createElement('div');\n eWrapperDiv.classList.add('ag-menu-column-select-wrapper');\n this.columnSelectPanel = this.createManagedBean(new PrimaryColsPanel());\n var columnsMenuParams = this.column.getColDef().columnsMenuParams;\n if (!columnsMenuParams) {\n columnsMenuParams = {};\n }\n this.columnSelectPanel.init(false, {\n suppressColumnMove: false,\n suppressValues: false,\n suppressPivots: false,\n suppressRowGroups: false,\n suppressPivotMode: false,\n contractColumnSelection: !!columnsMenuParams.contractColumnSelection,\n suppressColumnExpandAll: !!columnsMenuParams.suppressColumnExpandAll,\n suppressColumnFilter: !!columnsMenuParams.suppressColumnFilter,\n suppressColumnSelectAll: !!columnsMenuParams.suppressColumnSelectAll,\n suppressSyncLayoutWithGrid: !!columnsMenuParams.suppressSyncLayoutWithGrid,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n }, 'columnMenu');\n var columnSelectPanelGui = this.columnSelectPanel.getGui();\n columnSelectPanelGui.classList.add('ag-menu-column-select');\n eWrapperDiv.appendChild(columnSelectPanelGui);\n this.tabItemColumns = {\n title: agGridCommunity._.createIconNoSpan('columns', this.gridOptionsWrapper, this.column),\n titleLabel: EnterpriseMenu.TAB_COLUMNS.replace('MenuTab', ''),\n bodyPromise: agGridCommunity.AgPromise.resolve(eWrapperDiv),\n name: EnterpriseMenu.TAB_COLUMNS\n };\n return this.tabItemColumns;\n };\n EnterpriseMenu.prototype.afterGuiAttached = function (params) {\n var container = params.container, hidePopup = params.hidePopup;\n this.tabbedLayout.setAfterAttachedParams({ container: container, hidePopup: hidePopup });\n if (hidePopup) {\n this.hidePopupFunc = hidePopup;\n this.addDestroyFunc(hidePopup);\n }\n };\n EnterpriseMenu.prototype.getGui = function () {\n return this.tabbedLayout.getGui();\n };\n EnterpriseMenu.EVENT_TAB_SELECTED = 'tabSelected';\n EnterpriseMenu.TAB_FILTER = 'filterMenuTab';\n EnterpriseMenu.TAB_GENERAL = 'generalMenuTab';\n EnterpriseMenu.TAB_COLUMNS = 'columnsMenuTab';\n EnterpriseMenu.TABS_DEFAULT = [EnterpriseMenu.TAB_GENERAL, EnterpriseMenu.TAB_FILTER, EnterpriseMenu.TAB_COLUMNS];\n EnterpriseMenu.MENU_ITEM_SEPARATOR = 'separator';\n __decorate$1u([\n agGridCommunity.Autowired('columnModel')\n ], EnterpriseMenu.prototype, \"columnModel\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('filterManager')\n ], EnterpriseMenu.prototype, \"filterManager\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('gridApi')\n ], EnterpriseMenu.prototype, \"gridApi\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('columnApi')\n ], EnterpriseMenu.prototype, \"columnApi\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('menuItemMapper')\n ], EnterpriseMenu.prototype, \"menuItemMapper\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('rowModel')\n ], EnterpriseMenu.prototype, \"rowModel\", void 0);\n __decorate$1u([\n agGridCommunity.Autowired('focusService')\n ], EnterpriseMenu.prototype, \"focusService\", void 0);\n __decorate$1u([\n agGridCommunity.PostConstruct\n ], EnterpriseMenu.prototype, \"init\", null);\n return EnterpriseMenu;\n}(agGridCommunity.BeanStub));\n\nvar __extends$35 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CSS_MENU = 'ag-menu';\nvar CSS_CONTEXT_MENU_OPEN = 'ag-context-menu-open';\nvar ContextMenuFactory = /** @class */ (function (_super) {\n __extends$35(ContextMenuFactory, _super);\n function ContextMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ContextMenuFactory.prototype.hideActiveMenu = function () {\n this.destroyBean(this.activeMenu);\n };\n ContextMenuFactory.prototype.getMenuItems = function (node, column, value) {\n var defaultMenuOptions = [];\n if (agGridCommunity._.exists(node) && agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.ClipboardModule)) {\n if (column) {\n // only makes sense if column exists, could have originated from a row\n defaultMenuOptions.push('copy', 'copyWithHeaders', 'copyWithGroupHeaders', 'paste', 'separator');\n }\n }\n if (this.gridOptionsWrapper.isEnableCharts() &&\n agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.RangeSelectionModule) &&\n agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.GridChartsModule)) {\n if (this.columnModel.isPivotMode()) {\n defaultMenuOptions.push('pivotChart');\n }\n if (this.rangeService && !this.rangeService.isEmpty()) {\n defaultMenuOptions.push('chartRange');\n }\n }\n if (agGridCommunity._.exists(node)) {\n // if user clicks a cell\n var csvModuleMissing = !agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.CsvExportModule);\n var excelModuleMissing = !agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.ExcelExportModule);\n var suppressExcel = this.gridOptionsWrapper.isSuppressExcelExport() || excelModuleMissing;\n var suppressCsv = this.gridOptionsWrapper.isSuppressCsvExport() || csvModuleMissing;\n var onIPad = agGridCommunity._.isIOSUserAgent();\n var anyExport = !onIPad && (!suppressExcel || !suppressCsv);\n if (anyExport) {\n defaultMenuOptions.push('export');\n }\n }\n if (this.gridOptionsWrapper.getContextMenuItemsFunc()) {\n var userFunc = this.gridOptionsWrapper.getContextMenuItemsFunc();\n var params = {\n node: node,\n column: column,\n value: value,\n defaultItems: defaultMenuOptions.length ? defaultMenuOptions : undefined,\n };\n return userFunc ? userFunc(params) : undefined;\n }\n return defaultMenuOptions;\n };\n ContextMenuFactory.prototype.onContextMenu = function (mouseEvent, touchEvent, rowNode, column, value, anchorToElement) {\n // to allow us to debug in chrome, we ignore the event if ctrl is pressed.\n // not everyone wants this, so first 'if' below allows to turn this hack off.\n if (!this.gridOptionsWrapper.isAllowContextMenuWithControlKey()) {\n // then do the check\n if (mouseEvent && (mouseEvent.ctrlKey || mouseEvent.metaKey)) {\n return;\n }\n }\n // need to do this regardless of context menu showing or not, so doing\n // before the isSuppressContextMenu() check\n if (mouseEvent) {\n this.blockMiddleClickScrollsIfNeeded(mouseEvent);\n }\n if (this.gridOptionsWrapper.isSuppressContextMenu()) {\n return;\n }\n var eventOrTouch = mouseEvent ? mouseEvent : touchEvent.touches[0];\n if (this.showMenu(rowNode, column, value, eventOrTouch, anchorToElement)) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n event_1.preventDefault();\n }\n };\n ContextMenuFactory.prototype.blockMiddleClickScrollsIfNeeded = function (mouseEvent) {\n // if we don't do this, then middle click will never result in a 'click' event, as 'mousedown'\n // will be consumed by the browser to mean 'scroll' (as you can scroll with the middle mouse\n // button in the browser). so this property allows the user to receive middle button clicks if\n // they want.\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var which = mouseEvent.which;\n if (gridOptionsWrapper.isSuppressMiddleClickScrolls() && which === 2) {\n mouseEvent.preventDefault();\n }\n };\n ContextMenuFactory.prototype.showMenu = function (node, column, value, mouseEvent, anchorToElement) {\n var _this = this;\n var menuItems = this.getMenuItems(node, column, value);\n var eGridBodyGui = this.ctrlsService.getGridBodyCtrl().getGui();\n if (menuItems === undefined || agGridCommunity._.missingOrEmpty(menuItems)) {\n return false;\n }\n var menu = new ContextMenu(menuItems);\n this.createBean(menu);\n var eMenuGui = menu.getGui();\n var positionParams = {\n column: column,\n rowNode: node,\n type: 'contextMenu',\n mouseEvent: mouseEvent,\n ePopup: eMenuGui,\n // move one pixel away so that accidentally double clicking\n // won't show the browser's contextmenu\n nudgeY: 1\n };\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenuGui,\n closeOnEsc: true,\n closedCallback: function () {\n eGridBodyGui.classList.remove(CSS_CONTEXT_MENU_OPEN);\n _this.destroyBean(menu);\n },\n click: mouseEvent,\n positionCallback: function () {\n _this.popupService.positionPopupUnderMouseEvent(Object.assign({}, {\n nudgeX: _this.gridOptionsWrapper.isEnableRtl() ? (eMenuGui.offsetWidth + 1) * -1 : 1\n }, positionParams));\n },\n // so when browser is scrolled down, or grid is scrolled, context menu stays with cell\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelContextMenu', 'Context Menu')\n });\n if (addPopupRes) {\n eGridBodyGui.classList.add(CSS_CONTEXT_MENU_OPEN);\n menu.afterGuiAttached({ container: 'contextMenu', hidePopup: addPopupRes.hideFunc });\n }\n // there should never be an active menu at this point, however it was found\n // that you could right click a second time just 1 or 2 pixels from the first\n // click, and another menu would pop up. so somehow the logic for closing the\n // first menu (clicking outside should close it) was glitchy somehow. an easy\n // way to avoid this is just remove the old context menu here if it exists.\n if (this.activeMenu) {\n this.hideActiveMenu();\n }\n this.activeMenu = menu;\n menu.addEventListener(agGridCommunity.BeanStub.EVENT_DESTROYED, function () {\n if (_this.activeMenu === menu) {\n _this.activeMenu = null;\n }\n });\n // hide the popup if something gets selected\n if (addPopupRes) {\n menu.addEventListener(agGridCommunity.AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, addPopupRes.hideFunc);\n }\n return true;\n };\n __decorate$1v([\n agGridCommunity.Autowired('popupService')\n ], ContextMenuFactory.prototype, \"popupService\", void 0);\n __decorate$1v([\n agGridCommunity.Optional('rangeService')\n ], ContextMenuFactory.prototype, \"rangeService\", void 0);\n __decorate$1v([\n agGridCommunity.Autowired('ctrlsService')\n ], ContextMenuFactory.prototype, \"ctrlsService\", void 0);\n __decorate$1v([\n agGridCommunity.Autowired('columnModel')\n ], ContextMenuFactory.prototype, \"columnModel\", void 0);\n ContextMenuFactory = __decorate$1v([\n agGridCommunity.Bean('contextMenuFactory')\n ], ContextMenuFactory);\n return ContextMenuFactory;\n}(agGridCommunity.BeanStub));\nvar ContextMenu = /** @class */ (function (_super) {\n __extends$35(ContextMenu, _super);\n function ContextMenu(menuItems) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.menuList = null;\n _this.focusedCell = null;\n _this.menuItems = menuItems;\n return _this;\n }\n ContextMenu.prototype.addMenuItems = function () {\n var _this = this;\n var menuList = this.createBean(new agGridCommunity.AgMenuList());\n var menuItemsMapped = this.menuItemMapper.mapWithStockItems(this.menuItems, null);\n menuList.addMenuItems(menuItemsMapped);\n this.appendChild(menuList);\n this.menuList = menuList;\n menuList.addEventListener(agGridCommunity.AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (e) { return _this.dispatchEvent(e); });\n };\n ContextMenu.prototype.afterGuiAttached = function (params) {\n if (params.hidePopup) {\n this.addDestroyFunc(params.hidePopup);\n }\n this.focusedCell = this.focusService.getFocusedCell();\n if (this.menuList) {\n this.focusService.focusInto(this.menuList.getGui());\n }\n };\n ContextMenu.prototype.restoreFocusedCell = function () {\n var currentFocusedCell = this.focusService.getFocusedCell();\n if (currentFocusedCell && this.focusedCell && this.cellPositionUtils.equals(currentFocusedCell, this.focusedCell)) {\n var _a = this.focusedCell, rowIndex = _a.rowIndex, rowPinned = _a.rowPinned, column = _a.column;\n var doc = this.gridOptionsWrapper.getDocument();\n if (doc.activeElement === doc.body) {\n this.focusService.setFocusedCell(rowIndex, column, rowPinned, true);\n }\n }\n };\n ContextMenu.prototype.destroy = function () {\n this.restoreFocusedCell();\n _super.prototype.destroy.call(this);\n };\n __decorate$1v([\n agGridCommunity.Autowired('menuItemMapper')\n ], ContextMenu.prototype, \"menuItemMapper\", void 0);\n __decorate$1v([\n agGridCommunity.Autowired('focusService')\n ], ContextMenu.prototype, \"focusService\", void 0);\n __decorate$1v([\n agGridCommunity.Autowired('cellPositionUtils')\n ], ContextMenu.prototype, \"cellPositionUtils\", void 0);\n __decorate$1v([\n agGridCommunity.PostConstruct\n ], ContextMenu.prototype, \"addMenuItems\", null);\n return ContextMenu;\n}(agGridCommunity.Component));\n\nvar __extends$36 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MenuItemMapper = /** @class */ (function (_super) {\n __extends$36(MenuItemMapper, _super);\n function MenuItemMapper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MenuItemMapper.prototype.mapWithStockItems = function (originalList, column) {\n var _this = this;\n if (!originalList) {\n return [];\n }\n var resultList = [];\n originalList.forEach(function (menuItemOrString) {\n var result;\n if (typeof menuItemOrString === 'string') {\n result = _this.getStockMenuItem(menuItemOrString, column);\n }\n else {\n result = menuItemOrString;\n }\n // if no mapping, can happen when module is not loaded but user tries to use module anyway\n if (!result) {\n return;\n }\n var resultDef = result;\n var subMenu = resultDef.subMenu;\n if (subMenu && subMenu instanceof Array) {\n resultDef.subMenu = _this.mapWithStockItems(resultDef.subMenu, column);\n }\n if (result != null) {\n resultList.push(result);\n }\n });\n return resultList;\n };\n MenuItemMapper.prototype.getStockMenuItem = function (key, column) {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var skipHeaderOnAutoSize = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n switch (key) {\n case 'pinSubMenu':\n return {\n name: localeTextFunc('pinColumn', 'Pin Column'),\n icon: agGridCommunity._.createIconNoSpan('menuPin', this.gridOptionsWrapper, null),\n subMenu: ['pinLeft', 'pinRight', 'clearPinned']\n };\n case 'pinLeft':\n return {\n name: localeTextFunc('pinLeft', 'Pin Left'),\n action: function () { return _this.columnModel.setColumnPinned(column, agGridCommunity.Constants.PINNED_LEFT, \"contextMenu\"); },\n checked: !!column && column.isPinnedLeft()\n };\n case 'pinRight':\n return {\n name: localeTextFunc('pinRight', 'Pin Right'),\n action: function () { return _this.columnModel.setColumnPinned(column, agGridCommunity.Constants.PINNED_RIGHT, \"contextMenu\"); },\n checked: !!column && column.isPinnedRight()\n };\n case 'clearPinned':\n return {\n name: localeTextFunc('noPin', 'No Pin'),\n action: function () { return _this.columnModel.setColumnPinned(column, null, \"contextMenu\"); },\n checked: !!column && !column.isPinned()\n };\n case 'valueAggSubMenu':\n if (agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.RowGroupingModule, 'Aggregation from Menu')) {\n return {\n name: localeTextFunc('valueAggregation', 'Value Aggregation'),\n icon: agGridCommunity._.createIconNoSpan('menuValue', this.gridOptionsWrapper, null),\n subMenu: this.createAggregationSubMenu(column)\n };\n }\n else {\n return null;\n }\n case 'autoSizeThis':\n return {\n name: localeTextFunc('autosizeThiscolumn', 'Autosize This Column'),\n action: function () { return _this.columnModel.autoSizeColumn(column, skipHeaderOnAutoSize, \"contextMenu\"); }\n };\n case 'autoSizeAll':\n return {\n name: localeTextFunc('autosizeAllColumns', 'Autosize All Columns'),\n action: function () { return _this.columnModel.autoSizeAllColumns(skipHeaderOnAutoSize, \"contextMenu\"); }\n };\n case 'rowGroup':\n return {\n name: localeTextFunc('groupBy', 'Group by') + ' ' + agGridCommunity._.escapeString(this.columnModel.getDisplayNameForColumn(column, 'header')),\n action: function () { return _this.columnModel.addRowGroupColumn(column, \"contextMenu\"); },\n icon: agGridCommunity._.createIconNoSpan('menuAddRowGroup', this.gridOptionsWrapper, null)\n };\n case 'rowUnGroup':\n return {\n name: localeTextFunc('ungroupBy', 'Un-Group by') + ' ' + agGridCommunity._.escapeString(this.columnModel.getDisplayNameForColumn(column, 'header')),\n action: function () { return _this.columnModel.removeRowGroupColumn(column, \"contextMenu\"); },\n icon: agGridCommunity._.createIconNoSpan('menuRemoveRowGroup', this.gridOptionsWrapper, null)\n };\n case 'resetColumns':\n return {\n name: localeTextFunc('resetColumns', 'Reset Columns'),\n action: function () { return _this.columnModel.resetColumnState(\"contextMenu\"); }\n };\n case 'expandAll':\n return {\n name: localeTextFunc('expandAll', 'Expand All'),\n action: function () { return _this.gridApi.expandAll(); }\n };\n case 'contractAll':\n return {\n name: localeTextFunc('collapseAll', 'Collapse All'),\n action: function () { return _this.gridApi.collapseAll(); }\n };\n case 'copy':\n if (agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.ClipboardModule, 'Copy from Menu')) {\n return {\n name: localeTextFunc('copy', 'Copy'),\n shortcut: localeTextFunc('ctrlC', 'Ctrl+C'),\n icon: agGridCommunity._.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.copyToClipboard(); }\n };\n }\n else {\n return null;\n }\n case 'copyWithHeaders':\n if (agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.ClipboardModule, 'Copy with Headers from Menu')) {\n return {\n name: localeTextFunc('copyWithHeaders', 'Copy with Headers'),\n // shortcut: localeTextFunc('ctrlC','Ctrl+C'),\n icon: agGridCommunity._.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.copyToClipboard({ includeHeaders: true }); }\n };\n }\n else {\n return null;\n }\n case 'copyWithGroupHeaders':\n if (agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.ClipboardModule, 'Copy with Group Headers from Menu')) {\n return {\n name: localeTextFunc('copyWithGroupHeaders', 'Copy with Group Headers'),\n // shortcut: localeTextFunc('ctrlC','Ctrl+C'),\n icon: agGridCommunity._.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.copyToClipboard({ includeHeaders: true, includeGroupHeaders: true }); }\n };\n }\n else {\n return null;\n }\n case 'paste':\n if (agGridCommunity.ModuleRegistry.assertRegistered(agGridCommunity.ModuleNames.ClipboardModule, 'Paste from Clipboard')) {\n return {\n name: localeTextFunc('paste', 'Paste'),\n shortcut: localeTextFunc('ctrlV', 'Ctrl+V'),\n disabled: true,\n icon: agGridCommunity._.createIconNoSpan('clipboardPaste', this.gridOptionsWrapper, null),\n action: function () { return _this.clipboardService.pasteFromClipboard(); }\n };\n }\n else {\n return null;\n }\n case 'export':\n var exportSubMenuItems = [];\n var csvModuleLoaded = agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.CsvExportModule);\n var excelModuleLoaded = agGridCommunity.ModuleRegistry.isRegistered(agGridCommunity.ModuleNames.ExcelExportModule);\n if (!this.gridOptionsWrapper.isSuppressCsvExport() && csvModuleLoaded) {\n exportSubMenuItems.push('csvExport');\n }\n if (!this.gridOptionsWrapper.isSuppressExcelExport() && excelModuleLoaded) {\n exportSubMenuItems.push('excelExport');\n }\n return {\n name: localeTextFunc('export', 'Export'),\n subMenu: exportSubMenuItems,\n icon: agGridCommunity._.createIconNoSpan('save', this.gridOptionsWrapper, null),\n };\n case 'csvExport':\n return {\n name: localeTextFunc('csvExport', 'CSV Export'),\n icon: agGridCommunity._.createIconNoSpan('csvExport', this.gridOptionsWrapper, null),\n action: function () { return _this.gridApi.exportDataAsCsv({}); }\n };\n case 'excelExport':\n return {\n name: localeTextFunc('excelExport', 'Excel Export'),\n icon: agGridCommunity._.createIconNoSpan('excelExport', this.gridOptionsWrapper, null),\n action: function () { return _this.gridApi.exportDataAsExcel(); }\n };\n case 'separator':\n return 'separator';\n default:\n var chartMenuItem = this.getChartItems(key);\n if (chartMenuItem) {\n return chartMenuItem;\n }\n else {\n console.warn(\"AG Grid: unknown menu item type \" + key);\n return null;\n }\n }\n };\n MenuItemMapper.prototype.getChartItems = function (key) {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var pivotChartMenuItem = function (localeKey, defaultText, chartType) {\n return {\n name: localeTextFunc(localeKey, defaultText),\n action: function () { return _this.chartService.createPivotChart({ chartType: chartType }); }\n };\n };\n var rangeChartMenuItem = function (localeKey, defaultText, chartType) {\n return {\n name: localeTextFunc(localeKey, defaultText),\n action: function () { return _this.chartService.createChartFromCurrentRange(chartType); }\n };\n };\n switch (key) {\n case 'pivotChart':\n return {\n name: localeTextFunc('pivotChart', 'Pivot Chart'),\n subMenu: [\n 'pivotColumnChart',\n 'pivotBarChart',\n 'pivotPieChart',\n 'pivotLineChart',\n 'pivotXYChart',\n 'pivotAreaChart'\n ],\n icon: agGridCommunity._.createIconNoSpan('chart', this.gridOptionsWrapper, null),\n };\n case 'chartRange':\n return {\n name: localeTextFunc('chartRange', 'Chart Range'),\n subMenu: [\n 'rangeColumnChart',\n 'rangeBarChart',\n 'rangePieChart',\n 'rangeLineChart',\n 'rangeXYChart',\n 'rangeAreaChart',\n 'rangeHistogramChart',\n 'rangeCombinationChart'\n ],\n icon: agGridCommunity._.createIconNoSpan('chart', this.gridOptionsWrapper, null),\n };\n case 'pivotColumnChart':\n return {\n name: localeTextFunc('columnChart', 'Column'),\n subMenu: ['pivotGroupedColumn', 'pivotStackedColumn', 'pivotNormalizedColumn']\n };\n case 'pivotGroupedColumn':\n return pivotChartMenuItem('groupedColumn', 'Grouped‎', 'groupedColumn');\n case 'pivotStackedColumn':\n return pivotChartMenuItem('stackedColumn', 'Stacked‎', 'stackedColumn');\n case 'pivotNormalizedColumn':\n return pivotChartMenuItem('normalizedColumn', '100% Stacked‎', 'normalizedColumn');\n case 'rangeColumnChart':\n return {\n name: localeTextFunc('columnChart', 'Column'),\n subMenu: ['rangeGroupedColumn', 'rangeStackedColumn', 'rangeNormalizedColumn']\n };\n case 'rangeGroupedColumn':\n return rangeChartMenuItem('groupedColumn', 'Grouped‎', 'groupedColumn');\n case 'rangeStackedColumn':\n return rangeChartMenuItem('stackedColumn', 'Stacked‎', 'stackedColumn');\n case 'rangeNormalizedColumn':\n return rangeChartMenuItem('normalizedColumn', '100% Stacked‎', 'normalizedColumn');\n case 'pivotBarChart':\n return {\n name: localeTextFunc('barChart', 'Bar'),\n subMenu: ['pivotGroupedBar', 'pivotStackedBar', 'pivotNormalizedBar']\n };\n case 'pivotGroupedBar':\n return pivotChartMenuItem('groupedBar', 'Grouped‎', 'groupedBar');\n case 'pivotStackedBar':\n return pivotChartMenuItem('stackedBar', 'Stacked‎', 'stackedBar');\n case 'pivotNormalizedBar':\n return pivotChartMenuItem('normalizedBar', '100% Stacked‎', 'normalizedBar');\n case 'rangeBarChart':\n return {\n name: localeTextFunc('barChart', 'Bar'),\n subMenu: ['rangeGroupedBar', 'rangeStackedBar', 'rangeNormalizedBar']\n };\n case 'rangeGroupedBar':\n return rangeChartMenuItem('groupedBar', 'Grouped‎', 'groupedBar');\n case 'rangeStackedBar':\n return rangeChartMenuItem('stackedBar', 'Stacked‎', 'stackedBar');\n case 'rangeNormalizedBar':\n return rangeChartMenuItem('normalizedBar', '100% Stacked‎', 'normalizedBar');\n case 'pivotPieChart':\n return {\n name: localeTextFunc('pieChart', 'Pie'),\n subMenu: ['pivotPie', 'pivotDoughnut']\n };\n case 'pivotPie':\n return pivotChartMenuItem('pie', 'Pie‎', 'pie');\n case 'pivotDoughnut':\n return pivotChartMenuItem('doughnut', 'Doughnut‎', 'doughnut');\n case 'rangePieChart':\n return {\n name: localeTextFunc('pieChart', 'Pie'),\n subMenu: ['rangePie', 'rangeDoughnut']\n };\n case 'rangePie':\n return rangeChartMenuItem('pie', 'Pie‎', 'pie');\n case 'rangeDoughnut':\n return rangeChartMenuItem('doughnut', 'Doughnut‎', 'doughnut');\n case 'pivotLineChart':\n return pivotChartMenuItem('line', 'Line‎', 'line');\n case 'rangeLineChart':\n return rangeChartMenuItem('line', 'Line‎', 'line');\n case 'pivotXYChart':\n return {\n name: localeTextFunc('xyChart', 'X Y (Scatter)'),\n subMenu: ['pivotScatter', 'pivotBubble']\n };\n case 'pivotScatter':\n return pivotChartMenuItem('scatter', 'Scatter‎', 'scatter');\n case 'pivotBubble':\n return pivotChartMenuItem('bubble', 'Bubble‎', 'bubble');\n case 'rangeXYChart':\n return {\n name: localeTextFunc('xyChart', 'X Y (Scatter)'),\n subMenu: ['rangeScatter', 'rangeBubble']\n };\n case 'rangeScatter':\n return rangeChartMenuItem('scatter', 'Scatter‎', 'scatter');\n case 'rangeBubble':\n return rangeChartMenuItem('bubble', 'Bubble‎', 'bubble');\n case 'pivotAreaChart':\n return {\n name: localeTextFunc('areaChart', 'Area'),\n subMenu: ['pivotArea', 'pivotStackedArea', 'pivotNormalizedArea']\n };\n case 'pivotArea':\n return pivotChartMenuItem('area', 'Area‎', 'area');\n case 'pivotStackedArea':\n return pivotChartMenuItem('stackedArea', 'Stacked‎', 'stackedArea');\n case 'pivotNormalizedArea':\n return pivotChartMenuItem('normalizedArea', '100% Stacked‎', 'normalizedArea');\n case 'rangeAreaChart':\n return {\n name: localeTextFunc('areaChart', 'Area'),\n subMenu: ['rangeArea', 'rangeStackedArea', 'rangeNormalizedArea']\n };\n case 'rangeArea':\n return rangeChartMenuItem('area', 'Area‎', 'area');\n case 'rangeStackedArea':\n return rangeChartMenuItem('stackedArea', 'Stacked‎', 'stackedArea');\n case 'rangeNormalizedArea':\n return rangeChartMenuItem('normalizedArea', '100% Stacked‎', 'normalizedArea');\n case 'rangeHistogramChart':\n return rangeChartMenuItem('histogramChart', 'Histogram‎', 'histogram');\n case 'rangeColumnLineCombo':\n return rangeChartMenuItem('columnLineCombo', 'Column & Line‎', 'columnLineCombo');\n case 'rangeAreaColumnCombo':\n return rangeChartMenuItem('AreaColumnCombo', 'Area & Column‎', 'areaColumnCombo');\n case 'rangeCombinationChart':\n return {\n name: localeTextFunc('combinationChart', 'Combination'),\n subMenu: ['rangeColumnLineCombo', 'rangeAreaColumnCombo']\n };\n default:\n return null;\n }\n };\n MenuItemMapper.prototype.createAggregationSubMenu = function (column) {\n var _this = this;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var columnIsAlreadyAggValue = column.isValueActive();\n var funcNames = this.aggFuncService.getFuncNames(column);\n var columnToUse;\n if (column.isPrimary()) {\n columnToUse = column;\n }\n else {\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n columnToUse = agGridCommunity._.exists(pivotValueColumn) ? pivotValueColumn : undefined;\n }\n var result = [];\n funcNames.forEach(function (funcName) {\n result.push({\n name: localeTextFunc(funcName, funcName),\n action: function () {\n _this.columnModel.setColumnAggFunc(columnToUse, funcName, \"contextMenu\");\n _this.columnModel.addValueColumn(columnToUse, \"contextMenu\");\n },\n checked: columnIsAlreadyAggValue && columnToUse.getAggFunc() === funcName\n });\n });\n return result;\n };\n __decorate$1w([\n agGridCommunity.Autowired('columnModel')\n ], MenuItemMapper.prototype, \"columnModel\", void 0);\n __decorate$1w([\n agGridCommunity.Autowired('gridApi')\n ], MenuItemMapper.prototype, \"gridApi\", void 0);\n __decorate$1w([\n agGridCommunity.Optional('clipboardService')\n ], MenuItemMapper.prototype, \"clipboardService\", void 0);\n __decorate$1w([\n agGridCommunity.Optional('aggFuncService')\n ], MenuItemMapper.prototype, \"aggFuncService\", void 0);\n __decorate$1w([\n agGridCommunity.Optional('chartService')\n ], MenuItemMapper.prototype, \"chartService\", void 0);\n MenuItemMapper = __decorate$1w([\n agGridCommunity.Bean('menuItemMapper')\n ], MenuItemMapper);\n return MenuItemMapper;\n}(agGridCommunity.BeanStub));\n\nvar MenuModule = {\n moduleName: agGridCommunity.ModuleNames.MenuModule,\n beans: [EnterpriseMenuFactory, ContextMenuFactory, MenuItemMapper],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$37 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$v = (undefined && undefined.__assign) || function () {\n __assign$v = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$v.apply(this, arguments);\n};\nvar __decorate$1x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MultiFilter = /** @class */ (function (_super) {\n __extends$37(MultiFilter, _super);\n function MultiFilter() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.filterDefs = [];\n _this.filters = [];\n _this.guiDestroyFuncs = [];\n _this.activeFilterIndices = [];\n _this.lastActivatedMenuItem = null;\n _this.afterFiltersReadyFuncs = [];\n return _this;\n }\n MultiFilter.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onFocusIn: function (e) { return _this.onFocusIn(e); }\n });\n };\n MultiFilter.getFilterDefs = function (params) {\n var filters = params.filters;\n return filters && filters.length > 0 ?\n filters :\n [{ filter: 'agTextColumnFilter' }, { filter: 'agSetColumnFilter' }];\n };\n MultiFilter.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.filterDefs = MultiFilter.getFilterDefs(params);\n var column = params.column, filterChangedCallback = params.filterChangedCallback;\n this.column = column;\n this.filterChangedCallback = filterChangedCallback;\n var filterPromises = [];\n this.filterDefs.forEach(function (filterDef, index) {\n var filterPromise = _this.createFilter(filterDef, index);\n if (filterPromise != null) {\n filterPromises.push(filterPromise);\n }\n });\n // we have to refresh the GUI here to ensure that Angular components are not rendered in odd places\n return agGridCommunity.AgPromise\n .all(filterPromises)\n .then(function (filters) {\n _this.filters = filters;\n _this.refreshGui('columnMenu');\n _this.afterFiltersReadyFuncs.forEach(function (f) { return f(); });\n _this.afterFiltersReadyFuncs.length = 0;\n });\n };\n MultiFilter.prototype.refreshGui = function (container) {\n var _this = this;\n if (container === this.lastOpenedInContainer) {\n return;\n }\n this.removeAllChildrenExceptTabGuards();\n this.destroyChildren();\n this.filters.forEach(function (filter, index) {\n if (index > 0) {\n _this.appendChild(agGridCommunity._.loadTemplate(/* html */ \"
\"));\n }\n var filterDef = _this.filterDefs[index];\n var filterTitle = _this.getFilterTitle(filter, filterDef);\n var filterGui;\n if (filterDef.display === 'subMenu' && container !== 'toolPanel') {\n // prevent sub-menu being used in tool panel\n var menuItem = _this.insertFilterMenu(filter, filterTitle);\n filterGui = menuItem.getGui();\n }\n else if (filterDef.display === 'subMenu' || filterDef.display === 'accordion') {\n // sub-menus should appear as groups in the tool panel\n var group = _this.insertFilterGroup(filter, filterTitle);\n filterGui = group.getGui();\n }\n else {\n // display inline\n filterGui = filter.getGui();\n }\n _this.appendChild(filterGui);\n });\n this.lastOpenedInContainer = container;\n };\n MultiFilter.prototype.getFilterTitle = function (filter, filterDef) {\n if (filterDef.title != null) {\n return filterDef.title;\n }\n var filterWithoutType = filter;\n return typeof filterWithoutType.getFilterTitle === 'function' ? filterWithoutType.getFilterTitle() : 'Filter';\n };\n MultiFilter.prototype.destroyChildren = function () {\n this.guiDestroyFuncs.forEach(function (func) { return func(); });\n this.guiDestroyFuncs.length = 0;\n };\n MultiFilter.prototype.insertFilterMenu = function (filter, name) {\n var _this = this;\n var menuItem = this.createBean(new agGridCommunity.AgMenuItemComponent({\n name: name,\n subMenu: filter,\n cssClasses: ['ag-multi-filter-menu-item'],\n isCompact: true,\n isAnotherSubMenuOpen: function () { return false; },\n }));\n menuItem.setParentComponent(this);\n this.guiDestroyFuncs.push(function () { return _this.destroyBean(menuItem); });\n this.addManagedListener(menuItem, agGridCommunity.AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED, function (event) {\n if (_this.lastActivatedMenuItem && _this.lastActivatedMenuItem !== event.menuItem) {\n _this.lastActivatedMenuItem.deactivate();\n }\n _this.lastActivatedMenuItem = event.menuItem;\n });\n menuItem.addGuiEventListener('focusin', function () { return menuItem.activate(); });\n menuItem.addGuiEventListener('focusout', function () {\n if (!menuItem.isSubMenuOpen()) {\n menuItem.deactivate();\n }\n });\n return menuItem;\n };\n MultiFilter.prototype.insertFilterGroup = function (filter, title) {\n var _this = this;\n var group = this.createBean(new agGridCommunity.AgGroupComponent({\n title: title,\n cssIdentifier: 'multi-filter',\n }));\n this.guiDestroyFuncs.push(function () { return _this.destroyBean(group); });\n group.addItem(filter.getGui());\n group.toggleGroupExpand(false);\n if (filter.afterGuiAttached) {\n var params_1 = { container: this.lastOpenedInContainer, suppressFocus: true };\n group.addManagedListener(group, agGridCommunity.AgGroupComponent.EVENT_EXPANDED, function () { return filter.afterGuiAttached(params_1); });\n }\n return group;\n };\n MultiFilter.prototype.isFilterActive = function () {\n return this.filters.some(function (filter) { return filter.isFilterActive(); });\n };\n MultiFilter.prototype.getLastActiveFilterIndex = function () {\n return this.activeFilterIndices.length > 0 ? this.activeFilterIndices[this.activeFilterIndices.length - 1] : null;\n };\n MultiFilter.prototype.doesFilterPass = function (params, filterToSkip) {\n var rowPasses = true;\n this.filters.forEach(function (filter) {\n if (!rowPasses || filter === filterToSkip || !filter.isFilterActive()) {\n return;\n }\n rowPasses = filter.doesFilterPass(params);\n });\n return rowPasses;\n };\n MultiFilter.prototype.getFilterType = function () {\n return 'multi';\n };\n MultiFilter.prototype.getModelFromUi = function () {\n var model = {\n filterType: this.getFilterType(),\n filterModels: this.filters.map(function (filter) {\n var providedFilter = filter;\n if (typeof providedFilter.getModelFromUi === 'function') {\n return providedFilter.getModelFromUi();\n }\n return null;\n })\n };\n return model;\n };\n MultiFilter.prototype.getModel = function () {\n if (!this.isFilterActive()) {\n return null;\n }\n var model = {\n filterType: this.getFilterType(),\n filterModels: this.filters.map(function (filter) {\n if (filter.isFilterActive()) {\n return filter.getModel();\n }\n return null;\n })\n };\n return model;\n };\n MultiFilter.prototype.setModel = function (model) {\n var _this = this;\n var setFilterModel = function (filter, filterModel) {\n return new agGridCommunity.AgPromise(function (resolve) {\n var promise = filter.setModel(filterModel);\n promise ? promise.then(function () { return resolve(); }) : resolve();\n });\n };\n var promises = [];\n if (model == null) {\n promises = this.filters.map(function (filter, index) {\n var res = setFilterModel(filter, null);\n _this.updateActiveList(index);\n return res;\n });\n }\n else {\n this.filters.forEach(function (filter, index) {\n var filterModel = model.filterModels.length > index ? model.filterModels[index] : null;\n var res = setFilterModel(filter, filterModel);\n promises.push(res);\n _this.updateActiveList(index);\n });\n }\n return agGridCommunity.AgPromise.all(promises).then(function () { });\n };\n MultiFilter.prototype.applyModel = function () {\n var result = false;\n this.filters.forEach(function (filter) {\n if (filter instanceof agGridCommunity.ProvidedFilter) {\n result = filter.applyModel() || result;\n }\n });\n return result;\n };\n MultiFilter.prototype.getChildFilterInstance = function (index) {\n return this.filters[index];\n };\n MultiFilter.prototype.afterGuiAttached = function (params) {\n if (params) {\n this.refreshGui(params.container);\n }\n var filters = this.params.filters;\n var suppressFocus = filters && filters.some(function (filter) { return filter.display && filter.display !== 'inline'; });\n this.executeFunctionIfExists('afterGuiAttached', __assign$v(__assign$v({}, params || {}), { suppressFocus: suppressFocus }));\n var eDocument = this.gridOptionsWrapper.getDocument();\n var activeEl = eDocument.activeElement;\n // if suppress focus is true, we might run into two scenarios:\n // 1 - we are loading the filter for the first time and the component isn't ready,\n // which means the document will have focus.\n // 2 - The focus will be somewhere inside the component due to auto focus\n // In both cases we need to force the focus somewhere valid but outside the filter.\n if (suppressFocus && (activeEl === eDocument.body || this.getGui().contains(activeEl))) {\n // reset focus to the top of the container, and blur\n this.forceFocusOutOfContainer(true);\n }\n };\n MultiFilter.prototype.onAnyFilterChanged = function () {\n this.executeFunctionIfExists('onAnyFilterChanged');\n };\n MultiFilter.prototype.onNewRowsLoaded = function () {\n this.executeFunctionIfExists('onNewRowsLoaded');\n };\n MultiFilter.prototype.destroy = function () {\n var _this = this;\n this.filters.forEach(function (filter) {\n filter.setModel(null);\n _this.destroyBean(filter);\n });\n this.filters.length = 0;\n this.destroyChildren();\n _super.prototype.destroy.call(this);\n };\n MultiFilter.prototype.executeFunctionIfExists = function (name) {\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n // The first filter is always the \"dominant\" one. By iterating in reverse order we ensure the first filter\n // always gets the last say\n agGridCommunity._.forEachReverse(this.filters, function (filter) {\n var func = filter[name];\n if (typeof func === 'function') {\n func.apply(filter, params);\n }\n });\n };\n MultiFilter.prototype.createFilter = function (filterDef, index) {\n var _this = this;\n var _a = this.params, filterModifiedCallback = _a.filterModifiedCallback, doesRowPassOtherFilter = _a.doesRowPassOtherFilter;\n var filterInstance;\n var filterParams = __assign$v(__assign$v({}, this.filterManager.createFilterParams(this.column, this.column.getColDef())), { filterModifiedCallback: filterModifiedCallback, filterChangedCallback: function (additionalEventAttributes) {\n _this.executeWhenAllFiltersReady(function () { return _this.filterChanged(index, additionalEventAttributes); });\n }, doesRowPassOtherFilter: function (node) {\n return doesRowPassOtherFilter(node) && _this.doesFilterPass({ node: node, data: node.data }, filterInstance);\n } });\n var compDetails = this.userComponentFactory.getFilterDetails(filterDef, filterParams, 'agTextColumnFilter');\n if (!compDetails) {\n return null;\n }\n var filterPromise = compDetails.newAgStackInstance();\n if (filterPromise) {\n filterPromise.then(function (filter) { return filterInstance = filter; });\n }\n return filterPromise;\n };\n MultiFilter.prototype.executeWhenAllFiltersReady = function (action) {\n if (this.filters && this.filters.length > 0) {\n action();\n }\n else {\n this.afterFiltersReadyFuncs.push(action);\n }\n };\n MultiFilter.prototype.updateActiveList = function (index) {\n var changedFilter = this.filters[index];\n agGridCommunity._.removeFromArray(this.activeFilterIndices, index);\n if (changedFilter.isFilterActive()) {\n this.activeFilterIndices.push(index);\n }\n };\n MultiFilter.prototype.filterChanged = function (index, additionalEventAttributes) {\n this.updateActiveList(index);\n this.filterChangedCallback(additionalEventAttributes);\n var changedFilter = this.filters[index];\n this.filters.forEach(function (filter) {\n if (filter === changedFilter) {\n return;\n }\n if (typeof filter.onAnyFilterChanged === 'function') {\n filter.onAnyFilterChanged();\n }\n });\n };\n MultiFilter.prototype.onFocusIn = function (e) {\n if (this.lastActivatedMenuItem != null && !this.lastActivatedMenuItem.getGui().contains(e.target)) {\n this.lastActivatedMenuItem.deactivate();\n this.lastActivatedMenuItem = null;\n }\n return true;\n };\n __decorate$1x([\n agGridCommunity.Autowired('filterManager')\n ], MultiFilter.prototype, \"filterManager\", void 0);\n __decorate$1x([\n agGridCommunity.Autowired('userComponentFactory')\n ], MultiFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$1x([\n agGridCommunity.PostConstruct\n ], MultiFilter.prototype, \"postConstruct\", null);\n return MultiFilter;\n}(agGridCommunity.TabGuardComp));\n\nvar __extends$38 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$w = (undefined && undefined.__assign) || function () {\n __assign$w = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$w.apply(this, arguments);\n};\nvar __decorate$1y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MultiFloatingFilterComp = /** @class */ (function (_super) {\n __extends$38(MultiFloatingFilterComp, _super);\n function MultiFloatingFilterComp() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.floatingFilters = [];\n return _this;\n }\n MultiFloatingFilterComp.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n var filterParams = params.filterParams;\n var floatingFilterPromises = [];\n MultiFilter.getFilterDefs(filterParams).forEach(function (filterDef, index) {\n var floatingFilterParams = __assign$w(__assign$w({}, params), { \n // set the parent filter instance for each floating filter to the relevant child filter instance\n parentFilterInstance: function (callback) {\n _this.parentMultiFilterInstance(function (parent) {\n var child = parent.getChildFilterInstance(index);\n if (child == null) {\n return;\n }\n callback(child);\n });\n } });\n var floatingFilterPromise = _this.createFloatingFilter(filterDef, floatingFilterParams);\n if (floatingFilterPromise != null) {\n floatingFilterPromises.push(floatingFilterPromise);\n }\n });\n return agGridCommunity.AgPromise.all(floatingFilterPromises).then(function (floatingFilters) {\n floatingFilters.forEach(function (floatingFilter, index) {\n _this.floatingFilters.push(floatingFilter);\n var gui = floatingFilter.getGui();\n _this.appendChild(gui);\n if (index > 0) {\n agGridCommunity._.setDisplayed(gui, false);\n }\n });\n });\n };\n MultiFloatingFilterComp.prototype.onParentModelChanged = function (model, event) {\n var _this = this;\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing\n if (event && event.afterFloatingFilter) {\n return;\n }\n this.parentMultiFilterInstance(function (parent) {\n if (model == null) {\n _this.floatingFilters.forEach(function (filter, i) {\n filter.onParentModelChanged(null, event);\n agGridCommunity._.setDisplayed(filter.getGui(), i === 0);\n });\n }\n else {\n var lastActiveFloatingFilterIndex_1 = parent.getLastActiveFilterIndex();\n _this.floatingFilters.forEach(function (filter, i) {\n var filterModel = model.filterModels.length > i ? model.filterModels[i] : null;\n filter.onParentModelChanged(filterModel, event);\n var shouldShow = lastActiveFloatingFilterIndex_1 == null ? i === 0 : i === lastActiveFloatingFilterIndex_1;\n agGridCommunity._.setDisplayed(filter.getGui(), shouldShow);\n });\n }\n });\n };\n MultiFloatingFilterComp.prototype.destroy = function () {\n this.destroyBeans(this.floatingFilters);\n this.floatingFilters.length = 0;\n _super.prototype.destroy.call(this);\n };\n MultiFloatingFilterComp.prototype.createFloatingFilter = function (filterDef, params) {\n var defaultComponentName = this.userComponentFactory.getDefaultFloatingFilterType(filterDef) || 'agTextColumnFloatingFilter';\n var compDetails = this.userComponentFactory.getFloatingFilterCompDetails(filterDef, params, defaultComponentName);\n return compDetails ? compDetails.newAgStackInstance() : null;\n };\n MultiFloatingFilterComp.prototype.parentMultiFilterInstance = function (cb) {\n this.params.parentFilterInstance(function (parent) {\n if (!(parent instanceof MultiFilter)) {\n throw new Error('AG Grid - MultiFloatingFilterComp expects MultiFilter as it\\'s parent');\n }\n cb(parent);\n });\n };\n __decorate$1y([\n agGridCommunity.Autowired('userComponentFactory')\n ], MultiFloatingFilterComp.prototype, \"userComponentFactory\", void 0);\n return MultiFloatingFilterComp;\n}(agGridCommunity.Component));\n\nvar MultiFilterModule = {\n moduleName: agGridCommunity.ModuleNames.MultiFilterModule,\n beans: [],\n userComponents: [\n { componentName: 'agMultiColumnFilter', componentClass: MultiFilter },\n { componentName: 'agMultiColumnFloatingFilter', componentClass: MultiFloatingFilterComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$39 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RichSelectRow = /** @class */ (function (_super) {\n __extends$39(RichSelectRow, _super);\n function RichSelectRow(params) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.params = params;\n return _this;\n }\n RichSelectRow.prototype.setState = function (value, valueFormatted, selected) {\n var rendererSuccessful = this.populateWithRenderer(value, valueFormatted);\n if (!rendererSuccessful) {\n this.populateWithoutRenderer(value, valueFormatted);\n }\n this.addOrRemoveCssClass('ag-rich-select-row-selected', selected);\n };\n RichSelectRow.prototype.populateWithoutRenderer = function (value, valueFormatted) {\n var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n var valueToRender = valueFormattedExits ? valueFormatted : value;\n if (agGridCommunity._.exists(valueToRender) && valueToRender !== '') {\n // not using innerHTML to prevent injection of HTML\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML#Security_considerations\n this.getGui().textContent = valueToRender.toString();\n }\n else {\n // putting in blank, so if missing, at least the user can click on it\n this.getGui().innerHTML = ' ';\n }\n };\n RichSelectRow.prototype.populateWithRenderer = function (value, valueFormatted) {\n var _this = this;\n // bad coder here - we are not populating all values of the cellRendererParams\n var params = {\n value: value,\n valueFormatted: valueFormatted,\n api: this.gridOptionsWrapper.getApi()\n };\n var compDetails = this.userComponentFactory.getCellRendererDetails(this.params, params);\n var cellRendererPromise = compDetails ? compDetails.newAgStackInstance() : undefined;\n if (cellRendererPromise != null) {\n agGridCommunity._.bindCellRendererToHtmlElement(cellRendererPromise, this.getGui());\n }\n else {\n this.getGui().innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n }\n if (cellRendererPromise) {\n cellRendererPromise.then(function (childComponent) {\n _this.addDestroyFunc(function () {\n _this.getContext().destroyBean(childComponent);\n });\n });\n return true;\n }\n return false;\n };\n __decorate$1z([\n agGridCommunity.Autowired('userComponentFactory')\n ], RichSelectRow.prototype, \"userComponentFactory\", void 0);\n return RichSelectRow;\n}(agGridCommunity.Component));\n\nvar __extends$3a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RichSelectCellEditor = /** @class */ (function (_super) {\n __extends$3a(RichSelectCellEditor, _super);\n function RichSelectCellEditor() {\n var _this = _super.call(this, RichSelectCellEditor.TEMPLATE) || this;\n _this.selectionConfirmed = false;\n _this.searchString = '';\n return _this;\n }\n RichSelectCellEditor.prototype.init = function (params) {\n this.params = params;\n this.selectedValue = params.value;\n this.originalSelectedValue = params.value;\n this.focusAfterAttached = params.cellStartedEdit;\n var icon = agGridCommunity._.createIconNoSpan('smallDown', this.gridOptionsWrapper);\n icon.classList.add('ag-rich-select-value-icon');\n this.eValue.appendChild(icon);\n this.virtualList = this.getContext().createBean(new agGridCommunity.VirtualList('rich-select'));\n this.virtualList.setComponentCreator(this.createRowComponent.bind(this));\n this.eList.appendChild(this.virtualList.getGui());\n if (agGridCommunity._.exists(this.params.cellHeight)) {\n this.virtualList.setRowHeight(this.params.cellHeight);\n }\n this.renderSelectedValue();\n if (agGridCommunity._.missing(params.values)) {\n console.warn('AG Grid: richSelectCellEditor requires values for it to work');\n return;\n }\n var values = params.values;\n this.virtualList.setModel({\n getRowCount: function () { return values.length; },\n getRow: function (index) { return values[index]; }\n });\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n var virtualListGui = this.virtualList.getGui();\n this.addManagedListener(virtualListGui, 'click', this.onClick.bind(this));\n this.addManagedListener(virtualListGui, 'mousemove', this.onMouseMove.bind(this));\n var debounceDelay = agGridCommunity._.exists(params.searchDebounceDelay) ? params.searchDebounceDelay : 300;\n this.clearSearchString = agGridCommunity._.debounce(this.clearSearchString, debounceDelay);\n if (agGridCommunity._.exists(params.charPress)) {\n this.searchText(params.charPress);\n }\n };\n RichSelectCellEditor.prototype.onKeyDown = function (event) {\n var key = event.key;\n event.preventDefault();\n switch (key) {\n case agGridCommunity.KeyCode.ENTER:\n this.onEnterKeyDown();\n break;\n case agGridCommunity.KeyCode.TAB:\n this.confirmSelection();\n break;\n case agGridCommunity.KeyCode.DOWN:\n case agGridCommunity.KeyCode.UP:\n this.onNavigationKeyPressed(event, key);\n break;\n default:\n this.searchText(event);\n }\n };\n RichSelectCellEditor.prototype.confirmSelection = function () {\n this.selectionConfirmed = true;\n };\n RichSelectCellEditor.prototype.onEnterKeyDown = function () {\n this.confirmSelection();\n this.params.stopEditing();\n };\n RichSelectCellEditor.prototype.onNavigationKeyPressed = function (event, key) {\n // if we don't preventDefault the page body and/or grid scroll will move.\n event.preventDefault();\n var oldIndex = this.params.values.indexOf(this.selectedValue);\n var newIndex = key === agGridCommunity.KeyCode.UP ? oldIndex - 1 : oldIndex + 1;\n if (newIndex >= 0 && newIndex < this.params.values.length) {\n var valueToSelect = this.params.values[newIndex];\n this.setSelectedValue(valueToSelect);\n }\n };\n RichSelectCellEditor.prototype.searchText = function (key) {\n if (typeof key !== 'string') {\n var keyString = key.key;\n if (keyString === agGridCommunity.KeyCode.BACKSPACE) {\n this.searchString = this.searchString.slice(0, -1);\n keyString = '';\n }\n else if (!agGridCommunity._.isEventFromPrintableCharacter(key)) {\n return;\n }\n this.searchText(keyString);\n return;\n }\n this.searchString += key;\n this.runSearch();\n this.clearSearchString();\n };\n RichSelectCellEditor.prototype.runSearch = function () {\n var _this = this;\n var values = this.params.values;\n var searchStrings;\n if (typeof values[0] === 'number' || typeof values[0] === 'string') {\n searchStrings = values.map(String);\n }\n if (typeof values[0] === 'object' && this.params.colDef.keyCreator) {\n searchStrings = values.map(function (value) {\n var keyParams = {\n value: value,\n colDef: _this.params.colDef,\n column: _this.params.column,\n node: _this.params.node,\n data: _this.params.data,\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi(),\n context: _this.gridOptionsWrapper.getContext()\n };\n return _this.params.colDef.keyCreator(keyParams);\n });\n }\n if (!searchStrings) {\n return;\n }\n var topSuggestion = agGridCommunity._.fuzzySuggestions(this.searchString, searchStrings, true, true)[0];\n if (!topSuggestion) {\n return;\n }\n var topSuggestionIndex = searchStrings.indexOf(topSuggestion);\n var topValue = values[topSuggestionIndex];\n this.setSelectedValue(topValue);\n };\n RichSelectCellEditor.prototype.clearSearchString = function () {\n this.searchString = '';\n };\n RichSelectCellEditor.prototype.renderSelectedValue = function () {\n var _this = this;\n var valueFormatted = this.params.formatValue(this.selectedValue);\n var eValue = this.eValue;\n var params = {\n value: this.selectedValue,\n valueFormatted: valueFormatted,\n api: this.gridOptionsWrapper.getApi()\n };\n var compDetails = this.userComponentFactory.getCellRendererDetails(this.params, params);\n var promise = compDetails ? compDetails.newAgStackInstance() : undefined;\n if (promise) {\n agGridCommunity._.bindCellRendererToHtmlElement(promise, eValue);\n promise.then(function (renderer) {\n _this.addDestroyFunc(function () { return _this.getContext().destroyBean(renderer); });\n });\n }\n else {\n if (agGridCommunity._.exists(this.selectedValue)) {\n eValue.innerHTML = valueFormatted;\n }\n else {\n agGridCommunity._.clearElement(eValue);\n }\n }\n };\n RichSelectCellEditor.prototype.setSelectedValue = function (value) {\n if (this.selectedValue === value) {\n return;\n }\n var index = this.params.values.indexOf(value);\n if (index === -1) {\n return;\n }\n this.selectedValue = value;\n this.virtualList.ensureIndexVisible(index);\n this.virtualList.refresh();\n };\n RichSelectCellEditor.prototype.createRowComponent = function (value) {\n var valueFormatted = this.params.formatValue(value);\n var row = new RichSelectRow(this.params);\n this.getContext().createBean(row);\n row.setState(value, valueFormatted, value === this.selectedValue);\n return row;\n };\n RichSelectCellEditor.prototype.onMouseMove = function (mouseEvent) {\n var rect = this.virtualList.getGui().getBoundingClientRect();\n var scrollTop = this.virtualList.getScrollTop();\n var mouseY = mouseEvent.clientY - rect.top + scrollTop;\n var row = Math.floor(mouseY / this.virtualList.getRowHeight());\n var value = this.params.values[row];\n // not using utils.exist() as want empty string test to pass\n if (value !== undefined) {\n this.setSelectedValue(value);\n }\n };\n RichSelectCellEditor.prototype.onClick = function () {\n this.confirmSelection();\n this.params.stopEditing();\n };\n // we need to have the gui attached before we can draw the virtual rows, as the\n // virtual row logic needs info about the gui state\n RichSelectCellEditor.prototype.afterGuiAttached = function () {\n var selectedIndex = this.params.values.indexOf(this.selectedValue);\n // we have to call this here to get the list to have the right height, ie\n // otherwise it would not have scrolls yet and ensureIndexVisible would do nothing\n this.virtualList.refresh();\n if (selectedIndex >= 0) {\n this.virtualList.ensureIndexVisible(selectedIndex);\n }\n // we call refresh again, as the list could of moved, and we need to render the new rows\n this.virtualList.refresh();\n if (this.focusAfterAttached) {\n this.getGui().focus();\n }\n };\n RichSelectCellEditor.prototype.getValue = function () {\n // NOTE: we don't use valueParser for Set Filter. The user should provide values that are to be\n // set into the data. valueParser only really makese sense when the user is typing in text (not picking\n // form a set).\n return this.selectionConfirmed ? this.selectedValue : this.originalSelectedValue;\n };\n // tab index is needed so we can focus, which is needed for keyboard events\n RichSelectCellEditor.TEMPLATE = \"
\\n
\\n
\\n
\";\n __decorate$1A([\n agGridCommunity.Autowired('userComponentFactory')\n ], RichSelectCellEditor.prototype, \"userComponentFactory\", void 0);\n __decorate$1A([\n agGridCommunity.RefSelector('eValue')\n ], RichSelectCellEditor.prototype, \"eValue\", void 0);\n __decorate$1A([\n agGridCommunity.RefSelector('eList')\n ], RichSelectCellEditor.prototype, \"eList\", void 0);\n return RichSelectCellEditor;\n}(agGridCommunity.PopupComponent));\n\nvar RichSelectModule = {\n moduleName: agGridCommunity.ModuleNames.RichSelectModule,\n beans: [],\n userComponents: [\n { componentName: 'agRichSelect', componentClass: RichSelectCellEditor },\n { componentName: 'agRichSelectCellEditor', componentClass: RichSelectCellEditor }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$3b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ServerSideRowModel = /** @class */ (function (_super) {\n __extends$3b(ServerSideRowModel, _super);\n function ServerSideRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.pauseStoreUpdateListening = false;\n _this.started = false;\n return _this;\n }\n // we don't implement as lazy row heights is not supported in this row model\n ServerSideRowModel.prototype.ensureRowHeightsValid = function () { return false; };\n ServerSideRowModel.prototype.start = function () {\n this.started = true;\n var datasource = this.gridOptionsWrapper.getServerSideDatasource();\n if (datasource) {\n this.setDatasource(datasource);\n }\n };\n ServerSideRowModel.prototype.destroyDatasource = function () {\n if (!this.datasource) {\n return;\n }\n if (this.datasource.destroy) {\n this.datasource.destroy();\n }\n this.rowRenderer.datasourceChanged();\n this.datasource = undefined;\n };\n ServerSideRowModel.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_STORE_UPDATED, this.onStoreUpdated.bind(this));\n var resetListener = this.resetRootStore.bind(this);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_VALUE_CHANGED, resetListener);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_CHANGED, resetListener);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, resetListener);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, resetListener);\n this.verifyProps();\n };\n ServerSideRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsWrapper.getInitialGroupOrderComparator() != null) {\n var message_1 = \"AG Grid: initialGroupOrderComparator cannot be used with Server Side Row Model. If using Full Store, then provide the rows to the grid in the desired sort order. If using Partial Store, then sorting is done on the server side, nothing to do with the client.\";\n agGridCommunity._.doOnce(function () { return console.warn(message_1); }, 'SSRM.InitialGroupOrderComparator');\n }\n if (this.gridOptionsWrapper.isRowSelection() && this.gridOptionsWrapper.getRowIdFunc() == null) {\n var message_2 = \"AG Grid: getRowId callback must be provided for Server Side Row Model selection to work correctly.\";\n agGridCommunity._.doOnce(function () { return console.warn(message_2); }, 'SSRM.SelectionNeedsRowNodeIdFunc');\n }\n };\n ServerSideRowModel.prototype.setDatasource = function (datasource) {\n // sometimes React, due to async, can call gridApi.setDatasource() before we have started.\n // this happens when React app does this:\n // useEffect(() => setDatasource(ds), []);\n // thus if we set the datasource before the grid UI has finished initialising, we do not set it,\n // and the ssrm.start() method will set the datasoure when the grid is ready.\n if (!this.started) {\n return;\n }\n this.destroyDatasource();\n this.datasource = datasource;\n this.resetRootStore();\n };\n ServerSideRowModel.prototype.isLastRowIndexKnown = function () {\n var cache = this.getRootStore();\n if (!cache) {\n return false;\n }\n return cache.isLastRowIndexKnown();\n };\n ServerSideRowModel.prototype.onColumnEverything = function () {\n // this is a hack for one customer only, so they can suppress the resetting of the columns.\n // The problem the customer had was they were api.setColumnDefs() after the data source came\n // back with data. So this stops the reload from the grid after the data comes back.\n // Once we have \"AG-1591 Allow delta changes to columns\" fixed, then this hack can be taken out.\n if (this.gridOptionsWrapper.isSuppressEnterpriseResetOnNewColumns()) {\n return;\n }\n // every other customer can continue as normal and have it working!!!\n // if first time, alwasy reset\n if (!this.storeParams) {\n this.resetRootStore();\n return;\n }\n // check if anything pertaining to fetching data has changed, and if it has, reset, but if\n // it has not, don't reset\n var rowGroupColumnVos = this.columnsToValueObjects(this.columnModel.getRowGroupColumns());\n var valueColumnVos = this.columnsToValueObjects(this.columnModel.getValueColumns());\n var pivotColumnVos = this.columnsToValueObjects(this.columnModel.getPivotColumns());\n var sortModelDifferent = !agGridCommunity._.jsonEquals(this.storeParams.sortModel, this.sortController.getSortModel());\n var rowGroupDifferent = !agGridCommunity._.jsonEquals(this.storeParams.rowGroupCols, rowGroupColumnVos);\n var pivotDifferent = !agGridCommunity._.jsonEquals(this.storeParams.pivotCols, pivotColumnVos);\n var valuesDifferent = !agGridCommunity._.jsonEquals(this.storeParams.valueCols, valueColumnVos);\n var resetRequired = sortModelDifferent || rowGroupDifferent || pivotDifferent || valuesDifferent;\n if (resetRequired) {\n this.resetRootStore();\n }\n };\n ServerSideRowModel.prototype.destroyRootStore = function () {\n if (!this.rootNode || !this.rootNode.childStore) {\n return;\n }\n this.rootNode.childStore = this.destroyBean(this.rootNode.childStore);\n this.nodeManager.clear();\n };\n ServerSideRowModel.prototype.refreshAfterSort = function (newSortModel, params) {\n if (this.storeParams) {\n this.storeParams.sortModel = newSortModel;\n }\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.refreshAfterSort(params);\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.resetRootStore = function () {\n this.destroyRootStore();\n this.rootNode = new agGridCommunity.RowNode(this.beans);\n this.rootNode.group = true;\n this.rootNode.level = -1;\n if (this.datasource) {\n this.storeParams = this.createStoreParams();\n this.rootNode.childStore = this.createBean(this.storeFactory.createStore(this.storeParams, this.rootNode));\n this.updateRowIndexesAndBounds();\n }\n // this event: 1) clears selection 2) updates filters 3) shows/hides 'no rows' overlay\n var rowDataChangedEvent = {\n type: agGridCommunity.Events.EVENT_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(rowDataChangedEvent);\n // this gets the row to render rows (or remove the previously rendered rows, as it's blank to start).\n // important to NOT pass in an event with keepRenderedRows or animate, as we want the renderer\n // to treat the rows as new rows, as it's all new data\n this.dispatchModelUpdated(true);\n };\n ServerSideRowModel.prototype.columnsToValueObjects = function (columns) {\n var _this = this;\n return columns.map(function (col) { return ({\n id: col.getId(),\n aggFunc: col.getAggFunc(),\n displayName: _this.columnModel.getDisplayNameForColumn(col, 'model'),\n field: col.getColDef().field\n }); });\n };\n ServerSideRowModel.prototype.createStoreParams = function () {\n var rowGroupColumnVos = this.columnsToValueObjects(this.columnModel.getRowGroupColumns());\n var valueColumnVos = this.columnsToValueObjects(this.columnModel.getValueColumns());\n var pivotColumnVos = this.columnsToValueObjects(this.columnModel.getPivotColumns());\n var dynamicRowHeight = this.gridOptionsWrapper.isDynamicRowHeight();\n var params = {\n // the columns the user has grouped and aggregated by\n valueCols: valueColumnVos,\n rowGroupCols: rowGroupColumnVos,\n pivotCols: pivotColumnVos,\n pivotMode: this.columnModel.isPivotMode(),\n // sort and filter model\n filterModel: this.filterManager.getFilterModel(),\n sortModel: this.sortListener.extractSortModel(),\n datasource: this.datasource,\n lastAccessedSequence: new agGridCommunity.NumberSequence(),\n // blockSize: blockSize == null ? 100 : blockSize,\n dynamicRowHeight: dynamicRowHeight\n };\n return params;\n };\n ServerSideRowModel.prototype.getParams = function () {\n return this.storeParams;\n };\n ServerSideRowModel.prototype.dispatchModelUpdated = function (reset) {\n if (reset === void 0) { reset = false; }\n var modelUpdatedEvent = {\n type: agGridCommunity.Events.EVENT_MODEL_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi,\n animate: !reset,\n keepRenderedRows: !reset,\n newPage: false,\n newData: false\n };\n this.eventService.dispatchEvent(modelUpdatedEvent);\n };\n ServerSideRowModel.prototype.onStoreUpdated = function () {\n // sometimes if doing a batch update, we do the batch first,\n // then call onStoreUpdated manually. eg expandAll() method.\n if (this.pauseStoreUpdateListening) {\n return;\n }\n this.updateRowIndexesAndBounds();\n this.dispatchModelUpdated();\n };\n ServerSideRowModel.prototype.onRowHeightChanged = function () {\n this.updateRowIndexesAndBounds();\n this.dispatchModelUpdated();\n };\n ServerSideRowModel.prototype.updateRowIndexesAndBounds = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.setDisplayIndexes(new agGridCommunity.NumberSequence(), { value: 0 });\n };\n ServerSideRowModel.prototype.retryLoads = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.retryLoads();\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.getRow = function (index) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return undefined;\n }\n return rootStore.getRowUsingDisplayIndex(index);\n };\n ServerSideRowModel.prototype.expandAll = function (value) {\n // if we don't pause store updating, we are needlessly\n // recalculating row-indexes etc, and also getting rendering\n // engine to re-render (listens on ModelUpdated event)\n this.pauseStoreUpdateListening = true;\n this.forEachNode(function (node) {\n if (node.group) {\n node.setExpanded(value);\n }\n });\n this.pauseStoreUpdateListening = false;\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.refreshAfterFilter = function (newFilterModel, params) {\n if (this.storeParams) {\n this.storeParams.filterModel = newFilterModel;\n }\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.refreshAfterFilter(params);\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.getRootStore = function () {\n if (this.rootNode && this.rootNode.childStore) {\n return this.rootNode.childStore;\n }\n };\n ServerSideRowModel.prototype.getRowCount = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return 0;\n }\n return rootStore.getDisplayIndexEnd();\n };\n ServerSideRowModel.prototype.getTopLevelRowCount = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return 1;\n }\n return rootStore.getRowCount();\n };\n ServerSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return topLevelIndex;\n }\n return rootStore.getTopLevelRowDisplayedIndex(topLevelIndex);\n };\n ServerSideRowModel.prototype.getRowBounds = function (index) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n return {\n rowTop: 0,\n rowHeight: rowHeight\n };\n }\n return rootStore.getRowBounds(index);\n };\n ServerSideRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n var rootStore = this.getRootStore();\n if (pixel <= 0 || !rootStore) {\n return 0;\n }\n return rootStore.getRowIndexAtPixel(pixel);\n };\n ServerSideRowModel.prototype.isEmpty = function () {\n return false;\n };\n ServerSideRowModel.prototype.isRowsToRender = function () {\n return this.getRootStore() != null && this.getRowCount() > 0;\n };\n ServerSideRowModel.prototype.getType = function () {\n return agGridCommunity.Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n };\n ServerSideRowModel.prototype.forEachNode = function (callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.forEachNodeDeep(callback);\n };\n ServerSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.forEachNodeDeepAfterFilterAndSort(callback);\n };\n ServerSideRowModel.prototype.executeOnStore = function (route, callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n var storeToExecuteOn = rootStore.getChildStore(route);\n if (storeToExecuteOn) {\n callback(storeToExecuteOn);\n }\n };\n ServerSideRowModel.prototype.refreshStore = function (params) {\n if (params === void 0) { params = {}; }\n var route = params.route ? params.route : [];\n this.executeOnStore(route, function (store) { return store.refreshStore(params.purge == true); });\n };\n ServerSideRowModel.prototype.getStoreState = function () {\n var res = [];\n var rootStore = this.getRootStore();\n if (rootStore) {\n rootStore.addStoreStates(res);\n }\n return res;\n };\n ServerSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n if (agGridCommunity._.exists(lastInRange) && firstInRange.parent !== lastInRange.parent) {\n return [];\n }\n return firstInRange.parent.childStore.getRowNodesInRange(lastInRange, firstInRange);\n };\n ServerSideRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n if (rowNode.detailNode && rowNode.detailNode.id === id) {\n result = rowNode.detailNode;\n }\n });\n return result;\n };\n ServerSideRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n __decorate$1B([\n agGridCommunity.Autowired('columnModel')\n ], ServerSideRowModel.prototype, \"columnModel\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('filterManager')\n ], ServerSideRowModel.prototype, \"filterManager\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('sortController')\n ], ServerSideRowModel.prototype, \"sortController\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('gridApi')\n ], ServerSideRowModel.prototype, \"gridApi\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('columnApi')\n ], ServerSideRowModel.prototype, \"columnApi\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('rowRenderer')\n ], ServerSideRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('ssrmSortService')\n ], ServerSideRowModel.prototype, \"sortListener\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('ssrmNodeManager')\n ], ServerSideRowModel.prototype, \"nodeManager\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('ssrmStoreFactory')\n ], ServerSideRowModel.prototype, \"storeFactory\", void 0);\n __decorate$1B([\n agGridCommunity.Autowired('beans')\n ], ServerSideRowModel.prototype, \"beans\", void 0);\n __decorate$1B([\n agGridCommunity.PreDestroy\n ], ServerSideRowModel.prototype, \"destroyDatasource\", null);\n __decorate$1B([\n agGridCommunity.PostConstruct\n ], ServerSideRowModel.prototype, \"addEventListeners\", null);\n __decorate$1B([\n agGridCommunity.PreDestroy\n ], ServerSideRowModel.prototype, \"destroyRootStore\", null);\n ServerSideRowModel = __decorate$1B([\n agGridCommunity.Bean('rowModel')\n ], ServerSideRowModel);\n return ServerSideRowModel;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StoreUtils = /** @class */ (function (_super) {\n __extends$3c(StoreUtils, _super);\n function StoreUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StoreUtils.prototype.loadFromDatasource = function (p) {\n var storeParams = p.storeParams, parentBlock = p.parentBlock, parentNode = p.parentNode;\n var groupKeys = parentNode.getGroupKeys();\n if (!storeParams.datasource) {\n return;\n }\n var request = {\n startRow: p.startRow,\n endRow: p.endRow,\n rowGroupCols: storeParams.rowGroupCols,\n valueCols: storeParams.valueCols,\n pivotCols: storeParams.pivotCols,\n pivotMode: storeParams.pivotMode,\n groupKeys: groupKeys,\n filterModel: storeParams.filterModel,\n sortModel: storeParams.sortModel\n };\n var getRowsParams = {\n successCallback: p.successCallback,\n success: p.success,\n failCallback: p.failCallback,\n fail: p.fail,\n request: request,\n parentNode: p.parentNode,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n window.setTimeout(function () {\n if (!storeParams.datasource || !parentBlock.isAlive()) {\n // failCallback() is important, to reduce the 'RowNodeBlockLoader.activeBlockLoadsCount' count\n p.failCallback();\n return;\n }\n storeParams.datasource.getRows(getRowsParams);\n }, 0);\n };\n StoreUtils.prototype.getChildStore = function (keys, currentCache, findNodeFunc) {\n if (agGridCommunity._.missingOrEmpty(keys)) {\n return currentCache;\n }\n var nextKey = keys[0];\n var nextNode = findNodeFunc(nextKey);\n if (nextNode) {\n var keyListForNextLevel = keys.slice(1, keys.length);\n var nextStore = nextNode.childStore;\n return nextStore ? nextStore.getChildStore(keyListForNextLevel) : null;\n }\n return null;\n };\n StoreUtils.prototype.isServerRefreshNeeded = function (parentRowNode, rowGroupCols, params) {\n if (params.alwaysReset || params.valueColChanged || params.secondaryColChanged) {\n return true;\n }\n var level = parentRowNode.level + 1;\n var grouping = level < rowGroupCols.length;\n var leafNodes = !grouping;\n if (leafNodes) {\n return true;\n }\n var colIdThisGroup = rowGroupCols[level].id;\n var actionOnThisGroup = params.changedColumns.indexOf(colIdThisGroup) > -1;\n if (actionOnThisGroup) {\n return true;\n }\n return false;\n };\n __decorate$1C([\n agGridCommunity.Autowired('columnApi')\n ], StoreUtils.prototype, \"columnApi\", void 0);\n __decorate$1C([\n agGridCommunity.Autowired('gridApi')\n ], StoreUtils.prototype, \"gridApi\", void 0);\n StoreUtils = __decorate$1C([\n agGridCommunity.Bean('ssrmStoreUtils')\n ], StoreUtils);\n return StoreUtils;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BlockUtils = /** @class */ (function (_super) {\n __extends$3d(BlockUtils, _super);\n function BlockUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockUtils.prototype.postConstruct = function () {\n this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n this.usingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n };\n BlockUtils.prototype.createRowNode = function (params) {\n var rowNode = new agGridCommunity.RowNode(this.beans);\n var rowHeight = params.rowHeight != null ? params.rowHeight : this.rowHeight;\n rowNode.setRowHeight(rowHeight);\n rowNode.group = params.group;\n rowNode.leafGroup = params.leafGroup;\n rowNode.level = params.level;\n rowNode.uiLevel = params.level;\n rowNode.parent = params.parent;\n // stub gets set to true here, and then false when this rowNode gets it's data\n rowNode.stub = true;\n if (rowNode.group) {\n rowNode.expanded = false;\n rowNode.field = params.field;\n rowNode.rowGroupColumn = params.rowGroupColumn;\n }\n return rowNode;\n };\n BlockUtils.prototype.destroyRowNodes = function (rowNodes) {\n if (rowNodes) {\n rowNodes.forEach(this.destroyRowNode.bind(this));\n }\n };\n BlockUtils.prototype.destroyRowNode = function (rowNode) {\n if (rowNode.childStore) {\n this.destroyBean(rowNode.childStore);\n rowNode.childStore = null;\n }\n // this is needed, so row render knows to fade out the row, otherwise it\n // sees row top is present, and thinks the row should be shown. maybe\n // rowNode should have a flag on whether it is visible???\n rowNode.clearRowTopAndRowIndex();\n if (rowNode.id != null) {\n this.nodeManager.removeNode(rowNode);\n }\n };\n BlockUtils.prototype.setTreeGroupInfo = function (rowNode) {\n var isGroupFunc = this.gridOptionsWrapper.getIsServerSideGroupFunc();\n var getKeyFunc = this.gridOptionsWrapper.getServerSideGroupKeyFunc();\n if (isGroupFunc != null) {\n rowNode.setGroup(isGroupFunc(rowNode.data));\n if (rowNode.group && getKeyFunc != null) {\n rowNode.key = getKeyFunc(rowNode.data);\n }\n }\n if (!rowNode.group && rowNode.childStore != null) {\n this.destroyBean(rowNode.childStore);\n rowNode.childStore = null;\n }\n };\n BlockUtils.prototype.setRowGroupInfo = function (rowNode) {\n rowNode.key = this.valueService.getValue(rowNode.rowGroupColumn, rowNode);\n if (rowNode.key === null || rowNode.key === undefined) {\n agGridCommunity._.doOnce(function () {\n console.warn(\"AG Grid: null and undefined values are not allowed for server side row model keys\");\n if (rowNode.rowGroupColumn) {\n console.warn(\"column = \" + rowNode.rowGroupColumn.getId());\n }\n console.warn(\"data is \", rowNode.data);\n }, 'ServerSideBlock-CannotHaveNullOrUndefinedForKey');\n }\n };\n BlockUtils.prototype.setMasterDetailInfo = function (rowNode) {\n var isMasterFunc = this.gridOptionsWrapper.getIsRowMasterFunc();\n if (isMasterFunc != null) {\n rowNode.master = isMasterFunc(rowNode.data);\n }\n else {\n rowNode.master = true;\n }\n };\n BlockUtils.prototype.updateDataIntoRowNode = function (rowNode, data) {\n rowNode.updateData(data);\n if (this.usingTreeData) {\n this.setTreeGroupInfo(rowNode);\n }\n else if (rowNode.group) ;\n else if (this.usingMasterDetail) ;\n };\n BlockUtils.prototype.setDataIntoRowNode = function (rowNode, data, defaultId, cachedRowHeight) {\n rowNode.stub = false;\n if (agGridCommunity._.exists(data)) {\n rowNode.setDataAndId(data, defaultId);\n if (this.usingTreeData) {\n this.setTreeGroupInfo(rowNode);\n }\n else if (rowNode.group) {\n this.setRowGroupInfo(rowNode);\n }\n else if (this.usingMasterDetail) {\n this.setMasterDetailInfo(rowNode);\n }\n }\n else {\n rowNode.setDataAndId(undefined, undefined);\n rowNode.key = null;\n }\n if (this.usingTreeData || rowNode.group) {\n this.setGroupDataIntoRowNode(rowNode);\n this.setChildCountIntoRowNode(rowNode);\n }\n // this needs to be done AFTER setGroupDataIntoRowNode(), as the height can depend on the group data\n // getting set, if it's a group node and colDef.autoHeight=true\n if (agGridCommunity._.exists(data)) {\n rowNode.setRowHeight(this.gridOptionsWrapper.getRowHeightForNode(rowNode, false, cachedRowHeight).height);\n }\n };\n BlockUtils.prototype.setChildCountIntoRowNode = function (rowNode) {\n var getChildCount = this.gridOptionsWrapper.getChildCountFunc();\n if (getChildCount) {\n rowNode.allChildrenCount = getChildCount(rowNode.data);\n }\n };\n BlockUtils.prototype.setGroupDataIntoRowNode = function (rowNode) {\n var _this = this;\n var groupDisplayCols = this.columnModel.getGroupDisplayColumns();\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n groupDisplayCols.forEach(function (col) {\n if (rowNode.groupData == null) {\n rowNode.groupData = {};\n }\n if (usingTreeData) {\n rowNode.groupData[col.getColId()] = rowNode.key;\n }\n else if (col.isRowGroupDisplayed(rowNode.rowGroupColumn.getId())) {\n var groupValue = _this.valueService.getValue(rowNode.rowGroupColumn, rowNode);\n rowNode.groupData[col.getColId()] = groupValue;\n }\n });\n };\n BlockUtils.prototype.clearDisplayIndex = function (rowNode) {\n rowNode.clearRowTopAndRowIndex();\n var hasChildStore = rowNode.group && agGridCommunity._.exists(rowNode.childStore);\n if (hasChildStore) {\n var childStore = rowNode.childStore;\n childStore.clearDisplayIndexes();\n }\n var hasDetailNode = rowNode.master && rowNode.detailNode;\n if (hasDetailNode) {\n rowNode.detailNode.clearRowTopAndRowIndex();\n }\n };\n BlockUtils.prototype.setDisplayIndex = function (rowNode, displayIndexSeq, nextRowTop) {\n // set this row\n rowNode.setRowIndex(displayIndexSeq.next());\n rowNode.setRowTop(nextRowTop.value);\n nextRowTop.value += rowNode.rowHeight;\n // set child for master / detail\n var hasDetailRow = rowNode.master;\n if (hasDetailRow) {\n if (rowNode.expanded && rowNode.detailNode) {\n rowNode.detailNode.setRowIndex(displayIndexSeq.next());\n rowNode.detailNode.setRowTop(nextRowTop.value);\n nextRowTop.value += rowNode.detailNode.rowHeight;\n }\n else if (rowNode.detailNode) {\n rowNode.detailNode.clearRowTopAndRowIndex();\n }\n }\n // set children for SSRM child rows\n var hasChildStore = rowNode.group && agGridCommunity._.exists(rowNode.childStore);\n if (hasChildStore) {\n var childStore = rowNode.childStore;\n if (rowNode.expanded) {\n childStore.setDisplayIndexes(displayIndexSeq, nextRowTop);\n }\n else {\n // we need to clear the row tops, as the row renderer depends on\n // this to know if the row should be faded out\n childStore.clearDisplayIndexes();\n }\n }\n };\n BlockUtils.prototype.binarySearchForDisplayIndex = function (displayRowIndex, rowNodes) {\n var bottomPointer = 0;\n var topPointer = rowNodes.length - 1;\n if (agGridCommunity._.missing(topPointer) || agGridCommunity._.missing(bottomPointer)) {\n console.warn(\"AG Grid: error: topPointer = \" + topPointer + \", bottomPointer = \" + bottomPointer);\n return undefined;\n }\n while (true) {\n var midPointer = Math.floor((bottomPointer + topPointer) / 2);\n var currentRowNode = rowNodes[midPointer];\n // first check current row for index\n if (currentRowNode.rowIndex === displayRowIndex) {\n return currentRowNode;\n }\n // then check if current row contains a detail row with the index\n var expandedMasterRow = currentRowNode.master && currentRowNode.expanded;\n var detailNode = currentRowNode.detailNode;\n if (expandedMasterRow && detailNode && detailNode.rowIndex === displayRowIndex) {\n return currentRowNode.detailNode;\n }\n // then check if child cache contains index\n var childStore = currentRowNode.childStore;\n if (currentRowNode.expanded && childStore && childStore.isDisplayIndexInStore(displayRowIndex)) {\n return childStore.getRowUsingDisplayIndex(displayRowIndex);\n }\n // otherwise adjust pointers to continue searching for index\n if (currentRowNode.rowIndex < displayRowIndex) {\n bottomPointer = midPointer + 1;\n }\n else if (currentRowNode.rowIndex > displayRowIndex) {\n topPointer = midPointer - 1;\n }\n else {\n console.warn(\"AG Grid: error: unable to locate rowIndex = \" + displayRowIndex + \" in cache\");\n return undefined;\n }\n }\n };\n BlockUtils.prototype.extractRowBounds = function (rowNode, index) {\n var extractRowBounds = function (currentRowNode) { return ({\n rowHeight: currentRowNode.rowHeight,\n rowTop: currentRowNode.rowTop\n }); };\n if (rowNode.rowIndex === index) {\n return extractRowBounds(rowNode);\n }\n if (rowNode.group && rowNode.expanded && agGridCommunity._.exists(rowNode.childStore)) {\n var childStore = rowNode.childStore;\n if (childStore.isDisplayIndexInStore(index)) {\n return childStore.getRowBounds(index);\n }\n }\n else if (rowNode.master && rowNode.expanded && agGridCommunity._.exists(rowNode.detailNode)) {\n if (rowNode.detailNode.rowIndex === index) {\n return extractRowBounds(rowNode.detailNode);\n }\n }\n };\n BlockUtils.prototype.getIndexAtPixel = function (rowNode, pixel) {\n // first check if pixel is in range of current row\n if (rowNode.isPixelInRange(pixel)) {\n return rowNode.rowIndex;\n }\n // then check if current row contains a detail row with pixel in range\n var expandedMasterRow = rowNode.master && rowNode.expanded;\n var detailNode = rowNode.detailNode;\n if (expandedMasterRow && detailNode && detailNode.isPixelInRange(pixel)) {\n return rowNode.detailNode.rowIndex;\n }\n // then check if it's a group row with a child cache with pixel in range\n if (rowNode.group && rowNode.expanded && agGridCommunity._.exists(rowNode.childStore)) {\n var childStore = rowNode.childStore;\n if (childStore.isPixelInRange(pixel)) {\n return childStore.getRowIndexAtPixel(pixel);\n }\n }\n return null;\n // pixel is not within this row node or it's children / detail, so return undefined\n };\n BlockUtils.prototype.createNodeIdPrefix = function (parentRowNode) {\n var parts = [];\n var rowNode = parentRowNode;\n // pull keys from all parent nodes, but do not include the root node\n while (rowNode && rowNode.level >= 0) {\n parts.push(rowNode.key);\n rowNode = rowNode.parent;\n }\n if (parts.length > 0) {\n return parts.reverse().join('-');\n }\n // no prefix, so node id's are left as they are\n return undefined;\n };\n BlockUtils.prototype.checkOpenByDefault = function (rowNode) {\n if (!rowNode.isExpandable()) {\n return;\n }\n var userFunc = this.gridOptionsWrapper.getIsServerSideGroupOpenByDefaultFunc();\n if (!userFunc) {\n return;\n }\n var params = {\n data: rowNode.data,\n rowNode: rowNode\n };\n var userFuncRes = userFunc(params);\n if (userFuncRes) {\n // we do this in a timeout, so that we don't expand a row node while in the middle\n // of setting up rows, setting up rows is complex enough without another chunk of work\n // getting added to the call stack. this is also helpful as openByDefault may or may\n // not happen (so makes setting up rows more deterministic by expands never happening)\n // and also checkOpenByDefault is shard with both store types, so easier control how it\n // impacts things by keeping it in new VM turn.\n window.setTimeout(function () { return rowNode.setExpanded(true); }, 0);\n }\n };\n __decorate$1D([\n agGridCommunity.Autowired('valueService')\n ], BlockUtils.prototype, \"valueService\", void 0);\n __decorate$1D([\n agGridCommunity.Autowired('columnModel')\n ], BlockUtils.prototype, \"columnModel\", void 0);\n __decorate$1D([\n agGridCommunity.Autowired('ssrmNodeManager')\n ], BlockUtils.prototype, \"nodeManager\", void 0);\n __decorate$1D([\n agGridCommunity.Autowired('beans')\n ], BlockUtils.prototype, \"beans\", void 0);\n __decorate$1D([\n agGridCommunity.PostConstruct\n ], BlockUtils.prototype, \"postConstruct\", null);\n BlockUtils = __decorate$1D([\n agGridCommunity.Bean('ssrmBlockUtils')\n ], BlockUtils);\n return BlockUtils;\n}(agGridCommunity.BeanStub));\n\nvar __decorate$1E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NodeManager = /** @class */ (function () {\n function NodeManager() {\n this.rowNodes = {};\n }\n NodeManager.prototype.addRowNode = function (rowNode) {\n var id = rowNode.id;\n if (this.rowNodes[id]) {\n console.warn(\"AG Grid: Duplicate node id \" + rowNode.id + \". Row ID's are provided via the getRowId() callback. Please modify the getRowId() callback code to provide unique row id values.\");\n console.warn('first instance', this.rowNodes[id].data);\n console.warn('second instance', rowNode.data);\n }\n this.rowNodes[id] = rowNode;\n };\n NodeManager.prototype.removeNode = function (rowNode) {\n var id = rowNode.id;\n if (this.rowNodes[id]) {\n this.rowNodes[id] = undefined;\n }\n };\n NodeManager.prototype.clear = function () {\n this.rowNodes = {};\n };\n __decorate$1E([\n agGridCommunity.PreDestroy\n ], NodeManager.prototype, \"clear\", null);\n NodeManager = __decorate$1E([\n agGridCommunity.Bean('ssrmNodeManager')\n ], NodeManager);\n return NodeManager;\n}());\n\nvar __extends$3e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TransactionManager = /** @class */ (function (_super) {\n __extends$3e(TransactionManager, _super);\n function TransactionManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.asyncTransactions = [];\n return _this;\n }\n TransactionManager.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n };\n TransactionManager.prototype.applyTransactionAsync = function (transaction, callback) {\n if (this.asyncTransactionsTimeout == null) {\n this.scheduleExecuteAsync();\n }\n this.asyncTransactions.push({ transaction: transaction, callback: callback });\n };\n TransactionManager.prototype.scheduleExecuteAsync = function () {\n var _this = this;\n var waitMillis = this.gridOptionsWrapper.getAsyncTransactionWaitMillis();\n this.asyncTransactionsTimeout = window.setTimeout(function () {\n _this.executeAsyncTransactions();\n }, waitMillis);\n };\n TransactionManager.prototype.executeAsyncTransactions = function () {\n var _this = this;\n if (!this.asyncTransactions) {\n return;\n }\n var resultFuncs = [];\n var resultsForEvent = [];\n var transactionsToRetry = [];\n var atLeastOneTransactionApplied = false;\n this.asyncTransactions.forEach(function (txWrapper) {\n var result;\n _this.serverSideRowModel.executeOnStore(txWrapper.transaction.route, function (cache) {\n result = cache.applyTransaction(txWrapper.transaction);\n });\n if (result == undefined) {\n result = { status: agGridCommunity.ServerSideTransactionResultStatus.StoreNotFound };\n }\n resultsForEvent.push(result);\n var retryTransaction = result.status == agGridCommunity.ServerSideTransactionResultStatus.StoreLoading;\n if (retryTransaction) {\n transactionsToRetry.push(txWrapper);\n return;\n }\n if (txWrapper.callback) {\n resultFuncs.push(function () { return txWrapper.callback(result); });\n }\n if (result.status === agGridCommunity.ServerSideTransactionResultStatus.Applied) {\n atLeastOneTransactionApplied = true;\n }\n });\n // do callbacks in next VM turn so it's async\n if (resultFuncs.length > 0) {\n window.setTimeout(function () {\n resultFuncs.forEach(function (func) { return func(); });\n }, 0);\n }\n this.asyncTransactionsTimeout = undefined;\n // this will be empty list if nothing to retry\n this.asyncTransactions = transactionsToRetry;\n if (atLeastOneTransactionApplied) {\n this.valueCache.onDataChanged();\n this.eventService.dispatchEvent({ type: agGridCommunity.Events.EVENT_STORE_UPDATED });\n }\n if (resultsForEvent.length > 0) {\n var event_1 = {\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n type: agGridCommunity.Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: resultsForEvent\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n TransactionManager.prototype.flushAsyncTransactions = function () {\n // the timeout could be missing, if we are flushing due to row data loaded\n if (this.asyncTransactionsTimeout != null) {\n clearTimeout(this.asyncTransactionsTimeout);\n }\n this.executeAsyncTransactions();\n };\n TransactionManager.prototype.applyTransaction = function (transaction) {\n var res;\n this.serverSideRowModel.executeOnStore(transaction.route, function (store) {\n res = store.applyTransaction(transaction);\n });\n if (res) {\n this.valueCache.onDataChanged();\n this.eventService.dispatchEvent({ type: agGridCommunity.Events.EVENT_STORE_UPDATED });\n return res;\n }\n else {\n return { status: agGridCommunity.ServerSideTransactionResultStatus.StoreNotFound };\n }\n };\n __decorate$1F([\n agGridCommunity.Autowired('rowNodeBlockLoader')\n ], TransactionManager.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1F([\n agGridCommunity.Autowired('valueCache')\n ], TransactionManager.prototype, \"valueCache\", void 0);\n __decorate$1F([\n agGridCommunity.Autowired('rowModel')\n ], TransactionManager.prototype, \"serverSideRowModel\", void 0);\n __decorate$1F([\n agGridCommunity.PostConstruct\n ], TransactionManager.prototype, \"postConstruct\", null);\n TransactionManager = __decorate$1F([\n agGridCommunity.Bean('ssrmTransactionManager')\n ], TransactionManager);\n return TransactionManager;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ExpandListener = /** @class */ (function (_super) {\n __extends$3f(ExpandListener, _super);\n function ExpandListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExpandListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_ROW_GROUP_OPENED, this.onRowGroupOpened.bind(this));\n };\n ExpandListener.prototype.onRowGroupOpened = function (event) {\n var rowNode = event.node;\n if (rowNode.expanded) {\n if (rowNode.master) {\n this.createDetailNode(rowNode);\n }\n else if (agGridCommunity._.missing(rowNode.childStore)) {\n var storeParams = this.serverSideRowModel.getParams();\n rowNode.childStore = this.createBean(this.storeFactory.createStore(storeParams, rowNode));\n }\n }\n else if (this.gridOptionsWrapper.isPurgeClosedRowNodes() && agGridCommunity._.exists(rowNode.childStore)) {\n rowNode.childStore = this.destroyBean(rowNode.childStore);\n }\n var storeUpdatedEvent = { type: agGridCommunity.Events.EVENT_STORE_UPDATED };\n this.eventService.dispatchEvent(storeUpdatedEvent);\n };\n ExpandListener.prototype.createDetailNode = function (masterNode) {\n if (agGridCommunity._.exists(masterNode.detailNode)) {\n return masterNode.detailNode;\n }\n var detailNode = new agGridCommunity.RowNode(this.beans);\n detailNode.detail = true;\n detailNode.selectable = false;\n detailNode.parent = masterNode;\n if (agGridCommunity._.exists(masterNode.id)) {\n detailNode.id = 'detail_' + masterNode.id;\n }\n detailNode.data = masterNode.data;\n detailNode.level = masterNode.level + 1;\n var defaultDetailRowHeight = 200;\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(detailNode).height;\n detailNode.rowHeight = rowHeight ? rowHeight : defaultDetailRowHeight;\n masterNode.detailNode = detailNode;\n return detailNode;\n };\n __decorate$1G([\n agGridCommunity.Autowired('rowModel')\n ], ExpandListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$1G([\n agGridCommunity.Autowired('ssrmStoreFactory')\n ], ExpandListener.prototype, \"storeFactory\", void 0);\n __decorate$1G([\n agGridCommunity.Autowired('beans')\n ], ExpandListener.prototype, \"beans\", void 0);\n __decorate$1G([\n agGridCommunity.PostConstruct\n ], ExpandListener.prototype, \"postConstruct\", null);\n ExpandListener = __decorate$1G([\n agGridCommunity.Bean('ssrmExpandListener')\n ], ExpandListener);\n return ExpandListener;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortListener = /** @class */ (function (_super) {\n __extends$3g(SortListener, _super);\n function SortListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n };\n SortListener.prototype.extractSortModel = function () {\n var sortModel = this.sortController.getSortModel();\n // when using tree data we just return the sort model with the 'ag-Grid-AutoColumn' as is, i.e not broken out\n // into it's constitute group columns as they are not defined up front and can vary per node.\n if (this.gridOptionsWrapper.isTreeData()) {\n return sortModel;\n }\n // it autoCol is active, we don't want to send this to the server. instead we want to\n // send the\n this.replaceAutoGroupColumnWithActualRowGroupColumns(sortModel);\n this.removeMultiColumnPrefixOnColumnIds(sortModel);\n return sortModel;\n };\n SortListener.prototype.removeMultiColumnPrefixOnColumnIds = function (sortModel) {\n if (this.gridOptionsWrapper.isGroupMultiAutoColumn()) {\n var multiColumnPrefix = agGridCommunity.Constants.GROUP_AUTO_COLUMN_ID + \"-\";\n for (var i = 0; i < sortModel.length; ++i) {\n if (sortModel[i].colId.indexOf(multiColumnPrefix) > -1) {\n sortModel[i].colId = sortModel[i].colId.substr(multiColumnPrefix.length);\n }\n }\n }\n };\n SortListener.prototype.replaceAutoGroupColumnWithActualRowGroupColumns = function (sortModel) {\n // find index of auto group column in sort model\n var autoGroupSortModel = sortModel.find(function (sm) { return sm.colId == agGridCommunity.Constants.GROUP_AUTO_COLUMN_ID; });\n // replace auto column with individual group columns\n if (autoGroupSortModel) {\n // remove auto group column\n var autoGroupIndex = sortModel.indexOf(autoGroupSortModel);\n agGridCommunity._.removeFromArray(sortModel, autoGroupSortModel);\n var isNotInSortModel = function (col) { return sortModel.filter(function (sm) { return sm.colId === col.getColId(); }).length == 0; };\n var mapColumnToSortModel = function (col) { return ({ colId: col.getId(), sort: autoGroupSortModel.sort }); };\n var newModels = this.columnModel.getRowGroupColumns()\n .filter(isNotInSortModel)\n .map(mapColumnToSortModel);\n agGridCommunity._.insertArrayIntoArray(sortModel, newModels, autoGroupIndex);\n }\n };\n SortListener.prototype.onSortChanged = function () {\n var storeParams = this.serverSideRowModel.getParams();\n if (!storeParams) {\n return;\n } // params is undefined if no datasource set\n var newSortModel = this.extractSortModel();\n var oldSortModel = storeParams.sortModel;\n var changedColumns = this.findChangedColumnsInSort(newSortModel, oldSortModel);\n var valueColChanged = this.listenerUtils.isSortingWithValueColumn(changedColumns);\n var secondaryColChanged = this.listenerUtils.isSortingWithSecondaryColumn(changedColumns);\n var alwaysReset = this.gridOptionsWrapper.isServerSideSortingAlwaysResets();\n var params = {\n valueColChanged: valueColChanged,\n secondaryColChanged: secondaryColChanged,\n alwaysReset: alwaysReset,\n changedColumns: changedColumns\n };\n this.serverSideRowModel.refreshAfterSort(newSortModel, params);\n };\n // returns back all the cols that were effected by the sorting. eg if we were sorting by col A,\n // and now we are sorting by col B, the list of impacted cols should be A and B. so if a cache\n // is impacted by sorting on A or B then it needs to be refreshed. this includes where the cache\n // was previously sorted by A and then the A sort now needs to be cleared.\n SortListener.prototype.findChangedColumnsInSort = function (newSortModel, oldSortModel) {\n var allColsInBothSorts = [];\n [newSortModel, oldSortModel].forEach(function (sortModel) {\n if (sortModel) {\n var ids = sortModel.map(function (sm) { return sm.colId; });\n allColsInBothSorts = allColsInBothSorts.concat(ids);\n }\n });\n var differentSorts = function (oldSortItem, newSortItem) {\n var oldSort = oldSortItem ? oldSortItem.sort : null;\n var newSort = newSortItem ? newSortItem.sort : null;\n return oldSort !== newSort;\n };\n var differentIndexes = function (oldSortItem, newSortItem) {\n var oldIndex = oldSortItem ? oldSortModel.indexOf(oldSortItem) : -1;\n var newIndex = newSortItem ? newSortModel.indexOf(newSortItem) : -1;\n return oldIndex !== newIndex;\n };\n return allColsInBothSorts.filter(function (colId) {\n var oldSortItem = oldSortModel.find(function (sm) { return sm.colId === colId; });\n var newSortItem = newSortModel.find(function (sm) { return sm.colId === colId; });\n return differentSorts(oldSortItem, newSortItem) || differentIndexes(oldSortItem, newSortItem);\n });\n };\n __decorate$1H([\n agGridCommunity.Autowired('sortController')\n ], SortListener.prototype, \"sortController\", void 0);\n __decorate$1H([\n agGridCommunity.Autowired('columnModel')\n ], SortListener.prototype, \"columnModel\", void 0);\n __decorate$1H([\n agGridCommunity.Autowired('rowModel')\n ], SortListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$1H([\n agGridCommunity.Autowired('ssrmListenerUtils')\n ], SortListener.prototype, \"listenerUtils\", void 0);\n __decorate$1H([\n agGridCommunity.PostConstruct\n ], SortListener.prototype, \"postConstruct\", null);\n SortListener = __decorate$1H([\n agGridCommunity.Bean('ssrmSortService')\n ], SortListener);\n return SortListener;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterListener = /** @class */ (function (_super) {\n __extends$3h(FilterListener, _super);\n function FilterListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsWrapper.isRowModelServerSide()) {\n return;\n }\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n };\n FilterListener.prototype.onFilterChanged = function () {\n var storeParams = this.serverSideRowModel.getParams();\n if (!storeParams) {\n return;\n } // params is undefined if no datasource set\n var newModel = this.filterManager.getFilterModel();\n var oldModel = storeParams ? storeParams.filterModel : {};\n var changedColumns = this.findChangedColumns(newModel, oldModel);\n var valueColChanged = this.listenerUtils.isSortingWithValueColumn(changedColumns);\n var secondaryColChanged = this.listenerUtils.isSortingWithSecondaryColumn(changedColumns);\n var alwaysReset = this.gridOptionsWrapper.isServerSideFilteringAlwaysResets();\n var params = {\n valueColChanged: valueColChanged,\n secondaryColChanged: secondaryColChanged,\n alwaysReset: alwaysReset,\n changedColumns: changedColumns\n };\n this.serverSideRowModel.refreshAfterFilter(newModel, params);\n };\n FilterListener.prototype.findChangedColumns = function (oldModel, newModel) {\n var allColKeysMap = {};\n Object.keys(oldModel).forEach(function (key) { return allColKeysMap[key] = true; });\n Object.keys(newModel).forEach(function (key) { return allColKeysMap[key] = true; });\n var res = [];\n Object.keys(allColKeysMap).forEach(function (key) {\n var oldJson = JSON.stringify(oldModel[key]);\n var newJson = JSON.stringify(newModel[key]);\n var filterChanged = oldJson != newJson;\n if (filterChanged) {\n res.push(key);\n }\n });\n return res;\n };\n __decorate$1I([\n agGridCommunity.Autowired('rowModel')\n ], FilterListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$1I([\n agGridCommunity.Autowired('filterManager')\n ], FilterListener.prototype, \"filterManager\", void 0);\n __decorate$1I([\n agGridCommunity.Autowired('ssrmListenerUtils')\n ], FilterListener.prototype, \"listenerUtils\", void 0);\n __decorate$1I([\n agGridCommunity.PostConstruct\n ], FilterListener.prototype, \"postConstruct\", null);\n FilterListener = __decorate$1I([\n agGridCommunity.Bean('ssrmFilterListener')\n ], FilterListener);\n return FilterListener;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __values$g = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar PartialStoreBlock = /** @class */ (function (_super) {\n __extends$3i(PartialStoreBlock, _super);\n function PartialStoreBlock(blockNumber, parentRowNode, ssrmParams, storeParams, parentStore) {\n var _this = _super.call(this, blockNumber) || this;\n _this.ssrmParams = ssrmParams;\n _this.storeParams = storeParams;\n _this.parentRowNode = parentRowNode;\n // we don't need to calculate these now, as the inputs don't change,\n // however it makes the code easier to read if we work them out up front\n _this.startRow = blockNumber * storeParams.cacheBlockSize;\n _this.parentStore = parentStore;\n _this.level = parentRowNode.level + 1;\n _this.groupLevel = ssrmParams.rowGroupCols ? _this.level < ssrmParams.rowGroupCols.length : undefined;\n _this.leafGroup = ssrmParams.rowGroupCols ? _this.level === ssrmParams.rowGroupCols.length - 1 : false;\n return _this;\n }\n PartialStoreBlock.prototype.postConstruct = function () {\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n if (!this.usingTreeData && this.groupLevel) {\n var groupColVo = this.ssrmParams.rowGroupCols[this.level];\n this.groupField = groupColVo.field;\n this.rowGroupColumn = this.columnModel.getRowGroupColumns()[this.level];\n }\n this.nodeIdPrefix = this.blockUtils.createNodeIdPrefix(this.parentRowNode);\n this.setData([]);\n };\n PartialStoreBlock.prototype.isDisplayIndexInBlock = function (displayIndex) {\n return displayIndex >= this.displayIndexStart && displayIndex < this.displayIndexEnd;\n };\n PartialStoreBlock.prototype.isBlockBefore = function (displayIndex) {\n return displayIndex >= this.displayIndexEnd;\n };\n PartialStoreBlock.prototype.getDisplayIndexStart = function () {\n return this.displayIndexStart;\n };\n PartialStoreBlock.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n PartialStoreBlock.prototype.getBlockHeightPx = function () {\n return this.blockHeightPx;\n };\n PartialStoreBlock.prototype.getBlockTopPx = function () {\n return this.blockTopPx;\n };\n PartialStoreBlock.prototype.isGroupLevel = function () {\n return this.groupLevel;\n };\n PartialStoreBlock.prototype.getGroupField = function () {\n return this.groupField;\n };\n PartialStoreBlock.prototype.prefixId = function (id) {\n if (this.nodeIdPrefix != null) {\n return this.nodeIdPrefix + '-' + id;\n }\n else {\n return id.toString();\n }\n };\n PartialStoreBlock.prototype.getBlockStateJson = function () {\n return {\n id: this.prefixId(this.getId()),\n state: {\n blockNumber: this.getId(),\n startRow: this.startRow,\n endRow: this.startRow + this.storeParams.cacheBlockSize,\n pageStatus: this.getState()\n }\n };\n };\n PartialStoreBlock.prototype.isAnyNodeOpen = function () {\n var openNodeCount = this.rowNodes.filter(function (node) { return node.expanded; }).length;\n return openNodeCount > 0;\n };\n // this method is repeated, see forEachRowNode, why?\n PartialStoreBlock.prototype.forEachNode = function (callback, sequence, includeChildren, filterAndSort) {\n if (sequence === void 0) { sequence = new agGridCommunity.NumberSequence(); }\n this.rowNodes.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n // this will only every happen for server side row model, as infinite\n // row model doesn't have groups\n if (includeChildren && rowNode.childStore) {\n var childStore = rowNode.childStore;\n if (filterAndSort) {\n childStore.forEachNodeDeepAfterFilterAndSort(callback, sequence);\n }\n else {\n childStore.forEachNodeDeep(callback, sequence);\n }\n }\n });\n };\n PartialStoreBlock.prototype.forEachNodeDeep = function (callback, sequence) {\n this.forEachNode(callback, sequence, true, false);\n };\n PartialStoreBlock.prototype.forEachNodeAfterFilterAndSort = function (callback, sequence) {\n this.forEachNode(callback, sequence, true, true);\n };\n PartialStoreBlock.prototype.forEachNodeShallow = function (callback, sequence) {\n this.forEachNode(callback, sequence, false, false);\n };\n PartialStoreBlock.prototype.getLastAccessed = function () {\n return this.lastAccessed;\n };\n PartialStoreBlock.prototype.getRowUsingLocalIndex = function (rowIndex) {\n return this.rowNodes[rowIndex - this.startRow];\n };\n PartialStoreBlock.prototype.touchLastAccessed = function () {\n this.lastAccessed = this.ssrmParams.lastAccessedSequence.next();\n };\n PartialStoreBlock.prototype.processServerFail = function () {\n this.parentStore.onBlockLoadFailed(this);\n };\n PartialStoreBlock.prototype.retryLoads = function () {\n if (this.getState() === agGridCommunity.RowNodeBlock.STATE_FAILED) {\n this.setStateWaitingToLoad();\n this.rowNodeBlockLoader.checkBlockToLoad();\n this.setData();\n }\n this.forEachNodeShallow(function (node) {\n if (node.childStore) {\n node.childStore.retryLoads();\n }\n });\n };\n PartialStoreBlock.prototype.processServerResult = function (params) {\n this.parentStore.onBlockLoaded(this, params);\n };\n PartialStoreBlock.prototype.setData = function (rows, failedLoad) {\n if (rows === void 0) { rows = []; }\n if (failedLoad === void 0) { failedLoad = false; }\n this.destroyRowNodes();\n var storeRowCount = this.parentStore.getRowCount();\n var startRow = this.getId() * this.storeParams.cacheBlockSize;\n var endRow = Math.min(startRow + this.storeParams.cacheBlockSize, storeRowCount);\n var rowsToCreate = endRow - startRow;\n // when using autoHeight, we default the row heights to a height to fill the old height of the block.\n // we only ever do this to autoHeight, as we could be setting invalid heights (especially if different\n // number of rows in the block due to a filter, less rows would mean bigger rows), and autoHeight is\n // the only pattern that will automatically correct this. we check for visible autoHeight cols,\n // to omit the case where all autoHeight cols are hidden.\n var showingAutoHeightCols = this.columnModel.getAllDisplayedAutoHeightCols().length > 0;\n var cachedBlockHeight = showingAutoHeightCols ? this.parentStore.getCachedBlockHeight(this.getId()) : undefined;\n var cachedRowHeight = cachedBlockHeight ? Math.round(cachedBlockHeight / rowsToCreate) : undefined;\n for (var i = 0; i < rowsToCreate; i++) {\n var rowNode = this.blockUtils.createRowNode({\n field: this.groupField,\n group: this.groupLevel,\n leafGroup: this.leafGroup,\n level: this.level,\n parent: this.parentRowNode,\n rowGroupColumn: this.rowGroupColumn,\n rowHeight: cachedRowHeight\n });\n var dataLoadedForThisRow = i < rows.length;\n if (dataLoadedForThisRow) {\n var data = rows[i];\n var defaultId = this.prefixId(this.startRow + i);\n this.blockUtils.setDataIntoRowNode(rowNode, data, defaultId, cachedRowHeight);\n var newId = rowNode.id;\n this.parentStore.removeDuplicateNode(newId);\n this.nodeManager.addRowNode(rowNode);\n this.allNodesMap[rowNode.id] = rowNode;\n this.blockUtils.checkOpenByDefault(rowNode);\n }\n this.rowNodes.push(rowNode);\n if (failedLoad) {\n rowNode.failedLoad = true;\n }\n }\n };\n // to safeguard the grid against duplicate nodes, when a row is loaded, we check\n // for another row in the same cache. if another row does exist, we delete it.\n // this covers for when user refreshes the store (which typically happens after a\n // data change) and the same row ends up coming back in a different block, and the\n // new block finishes refreshing before the old block has finished refreshing.\n PartialStoreBlock.prototype.removeDuplicateNode = function (id) {\n // we don't remove duplicates if this block is loaded, as that's a duplicate ID.\n // we are only interested in removing rows in blocks that are in the middle of a refresh,\n // ie two blocks, A and B, both are refreshed (as in the same cache) but A comes back\n // first and some rows have moved from B to A, we must remove the old rows from B.\n // however if B is not also getting refreshed (ie it's loaded) this is a bug\n // we need to tell the application about, as they provided duplicate ID's (done in Node Manager)\n if (this.getState() == agGridCommunity.RowNodeBlock.STATE_LOADED) {\n return;\n }\n var rowNode = this.allNodesMap[id];\n if (!rowNode) {\n return;\n }\n this.blockUtils.destroyRowNode(rowNode);\n var index = this.rowNodes.indexOf(rowNode);\n var stubRowNode = this.blockUtils.createRowNode({ field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn });\n this.rowNodes[index] = stubRowNode;\n };\n PartialStoreBlock.prototype.refresh = function () {\n if (this.getState() !== agGridCommunity.RowNodeBlock.STATE_WAITING_TO_LOAD) {\n this.setStateWaitingToLoad();\n }\n };\n PartialStoreBlock.prototype.destroyRowNodes = function () {\n this.blockUtils.destroyRowNodes(this.rowNodes);\n this.rowNodes = [];\n this.allNodesMap = {};\n };\n PartialStoreBlock.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ServerSideBlock');\n };\n PartialStoreBlock.prototype.getRowUsingDisplayIndex = function (displayRowIndex) {\n this.touchLastAccessed();\n var res = this.blockUtils.binarySearchForDisplayIndex(displayRowIndex, this.rowNodes);\n return res;\n };\n PartialStoreBlock.prototype.loadFromDatasource = function () {\n this.storeUtils.loadFromDatasource({\n startRow: this.startRow,\n endRow: this.startRow + this.storeParams.cacheBlockSize,\n parentBlock: this,\n parentNode: this.parentRowNode,\n storeParams: this.ssrmParams,\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n success: this.success.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n fail: this.pageLoadFailed.bind(this, this.getVersion())\n });\n };\n PartialStoreBlock.prototype.isPixelInRange = function (pixel) {\n return pixel >= this.blockTopPx && pixel < (this.blockTopPx + this.blockHeightPx);\n };\n PartialStoreBlock.prototype.getRowBounds = function (index) {\n var e_1, _a;\n this.touchLastAccessed();\n var res;\n try {\n for (var _b = __values$g(this.rowNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var rowNode = _c.value;\n res = this.blockUtils.extractRowBounds(rowNode, index);\n if (res != null) {\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return res;\n };\n PartialStoreBlock.prototype.getRowIndexAtPixel = function (pixel) {\n var e_2, _a;\n this.touchLastAccessed();\n var res = null;\n try {\n for (var _b = __values$g(this.rowNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var rowNode = _c.value;\n res = this.blockUtils.getIndexAtPixel(rowNode, pixel);\n if (res != null) {\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return res;\n };\n PartialStoreBlock.prototype.clearDisplayIndexes = function () {\n var _this = this;\n this.displayIndexEnd = undefined;\n this.displayIndexStart = undefined;\n this.rowNodes.forEach(function (rowNode) { return _this.blockUtils.clearDisplayIndex(rowNode); });\n };\n PartialStoreBlock.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n var _this = this;\n this.displayIndexStart = displayIndexSeq.peek();\n this.blockTopPx = nextRowTop.value;\n this.rowNodes.forEach(function (rowNode) { return _this.blockUtils.setDisplayIndex(rowNode, displayIndexSeq, nextRowTop); });\n this.displayIndexEnd = displayIndexSeq.peek();\n this.blockHeightPx = nextRowTop.value - this.blockTopPx;\n };\n __decorate$1J([\n agGridCommunity.Autowired('columnModel')\n ], PartialStoreBlock.prototype, \"columnModel\", void 0);\n __decorate$1J([\n agGridCommunity.Autowired('ssrmStoreUtils')\n ], PartialStoreBlock.prototype, \"storeUtils\", void 0);\n __decorate$1J([\n agGridCommunity.Autowired('ssrmBlockUtils')\n ], PartialStoreBlock.prototype, \"blockUtils\", void 0);\n __decorate$1J([\n agGridCommunity.Autowired('ssrmNodeManager')\n ], PartialStoreBlock.prototype, \"nodeManager\", void 0);\n __decorate$1J([\n agGridCommunity.Autowired('rowNodeBlockLoader')\n ], PartialStoreBlock.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1J([\n agGridCommunity.PostConstruct\n ], PartialStoreBlock.prototype, \"postConstruct\", null);\n __decorate$1J([\n agGridCommunity.PreDestroy\n ], PartialStoreBlock.prototype, \"destroyRowNodes\", null);\n __decorate$1J([\n __param(0, agGridCommunity.Qualifier('loggerFactory'))\n ], PartialStoreBlock.prototype, \"setBeans\", null);\n return PartialStoreBlock;\n}(agGridCommunity.RowNodeBlock));\n\nvar __extends$3j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$1 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FindResult;\n(function (FindResult) {\n FindResult[FindResult[\"FOUND\"] = 0] = \"FOUND\";\n FindResult[FindResult[\"CONTINUE_FIND\"] = 1] = \"CONTINUE_FIND\";\n FindResult[FindResult[\"BREAK_FIND\"] = 2] = \"BREAK_FIND\";\n})(FindResult || (FindResult = {}));\nvar PartialStore = /** @class */ (function (_super) {\n __extends$3j(PartialStore, _super);\n function PartialStore(ssrmParams, storeParams, parentRowNode) {\n var _this = _super.call(this) || this;\n _this.blocks = {};\n _this.blockHeights = {};\n _this.lastRowIndexKnown = false;\n // this will always be zero for the top level cache only,\n // all the other ones change as the groups open and close\n _this.displayIndexStart = 0;\n _this.displayIndexEnd = 0; // not sure if setting this one to zero is necessary\n _this.cacheTopPixel = 0;\n _this.info = {};\n _this.ssrmParams = ssrmParams;\n _this.storeParams = storeParams;\n _this.parentRowNode = parentRowNode;\n _this.rowCount = PartialStore.INITIAL_ROW_COUNT;\n return _this;\n }\n PartialStore.prototype.postConstruct = function () {\n this.defaultRowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n };\n PartialStore.prototype.destroyAllBlocks = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });\n };\n PartialStore.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ServerSideCache');\n };\n PartialStore.prototype.getRowCount = function () {\n return this.rowCount;\n };\n PartialStore.prototype.isLastRowIndexKnown = function () {\n return this.lastRowIndexKnown;\n };\n PartialStore.prototype.retryLoads = function () {\n this.getBlocksInOrder().forEach(function (block) { return block.retryLoads(); });\n };\n PartialStore.prototype.onBlockLoadFailed = function (block) {\n block.setData([], true);\n this.fireCacheUpdatedEvent();\n };\n PartialStore.prototype.onBlockLoaded = function (block, params) {\n this.logger.log(\"onPageLoaded: page = \" + block.getId() + \", lastRow = \" + params.rowCount);\n if (params.storeInfo) {\n Object.assign(this.info, params.storeInfo);\n }\n if (!params.rowData) {\n var message_1 = 'AG Grid: \"params.rowData\" is missing from Server-Side Row Model success() callback. Please use the \"rowData\" attribute. If no data is returned, set an empty list.';\n agGridCommunity._.doOnce(function () { return console.warn(message_1, params); }, 'InfiniteStore.noData');\n }\n var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;\n // if we are not active, then we ignore all events, otherwise we could end up getting the\n // grid to refresh even though we are no longer the active cache\n if (!this.isAlive()) {\n return;\n }\n this.checkRowCount(block, finalRowCount);\n block.setData(params.rowData);\n // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer\n // in the valid range. so we must remove these. this can happen if the datasource returns a\n // result and sets lastRow to something less than virtualRowCount (can happen if user scrolls\n // down, server reduces dataset size).\n this.destroyAllBlocksPastVirtualRowCount();\n this.fireCacheUpdatedEvent();\n };\n PartialStore.prototype.purgeBlocksIfNeeded = function (blockToExclude) {\n var _this = this;\n // we exclude checking for the page just created, as this has yet to be accessed and hence\n // the lastAccessed stamp will not be updated for the first time yet\n var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });\n var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };\n blocksForPurging.sort(lastAccessedComparator);\n // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.\n // in other words, after the splice operation below, we have taken out the blocks\n // we want to keep, which means we are left with blocks that we can potentially purge\n var maxBlocksProvided = this.storeParams.maxBlocksInCache > 0;\n var blocksToKeep = maxBlocksProvided ? this.storeParams.maxBlocksInCache - 1 : null;\n var emptyBlocksToKeep = PartialStore.MAX_EMPTY_BLOCKS_TO_KEEP - 1;\n blocksForPurging.forEach(function (block, index) {\n var purgeBecauseBlockEmpty = block.getState() === PartialStoreBlock.STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;\n var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;\n if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {\n // we never purge blocks if they are open, as purging them would mess up with\n // our indexes, it would be very messy to restore the purged block to it's\n // previous state if it had open children.\n if (block.isAnyNodeOpen()) {\n return;\n }\n // if the block currently has rows been displayed, then don't remove it either.\n // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)\n // but the screen is showing 20 rows, so at least 4 blocks are needed.\n if (_this.isBlockCurrentlyDisplayed(block)) {\n return;\n }\n // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.\n if (_this.isBlockFocused(block)) {\n return;\n }\n // at this point, block is not needed, and no open nodes, so burn baby burn\n _this.destroyBlock(block);\n }\n });\n };\n PartialStore.prototype.isBlockFocused = function (block) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var blockIndexStart = block.getDisplayIndexStart();\n var blockIndexEnd = block.getDisplayIndexEnd();\n if (blockIndexEnd == null || blockIndexStart == null) {\n return false;\n }\n var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;\n return hasFocus;\n };\n PartialStore.prototype.isBlockCurrentlyDisplayed = function (block) {\n var startIndex = block.getDisplayIndexStart();\n var endIndex = block.getDisplayIndexEnd() - 1;\n return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);\n };\n PartialStore.prototype.removeDuplicateNode = function (id) {\n this.getBlocksInOrder().forEach(function (block) { return block.removeDuplicateNode(id); });\n };\n PartialStore.prototype.checkRowCount = function (block, lastRow) {\n // if client provided a last row, we always use it, as it could change between server calls\n // if user deleted data and then called refresh on the grid.\n if (typeof lastRow === 'number' && lastRow >= 0) {\n this.rowCount = lastRow;\n this.lastRowIndexKnown = true;\n }\n else if (!this.lastRowIndexKnown) {\n // otherwise, see if we need to add some virtual rows\n var lastRowIndex = (block.getId() + 1) * this.storeParams.cacheBlockSize;\n var lastRowIndexPlusOverflow = lastRowIndex + PartialStore.OVERFLOW_SIZE;\n if (this.rowCount < lastRowIndexPlusOverflow) {\n this.rowCount = lastRowIndexPlusOverflow;\n }\n }\n };\n PartialStore.prototype.forEachNodeDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new agGridCommunity.NumberSequence(); }\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNodeDeep(callback, sequence); });\n };\n PartialStore.prototype.forEachNodeDeepAfterFilterAndSort = function (callback, sequence) {\n if (sequence === void 0) { sequence = new agGridCommunity.NumberSequence(); }\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNodeAfterFilterAndSort(callback, sequence); });\n };\n PartialStore.prototype.getBlocksInOrder = function () {\n // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order\n var blockComparator = function (a, b) { return a.getId() - b.getId(); };\n var blocks = agGridCommunity._.getAllValuesInObject(this.blocks).sort(blockComparator);\n return blocks;\n };\n PartialStore.prototype.destroyBlock = function (block) {\n delete this.blocks[block.getId()];\n this.destroyBean(block);\n this.rowNodeBlockLoader.removeBlock(block);\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n PartialStore.prototype.fireCacheUpdatedEvent = function () {\n // this results in row model firing ModelUpdated.\n // server side row model also updates the row indexes first\n var event = {\n type: agGridCommunity.Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n PartialStore.prototype.destroyAllBlocksPastVirtualRowCount = function () {\n var _this = this;\n var blocksToDestroy = [];\n this.getBlocksInOrder().forEach(function (block) {\n var startRow = block.getId() * _this.storeParams.cacheBlockSize;\n if (startRow >= _this.rowCount) {\n blocksToDestroy.push(block);\n }\n });\n if (blocksToDestroy.length > 0) {\n blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });\n }\n };\n PartialStore.prototype.refreshStore = function (purge) {\n var noBlocksToRefresh = this.getRowCount() == 0;\n if (noBlocksToRefresh || purge) {\n this.resetStore();\n }\n else {\n this.refreshBlocks();\n }\n this.fireCacheUpdatedEvent();\n };\n PartialStore.prototype.refreshBlocks = function () {\n this.getBlocksInOrder().forEach(function (block) {\n block.refresh();\n });\n this.lastRowIndexKnown = false;\n this.rowNodeBlockLoader.checkBlockToLoad();\n };\n PartialStore.prototype.resetStore = function () {\n this.destroyAllBlocks();\n this.lastRowIndexKnown = false;\n // if zero rows in the cache, we need to get the SSRM to start asking for rows again.\n // otherwise if set to zero rows last time, and we don't update the row count, then after\n // the purge there will still be zero rows, meaning the SSRM won't request any rows.\n // to kick things off, at least one row needs to be asked for.\n if (this.columnModel.isAutoRowHeightActive || this.rowCount === 0) {\n this.rowCount = PartialStore.INITIAL_ROW_COUNT;\n }\n };\n PartialStore.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var result = [];\n var lastBlockId = -1;\n var inActiveRange = false;\n // if only one node passed, we start the selection at the top\n if (agGridCommunity._.missing(firstInRange)) {\n inActiveRange = true;\n }\n var foundGapInSelection = false;\n this.getBlocksInOrder().forEach(function (block) {\n if (foundGapInSelection) {\n return;\n }\n if (inActiveRange && (lastBlockId + 1 !== block.getId())) {\n foundGapInSelection = true;\n return;\n }\n lastBlockId = block.getId();\n block.forEachNodeShallow(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n });\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = foundGapInSelection || inActiveRange;\n return invalidRange ? [] : result;\n };\n PartialStore.prototype.findBlockAndExecute = function (matchBlockFunc, blockFoundFunc, blockNotFoundFunc) {\n var blockFound = false;\n var breakSearch = false;\n var lastBlock = null;\n var res;\n this.getBlocksInOrder().forEach(function (block) {\n if (blockFound || breakSearch) {\n return;\n }\n var comparatorResult = matchBlockFunc(block);\n if (comparatorResult == FindResult.FOUND) {\n res = blockFoundFunc(block);\n blockFound = true;\n }\n else if (comparatorResult == FindResult.CONTINUE_FIND) {\n lastBlock = block;\n }\n else if (comparatorResult == FindResult.BREAK_FIND) {\n breakSearch = true;\n }\n });\n if (!blockFound) {\n res = blockNotFoundFunc(lastBlock);\n }\n return res;\n };\n PartialStore.prototype.getRowBounds = function (index) {\n var _this = this;\n var matchBlockFunc = function (block) {\n if (block.isDisplayIndexInBlock(index)) {\n return FindResult.FOUND;\n }\n else {\n return block.isBlockBefore(index) ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n }\n };\n var blockFoundFunc = function (foundBlock) {\n return foundBlock.getRowBounds(index);\n };\n var blockNotFoundFunc = function (previousBlock) {\n var nextRowTop;\n var nextRowIndex;\n if (previousBlock !== null) {\n nextRowTop = previousBlock.getBlockTopPx() + previousBlock.getBlockHeightPx();\n nextRowIndex = previousBlock.getDisplayIndexEnd();\n }\n else {\n nextRowTop = _this.cacheTopPixel;\n nextRowIndex = _this.displayIndexStart;\n }\n var rowsBetween = index - nextRowIndex;\n return {\n rowHeight: _this.defaultRowHeight,\n rowTop: nextRowTop + rowsBetween * _this.defaultRowHeight\n };\n };\n return this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n };\n PartialStore.prototype.getRowIndexAtPixel = function (pixel) {\n var _this = this;\n var matchBlockFunc = function (block) {\n if (block.isPixelInRange(pixel)) {\n return FindResult.FOUND;\n }\n else {\n return block.getBlockTopPx() < pixel ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n }\n };\n var blockFoundFunc = function (foundBlock) {\n return foundBlock.getRowIndexAtPixel(pixel);\n };\n var blockNotFoundFunc = function (previousBlock) {\n var nextRowTop;\n var nextRowIndex;\n if (previousBlock) {\n nextRowTop = previousBlock.getBlockTopPx() + previousBlock.getBlockHeightPx();\n nextRowIndex = previousBlock.getDisplayIndexEnd();\n }\n else {\n nextRowTop = _this.cacheTopPixel;\n nextRowIndex = _this.displayIndexStart;\n }\n // we start at the last loaded block before this block, and go down\n // block by block, adding in the block sizes (using cached sizes if available)\n // until we get to a block that does should have the pixel\n var blockSize = _this.storeParams.cacheBlockSize;\n var defaultBlockHeight = _this.defaultRowHeight * blockSize;\n var nextBlockId = previousBlock ? (previousBlock.getId() + 1) : 0;\n var getBlockDetails = function (id) {\n var cachedBlockHeight = _this.getCachedBlockHeight(id);\n var blockHeight = cachedBlockHeight != null ? cachedBlockHeight : defaultBlockHeight;\n var pixelInBlock = pixel <= (blockHeight + nextRowTop);\n return {\n height: blockHeight, pixelInBlock: pixelInBlock\n };\n };\n var blockDetails = getBlockDetails(nextBlockId);\n while (!blockDetails.pixelInBlock) {\n nextRowTop += blockDetails.height;\n nextRowIndex += blockSize;\n nextBlockId++;\n blockDetails = getBlockDetails(nextBlockId);\n }\n var pixelsBetween = pixel - nextRowTop;\n var rowHeight = blockDetails.height / blockSize;\n var rowsBetween = Math.floor(pixelsBetween / rowHeight) | 0;\n return nextRowIndex + rowsBetween;\n };\n var result = this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n var lastAllowedIndex = this.getDisplayIndexEnd() - 1;\n result = Math.min(result, lastAllowedIndex);\n return result;\n };\n PartialStore.prototype.clearDisplayIndexes = function () {\n this.displayIndexStart = undefined;\n this.displayIndexEnd = undefined;\n this.getBlocksInOrder().forEach(function (block) { return block.clearDisplayIndexes(); });\n };\n PartialStore.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n var _this = this;\n this.displayIndexStart = displayIndexSeq.peek();\n this.cacheTopPixel = nextRowTop.value;\n var lastBlockId = -1;\n var blockSize = this.storeParams.cacheBlockSize;\n this.getBlocksInOrder().forEach(function (currentBlock) {\n // if we skipped blocks, then we need to skip the row indexes. we assume that all missing\n // blocks are made up of closed RowNodes only (if they were groups), as we never expire from\n // the cache if any row nodes are open.\n var blockId = currentBlock.getId();\n var blocksSkippedCount = blockId - lastBlockId - 1;\n var rowsSkippedCount = blocksSkippedCount * blockSize;\n if (rowsSkippedCount > 0) {\n displayIndexSeq.skip(rowsSkippedCount);\n }\n for (var i = 1; i <= blocksSkippedCount; i++) {\n var blockToAddId = blockId - i;\n if (agGridCommunity._.exists(_this.blockHeights[blockToAddId])) {\n nextRowTop.value += _this.blockHeights[blockToAddId];\n }\n else {\n nextRowTop.value += blockSize * _this.defaultRowHeight;\n }\n }\n lastBlockId = blockId;\n currentBlock.setDisplayIndexes(displayIndexSeq, nextRowTop);\n _this.blockHeights[blockId] = currentBlock.getBlockHeightPx();\n });\n // if any blocks missing at the end, need to increase the row index for them also\n // eg if block size = 10, we have total rows of 25 (indexes 0 .. 24), but first 2 blocks loaded (because\n // last row was ejected from cache), then:\n // lastVisitedRow = 19, virtualRowCount = 25, rows not accounted for = 5 (24 - 19)\n var lastVisitedRow = ((lastBlockId + 1) * blockSize) - 1;\n var rowCount = this.getRowCount();\n var rowsNotAccountedFor = rowCount - lastVisitedRow - 1;\n if (rowsNotAccountedFor > 0) {\n displayIndexSeq.skip(rowsNotAccountedFor);\n nextRowTop.value += rowsNotAccountedFor * this.defaultRowHeight;\n }\n this.displayIndexEnd = displayIndexSeq.peek();\n this.cacheHeightPixels = nextRowTop.value - this.cacheTopPixel;\n };\n // gets called in a) init() above and b) by the grid\n PartialStore.prototype.getRowUsingDisplayIndex = function (displayRowIndex, dontCreateBlock) {\n var _this = this;\n if (dontCreateBlock === void 0) { dontCreateBlock = false; }\n // this can happen if asking for a row that doesn't exist in the model,\n // eg if a cell range is selected, and the user filters so rows no longer exists\n if (!this.isDisplayIndexInStore(displayRowIndex)) {\n return undefined;\n }\n var matchBlockFunc = function (block) {\n if (block.isDisplayIndexInBlock(displayRowIndex)) {\n return FindResult.FOUND;\n }\n else {\n return block.isBlockBefore(displayRowIndex) ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n }\n };\n var blockFoundFunc = function (foundBlock) {\n return foundBlock.getRowUsingDisplayIndex(displayRowIndex);\n };\n var blockNotFoundFunc = function (previousBlock) {\n if (dontCreateBlock) {\n return;\n }\n var blockNumber;\n var displayIndexStart;\n var nextRowTop;\n var blockSize = _this.storeParams.cacheBlockSize;\n // because missing blocks are always fully closed, we can work out\n // the start index of the block we want by hopping from the closest block,\n // as we know the row count in closed blocks is equal to the page size\n if (previousBlock) {\n blockNumber = previousBlock.getId() + 1;\n displayIndexStart = previousBlock.getDisplayIndexEnd();\n nextRowTop = previousBlock.getBlockHeightPx() + previousBlock.getBlockTopPx();\n var isInRange = function () {\n return displayRowIndex >= displayIndexStart && displayRowIndex < (displayIndexStart + blockSize);\n };\n while (!isInRange()) {\n displayIndexStart += blockSize;\n var cachedBlockHeight = _this.blockHeights[blockNumber];\n if (agGridCommunity._.exists(cachedBlockHeight)) {\n nextRowTop += cachedBlockHeight;\n }\n else {\n nextRowTop += _this.defaultRowHeight * blockSize;\n }\n blockNumber++;\n }\n }\n else {\n var localIndex = displayRowIndex - _this.displayIndexStart;\n blockNumber = Math.floor(localIndex / blockSize);\n displayIndexStart = _this.displayIndexStart + (blockNumber * blockSize);\n nextRowTop = _this.cacheTopPixel + (blockNumber * blockSize * _this.defaultRowHeight);\n }\n _this.logger.log(\"block missing, rowIndex = \" + displayRowIndex + \", creating #\" + blockNumber + \", displayIndexStart = \" + displayIndexStart);\n var newBlock = _this.createBlock(blockNumber, displayIndexStart, { value: nextRowTop });\n return newBlock.getRowUsingDisplayIndex(displayRowIndex);\n };\n return this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n };\n PartialStore.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var blockSize = this.storeParams.cacheBlockSize;\n var blockId = Math.floor(topLevelIndex / blockSize);\n var matchBlockFunc = function (block) {\n if (block.getId() === blockId) {\n return FindResult.FOUND;\n }\n return block.getId() < blockId ? FindResult.CONTINUE_FIND : FindResult.BREAK_FIND;\n };\n var blockFoundFunc = function (foundBlock) {\n var rowNode = foundBlock.getRowUsingLocalIndex(topLevelIndex);\n return rowNode.rowIndex;\n };\n var blockNotFoundFunc = function (previousBlock) {\n if (!previousBlock) {\n return topLevelIndex;\n }\n // note: the local index is the same as the top level index, two terms for same thing\n //\n // get index of the last row before this row\n // eg if blocksize = 100, then:\n // last row of first block is 99 (100 * 1) -1;\n // last row of second block is 199 (100 * 2) -1;\n var lastRowTopLevelIndex = (blockSize * (previousBlock.getId() + 1)) - 1;\n // get the last top level node in the block before the wanted block. this will be the last\n // loaded displayed top level node.\n var lastRowNode = previousBlock.getRowUsingLocalIndex(lastRowTopLevelIndex);\n // we want the index of the last displayed node, not just the top level node, so if the last top level node\n // is open, we get the index of the last displayed child node.\n var lastDisplayedNodeIndexInBlockBefore;\n if (lastRowNode.expanded && lastRowNode.childStore) {\n var serverSideCache = lastRowNode.childStore;\n lastDisplayedNodeIndexInBlockBefore = serverSideCache.getDisplayIndexEnd() - 1;\n }\n else if (lastRowNode.expanded && lastRowNode.detailNode) {\n lastDisplayedNodeIndexInBlockBefore = lastRowNode.detailNode.rowIndex;\n }\n else {\n lastDisplayedNodeIndexInBlockBefore = lastRowNode.rowIndex;\n }\n // we are guaranteed no rows are open. so the difference between the topTopIndex will be the\n // same as the difference between the displayed index\n var indexDiff = topLevelIndex - lastRowTopLevelIndex;\n return lastDisplayedNodeIndexInBlockBefore + indexDiff;\n };\n return this.findBlockAndExecute(matchBlockFunc, blockFoundFunc, blockNotFoundFunc);\n };\n PartialStore.prototype.addStoreStates = function (result) {\n result.push({\n type: 'partial',\n route: this.parentRowNode.getGroupKeys(),\n rowCount: this.rowCount,\n lastRowIndexKnown: this.lastRowIndexKnown,\n info: this.info,\n maxBlocksInCache: this.storeParams.maxBlocksInCache,\n cacheBlockSize: this.storeParams.cacheBlockSize\n });\n this.forEachChildStoreShallow(function (childStore) { return childStore.addStoreStates(result); });\n };\n PartialStore.prototype.getCachedBlockHeight = function (blockNumber) {\n return this.blockHeights[blockNumber];\n };\n PartialStore.prototype.createBlock = function (blockNumber, displayIndex, nextRowTop) {\n var block = this.createBean(new PartialStoreBlock(blockNumber, this.parentRowNode, this.ssrmParams, this.storeParams, this));\n block.setDisplayIndexes(new agGridCommunity.NumberSequence(displayIndex), nextRowTop);\n this.blocks[block.getId()] = block;\n this.purgeBlocksIfNeeded(block);\n this.rowNodeBlockLoader.addBlock(block);\n return block;\n };\n PartialStore.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n PartialStore.prototype.isDisplayIndexInStore = function (displayIndex) {\n if (this.getRowCount() === 0) {\n return false;\n }\n return displayIndex >= this.displayIndexStart && displayIndex < this.displayIndexEnd;\n };\n PartialStore.prototype.applyTransaction = function (transaction) {\n return { status: agGridCommunity.ServerSideTransactionResultStatus.StoreWrongType };\n };\n PartialStore.prototype.getChildStore = function (keys) {\n var _this = this;\n var findNodeCallback = function (key) {\n var nextNode = null;\n _this.getBlocksInOrder().forEach(function (block) {\n block.forEachNodeShallow(function (rowNode) {\n if (rowNode.key === key) {\n nextNode = rowNode;\n }\n }, new agGridCommunity.NumberSequence());\n });\n return nextNode;\n };\n return this.storeUtils.getChildStore(keys, this, findNodeCallback);\n };\n PartialStore.prototype.isPixelInRange = function (pixel) {\n if (this.getRowCount() === 0) {\n return false;\n }\n return pixel >= this.cacheTopPixel && pixel < (this.cacheTopPixel + this.cacheHeightPixels);\n };\n PartialStore.prototype.refreshAfterFilter = function (params) {\n this.resetStore();\n };\n PartialStore.prototype.refreshAfterSort = function (params) {\n if (this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params)) {\n this.resetStore();\n return;\n }\n // call refreshAfterSort on children, as we did not purge.\n // if we did purge, no need to do this as all children were destroyed\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterSort(params); });\n };\n PartialStore.prototype.forEachChildStoreShallow = function (callback) {\n this.getBlocksInOrder().forEach(function (block) {\n if (block.isGroupLevel()) {\n var innerCallback = function (rowNode) {\n var nextCache = rowNode.childStore;\n if (nextCache) {\n callback(nextCache);\n }\n };\n block.forEachNodeShallow(innerCallback, new agGridCommunity.NumberSequence());\n }\n });\n };\n // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10\n // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly\n // scrolled over are not needed to be loaded.\n PartialStore.MAX_EMPTY_BLOCKS_TO_KEEP = 2;\n PartialStore.INITIAL_ROW_COUNT = 1;\n PartialStore.OVERFLOW_SIZE = 1;\n __decorate$1K([\n agGridCommunity.Autowired('rowRenderer')\n ], PartialStore.prototype, \"rowRenderer\", void 0);\n __decorate$1K([\n agGridCommunity.Autowired('rowNodeBlockLoader')\n ], PartialStore.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1K([\n agGridCommunity.Autowired('ssrmStoreUtils')\n ], PartialStore.prototype, \"storeUtils\", void 0);\n __decorate$1K([\n agGridCommunity.Autowired(\"focusService\")\n ], PartialStore.prototype, \"focusService\", void 0);\n __decorate$1K([\n agGridCommunity.Autowired(\"columnModel\")\n ], PartialStore.prototype, \"columnModel\", void 0);\n __decorate$1K([\n agGridCommunity.PostConstruct\n ], PartialStore.prototype, \"postConstruct\", null);\n __decorate$1K([\n agGridCommunity.PreDestroy\n ], PartialStore.prototype, \"destroyAllBlocks\", null);\n __decorate$1K([\n __param$1(0, agGridCommunity.Qualifier('loggerFactory'))\n ], PartialStore.prototype, \"setBeans\", null);\n return PartialStore;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FullStore = /** @class */ (function (_super) {\n __extends$3k(FullStore, _super);\n function FullStore(ssrmParams, storeParams, parentRowNode) {\n var _this = \n // finite block represents a cache with just one block, thus 0 is the id, it's the first block\n _super.call(this, 0) || this;\n _this.nodeIdSequence = new agGridCommunity.NumberSequence();\n _this.info = {};\n _this.ssrmParams = ssrmParams;\n _this.parentRowNode = parentRowNode;\n _this.level = parentRowNode.level + 1;\n _this.groupLevel = ssrmParams.rowGroupCols ? _this.level < ssrmParams.rowGroupCols.length : undefined;\n _this.leafGroup = ssrmParams.rowGroupCols ? _this.level === ssrmParams.rowGroupCols.length - 1 : false;\n return _this;\n }\n FullStore.prototype.postConstruct = function () {\n var _this = this;\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n this.nodeIdPrefix = this.blockUtils.createNodeIdPrefix(this.parentRowNode);\n if (!this.usingTreeData && this.groupLevel) {\n var groupColVo = this.ssrmParams.rowGroupCols[this.level];\n this.groupField = groupColVo.field;\n this.rowGroupColumn = this.columnModel.getRowGroupColumns()[this.level];\n }\n this.initialiseRowNodes();\n this.rowNodeBlockLoader.addBlock(this);\n this.addDestroyFunc(function () { return _this.rowNodeBlockLoader.removeBlock(_this); });\n };\n FullStore.prototype.destroyRowNodes = function () {\n this.blockUtils.destroyRowNodes(this.allRowNodes);\n this.allRowNodes = [];\n this.nodesAfterSort = [];\n this.nodesAfterFilter = [];\n this.allNodesMap = {};\n };\n FullStore.prototype.initialiseRowNodes = function (loadingRowsCount, failedLoad) {\n if (loadingRowsCount === void 0) { loadingRowsCount = 1; }\n if (failedLoad === void 0) { failedLoad = false; }\n this.destroyRowNodes();\n for (var i = 0; i < loadingRowsCount; i++) {\n var loadingRowNode = this.blockUtils.createRowNode({\n field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn\n });\n if (failedLoad) {\n loadingRowNode.failedLoad = true;\n }\n this.allRowNodes.push(loadingRowNode);\n this.nodesAfterFilter.push(loadingRowNode);\n this.nodesAfterSort.push(loadingRowNode);\n }\n };\n FullStore.prototype.getBlockStateJson = function () {\n return {\n id: this.nodeIdPrefix ? this.nodeIdPrefix : '',\n state: this.getState()\n };\n };\n FullStore.prototype.loadFromDatasource = function () {\n this.storeUtils.loadFromDatasource({\n startRow: undefined,\n endRow: undefined,\n parentBlock: this,\n parentNode: this.parentRowNode,\n storeParams: this.ssrmParams,\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n success: this.success.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n fail: this.pageLoadFailed.bind(this, this.getVersion())\n });\n };\n FullStore.prototype.getStartRow = function () {\n return 0; // always zero as not in a cache\n };\n FullStore.prototype.getEndRow = function () {\n return this.nodesAfterSort.length;\n };\n FullStore.prototype.createDataNode = function (data, index) {\n var rowNode = this.blockUtils.createRowNode({\n field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn\n });\n if (index != null) {\n agGridCommunity._.insertIntoArray(this.allRowNodes, rowNode, index);\n }\n else {\n this.allRowNodes.push(rowNode);\n }\n var defaultId = this.prefixId(this.nodeIdSequence.next());\n this.blockUtils.setDataIntoRowNode(rowNode, data, defaultId, undefined);\n this.nodeManager.addRowNode(rowNode);\n this.blockUtils.checkOpenByDefault(rowNode);\n this.allNodesMap[rowNode.id] = rowNode;\n return rowNode;\n };\n FullStore.prototype.prefixId = function (id) {\n if (this.nodeIdPrefix) {\n return this.nodeIdPrefix + '-' + id;\n }\n else {\n return id.toString();\n }\n };\n FullStore.prototype.processServerFail = function () {\n this.initialiseRowNodes(1, true);\n this.fireStoreUpdatedEvent();\n this.flushAsyncTransactions();\n };\n FullStore.prototype.processServerResult = function (params) {\n if (!this.isAlive()) {\n return;\n }\n if (params.storeInfo) {\n Object.assign(this.info, params.storeInfo);\n }\n var nodesToRecycle = this.allRowNodes.length > 0 ? this.allNodesMap : undefined;\n this.allRowNodes = [];\n this.nodesAfterSort = [];\n this.nodesAfterFilter = [];\n this.allNodesMap = {};\n if (!params.rowData) {\n var message_1 = 'AG Grid: \"params.data\" is missing from Server-Side Row Model success() callback. Please use the \"data\" attribute. If no data is returned, set an empty list.';\n agGridCommunity._.doOnce(function () { return console.warn(message_1, params); }, 'FullStore.noData');\n }\n this.createOrRecycleNodes(nodesToRecycle, params.rowData);\n if (nodesToRecycle) {\n this.blockUtils.destroyRowNodes(agGridCommunity._.getAllValuesInObject(nodesToRecycle));\n }\n this.filterAndSortNodes();\n this.fireStoreUpdatedEvent();\n this.flushAsyncTransactions();\n };\n FullStore.prototype.createOrRecycleNodes = function (nodesToRecycle, rowData) {\n var _this = this;\n if (!rowData) {\n return;\n }\n var lookupNodeToRecycle = function (data) {\n if (!nodesToRecycle) {\n return undefined;\n }\n var getRowIdFunc = _this.gridOptionsWrapper.getRowIdFunc();\n if (!getRowIdFunc) {\n return undefined;\n }\n var parentKeys = _this.parentRowNode.getGroupKeys();\n var level = _this.level;\n var id = getRowIdFunc({\n data: data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: level,\n });\n var foundNode = nodesToRecycle[id];\n if (!foundNode) {\n return undefined;\n }\n delete nodesToRecycle[id];\n return foundNode;\n };\n var recycleNode = function (rowNode, dataItem) {\n _this.allNodesMap[rowNode.id] = rowNode;\n _this.blockUtils.updateDataIntoRowNode(rowNode, dataItem);\n _this.allRowNodes.push(rowNode);\n };\n rowData.forEach(function (dataItem) {\n var nodeToRecycle = lookupNodeToRecycle(dataItem);\n if (nodeToRecycle) {\n recycleNode(nodeToRecycle, dataItem);\n }\n else {\n _this.createDataNode(dataItem);\n }\n });\n };\n FullStore.prototype.flushAsyncTransactions = function () {\n var _this = this;\n // we want to update the store with any outstanding transactions straight away,\n // as otherwise if waitTimeMillis is large (eg 5s), then the user could be looking\n // at old data for a few seconds before the transactions is applied, which isn't what\n // you would expect when we advertise 'transaction is applied when data is loaded'.\n // we do this in a timeout as flushAsyncTransactions expects the grid to be in a settled\n // state, not in the middle of loading rows! keeps the VM Turns more simple and deterministic.\n window.setTimeout(function () { return _this.transactionManager.flushAsyncTransactions(); }, 0);\n };\n FullStore.prototype.filterAndSortNodes = function () {\n this.filterRowNodes();\n this.sortRowNodes();\n };\n FullStore.prototype.sortRowNodes = function () {\n var sortOptions = this.sortController.getSortOptions();\n var noSortApplied = !sortOptions || sortOptions.length == 0;\n // if we reset after sort, it means the sorting is done on the server\n var sortDoneOnServer = this.gridOptionsWrapper.isServerSideSortingAlwaysResets();\n if (noSortApplied || sortDoneOnServer) {\n this.nodesAfterSort = this.nodesAfterFilter;\n return;\n }\n this.nodesAfterSort = this.rowNodeSorter.doFullSort(this.nodesAfterFilter, sortOptions);\n };\n FullStore.prototype.filterRowNodes = function () {\n var _this = this;\n // if we reset after filter, it means the filtering is done on the server\n var filterDoneOnServer = this.gridOptionsWrapper.isServerSideFilteringAlwaysResets();\n // filtering for InFullStore only works at lowest level details.\n // reason is the logic for group filtering was to difficult to work out how it should work at time of writing.\n var groupLevel = this.groupLevel;\n var skipFilter = filterDoneOnServer || groupLevel;\n if (skipFilter) {\n this.nodesAfterFilter = this.allRowNodes;\n return;\n }\n this.nodesAfterFilter = this.allRowNodes.filter(function (rowNode) { return _this.filterManager.doesRowPassFilter({ rowNode: rowNode }); });\n };\n FullStore.prototype.clearDisplayIndexes = function () {\n var _this = this;\n this.displayIndexStart = undefined;\n this.displayIndexEnd = undefined;\n this.allRowNodes.forEach(function (rowNode) { return _this.blockUtils.clearDisplayIndex(rowNode); });\n };\n FullStore.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n FullStore.prototype.isDisplayIndexInStore = function (displayIndex) {\n if (this.getRowCount() === 0) {\n return false;\n }\n return displayIndex >= this.displayIndexStart && displayIndex < this.displayIndexEnd;\n };\n FullStore.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n var _this = this;\n this.displayIndexStart = displayIndexSeq.peek();\n this.topPx = nextRowTop.value;\n var visibleNodeIds = {};\n // set on all visible nodes\n this.nodesAfterSort.forEach(function (rowNode) {\n _this.blockUtils.setDisplayIndex(rowNode, displayIndexSeq, nextRowTop);\n visibleNodeIds[rowNode.id] = true;\n });\n // and clear on all non-visible nodes\n this.allRowNodes.forEach(function (rowNode) {\n if (!visibleNodeIds[rowNode.id]) {\n _this.blockUtils.clearDisplayIndex(rowNode);\n }\n });\n this.displayIndexEnd = displayIndexSeq.peek();\n this.heightPx = nextRowTop.value - this.topPx;\n };\n FullStore.prototype.forEachNodeDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new agGridCommunity.NumberSequence(); }\n this.allRowNodes.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n var childCache = rowNode.childStore;\n if (childCache) {\n childCache.forEachNodeDeep(callback, sequence);\n }\n });\n };\n FullStore.prototype.forEachNodeDeepAfterFilterAndSort = function (callback, sequence) {\n if (sequence === void 0) { sequence = new agGridCommunity.NumberSequence(); }\n this.nodesAfterSort.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n var childCache = rowNode.childStore;\n if (childCache) {\n childCache.forEachNodeDeepAfterFilterAndSort(callback, sequence);\n }\n });\n };\n FullStore.prototype.getRowUsingDisplayIndex = function (displayRowIndex) {\n // this can happen if asking for a row that doesn't exist in the model,\n // eg if a cell range is selected, and the user filters so rows no longer exists\n if (!this.isDisplayIndexInStore(displayRowIndex)) {\n return undefined;\n }\n var res = this.blockUtils.binarySearchForDisplayIndex(displayRowIndex, this.nodesAfterSort);\n return res;\n };\n FullStore.prototype.getRowBounds = function (index) {\n for (var i = 0; i < this.nodesAfterSort.length; i++) {\n var rowNode = this.nodesAfterSort[i];\n var res = this.blockUtils.extractRowBounds(rowNode, index);\n if (res) {\n return res;\n }\n }\n return null;\n };\n FullStore.prototype.isPixelInRange = function (pixel) {\n return pixel >= this.topPx && pixel < (this.topPx + this.heightPx);\n };\n FullStore.prototype.getRowIndexAtPixel = function (pixel) {\n var _this = this;\n // if pixel before block, return first row\n var pixelBeforeThisStore = pixel <= this.topPx;\n if (pixelBeforeThisStore) {\n var firstNode = this.nodesAfterSort[0];\n return firstNode.rowIndex;\n }\n // if pixel after store, return last row, however the last\n // row could be a child store\n var pixelAfterThisStore = pixel >= (this.topPx + this.heightPx);\n if (pixelAfterThisStore) {\n var lastRowNode = this.nodesAfterSort[this.nodesAfterSort.length - 1];\n var lastRowNodeBottomPx = lastRowNode.rowTop + lastRowNode.rowHeight;\n if (pixel >= lastRowNodeBottomPx && lastRowNode.expanded) {\n if (lastRowNode.childStore && lastRowNode.childStore.getRowCount() > 0) {\n return lastRowNode.childStore.getRowIndexAtPixel(pixel);\n }\n if (lastRowNode.detailNode) {\n return lastRowNode.detailNode.rowIndex;\n }\n }\n return lastRowNode.rowIndex;\n }\n var res = null;\n this.nodesAfterSort.forEach(function (rowNode) {\n var res2 = _this.blockUtils.getIndexAtPixel(rowNode, pixel);\n if (res2 != null) {\n res = res2;\n }\n });\n var pixelIsPastLastRow = res == null;\n if (pixelIsPastLastRow) {\n return this.displayIndexEnd - 1;\n }\n return res;\n };\n FullStore.prototype.getChildStore = function (keys) {\n var _this = this;\n return this.storeUtils.getChildStore(keys, this, function (key) {\n var rowNode = _this.allRowNodes.find(function (currentRowNode) {\n return currentRowNode.key == key;\n });\n return rowNode;\n });\n };\n FullStore.prototype.forEachChildStoreShallow = function (callback) {\n this.allRowNodes.forEach(function (rowNode) {\n var childStore = rowNode.childStore;\n if (childStore) {\n callback(childStore);\n }\n });\n };\n FullStore.prototype.refreshAfterFilter = function (params) {\n if (params.alwaysReset || this.gridOptionsWrapper.isTreeData()) {\n this.refreshStore(true);\n return;\n }\n this.filterAndSortNodes();\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterFilter(params); });\n };\n FullStore.prototype.refreshAfterSort = function (params) {\n if (params.alwaysReset) {\n this.refreshStore(true);\n return;\n }\n this.sortRowNodes();\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterSort(params); });\n };\n FullStore.prototype.applyTransaction = function (transaction) {\n // we only apply transactions to loaded state\n switch (this.getState()) {\n case agGridCommunity.RowNodeBlock.STATE_FAILED:\n return { status: agGridCommunity.ServerSideTransactionResultStatus.StoreLoadingFailed };\n case agGridCommunity.RowNodeBlock.STATE_LOADING:\n return { status: agGridCommunity.ServerSideTransactionResultStatus.StoreLoading };\n case agGridCommunity.RowNodeBlock.STATE_WAITING_TO_LOAD:\n return { status: agGridCommunity.ServerSideTransactionResultStatus.StoreWaitingToLoad };\n }\n var applyCallback = this.gridOptionsWrapper.getIsApplyServerSideTransactionFunc();\n if (applyCallback) {\n var params = {\n transaction: transaction,\n parentNode: this.parentRowNode,\n storeInfo: this.info\n };\n var apply = applyCallback(params);\n if (!apply) {\n return { status: agGridCommunity.ServerSideTransactionResultStatus.Cancelled };\n }\n }\n var res = {\n status: agGridCommunity.ServerSideTransactionResultStatus.Applied,\n remove: [],\n update: [],\n add: []\n };\n var nodesToUnselect = [];\n this.executeAdd(transaction, res);\n this.executeRemove(transaction, res, nodesToUnselect);\n this.executeUpdate(transaction, res, nodesToUnselect);\n this.filterAndSortNodes();\n this.updateSelection(nodesToUnselect);\n return res;\n };\n FullStore.prototype.updateSelection = function (nodesToUnselect) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n nodesToUnselect.forEach(function (rowNode) {\n rowNode.setSelected(false, false, true);\n });\n var event_1 = {\n type: agGridCommunity.Events.EVENT_SELECTION_CHANGED,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n FullStore.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var add = rowDataTran.add, addIndex = rowDataTran.addIndex;\n if (agGridCommunity._.missingOrEmpty(add)) {\n return;\n }\n var useIndex = typeof addIndex === 'number' && addIndex >= 0;\n if (useIndex) {\n // items get inserted in reverse order for index insertion\n add.reverse().forEach(function (item) {\n var newRowNode = _this.createDataNode(item, addIndex);\n rowNodeTransaction.add.push(newRowNode);\n });\n }\n else {\n add.forEach(function (item) {\n var newRowNode = _this.createDataNode(item);\n rowNodeTransaction.add.push(newRowNode);\n });\n }\n };\n FullStore.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var remove = rowDataTran.remove;\n if (remove == null) {\n return;\n }\n var rowIdsRemoved = {};\n remove.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for\n // each row node updated, instead it is raised once by the calling code if any selected nodes exist.\n if (rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n // so row renderer knows to fade row out (and not reposition it)\n rowNode.clearRowTopAndRowIndex();\n // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially\n // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list\n rowIdsRemoved[rowNode.id] = true;\n // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);\n delete _this.allNodesMap[rowNode.id];\n rowNodeTransaction.remove.push(rowNode);\n _this.nodeManager.removeNode(rowNode);\n });\n this.allRowNodes = this.allRowNodes.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });\n };\n FullStore.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var update = rowDataTran.update;\n if (update == null) {\n return;\n }\n update.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n rowNode.updateData(item);\n if (!rowNode.selectable && rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n rowNodeTransaction.update.push(rowNode);\n });\n };\n FullStore.prototype.lookupRowNode = function (data) {\n var getRowIdFunc = this.gridOptionsWrapper.getRowIdFunc();\n var rowNode;\n if (getRowIdFunc != null) {\n // find rowNode using id\n var level = this.level;\n var parentKeys = this.parentRowNode.getGroupKeys();\n var id = getRowIdFunc({\n data: data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: level,\n });\n rowNode = this.allNodesMap[id];\n if (!rowNode) {\n console.error(\"AG Grid: could not find row id=\" + id + \", data item was not found for this id\");\n return null;\n }\n }\n else {\n // find rowNode using object references\n rowNode = this.allRowNodes.find(function (currentRowNode) { return currentRowNode.data === data; });\n if (!rowNode) {\n console.error(\"AG Grid: could not find data item as object was not found\", data);\n return null;\n }\n }\n return rowNode;\n };\n FullStore.prototype.addStoreStates = function (result) {\n result.push({\n type: 'full',\n route: this.parentRowNode.getGroupKeys(),\n rowCount: this.allRowNodes.length,\n info: this.info\n });\n this.forEachChildStoreShallow(function (childStore) { return childStore.addStoreStates(result); });\n };\n FullStore.prototype.refreshStore = function (purge) {\n if (purge) {\n var loadingRowsToShow = this.nodesAfterSort ? this.nodesAfterSort.length : 1;\n this.initialiseRowNodes(loadingRowsToShow);\n }\n this.scheduleLoad();\n this.fireStoreUpdatedEvent();\n };\n FullStore.prototype.retryLoads = function () {\n if (this.getState() === agGridCommunity.RowNodeBlock.STATE_FAILED) {\n this.initialiseRowNodes(1);\n this.scheduleLoad();\n }\n this.forEachChildStoreShallow(function (store) { return store.retryLoads(); });\n };\n FullStore.prototype.scheduleLoad = function () {\n this.setStateWaitingToLoad();\n this.rowNodeBlockLoader.checkBlockToLoad();\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n FullStore.prototype.fireStoreUpdatedEvent = function () {\n // this results in row model firing ModelUpdated.\n // server side row model also updates the row indexes first\n var event = {\n type: agGridCommunity.Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n FullStore.prototype.getRowCount = function () {\n return this.nodesAfterSort.length;\n };\n FullStore.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var rowNode = this.nodesAfterSort[topLevelIndex];\n return rowNode.rowIndex;\n };\n FullStore.prototype.isLastRowIndexKnown = function () {\n return this.getState() == agGridCommunity.RowNodeBlock.STATE_LOADED;\n };\n FullStore.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var result = [];\n var inActiveRange = false;\n // if only one node passed, we start the selection at the top\n if (agGridCommunity._.missing(firstInRange)) {\n inActiveRange = true;\n }\n this.nodesAfterSort.forEach(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = inActiveRange;\n return invalidRange ? [] : result;\n };\n __decorate$1L([\n agGridCommunity.Autowired('ssrmStoreUtils')\n ], FullStore.prototype, \"storeUtils\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('ssrmBlockUtils')\n ], FullStore.prototype, \"blockUtils\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('columnModel')\n ], FullStore.prototype, \"columnModel\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('rowNodeBlockLoader')\n ], FullStore.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('rowNodeSorter')\n ], FullStore.prototype, \"rowNodeSorter\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('sortController')\n ], FullStore.prototype, \"sortController\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('ssrmNodeManager')\n ], FullStore.prototype, \"nodeManager\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('filterManager')\n ], FullStore.prototype, \"filterManager\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('ssrmTransactionManager')\n ], FullStore.prototype, \"transactionManager\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('columnApi')\n ], FullStore.prototype, \"columnApi\", void 0);\n __decorate$1L([\n agGridCommunity.Autowired('gridApi')\n ], FullStore.prototype, \"gridApi\", void 0);\n __decorate$1L([\n agGridCommunity.PostConstruct\n ], FullStore.prototype, \"postConstruct\", null);\n __decorate$1L([\n agGridCommunity.PreDestroy\n ], FullStore.prototype, \"destroyRowNodes\", null);\n return FullStore;\n}(agGridCommunity.RowNodeBlock));\n\nvar __decorate$1M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StoreFactory = /** @class */ (function () {\n function StoreFactory() {\n }\n StoreFactory.prototype.createStore = function (ssrmParams, parentNode) {\n var storeParams = this.getStoreParams(ssrmParams, parentNode);\n var CacheClass = storeParams.storeType === 'partial' ? PartialStore : FullStore;\n return new CacheClass(ssrmParams, storeParams, parentNode);\n };\n StoreFactory.prototype.getStoreParams = function (ssrmParams, parentNode) {\n var userStoreParams = this.getLevelSpecificParams(parentNode);\n // if user provided overrideParams, we take storeType from there if it exists\n var storeType = this.getStoreType(userStoreParams);\n var cacheBlockSize = this.getBlockSize(storeType, userStoreParams);\n var maxBlocksInCache = this.getMaxBlocksInCache(storeType, ssrmParams, userStoreParams);\n var storeParams = {\n storeType: storeType,\n cacheBlockSize: cacheBlockSize,\n maxBlocksInCache: maxBlocksInCache\n };\n return storeParams;\n };\n StoreFactory.prototype.getMaxBlocksInCache = function (storeType, ssrmParams, userStoreParams) {\n if (storeType == 'full') {\n return undefined;\n }\n var maxBlocksInCache = (userStoreParams && userStoreParams.maxBlocksInCache != null)\n ? userStoreParams.maxBlocksInCache\n : this.gridOptionsWrapper.getMaxBlocksInCache();\n var maxBlocksActive = maxBlocksInCache != null && maxBlocksInCache >= 0;\n if (!maxBlocksActive) {\n return undefined;\n }\n if (ssrmParams.dynamicRowHeight) {\n var message_1 = 'AG Grid: Server Side Row Model does not support Dynamic Row Height and Cache Purging. ' +\n 'Either a) remove getRowHeight() callback or b) remove maxBlocksInCache property. Purging has been disabled.';\n agGridCommunity._.doOnce(function () { return console.warn(message_1); }, 'storeFactory.maxBlocksInCache.dynamicRowHeight');\n return undefined;\n }\n if (this.columnModel.isAutoRowHeightActive()) {\n var message_2 = 'AG Grid: Server Side Row Model does not support Auto Row Height and Cache Purging. ' +\n 'Either a) remove colDef.autoHeight or b) remove maxBlocksInCache property. Purging has been disabled.';\n agGridCommunity._.doOnce(function () { return console.warn(message_2); }, 'storeFactory.maxBlocksInCache.autoRowHeightActive');\n return undefined;\n }\n return maxBlocksInCache;\n };\n StoreFactory.prototype.getBlockSize = function (storeType, userStoreParams) {\n if (storeType == 'full') {\n return undefined;\n }\n var blockSize = (userStoreParams && userStoreParams.cacheBlockSize != null)\n ? userStoreParams.cacheBlockSize\n : this.gridOptionsWrapper.getCacheBlockSize();\n if (blockSize != null && blockSize > 0) {\n return blockSize;\n }\n else {\n return 100;\n }\n };\n StoreFactory.prototype.getLevelSpecificParams = function (parentNode) {\n var callback = this.gridOptionsWrapper.getServerSideStoreParamsFunc();\n if (!callback) {\n return undefined;\n }\n var params = {\n level: parentNode.level + 1,\n parentRowNode: parentNode.level >= 0 ? parentNode : undefined,\n rowGroupColumns: this.columnModel.getRowGroupColumns(),\n pivotColumns: this.columnModel.getPivotColumns(),\n pivotMode: this.columnModel.isPivotMode()\n };\n return callback(params);\n };\n StoreFactory.prototype.getStoreType = function (storeParams) {\n var storeType = (storeParams && storeParams.storeType != null)\n ? storeParams.storeType\n : this.gridOptionsWrapper.getServerSideStoreType();\n switch (storeType) {\n case 'partial':\n case 'full':\n return storeType;\n case null:\n case undefined:\n return 'full';\n default:\n var serverTypes = ['full', 'partial'];\n var types = serverTypes.join(', ');\n console.warn(\"AG Grid: invalid Server Side Store Type \" + storeType + \", valid types are [\" + types + \"]\");\n return 'partial';\n }\n };\n __decorate$1M([\n agGridCommunity.Autowired('gridOptionsWrapper')\n ], StoreFactory.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1M([\n agGridCommunity.Autowired('columnModel')\n ], StoreFactory.prototype, \"columnModel\", void 0);\n StoreFactory = __decorate$1M([\n agGridCommunity.Bean('ssrmStoreFactory')\n ], StoreFactory);\n return StoreFactory;\n}());\n\nvar __decorate$1N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ListenerUtils = /** @class */ (function () {\n function ListenerUtils() {\n }\n ListenerUtils.prototype.isSortingWithValueColumn = function (changedColumnsInSort) {\n var valueColIds = this.columnModel.getValueColumns().map(function (col) { return col.getColId(); });\n for (var i = 0; i < changedColumnsInSort.length; i++) {\n if (valueColIds.indexOf(changedColumnsInSort[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n ListenerUtils.prototype.isSortingWithSecondaryColumn = function (changedColumnsInSort) {\n if (!this.columnModel.getSecondaryColumns()) {\n return false;\n }\n var secondaryColIds = this.columnModel.getSecondaryColumns().map(function (col) { return col.getColId(); });\n for (var i = 0; i < changedColumnsInSort.length; i++) {\n if (secondaryColIds.indexOf(changedColumnsInSort[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n __decorate$1N([\n agGridCommunity.Autowired('columnModel')\n ], ListenerUtils.prototype, \"columnModel\", void 0);\n ListenerUtils = __decorate$1N([\n agGridCommunity.Bean('ssrmListenerUtils')\n ], ListenerUtils);\n return ListenerUtils;\n}());\n\nvar ServerSideRowModelModule = {\n moduleName: agGridCommunity.ModuleNames.ServerSideRowModelModule,\n rowModels: { serverSide: ServerSideRowModel },\n beans: [ExpandListener, SortListener, StoreUtils, BlockUtils, NodeManager, TransactionManager,\n FilterListener, StoreFactory, ListenerUtils],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar NULL_SUBSTITUTE = '____';\nvar ClientSideValuesExtractor = /** @class */ (function () {\n function ClientSideValuesExtractor(rowModel, filterParams, caseFormat) {\n this.rowModel = rowModel;\n this.filterParams = filterParams;\n this.caseFormat = caseFormat;\n }\n ClientSideValuesExtractor.prototype.extractUniqueValues = function (predicate) {\n var _this = this;\n var values = {};\n var keyCreator = this.filterParams.colDef.keyCreator;\n var addValue = function (value) {\n // NOTE: We don't care about the keys later on (only values in the dictionary are\n // returned), so as long as we use a non-conflicting key for the `null` value this\n // will behave correctly.\n var valueKey = value != null ? _this.caseFormat(value) : NULL_SUBSTITUTE;\n if (valueKey && values[valueKey] == null) {\n values[valueKey] = value;\n }\n };\n this.rowModel.forEachLeafNode(function (node) {\n // only pull values from rows that have data. this means we skip filler group nodes.\n if (!node.data || !predicate(node)) {\n return;\n }\n var _a = _this.filterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n var value = _this.filterParams.valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: node.data,\n getValue: function (field) { return node.data[field]; },\n node: node,\n });\n if (keyCreator) {\n var params = {\n value: value,\n colDef: _this.filterParams.colDef,\n column: _this.filterParams.column,\n node: node,\n data: node.data,\n api: _this.filterParams.api,\n columnApi: _this.filterParams.columnApi,\n context: _this.filterParams.context\n };\n value = keyCreator(params);\n }\n value = agGridCommunity._.makeNull(value);\n if (value != null && Array.isArray(value)) {\n value.forEach(function (x) {\n var formatted = agGridCommunity._.toStringOrNull(agGridCommunity._.makeNull(x));\n addValue(formatted);\n });\n }\n else {\n addValue(agGridCommunity._.toStringOrNull(value));\n }\n });\n return agGridCommunity._.values(values);\n };\n return ClientSideValuesExtractor;\n}());\n\nvar SetFilterModelValuesType;\n(function (SetFilterModelValuesType) {\n SetFilterModelValuesType[SetFilterModelValuesType[\"PROVIDED_LIST\"] = 0] = \"PROVIDED_LIST\";\n SetFilterModelValuesType[SetFilterModelValuesType[\"PROVIDED_CALLBACK\"] = 1] = \"PROVIDED_CALLBACK\";\n SetFilterModelValuesType[SetFilterModelValuesType[\"TAKEN_FROM_GRID_VALUES\"] = 2] = \"TAKEN_FROM_GRID_VALUES\";\n})(SetFilterModelValuesType || (SetFilterModelValuesType = {}));\nvar NULL_SUBSTITUTE$1 = '____';\nvar SetValueModel = /** @class */ (function () {\n function SetValueModel(filterParams, setIsLoading, valueFormatterService, translate, caseFormat) {\n var _this = this;\n this.filterParams = filterParams;\n this.setIsLoading = setIsLoading;\n this.valueFormatterService = valueFormatterService;\n this.translate = translate;\n this.caseFormat = caseFormat;\n this.localEventService = new agGridCommunity.EventService();\n this.miniFilterText = null;\n // The lookup for a set is much faster than the lookup for an array, especially when the length of the array is\n // thousands of records long, so where lookups are important we use a set.\n /** Values provided to the filter for use. */\n this.providedValues = null;\n /** All possible values for the filter, sorted if required. */\n this.allValues = [];\n /** Remaining values when filters from other columns have been applied. */\n this.availableValues = new Set();\n /** All values that are currently displayed, after the mini-filter has been applied. */\n this.displayedValues = [];\n /** Values that have been selected for this filter. */\n this.selectedValues = new Set();\n this.initialised = false;\n var column = filterParams.column, colDef = filterParams.colDef, textFormatter = filterParams.textFormatter, doesRowPassOtherFilter = filterParams.doesRowPassOtherFilter, suppressSorting = filterParams.suppressSorting, comparator = filterParams.comparator, rowModel = filterParams.rowModel, values = filterParams.values, caseSensitive = filterParams.caseSensitive;\n this.column = column;\n this.formatter = textFormatter || agGridCommunity.TextFilter.DEFAULT_FORMATTER;\n this.doesRowPassOtherFilters = doesRowPassOtherFilter;\n this.suppressSorting = suppressSorting || false;\n this.comparator = comparator || colDef.comparator || agGridCommunity._.defaultComparator;\n if (rowModel.getType() === agGridCommunity.Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideValuesExtractor = new ClientSideValuesExtractor(rowModel, this.filterParams, this.caseFormat);\n }\n if (values == null) {\n this.valuesType = SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n }\n else {\n this.valuesType = Array.isArray(values) ?\n SetFilterModelValuesType.PROVIDED_LIST :\n SetFilterModelValuesType.PROVIDED_CALLBACK;\n this.providedValues = values;\n }\n this.updateAllValues().then(function (updatedValues) { return _this.resetSelectionState(updatedValues || []); });\n }\n SetValueModel.prototype.addEventListener = function (eventType, listener, async) {\n this.localEventService.addEventListener(eventType, listener, async);\n };\n SetValueModel.prototype.removeEventListener = function (eventType, listener, async) {\n this.localEventService.removeEventListener(eventType, listener, async);\n };\n /**\n * Re-fetches the values used in the filter from the value source.\n * If keepSelection is false, the filter selection will be reset to everything selected,\n * otherwise the current selection will be preserved.\n */\n SetValueModel.prototype.refreshValues = function () {\n var currentModel = this.getModel();\n this.updateAllValues();\n // ensure model is updated for new values\n return this.setModel(currentModel);\n };\n /**\n * Overrides the current values being used for the set filter.\n * If keepSelection is false, the filter selection will be reset to everything selected,\n * otherwise the current selection will be preserved.\n */\n SetValueModel.prototype.overrideValues = function (valuesToUse) {\n var _this = this;\n return new agGridCommunity.AgPromise(function (resolve) {\n // wait for any existing values to be populated before overriding\n _this.allValuesPromise.then(function () {\n _this.valuesType = SetFilterModelValuesType.PROVIDED_LIST;\n _this.providedValues = valuesToUse;\n _this.refreshValues().then(function () { return resolve(); });\n });\n });\n };\n SetValueModel.prototype.refreshAfterAnyFilterChanged = function () {\n var _this = this;\n return this.showAvailableOnly() ?\n this.allValuesPromise.then(function (values) { return _this.updateAvailableValues(values || []); }) :\n agGridCommunity.AgPromise.resolve();\n };\n SetValueModel.prototype.isInitialised = function () {\n return this.initialised;\n };\n SetValueModel.prototype.updateAllValues = function () {\n var _this = this;\n this.allValuesPromise = new agGridCommunity.AgPromise(function (resolve) {\n switch (_this.valuesType) {\n case SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES:\n case SetFilterModelValuesType.PROVIDED_LIST: {\n var values = _this.valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES ?\n _this.getValuesFromRows(false) :\n agGridCommunity._.values(_this.uniqueValues(agGridCommunity._.toStrings(_this.providedValues) || []));\n var sortedValues = _this.sortValues(values || []);\n _this.allValues = sortedValues;\n resolve(sortedValues);\n break;\n }\n case SetFilterModelValuesType.PROVIDED_CALLBACK: {\n _this.setIsLoading(true);\n var callback_1 = _this.providedValues;\n var _a = _this.filterParams, columnApi = _a.columnApi, api = _a.api, context = _a.context, column = _a.column, colDef = _a.colDef;\n var params_1 = {\n success: function (values) {\n var processedValues = agGridCommunity._.values(_this.uniqueValues(agGridCommunity._.toStrings(values) || []));\n _this.setIsLoading(false);\n var sortedValues = _this.sortValues(processedValues || []);\n _this.allValues = sortedValues;\n resolve(sortedValues);\n },\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n api: api,\n context: context,\n };\n window.setTimeout(function () { return callback_1(params_1); }, 0);\n break;\n }\n default:\n throw new Error('Unrecognised valuesType');\n }\n });\n this.allValuesPromise.then(function (values) { return _this.updateAvailableValues(values || []); }).then(function () { return _this.initialised = true; });\n return this.allValuesPromise;\n };\n SetValueModel.prototype.setValuesType = function (value) {\n this.valuesType = value;\n };\n SetValueModel.prototype.getValuesType = function () {\n return this.valuesType;\n };\n SetValueModel.prototype.isValueAvailable = function (value) {\n return this.availableValues.has(value);\n };\n SetValueModel.prototype.showAvailableOnly = function () {\n return this.valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n };\n SetValueModel.prototype.updateAvailableValues = function (allValues) {\n var availableValues = this.showAvailableOnly() ? this.sortValues(this.getValuesFromRows(true)) : allValues;\n this.availableValues = agGridCommunity._.convertToSet(availableValues);\n this.localEventService.dispatchEvent({ type: SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED });\n this.updateDisplayedValues();\n };\n SetValueModel.prototype.sortValues = function (values) {\n if (this.suppressSorting) {\n return values;\n }\n if (!this.filterParams.excelMode || values.indexOf(null) < 0) {\n return values.sort(this.comparator);\n }\n // ensure the blank value always appears last\n return values.filter(function (v) { return v != null; }).sort(this.comparator).concat(null);\n };\n SetValueModel.prototype.getValuesFromRows = function (removeUnavailableValues) {\n var _this = this;\n if (removeUnavailableValues === void 0) { removeUnavailableValues = false; }\n if (!this.clientSideValuesExtractor) {\n console.error('AG Grid: Set Filter cannot initialise because you are using a row model that does not contain all rows in the browser. Either use a different filter type, or configure Set Filter such that you provide it with values');\n return [];\n }\n var predicate = function (node) { return (!removeUnavailableValues || _this.doesRowPassOtherFilters(node)); };\n return this.clientSideValuesExtractor.extractUniqueValues(predicate);\n };\n /** Sets mini filter value. Returns true if it changed from last value, otherwise false. */\n SetValueModel.prototype.setMiniFilter = function (value) {\n value = agGridCommunity._.makeNull(value);\n if (this.miniFilterText === value) {\n //do nothing if filter has not changed\n return false;\n }\n this.miniFilterText = value;\n this.updateDisplayedValues();\n return true;\n };\n SetValueModel.prototype.getMiniFilter = function () {\n return this.miniFilterText;\n };\n SetValueModel.prototype.updateDisplayedValues = function () {\n var _this = this;\n // if no filter, just display all available values\n if (this.miniFilterText == null) {\n this.displayedValues = agGridCommunity._.values(this.availableValues);\n return;\n }\n // if filter present, we filter down the list\n this.displayedValues = [];\n // to allow for case insensitive searches, upper-case both filter text and value\n var formattedFilterText = this.caseFormat(this.formatter(this.miniFilterText) || '');\n var matchesFilter = function (valueToCheck) {\n return valueToCheck != null && _this.caseFormat(valueToCheck).indexOf(formattedFilterText) >= 0;\n };\n this.availableValues.forEach(function (value) {\n if (value == null) {\n if (_this.filterParams.excelMode && matchesFilter(_this.translate('blanks'))) {\n _this.displayedValues.push(value);\n }\n }\n else {\n var textFormatterValue = _this.formatter(value);\n // TODO: should this be applying the text formatter *after* the value formatter?\n var valueFormatterValue = _this.valueFormatterService.formatValue(_this.column, null, textFormatterValue, _this.filterParams.valueFormatter, false);\n if (matchesFilter(textFormatterValue) || matchesFilter(valueFormatterValue)) {\n _this.displayedValues.push(value);\n }\n }\n });\n };\n SetValueModel.prototype.getDisplayedValueCount = function () {\n return this.displayedValues.length;\n };\n SetValueModel.prototype.getDisplayedValue = function (index) {\n return this.displayedValues[index];\n };\n SetValueModel.prototype.hasSelections = function () {\n return this.filterParams.defaultToNothingSelected ?\n this.selectedValues.size > 0 :\n this.allValues.length !== this.selectedValues.size;\n };\n SetValueModel.prototype.getValues = function () {\n return this.allValues.slice();\n };\n SetValueModel.prototype.selectAllMatchingMiniFilter = function (clearExistingSelection) {\n var _this = this;\n if (clearExistingSelection === void 0) { clearExistingSelection = false; }\n if (this.miniFilterText == null) {\n // ensure everything is selected\n this.selectedValues = agGridCommunity._.convertToSet(this.allValues);\n }\n else {\n // ensure everything that matches the mini filter is selected\n if (clearExistingSelection) {\n this.selectedValues.clear();\n }\n this.displayedValues.forEach(function (value) { return _this.selectedValues.add(value); });\n }\n };\n SetValueModel.prototype.deselectAllMatchingMiniFilter = function () {\n var _this = this;\n if (this.miniFilterText == null) {\n // ensure everything is deselected\n this.selectedValues.clear();\n }\n else {\n // ensure everything that matches the mini filter is deselected\n this.displayedValues.forEach(function (value) { return _this.selectedValues.delete(value); });\n }\n };\n SetValueModel.prototype.selectValue = function (value) {\n this.selectedValues.add(value);\n };\n SetValueModel.prototype.deselectValue = function (value) {\n if (this.filterParams.excelMode && this.isEverythingVisibleSelected()) {\n // ensure we're starting from the correct \"everything selected\" state\n this.resetSelectionState(this.displayedValues);\n }\n this.selectedValues.delete(value);\n };\n SetValueModel.prototype.isValueSelected = function (value) {\n return this.selectedValues.has(value);\n };\n SetValueModel.prototype.isEverythingVisibleSelected = function () {\n var _this = this;\n return this.displayedValues.filter(function (it) { return _this.isValueSelected(it); }).length === this.displayedValues.length;\n };\n SetValueModel.prototype.isNothingVisibleSelected = function () {\n var _this = this;\n return this.displayedValues.filter(function (it) { return _this.isValueSelected(it); }).length === 0;\n };\n SetValueModel.prototype.getModel = function () {\n return this.hasSelections() ? agGridCommunity._.values(this.selectedValues) : null;\n };\n SetValueModel.prototype.setModel = function (model) {\n var _this = this;\n return this.allValuesPromise.then(function (values) {\n if (model == null) {\n _this.resetSelectionState(values || []);\n }\n else {\n // select all values from the model that exist in the filter\n _this.selectedValues.clear();\n var allValues_1 = _this.uniqueValues(values || []);\n model.forEach(function (value) {\n var allValue = allValues_1[_this.uniqueKey(value)];\n if (allValue !== undefined) {\n _this.selectedValues.add(allValue);\n }\n });\n }\n });\n };\n SetValueModel.prototype.uniqueValues = function (values) {\n var _this = this;\n // Honour case-sensitivity setting for matching purposes here, preserving original casing\n // in the selectedValues output.\n var uniqueValues = {};\n (values || []).forEach(function (rawValue) {\n var value = agGridCommunity._.makeNull(rawValue);\n var key = _this.uniqueKey(value);\n if (uniqueValues[key] === undefined) {\n uniqueValues[key] = value;\n }\n });\n return uniqueValues;\n };\n SetValueModel.prototype.uniqueKey = function (v) {\n return v == null ? NULL_SUBSTITUTE$1 : this.caseFormat(v);\n };\n SetValueModel.prototype.resetSelectionState = function (values) {\n if (this.filterParams.defaultToNothingSelected) {\n this.selectedValues.clear();\n }\n else {\n this.selectedValues = agGridCommunity._.convertToSet(values || []);\n }\n };\n SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED = 'availableValuesChanged';\n return SetValueModel;\n}());\n\nvar __extends$3l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetFilterListItem = /** @class */ (function (_super) {\n __extends$3l(SetFilterListItem, _super);\n function SetFilterListItem(value, params, translate, isSelected) {\n var _this = _super.call(this, SetFilterListItem.TEMPLATE) || this;\n _this.value = value;\n _this.params = params;\n _this.translate = translate;\n _this.isSelected = isSelected;\n return _this;\n }\n SetFilterListItem.prototype.init = function () {\n var _this = this;\n this.render();\n this.eCheckbox.setValue(this.isSelected, true);\n this.eCheckbox.setDisabled(!!this.params.readOnly);\n if (!!this.params.readOnly) {\n // Don't add event listeners if we're read-only.\n return;\n }\n this.eCheckbox.onValueChange(function (value) {\n var parsedValue = value || false;\n _this.isSelected = parsedValue;\n var event = {\n type: SetFilterListItem.EVENT_SELECTION_CHANGED,\n isSelected: parsedValue,\n };\n _this.dispatchEvent(event);\n });\n };\n SetFilterListItem.prototype.toggleSelected = function () {\n if (!!this.params.readOnly) {\n return;\n }\n this.isSelected = !this.isSelected;\n this.eCheckbox.setValue(this.isSelected);\n };\n SetFilterListItem.prototype.render = function () {\n var column = this.params.column;\n var value = this.value;\n var formattedValue = null;\n if (typeof value === 'function') {\n value = value();\n }\n else {\n formattedValue = this.getFormattedValue(this.params, column, value);\n }\n if (this.params.showTooltips) {\n var tooltipValue = formattedValue != null ? formattedValue : value;\n this.setTooltip(tooltipValue);\n }\n var params = {\n value: value,\n valueFormatted: formattedValue,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n colDef: this.params.colDef,\n column: this.params.column,\n };\n this.renderCell(params);\n };\n SetFilterListItem.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'setFilterValue';\n res.colDef = this.getComponentHolder();\n return res;\n };\n SetFilterListItem.prototype.getFormattedValue = function (filterParams, column, value) {\n var formatter = filterParams && filterParams.valueFormatter;\n return this.valueFormatterService.formatValue(column, null, value, formatter, false);\n };\n SetFilterListItem.prototype.renderCell = function (params) {\n var _this = this;\n var compDetails = this.userComponentFactory.getSetFilterCellRendererDetails(this.params, params);\n var cellRendererPromise = compDetails ? compDetails.newAgStackInstance() : undefined;\n if (cellRendererPromise == null) {\n var valueToRender = params.valueFormatted == null ? params.value : params.valueFormatted;\n this.eCheckbox.setLabel(valueToRender == null ? this.translate('blanks') : valueToRender);\n return;\n }\n cellRendererPromise.then(function (component) {\n if (component) {\n _this.eCheckbox.setLabel(component.getGui());\n _this.addDestroyFunc(function () { return _this.destroyBean(component); });\n }\n });\n };\n SetFilterListItem.prototype.getComponentHolder = function () {\n return this.params.column.getColDef();\n };\n SetFilterListItem.EVENT_SELECTION_CHANGED = 'selectionChanged';\n SetFilterListItem.TEMPLATE = \"\\n
\\n \\n
\";\n __decorate$1O([\n agGridCommunity.Autowired('valueFormatterService')\n ], SetFilterListItem.prototype, \"valueFormatterService\", void 0);\n __decorate$1O([\n agGridCommunity.Autowired('userComponentFactory')\n ], SetFilterListItem.prototype, \"userComponentFactory\", void 0);\n __decorate$1O([\n agGridCommunity.RefSelector('eCheckbox')\n ], SetFilterListItem.prototype, \"eCheckbox\", void 0);\n __decorate$1O([\n agGridCommunity.PostConstruct\n ], SetFilterListItem.prototype, \"init\", null);\n return SetFilterListItem;\n}(agGridCommunity.Component));\n\nvar DEFAULT_LOCALE_TEXT = {\n loadingOoo: 'Loading...',\n blanks: '(Blanks)',\n searchOoo: 'Search...',\n selectAll: '(Select All)',\n selectAllSearchResults: '(Select All Search Results)',\n noMatches: 'No matches.'\n};\n\nvar __extends$3m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetFilter = /** @class */ (function (_super) {\n __extends$3m(SetFilter, _super);\n function SetFilter() {\n var _this = _super.call(this, 'setFilter') || this;\n _this.valueModel = null;\n _this.setFilterParams = null;\n _this.virtualList = null;\n _this.caseSensitive = false;\n // To make the filtering super fast, we store the values in an object, and check for the boolean value.\n // Although Set would be a more natural choice of data structure, its performance across browsers is\n // significantly worse than using an object: https://jsbench.me/hdk91jbw1h/\n _this.appliedModelValues = null;\n return _this;\n }\n SetFilter.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.positionableFeature = new agGridCommunity.PositionableFeature(this.eSetFilterList, { forcePopupParentAsOffsetParent: true });\n this.createBean(this.positionableFeature);\n };\n // unlike the simple filters, nothing in the set filter UI shows/hides.\n // maybe this method belongs in abstractSimpleFilter???\n SetFilter.prototype.updateUiVisibility = function () { };\n SetFilter.prototype.createBodyTemplate = function () {\n return /* html */ \"\\n
\\n
\" + this.translateForSetFilter('loadingOoo') + \"
\\n \\n
\" + this.translateForSetFilter('noMatches') + \"
\\n
\\n
\";\n };\n SetFilter.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n if (e.defaultPrevented) {\n return;\n }\n switch (e.key) {\n case agGridCommunity.KeyCode.SPACE:\n this.handleKeySpace(e);\n break;\n case agGridCommunity.KeyCode.ENTER:\n this.handleKeyEnter(e);\n break;\n }\n };\n SetFilter.prototype.handleKeySpace = function (e) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (!this.eSetFilterList.contains(eDocument.activeElement) || !this.virtualList) {\n return;\n }\n var currentItem = this.virtualList.getLastFocusedRow();\n if (currentItem == null) {\n return;\n }\n var component = this.virtualList.getComponentAt(currentItem);\n if (component == null) {\n return;\n }\n e.preventDefault();\n var readOnly = (this.setFilterParams || {}).readOnly;\n if (!!readOnly) {\n return;\n }\n component.toggleSelected();\n };\n SetFilter.prototype.handleKeyEnter = function (e) {\n if (!this.setFilterParams) {\n return;\n }\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (!excelMode || !!readOnly) {\n return;\n }\n e.preventDefault();\n // in Excel Mode, hitting Enter is the same as pressing the Apply button\n this.onBtApply(false, false, e);\n if (this.setFilterParams.excelMode === 'mac') {\n // in Mac version, select all the input text\n this.eMiniFilter.getInputElement().select();\n }\n };\n SetFilter.prototype.getCssIdentifier = function () {\n return 'set-filter';\n };\n SetFilter.prototype.setModelAndRefresh = function (values) {\n var _this = this;\n return this.valueModel ? this.valueModel.setModel(values).then(function () { return _this.refresh(); }) : agGridCommunity.AgPromise.resolve();\n };\n SetFilter.prototype.resetUiToDefaults = function () {\n this.setMiniFilter(null);\n return this.setModelAndRefresh(null);\n };\n SetFilter.prototype.setModelIntoUi = function (model) {\n this.setMiniFilter(null);\n var values = model == null ? null : model.values;\n return this.setModelAndRefresh(values);\n };\n SetFilter.prototype.getModelFromUi = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var values = this.valueModel.getModel();\n if (!values) {\n return null;\n }\n return { values: values, filterType: this.getFilterType() };\n };\n SetFilter.prototype.getFilterType = function () {\n return 'set';\n };\n SetFilter.prototype.getValueModel = function () {\n return this.valueModel;\n };\n SetFilter.prototype.areModelsEqual = function (a, b) {\n // both are missing\n if (a == null && b == null) {\n return true;\n }\n return a != null && b != null && agGridCommunity._.areEqual(a.values, b.values);\n };\n SetFilter.prototype.setParams = function (params) {\n var _this = this;\n this.applyExcelModeOptions(params);\n _super.prototype.setParams.call(this, params);\n this.setFilterParams = params;\n this.caseSensitive = params.caseSensitive || false;\n this.valueModel = new SetValueModel(params, function (loading) { return _this.showOrHideLoadingScreen(loading); }, this.valueFormatterService, function (key) { return _this.translateForSetFilter(key); }, function (v) { return _this.caseFormat(v); });\n this.initialiseFilterBodyUi();\n if (params.rowModel.getType() === agGridCommunity.Constants.ROW_MODEL_TYPE_CLIENT_SIDE &&\n !params.values) {\n this.addEventListenersForDataChanges();\n }\n };\n SetFilter.prototype.applyExcelModeOptions = function (params) {\n // apply default options to match Excel behaviour, unless they have already been specified\n if (params.excelMode === 'windows') {\n if (!params.buttons) {\n params.buttons = ['apply', 'cancel'];\n }\n if (params.closeOnApply == null) {\n params.closeOnApply = true;\n }\n }\n else if (params.excelMode === 'mac') {\n if (!params.buttons) {\n params.buttons = ['reset'];\n }\n if (params.applyMiniFilterWhileTyping == null) {\n params.applyMiniFilterWhileTyping = true;\n }\n if (params.debounceMs == null) {\n params.debounceMs = 500;\n }\n }\n };\n SetFilter.prototype.addEventListenersForDataChanges = function () {\n var _this = this;\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_ROW_DATA_UPDATED, function () { return _this.syncAfterDataChange(); });\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_CELL_VALUE_CHANGED, function (event) {\n // only interested in changes to do with this column\n if (_this.setFilterParams && event.column === _this.setFilterParams.column) {\n _this.syncAfterDataChange();\n }\n });\n };\n SetFilter.prototype.syncAfterDataChange = function (refreshValues) {\n var _this = this;\n if (refreshValues === void 0) { refreshValues = true; }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var promise = agGridCommunity.AgPromise.resolve();\n if (refreshValues) {\n promise = this.valueModel.refreshValues();\n }\n return promise.then(function () {\n _this.refresh();\n _this.onBtApply(false, true);\n });\n };\n SetFilter.prototype.showOrHideLoadingScreen = function (isLoading) {\n agGridCommunity._.setDisplayed(this.eFilterLoading, isLoading);\n };\n SetFilter.prototype.initialiseFilterBodyUi = function () {\n this.initVirtualList();\n this.initMiniFilter();\n };\n SetFilter.prototype.initVirtualList = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var filterListName = translate('ariaFilterList', 'Filter List');\n var virtualList = this.virtualList = this.createBean(new agGridCommunity.VirtualList('filter', 'listbox', filterListName));\n var eSetFilterList = this.getRefElement('eSetFilterList');\n if (eSetFilterList) {\n eSetFilterList.appendChild(virtualList.getGui());\n }\n var cellHeight = this.setFilterParams.cellHeight;\n if (cellHeight != null) {\n virtualList.setRowHeight(cellHeight);\n }\n virtualList.setComponentCreator(function (value) { return _this.createSetListItem(value); });\n var model;\n if (this.setFilterParams.suppressSelectAll) {\n model = new ModelWrapper(this.valueModel);\n }\n else {\n model = new ModelWrapperWithSelectAll(this.valueModel, function () { return _this.isSelectAllSelected(); });\n }\n virtualList.setModel(model);\n };\n SetFilter.prototype.getSelectAllLabel = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var key = this.valueModel.getMiniFilter() == null || !this.setFilterParams.excelMode ?\n 'selectAll' : 'selectAllSearchResults';\n return this.translateForSetFilter(key);\n };\n SetFilter.prototype.createSetListItem = function (value) {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var listItem;\n if (value === SetFilter.SELECT_ALL_VALUE) {\n listItem = this.createBean(new SetFilterListItem(function () { return _this.getSelectAllLabel(); }, this.setFilterParams, function (key) { return _this.translateForSetFilter(key); }, this.isSelectAllSelected()));\n listItem.addEventListener(SetFilterListItem.EVENT_SELECTION_CHANGED, function (e) { return _this.onSelectAll(e.isSelected); });\n return listItem;\n }\n listItem = this.createBean(new SetFilterListItem(value, this.setFilterParams, function (key) { return _this.translateForSetFilter(key); }, this.valueModel.isValueSelected(value)));\n listItem.addEventListener(SetFilterListItem.EVENT_SELECTION_CHANGED, function (e) { return _this.onItemSelected(value, e.isSelected); });\n return listItem;\n };\n SetFilter.prototype.initMiniFilter = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var _a = this, eMiniFilter = _a.eMiniFilter, gridOptionsWrapper = _a.gridOptionsWrapper;\n var translate = gridOptionsWrapper.getLocaleTextFunc();\n eMiniFilter.setDisplayed(!this.setFilterParams.suppressMiniFilter);\n eMiniFilter.setValue(this.valueModel.getMiniFilter());\n eMiniFilter.onValueChange(function () { return _this.onMiniFilterInput(); });\n eMiniFilter.setInputAriaLabel(translate('ariaSearchFilterValues', 'Search filter values'));\n this.addManagedListener(eMiniFilter.getInputElement(), 'keypress', function (e) { return _this.onMiniFilterKeyPress(e); });\n };\n // we need to have the GUI attached before we can draw the virtual rows, as the\n // virtual row logic needs info about the GUI state\n SetFilter.prototype.afterGuiAttached = function (params) {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n _super.prototype.afterGuiAttached.call(this, params);\n if (this.setFilterParams.excelMode) {\n this.resetUiToActiveModel();\n this.showOrHideResults();\n }\n this.refreshVirtualList();\n var eMiniFilter = this.eMiniFilter;\n eMiniFilter.setInputPlaceholder(this.translateForSetFilter('searchOoo'));\n if (!params || !params.suppressFocus) {\n eMiniFilter.getFocusableElement().focus();\n }\n var resizable = !!(params && params.container === 'floatingFilter');\n var resizableObject;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n resizableObject = { bottom: true, bottomLeft: true, left: true };\n }\n else {\n resizableObject = { bottom: true, bottomRight: true, right: true };\n }\n if (resizable) {\n this.positionableFeature.restoreLastSize();\n this.positionableFeature.setResizable(resizableObject);\n }\n else {\n this.positionableFeature.removeSizeFromEl();\n this.positionableFeature.setResizable(false);\n }\n };\n SetFilter.prototype.applyModel = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (this.setFilterParams.excelMode && this.valueModel.isEverythingVisibleSelected()) {\n // In Excel, if the filter is applied with all visible values selected, then any active filter on the\n // column is removed. This ensures the filter is removed in this situation.\n this.valueModel.selectAllMatchingMiniFilter();\n }\n var result = _super.prototype.applyModel.call(this);\n // keep appliedModelValues in sync with the applied model\n var appliedModel = this.getModel();\n if (appliedModel) {\n this.appliedModelValues = appliedModel.values.reduce(function (values, value) {\n values[_this.caseFormat(String(value))] = true;\n return values;\n }, {});\n }\n else {\n this.appliedModelValues = null;\n }\n return result;\n };\n SetFilter.prototype.isModelValid = function (model) {\n return this.setFilterParams && this.setFilterParams.excelMode ? model == null || model.values.length > 0 : true;\n };\n SetFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n if (!this.setFilterParams || !this.valueModel || !this.appliedModelValues) {\n return true;\n }\n var node = params.node, data = params.data;\n var _a = this.setFilterParams, valueGetter = _a.valueGetter, keyCreator = _a.colDef.keyCreator, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n var value = valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: data,\n getValue: function (field) { return data[field]; },\n node: node,\n });\n if (keyCreator) {\n var keyParams = {\n value: value,\n colDef: colDef,\n column: column,\n node: node,\n data: data,\n api: api,\n columnApi: columnApi,\n context: context,\n };\n value = keyCreator(keyParams);\n }\n value = agGridCommunity._.makeNull(value);\n if (Array.isArray(value)) {\n return value.some(function (v) { return _this.appliedModelValues[_this.caseFormat(String(agGridCommunity._.makeNull(v)))] === true; });\n }\n // Comparing against a value performs better than just checking for undefined\n // https://jsbench.me/hdk91jbw1h/\n return this.appliedModelValues[this.caseFormat(String(value))] === true;\n };\n SetFilter.prototype.onNewRowsLoaded = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var valuesType = this.valueModel.getValuesType();\n this.syncAfterDataChange(valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES);\n };\n //noinspection JSUnusedGlobalSymbols\n /**\n * Public method provided so the user can change the value of the filter once\n * the filter has been already started\n * @param options The options to use.\n */\n SetFilter.prototype.setFilterValues = function (options) {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.valueModel.overrideValues(options).then(function () {\n _this.refresh();\n _this.onUiChanged();\n });\n };\n //noinspection JSUnusedGlobalSymbols\n /**\n * Public method provided so the user can reset the values of the filter once that it has started.\n */\n SetFilter.prototype.resetFilterValues = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.valueModel.setValuesType(SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES);\n this.syncAfterDataChange(true);\n };\n SetFilter.prototype.refreshFilterValues = function () {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n // the model is still being initialised\n if (!this.valueModel.isInitialised()) {\n return;\n }\n this.valueModel.refreshValues().then(function () {\n _this.refresh();\n _this.onUiChanged();\n });\n };\n SetFilter.prototype.onAnyFilterChanged = function () {\n var _this = this;\n // don't block the current action when updating the values for this filter\n setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n if (!_this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n _this.valueModel.refreshAfterAnyFilterChanged().then(function () { return _this.refresh(); });\n }, 0);\n };\n SetFilter.prototype.onMiniFilterInput = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.valueModel.setMiniFilter(this.eMiniFilter.getValue())) {\n return;\n }\n var _a = this.setFilterParams || {}, applyMiniFilterWhileTyping = _a.applyMiniFilterWhileTyping, readOnly = _a.readOnly;\n if (!readOnly && applyMiniFilterWhileTyping) {\n this.filterOnAllVisibleValues(false);\n }\n else {\n this.updateUiAfterMiniFilterChange();\n }\n };\n SetFilter.prototype.updateUiAfterMiniFilterChange = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (excelMode == null || !!readOnly) {\n this.refresh();\n }\n else if (this.valueModel.getMiniFilter() == null) {\n this.resetUiToActiveModel();\n }\n else {\n this.valueModel.selectAllMatchingMiniFilter(true);\n this.refresh();\n this.onUiChanged();\n }\n this.showOrHideResults();\n };\n SetFilter.prototype.showOrHideResults = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var hideResults = this.valueModel.getMiniFilter() != null && this.valueModel.getDisplayedValueCount() < 1;\n agGridCommunity._.setDisplayed(this.eNoMatches, hideResults);\n agGridCommunity._.setDisplayed(this.eSetFilterList, !hideResults);\n };\n SetFilter.prototype.resetUiToActiveModel = function () {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.eMiniFilter.setValue(null, true);\n this.valueModel.setMiniFilter(null);\n this.setModelIntoUi(this.getModel()).then(function () { return _this.onUiChanged(false, 'prevent'); });\n };\n SetFilter.prototype.onMiniFilterKeyPress = function (e) {\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (e.key === agGridCommunity.KeyCode.ENTER && !excelMode && !readOnly) {\n this.filterOnAllVisibleValues();\n }\n };\n SetFilter.prototype.filterOnAllVisibleValues = function (applyImmediately) {\n if (applyImmediately === void 0) { applyImmediately = true; }\n var readOnly = (this.setFilterParams || {}).readOnly;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!!readOnly) {\n throw new Error('Unable to filter in readOnly mode.');\n }\n this.valueModel.selectAllMatchingMiniFilter(true);\n this.refresh();\n this.onUiChanged(false, applyImmediately ? 'immediately' : 'debounce');\n this.showOrHideResults();\n };\n SetFilter.prototype.focusRowIfAlive = function (rowIndex) {\n var _this = this;\n if (rowIndex == null) {\n return;\n }\n window.setTimeout(function () {\n if (!_this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (_this.isAlive()) {\n _this.virtualList.focusRow(rowIndex);\n }\n }, 0);\n };\n SetFilter.prototype.onSelectAll = function (isSelected) {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (isSelected) {\n this.valueModel.selectAllMatchingMiniFilter();\n }\n else {\n this.valueModel.deselectAllMatchingMiniFilter();\n }\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.refresh();\n this.onUiChanged();\n this.focusRowIfAlive(focusedRow);\n };\n SetFilter.prototype.onItemSelected = function (value, isSelected) {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (isSelected) {\n this.valueModel.selectValue(value);\n }\n else {\n this.valueModel.deselectValue(value);\n }\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.refresh();\n this.onUiChanged();\n this.focusRowIfAlive(focusedRow);\n };\n SetFilter.prototype.setMiniFilter = function (newMiniFilter) {\n this.eMiniFilter.setValue(newMiniFilter);\n this.onMiniFilterInput();\n };\n SetFilter.prototype.getMiniFilter = function () {\n return this.valueModel ? this.valueModel.getMiniFilter() : null;\n };\n SetFilter.prototype.refresh = function () {\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n this.virtualList.refresh();\n };\n SetFilter.prototype.getValues = function () {\n return this.valueModel ? this.valueModel.getValues() : [];\n };\n SetFilter.prototype.refreshVirtualList = function () {\n if (this.setFilterParams && this.setFilterParams.refreshValuesOnOpen) {\n this.refreshFilterValues();\n }\n else {\n this.refresh();\n }\n };\n SetFilter.prototype.translateForSetFilter = function (key) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n return translate(key, DEFAULT_LOCALE_TEXT[key]);\n };\n SetFilter.prototype.isSelectAllSelected = function () {\n if (!this.setFilterParams || !this.valueModel) {\n return false;\n }\n if (!this.setFilterParams.defaultToNothingSelected) {\n // everything selected by default\n if (this.valueModel.hasSelections() && this.valueModel.isNothingVisibleSelected()) {\n return false;\n }\n if (this.valueModel.isEverythingVisibleSelected()) {\n return true;\n }\n }\n else {\n // nothing selected by default\n if (this.valueModel.hasSelections() && this.valueModel.isEverythingVisibleSelected()) {\n return true;\n }\n if (this.valueModel.isNothingVisibleSelected()) {\n return false;\n }\n }\n // returning `undefined` means the checkbox status is indeterminate.\n return undefined;\n };\n SetFilter.prototype.destroy = function () {\n if (this.virtualList != null) {\n this.virtualList.destroy();\n this.virtualList = null;\n }\n _super.prototype.destroy.call(this);\n };\n SetFilter.prototype.caseFormat = function (valueToFormat) {\n if (valueToFormat == null || typeof valueToFormat !== 'string') {\n return valueToFormat;\n }\n return this.caseSensitive ? valueToFormat : valueToFormat.toUpperCase();\n };\n SetFilter.SELECT_ALL_VALUE = '__AG_SELECT_ALL__';\n __decorate$1P([\n agGridCommunity.RefSelector('eMiniFilter')\n ], SetFilter.prototype, \"eMiniFilter\", void 0);\n __decorate$1P([\n agGridCommunity.RefSelector('eFilterLoading')\n ], SetFilter.prototype, \"eFilterLoading\", void 0);\n __decorate$1P([\n agGridCommunity.RefSelector('eSetFilterList')\n ], SetFilter.prototype, \"eSetFilterList\", void 0);\n __decorate$1P([\n agGridCommunity.RefSelector('eFilterNoMatches')\n ], SetFilter.prototype, \"eNoMatches\", void 0);\n __decorate$1P([\n agGridCommunity.Autowired('valueFormatterService')\n ], SetFilter.prototype, \"valueFormatterService\", void 0);\n return SetFilter;\n}(agGridCommunity.ProvidedFilter));\nvar ModelWrapper = /** @class */ (function () {\n function ModelWrapper(model) {\n this.model = model;\n }\n ModelWrapper.prototype.getRowCount = function () {\n return this.model.getDisplayedValueCount();\n };\n ModelWrapper.prototype.getRow = function (index) {\n return this.model.getDisplayedValue(index);\n };\n ModelWrapper.prototype.isRowSelected = function (index) {\n return this.model.isValueSelected(this.getRow(index));\n };\n return ModelWrapper;\n}());\nvar ModelWrapperWithSelectAll = /** @class */ (function () {\n function ModelWrapperWithSelectAll(model, isSelectAllSelected) {\n this.model = model;\n this.isSelectAllSelected = isSelectAllSelected;\n }\n ModelWrapperWithSelectAll.prototype.getRowCount = function () {\n return this.model.getDisplayedValueCount() + 1;\n };\n ModelWrapperWithSelectAll.prototype.getRow = function (index) {\n return index === 0 ? SetFilter.SELECT_ALL_VALUE : this.model.getDisplayedValue(index - 1);\n };\n ModelWrapperWithSelectAll.prototype.isRowSelected = function (index) {\n return index === 0 ? this.isSelectAllSelected() : this.model.isValueSelected(this.getRow(index));\n };\n return ModelWrapperWithSelectAll;\n}());\n\nvar __extends$3n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetFloatingFilterComp = /** @class */ (function (_super) {\n __extends$3n(SetFloatingFilterComp, _super);\n function SetFloatingFilterComp() {\n var _this = _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n _this.availableValuesListenerAdded = false;\n return _this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SetFloatingFilterComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n SetFloatingFilterComp.prototype.init = function (params) {\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterText\n .setDisabled(true)\n .setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'))\n .addGuiEventListener('click', function () { return params.showParentFilter(); });\n this.params = params;\n };\n SetFloatingFilterComp.prototype.onParentModelChanged = function (parentModel) {\n this.updateFloatingFilterText(parentModel);\n };\n SetFloatingFilterComp.prototype.parentSetFilterInstance = function (cb) {\n this.params.parentFilterInstance(function (filter) {\n if (!(filter instanceof SetFilter)) {\n throw new Error('AG Grid - SetFloatingFilter expects SetFilter as it\\'s parent');\n }\n cb(filter);\n });\n };\n SetFloatingFilterComp.prototype.addAvailableValuesListener = function () {\n var _this = this;\n this.parentSetFilterInstance(function (setFilter) {\n var setValueModel = setFilter.getValueModel();\n if (!setValueModel) {\n return;\n }\n // unlike other filters, what we show in the floating filter can be different, even\n // if another filter changes. this is due to how set filter restricts its values based\n // on selections in other filters, e.g. if you filter Language to English, then the set filter\n // on Country will only show English speaking countries. Thus the list of items to show\n // in the floating filter can change.\n _this.addManagedListener(setValueModel, SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED, function () { return _this.updateFloatingFilterText(); });\n });\n this.availableValuesListenerAdded = true;\n };\n SetFloatingFilterComp.prototype.updateFloatingFilterText = function (parentModel) {\n var _this = this;\n if (!this.availableValuesListenerAdded) {\n this.addAvailableValuesListener();\n }\n this.parentSetFilterInstance(function (setFilter) {\n var values = (parentModel || setFilter.getModel() || {}).values;\n var valueModel = setFilter.getValueModel();\n if (values == null || valueModel == null) {\n _this.eFloatingFilterText.setValue('');\n return;\n }\n var localeTextFunc = _this.gridOptionsWrapper.getLocaleTextFunc();\n var availableValues = values.filter(function (v) { return valueModel.isValueAvailable(v); });\n // format all the values, if a formatter is provided\n var formattedValues = availableValues.map(function (value) {\n var _a = _this.params, column = _a.column, filterParams = _a.filterParams;\n var formattedValue = _this.valueFormatterService.formatValue(column, null, value, filterParams.valueFormatter, false);\n var valueToRender = formattedValue != null ? formattedValue : value;\n return valueToRender == null ? localeTextFunc('blanks', DEFAULT_LOCALE_TEXT.blanks) : valueToRender;\n });\n var arrayToDisplay = formattedValues.length > 10 ? formattedValues.slice(0, 10).concat('...') : formattedValues;\n var valuesString = \"(\" + formattedValues.length + \") \" + arrayToDisplay.join(',');\n _this.eFloatingFilterText.setValue(valuesString);\n });\n };\n __decorate$1Q([\n agGridCommunity.RefSelector('eFloatingFilterText')\n ], SetFloatingFilterComp.prototype, \"eFloatingFilterText\", void 0);\n __decorate$1Q([\n agGridCommunity.Autowired('valueFormatterService')\n ], SetFloatingFilterComp.prototype, \"valueFormatterService\", void 0);\n __decorate$1Q([\n agGridCommunity.Autowired('columnModel')\n ], SetFloatingFilterComp.prototype, \"columnModel\", void 0);\n return SetFloatingFilterComp;\n}(agGridCommunity.Component));\n\nvar SetFilterModule = {\n moduleName: agGridCommunity.ModuleNames.SetFilterModule,\n beans: [],\n userComponents: [\n { componentName: 'agSetColumnFilter', componentClass: SetFilter },\n { componentName: 'agSetColumnFloatingFilter', componentClass: SetFloatingFilterComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$3o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StatusBarService = /** @class */ (function (_super) {\n __extends$3o(StatusBarService, _super);\n // tslint:disable-next-line\n function StatusBarService() {\n var _this = _super.call(this) || this;\n _this.allComponents = {};\n return _this;\n }\n StatusBarService.prototype.registerStatusPanel = function (key, component) {\n this.allComponents[key] = component;\n };\n StatusBarService.prototype.getStatusPanel = function (key) {\n return this.allComponents[key];\n };\n StatusBarService = __decorate$1R([\n agGridCommunity.Bean('statusBarService')\n ], StatusBarService);\n return StatusBarService;\n}(agGridCommunity.BeanStub));\n\nvar __extends$3p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StatusBar = /** @class */ (function (_super) {\n __extends$3p(StatusBar, _super);\n function StatusBar() {\n return _super.call(this, StatusBar.TEMPLATE) || this;\n }\n StatusBar.prototype.postConstruct = function () {\n if (this.gridOptions.statusBar && this.gridOptions.statusBar.statusPanels) {\n var leftStatusPanelComponents = this.gridOptions.statusBar.statusPanels\n .filter(function (componentConfig) { return componentConfig.align === 'left'; });\n this.createAndRenderComponents(leftStatusPanelComponents, this.eStatusBarLeft);\n var centerStatusPanelComponents = this.gridOptions.statusBar.statusPanels\n .filter(function (componentConfig) { return componentConfig.align === 'center'; });\n this.createAndRenderComponents(centerStatusPanelComponents, this.eStatusBarCenter);\n var rightStatusPanelComponents = this.gridOptions.statusBar.statusPanels\n .filter(function (componentConfig) { return (!componentConfig.align || componentConfig.align === 'right'); });\n this.createAndRenderComponents(rightStatusPanelComponents, this.eStatusBarRight);\n }\n else {\n this.setDisplayed(false);\n }\n };\n StatusBar.prototype.createAndRenderComponents = function (statusBarComponents, ePanelComponent) {\n var _this = this;\n var componentDetails = [];\n statusBarComponents.forEach(function (componentConfig) {\n var params = {};\n var compDetails = _this.userComponentFactory.getStatusPanelCompDetails(componentConfig, params);\n var promise = compDetails.newAgStackInstance();\n if (!promise) {\n return;\n }\n componentDetails.push({\n // default to the component name if no key supplied\n key: componentConfig.key || componentConfig.statusPanel,\n promise: promise\n });\n });\n agGridCommunity.AgPromise.all(componentDetails.map(function (details) { return details.promise; }))\n .then(function () {\n componentDetails.forEach(function (componentDetail) {\n componentDetail.promise.then(function (component) {\n var destroyFunc = function () {\n _this.getContext().destroyBean(component);\n };\n if (_this.isAlive()) {\n _this.statusBarService.registerStatusPanel(componentDetail.key, component);\n ePanelComponent.appendChild(component.getGui());\n _this.addDestroyFunc(destroyFunc);\n }\n else {\n destroyFunc();\n }\n });\n });\n });\n };\n StatusBar.TEMPLATE = \"
\\n
\\n
\\n
\\n
\";\n __decorate$1S([\n agGridCommunity.Autowired('gridOptions')\n ], StatusBar.prototype, \"gridOptions\", void 0);\n __decorate$1S([\n agGridCommunity.Autowired('userComponentFactory')\n ], StatusBar.prototype, \"userComponentFactory\", void 0);\n __decorate$1S([\n agGridCommunity.Autowired('statusBarService')\n ], StatusBar.prototype, \"statusBarService\", void 0);\n __decorate$1S([\n agGridCommunity.RefSelector('eStatusBarLeft')\n ], StatusBar.prototype, \"eStatusBarLeft\", void 0);\n __decorate$1S([\n agGridCommunity.RefSelector('eStatusBarCenter')\n ], StatusBar.prototype, \"eStatusBarCenter\", void 0);\n __decorate$1S([\n agGridCommunity.RefSelector('eStatusBarRight')\n ], StatusBar.prototype, \"eStatusBarRight\", void 0);\n __decorate$1S([\n agGridCommunity.PostConstruct\n ], StatusBar.prototype, \"postConstruct\", null);\n return StatusBar;\n}(agGridCommunity.Component));\n\nvar __extends$3q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NameValueComp = /** @class */ (function (_super) {\n __extends$3q(NameValueComp, _super);\n function NameValueComp() {\n return _super.call(this, NameValueComp.TEMPLATE) || this;\n }\n NameValueComp.prototype.setLabel = function (key, defaultValue) {\n // we want to hide until the first value comes in\n this.setDisplayed(false);\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eLabel.innerHTML = localeTextFunc(key, defaultValue);\n };\n NameValueComp.prototype.setValue = function (value) {\n this.eValue.innerHTML = value;\n };\n NameValueComp.TEMPLATE = \"
\\n : \\n \\n
\";\n __decorate$1T([\n agGridCommunity.RefSelector('eLabel')\n ], NameValueComp.prototype, \"eLabel\", void 0);\n __decorate$1T([\n agGridCommunity.RefSelector('eValue')\n ], NameValueComp.prototype, \"eValue\", void 0);\n return NameValueComp;\n}(agGridCommunity.Component));\n\nvar __extends$3r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TotalAndFilteredRowsComp = /** @class */ (function (_super) {\n __extends$3r(TotalAndFilteredRowsComp, _super);\n function TotalAndFilteredRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TotalAndFilteredRowsComp.prototype.postConstruct = function () {\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agTotalAndFilteredRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.setLabel('totalAndFilteredRows', 'Rows');\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-total-and-filtered-row-count');\n this.setDisplayed(true);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_MODEL_UPDATED, this.onDataChanged.bind(this));\n this.onDataChanged();\n };\n TotalAndFilteredRowsComp.prototype.onDataChanged = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n var rowCount = agGridCommunity._.formatNumberCommas(this.getFilteredRowCountValue(), thousandSeparator, decimalSeparator);\n var totalRowCount = agGridCommunity._.formatNumberCommas(this.getTotalRowCount(), thousandSeparator, decimalSeparator);\n if (rowCount === totalRowCount) {\n this.setValue(rowCount);\n }\n else {\n var localeTextFunc_1 = this.gridOptionsWrapper.getLocaleTextFunc();\n this.setValue(rowCount + \" \" + localeTextFunc_1('of', 'of') + \" \" + totalRowCount);\n }\n };\n TotalAndFilteredRowsComp.prototype.getFilteredRowCountValue = function () {\n var filteredRowCount = 0;\n this.gridApi.forEachNodeAfterFilter(function (node) {\n if (!node.group) {\n filteredRowCount++;\n }\n });\n return filteredRowCount;\n };\n TotalAndFilteredRowsComp.prototype.getTotalRowCount = function () {\n var totalRowCount = 0;\n this.gridApi.forEachNode(function (node) {\n if (!node.group) {\n totalRowCount++;\n }\n });\n return totalRowCount;\n };\n TotalAndFilteredRowsComp.prototype.init = function () { };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n TotalAndFilteredRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$1U([\n agGridCommunity.Autowired('gridApi')\n ], TotalAndFilteredRowsComp.prototype, \"gridApi\", void 0);\n __decorate$1U([\n agGridCommunity.PostConstruct\n ], TotalAndFilteredRowsComp.prototype, \"postConstruct\", null);\n return TotalAndFilteredRowsComp;\n}(NameValueComp));\n\nvar __extends$3s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilteredRowsComp = /** @class */ (function (_super) {\n __extends$3s(FilteredRowsComp, _super);\n function FilteredRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilteredRowsComp.prototype.postConstruct = function () {\n this.setLabel('filteredRows', 'Filtered');\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agFilteredRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-filtered-row-count');\n this.setDisplayed(true);\n var listener = this.onDataChanged.bind(this);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_MODEL_UPDATED, listener);\n listener();\n };\n FilteredRowsComp.prototype.onDataChanged = function () {\n var totalRowCountValue = this.getTotalRowCountValue();\n var filteredRowCountValue = this.getFilteredRowCountValue();\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(agGridCommunity._.formatNumberCommas(filteredRowCountValue, thousandSeparator, decimalSeparator));\n this.setDisplayed(totalRowCountValue !== filteredRowCountValue);\n };\n FilteredRowsComp.prototype.getTotalRowCountValue = function () {\n var totalRowCount = 0;\n this.gridApi.forEachNode(function (node) { return totalRowCount += 1; });\n return totalRowCount;\n };\n FilteredRowsComp.prototype.getFilteredRowCountValue = function () {\n var filteredRowCount = 0;\n this.gridApi.forEachNodeAfterFilter(function (node) {\n if (!node.group) {\n filteredRowCount += 1;\n }\n });\n return filteredRowCount;\n };\n FilteredRowsComp.prototype.init = function () { };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n FilteredRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$1V([\n agGridCommunity.Autowired('gridApi')\n ], FilteredRowsComp.prototype, \"gridApi\", void 0);\n __decorate$1V([\n agGridCommunity.PostConstruct\n ], FilteredRowsComp.prototype, \"postConstruct\", null);\n return FilteredRowsComp;\n}(NameValueComp));\n\nvar __extends$3t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TotalRowsComp = /** @class */ (function (_super) {\n __extends$3t(TotalRowsComp, _super);\n function TotalRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TotalRowsComp.prototype.postConstruct = function () {\n this.setLabel('totalRows', 'Total Rows');\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agTotalRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-total-row-count');\n this.setDisplayed(true);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_MODEL_UPDATED, this.onDataChanged.bind(this));\n this.onDataChanged();\n };\n TotalRowsComp.prototype.onDataChanged = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(agGridCommunity._.formatNumberCommas(this.getRowCountValue(), thousandSeparator, decimalSeparator));\n };\n TotalRowsComp.prototype.getRowCountValue = function () {\n var totalRowCount = 0;\n this.gridApi.forEachLeafNode(function (node) { return totalRowCount += 1; });\n return totalRowCount;\n };\n TotalRowsComp.prototype.init = function () {\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n TotalRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$1W([\n agGridCommunity.Autowired('gridApi')\n ], TotalRowsComp.prototype, \"gridApi\", void 0);\n __decorate$1W([\n agGridCommunity.PostConstruct\n ], TotalRowsComp.prototype, \"postConstruct\", null);\n return TotalRowsComp;\n}(NameValueComp));\n\nvar __extends$3u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectedRowsComp = /** @class */ (function (_super) {\n __extends$3u(SelectedRowsComp, _super);\n function SelectedRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectedRowsComp.prototype.postConstruct = function () {\n if (!this.isValidRowModel()) {\n console.warn(\"AG Grid: agSelectedRowCountComponent should only be used with the client and server side row model.\");\n return;\n }\n this.setLabel('selectedRows', 'Selected');\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-selected-row-count');\n var selectedRowCount = this.gridApi.getSelectedRows().length;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(agGridCommunity._.formatNumberCommas(selectedRowCount, thousandSeparator, decimalSeparator));\n this.setDisplayed(selectedRowCount > 0);\n var eventListener = this.onRowSelectionChanged.bind(this);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_MODEL_UPDATED, eventListener);\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_SELECTION_CHANGED, eventListener);\n };\n SelectedRowsComp.prototype.isValidRowModel = function () {\n // this component is only really useful with client or server side rowmodels\n var rowModelType = this.gridApi.getModel().getType();\n return rowModelType === 'clientSide' || rowModelType === 'serverSide';\n };\n SelectedRowsComp.prototype.onRowSelectionChanged = function () {\n var selectedRowCount = this.gridApi.getSelectedRows().length;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(agGridCommunity._.formatNumberCommas(selectedRowCount, thousandSeparator, decimalSeparator));\n this.setDisplayed(selectedRowCount > 0);\n };\n SelectedRowsComp.prototype.init = function () {\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SelectedRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$1X([\n agGridCommunity.Autowired('gridApi')\n ], SelectedRowsComp.prototype, \"gridApi\", void 0);\n __decorate$1X([\n agGridCommunity.PostConstruct\n ], SelectedRowsComp.prototype, \"postConstruct\", null);\n return SelectedRowsComp;\n}(NameValueComp));\n\nvar __extends$3v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AggregationComp = /** @class */ (function (_super) {\n __extends$3v(AggregationComp, _super);\n function AggregationComp() {\n return _super.call(this, AggregationComp.TEMPLATE) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n AggregationComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n AggregationComp.prototype.postConstruct = function () {\n if (!this.isValidRowModel()) {\n console.warn(\"AG Grid: agAggregationComponent should only be used with the client and server side row model.\");\n return;\n }\n this.avgAggregationComp.setLabel('avg', 'Average');\n this.countAggregationComp.setLabel('count', 'Count');\n this.minAggregationComp.setLabel('min', 'Min');\n this.maxAggregationComp.setLabel('max', 'Max');\n this.sumAggregationComp.setLabel('sum', 'Sum');\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_RANGE_SELECTION_CHANGED, this.onRangeSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_MODEL_UPDATED, this.onRangeSelectionChanged.bind(this));\n };\n AggregationComp.prototype.isValidRowModel = function () {\n // this component is only really useful with client or server side rowmodels\n var rowModelType = this.gridApi.getModel().getType();\n return rowModelType === 'clientSide' || rowModelType === 'serverSide';\n };\n AggregationComp.prototype.init = function () {\n };\n AggregationComp.prototype.setAggregationComponentValue = function (aggFuncName, value, visible) {\n var statusBarValueComponent = this.getAggregationValueComponent(aggFuncName);\n if (agGridCommunity._.exists(statusBarValueComponent) && statusBarValueComponent) {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n statusBarValueComponent.setValue(agGridCommunity._.formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator));\n statusBarValueComponent.setDisplayed(visible);\n }\n };\n AggregationComp.prototype.getAggregationValueComponent = function (aggFuncName) {\n // converts user supplied agg name to our reference - eg: sum => sumAggregationComp\n var refComponentName = aggFuncName + \"AggregationComp\";\n // if the user has specified the agAggregationPanelComp but no aggFuncs we show the all\n // if the user has specified the agAggregationPanelComp and aggFuncs, then we only show the aggFuncs listed\n var statusBarValueComponent = null;\n var aggregationPanelConfig = agGridCommunity._.exists(this.gridOptions.statusBar) && this.gridOptions.statusBar ? this.gridOptions.statusBar.statusPanels.find(function (panel) { return panel.statusPanel === 'agAggregationComponent'; }) : null;\n if (agGridCommunity._.exists(aggregationPanelConfig) && aggregationPanelConfig) {\n // a little defensive here - if no statusPanelParams show it, if componentParams we also expect aggFuncs\n if (!agGridCommunity._.exists(aggregationPanelConfig.statusPanelParams) ||\n (agGridCommunity._.exists(aggregationPanelConfig.statusPanelParams) &&\n agGridCommunity._.exists(aggregationPanelConfig.statusPanelParams.aggFuncs) &&\n agGridCommunity._.exists(aggregationPanelConfig.statusPanelParams.aggFuncs.find(function (func) { return func === aggFuncName; })))) {\n statusBarValueComponent = this[refComponentName];\n }\n }\n else {\n // components not specified - assume we can show this component\n statusBarValueComponent = this[refComponentName];\n }\n // either we can't find it (which would indicate a typo or similar user side), or the user has deliberately\n // not listed the component in aggFuncs\n return statusBarValueComponent;\n };\n AggregationComp.prototype.onRangeSelectionChanged = function () {\n var _this = this;\n var cellRanges = this.rangeService ? this.rangeService.getCellRanges() : undefined;\n var sum = 0;\n var count = 0;\n var numberCount = 0;\n var min = null;\n var max = null;\n var cellsSoFar = {};\n if (cellRanges && !agGridCommunity._.missingOrEmpty(cellRanges)) {\n cellRanges.forEach(function (cellRange) {\n var currentRow = _this.rangeService.getRangeStartRow(cellRange);\n var lastRow = _this.rangeService.getRangeEndRow(cellRange);\n while (true) {\n var finishedAllRows = agGridCommunity._.missing(currentRow) || !currentRow || _this.rowPositionUtils.before(lastRow, currentRow);\n if (finishedAllRows || !currentRow || !cellRange.columns) {\n break;\n }\n cellRange.columns.forEach(function (col) {\n if (currentRow === null) {\n return;\n }\n // we only want to include each cell once, in case a cell is in multiple ranges\n var cellId = _this.cellPositionUtils.createId({\n rowPinned: currentRow.rowPinned,\n column: col,\n rowIndex: currentRow.rowIndex\n });\n if (cellsSoFar[cellId]) {\n return;\n }\n cellsSoFar[cellId] = true;\n var rowNode = _this.rowRenderer.getRowNode(currentRow);\n if (agGridCommunity._.missing(rowNode)) {\n return;\n }\n var value = _this.valueService.getValue(col, rowNode);\n // if empty cell, skip it, doesn't impact count or anything\n if (agGridCommunity._.missing(value) || value === '') {\n return;\n }\n // see if value is wrapped, can happen when doing count() or avg() functions\n if (value.value) {\n value = value.value;\n }\n if (typeof value === 'string') {\n value = Number(value);\n }\n if (typeof value === 'number' && !isNaN(value)) {\n sum += value;\n if (max === null || value > max) {\n max = value;\n }\n if (min === null || value < min) {\n min = value;\n }\n numberCount++;\n }\n count++;\n });\n currentRow = _this.cellNavigationService.getRowBelow(currentRow);\n }\n });\n }\n var gotResult = count > 1;\n var gotNumberResult = numberCount > 1;\n // we show count even if no numbers\n this.setAggregationComponentValue('count', count, gotResult);\n // show if numbers found\n this.setAggregationComponentValue('sum', sum, gotNumberResult);\n this.setAggregationComponentValue('min', min, gotNumberResult);\n this.setAggregationComponentValue('max', max, gotNumberResult);\n this.setAggregationComponentValue('avg', (sum / numberCount), gotNumberResult);\n };\n AggregationComp.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$1Y([\n agGridCommunity.Optional('rangeService')\n ], AggregationComp.prototype, \"rangeService\", void 0);\n __decorate$1Y([\n agGridCommunity.Autowired('valueService')\n ], AggregationComp.prototype, \"valueService\", void 0);\n __decorate$1Y([\n agGridCommunity.Autowired('cellNavigationService')\n ], AggregationComp.prototype, \"cellNavigationService\", void 0);\n __decorate$1Y([\n agGridCommunity.Autowired('rowRenderer')\n ], AggregationComp.prototype, \"rowRenderer\", void 0);\n __decorate$1Y([\n agGridCommunity.Autowired('gridOptions')\n ], AggregationComp.prototype, \"gridOptions\", void 0);\n __decorate$1Y([\n agGridCommunity.Autowired('gridApi')\n ], AggregationComp.prototype, \"gridApi\", void 0);\n __decorate$1Y([\n agGridCommunity.Autowired('cellPositionUtils')\n ], AggregationComp.prototype, \"cellPositionUtils\", void 0);\n __decorate$1Y([\n agGridCommunity.Autowired('rowPositionUtils')\n ], AggregationComp.prototype, \"rowPositionUtils\", void 0);\n __decorate$1Y([\n agGridCommunity.RefSelector('sumAggregationComp')\n ], AggregationComp.prototype, \"sumAggregationComp\", void 0);\n __decorate$1Y([\n agGridCommunity.RefSelector('countAggregationComp')\n ], AggregationComp.prototype, \"countAggregationComp\", void 0);\n __decorate$1Y([\n agGridCommunity.RefSelector('minAggregationComp')\n ], AggregationComp.prototype, \"minAggregationComp\", void 0);\n __decorate$1Y([\n agGridCommunity.RefSelector('maxAggregationComp')\n ], AggregationComp.prototype, \"maxAggregationComp\", void 0);\n __decorate$1Y([\n agGridCommunity.RefSelector('avgAggregationComp')\n ], AggregationComp.prototype, \"avgAggregationComp\", void 0);\n __decorate$1Y([\n agGridCommunity.PostConstruct\n ], AggregationComp.prototype, \"postConstruct\", null);\n return AggregationComp;\n}(agGridCommunity.Component));\n\nvar StatusBarModule = {\n moduleName: agGridCommunity.ModuleNames.StatusBarModule,\n beans: [StatusBarService],\n agStackComponents: [\n { componentName: 'AgStatusBar', componentClass: StatusBar },\n { componentName: 'AgNameValue', componentClass: NameValueComp },\n ],\n userComponents: [\n { componentName: 'agAggregationComponent', componentClass: AggregationComp },\n { componentName: 'agSelectedRowCountComponent', componentClass: SelectedRowsComp },\n { componentName: 'agTotalRowCountComponent', componentClass: TotalRowsComp },\n { componentName: 'agFilteredRowCountComponent', componentClass: FilteredRowsComp },\n { componentName: 'agTotalAndFilteredRowCountComponent', componentClass: TotalAndFilteredRowsComp }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$3w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ViewportRowModel = /** @class */ (function (_super) {\n __extends$3w(ViewportRowModel, _super);\n function ViewportRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // rowRenderer tells us these\n _this.firstRow = -1;\n _this.lastRow = -1;\n // datasource tells us this\n _this.rowCount = -1;\n _this.rowNodesByIndex = {};\n return _this;\n }\n // we don't implement as lazy row heights is not supported in this row model\n ViewportRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) { return false; };\n ViewportRowModel.prototype.init = function () {\n this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n this.addManagedListener(this.eventService, agGridCommunity.Events.EVENT_VIEWPORT_CHANGED, this.onViewportChanged.bind(this));\n };\n ViewportRowModel.prototype.start = function () {\n if (this.gridOptionsWrapper.getViewportDatasource()) {\n this.setViewportDatasource(this.gridOptionsWrapper.getViewportDatasource());\n }\n };\n ViewportRowModel.prototype.isLastRowIndexKnown = function () {\n return true;\n };\n ViewportRowModel.prototype.destroyDatasource = function () {\n if (!this.viewportDatasource) {\n return;\n }\n if (this.viewportDatasource.destroy) {\n this.viewportDatasource.destroy();\n }\n this.rowRenderer.datasourceChanged();\n this.firstRow = -1;\n this.lastRow = -1;\n };\n ViewportRowModel.prototype.calculateFirstRow = function (firstRenderedRow) {\n var bufferSize = this.gridOptionsWrapper.getViewportRowModelBufferSize();\n var pageSize = this.gridOptionsWrapper.getViewportRowModelPageSize();\n var afterBuffer = firstRenderedRow - bufferSize;\n if (afterBuffer < 0) {\n return 0;\n }\n return Math.floor(afterBuffer / pageSize) * pageSize;\n };\n ViewportRowModel.prototype.calculateLastRow = function (lastRenderedRow) {\n if (lastRenderedRow === -1) {\n return lastRenderedRow;\n }\n var bufferSize = this.gridOptionsWrapper.getViewportRowModelBufferSize();\n var pageSize = this.gridOptionsWrapper.getViewportRowModelPageSize();\n var afterBuffer = lastRenderedRow + bufferSize;\n var result = Math.ceil(afterBuffer / pageSize) * pageSize;\n var lastRowIndex = this.rowCount - 1;\n return Math.min(result, lastRowIndex);\n };\n ViewportRowModel.prototype.onViewportChanged = function (event) {\n var newFirst = this.calculateFirstRow(event.firstRow);\n var newLast = this.calculateLastRow(event.lastRow);\n if (this.firstRow !== newFirst || this.lastRow !== newLast) {\n this.firstRow = newFirst;\n this.lastRow = newLast;\n this.purgeRowsNotInViewport();\n if (this.viewportDatasource) {\n this.viewportDatasource.setViewportRange(this.firstRow, this.lastRow);\n }\n }\n };\n ViewportRowModel.prototype.purgeRowsNotInViewport = function () {\n var _this = this;\n Object.keys(this.rowNodesByIndex).forEach(function (indexStr) {\n var index = parseInt(indexStr, 10);\n if (index < _this.firstRow || index > _this.lastRow) {\n delete _this.rowNodesByIndex[index];\n }\n });\n };\n ViewportRowModel.prototype.setViewportDatasource = function (viewportDatasource) {\n this.destroyDatasource();\n this.viewportDatasource = viewportDatasource;\n this.rowCount = 0;\n if (!viewportDatasource.init) {\n console.warn('AG Grid: viewport is missing init method.');\n }\n else {\n viewportDatasource.init({\n setRowCount: this.setRowCount.bind(this),\n setRowData: this.setRowData.bind(this),\n getRow: this.getRow.bind(this)\n });\n }\n };\n ViewportRowModel.prototype.getType = function () {\n return agGridCommunity.Constants.ROW_MODEL_TYPE_VIEWPORT;\n };\n ViewportRowModel.prototype.getRow = function (rowIndex) {\n if (!this.rowNodesByIndex[rowIndex]) {\n this.rowNodesByIndex[rowIndex] = this.createBlankRowNode(rowIndex);\n }\n return this.rowNodesByIndex[rowIndex];\n };\n ViewportRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n });\n return result;\n };\n ViewportRowModel.prototype.getRowCount = function () {\n return this.rowCount;\n };\n ViewportRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n if (this.rowHeight !== 0) { // avoid divide by zero error\n return Math.floor(pixel / this.rowHeight);\n }\n return 0;\n };\n ViewportRowModel.prototype.getRowBounds = function (index) {\n return {\n rowHeight: this.rowHeight,\n rowTop: this.rowHeight * index\n };\n };\n ViewportRowModel.prototype.getTopLevelRowCount = function () {\n return this.getRowCount();\n };\n ViewportRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n return topLevelIndex;\n };\n ViewportRowModel.prototype.isEmpty = function () {\n return this.rowCount > 0;\n };\n ViewportRowModel.prototype.isRowsToRender = function () {\n return this.rowCount > 0;\n };\n ViewportRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n var firstIndex = agGridCommunity._.missing(firstInRange) ? 0 : firstInRange.rowIndex;\n var lastIndex = lastInRange.rowIndex;\n var firstNodeOutOfRange = firstIndex < this.firstRow || firstIndex > this.lastRow;\n var lastNodeOutOfRange = lastIndex < this.firstRow || lastIndex > this.lastRow;\n if (firstNodeOutOfRange || lastNodeOutOfRange) {\n return [];\n }\n var result = [];\n var startIndex = firstIndex <= lastIndex ? firstIndex : lastIndex;\n var endIndex = firstIndex <= lastIndex ? lastIndex : firstIndex;\n for (var i = startIndex; i <= endIndex; i++) {\n result.push(this.rowNodesByIndex[i]);\n }\n return result;\n };\n ViewportRowModel.prototype.forEachNode = function (callback) {\n var _this = this;\n var callbackCount = 0;\n Object.keys(this.rowNodesByIndex).forEach(function (indexStr) {\n var index = parseInt(indexStr, 10);\n var rowNode = _this.rowNodesByIndex[index];\n callback(rowNode, callbackCount);\n callbackCount++;\n });\n };\n ViewportRowModel.prototype.setRowData = function (rowData) {\n var _this = this;\n agGridCommunity._.iterateObject(rowData, function (indexStr, dataItem) {\n var index = parseInt(indexStr, 10);\n // we should never keep rows that we didn't specifically ask for, this\n // guarantees the contract we have with the server.\n if (index >= _this.firstRow && index <= _this.lastRow) {\n var rowNode = _this.rowNodesByIndex[index];\n // the abnormal case is we requested a row even though the grid didn't need it\n // as a result of the paging and buffer (ie the row is off screen), in which\n // case we need to create a new node now\n if (agGridCommunity._.missing(rowNode)) {\n rowNode = _this.createBlankRowNode(index);\n _this.rowNodesByIndex[index] = rowNode;\n }\n // now we deffo have a row node, so set in the details\n // if the grid already asked for this row (the normal case), then we would\n // of put a placeholder node in place.\n rowNode.setDataAndId(dataItem, index.toString());\n }\n });\n };\n ViewportRowModel.prototype.createBlankRowNode = function (rowIndex) {\n var rowNode = new agGridCommunity.RowNode(this.beans);\n rowNode.setRowHeight(this.rowHeight);\n rowNode.setRowTop(this.rowHeight * rowIndex);\n rowNode.setRowIndex(rowIndex);\n return rowNode;\n };\n ViewportRowModel.prototype.setRowCount = function (rowCount, keepRenderedRows) {\n if (keepRenderedRows === void 0) { keepRenderedRows = false; }\n if (rowCount === this.rowCount) {\n return;\n }\n this.rowCount = rowCount;\n var event = {\n type: agGridCommunity.Events.EVENT_MODEL_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi,\n newData: false,\n newPage: false,\n keepRenderedRows: keepRenderedRows,\n animate: false\n };\n this.eventService.dispatchEvent(event);\n };\n ViewportRowModel.prototype.isRowPresent = function (rowNode) {\n return false;\n };\n __decorate$1Z([\n agGridCommunity.Autowired('gridApi')\n ], ViewportRowModel.prototype, \"gridApi\", void 0);\n __decorate$1Z([\n agGridCommunity.Autowired('columnApi')\n ], ViewportRowModel.prototype, \"columnApi\", void 0);\n __decorate$1Z([\n agGridCommunity.Autowired('rowRenderer')\n ], ViewportRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$1Z([\n agGridCommunity.Autowired('beans')\n ], ViewportRowModel.prototype, \"beans\", void 0);\n __decorate$1Z([\n agGridCommunity.PostConstruct\n ], ViewportRowModel.prototype, \"init\", null);\n __decorate$1Z([\n agGridCommunity.PreDestroy\n ], ViewportRowModel.prototype, \"destroyDatasource\", null);\n ViewportRowModel = __decorate$1Z([\n agGridCommunity.Bean('rowModel')\n ], ViewportRowModel);\n return ViewportRowModel;\n}(agGridCommunity.BeanStub));\n\nvar ViewportRowModelModule = {\n moduleName: agGridCommunity.ModuleNames.ViewportRowModelModule,\n rowModels: { viewport: ViewportRowModel },\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$3x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$R = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread$o = (undefined && undefined.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read$R(arguments[i]));\n return ar;\n};\nvar ClipboardService = /** @class */ (function (_super) {\n __extends$3x(ClipboardService, _super);\n function ClipboardService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.navigatorApiFailed = false;\n return _this;\n }\n ClipboardService.prototype.init = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('ClipboardService');\n if (this.rowModel.getType() === agGridCommunity.Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n });\n };\n ClipboardService.prototype.pasteFromClipboard = function () {\n var _this = this;\n this.logger.log('pasteFromClipboard');\n // Method 1 - native clipboard API, available in modern chrome browsers\n var allowNavigator = !this.gridOptionsWrapper.isSuppressClipboardApi();\n // Some browsers (Firefox) do not allow Web Applications to read from\n // the clipboard so verify if not only the ClipboardAPI is available,\n // but also if the `readText` method is public.\n if (allowNavigator && !this.navigatorApiFailed && navigator.clipboard && navigator.clipboard.readText) {\n navigator.clipboard.readText()\n .then(this.processClipboardData.bind(this))\n .catch(function (e) {\n agGridCommunity._.doOnce(function () {\n console.warn(e);\n console.warn('AG Grid: Unable to use the Clipboard API (navigator.clipboard.readText()). ' +\n 'The reason why it could not be used has been logged in the previous line. ' +\n 'For this reason the grid has defaulted to using a workaround which doesn\\'t perform as well. ' +\n 'Either fix why Clipboard API is blocked, OR stop this message from appearing by setting grid ' +\n 'property suppressClipboardApi=true (which will default the grid to using the workaround rather than the API');\n }, 'clipboardApiError');\n _this.navigatorApiFailed = true;\n _this.pasteFromClipboardLegacy();\n });\n }\n else {\n this.pasteFromClipboardLegacy();\n }\n };\n ClipboardService.prototype.pasteFromClipboardLegacy = function () {\n var _this = this;\n // Method 2 - if modern API fails, the old school hack\n this.executeOnTempElement(function (textArea) { return textArea.focus({ preventScroll: true }); }, function (element) {\n var data = element.value;\n _this.processClipboardData(data);\n });\n };\n ClipboardService.prototype.processClipboardData = function (data) {\n var _this = this;\n if (data == null) {\n return;\n }\n var parsedData = agGridCommunity._.stringToArray(data, this.gridOptionsWrapper.getClipboardDelimiter());\n var userFunc = this.gridOptionsWrapper.getProcessDataFromClipboardFunc();\n if (userFunc) {\n parsedData = userFunc({ data: parsedData });\n }\n if (parsedData == null) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressLastEmptyLineOnPaste()) {\n this.removeLastLineIfBlank(parsedData);\n }\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var rangeActive = _this.rangeService && _this.rangeService.isMoreThanOneCell();\n var pasteIntoRange = rangeActive && !_this.hasOnlyOneValueToPaste(parsedData);\n if (pasteIntoRange) {\n _this.pasteIntoActiveRange(parsedData, cellsToFlash, updatedRowNodes, changedPath);\n }\n else {\n _this.pasteStartingFromFocusedCell(parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n }\n };\n this.doPasteOperation(pasteOperation);\n };\n // common code to paste operations, e.g. paste to cell, paste to range, and copy range down\n ClipboardService.prototype.doPasteOperation = function (pasteOperationFunc) {\n var api = this.gridOptionsWrapper.getApi();\n var columnApi = this.gridOptionsWrapper.getColumnApi();\n var source = 'clipboard';\n this.eventService.dispatchEvent({\n type: agGridCommunity.Events.EVENT_PASTE_START,\n api: api,\n columnApi: columnApi,\n source: source\n });\n var changedPath;\n if (this.clientSideRowModel) {\n var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();\n changedPath = new agGridCommunity.ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n }\n var cellsToFlash = {};\n var updatedRowNodes = [];\n var focusedCell = this.focusService.getFocusedCell();\n pasteOperationFunc(cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n if (changedPath) {\n this.clientSideRowModel.doAggregate(changedPath);\n }\n this.rowRenderer.refreshCells();\n this.dispatchFlashCells(cellsToFlash);\n this.fireRowChanged(updatedRowNodes);\n // if using the clipboard hack with a temp element, then the focus has been lost,\n // so need to put it back. otherwise paste operation loosed focus on cell and keyboard\n // navigation stops.\n if (focusedCell) {\n this.focusService.setFocusedCell(focusedCell.rowIndex, focusedCell.column, focusedCell.rowPinned, true);\n }\n this.eventService.dispatchEvent({\n type: agGridCommunity.Events.EVENT_PASTE_END,\n api: api,\n columnApi: columnApi,\n source: source\n });\n };\n ClipboardService.prototype.pasteIntoActiveRange = function (clipboardData, cellsToFlash, updatedRowNodes, changedPath) {\n var _this = this;\n // true if clipboard data can be evenly pasted into range, otherwise false\n var abortRepeatingPasteIntoRows = this.getRangeSize() % clipboardData.length != 0;\n var indexOffset = 0;\n var dataRowIndex = 0;\n var rowCallback = function (currentRow, rowNode, columns, index) {\n var atEndOfClipboardData = index - indexOffset >= clipboardData.length;\n if (atEndOfClipboardData) {\n if (abortRepeatingPasteIntoRows) {\n return;\n }\n // increment offset and reset data index to repeat paste of data\n indexOffset += dataRowIndex;\n dataRowIndex = 0;\n }\n var currentRowData = clipboardData[index - indexOffset];\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n var processCellFromClipboardFunc = _this.gridOptionsWrapper.getProcessCellFromClipboardFunc();\n columns.forEach(function (column, idx) {\n if (!column.isCellEditable(rowNode) || column.isSuppressPaste(rowNode)) {\n return;\n }\n // repeat data for columns we don't have data for - happens when to range is bigger than copied data range\n if (idx >= currentRowData.length) {\n idx = idx % currentRowData.length;\n }\n var newValue = _this.processCell(rowNode, column, currentRowData[idx], agGridCommunity.Constants.EXPORT_TYPE_DRAG_COPY, processCellFromClipboardFunc);\n rowNode.setDataValue(column, newValue, agGridCommunity.Constants.SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var cellId = _this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n });\n dataRowIndex++;\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.pasteStartingFromFocusedCell = function (parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n if (!focusedCell) {\n return;\n }\n var currentRow = { rowIndex: focusedCell.rowIndex, rowPinned: focusedCell.rowPinned };\n var columnsToPasteInto = this.columnModel.getDisplayedColumnsStartingAt(focusedCell.column);\n if (this.isPasteSingleValueIntoRange(parsedData)) {\n this.pasteSingleValueIntoRange(parsedData, updatedRowNodes, cellsToFlash, changedPath);\n }\n else {\n this.pasteMultipleValues(parsedData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, agGridCommunity.Constants.EXPORT_TYPE_CLIPBOARD, changedPath);\n }\n };\n // if range is active, and only one cell, then we paste this cell into all cells in the active range.\n ClipboardService.prototype.isPasteSingleValueIntoRange = function (parsedData) {\n return this.hasOnlyOneValueToPaste(parsedData)\n && this.rangeService != null\n && !this.rangeService.isEmpty();\n };\n ClipboardService.prototype.pasteSingleValueIntoRange = function (parsedData, updatedRowNodes, cellsToFlash, changedPath) {\n var _this = this;\n var value = parsedData[0][0];\n var rowCallback = function (currentRow, rowNode, columns) {\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column) {\n return _this.updateCellValue(rowNode, column, value, cellsToFlash, agGridCommunity.Constants.EXPORT_TYPE_CLIPBOARD, changedPath);\n });\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.hasOnlyOneValueToPaste = function (parsedData) {\n return parsedData.length === 1 && parsedData[0].length === 1;\n };\n ClipboardService.prototype.copyRangeDown = function () {\n var _this = this;\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var firstRowValues = [];\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var processCellForClipboardFunc = _this.gridOptionsWrapper.getProcessCellForClipboardFunc();\n var processCellFromClipboardFunc = _this.gridOptionsWrapper.getProcessCellFromClipboardFunc();\n var rowCallback = function (currentRow, rowNode, columns) {\n // take reference of first row, this is the one we will be using to copy from\n if (!firstRowValues.length) {\n // two reasons for looping through columns\n columns.forEach(function (column) {\n // get the initial values to copy down\n var value = _this.processCell(rowNode, column, _this.valueService.getValue(column, rowNode), agGridCommunity.Constants.EXPORT_TYPE_DRAG_COPY, processCellForClipboardFunc);\n firstRowValues.push(value);\n });\n }\n else {\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column, index) {\n if (!column.isCellEditable(rowNode) || column.isSuppressPaste(rowNode)) {\n return;\n }\n var firstRowValue = _this.processCell(rowNode, column, firstRowValues[index], agGridCommunity.Constants.EXPORT_TYPE_DRAG_COPY, processCellFromClipboardFunc);\n rowNode.setDataValue(column, firstRowValue, agGridCommunity.Constants.SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var cellId = _this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n });\n }\n };\n _this.iterateActiveRanges(true, rowCallback);\n };\n this.doPasteOperation(pasteOperation);\n };\n ClipboardService.prototype.removeLastLineIfBlank = function (parsedData) {\n // remove last row if empty, excel puts empty last row in\n var lastLine = agGridCommunity._.last(parsedData);\n var lastLineIsBlank = lastLine && lastLine.length === 1 && lastLine[0] === '';\n if (lastLineIsBlank) {\n agGridCommunity._.removeFromArray(parsedData, lastLine);\n }\n };\n ClipboardService.prototype.fireRowChanged = function (rowNodes) {\n var _this = this;\n if (!this.gridOptionsWrapper.isFullRowEdit()) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var event = {\n type: agGridCommunity.Events.EVENT_ROW_VALUE_CHANGED,\n node: rowNode,\n data: rowNode.data,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n context: _this.gridOptionsWrapper.getContext(),\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi()\n };\n _this.eventService.dispatchEvent(event);\n });\n };\n ClipboardService.prototype.pasteMultipleValues = function (clipboardGridData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, type, changedPath) {\n var _this = this;\n var rowPointer = currentRow;\n // if doing CSRM and NOT tree data, then it means groups are aggregates, which are read only,\n // so we should skip them when doing paste operations.\n var skipGroupRows = this.clientSideRowModel != null && !this.gridOptionsWrapper.isTreeData();\n var getNextGoodRowNode = function () {\n while (true) {\n if (!rowPointer) {\n return null;\n }\n var res = _this.rowPositionUtils.getRowNode(rowPointer);\n // move to next row down for next set of values\n rowPointer = _this.cellNavigationService.getRowBelow({ rowPinned: rowPointer.rowPinned, rowIndex: rowPointer.rowIndex });\n // if no more rows, return null\n if (res == null) {\n return null;\n }\n // skip details rows and footer rows, never paste into them as they don't hold data\n var skipRow = res.detail || res.footer || (skipGroupRows && res.group);\n // skipping row means we go into the next iteration of the while loop\n if (!skipRow) {\n return res;\n }\n }\n };\n clipboardGridData.forEach(function (clipboardRowData) {\n var rowNode = getNextGoodRowNode();\n // if we have come to end of rows in grid, then skip\n if (!rowNode) {\n return;\n }\n clipboardRowData.forEach(function (value, index) {\n return _this.updateCellValue(rowNode, columnsToPasteInto[index], value, cellsToFlash, type, changedPath);\n });\n updatedRowNodes.push(rowNode);\n });\n };\n ClipboardService.prototype.updateCellValue = function (rowNode, column, value, cellsToFlash, type, changedPath) {\n if (!rowNode ||\n !column ||\n !column.isCellEditable(rowNode) ||\n column.isSuppressPaste(rowNode)) {\n return;\n }\n var processedValue = this.processCell(rowNode, column, value, type, this.gridOptionsWrapper.getProcessCellFromClipboardFunc());\n rowNode.setDataValue(column, processedValue, agGridCommunity.Constants.SOURCE_PASTE);\n var cellId = this.cellPositionUtils.createIdFromValues(rowNode.rowIndex, column, rowNode.rowPinned);\n cellsToFlash[cellId] = true;\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n };\n ClipboardService.prototype.copyToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n var includeHeaders = params.includeHeaders, includeGroupHeaders = params.includeGroupHeaders;\n this.logger.log(\"copyToClipboard: includeHeaders = \" + includeHeaders);\n // don't override 'includeHeaders' if it has been explicitly set to 'false'\n if (includeHeaders == null) {\n includeHeaders = this.gridOptionsWrapper.isCopyHeadersToClipboard();\n }\n if (includeGroupHeaders == null) {\n includeGroupHeaders = this.gridOptionsWrapper.isCopyGroupHeadersToClipboard();\n }\n var copyParams = { includeHeaders: includeHeaders, includeGroupHeaders: includeGroupHeaders };\n var shouldCopyRows = !this.gridOptionsWrapper.isSuppressCopyRowsToClipboard();\n // Copy priority is Range > Row > Focus\n if (this.rangeService && !this.rangeService.isEmpty() && !this.shouldSkipSingleCellRange()) {\n this.copySelectedRangeToClipboard(copyParams);\n }\n else if (shouldCopyRows && !this.selectionService.isEmpty()) {\n this.copySelectedRowsToClipboard(copyParams);\n }\n else if (this.focusService.isAnyCellFocused()) {\n this.copyFocusedCellToClipboard(copyParams);\n }\n };\n ClipboardService.prototype.shouldSkipSingleCellRange = function () {\n return this.gridOptionsWrapper.isSuppressCopySingleCellRanges() && !this.rangeService.isMoreThanOneCell();\n };\n ClipboardService.prototype.iterateActiveRanges = function (onlyFirst, rowCallback, columnCallback) {\n var _this = this;\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var cellRanges = this.rangeService.getCellRanges();\n if (onlyFirst) {\n this.iterateActiveRange(cellRanges[0], rowCallback, columnCallback, true);\n }\n else {\n cellRanges.forEach(function (range, idx) { return _this.iterateActiveRange(range, rowCallback, columnCallback, idx === cellRanges.length - 1); });\n }\n };\n ClipboardService.prototype.iterateActiveRange = function (range, rowCallback, columnCallback, isLastRange) {\n if (!this.rangeService) {\n return;\n }\n var currentRow = this.rangeService.getRangeStartRow(range);\n var lastRow = this.rangeService.getRangeEndRow(range);\n if (columnCallback && range.columns) {\n columnCallback(range.columns);\n }\n var rangeIndex = 0;\n var isLastRow = false;\n // the currentRow could be missing if the user sets the active range manually, and sets a range\n // that is outside of the grid (eg. sets range rows 0 to 100, but grid has only 20 rows).\n while (!isLastRow && currentRow != null) {\n var rowNode = this.rowPositionUtils.getRowNode(currentRow);\n isLastRow = this.rowPositionUtils.sameRow(currentRow, lastRow);\n rowCallback(currentRow, rowNode, range.columns, rangeIndex++, isLastRow && isLastRange);\n currentRow = this.cellNavigationService.getRowBelow(currentRow);\n }\n };\n ClipboardService.prototype.copySelectedRangeToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var allRangesMerge = this.rangeService.areAllRangesAbleToMerge();\n var _a = allRangesMerge ? this.buildDataFromMergedRanges(params) : this.buildDataFromRanges(params), data = _a.data, cellsToFlash = _a.cellsToFlash;\n this.copyDataToClipboard(data);\n this.dispatchFlashCells(cellsToFlash);\n };\n ClipboardService.prototype.buildDataFromMergedRanges = function (params) {\n var _this = this;\n var columnsSet = new Set();\n var ranges = this.rangeService.getCellRanges();\n var allRowPositions = [];\n var allCellsToFlash = {};\n ranges.forEach(function (range) {\n range.columns.forEach(function (col) { return columnsSet.add(col); });\n var _a = _this.getRangeRowPositionsAndCellsToFlash(range), rowPositions = _a.rowPositions, cellsToFlash = _a.cellsToFlash;\n allRowPositions.push.apply(allRowPositions, __spread$o(rowPositions));\n Object.assign(allCellsToFlash, cellsToFlash);\n });\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var exportedColumns = Array.from(columnsSet);\n exportedColumns.sort(function (a, b) {\n var posA = allColumns.indexOf(a);\n var posB = allColumns.indexOf(b);\n return posA - posB;\n });\n var data = this.buildExportParams({\n columns: exportedColumns,\n rowPositions: allRowPositions,\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders,\n });\n return { data: data, cellsToFlash: allCellsToFlash };\n };\n ClipboardService.prototype.buildDataFromRanges = function (params) {\n var _this = this;\n var ranges = this.rangeService.getCellRanges();\n var data = [];\n var allCellsToFlash = {};\n ranges.forEach(function (range) {\n var _a = _this.getRangeRowPositionsAndCellsToFlash(range), rowPositions = _a.rowPositions, cellsToFlash = _a.cellsToFlash;\n Object.assign(allCellsToFlash, cellsToFlash);\n data.push(_this.buildExportParams({\n columns: range.columns,\n rowPositions: rowPositions,\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders,\n }));\n });\n return { data: data.join('\\n'), cellsToFlash: allCellsToFlash };\n };\n ClipboardService.prototype.getRangeRowPositionsAndCellsToFlash = function (range) {\n var _this = this;\n var rowPositions = [];\n var cellsToFlash = {};\n var startRow = this.rangeService.getRangeStartRow(range);\n var lastRow = this.rangeService.getRangeEndRow(range);\n var node = startRow;\n while (node) {\n rowPositions.push(node);\n range.columns.forEach(function (column) {\n var cellId = _this.cellPositionUtils.createIdFromValues(node.rowIndex, column, node.rowPinned);\n cellsToFlash[cellId] = true;\n });\n if (this.rowPositionUtils.sameRow(node, lastRow)) {\n break;\n }\n node = this.cellNavigationService.getRowBelow(node);\n }\n return { rowPositions: rowPositions, cellsToFlash: cellsToFlash };\n };\n ClipboardService.prototype.copyFocusedCellToClipboard = function (params) {\n var _a;\n if (params === void 0) { params = {}; }\n var focusedCell = this.focusService.getFocusedCell();\n if (focusedCell == null) {\n return;\n }\n var cellId = this.cellPositionUtils.createId(focusedCell);\n var currentRow = { rowPinned: focusedCell.rowPinned, rowIndex: focusedCell.rowIndex };\n var column = focusedCell.column;\n var data = this.buildExportParams({\n columns: [column],\n rowPositions: [currentRow],\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders\n });\n this.copyDataToClipboard(data);\n this.dispatchFlashCells((_a = {}, _a[cellId] = true, _a));\n };\n ClipboardService.prototype.copySelectedRowsToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n var columnKeys = params.columnKeys, includeHeaders = params.includeHeaders, includeGroupHeaders = params.includeGroupHeaders;\n var data = this.buildExportParams({\n columns: columnKeys,\n includeHeaders: includeHeaders,\n includeGroupHeaders: includeGroupHeaders\n });\n this.copyDataToClipboard(data);\n };\n ClipboardService.prototype.buildExportParams = function (params) {\n var columns = params.columns, rowPositions = params.rowPositions, _a = params.includeHeaders, includeHeaders = _a === void 0 ? false : _a, _b = params.includeGroupHeaders, includeGroupHeaders = _b === void 0 ? false : _b;\n var exportParams = {\n columnKeys: columns,\n rowNodes: rowPositions,\n skipColumnHeaders: !includeHeaders,\n skipColumnGroupHeaders: !includeGroupHeaders,\n suppressQuotes: true,\n columnSeparator: this.gridOptionsWrapper.getClipboardDelimiter(),\n onlySelected: !rowPositions,\n processCellCallback: this.gridOptionsWrapper.getProcessCellForClipboardFunc(),\n processRowGroupCallback: function (params) { return params.node.key; },\n processHeaderCallback: this.gridOptionsWrapper.getProcessHeaderForClipboardFunc(),\n processGroupHeaderCallback: this.gridOptionsWrapper.getProcessGroupHeaderForClipboardFunc()\n };\n return this.csvCreator.getDataAsCsv(exportParams);\n };\n ClipboardService.prototype.dispatchFlashCells = function (cellsToFlash) {\n var _this = this;\n window.setTimeout(function () {\n var event = {\n type: agGridCommunity.Events.EVENT_FLASH_CELLS,\n cells: cellsToFlash,\n api: _this.gridApi,\n columnApi: _this.columnApi\n };\n _this.eventService.dispatchEvent(event);\n }, 0);\n };\n ClipboardService.prototype.processCell = function (rowNode, column, value, type, func) {\n if (func) {\n var params = {\n column: column,\n node: rowNode,\n value: value,\n type: type,\n };\n return func(params);\n }\n return value;\n };\n ClipboardService.prototype.copyDataToClipboard = function (data) {\n var _this = this;\n var userProvidedFunc = this.gridOptionsWrapper.getSendToClipboardFunc();\n // method 1 - user provided func\n if (userProvidedFunc) {\n userProvidedFunc({ data: data });\n return;\n }\n // method 2 - native clipboard API, available in modern chrome browsers\n var allowNavigator = !this.gridOptionsWrapper.isSuppressClipboardApi();\n if (allowNavigator && navigator.clipboard) {\n navigator.clipboard.writeText(data).catch(function (e) {\n agGridCommunity._.doOnce(function () {\n console.warn(e);\n console.warn('AG Grid: Unable to use the Clipboard API (navigator.clipboard.writeText()). ' +\n 'The reason why it could not be used has been logged in the previous line. ' +\n 'For this reason the grid has defaulted to using a workaround which doesn\\'t perform as well. ' +\n 'Either fix why Clipboard API is blocked, OR stop this message from appearing by setting grid ' +\n 'property suppressClipboardApi=true (which will default the grid to using the workaround rather than the API.');\n }, 'clipboardApiError');\n _this.copyDataToClipboardLegacy(data);\n });\n return;\n }\n this.copyDataToClipboardLegacy(data);\n };\n ClipboardService.prototype.copyDataToClipboardLegacy = function (data) {\n var _this = this;\n // method 3 - if all else fails, the old school hack\n this.executeOnTempElement(function (element) {\n var eDocument = _this.gridOptionsWrapper.getDocument();\n var focusedElementBefore = eDocument.activeElement;\n element.value = data || ' '; // has to be non-empty value or execCommand will not do anything\n element.select();\n element.focus({ preventScroll: true });\n var result = eDocument.execCommand('copy');\n if (!result) {\n console.warn('AG Grid: Browser did not allow document.execCommand(\\'copy\\'). Ensure ' +\n 'api.copySelectedRowsToClipboard() is invoked via a user event, i.e. button click, otherwise ' +\n 'the browser will prevent it for security reasons.');\n }\n if (focusedElementBefore != null && focusedElementBefore.focus != null) {\n focusedElementBefore.focus({ preventScroll: true });\n }\n });\n };\n ClipboardService.prototype.executeOnTempElement = function (callbackNow, callbackAfter) {\n var eDoc = this.gridOptionsWrapper.getDocument();\n var eTempInput = eDoc.createElement('textarea');\n eTempInput.style.width = '1px';\n eTempInput.style.height = '1px';\n // removing items from the DOM causes the document element to scroll to the\n // position where the element was positioned. Here we set scrollTop / scrollLeft\n // to prevent the document element from scrolling when we remove it from the DOM.\n eTempInput.style.top = eDoc.documentElement.scrollTop + 'px';\n eTempInput.style.left = eDoc.documentElement.scrollLeft + 'px';\n eTempInput.style.position = 'absolute';\n eTempInput.style.opacity = '0';\n var guiRoot = this.gridCtrl.getGui();\n guiRoot.appendChild(eTempInput);\n try {\n callbackNow(eTempInput);\n }\n catch (err) {\n console.warn('AG Grid: Browser does not support document.execCommand(\\'copy\\') for clipboard operations');\n }\n //It needs 100 otherwise OS X seemed to not always be able to paste... Go figure...\n if (callbackAfter) {\n window.setTimeout(function () {\n callbackAfter(eTempInput);\n guiRoot.removeChild(eTempInput);\n }, 100);\n }\n else {\n guiRoot.removeChild(eTempInput);\n }\n };\n ClipboardService.prototype.getRangeSize = function () {\n var ranges = this.rangeService.getCellRanges();\n var startRangeIndex = 0;\n var endRangeIndex = 0;\n if (ranges.length > 0) {\n startRangeIndex = this.rangeService.getRangeStartRow(ranges[0]).rowIndex;\n endRangeIndex = this.rangeService.getRangeEndRow(ranges[0]).rowIndex;\n }\n return startRangeIndex - endRangeIndex + 1;\n };\n __decorate$1_([\n agGridCommunity.Autowired('csvCreator')\n ], ClipboardService.prototype, \"csvCreator\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('loggerFactory')\n ], ClipboardService.prototype, \"loggerFactory\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('selectionService')\n ], ClipboardService.prototype, \"selectionService\", void 0);\n __decorate$1_([\n agGridCommunity.Optional('rangeService')\n ], ClipboardService.prototype, \"rangeService\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('rowModel')\n ], ClipboardService.prototype, \"rowModel\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('ctrlsService')\n ], ClipboardService.prototype, \"ctrlsService\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('valueService')\n ], ClipboardService.prototype, \"valueService\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('focusService')\n ], ClipboardService.prototype, \"focusService\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('rowRenderer')\n ], ClipboardService.prototype, \"rowRenderer\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('columnModel')\n ], ClipboardService.prototype, \"columnModel\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('cellNavigationService')\n ], ClipboardService.prototype, \"cellNavigationService\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('columnApi')\n ], ClipboardService.prototype, \"columnApi\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('gridApi')\n ], ClipboardService.prototype, \"gridApi\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('cellPositionUtils')\n ], ClipboardService.prototype, \"cellPositionUtils\", void 0);\n __decorate$1_([\n agGridCommunity.Autowired('rowPositionUtils')\n ], ClipboardService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1_([\n agGridCommunity.PostConstruct\n ], ClipboardService.prototype, \"init\", null);\n ClipboardService = __decorate$1_([\n agGridCommunity.Bean('clipboardService')\n ], ClipboardService);\n return ClipboardService;\n}(agGridCommunity.BeanStub));\n\nvar ClipboardModule = {\n moduleName: agGridCommunity.ModuleNames.ClipboardModule,\n beans: [ClipboardService],\n dependantModules: [\n EnterpriseCoreModule,\n CsvExportModule\n ]\n};\n\nagGridCommunity.ModuleRegistry.register(ColumnsToolPanelModule, false);\r\nagGridCommunity.ModuleRegistry.register(ExcelExportModule, false);\r\nagGridCommunity.ModuleRegistry.register(FiltersToolPanelModule, false);\r\nagGridCommunity.ModuleRegistry.register(SparklinesModule, false);\r\nagGridCommunity.ModuleRegistry.register(GridChartsModule, false);\r\nagGridCommunity.ModuleRegistry.register(MasterDetailModule, false);\r\nagGridCommunity.ModuleRegistry.register(MenuModule, false);\r\nagGridCommunity.ModuleRegistry.register(MultiFilterModule, false);\r\nagGridCommunity.ModuleRegistry.register(RangeSelectionModule, false);\r\nagGridCommunity.ModuleRegistry.register(RichSelectModule, false);\r\nagGridCommunity.ModuleRegistry.register(RowGroupingModule, false);\r\nagGridCommunity.ModuleRegistry.register(ServerSideRowModelModule, false);\r\nagGridCommunity.ModuleRegistry.register(SetFilterModule, false);\r\nagGridCommunity.ModuleRegistry.register(SideBarModule, false);\r\nagGridCommunity.ModuleRegistry.register(StatusBarModule, false);\r\nagGridCommunity.ModuleRegistry.register(ViewportRowModelModule, false);\r\nagGridCommunity.ModuleRegistry.register(ClipboardModule, false);\r\n/* COMMUNITY_EXPORTS_END_DO_NOT_DELETE */\n\nObject.defineProperty(exports, 'AbstractHeaderCellCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AbstractHeaderCellCtrl;\n }\n});\nObject.defineProperty(exports, 'AgAbstractField', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgAbstractField;\n }\n});\nObject.defineProperty(exports, 'AgAngleSelect', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgAngleSelect;\n }\n});\nObject.defineProperty(exports, 'AgCheckbox', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgCheckbox;\n }\n});\nObject.defineProperty(exports, 'AgColorPicker', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgColorPicker;\n }\n});\nObject.defineProperty(exports, 'AgDialog', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgDialog;\n }\n});\nObject.defineProperty(exports, 'AgGroupComponent', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgGroupComponent;\n }\n});\nObject.defineProperty(exports, 'AgInputNumberField', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgInputNumberField;\n }\n});\nObject.defineProperty(exports, 'AgInputRange', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgInputRange;\n }\n});\nObject.defineProperty(exports, 'AgInputTextArea', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgInputTextArea;\n }\n});\nObject.defineProperty(exports, 'AgInputTextField', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgInputTextField;\n }\n});\nObject.defineProperty(exports, 'AgMenuItemComponent', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgMenuItemComponent;\n }\n});\nObject.defineProperty(exports, 'AgMenuList', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgMenuList;\n }\n});\nObject.defineProperty(exports, 'AgMenuPanel', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgMenuPanel;\n }\n});\nObject.defineProperty(exports, 'AgPanel', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgPanel;\n }\n});\nObject.defineProperty(exports, 'AgRadioButton', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgRadioButton;\n }\n});\nObject.defineProperty(exports, 'AgSelect', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgSelect;\n }\n});\nObject.defineProperty(exports, 'AgSlider', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgSlider;\n }\n});\nObject.defineProperty(exports, 'AgStackComponentsRegistry', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgStackComponentsRegistry;\n }\n});\nObject.defineProperty(exports, 'AgToggleButton', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AgToggleButton;\n }\n});\nObject.defineProperty(exports, 'AlignedGridsService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AlignedGridsService;\n }\n});\nObject.defineProperty(exports, 'AnimateShowChangeCellRenderer', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AnimateShowChangeCellRenderer;\n }\n});\nObject.defineProperty(exports, 'AnimateSlideCellRenderer', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AnimateSlideCellRenderer;\n }\n});\nObject.defineProperty(exports, 'AnimationFrameService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AnimationFrameService;\n }\n});\nObject.defineProperty(exports, 'AutoScrollService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AutoScrollService;\n }\n});\nObject.defineProperty(exports, 'AutoWidthCalculator', {\n enumerable: true,\n get: function () {\n return agGridCommunity.AutoWidthCalculator;\n }\n});\nObject.defineProperty(exports, 'Autowired', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Autowired;\n }\n});\nObject.defineProperty(exports, 'BaseComponentWrapper', {\n enumerable: true,\n get: function () {\n return agGridCommunity.BaseComponentWrapper;\n }\n});\nObject.defineProperty(exports, 'Bean', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Bean;\n }\n});\nObject.defineProperty(exports, 'BeanStub', {\n enumerable: true,\n get: function () {\n return agGridCommunity.BeanStub;\n }\n});\nObject.defineProperty(exports, 'Beans', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Beans;\n }\n});\nObject.defineProperty(exports, 'BodyDropPivotTarget', {\n enumerable: true,\n get: function () {\n return agGridCommunity.BodyDropPivotTarget;\n }\n});\nObject.defineProperty(exports, 'BodyDropTarget', {\n enumerable: true,\n get: function () {\n return agGridCommunity.BodyDropTarget;\n }\n});\nObject.defineProperty(exports, 'CellComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CellComp;\n }\n});\nObject.defineProperty(exports, 'CellCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CellCtrl;\n }\n});\nObject.defineProperty(exports, 'CellNavigationService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CellNavigationService;\n }\n});\nObject.defineProperty(exports, 'CellPositionUtils', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CellPositionUtils;\n }\n});\nObject.defineProperty(exports, 'CellRangeType', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CellRangeType;\n }\n});\nObject.defineProperty(exports, 'ChangedPath', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ChangedPath;\n }\n});\nObject.defineProperty(exports, 'CheckboxSelectionComponent', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CheckboxSelectionComponent;\n }\n});\nObject.defineProperty(exports, 'ClientSideRowModelSteps', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ClientSideRowModelSteps;\n }\n});\nObject.defineProperty(exports, 'ColDefUtil', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ColDefUtil;\n }\n});\nObject.defineProperty(exports, 'Column', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Column;\n }\n});\nObject.defineProperty(exports, 'ColumnApi', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ColumnApi;\n }\n});\nObject.defineProperty(exports, 'ColumnFactory', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ColumnFactory;\n }\n});\nObject.defineProperty(exports, 'ColumnGroup', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ColumnGroup;\n }\n});\nObject.defineProperty(exports, 'ColumnKeyCreator', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ColumnKeyCreator;\n }\n});\nObject.defineProperty(exports, 'ColumnModel', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ColumnModel;\n }\n});\nObject.defineProperty(exports, 'ColumnUtils', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ColumnUtils;\n }\n});\nObject.defineProperty(exports, 'Component', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Component;\n }\n});\nObject.defineProperty(exports, 'ComponentUtil', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ComponentUtil;\n }\n});\nObject.defineProperty(exports, 'Constants', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Constants;\n }\n});\nObject.defineProperty(exports, 'Context', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Context;\n }\n});\nObject.defineProperty(exports, 'CssClassApplier', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CssClassApplier;\n }\n});\nObject.defineProperty(exports, 'CssClassManager', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CssClassManager;\n }\n});\nObject.defineProperty(exports, 'CtrlsService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CtrlsService;\n }\n});\nObject.defineProperty(exports, 'CustomTooltipFeature', {\n enumerable: true,\n get: function () {\n return agGridCommunity.CustomTooltipFeature;\n }\n});\nObject.defineProperty(exports, 'DateFilter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.DateFilter;\n }\n});\nObject.defineProperty(exports, 'DisplayedGroupCreator', {\n enumerable: true,\n get: function () {\n return agGridCommunity.DisplayedGroupCreator;\n }\n});\nObject.defineProperty(exports, 'DragAndDropService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.DragAndDropService;\n }\n});\nObject.defineProperty(exports, 'DragService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.DragService;\n }\n});\nObject.defineProperty(exports, 'DragSourceType', {\n enumerable: true,\n get: function () {\n return agGridCommunity.DragSourceType;\n }\n});\nObject.defineProperty(exports, 'Environment', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Environment;\n }\n});\nObject.defineProperty(exports, 'EventService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.EventService;\n }\n});\nObject.defineProperty(exports, 'Events', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Events;\n }\n});\nObject.defineProperty(exports, 'ExcelFactoryMode', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ExcelFactoryMode;\n }\n});\nObject.defineProperty(exports, 'ExpressionService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ExpressionService;\n }\n});\nObject.defineProperty(exports, 'FilterManager', {\n enumerable: true,\n get: function () {\n return agGridCommunity.FilterManager;\n }\n});\nObject.defineProperty(exports, 'FloatingFilterMapper', {\n enumerable: true,\n get: function () {\n return agGridCommunity.FloatingFilterMapper;\n }\n});\nObject.defineProperty(exports, 'FocusService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.FocusService;\n }\n});\nObject.defineProperty(exports, 'Grid', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Grid;\n }\n});\nObject.defineProperty(exports, 'GridApi', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridApi;\n }\n});\nObject.defineProperty(exports, 'GridBodyComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridBodyComp;\n }\n});\nObject.defineProperty(exports, 'GridBodyCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridBodyCtrl;\n }\n});\nObject.defineProperty(exports, 'GridComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridComp;\n }\n});\nObject.defineProperty(exports, 'GridCoreCreator', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridCoreCreator;\n }\n});\nObject.defineProperty(exports, 'GridCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridCtrl;\n }\n});\nObject.defineProperty(exports, 'GridHeaderComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridHeaderComp;\n }\n});\nObject.defineProperty(exports, 'GridHeaderCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridHeaderCtrl;\n }\n});\nObject.defineProperty(exports, 'GridOptionsWrapper', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GridOptionsWrapper;\n }\n});\nObject.defineProperty(exports, 'GroupCellRenderer', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GroupCellRenderer;\n }\n});\nObject.defineProperty(exports, 'GroupCellRendererCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GroupCellRendererCtrl;\n }\n});\nObject.defineProperty(exports, 'GroupInstanceIdCreator', {\n enumerable: true,\n get: function () {\n return agGridCommunity.GroupInstanceIdCreator;\n }\n});\nObject.defineProperty(exports, 'HeaderCellCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderCellCtrl;\n }\n});\nObject.defineProperty(exports, 'HeaderFilterCellComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderFilterCellComp;\n }\n});\nObject.defineProperty(exports, 'HeaderFilterCellCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderFilterCellCtrl;\n }\n});\nObject.defineProperty(exports, 'HeaderGroupCellCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderGroupCellCtrl;\n }\n});\nObject.defineProperty(exports, 'HeaderNavigationDirection', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderNavigationDirection;\n }\n});\nObject.defineProperty(exports, 'HeaderNavigationService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderNavigationService;\n }\n});\nObject.defineProperty(exports, 'HeaderPositionUtils', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderPositionUtils;\n }\n});\nObject.defineProperty(exports, 'HeaderRowComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderRowComp;\n }\n});\nObject.defineProperty(exports, 'HeaderRowContainerComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderRowContainerComp;\n }\n});\nObject.defineProperty(exports, 'HeaderRowContainerCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderRowContainerCtrl;\n }\n});\nObject.defineProperty(exports, 'HeaderRowCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderRowCtrl;\n }\n});\nObject.defineProperty(exports, 'HeaderRowType', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HeaderRowType;\n }\n});\nObject.defineProperty(exports, 'HorizontalDirection', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HorizontalDirection;\n }\n});\nObject.defineProperty(exports, 'HorizontalResizeService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.HorizontalResizeService;\n }\n});\nObject.defineProperty(exports, 'KeyCode', {\n enumerable: true,\n get: function () {\n return agGridCommunity.KeyCode;\n }\n});\nObject.defineProperty(exports, 'LargeTextCellEditor', {\n enumerable: true,\n get: function () {\n return agGridCommunity.LargeTextCellEditor;\n }\n});\nObject.defineProperty(exports, 'LayoutCssClasses', {\n enumerable: true,\n get: function () {\n return agGridCommunity.LayoutCssClasses;\n }\n});\nObject.defineProperty(exports, 'Logger', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Logger;\n }\n});\nObject.defineProperty(exports, 'LoggerFactory', {\n enumerable: true,\n get: function () {\n return agGridCommunity.LoggerFactory;\n }\n});\nObject.defineProperty(exports, 'ManagedFocusFeature', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ManagedFocusFeature;\n }\n});\nObject.defineProperty(exports, 'ModuleNames', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ModuleNames;\n }\n});\nObject.defineProperty(exports, 'ModuleRegistry', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ModuleRegistry;\n }\n});\nObject.defineProperty(exports, 'MouseEventService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.MouseEventService;\n }\n});\nObject.defineProperty(exports, 'MoveColumnFeature', {\n enumerable: true,\n get: function () {\n return agGridCommunity.MoveColumnFeature;\n }\n});\nObject.defineProperty(exports, 'NavigationService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.NavigationService;\n }\n});\nObject.defineProperty(exports, 'NumberFilter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.NumberFilter;\n }\n});\nObject.defineProperty(exports, 'Optional', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Optional;\n }\n});\nObject.defineProperty(exports, 'PaginationProxy', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PaginationProxy;\n }\n});\nObject.defineProperty(exports, 'PinnedRowModel', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PinnedRowModel;\n }\n});\nObject.defineProperty(exports, 'PopupComponent', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PopupComponent;\n }\n});\nObject.defineProperty(exports, 'PopupEditorWrapper', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PopupEditorWrapper;\n }\n});\nObject.defineProperty(exports, 'PopupSelectCellEditor', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PopupSelectCellEditor;\n }\n});\nObject.defineProperty(exports, 'PopupService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PopupService;\n }\n});\nObject.defineProperty(exports, 'PopupTextCellEditor', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PopupTextCellEditor;\n }\n});\nObject.defineProperty(exports, 'PositionableFeature', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PositionableFeature;\n }\n});\nObject.defineProperty(exports, 'PostConstruct', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PostConstruct;\n }\n});\nObject.defineProperty(exports, 'PreConstruct', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PreConstruct;\n }\n});\nObject.defineProperty(exports, 'PreDestroy', {\n enumerable: true,\n get: function () {\n return agGridCommunity.PreDestroy;\n }\n});\nObject.defineProperty(exports, 'ProvidedColumnGroup', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ProvidedColumnGroup;\n }\n});\nObject.defineProperty(exports, 'ProvidedFilter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ProvidedFilter;\n }\n});\nObject.defineProperty(exports, 'Qualifier', {\n enumerable: true,\n get: function () {\n return agGridCommunity.Qualifier;\n }\n});\nObject.defineProperty(exports, 'QuerySelector', {\n enumerable: true,\n get: function () {\n return agGridCommunity.QuerySelector;\n }\n});\nObject.defineProperty(exports, 'RefSelector', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RefSelector;\n }\n});\nObject.defineProperty(exports, 'ResizeObserverService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ResizeObserverService;\n }\n});\nObject.defineProperty(exports, 'RowAnimationCssClasses', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowAnimationCssClasses;\n }\n});\nObject.defineProperty(exports, 'RowContainerComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowContainerComp;\n }\n});\nObject.defineProperty(exports, 'RowContainerCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowContainerCtrl;\n }\n});\nObject.defineProperty(exports, 'RowContainerName', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowContainerName;\n }\n});\nObject.defineProperty(exports, 'RowContainerType', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowContainerType;\n }\n});\nObject.defineProperty(exports, 'RowCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowCtrl;\n }\n});\nObject.defineProperty(exports, 'RowHighlightPosition', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowHighlightPosition;\n }\n});\nObject.defineProperty(exports, 'RowNode', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowNode;\n }\n});\nObject.defineProperty(exports, 'RowNodeBlock', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowNodeBlock;\n }\n});\nObject.defineProperty(exports, 'RowNodeBlockLoader', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowNodeBlockLoader;\n }\n});\nObject.defineProperty(exports, 'RowNodeSorter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowNodeSorter;\n }\n});\nObject.defineProperty(exports, 'RowPositionUtils', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowPositionUtils;\n }\n});\nObject.defineProperty(exports, 'RowRenderer', {\n enumerable: true,\n get: function () {\n return agGridCommunity.RowRenderer;\n }\n});\nObject.defineProperty(exports, 'ScalarFilter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ScalarFilter;\n }\n});\nObject.defineProperty(exports, 'ScrollVisibleService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ScrollVisibleService;\n }\n});\nObject.defineProperty(exports, 'SelectCellEditor', {\n enumerable: true,\n get: function () {\n return agGridCommunity.SelectCellEditor;\n }\n});\nObject.defineProperty(exports, 'SelectableService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.SelectableService;\n }\n});\nObject.defineProperty(exports, 'SelectionHandleType', {\n enumerable: true,\n get: function () {\n return agGridCommunity.SelectionHandleType;\n }\n});\nObject.defineProperty(exports, 'SelectionService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.SelectionService;\n }\n});\nObject.defineProperty(exports, 'ServerSideTransactionResultStatus', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ServerSideTransactionResultStatus;\n }\n});\nObject.defineProperty(exports, 'SetLeftFeature', {\n enumerable: true,\n get: function () {\n return agGridCommunity.SetLeftFeature;\n }\n});\nObject.defineProperty(exports, 'SimpleFilter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.SimpleFilter;\n }\n});\nObject.defineProperty(exports, 'SortController', {\n enumerable: true,\n get: function () {\n return agGridCommunity.SortController;\n }\n});\nObject.defineProperty(exports, 'StandardMenuFactory', {\n enumerable: true,\n get: function () {\n return agGridCommunity.StandardMenuFactory;\n }\n});\nObject.defineProperty(exports, 'StylingService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.StylingService;\n }\n});\nObject.defineProperty(exports, 'TabGuardComp', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TabGuardComp;\n }\n});\nObject.defineProperty(exports, 'TabGuardCtrl', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TabGuardCtrl;\n }\n});\nObject.defineProperty(exports, 'TabbedLayout', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TabbedLayout;\n }\n});\nObject.defineProperty(exports, 'TemplateService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TemplateService;\n }\n});\nObject.defineProperty(exports, 'TextCellEditor', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TextCellEditor;\n }\n});\nObject.defineProperty(exports, 'TextFilter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TextFilter;\n }\n});\nObject.defineProperty(exports, 'TextFloatingFilter', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TextFloatingFilter;\n }\n});\nObject.defineProperty(exports, 'TouchListener', {\n enumerable: true,\n get: function () {\n return agGridCommunity.TouchListener;\n }\n});\nObject.defineProperty(exports, 'UserComponentFactory', {\n enumerable: true,\n get: function () {\n return agGridCommunity.UserComponentFactory;\n }\n});\nObject.defineProperty(exports, 'UserComponentRegistry', {\n enumerable: true,\n get: function () {\n return agGridCommunity.UserComponentRegistry;\n }\n});\nObject.defineProperty(exports, 'ValueCache', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ValueCache;\n }\n});\nObject.defineProperty(exports, 'ValueFormatterService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ValueFormatterService;\n }\n});\nObject.defineProperty(exports, 'ValueService', {\n enumerable: true,\n get: function () {\n return agGridCommunity.ValueService;\n }\n});\nObject.defineProperty(exports, 'VanillaFrameworkOverrides', {\n enumerable: true,\n get: function () {\n return agGridCommunity.VanillaFrameworkOverrides;\n }\n});\nObject.defineProperty(exports, 'VerticalDirection', {\n enumerable: true,\n get: function () {\n return agGridCommunity.VerticalDirection;\n }\n});\nObject.defineProperty(exports, 'VirtualList', {\n enumerable: true,\n get: function () {\n return agGridCommunity.VirtualList;\n }\n});\nObject.defineProperty(exports, 'defaultGroupComparator', {\n enumerable: true,\n get: function () {\n return agGridCommunity.defaultGroupComparator;\n }\n});\nObject.defineProperty(exports, 'getRowContainerTypeForName', {\n enumerable: true,\n get: function () {\n return agGridCommunity.getRowContainerTypeForName;\n }\n});\nObject.defineProperty(exports, 'simpleHttpRequest', {\n enumerable: true,\n get: function () {\n return agGridCommunity.simpleHttpRequest;\n }\n});\nexports.LicenseManager = LicenseManager;\nexports.SetFilter = SetFilter;\nexports.exportMultipleSheetsAsExcel = exportMultipleSheetsAsExcel;\nexports.getMultipleSheetsAsExcel = getMultipleSheetsAsExcel;\n","import { EventEmitter, Component, ElementRef, Input, Output, ViewChild, Directive, ComponentFactoryResolver, ViewContainerRef, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// configuration structure, backwards compatible with earlier versions\n\n// DOM element manipulation functions...\n//\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\n\nconst _c0 = [\"list\"];\nconst _c1 = [\"defaultItemTemplate\"];\nfunction MentionListComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const item_r4 = ctx.item;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate1(\" \", item_r4[ctx_r1.labelKey], \" \");\n} }\nfunction MentionListComponent_li_4_ng_template_2_Template(rf, ctx) { }\nconst _c2 = function (a0) { return { \"item\": a0 }; };\nfunction MentionListComponent_li_4_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"a\", 4);\n ɵngcc0.ɵɵlistener(\"mousedown\", function MentionListComponent_li_4_Template_a_mousedown_1_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r9); const i_r6 = restoredCtx.index; const ctx_r8 = ɵngcc0.ɵɵnextContext(); ctx_r8.activeIndex = i_r6; ctx_r8.itemClick.emit(); return $event.preventDefault(); });\n ɵngcc0.ɵɵtemplate(2, MentionListComponent_li_4_ng_template_2_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const item_r5 = ctx.$implicit;\n const i_r6 = ctx.index;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", ctx_r3.activeIndex == i_r6)(\"mention-active\", !ctx_r3.styleOff && ctx_r3.activeIndex == i_r6);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"mention-item\", !ctx_r3.styleOff);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(8, _c2, item_r5));\n} }\nfunction setValue(el, value) {\n //console.log(\"setValue\", el.nodeName, \"[\"+value+\"]\");\n if (isInputOrTextAreaElement(el)) {\n el.value = value;\n }\n else {\n el.textContent = value;\n }\n}\nfunction getValue(el) {\n return isInputOrTextAreaElement(el) ? el.value : el.textContent;\n}\nfunction insertValue(el, start, end, text, iframe, noRecursion = false) {\n //console.log(\"insertValue\", el.nodeName, start, end, \"[\"+text+\"]\", el);\n if (isTextElement(el)) {\n let val = getValue(el);\n setValue(el, val.substring(0, start) + text + val.substring(end, val.length));\n setCaretPosition(el, start + text.length, iframe);\n }\n else if (!noRecursion) {\n let selObj = getWindowSelection(iframe);\n if (selObj && selObj.rangeCount > 0) {\n var selRange = selObj.getRangeAt(0);\n var position = selRange.startOffset;\n var anchorNode = selObj.anchorNode;\n // if (text.endsWith(' ')) {\n // text = text.substring(0, text.length-1) + '\\xA0';\n // }\n insertValue(anchorNode, position - (end - start), position, text, iframe, true);\n }\n }\n}\nfunction isInputOrTextAreaElement(el) {\n return el != null && (el.nodeName == 'INPUT' || el.nodeName == 'TEXTAREA');\n}\n;\nfunction isTextElement(el) {\n return el != null && (el.nodeName == 'INPUT' || el.nodeName == 'TEXTAREA' || el.nodeName == '#text');\n}\n;\nfunction setCaretPosition(el, pos, iframe = null) {\n //console.log(\"setCaretPosition\", pos, el, iframe==null);\n if (isInputOrTextAreaElement(el) && el.selectionStart) {\n el.focus();\n el.setSelectionRange(pos, pos);\n }\n else {\n let range = getDocument(iframe).createRange();\n range.setStart(el, pos);\n range.collapse(true);\n let sel = getWindowSelection(iframe);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n}\nfunction getCaretPosition(el, iframe = null) {\n //console.log(\"getCaretPosition\", el);\n if (isInputOrTextAreaElement(el)) {\n var val = el.value;\n return val.slice(0, el.selectionStart).length;\n }\n else {\n var selObj = getWindowSelection(iframe); //window.getSelection();\n if (selObj.rangeCount > 0) {\n var selRange = selObj.getRangeAt(0);\n var preCaretRange = selRange.cloneRange();\n preCaretRange.selectNodeContents(el);\n preCaretRange.setEnd(selRange.endContainer, selRange.endOffset);\n var position = preCaretRange.toString().length;\n return position;\n }\n }\n}\n// Based on ment.io functions...\n//\nfunction getDocument(iframe) {\n if (!iframe) {\n return document;\n }\n else {\n return iframe.contentWindow.document;\n }\n}\nfunction getWindowSelection(iframe) {\n if (!iframe) {\n return window.getSelection();\n }\n else {\n return iframe.contentWindow.getSelection();\n }\n}\nfunction getContentEditableCaretCoords(ctx) {\n let markerTextChar = '\\ufeff';\n let markerId = 'sel_' + new Date().getTime() + '_' + Math.random().toString().substr(2);\n let doc = getDocument(ctx ? ctx.iframe : null);\n let sel = getWindowSelection(ctx ? ctx.iframe : null);\n let prevRange = sel.getRangeAt(0);\n // create new range and set postion using prevRange\n let range = doc.createRange();\n range.setStart(sel.anchorNode, prevRange.startOffset);\n range.setEnd(sel.anchorNode, prevRange.startOffset);\n range.collapse(false);\n // Create the marker element containing a single invisible character\n // using DOM methods and insert it at the position in the range\n let markerEl = doc.createElement('span');\n markerEl.id = markerId;\n markerEl.appendChild(doc.createTextNode(markerTextChar));\n range.insertNode(markerEl);\n sel.removeAllRanges();\n sel.addRange(prevRange);\n let coordinates = {\n left: 0,\n top: markerEl.offsetHeight\n };\n localToRelativeCoordinates(ctx, markerEl, coordinates);\n markerEl.parentNode.removeChild(markerEl);\n return coordinates;\n}\nfunction localToRelativeCoordinates(ctx, element, coordinates) {\n let obj = element;\n let iframe = ctx ? ctx.iframe : null;\n while (obj) {\n if (ctx.parent != null && ctx.parent == obj) {\n break;\n }\n coordinates.left += obj.offsetLeft + obj.clientLeft;\n coordinates.top += obj.offsetTop + obj.clientTop;\n obj = obj.offsetParent;\n if (!obj && iframe) {\n obj = iframe;\n iframe = null;\n }\n }\n obj = element;\n iframe = ctx ? ctx.iframe : null;\n while (obj !== getDocument(null).body && obj != null) {\n if (ctx.parent != null && ctx.parent == obj) {\n break;\n }\n if (obj.scrollTop && obj.scrollTop > 0) {\n coordinates.top -= obj.scrollTop;\n }\n if (obj.scrollLeft && obj.scrollLeft > 0) {\n coordinates.left -= obj.scrollLeft;\n }\n obj = obj.parentNode;\n if (!obj && iframe) {\n obj = iframe;\n iframe = null;\n }\n }\n}\n\n/* From: https://github.com/component/textarea-caret-position */\n/* jshint browser: true */\n// (function () {\n// We'll copy the properties below into the mirror div.\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nvar properties = [\n 'direction',\n 'boxSizing',\n 'width',\n 'height',\n 'overflowX',\n 'overflowY',\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration',\n 'letterSpacing',\n 'wordSpacing',\n 'tabSize',\n 'MozTabSize'\n];\nvar isBrowser = (typeof window !== 'undefined');\nvar isFirefox = (isBrowser && window['mozInnerScreenX'] != null);\nfunction getCaretCoordinates(element, position, options) {\n if (!isBrowser) {\n throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');\n }\n var debug = options && options.debug || false;\n if (debug) {\n var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if (el)\n el.parentNode.removeChild(el);\n }\n // The mirror div will replicate the textarea's style\n var div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n var style = div.style;\n var computed = window.getComputedStyle ? window.getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n var isInput = element.nodeName === 'INPUT';\n // Default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (!isInput)\n style.wordWrap = 'break-word'; // only for textarea-s\n // Position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug)\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n // Transfer the element's properties to the div\n properties.forEach(function (prop) {\n if (isInput && prop === 'lineHeight') {\n // Special case for s because text is rendered centered and line height may be != height\n if (computed.boxSizing === \"border-box\") {\n var height = parseInt(computed.height);\n var outerHeight = parseInt(computed.paddingTop) +\n parseInt(computed.paddingBottom) +\n parseInt(computed.borderTopWidth) +\n parseInt(computed.borderBottomWidth);\n var targetHeight = outerHeight + parseInt(computed.lineHeight);\n if (height > targetHeight) {\n style.lineHeight = height - outerHeight + \"px\";\n }\n else if (height === targetHeight) {\n style.lineHeight = computed.lineHeight;\n }\n else {\n style.lineHeight = '0';\n }\n }\n else {\n style.lineHeight = computed.height;\n }\n }\n else {\n style[prop] = computed[prop];\n }\n });\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n }\n else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n div.textContent = element.value.substring(0, position);\n // The second special handling for input type=\"text\" vs textarea:\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (isInput)\n div.textContent = div.textContent.replace(/\\s/g, '\\u00a0');\n var span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the created at the caret position.\n // For inputs, just '.' would be enough, but no need to bother.\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n var coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth']),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth']),\n height: parseInt(computed['lineHeight'])\n };\n if (debug) {\n span.style.backgroundColor = '#aaa';\n }\n else {\n document.body.removeChild(div);\n }\n return coordinates;\n}\n// if (typeof module != 'undefined' && typeof module.exports != 'undefined') {\n// module.exports = getCaretCoordinates;\n// } else if(isBrowser) {\n// window.getCaretCoordinates = getCaretCoordinates;\n// }\n// }());\n\n/**\n * Angular Mentions.\n * https://github.com/dmacfarlane/angular-mentions\n *\n * Copyright (c) 2016 Dan MacFarlane\n */\nclass MentionListComponent {\n constructor(element) {\n this.element = element;\n this.labelKey = 'label';\n this.itemClick = new EventEmitter();\n this.items = [];\n this.activeIndex = 0;\n this.hidden = false;\n this.dropUp = false;\n this.styleOff = false;\n this.coords = { top: 0, left: 0 };\n this.offset = 0;\n }\n ngAfterContentChecked() {\n if (!this.itemTemplate) {\n this.itemTemplate = this.defaultItemTemplate;\n }\n }\n // lots of confusion here between relative coordinates and containers\n position(nativeParentElement, iframe = null) {\n if (isInputOrTextAreaElement(nativeParentElement)) {\n // parent elements need to have postition:relative for this to work correctly?\n this.coords = getCaretCoordinates(nativeParentElement, nativeParentElement.selectionStart, null);\n this.coords.top = nativeParentElement.offsetTop + this.coords.top - nativeParentElement.scrollTop;\n this.coords.left = nativeParentElement.offsetLeft + this.coords.left - nativeParentElement.scrollLeft;\n // getCretCoordinates() for text/input elements needs an additional offset to position the list correctly\n this.offset = this.getBlockCursorDimensions(nativeParentElement).height;\n }\n else if (iframe) {\n let context = { iframe: iframe, parent: iframe.offsetParent };\n this.coords = getContentEditableCaretCoords(context);\n }\n else {\n let doc = document.documentElement;\n let scrollLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let scrollTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n // bounding rectangles are relative to view, offsets are relative to container?\n let caretRelativeToView = getContentEditableCaretCoords({ iframe: iframe });\n let parentRelativeToContainer = nativeParentElement.getBoundingClientRect();\n this.coords.top = caretRelativeToView.top - parentRelativeToContainer.top + nativeParentElement.offsetTop - scrollTop;\n this.coords.left = caretRelativeToView.left - parentRelativeToContainer.left + nativeParentElement.offsetLeft - scrollLeft;\n }\n // set the default/inital position\n this.positionElement();\n }\n get activeItem() {\n return this.items[this.activeIndex];\n }\n activateNextItem() {\n // adjust scrollable-menu offset if the next item is out of view\n let listEl = this.list.nativeElement;\n let activeEl = listEl.getElementsByClassName('active').item(0);\n if (activeEl) {\n let nextLiEl = activeEl.nextSibling;\n if (nextLiEl && nextLiEl.nodeName == \"LI\") {\n let nextLiRect = nextLiEl.getBoundingClientRect();\n if (nextLiRect.bottom > listEl.getBoundingClientRect().bottom) {\n listEl.scrollTop = nextLiEl.offsetTop + nextLiRect.height - listEl.clientHeight;\n }\n }\n }\n // select the next item\n this.activeIndex = Math.max(Math.min(this.activeIndex + 1, this.items.length - 1), 0);\n }\n activatePreviousItem() {\n // adjust the scrollable-menu offset if the previous item is out of view\n let listEl = this.list.nativeElement;\n let activeEl = listEl.getElementsByClassName('active').item(0);\n if (activeEl) {\n let prevLiEl = activeEl.previousSibling;\n if (prevLiEl && prevLiEl.nodeName == \"LI\") {\n let prevLiRect = prevLiEl.getBoundingClientRect();\n if (prevLiRect.top < listEl.getBoundingClientRect().top) {\n listEl.scrollTop = prevLiEl.offsetTop;\n }\n }\n }\n // select the previous item\n this.activeIndex = Math.max(Math.min(this.activeIndex - 1, this.items.length - 1), 0);\n }\n // reset for a new mention search\n reset() {\n this.list.nativeElement.scrollTop = 0;\n this.checkBounds();\n }\n // final positioning is done after the list is shown (and the height and width are known)\n // ensure it's in the page bounds\n checkBounds() {\n let left = this.coords.left, top = this.coords.top, dropUp = this.dropUp;\n const bounds = this.list.nativeElement.getBoundingClientRect();\n // if off right of page, align right\n if (bounds.left + bounds.width > window.innerWidth) {\n left -= bounds.left + bounds.width - window.innerWidth + 10;\n }\n // if more than half off the bottom of the page, force dropUp\n // if ((bounds.top+bounds.height/2)>window.innerHeight) {\n // dropUp = true;\n // }\n // if top is off page, disable dropUp\n if (bounds.top < 0) {\n dropUp = false;\n }\n // set the revised/final position\n this.positionElement(left, top, dropUp);\n }\n positionElement(left = this.coords.left, top = this.coords.top, dropUp = this.dropUp) {\n const el = this.element.nativeElement;\n top += dropUp ? 0 : this.offset; // top of list is next line\n el.className = dropUp ? 'dropup' : null;\n el.style.position = \"absolute\";\n el.style.left = left + 'px';\n el.style.top = top + 'px';\n }\n getBlockCursorDimensions(nativeParentElement) {\n const parentStyles = window.getComputedStyle(nativeParentElement);\n return {\n height: parseFloat(parentStyles.lineHeight),\n width: parseFloat(parentStyles.fontSize)\n };\n }\n}\nMentionListComponent.ɵfac = function MentionListComponent_Factory(t) { return new (t || MentionListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nMentionListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MentionListComponent, selectors: [[\"mention-list\"]], viewQuery: function MentionListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.list = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.defaultItemTemplate = _t.first);\n } }, inputs: { labelKey: \"labelKey\", itemTemplate: \"itemTemplate\" }, outputs: { itemClick: \"itemClick\" }, decls: 5, vars: 6, consts: [[\"defaultItemTemplate\", \"\"], [1, \"dropdown-menu\", \"scrollable-menu\", 3, \"hidden\"], [\"list\", \"\"], [3, \"active\", \"mention-active\", 4, \"ngFor\", \"ngForOf\"], [1, \"dropdown-item\", 3, \"mousedown\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function MentionListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MentionListComponent_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(2, \"ul\", 1, 2);\n ɵngcc0.ɵɵtemplate(4, MentionListComponent_li_4_Template, 3, 10, \"li\", 3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassProp(\"mention-menu\", !ctx.styleOff)(\"mention-dropdown\", !ctx.styleOff && ctx.dropUp);\n ɵngcc0.ɵɵproperty(\"hidden\", ctx.hidden);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.items);\n } }, directives: [ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet], styles: [\".mention-menu[_ngcontent-%COMP%]{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:11em;padding:.5em 0;margin:.125em 0 0;font-size:1em;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25em}.mention-item[_ngcontent-%COMP%]{display:block;padding:.2em 1.5em;line-height:1.5em;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.mention-active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.scrollable-menu[_ngcontent-%COMP%]{display:block;height:auto;max-height:292px;overflow:auto}[hidden][_ngcontent-%COMP%]{display:none}.mention-dropdown[_ngcontent-%COMP%]{bottom:100%;top:auto;margin-bottom:2px}\"] });\nMentionListComponent.ctorParameters = () => [\n { type: ElementRef }\n];\nMentionListComponent.propDecorators = {\n labelKey: [{ type: Input }],\n itemTemplate: [{ type: Input }],\n itemClick: [{ type: Output }],\n list: [{ type: ViewChild, args: ['list', { static: true },] }],\n defaultItemTemplate: [{ type: ViewChild, args: ['defaultItemTemplate', { static: true },] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MentionListComponent, [{\n type: Component,\n args: [{\n selector: 'mention-list',\n template: `\n \n {{item[labelKey]}}\n \n \n `,\n styles: [\".mention-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:11em;padding:.5em 0;margin:.125em 0 0;font-size:1em;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25em}.mention-item{display:block;padding:.2em 1.5em;line-height:1.5em;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.mention-active>a{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.scrollable-menu{display:block;height:auto;max-height:292px;overflow:auto}[hidden]{display:none}.mention-dropdown{bottom:100%;top:auto;margin-bottom:2px}\"]\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { labelKey: [{\n type: Input\n }], itemClick: [{\n type: Output\n }], itemTemplate: [{\n type: Input\n }], list: [{\n type: ViewChild,\n args: ['list', { static: true }]\n }], defaultItemTemplate: [{\n type: ViewChild,\n args: ['defaultItemTemplate', { static: true }]\n }] }); })();\n\nconst KEY_BACKSPACE = 8;\nconst KEY_TAB = 9;\nconst KEY_ENTER = 13;\nconst KEY_SHIFT = 16;\nconst KEY_ESCAPE = 27;\nconst KEY_SPACE = 32;\nconst KEY_LEFT = 37;\nconst KEY_UP = 38;\nconst KEY_RIGHT = 39;\nconst KEY_DOWN = 40;\nconst KEY_BUFFERED = 229;\n/**\n * Angular Mentions.\n * https://github.com/dmacfarlane/angular-mentions\n *\n * Copyright (c) 2017 Dan MacFarlane\n */\nclass MentionDirective {\n constructor(_element, _componentResolver, _viewContainerRef) {\n this._element = _element;\n this._componentResolver = _componentResolver;\n this._viewContainerRef = _viewContainerRef;\n // the provided configuration object\n this.mentionConfig = { items: [] };\n this.DEFAULT_CONFIG = {\n items: [],\n triggerChar: '@',\n labelKey: 'label',\n maxItems: -1,\n allowSpace: false,\n returnTrigger: false,\n mentionSelect: (item, triggerChar) => {\n return this.activeConfig.triggerChar + item[this.activeConfig.labelKey];\n },\n mentionFilter: (searchString, items) => {\n const searchStringLowerCase = searchString.toLowerCase();\n return items.filter(e => e[this.activeConfig.labelKey].toLowerCase().startsWith(searchStringLowerCase));\n }\n };\n // event emitted whenever the search term changes\n this.searchTerm = new EventEmitter();\n // event emitted when an item is selected\n this.itemSelected = new EventEmitter();\n // event emitted whenever the mention list is opened or closed\n this.opened = new EventEmitter();\n this.closed = new EventEmitter();\n this.triggerChars = {};\n }\n set mention(items) {\n this.mentionItems = items;\n }\n ngOnChanges(changes) {\n // console.log('config change', changes);\n if (changes['mention'] || changes['mentionConfig']) {\n this.updateConfig();\n }\n }\n updateConfig() {\n let config = this.mentionConfig;\n this.triggerChars = {};\n // use items from directive if they have been set\n if (this.mentionItems) {\n config.items = this.mentionItems;\n }\n this.addConfig(config);\n // nested configs\n if (config.mentions) {\n config.mentions.forEach(config => this.addConfig(config));\n }\n }\n // add configuration for a trigger char\n addConfig(config) {\n // defaults\n let defaults = Object.assign({}, this.DEFAULT_CONFIG);\n config = Object.assign(defaults, config);\n // items\n let items = config.items;\n if (items && items.length > 0) {\n // convert strings to objects\n if (typeof items[0] == 'string') {\n items = items.map((label) => {\n let object = {};\n object[config.labelKey] = label;\n return object;\n });\n }\n if (config.labelKey) {\n // remove items without an labelKey (as it's required to filter the list)\n items = items.filter(e => e[config.labelKey]);\n if (!config.disableSort) {\n items.sort((a, b) => a[config.labelKey].localeCompare(b[config.labelKey]));\n }\n }\n }\n config.items = items;\n // add the config\n this.triggerChars[config.triggerChar] = config;\n // for async update while menu/search is active\n if (this.activeConfig && this.activeConfig.triggerChar == config.triggerChar) {\n this.activeConfig = config;\n this.updateSearchList();\n }\n }\n setIframe(iframe) {\n this.iframe = iframe;\n }\n stopEvent(event) {\n //if (event instanceof KeyboardEvent) { // does not work for iframe\n if (!event.wasClick) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n }\n blurHandler(event) {\n this.stopEvent(event);\n this.stopSearch();\n }\n inputHandler(event, nativeElement = this._element.nativeElement) {\n if (this.lastKeyCode === KEY_BUFFERED && event.data) {\n let keyCode = event.data.charCodeAt(0);\n this.keyHandler({ keyCode, inputEvent: true }, nativeElement);\n }\n }\n // @param nativeElement is the alternative text element in an iframe scenario\n keyHandler(event, nativeElement = this._element.nativeElement) {\n this.lastKeyCode = event.keyCode;\n if (event.isComposing || event.keyCode === KEY_BUFFERED) {\n return;\n }\n let val = getValue(nativeElement);\n let pos = getCaretPosition(nativeElement, this.iframe);\n let charPressed = event.key;\n if (!charPressed) {\n let charCode = event.which || event.keyCode;\n if (!event.shiftKey && (charCode >= 65 && charCode <= 90)) {\n charPressed = String.fromCharCode(charCode + 32);\n }\n // else if (event.shiftKey && charCode === KEY_2) {\n // charPressed = this.config.triggerChar;\n // }\n else {\n // TODO (dmacfarlane) fix this for non-alpha keys\n // http://stackoverflow.com/questions/2220196/how-to-decode-character-pressed-from-jquerys-keydowns-event-handler?lq=1\n charPressed = String.fromCharCode(event.which || event.keyCode);\n }\n }\n if (event.keyCode == KEY_ENTER && event.wasClick && pos < this.startPos) {\n // put caret back in position prior to contenteditable menu click\n pos = this.startNode.length;\n setCaretPosition(this.startNode, pos, this.iframe);\n }\n //console.log(\"keyHandler\", this.startPos, pos, val, charPressed, event);\n let config = this.triggerChars[charPressed];\n if (config) {\n this.activeConfig = config;\n this.startPos = event.inputEvent ? pos - 1 : pos;\n this.startNode = (this.iframe ? this.iframe.contentWindow.getSelection() : window.getSelection()).anchorNode;\n this.searching = true;\n this.searchString = null;\n this.showSearchList(nativeElement);\n this.updateSearchList();\n if (config.returnTrigger) {\n this.searchTerm.emit(config.triggerChar);\n }\n }\n else if (this.startPos >= 0 && this.searching) {\n if (pos <= this.startPos) {\n this.searchList.hidden = true;\n }\n // ignore shift when pressed alone, but not when used with another key\n else if (event.keyCode !== KEY_SHIFT &&\n !event.metaKey &&\n !event.altKey &&\n !event.ctrlKey &&\n pos > this.startPos) {\n if (!this.activeConfig.allowSpace && event.keyCode === KEY_SPACE) {\n this.startPos = -1;\n }\n else if (event.keyCode === KEY_BACKSPACE && pos > 0) {\n pos--;\n if (pos == this.startPos) {\n this.stopSearch();\n }\n }\n else if (this.searchList.hidden) {\n if (event.keyCode === KEY_TAB || event.keyCode === KEY_ENTER) {\n this.stopSearch();\n return;\n }\n }\n else if (!this.searchList.hidden) {\n if (event.keyCode === KEY_TAB || event.keyCode === KEY_ENTER) {\n this.stopEvent(event);\n // emit the selected list item\n this.itemSelected.emit(this.searchList.activeItem);\n // optional function to format the selected item before inserting the text\n const text = this.activeConfig.mentionSelect(this.searchList.activeItem, this.activeConfig.triggerChar);\n // value is inserted without a trailing space for consistency\n // between element types (div and iframe do not preserve the space)\n insertValue(nativeElement, this.startPos, pos, text, this.iframe);\n // fire input event so angular bindings are updated\n if (\"createEvent\" in document) {\n let evt = document.createEvent(\"HTMLEvents\");\n if (this.iframe) {\n // a 'change' event is required to trigger tinymce updates\n evt.initEvent(\"change\", true, false);\n }\n else {\n evt.initEvent(\"input\", true, false);\n }\n // this seems backwards, but fire the event from this elements nativeElement (not the\n // one provided that may be in an iframe, as it won't be propogate)\n this._element.nativeElement.dispatchEvent(evt);\n }\n this.startPos = -1;\n this.stopSearch();\n return false;\n }\n else if (event.keyCode === KEY_ESCAPE) {\n this.stopEvent(event);\n this.stopSearch();\n return false;\n }\n else if (event.keyCode === KEY_DOWN) {\n this.stopEvent(event);\n this.searchList.activateNextItem();\n return false;\n }\n else if (event.keyCode === KEY_UP) {\n this.stopEvent(event);\n this.searchList.activatePreviousItem();\n return false;\n }\n }\n if (charPressed.length != 1 && event.keyCode != KEY_BACKSPACE) {\n this.stopEvent(event);\n return false;\n }\n else if (this.searching) {\n let mention = val.substring(this.startPos + 1, pos);\n if (event.keyCode !== KEY_BACKSPACE && !event.inputEvent) {\n mention += charPressed;\n }\n this.searchString = mention;\n if (this.activeConfig.returnTrigger) {\n const triggerChar = (this.searchString || event.keyCode === KEY_BACKSPACE) ? val.substring(this.startPos, this.startPos + 1) : '';\n this.searchTerm.emit(triggerChar + this.searchString);\n }\n else {\n this.searchTerm.emit(this.searchString);\n }\n this.updateSearchList();\n }\n }\n }\n }\n // exposed for external calls to open the mention list, e.g. by clicking a button\n startSearch(triggerChar, nativeElement = this._element.nativeElement) {\n triggerChar = triggerChar || this.mentionConfig.triggerChar || this.DEFAULT_CONFIG.triggerChar;\n const pos = getCaretPosition(nativeElement, this.iframe);\n insertValue(nativeElement, pos, pos, triggerChar, this.iframe);\n this.keyHandler({ key: triggerChar, inputEvent: true }, nativeElement);\n }\n stopSearch() {\n if (this.searchList && !this.searchList.hidden) {\n this.searchList.hidden = true;\n this.closed.emit();\n }\n this.activeConfig = null;\n this.searching = false;\n }\n updateSearchList() {\n let matches = [];\n if (this.activeConfig && this.activeConfig.items) {\n let objects = this.activeConfig.items;\n // disabling the search relies on the async operation to do the filtering\n if (!this.activeConfig.disableSearch && this.searchString && this.activeConfig.labelKey) {\n if (this.activeConfig.mentionFilter) {\n objects = this.activeConfig.mentionFilter(this.searchString, objects);\n }\n }\n matches = objects;\n if (this.activeConfig.maxItems > 0) {\n matches = matches.slice(0, this.activeConfig.maxItems);\n }\n }\n // update the search list\n if (this.searchList) {\n this.searchList.items = matches;\n this.searchList.hidden = matches.length == 0;\n }\n }\n showSearchList(nativeElement) {\n this.opened.emit();\n if (this.searchList == null) {\n let componentFactory = this._componentResolver.resolveComponentFactory(MentionListComponent);\n let componentRef = this._viewContainerRef.createComponent(componentFactory);\n this.searchList = componentRef.instance;\n this.searchList.itemTemplate = this.mentionListTemplate;\n componentRef.instance['itemClick'].subscribe(() => {\n nativeElement.focus();\n let fakeKeydown = { key: 'Enter', keyCode: KEY_ENTER, wasClick: true };\n this.keyHandler(fakeKeydown, nativeElement);\n });\n }\n this.searchList.labelKey = this.activeConfig.labelKey;\n this.searchList.dropUp = this.activeConfig.dropUp;\n this.searchList.styleOff = this.mentionConfig.disableStyle;\n this.searchList.activeIndex = 0;\n this.searchList.position(nativeElement, this.iframe);\n window.requestAnimationFrame(() => this.searchList.reset());\n }\n}\nMentionDirective.ɵfac = function MentionDirective_Factory(t) { return new (t || MentionDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nMentionDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MentionDirective, selectors: [[\"\", \"mention\", \"\"], [\"\", \"mentionConfig\", \"\"]], hostAttrs: [\"autocomplete\", \"off\"], hostBindings: function MentionDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function MentionDirective_keydown_HostBindingHandler($event) { return ctx.keyHandler($event); })(\"input\", function MentionDirective_input_HostBindingHandler($event) { return ctx.inputHandler($event); })(\"blur\", function MentionDirective_blur_HostBindingHandler($event) { return ctx.blurHandler($event); });\n } }, inputs: { mentionConfig: \"mentionConfig\", mention: \"mention\", mentionListTemplate: \"mentionListTemplate\" }, outputs: { searchTerm: \"searchTerm\", itemSelected: \"itemSelected\", opened: \"opened\", closed: \"closed\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nMentionDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: ComponentFactoryResolver },\n { type: ViewContainerRef }\n];\nMentionDirective.propDecorators = {\n mention: [{ type: Input, args: ['mention',] }],\n mentionConfig: [{ type: Input }],\n mentionListTemplate: [{ type: Input }],\n searchTerm: [{ type: Output }],\n itemSelected: [{ type: Output }],\n opened: [{ type: Output }],\n closed: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MentionDirective, [{\n type: Directive,\n args: [{\n selector: '[mention], [mentionConfig]',\n host: {\n '(keydown)': 'keyHandler($event)',\n '(input)': 'inputHandler($event)',\n '(blur)': 'blurHandler($event)',\n 'autocomplete': 'off'\n }\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ViewContainerRef }]; }, { mentionConfig: [{\n type: Input\n }], searchTerm: [{\n type: Output\n }], itemSelected: [{\n type: Output\n }], opened: [{\n type: Output\n }], closed: [{\n type: Output\n }], mention: [{\n type: Input,\n args: ['mention']\n }], mentionListTemplate: [{\n type: Input\n }] }); })();\n\nclass MentionModule {\n}\nMentionModule.ɵfac = function MentionModule_Factory(t) { return new (t || MentionModule)(); };\nMentionModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MentionModule });\nMentionModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CommonModule\n ]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MentionModule, [{\n type: NgModule,\n args: [{\n declarations: [\n MentionDirective,\n MentionListComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n MentionDirective\n ],\n entryComponents: [\n MentionListComponent\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MentionModule, { declarations: function () { return [MentionDirective, MentionListComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [MentionDirective]; } }); })();\n\n/*\n * Public API Surface of angular-mentions\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MentionDirective, MentionModule, MentionListComponent as ɵa };\n\n","import { wrap } from './optimism';\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar DepTrackingCache = (function () {\n function DepTrackingCache(data) {\n if (data === void 0) { data = Object.create(null); }\n var _this = this;\n this.data = data;\n this.depend = wrap(function (dataId) { return _this.data[dataId]; }, {\n disposable: true,\n makeCacheKey: function (dataId) {\n return dataId;\n }\n });\n }\n DepTrackingCache.prototype.toObject = function () {\n return this.data;\n };\n DepTrackingCache.prototype.get = function (dataId) {\n this.depend(dataId);\n return this.data[dataId];\n };\n DepTrackingCache.prototype.set = function (dataId, value) {\n var oldValue = this.data[dataId];\n if (value !== oldValue) {\n this.data[dataId] = value;\n this.depend.dirty(dataId);\n }\n };\n DepTrackingCache.prototype.delete = function (dataId) {\n if (hasOwn.call(this.data, dataId)) {\n delete this.data[dataId];\n this.depend.dirty(dataId);\n }\n };\n DepTrackingCache.prototype.clear = function () {\n this.replace(null);\n };\n DepTrackingCache.prototype.replace = function (newData) {\n var _this = this;\n if (newData) {\n Object.keys(newData).forEach(function (dataId) {\n _this.set(dataId, newData[dataId]);\n });\n Object.keys(this.data).forEach(function (dataId) {\n if (!hasOwn.call(newData, dataId)) {\n _this.delete(dataId);\n }\n });\n }\n else {\n Object.keys(this.data).forEach(function (dataId) {\n _this.delete(dataId);\n });\n }\n };\n return DepTrackingCache;\n}());\nexport { DepTrackingCache };\nexport function defaultNormalizedCacheFactory(seed) {\n return new DepTrackingCache(seed);\n}\n","var testMap = new Map();\nif (testMap.set(1, 2) !== testMap) {\n var set_1 = testMap.set;\n Map.prototype.set = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n set_1.apply(this, args);\n return this;\n };\n}\nvar testSet = new Set();\nif (testSet.add(3) !== testSet) {\n var add_1 = testSet.add;\n Set.prototype.add = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n add_1.apply(this, args);\n return this;\n };\n}\nvar frozen = {};\nif (typeof Object.freeze === 'function') {\n Object.freeze(frozen);\n}\ntry {\n testMap.set(frozen, frozen).delete(frozen);\n}\ncatch (_a) {\n var wrap = function (method) {\n return method && (function (obj) {\n try {\n testMap.set(obj, obj).delete(obj);\n }\n finally {\n return method.call(Object, obj);\n }\n });\n };\n Object.freeze = wrap(Object.freeze);\n Object.seal = wrap(Object.seal);\n Object.preventExtensions = wrap(Object.preventExtensions);\n}\n","import { isTest, warnOnceInDevelopment } from 'apollo-utilities';\nvar haveWarned = false;\nvar HeuristicFragmentMatcher = (function () {\n function HeuristicFragmentMatcher() {\n }\n HeuristicFragmentMatcher.prototype.ensureReady = function () {\n return Promise.resolve();\n };\n HeuristicFragmentMatcher.prototype.canBypassInit = function () {\n return true;\n };\n HeuristicFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n var obj = context.store.get(idValue.id);\n if (!obj && idValue.id === 'ROOT_QUERY') {\n return true;\n }\n if (!obj) {\n return false;\n }\n if (!obj.__typename) {\n if (!haveWarned) {\n console.warn(\"You're using fragments in your queries, but either don't have the addTypename:\\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\\n can accurately match fragments.\");\n console.warn('Could not find __typename on Fragment ', typeCondition, obj);\n console.warn(\"DEPRECATION WARNING: using fragments without __typename is unsupported behavior \" +\n \"and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.\");\n if (!isTest()) {\n haveWarned = true;\n }\n }\n return 'heuristic';\n }\n if (obj.__typename === typeCondition) {\n return true;\n }\n warnOnceInDevelopment('You are using the simple (heuristic) fragment matcher, but your ' +\n 'queries contain union or interface types. Apollo Client will not be ' +\n 'able to accurately map fragments. To make this error go away, use ' +\n 'the `IntrospectionFragmentMatcher` as described in the docs: ' +\n 'https://www.apollographql.com/docs/react/recipes/fragment-matching.html', 'error');\n return 'heuristic';\n };\n return HeuristicFragmentMatcher;\n}());\nexport { HeuristicFragmentMatcher };\nvar IntrospectionFragmentMatcher = (function () {\n function IntrospectionFragmentMatcher(options) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData);\n this.isReady = true;\n }\n else {\n this.isReady = false;\n }\n this.match = this.match.bind(this);\n }\n IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n if (!this.isReady) {\n throw new Error('FragmentMatcher.match() was called before FragmentMatcher.init()');\n }\n var obj = context.store.get(idValue.id);\n if (!obj) {\n return false;\n }\n if (!obj.__typename) {\n throw new Error(\"Cannot match fragment because __typename property is missing: \" + JSON.stringify(obj));\n }\n if (obj.__typename === typeCondition) {\n return true;\n }\n var implementingTypes = this.possibleTypesMap[typeCondition];\n if (implementingTypes && implementingTypes.indexOf(obj.__typename) > -1) {\n return true;\n }\n return false;\n };\n IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) {\n var typeMap = {};\n introspectionResultData.__schema.types.forEach(function (type) {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(function (implementingType) { return implementingType.name; });\n }\n });\n return typeMap;\n };\n return IntrospectionFragmentMatcher;\n}());\nexport { IntrospectionFragmentMatcher };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport './fixPolyfills';\nimport { ApolloCache } from 'apollo-cache';\nimport { getFragmentQueryDocument, addTypenameToDocument, } from 'apollo-utilities';\nimport { HeuristicFragmentMatcher } from './fragmentMatcher';\nimport { StoreReader } from './readFromStore';\nimport { StoreWriter } from './writeToStore';\nimport { DepTrackingCache } from './depTrackingCache';\nimport { wrap, CacheKeyNode } from './optimism';\nimport { ObjectCache } from './objectCache';\nimport { record } from './recordingCache';\nvar defaultConfig = {\n fragmentMatcher: new HeuristicFragmentMatcher(),\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n};\nexport function defaultDataIdFromObject(result) {\n if (result.__typename) {\n if (result.id !== undefined) {\n return result.__typename + \":\" + result.id;\n }\n if (result._id !== undefined) {\n return result.__typename + \":\" + result._id;\n }\n }\n return null;\n}\nvar InMemoryCache = (function (_super) {\n __extends(InMemoryCache, _super);\n function InMemoryCache(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this) || this;\n _this.optimistic = [];\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.cacheKeyRoot = new CacheKeyNode();\n _this.silenceBroadcast = false;\n _this.config = __assign({}, defaultConfig, config);\n if (_this.config.customResolvers) {\n console.warn('customResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating customResolvers in the next major version.');\n _this.config.cacheRedirects = _this.config.customResolvers;\n }\n if (_this.config.cacheResolvers) {\n console.warn('cacheResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating cacheResolvers in the next major version.');\n _this.config.cacheRedirects = _this.config.cacheResolvers;\n }\n _this.addTypename = _this.config.addTypename;\n _this.data = _this.config.resultCaching\n ? new DepTrackingCache()\n : new ObjectCache();\n _this.storeReader = new StoreReader(_this.cacheKeyRoot);\n _this.storeWriter = new StoreWriter();\n var cache = _this;\n var maybeBroadcastWatch = cache.maybeBroadcastWatch;\n _this.maybeBroadcastWatch = wrap(function (c) {\n return maybeBroadcastWatch.call(_this, c);\n }, {\n makeCacheKey: function (c) {\n if (c.optimistic && cache.optimistic.length > 0) {\n return;\n }\n if (c.previousResult) {\n return;\n }\n if (cache.data instanceof DepTrackingCache) {\n return cache.cacheKeyRoot.lookup(c.query, JSON.stringify(c.variables));\n }\n }\n });\n return _this;\n }\n InMemoryCache.prototype.restore = function (data) {\n if (data)\n this.data.replace(data);\n return this;\n };\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n if (optimistic && this.optimistic.length > 0) {\n var patches = this.optimistic.map(function (opt) { return opt.data; });\n return Object.assign.apply(Object, [{}, this.data.toObject()].concat(patches));\n }\n return this.data.toObject();\n };\n InMemoryCache.prototype.read = function (query) {\n if (query.rootId && this.data.get(query.rootId) === undefined) {\n return null;\n }\n var store = query.optimistic && this.optimistic.length\n ? new ObjectCache(this.extract(true))\n : this.data;\n return this.storeReader.readQueryFromStore({\n store: store,\n query: this.transformDocument(query.query),\n variables: query.variables,\n rootId: query.rootId,\n fragmentMatcherFunction: this.config.fragmentMatcher.match,\n previousResult: query.previousResult,\n config: this.config,\n });\n };\n InMemoryCache.prototype.write = function (write) {\n this.storeWriter.writeResultToStore({\n dataId: write.dataId,\n result: write.result,\n variables: write.variables,\n document: this.transformDocument(write.query),\n store: this.data,\n dataIdFromObject: this.config.dataIdFromObject,\n fragmentMatcherFunction: this.config.fragmentMatcher.match,\n });\n this.broadcastWatches();\n };\n InMemoryCache.prototype.diff = function (query) {\n var store = query.optimistic && this.optimistic.length\n ? new ObjectCache(this.extract(true))\n : this.data;\n return this.storeReader.diffQueryAgainstStore({\n store: store,\n query: this.transformDocument(query.query),\n variables: query.variables,\n returnPartialData: query.returnPartialData,\n previousResult: query.previousResult,\n fragmentMatcherFunction: this.config.fragmentMatcher.match,\n config: this.config,\n });\n };\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n this.watches.add(watch);\n return function () {\n _this.watches.delete(watch);\n };\n };\n InMemoryCache.prototype.evict = function (query) {\n throw new Error(\"eviction is not implemented on InMemory Cache\");\n };\n InMemoryCache.prototype.reset = function () {\n this.data.clear();\n this.broadcastWatches();\n return Promise.resolve();\n };\n InMemoryCache.prototype.removeOptimistic = function (id) {\n var _this = this;\n var toPerform = this.optimistic.filter(function (item) { return item.id !== id; });\n this.optimistic = [];\n toPerform.forEach(function (change) {\n _this.recordOptimisticTransaction(change.transaction, change.id);\n });\n this.broadcastWatches();\n };\n InMemoryCache.prototype.performTransaction = function (transaction) {\n var alreadySilenced = this.silenceBroadcast;\n this.silenceBroadcast = true;\n transaction(this);\n if (!alreadySilenced) {\n this.silenceBroadcast = false;\n }\n this.broadcastWatches();\n };\n InMemoryCache.prototype.recordOptimisticTransaction = function (transaction, id) {\n var _this = this;\n this.silenceBroadcast = true;\n var patch = record(this.extract(true), function (recordingCache) {\n var dataCache = _this.data;\n _this.data = recordingCache;\n _this.performTransaction(transaction);\n _this.data = dataCache;\n });\n this.optimistic.push({\n id: id,\n transaction: transaction,\n data: patch,\n });\n this.silenceBroadcast = false;\n this.broadcastWatches();\n };\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n };\n InMemoryCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.read({\n query: options.query,\n variables: options.variables,\n optimistic: optimistic,\n });\n };\n InMemoryCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.read({\n query: this.transformDocument(getFragmentQueryDocument(options.fragment, options.fragmentName)),\n variables: options.variables,\n rootId: options.id,\n optimistic: optimistic,\n });\n };\n InMemoryCache.prototype.writeQuery = function (options) {\n this.write({\n dataId: 'ROOT_QUERY',\n result: options.data,\n query: this.transformDocument(options.query),\n variables: options.variables,\n });\n };\n InMemoryCache.prototype.writeFragment = function (options) {\n this.write({\n dataId: options.id,\n result: options.data,\n query: this.transformDocument(getFragmentQueryDocument(options.fragment, options.fragmentName)),\n variables: options.variables,\n });\n };\n InMemoryCache.prototype.broadcastWatches = function () {\n var _this = this;\n if (!this.silenceBroadcast) {\n var optimistic_1 = this.optimistic.length > 0;\n this.watches.forEach(function (c) {\n _this.maybeBroadcastWatch(c);\n if (optimistic_1) {\n _this.maybeBroadcastWatch.dirty(c);\n }\n });\n }\n };\n InMemoryCache.prototype.maybeBroadcastWatch = function (c) {\n c.callback(this.diff({\n query: c.query,\n variables: c.variables,\n previousResult: c.previousResult && c.previousResult(),\n optimistic: c.optimistic,\n }));\n };\n return InMemoryCache;\n}(ApolloCache));\nexport { InMemoryCache };\n","export { InMemoryCache, defaultDataIdFromObject, } from './inMemoryCache';\nexport * from './readFromStore';\nexport * from './writeToStore';\nexport * from './fragmentMatcher';\nexport * from './objectCache';\nexport * from './recordingCache';\n","var ObjectCache = (function () {\n function ObjectCache(data) {\n if (data === void 0) { data = Object.create(null); }\n this.data = data;\n }\n ObjectCache.prototype.toObject = function () {\n return this.data;\n };\n ObjectCache.prototype.get = function (dataId) {\n return this.data[dataId];\n };\n ObjectCache.prototype.set = function (dataId, value) {\n this.data[dataId] = value;\n };\n ObjectCache.prototype.delete = function (dataId) {\n this.data[dataId] = undefined;\n };\n ObjectCache.prototype.clear = function () {\n this.data = Object.create(null);\n };\n ObjectCache.prototype.replace = function (newData) {\n this.data = newData || Object.create(null);\n };\n return ObjectCache;\n}());\nexport { ObjectCache };\nexport function defaultNormalizedCacheFactory(seed) {\n return new ObjectCache(seed);\n}\n","var wrap = require('optimism').wrap;\nexport { wrap };\nvar CacheKeyNode = (function () {\n function CacheKeyNode() {\n this.children = null;\n this.key = null;\n }\n CacheKeyNode.prototype.lookup = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return this.lookupArray(args);\n };\n CacheKeyNode.prototype.lookupArray = function (array) {\n var node = this;\n array.forEach(function (value) {\n node = node.getOrCreate(value);\n });\n return node.key || (node.key = Object.create(null));\n };\n CacheKeyNode.prototype.getOrCreate = function (value) {\n var map = this.children || (this.children = new Map());\n var node = map.get(value);\n if (!node) {\n map.set(value, node = new CacheKeyNode());\n }\n return node;\n };\n return CacheKeyNode;\n}());\nexport { CacheKeyNode };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { QueryDocumentKeys } from \"graphql/language/visitor\";\nvar CIRCULAR = Object.create(null);\nvar objToStr = Object.prototype.toString;\nvar QueryKeyMaker = (function () {\n function QueryKeyMaker(cacheKeyRoot) {\n this.cacheKeyRoot = cacheKeyRoot;\n this.perQueryKeyMakers = new Map();\n }\n QueryKeyMaker.prototype.forQuery = function (document) {\n if (!this.perQueryKeyMakers.has(document)) {\n this.perQueryKeyMakers.set(document, new PerQueryKeyMaker(this.cacheKeyRoot, document));\n }\n return this.perQueryKeyMakers.get(document);\n };\n return QueryKeyMaker;\n}());\nexport { QueryKeyMaker };\nvar PerQueryKeyMaker = (function () {\n function PerQueryKeyMaker(cacheKeyRoot, query) {\n this.cacheKeyRoot = cacheKeyRoot;\n this.query = query;\n this.cache = new Map;\n this.lookupArray = this.cacheMethod(this.lookupArray);\n this.lookupObject = this.cacheMethod(this.lookupObject);\n this.lookupFragmentSpread = this.cacheMethod(this.lookupFragmentSpread);\n }\n PerQueryKeyMaker.prototype.cacheMethod = function (method) {\n var _this = this;\n return function (value) {\n if (_this.cache.has(value)) {\n var cached = _this.cache.get(value);\n if (cached === CIRCULAR) {\n throw new Error(\"QueryKeyMaker cannot handle circular query structures\");\n }\n return cached;\n }\n _this.cache.set(value, CIRCULAR);\n try {\n var result = method.call(_this, value);\n _this.cache.set(value, result);\n return result;\n }\n catch (e) {\n _this.cache.delete(value);\n throw e;\n }\n };\n };\n PerQueryKeyMaker.prototype.lookupQuery = function (document) {\n return this.lookupObject(document);\n };\n PerQueryKeyMaker.prototype.lookupSelectionSet = function (selectionSet) {\n return this.lookupObject(selectionSet);\n };\n PerQueryKeyMaker.prototype.lookupFragmentSpread = function (fragmentSpread) {\n var name = fragmentSpread.name.value;\n var fragment = null;\n this.query.definitions.some(function (definition) {\n if (definition.kind === \"FragmentDefinition\" &&\n definition.name.value === name) {\n fragment = definition;\n return true;\n }\n return false;\n });\n return this.lookupObject(__assign({}, fragmentSpread, { fragment: fragment }));\n };\n PerQueryKeyMaker.prototype.lookupAny = function (value) {\n if (Array.isArray(value)) {\n return this.lookupArray(value);\n }\n if (typeof value === \"object\" && value !== null) {\n if (value.kind === \"FragmentSpread\") {\n return this.lookupFragmentSpread(value);\n }\n return this.lookupObject(value);\n }\n return value;\n };\n PerQueryKeyMaker.prototype.lookupArray = function (array) {\n var elements = array.map(this.lookupAny, this);\n return this.cacheKeyRoot.lookup(objToStr.call(array), this.cacheKeyRoot.lookupArray(elements));\n };\n PerQueryKeyMaker.prototype.lookupObject = function (object) {\n var _this = this;\n var keys = safeSortedKeys(object);\n var values = keys.map(function (key) { return _this.lookupAny(object[key]); });\n return this.cacheKeyRoot.lookup(objToStr.call(object), this.cacheKeyRoot.lookupArray(keys), this.cacheKeyRoot.lookupArray(values));\n };\n return PerQueryKeyMaker;\n}());\nvar queryKeyMap = Object.create(null);\nObject.keys(QueryDocumentKeys).forEach(function (parentKind) {\n var childKeys = queryKeyMap[parentKind] = Object.create(null);\n QueryDocumentKeys[parentKind].forEach(function (childKey) {\n childKeys[childKey] = true;\n });\n if (parentKind === \"FragmentSpread\") {\n childKeys[\"fragment\"] = true;\n }\n});\nfunction safeSortedKeys(object) {\n var keys = Object.keys(object);\n var keyCount = keys.length;\n var knownKeys = typeof object.kind === \"string\" && queryKeyMap[object.kind];\n var target = 0;\n for (var source = target; source < keyCount; ++source) {\n var key = keys[source];\n var value = object[key];\n var isObjectOrArray = value !== null && typeof value === \"object\";\n if (!isObjectOrArray || !knownKeys || knownKeys[key] === true) {\n keys[target++] = key;\n }\n }\n keys.length = target;\n return keys.sort();\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { assign, getDefaultValues, getQueryDefinition, isEqual, argumentsObjectFromField, createFragmentMap, getDirectiveInfoFromField, getFragmentDefinitions, getMainDefinition, getStoreKeyName, isField, isIdValue, isInlineFragment, isJsonValue, resultKeyNameFromField, shouldInclude, toIdValue, } from 'apollo-utilities';\nimport { wrap, CacheKeyNode } from './optimism';\nimport { DepTrackingCache } from './depTrackingCache';\nimport { QueryKeyMaker } from './queryKeyMaker';\nvar StoreReader = (function () {\n function StoreReader(cacheKeyRoot) {\n if (cacheKeyRoot === void 0) { cacheKeyRoot = new CacheKeyNode; }\n var _this = this;\n this.cacheKeyRoot = cacheKeyRoot;\n var reader = this;\n var executeStoreQuery = reader.executeStoreQuery, executeSelectionSet = reader.executeSelectionSet;\n reader.keyMaker = new QueryKeyMaker(cacheKeyRoot);\n this.executeStoreQuery = wrap(function (options) {\n return executeStoreQuery.call(_this, options);\n }, {\n makeCacheKey: function (_a) {\n var query = _a.query, rootValue = _a.rootValue, contextValue = _a.contextValue, variableValues = _a.variableValues, fragmentMatcher = _a.fragmentMatcher;\n if (contextValue.store instanceof DepTrackingCache) {\n return reader.cacheKeyRoot.lookup(reader.keyMaker.forQuery(query).lookupQuery(query), contextValue.store, fragmentMatcher, JSON.stringify(variableValues), rootValue.id);\n }\n return;\n }\n });\n this.executeSelectionSet = wrap(function (options) {\n return executeSelectionSet.call(_this, options);\n }, {\n makeCacheKey: function (_a) {\n var selectionSet = _a.selectionSet, rootValue = _a.rootValue, execContext = _a.execContext;\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return reader.cacheKeyRoot.lookup(reader.keyMaker.forQuery(execContext.query).lookupSelectionSet(selectionSet), execContext.contextValue.store, execContext.fragmentMatcher, JSON.stringify(execContext.variableValues), rootValue.id);\n }\n return;\n }\n });\n }\n StoreReader.prototype.readQueryFromStore = function (options) {\n var optsPatch = { returnPartialData: false };\n return this.diffQueryAgainstStore(__assign({}, options, optsPatch)).result;\n };\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store, query = _a.query, variables = _a.variables, previousResult = _a.previousResult, _b = _a.returnPartialData, returnPartialData = _b === void 0 ? true : _b, _c = _a.rootId, rootId = _c === void 0 ? 'ROOT_QUERY' : _c, fragmentMatcherFunction = _a.fragmentMatcherFunction, config = _a.config;\n var queryDefinition = getQueryDefinition(query);\n variables = assign({}, getDefaultValues(queryDefinition), variables);\n var context = {\n store: store,\n dataIdFromObject: (config && config.dataIdFromObject) || null,\n cacheRedirects: (config && config.cacheRedirects) || {},\n };\n var execResult = this.executeStoreQuery({\n query: query,\n rootValue: {\n type: 'id',\n id: rootId,\n generated: true,\n typename: 'Query',\n },\n contextValue: context,\n variableValues: variables,\n fragmentMatcher: fragmentMatcherFunction,\n });\n var hasMissingFields = execResult.missing && execResult.missing.length > 0;\n if (hasMissingFields && !returnPartialData) {\n execResult.missing.forEach(function (info) {\n if (info.tolerable)\n return;\n throw new Error(\"Can't find field \" + info.fieldName + \" on object \" + JSON.stringify(info.object, null, 2) + \".\");\n });\n }\n if (previousResult) {\n if (isEqual(previousResult, execResult.result)) {\n execResult.result = previousResult;\n }\n }\n return {\n result: execResult.result,\n complete: !hasMissingFields,\n };\n };\n StoreReader.prototype.executeStoreQuery = function (_a) {\n var query = _a.query, rootValue = _a.rootValue, contextValue = _a.contextValue, variableValues = _a.variableValues, _b = _a.fragmentMatcher, fragmentMatcher = _b === void 0 ? defaultFragmentMatcher : _b;\n var mainDefinition = getMainDefinition(query);\n var fragments = getFragmentDefinitions(query);\n var fragmentMap = createFragmentMap(fragments);\n var execContext = {\n query: query,\n fragmentMap: fragmentMap,\n contextValue: contextValue,\n variableValues: variableValues,\n fragmentMatcher: fragmentMatcher,\n };\n return this.executeSelectionSet({\n selectionSet: mainDefinition.selectionSet,\n rootValue: rootValue,\n execContext: execContext,\n });\n };\n StoreReader.prototype.executeSelectionSet = function (_a) {\n var _this = this;\n var selectionSet = _a.selectionSet, rootValue = _a.rootValue, execContext = _a.execContext;\n var fragmentMap = execContext.fragmentMap, contextValue = execContext.contextValue, variables = execContext.variableValues;\n var finalResult = {\n result: {},\n };\n var objectsToMerge = [];\n var object = contextValue.store.get(rootValue.id);\n var typename = (object && object.__typename) ||\n (rootValue.id === 'ROOT_QUERY' && 'Query') ||\n void 0;\n function handleMissing(result) {\n var _a;\n if (result.missing) {\n finalResult.missing = finalResult.missing || [];\n (_a = finalResult.missing).push.apply(_a, result.missing);\n }\n return result.result;\n }\n selectionSet.selections.forEach(function (selection) {\n var _a;\n if (!shouldInclude(selection, variables)) {\n return;\n }\n if (isField(selection)) {\n var fieldResult = handleMissing(_this.executeField(object, typename, selection, execContext));\n if (typeof fieldResult !== 'undefined') {\n objectsToMerge.push((_a = {},\n _a[resultKeyNameFromField(selection)] = fieldResult,\n _a));\n }\n }\n else {\n var fragment = void 0;\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n fragment = fragmentMap[selection.name.value];\n if (!fragment) {\n throw new Error(\"No fragment named \" + selection.name.value);\n }\n }\n var typeCondition = fragment.typeCondition.name.value;\n var match = execContext.fragmentMatcher(rootValue, typeCondition, contextValue);\n if (match) {\n var fragmentExecResult = _this.executeSelectionSet({\n selectionSet: fragment.selectionSet,\n rootValue: rootValue,\n execContext: execContext,\n });\n if (match === 'heuristic' && fragmentExecResult.missing) {\n fragmentExecResult = __assign({}, fragmentExecResult, { missing: fragmentExecResult.missing.map(function (info) {\n return __assign({}, info, { tolerable: true });\n }) });\n }\n objectsToMerge.push(handleMissing(fragmentExecResult));\n }\n }\n });\n merge(finalResult.result, objectsToMerge);\n return finalResult;\n };\n StoreReader.prototype.executeField = function (object, typename, field, execContext) {\n var variables = execContext.variableValues, contextValue = execContext.contextValue;\n var fieldName = field.name.value;\n var args = argumentsObjectFromField(field, variables);\n var info = {\n resultKey: resultKeyNameFromField(field),\n directives: getDirectiveInfoFromField(field, variables),\n };\n var readStoreResult = readStoreResolver(object, typename, fieldName, args, contextValue, info);\n if (Array.isArray(readStoreResult.result)) {\n return this.combineExecResults(readStoreResult, this.executeSubSelectedArray(field, readStoreResult.result, execContext));\n }\n if (!field.selectionSet) {\n assertSelectionSetForIdValue(field, readStoreResult.result);\n return readStoreResult;\n }\n if (readStoreResult.result == null) {\n return readStoreResult;\n }\n return this.combineExecResults(readStoreResult, this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: readStoreResult.result,\n execContext: execContext,\n }));\n };\n StoreReader.prototype.combineExecResults = function () {\n var execResults = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n execResults[_i] = arguments[_i];\n }\n var missing = null;\n execResults.forEach(function (execResult) {\n if (execResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, execResult.missing);\n }\n });\n return {\n result: execResults.pop().result,\n missing: missing,\n };\n };\n StoreReader.prototype.executeSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n var missing = null;\n function handleMissing(childResult) {\n if (childResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, childResult.missing);\n }\n return childResult.result;\n }\n result = result.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray(field, item, execContext));\n }\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: item,\n execContext: execContext,\n }));\n }\n assertSelectionSetForIdValue(field, item);\n return item;\n });\n return { result: result, missing: missing };\n };\n return StoreReader;\n}());\nexport { StoreReader };\nfunction assertSelectionSetForIdValue(field, value) {\n if (!field.selectionSet && isIdValue(value)) {\n throw new Error(\"Missing selection set for object of type \" + value.typename + \" returned for query field \" + field.name.value);\n }\n}\nfunction defaultFragmentMatcher() {\n return true;\n}\nexport function assertIdValue(idValue) {\n if (!isIdValue(idValue)) {\n throw new Error(\"Encountered a sub-selection on the query, but the store doesn't have an object reference. This should never happen during normal use unless you have custom code that is directly manipulating the store; please file an issue.\");\n }\n}\nfunction readStoreResolver(object, typename, fieldName, args, context, _a) {\n var resultKey = _a.resultKey, directives = _a.directives;\n var storeKeyName = fieldName;\n if (args || directives) {\n storeKeyName = getStoreKeyName(storeKeyName, args, directives);\n }\n var fieldValue = void 0;\n if (object) {\n fieldValue = object[storeKeyName];\n if (typeof fieldValue === 'undefined' &&\n context.cacheRedirects &&\n typeof typename === 'string') {\n var type = context.cacheRedirects[typename];\n if (type) {\n var resolver = type[fieldName];\n if (resolver) {\n fieldValue = resolver(object, args, {\n getCacheKey: function (storeObj) {\n return toIdValue({\n id: context.dataIdFromObject(storeObj),\n typename: storeObj.__typename,\n });\n },\n });\n }\n }\n }\n }\n if (typeof fieldValue === 'undefined') {\n return {\n result: fieldValue,\n missing: [{\n object: object,\n fieldName: storeKeyName,\n tolerable: false,\n }],\n };\n }\n if (isJsonValue(fieldValue)) {\n fieldValue = fieldValue.json;\n }\n return {\n result: fieldValue,\n };\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction merge(target, sources) {\n var pastCopies = [];\n sources.forEach(function (source) {\n mergeHelper(target, source, pastCopies);\n });\n return target;\n}\nfunction mergeHelper(target, source, pastCopies) {\n if (source !== null && typeof source === 'object') {\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n Object.keys(source).forEach(function (sourceKey) {\n var sourceValue = source[sourceKey];\n if (hasOwn.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies);\n }\n }\n else {\n target[sourceKey] = sourceValue;\n }\n });\n }\n return target;\n}\nfunction shallowCopyForMerge(value, pastCopies) {\n if (value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = __assign({}, value);\n }\n pastCopies.push(value);\n }\n return value;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar RecordingCache = (function () {\n function RecordingCache(data) {\n if (data === void 0) { data = {}; }\n this.data = data;\n this.recordedData = {};\n }\n RecordingCache.prototype.record = function (transaction) {\n transaction(this);\n var recordedData = this.recordedData;\n this.recordedData = {};\n return recordedData;\n };\n RecordingCache.prototype.toObject = function () {\n return __assign({}, this.data, this.recordedData);\n };\n RecordingCache.prototype.get = function (dataId) {\n if (this.recordedData.hasOwnProperty(dataId)) {\n return this.recordedData[dataId];\n }\n return this.data[dataId];\n };\n RecordingCache.prototype.set = function (dataId, value) {\n if (this.get(dataId) !== value) {\n this.recordedData[dataId] = value;\n }\n };\n RecordingCache.prototype.delete = function (dataId) {\n this.recordedData[dataId] = undefined;\n };\n RecordingCache.prototype.clear = function () {\n var _this = this;\n Object.keys(this.data).forEach(function (dataId) { return _this.delete(dataId); });\n this.recordedData = {};\n };\n RecordingCache.prototype.replace = function (newData) {\n this.clear();\n this.recordedData = __assign({}, newData);\n };\n return RecordingCache;\n}());\nexport { RecordingCache };\nexport function record(startingState, transaction) {\n var recordingCache = new RecordingCache(startingState);\n return recordingCache.record(transaction);\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { print } from 'graphql/language/printer';\nimport { assign, createFragmentMap, getDefaultValues, getFragmentDefinitions, getOperationDefinition, isField, isIdValue, isInlineFragment, isProduction, resultKeyNameFromField, shouldInclude, storeKeyNameFromField, toIdValue, isEqual, } from 'apollo-utilities';\nimport { ObjectCache } from './objectCache';\nimport { defaultNormalizedCacheFactory } from './depTrackingCache';\nvar WriteError = (function (_super) {\n __extends(WriteError, _super);\n function WriteError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'WriteError';\n return _this;\n }\n return WriteError;\n}(Error));\nexport { WriteError };\nexport function enhanceErrorWithDocument(error, document) {\n var enhancedError = new WriteError(\"Error writing result to store for query:\\n \" + print(document));\n enhancedError.message += '\\n' + error.message;\n enhancedError.stack = error.stack;\n return enhancedError;\n}\nvar StoreWriter = (function () {\n function StoreWriter() {\n }\n StoreWriter.prototype.writeQueryToStore = function (_a) {\n var query = _a.query, result = _a.result, _b = _a.store, store = _b === void 0 ? defaultNormalizedCacheFactory() : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, fragmentMatcherFunction = _a.fragmentMatcherFunction;\n return this.writeResultToStore({\n dataId: 'ROOT_QUERY',\n result: result,\n document: query,\n store: store,\n variables: variables,\n dataIdFromObject: dataIdFromObject,\n fragmentMatcherFunction: fragmentMatcherFunction,\n });\n };\n StoreWriter.prototype.writeResultToStore = function (_a) {\n var dataId = _a.dataId, result = _a.result, document = _a.document, _b = _a.store, store = _b === void 0 ? defaultNormalizedCacheFactory() : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, fragmentMatcherFunction = _a.fragmentMatcherFunction;\n var operationDefinition = getOperationDefinition(document);\n try {\n return this.writeSelectionSetToStore({\n result: result,\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n context: {\n store: store,\n processedData: {},\n variables: assign({}, getDefaultValues(operationDefinition), variables),\n dataIdFromObject: dataIdFromObject,\n fragmentMap: createFragmentMap(getFragmentDefinitions(document)),\n fragmentMatcherFunction: fragmentMatcherFunction,\n },\n });\n }\n catch (e) {\n throw enhanceErrorWithDocument(e, document);\n }\n };\n StoreWriter.prototype.writeSelectionSetToStore = function (_a) {\n var _this = this;\n var result = _a.result, dataId = _a.dataId, selectionSet = _a.selectionSet, context = _a.context;\n var variables = context.variables, store = context.store, fragmentMap = context.fragmentMap;\n selectionSet.selections.forEach(function (selection) {\n if (!shouldInclude(selection, variables)) {\n return;\n }\n if (isField(selection)) {\n var resultFieldKey = resultKeyNameFromField(selection);\n var value = result[resultFieldKey];\n if (typeof value !== 'undefined') {\n _this.writeFieldToStore({\n dataId: dataId,\n value: value,\n field: selection,\n context: context,\n });\n }\n else {\n var isDefered = selection.directives &&\n selection.directives.length &&\n selection.directives.some(function (directive) { return directive.name && directive.name.value === 'defer'; });\n if (!isDefered && context.fragmentMatcherFunction) {\n if (!isProduction()) {\n console.warn(\"Missing field \" + resultFieldKey + \" in \" + JSON.stringify(result, null, 2).substring(0, 100));\n }\n }\n }\n }\n else {\n var fragment = void 0;\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n fragment = (fragmentMap || {})[selection.name.value];\n if (!fragment) {\n throw new Error(\"No fragment named \" + selection.name.value + \".\");\n }\n }\n var matches = true;\n if (context.fragmentMatcherFunction && fragment.typeCondition) {\n var idValue = toIdValue({ id: 'self', typename: undefined });\n var fakeContext = {\n store: new ObjectCache({ self: result }),\n cacheRedirects: {},\n };\n var match = context.fragmentMatcherFunction(idValue, fragment.typeCondition.name.value, fakeContext);\n if (!isProduction() && match === 'heuristic') {\n console.error('WARNING: heuristic fragment matching going on!');\n }\n matches = !!match;\n }\n if (matches) {\n _this.writeSelectionSetToStore({\n result: result,\n selectionSet: fragment.selectionSet,\n dataId: dataId,\n context: context,\n });\n }\n }\n });\n return store;\n };\n StoreWriter.prototype.writeFieldToStore = function (_a) {\n var field = _a.field, value = _a.value, dataId = _a.dataId, context = _a.context;\n var _b;\n var variables = context.variables, dataIdFromObject = context.dataIdFromObject, store = context.store;\n var storeValue;\n var storeObject;\n var storeFieldName = storeKeyNameFromField(field, variables);\n if (!field.selectionSet || value === null) {\n storeValue =\n value != null && typeof value === 'object'\n ?\n { type: 'json', json: value }\n :\n value;\n }\n else if (Array.isArray(value)) {\n var generatedId = dataId + \".\" + storeFieldName;\n storeValue = this.processArrayValue(value, generatedId, field.selectionSet, context);\n }\n else {\n var valueDataId = dataId + \".\" + storeFieldName;\n var generated = true;\n if (!isGeneratedId(valueDataId)) {\n valueDataId = '$' + valueDataId;\n }\n if (dataIdFromObject) {\n var semanticId = dataIdFromObject(value);\n if (semanticId && isGeneratedId(semanticId)) {\n throw new Error('IDs returned by dataIdFromObject cannot begin with the \"$\" character.');\n }\n if (semanticId ||\n (typeof semanticId === 'number' && semanticId === 0)) {\n valueDataId = semanticId;\n generated = false;\n }\n }\n if (!isDataProcessed(valueDataId, field, context.processedData)) {\n this.writeSelectionSetToStore({\n dataId: valueDataId,\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n });\n }\n var typename = value.__typename;\n storeValue = toIdValue({ id: valueDataId, typename: typename }, generated);\n storeObject = store.get(dataId);\n var escapedId = storeObject && storeObject[storeFieldName];\n if (escapedId !== storeValue && isIdValue(escapedId)) {\n var hadTypename = escapedId.typename !== undefined;\n var hasTypename = typename !== undefined;\n var typenameChanged = hadTypename && hasTypename && escapedId.typename !== typename;\n if (generated && !escapedId.generated && !typenameChanged) {\n throw new Error(\"Store error: the application attempted to write an object with no provided id\" +\n (\" but the store already contains an id of \" + escapedId.id + \" for this object. The selectionSet\") +\n \" that was trying to be written is:\\n\" +\n print(field));\n }\n if (hadTypename && !hasTypename) {\n throw new Error(\"Store error: the application attempted to write an object with no provided typename\" +\n (\" but the store already contains an object with typename of \" + escapedId.typename + \" for the object of id \" + escapedId.id + \". The selectionSet\") +\n \" that was trying to be written is:\\n\" +\n print(field));\n }\n if (escapedId.generated) {\n if (typenameChanged) {\n if (!generated) {\n store.delete(escapedId.id);\n }\n }\n else {\n mergeWithGenerated(escapedId.id, storeValue.id, store);\n }\n }\n }\n }\n storeObject = store.get(dataId);\n if (!storeObject || !isEqual(storeValue, storeObject[storeFieldName])) {\n store.set(dataId, __assign({}, storeObject, (_b = {}, _b[storeFieldName] = storeValue, _b)));\n }\n };\n StoreWriter.prototype.processArrayValue = function (value, generatedId, selectionSet, context) {\n var _this = this;\n return value.map(function (item, index) {\n if (item === null) {\n return null;\n }\n var itemDataId = generatedId + \".\" + index;\n if (Array.isArray(item)) {\n return _this.processArrayValue(item, itemDataId, selectionSet, context);\n }\n var generated = true;\n if (context.dataIdFromObject) {\n var semanticId = context.dataIdFromObject(item);\n if (semanticId) {\n itemDataId = semanticId;\n generated = false;\n }\n }\n if (!isDataProcessed(itemDataId, selectionSet, context.processedData)) {\n _this.writeSelectionSetToStore({\n dataId: itemDataId,\n result: item,\n selectionSet: selectionSet,\n context: context,\n });\n }\n return toIdValue({ id: itemDataId, typename: item.__typename }, generated);\n });\n };\n return StoreWriter;\n}());\nexport { StoreWriter };\nfunction isGeneratedId(id) {\n return id[0] === '$';\n}\nfunction mergeWithGenerated(generatedKey, realKey, cache) {\n if (generatedKey === realKey) {\n return false;\n }\n var generated = cache.get(generatedKey);\n var real = cache.get(realKey);\n var madeChanges = false;\n Object.keys(generated).forEach(function (key) {\n var value = generated[key];\n var realValue = real[key];\n if (isIdValue(value) &&\n isGeneratedId(value.id) &&\n isIdValue(realValue) &&\n !isEqual(value, realValue) &&\n mergeWithGenerated(value.id, realValue.id, cache)) {\n madeChanges = true;\n }\n });\n cache.delete(generatedKey);\n var newRealValue = __assign({}, generated, real);\n if (isEqual(newRealValue, real)) {\n return madeChanges;\n }\n cache.set(realKey, newRealValue);\n return true;\n}\nfunction isDataProcessed(dataId, field, processedData) {\n if (!processedData) {\n return false;\n }\n if (processedData[dataId]) {\n if (processedData[dataId].indexOf(field) >= 0) {\n return true;\n }\n else {\n processedData[dataId].push(field);\n }\n }\n else {\n processedData[dataId] = [field];\n }\n return false;\n}\n","import { getFragmentQueryDocument } from 'apollo-utilities';\n\nfunction queryFromPojo(obj) {\n var op = {\n kind: 'OperationDefinition',\n operation: 'query',\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n var out = {\n kind: 'Document',\n definitions: [op],\n };\n return out;\n}\nfunction fragmentFromPojo(obj, typename) {\n var frag = {\n kind: 'FragmentDefinition',\n typeCondition: {\n kind: 'NamedType',\n name: {\n kind: 'Name',\n value: typename || '__FakeType',\n },\n },\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n var out = {\n kind: 'Document',\n definitions: [frag],\n };\n return out;\n}\nfunction selectionSetFromObj(obj) {\n if (typeof obj === 'number' ||\n typeof obj === 'boolean' ||\n typeof obj === 'string' ||\n typeof obj === 'undefined' ||\n obj === null) {\n return null;\n }\n if (Array.isArray(obj)) {\n return selectionSetFromObj(obj[0]);\n }\n var selections = [];\n Object.keys(obj).forEach(function (key) {\n var nestedSelSet = selectionSetFromObj(obj[key]);\n var field = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: key,\n },\n selectionSet: nestedSelSet || undefined,\n };\n selections.push(field);\n });\n var selectionSet = {\n kind: 'SelectionSet',\n selections: selections,\n };\n return selectionSet;\n}\nvar justTypenameQuery = {\n kind: 'Document',\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n name: null,\n variableDefinitions: null,\n directives: [],\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'Field',\n alias: null,\n name: {\n kind: 'Name',\n value: '__typename',\n },\n arguments: [],\n directives: [],\n selectionSet: null,\n },\n ],\n },\n },\n ],\n};\n\nvar ApolloCache = (function () {\n function ApolloCache() {\n }\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.read({\n query: options.query,\n variables: options.variables,\n optimistic: optimistic,\n });\n };\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.read({\n query: getFragmentQueryDocument(options.fragment, options.fragmentName),\n variables: options.variables,\n rootId: options.id,\n optimistic: optimistic,\n });\n };\n ApolloCache.prototype.writeQuery = function (options) {\n this.write({\n dataId: 'ROOT_QUERY',\n result: options.data,\n query: options.query,\n variables: options.variables,\n });\n };\n ApolloCache.prototype.writeFragment = function (options) {\n this.write({\n dataId: options.id,\n result: options.data,\n variables: options.variables,\n query: getFragmentQueryDocument(options.fragment, options.fragmentName),\n });\n };\n ApolloCache.prototype.writeData = function (_a) {\n var id = _a.id, data = _a.data;\n if (typeof id !== 'undefined') {\n var typenameResult = null;\n try {\n typenameResult = this.read({\n rootId: id,\n optimistic: false,\n query: justTypenameQuery,\n });\n }\n catch (e) {\n }\n var __typename = (typenameResult && typenameResult.__typename) || '__ClientData';\n var dataToWrite = Object.assign({ __typename: __typename }, data);\n this.writeFragment({\n id: id,\n fragment: fragmentFromPojo(dataToWrite, __typename),\n data: dataToWrite,\n });\n }\n else {\n this.writeQuery({ query: queryFromPojo(data), data: data });\n }\n };\n return ApolloCache;\n}());\n\nvar Cache;\n(function (Cache) {\n})(Cache || (Cache = {}));\n\nexport { ApolloCache, Cache };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ApolloLink, execute, } from 'apollo-link';\nimport { isProduction, removeConnectionDirectiveFromDocument, } from 'apollo-utilities';\nimport { QueryManager } from './core/QueryManager';\nimport { DataStore } from './data/store';\nimport { version } from './version';\nvar hasSuggestedDevtools = false;\nvar ApolloClient = (function () {\n function ApolloClient(options) {\n var _this = this;\n this.defaultOptions = {};\n this.resetStoreCallbacks = [];\n var link = options.link, cache = options.cache, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, connectToDevTools = options.connectToDevTools, _c = options.queryDeduplication, queryDeduplication = _c === void 0 ? true : _c, defaultOptions = options.defaultOptions;\n if (!link || !cache) {\n throw new Error(\"\\n In order to initialize Apollo Client, you must specify link & cache properties on the config object.\\n This is part of the required upgrade when migrating from Apollo Client 1.0 to Apollo Client 2.0.\\n For more information, please visit:\\n https://www.apollographql.com/docs/react/basics/setup.html\\n to help you get started.\\n \");\n }\n var supportedCache = new Map();\n var supportedDirectives = new ApolloLink(function (operation, forward) {\n var result = supportedCache.get(operation.query);\n if (!result) {\n result = removeConnectionDirectiveFromDocument(operation.query);\n supportedCache.set(operation.query, result);\n supportedCache.set(result, result);\n }\n operation.query = result;\n return forward(operation);\n });\n this.link = supportedDirectives.concat(link);\n this.cache = cache;\n this.store = new DataStore(cache);\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.ssrMode = ssrMode;\n this.defaultOptions = defaultOptions || {};\n if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n }\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n var defaultConnectToDevTools = !isProduction() &&\n typeof window !== 'undefined' &&\n !window.__APOLLO_CLIENT__;\n if (typeof connectToDevTools === 'undefined'\n ? defaultConnectToDevTools\n : connectToDevTools && typeof window !== 'undefined') {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && !isProduction()) {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self) {\n if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n if (window.navigator &&\n window.navigator.userAgent &&\n window.navigator.userAgent.indexOf('Chrome') > -1) {\n console.debug('Download the Apollo DevTools ' +\n 'for a better development experience: ' +\n 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm');\n }\n }\n }\n }\n this.version = version;\n }\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = __assign({}, this.defaultOptions.watchQuery, options);\n }\n if (this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')) {\n options = __assign({}, options, { fetchPolicy: 'cache-first' });\n }\n return this.initQueryManager().watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = __assign({}, this.defaultOptions.query, options);\n }\n if (options.fetchPolicy === 'cache-and-network') {\n throw new Error('cache-and-network fetchPolicy can only be used with watchQuery');\n }\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign({}, options, { fetchPolicy: 'cache-first' });\n }\n return this.initQueryManager().query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = __assign({}, this.defaultOptions.mutate, options);\n }\n return this.initQueryManager().mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n return this.initQueryManager().startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.initProxy().readQuery(options, optimistic);\n };\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.initProxy().readFragment(options, optimistic);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n var result = this.initProxy().writeQuery(options);\n this.initQueryManager().broadcastQueries();\n return result;\n };\n ApolloClient.prototype.writeFragment = function (options) {\n var result = this.initProxy().writeFragment(options);\n this.initQueryManager().broadcastQueries();\n return result;\n };\n ApolloClient.prototype.writeData = function (options) {\n var result = this.initProxy().writeData(options);\n this.initQueryManager().broadcastQueries();\n return result;\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n ApolloClient.prototype.initQueryManager = function () {\n var _this = this;\n if (!this.queryManager) {\n this.queryManager = new QueryManager({\n link: this.link,\n store: this.store,\n queryDeduplication: this.queryDeduplication,\n ssrMode: this.ssrMode,\n onBroadcast: function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager\n ? _this.queryManager.queryStore.getStore()\n : {},\n mutations: _this.queryManager\n ? _this.queryManager.mutationStore.getStore()\n : {},\n },\n dataWithOptimisticResults: _this.cache.extract(true),\n });\n }\n },\n });\n }\n return this.queryManager;\n };\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () {\n return _this.queryManager\n ? _this.queryManager.clearStore()\n : Promise.resolve(null);\n })\n .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); })\n .then(function () {\n return _this.queryManager && _this.queryManager.reFetchObservableQueries\n ? _this.queryManager.reFetchObservableQueries()\n : Promise.resolve(null);\n });\n };\n ApolloClient.prototype.clearStore = function () {\n var queryManager = this.queryManager;\n return Promise.resolve().then(function () { return (queryManager ? queryManager.clearStore() : Promise.resolve(null)); });\n };\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager\n ? this.queryManager.reFetchObservableQueries(includeStandby)\n : Promise.resolve(null);\n };\n ApolloClient.prototype.extract = function (optimistic) {\n return this.initProxy().extract(optimistic);\n };\n ApolloClient.prototype.restore = function (serializedState) {\n return this.initProxy().restore(serializedState);\n };\n ApolloClient.prototype.initProxy = function () {\n if (!this.proxy) {\n this.initQueryManager();\n this.proxy = this.cache;\n }\n return this.proxy;\n };\n return ApolloClient;\n}());\nexport default ApolloClient;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { isEqual, tryFunctionOrLogError, cloneDeep } from 'apollo-utilities';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport { Observable } from '../util/Observable';\nimport { ApolloError } from '../errors/ApolloError';\nimport { FetchType } from './types';\nexport var hasError = function (storeValue, policy) {\n if (policy === void 0) { policy = 'none'; }\n return storeValue &&\n ((storeValue.graphQLErrors &&\n storeValue.graphQLErrors.length > 0 &&\n policy === 'none') ||\n storeValue.networkError);\n};\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var scheduler = _a.scheduler, options = _a.options, _b = _a.shouldSubscribe, shouldSubscribe = _b === void 0 ? true : _b;\n var _this = _super.call(this, function (observer) {\n return _this.onSubscribe(observer);\n }) || this;\n _this.isCurrentlyPolling = false;\n _this.isTornDown = false;\n _this.options = options;\n _this.variables = options.variables || {};\n _this.queryId = scheduler.queryManager.generateQueryId();\n _this.shouldSubscribe = shouldSubscribe;\n _this.scheduler = scheduler;\n _this.queryManager = scheduler.queryManager;\n _this.observers = [];\n _this.subscriptionHandles = [];\n return _this;\n }\n ObservableQuery.prototype.result = function () {\n var that = this;\n return new Promise(function (resolve, reject) {\n var subscription;\n var observer = {\n next: function (result) {\n resolve(result);\n if (!that.observers.some(function (obs) { return obs !== observer; })) {\n that.queryManager.removeQuery(that.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: function (error) {\n reject(error);\n },\n };\n subscription = that.subscribe(observer);\n });\n };\n ObservableQuery.prototype.currentResult = function () {\n if (this.isTornDown) {\n return {\n data: this.lastError ? {} : this.lastResult ? this.lastResult.data : {},\n error: this.lastError,\n loading: false,\n networkStatus: NetworkStatus.error,\n };\n }\n var queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n if (hasError(queryStoreValue, this.options.errorPolicy)) {\n return {\n data: {},\n loading: false,\n networkStatus: queryStoreValue.networkStatus,\n error: new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }),\n };\n }\n var _a = this.queryManager.getCurrentQueryResult(this), data = _a.data, partial = _a.partial;\n var queryLoading = !queryStoreValue ||\n queryStoreValue.networkStatus === NetworkStatus.loading;\n var loading = (this.options.fetchPolicy === 'network-only' && queryLoading) ||\n (partial && this.options.fetchPolicy !== 'cache-only');\n var networkStatus;\n if (queryStoreValue) {\n networkStatus = queryStoreValue.networkStatus;\n }\n else {\n networkStatus = loading ? NetworkStatus.loading : NetworkStatus.ready;\n }\n var result = {\n data: data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus,\n };\n if (queryStoreValue &&\n queryStoreValue.graphQLErrors &&\n this.options.errorPolicy === 'all') {\n result.errors = queryStoreValue.graphQLErrors;\n }\n if (!partial) {\n this.lastResult = __assign({}, result, { stale: false });\n this.lastResultSnapshot = cloneDeep(this.lastResult);\n }\n return __assign({}, result, { partial: partial });\n };\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult) {\n var snapshot = this.lastResultSnapshot;\n return !(snapshot && newResult &&\n snapshot.networkStatus === newResult.networkStatus &&\n snapshot.stale === newResult.stale &&\n isEqual(snapshot.data, newResult.data));\n };\n ObservableQuery.prototype.getLastResult = function () {\n return this.lastResult;\n };\n ObservableQuery.prototype.getLastError = function () {\n return this.lastError;\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.refetch = function (variables) {\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === 'cache-only') {\n return Promise.reject(new Error('cache-only fetchPolicy option should not be used together with query refetch.'));\n }\n if (!isEqual(this.variables, variables)) {\n this.variables = Object.assign({}, this.variables, variables);\n }\n if (!isEqual(this.options.variables, this.variables)) {\n this.options.variables = Object.assign({}, this.options.variables, this.variables);\n }\n var isNetworkFetchPolicy = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n var combinedOptions = __assign({}, this.options, { fetchPolicy: isNetworkFetchPolicy ? fetchPolicy : 'network-only' });\n return this.queryManager\n .fetchQuery(this.queryId, combinedOptions, FetchType.refetch)\n .then(function (result) { return result; });\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n if (!fetchMoreOptions.updateQuery) {\n throw new Error('updateQuery option is required. This function defines how to update the query data with the new results.');\n }\n var combinedOptions;\n return Promise.resolve()\n .then(function () {\n var qid = _this.queryManager.generateQueryId();\n if (fetchMoreOptions.query) {\n combinedOptions = fetchMoreOptions;\n }\n else {\n combinedOptions = __assign({}, _this.options, fetchMoreOptions, { variables: Object.assign({}, _this.variables, fetchMoreOptions.variables) });\n }\n combinedOptions.fetchPolicy = 'network-only';\n return _this.queryManager.fetchQuery(qid, combinedOptions, FetchType.normal, _this.queryId);\n })\n .then(function (fetchMoreResult) {\n _this.updateQuery(function (previousResult) {\n return fetchMoreOptions.updateQuery(previousResult, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables,\n });\n });\n return fetchMoreResult;\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n })\n .subscribe({\n next: function (subscriptionData) {\n if (options.updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return options.updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables,\n });\n });\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n console.error('Unhandled GraphQL subscription error', err);\n },\n });\n this.subscriptionHandles.push(subscription);\n return function () {\n var i = _this.subscriptionHandles.indexOf(subscription);\n if (i >= 0) {\n _this.subscriptionHandles.splice(i, 1);\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (opts) {\n var oldOptions = this.options;\n this.options = Object.assign({}, this.options, opts);\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n }\n else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n var tryFetch = (oldOptions.fetchPolicy !== 'network-only' &&\n opts.fetchPolicy === 'network-only') ||\n (oldOptions.fetchPolicy === 'cache-only' &&\n opts.fetchPolicy !== 'cache-only') ||\n (oldOptions.fetchPolicy === 'standby' &&\n opts.fetchPolicy !== 'standby') ||\n false;\n return this.setVariables(this.options.variables, tryFetch, opts.fetchResults);\n };\n ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) {\n if (tryFetch === void 0) { tryFetch = false; }\n if (fetchResults === void 0) { fetchResults = true; }\n this.isTornDown = false;\n var newVariables = variables ? variables : this.variables;\n if (isEqual(newVariables, this.variables) && !tryFetch) {\n if (this.observers.length === 0 || !fetchResults) {\n return new Promise(function (resolve) { return resolve(); });\n }\n return this.result();\n }\n else {\n this.variables = newVariables;\n this.options.variables = newVariables;\n if (this.observers.length === 0) {\n return new Promise(function (resolve) { return resolve(); });\n }\n return this.queryManager\n .fetchQuery(this.queryId, __assign({}, this.options, { variables: this.variables }))\n .then(function (result) { return result; });\n }\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var _a = this.queryManager.getQueryWithPreviousResult(this.queryId), previousResult = _a.previousResult, variables = _a.variables, document = _a.document;\n var newResult = tryFunctionOrLogError(function () {\n return mapFn(previousResult, { variables: variables });\n });\n if (newResult) {\n this.queryManager.dataStore.markUpdateQueryResult(document, variables, newResult);\n this.queryManager.broadcastQueries();\n }\n };\n ObservableQuery.prototype.stopPolling = function () {\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n this.isCurrentlyPolling = false;\n }\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n if (this.options.fetchPolicy === 'cache-first' ||\n this.options.fetchPolicy === 'cache-only') {\n throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n }\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.isCurrentlyPolling = false;\n }\n this.options.pollInterval = pollInterval;\n this.isCurrentlyPolling = true;\n this.scheduler.startPollingQuery(this.options, this.queryId);\n };\n ObservableQuery.prototype.onSubscribe = function (observer) {\n var _this = this;\n if (observer._subscription &&\n observer._subscription._observer &&\n !observer._subscription._observer.error) {\n observer._subscription._observer.error = function (error) {\n console.error('Unhandled error', error.message, error.stack);\n };\n }\n this.observers.push(observer);\n if (observer.next && this.lastResult)\n observer.next(this.lastResult);\n if (observer.error && this.lastError)\n observer.error(this.lastError);\n if (this.observers.length === 1)\n this.setUpQuery();\n return function () {\n _this.observers = _this.observers.filter(function (obs) { return obs !== observer; });\n if (_this.observers.length === 0) {\n _this.tearDownQuery();\n }\n };\n };\n ObservableQuery.prototype.setUpQuery = function () {\n var _this = this;\n if (this.shouldSubscribe) {\n this.queryManager.addObservableQuery(this.queryId, this);\n }\n if (!!this.options.pollInterval) {\n if (this.options.fetchPolicy === 'cache-first' ||\n this.options.fetchPolicy === 'cache-only') {\n throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n }\n this.isCurrentlyPolling = true;\n this.scheduler.startPollingQuery(this.options, this.queryId);\n }\n var observer = {\n next: function (result) {\n _this.lastResult = result;\n _this.lastResultSnapshot = cloneDeep(result);\n _this.observers.forEach(function (obs) { return obs.next && obs.next(result); });\n },\n error: function (error) {\n _this.lastError = error;\n _this.observers.forEach(function (obs) { return obs.error && obs.error(error); });\n },\n };\n this.queryManager.startQuery(this.queryId, this.options, this.queryManager.queryListenerForObserver(this.queryId, this.options, observer));\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n this.isTornDown = true;\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.isCurrentlyPolling = false;\n }\n this.subscriptionHandles.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptionHandles = [];\n this.queryManager.removeObservableQuery(this.queryId);\n this.queryManager.stopQuery(this.queryId);\n this.observers = [];\n };\n return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { execute, ApolloLink } from 'apollo-link';\nimport { print } from 'graphql/language/printer';\nimport { DedupLink as Deduplicator } from 'apollo-link-dedup';\nimport { assign, getDefaultValues, getMutationDefinition, getOperationDefinition, getOperationName, getQueryDefinition, isProduction, hasDirectives, } from 'apollo-utilities';\nimport { QueryScheduler } from '../scheduler/scheduler';\nimport { isApolloError, ApolloError } from '../errors/ApolloError';\nimport { Observable } from '../util/Observable';\nimport { MutationStore } from '../data/mutations';\nimport { QueryStore } from '../data/queries';\nimport { ObservableQuery } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport { FetchType, } from './types';\nimport { graphQLResultHasError } from 'apollo-utilities';\nvar QueryManager = (function () {\n function QueryManager(_a) {\n var link = _a.link, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, store = _a.store, _c = _a.onBroadcast, onBroadcast = _c === void 0 ? function () { return undefined; } : _c, _d = _a.ssrMode, ssrMode = _d === void 0 ? false : _d;\n this.mutationStore = new MutationStore();\n this.queryStore = new QueryStore();\n this.idCounter = 1;\n this.queries = new Map();\n this.fetchQueryPromises = new Map();\n this.queryIdsByName = {};\n this.link = link;\n this.deduplicator = ApolloLink.from([new Deduplicator(), link]);\n this.queryDeduplication = queryDeduplication;\n this.dataStore = store;\n this.onBroadcast = onBroadcast;\n this.scheduler = new QueryScheduler({ queryManager: this, ssrMode: ssrMode });\n }\n QueryManager.prototype.mutate = function (_a) {\n var _this = this;\n var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueriesByName = _a.updateQueries, _b = _a.refetchQueries, refetchQueries = _b === void 0 ? [] : _b, _c = _a.awaitRefetchQueries, awaitRefetchQueries = _c === void 0 ? false : _c, updateWithProxyFn = _a.update, _d = _a.errorPolicy, errorPolicy = _d === void 0 ? 'none' : _d, fetchPolicy = _a.fetchPolicy, _e = _a.context, context = _e === void 0 ? {} : _e;\n if (!mutation) {\n throw new Error('mutation option is required. You must specify your GraphQL document in the mutation option.');\n }\n if (fetchPolicy && fetchPolicy !== 'no-cache') {\n throw new Error(\"fetchPolicy for mutations currently only supports the 'no-cache' policy\");\n }\n var mutationId = this.generateQueryId();\n var cache = this.dataStore.getCache();\n (mutation = cache.transformDocument(mutation)),\n (variables = assign({}, getDefaultValues(getMutationDefinition(mutation)), variables));\n var mutationString = print(mutation);\n this.setQuery(mutationId, function () { return ({ document: mutation }); });\n var generateUpdateQueriesInfo = function () {\n var ret = {};\n if (updateQueriesByName) {\n Object.keys(updateQueriesByName).forEach(function (queryName) {\n return (_this.queryIdsByName[queryName] || []).forEach(function (queryId) {\n ret[queryId] = {\n updater: updateQueriesByName[queryName],\n query: _this.queryStore.get(queryId),\n };\n });\n });\n }\n return ret;\n };\n this.mutationStore.initMutation(mutationId, mutationString, variables);\n this.dataStore.markMutationInit({\n mutationId: mutationId,\n document: mutation,\n variables: variables || {},\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n optimisticResponse: optimisticResponse,\n });\n this.broadcastQueries();\n return new Promise(function (resolve, reject) {\n var storeResult;\n var error;\n var operation = _this.buildOperationForLink(mutation, variables, __assign({}, context, { optimisticResponse: optimisticResponse }));\n var completeMutation = function () { return __awaiter(_this, void 0, void 0, function () {\n var refetchQueryPromises, _i, refetchQueries_1, refetchQuery, promise, queryOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (error) {\n this.mutationStore.markMutationError(mutationId, error);\n }\n this.dataStore.markMutationComplete({\n mutationId: mutationId,\n optimisticResponse: optimisticResponse,\n });\n this.broadcastQueries();\n if (error) {\n throw error;\n }\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult);\n }\n refetchQueryPromises = [];\n for (_i = 0, refetchQueries_1 = refetchQueries; _i < refetchQueries_1.length; _i++) {\n refetchQuery = refetchQueries_1[_i];\n if (typeof refetchQuery === 'string') {\n promise = this.refetchQueryByName(refetchQuery);\n if (promise) {\n refetchQueryPromises.push(promise);\n }\n continue;\n }\n queryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only',\n };\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n refetchQueryPromises.push(this.query(queryOptions));\n }\n if (!awaitRefetchQueries) return [3, 2];\n return [4, Promise.all(refetchQueryPromises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.setQuery(mutationId, function () { return ({ document: undefined }); });\n if (errorPolicy === 'ignore' &&\n storeResult &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n return [2, storeResult];\n }\n });\n }); };\n execute(_this.link, operation).subscribe({\n next: function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors,\n });\n return;\n }\n _this.mutationStore.markMutationResult(mutationId);\n if (fetchPolicy !== 'no-cache') {\n _this.dataStore.markMutationResult({\n mutationId: mutationId,\n result: result,\n document: mutation,\n variables: variables || {},\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n }\n storeResult = result;\n },\n error: function (err) {\n _this.mutationStore.markMutationError(mutationId, err);\n _this.dataStore.markMutationComplete({\n mutationId: mutationId,\n optimisticResponse: optimisticResponse,\n });\n _this.broadcastQueries();\n _this.setQuery(mutationId, function () { return ({ document: undefined }); });\n reject(new ApolloError({\n networkError: err,\n }));\n },\n complete: function () { return completeMutation().then(resolve, reject); },\n });\n });\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, fetchType, fetchMoreForQueryId) {\n var _this = this;\n var _a = options.variables, variables = _a === void 0 ? {} : _a, _b = options.metadata, metadata = _b === void 0 ? null : _b, _c = options.fetchPolicy, fetchPolicy = _c === void 0 ? 'cache-first' : _c;\n var cache = this.dataStore.getCache();\n var query = cache.transformDocument(options.query);\n var storeResult;\n var needToFetch = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n if (fetchType !== FetchType.refetch &&\n fetchPolicy !== 'network-only' &&\n fetchPolicy !== 'no-cache') {\n var _d = this.dataStore.getCache().diff({\n query: query,\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }), complete = _d.complete, result = _d.result;\n needToFetch = !complete || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n var shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n if (hasDirectives(['live'], query))\n shouldFetch = true;\n var requestId = this.generateRequestId();\n var cancel = this.updateQueryWatch(queryId, query, options);\n this.setQuery(queryId, function () { return ({\n document: query,\n lastRequestId: requestId,\n invalidated: true,\n cancel: cancel,\n }); });\n this.invalidate(true, fetchMoreForQueryId);\n this.queryStore.initQuery({\n queryId: queryId,\n document: query,\n storePreviousVariables: shouldFetch,\n variables: variables,\n isPoll: fetchType === FetchType.poll,\n isRefetch: fetchType === FetchType.refetch,\n metadata: metadata,\n fetchMoreForQueryId: fetchMoreForQueryId,\n });\n this.broadcastQueries();\n var shouldDispatchClientResult = !shouldFetch || fetchPolicy === 'cache-and-network';\n if (shouldDispatchClientResult) {\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.invalidate(true, queryId, fetchMoreForQueryId);\n this.broadcastQueries();\n }\n if (shouldFetch) {\n var networkResult = this.fetchRequest({\n requestId: requestId,\n queryId: queryId,\n document: query,\n options: options,\n fetchMoreForQueryId: fetchMoreForQueryId,\n }).catch(function (error) {\n if (isApolloError(error)) {\n throw error;\n }\n else {\n var lastRequestId = _this.getQuery(queryId).lastRequestId;\n if (requestId >= (lastRequestId || 1)) {\n _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n _this.invalidate(true, queryId, fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n _this.removeFetchQueryPromise(requestId);\n throw new ApolloError({ networkError: error });\n }\n });\n if (fetchPolicy !== 'cache-and-network') {\n return networkResult;\n }\n else {\n networkResult.catch(function () { });\n }\n }\n return Promise.resolve({ data: storeResult });\n };\n QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) {\n var _this = this;\n var previouslyHadError = false;\n return function (queryStoreValue, newData) {\n _this.invalidate(false, queryId);\n if (!queryStoreValue)\n return;\n var observableQuery = _this.getQuery(queryId).observableQuery;\n var fetchPolicy = observableQuery\n ? observableQuery.options.fetchPolicy\n : options.fetchPolicy;\n if (fetchPolicy === 'standby')\n return;\n var errorPolicy = observableQuery\n ? observableQuery.options.errorPolicy\n : options.errorPolicy;\n var lastResult = observableQuery\n ? observableQuery.getLastResult()\n : null;\n var lastError = observableQuery ? observableQuery.getLastError() : null;\n var shouldNotifyIfLoading = (!newData && queryStoreValue.previousVariables != null) ||\n fetchPolicy === 'cache-only' ||\n fetchPolicy === 'cache-and-network';\n var networkStatusChanged = Boolean(lastResult &&\n queryStoreValue.networkStatus !== lastResult.networkStatus);\n var errorStatusChanged = errorPolicy &&\n (lastError && lastError.graphQLErrors) !==\n queryStoreValue.graphQLErrors &&\n errorPolicy !== 'none';\n if (!isNetworkRequestInFlight(queryStoreValue.networkStatus) ||\n (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n shouldNotifyIfLoading) {\n if (((!errorPolicy || errorPolicy === 'none') &&\n queryStoreValue.graphQLErrors &&\n queryStoreValue.graphQLErrors.length > 0) ||\n queryStoreValue.networkError) {\n var apolloError_1 = new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n });\n previouslyHadError = true;\n if (observer.error) {\n try {\n observer.error(apolloError_1);\n }\n catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n else {\n setTimeout(function () {\n throw apolloError_1;\n }, 0);\n if (!isProduction()) {\n console.info('An unhandled error was thrown because no error handler is registered ' +\n 'for the query ' +\n print(queryStoreValue.document));\n }\n }\n return;\n }\n try {\n var data = void 0;\n var isMissing = void 0;\n if (newData) {\n if (fetchPolicy !== 'no-cache') {\n _this.setQuery(queryId, function () { return ({ newData: null }); });\n }\n data = newData.result;\n isMissing = !newData.complete || false;\n }\n else {\n if (lastResult && lastResult.data && !errorStatusChanged) {\n data = lastResult.data;\n isMissing = false;\n }\n else {\n var document_1 = _this.getQuery(queryId).document;\n var readResult = _this.dataStore.getCache().diff({\n query: document_1,\n variables: queryStoreValue.previousVariables ||\n queryStoreValue.variables,\n optimistic: true,\n });\n data = readResult.result;\n isMissing = !readResult.complete;\n }\n }\n var resultFromStore = void 0;\n if (isMissing && fetchPolicy !== 'cache-only') {\n resultFromStore = {\n data: lastResult && lastResult.data,\n loading: isNetworkRequestInFlight(queryStoreValue.networkStatus),\n networkStatus: queryStoreValue.networkStatus,\n stale: true,\n };\n }\n else {\n resultFromStore = {\n data: data,\n loading: isNetworkRequestInFlight(queryStoreValue.networkStatus),\n networkStatus: queryStoreValue.networkStatus,\n stale: false,\n };\n }\n if (errorPolicy === 'all' &&\n queryStoreValue.graphQLErrors &&\n queryStoreValue.graphQLErrors.length > 0) {\n resultFromStore.errors = queryStoreValue.graphQLErrors;\n }\n if (observer.next) {\n if (previouslyHadError ||\n !observableQuery ||\n observableQuery.isDifferentFromLastResult(resultFromStore)) {\n try {\n observer.next(resultFromStore);\n }\n catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n previouslyHadError = false;\n }\n catch (error) {\n previouslyHadError = true;\n if (observer.error)\n observer.error(new ApolloError({ networkError: error }));\n return;\n }\n }\n };\n };\n QueryManager.prototype.watchQuery = function (options, shouldSubscribe) {\n if (shouldSubscribe === void 0) { shouldSubscribe = true; }\n if (options.fetchPolicy === 'standby') {\n throw new Error('client.watchQuery cannot be called with fetchPolicy set to \"standby\"');\n }\n var queryDefinition = getQueryDefinition(options.query);\n if (queryDefinition.variableDefinitions &&\n queryDefinition.variableDefinitions.length) {\n var defaultValues = getDefaultValues(queryDefinition);\n options.variables = assign({}, defaultValues, options.variables);\n }\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var transformedOptions = __assign({}, options);\n return new ObservableQuery({\n scheduler: this.scheduler,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe,\n });\n };\n QueryManager.prototype.query = function (options) {\n var _this = this;\n if (!options.query) {\n throw new Error('query option is required. You must specify your GraphQL document ' +\n 'in the query option.');\n }\n if (options.query.kind !== 'Document') {\n throw new Error('You must wrap the query string in a \"gql\" tag.');\n }\n if (options.returnPartialData) {\n throw new Error('returnPartialData option only supported on watchQuery.');\n }\n if (options.pollInterval) {\n throw new Error('pollInterval option only supported on watchQuery.');\n }\n var requestId = this.idCounter;\n return new Promise(function (resolve, reject) {\n _this.addFetchQueryPromise(requestId, resolve, reject);\n return _this.watchQuery(options, false)\n .result()\n .then(function (result) {\n _this.removeFetchQueryPromise(requestId);\n resolve(result);\n })\n .catch(function (error) {\n _this.removeFetchQueryPromise(requestId);\n reject(error);\n });\n });\n };\n QueryManager.prototype.generateQueryId = function () {\n var queryId = this.idCounter.toString();\n this.idCounter++;\n return queryId;\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.queryStore.stopQuery(queryId);\n this.invalidate(true, queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.addQueryListener = function (queryId, listener) {\n this.setQuery(queryId, function (_a) {\n var _b = _a.listeners, listeners = _b === void 0 ? [] : _b;\n return ({\n listeners: listeners.concat([listener]),\n invalidate: false,\n });\n });\n };\n QueryManager.prototype.updateQueryWatch = function (queryId, document, options) {\n var _this = this;\n var cancel = this.getQuery(queryId).cancel;\n if (cancel)\n cancel();\n var previousResult = function () {\n var previousResult = null;\n var observableQuery = _this.getQuery(queryId).observableQuery;\n if (observableQuery) {\n var lastResult = observableQuery.getLastResult();\n if (lastResult) {\n previousResult = lastResult.data;\n }\n }\n return previousResult;\n };\n return this.dataStore.getCache().watch({\n query: document,\n variables: options.variables,\n optimistic: true,\n previousResult: previousResult,\n callback: function (newData) {\n _this.setQuery(queryId, function () { return ({ invalidated: true, newData: newData }); });\n },\n });\n };\n QueryManager.prototype.addFetchQueryPromise = function (requestId, resolve, reject) {\n this.fetchQueryPromises.set(requestId.toString(), {\n resolve: resolve,\n reject: reject,\n });\n };\n QueryManager.prototype.removeFetchQueryPromise = function (requestId) {\n this.fetchQueryPromises.delete(requestId.toString());\n };\n QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) {\n this.setQuery(queryId, function () { return ({ observableQuery: observableQuery }); });\n var queryDef = getQueryDefinition(observableQuery.options.query);\n if (queryDef.name && queryDef.name.value) {\n var queryName = queryDef.name.value;\n this.queryIdsByName[queryName] = this.queryIdsByName[queryName] || [];\n this.queryIdsByName[queryName].push(observableQuery.queryId);\n }\n };\n QueryManager.prototype.removeObservableQuery = function (queryId) {\n var _a = this.getQuery(queryId), observableQuery = _a.observableQuery, cancel = _a.cancel;\n if (cancel)\n cancel();\n if (!observableQuery)\n return;\n var definition = getQueryDefinition(observableQuery.options.query);\n var queryName = definition.name ? definition.name.value : null;\n this.setQuery(queryId, function () { return ({ observableQuery: null }); });\n if (queryName) {\n this.queryIdsByName[queryName] = this.queryIdsByName[queryName].filter(function (val) {\n return !(observableQuery.queryId === val);\n });\n }\n };\n QueryManager.prototype.clearStore = function () {\n this.fetchQueryPromises.forEach(function (_a) {\n var reject = _a.reject;\n reject(new Error('Store reset while query was in flight(not completed in link chain)'));\n });\n var resetIds = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (observableQuery)\n resetIds.push(queryId);\n });\n this.queryStore.reset(resetIds);\n this.mutationStore.reset();\n var reset = this.dataStore.reset();\n return reset;\n };\n QueryManager.prototype.resetStore = function () {\n var _this = this;\n return this.clearStore().then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var observableQueryPromises = this.getObservableQueryPromises(includeStandby);\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.startQuery = function (queryId, options, listener) {\n this.addQueryListener(queryId, listener);\n this.fetchQuery(queryId, options)\n .catch(function () { return undefined; });\n return queryId;\n };\n QueryManager.prototype.startGraphQLSubscription = function (options) {\n var _this = this;\n var query = options.query;\n var isCacheEnabled = !(options.fetchPolicy && options.fetchPolicy === 'no-cache');\n var cache = this.dataStore.getCache();\n var transformedDoc = cache.transformDocument(query);\n var variables = assign({}, getDefaultValues(getOperationDefinition(query)), options.variables);\n var sub;\n var observers = [];\n return new Observable(function (observer) {\n observers.push(observer);\n if (observers.length === 1) {\n var handler = {\n next: function (result) {\n if (isCacheEnabled) {\n _this.dataStore.markSubscriptionResult(result, transformedDoc, variables);\n _this.broadcastQueries();\n }\n observers.forEach(function (obs) {\n if (graphQLResultHasError(result) && obs.error) {\n obs.error(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n else if (obs.next) {\n obs.next(result);\n }\n });\n },\n error: function (error) {\n observers.forEach(function (obs) {\n if (obs.error) {\n obs.error(error);\n }\n });\n },\n };\n var operation = _this.buildOperationForLink(transformedDoc, variables);\n sub = execute(_this.link, operation).subscribe(handler);\n }\n return function () {\n observers = observers.filter(function (obs) { return obs !== observer; });\n if (observers.length === 0 && sub) {\n sub.unsubscribe();\n }\n };\n });\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryInStore(queryId);\n this.removeQuery(queryId);\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n var subscriptions = this.getQuery(queryId).subscriptions;\n subscriptions.forEach(function (x) { return x.unsubscribe(); });\n this.queries.delete(queryId);\n };\n QueryManager.prototype.getCurrentQueryResult = function (observableQuery, optimistic) {\n if (optimistic === void 0) { optimistic = true; }\n var _a = observableQuery.options, variables = _a.variables, query = _a.query;\n var lastResult = observableQuery.getLastResult();\n var newData = this.getQuery(observableQuery.queryId).newData;\n if (newData && newData.complete) {\n return { data: newData.result, partial: false };\n }\n else {\n try {\n var data = this.dataStore.getCache().read({\n query: query,\n variables: variables,\n previousResult: lastResult ? lastResult.data : undefined,\n optimistic: optimistic,\n });\n return { data: data, partial: false };\n }\n catch (e) {\n return { data: {}, partial: true };\n }\n }\n };\n QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable) {\n var observableQuery;\n if (typeof queryIdOrObservable === 'string') {\n var foundObserveableQuery = this.getQuery(queryIdOrObservable).observableQuery;\n if (!foundObserveableQuery) {\n throw new Error(\"ObservableQuery with this id doesn't exist: \" + queryIdOrObservable);\n }\n observableQuery = foundObserveableQuery;\n }\n else {\n observableQuery = queryIdOrObservable;\n }\n var _a = observableQuery.options, variables = _a.variables, query = _a.query;\n var data = this.getCurrentQueryResult(observableQuery, false).data;\n return {\n previousResult: data,\n variables: variables,\n document: query,\n };\n };\n QueryManager.prototype.broadcastQueries = function () {\n var _this = this;\n this.onBroadcast();\n this.queries.forEach(function (info, id) {\n if (!info.invalidated || !info.listeners)\n return;\n info.listeners\n .filter(function (x) { return !!x; })\n .forEach(function (listener) {\n listener(_this.queryStore.get(id), info.newData);\n });\n });\n };\n QueryManager.prototype.getObservableQueryPromises = function (includeStandby) {\n var _this = this;\n var observableQueryPromises = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (!observableQuery)\n return;\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n if (fetchPolicy !== 'cache-only' &&\n (includeStandby || fetchPolicy !== 'standby')) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n _this.setQuery(queryId, function () { return ({ newData: null }); });\n _this.invalidate(true, queryId);\n });\n return observableQueryPromises;\n };\n QueryManager.prototype.fetchRequest = function (_a) {\n var _this = this;\n var requestId = _a.requestId, queryId = _a.queryId, document = _a.document, options = _a.options, fetchMoreForQueryId = _a.fetchMoreForQueryId;\n var variables = options.variables, context = options.context, _b = options.errorPolicy, errorPolicy = _b === void 0 ? 'none' : _b, fetchPolicy = options.fetchPolicy;\n var operation = this.buildOperationForLink(document, variables, __assign({}, context, { forceFetch: !this.queryDeduplication }));\n var resultFromStore;\n var errorsFromStore;\n return new Promise(function (resolve, reject) {\n _this.addFetchQueryPromise(requestId, resolve, reject);\n var subscription = execute(_this.deduplicator, operation).subscribe({\n next: function (result) {\n var lastRequestId = _this.getQuery(queryId).lastRequestId;\n if (requestId >= (lastRequestId || 1)) {\n if (fetchPolicy !== 'no-cache') {\n try {\n _this.dataStore.markQueryResult(result, document, variables, fetchMoreForQueryId, errorPolicy === 'ignore' || errorPolicy === 'all');\n }\n catch (e) {\n reject(e);\n return;\n }\n }\n else {\n _this.setQuery(queryId, function () { return ({\n newData: { result: result.data, complete: true },\n }); });\n }\n _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId);\n _this.invalidate(true, queryId, fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n if (result.errors && errorPolicy === 'none') {\n reject(new ApolloError({\n graphQLErrors: result.errors,\n }));\n return;\n }\n else if (errorPolicy === 'all') {\n errorsFromStore = result.errors;\n }\n if (fetchMoreForQueryId || fetchPolicy === 'no-cache') {\n resultFromStore = result.data;\n }\n else {\n try {\n resultFromStore = _this.dataStore.getCache().read({\n variables: variables,\n query: document,\n optimistic: false,\n });\n }\n catch (e) { }\n }\n },\n error: function (error) {\n _this.removeFetchQueryPromise(requestId);\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n return ({\n subscriptions: subscriptions.filter(function (x) { return x !== subscription; }),\n });\n });\n reject(error);\n },\n complete: function () {\n _this.removeFetchQueryPromise(requestId);\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n return ({\n subscriptions: subscriptions.filter(function (x) { return x !== subscription; }),\n });\n });\n resolve({\n data: resultFromStore,\n errors: errorsFromStore,\n loading: false,\n networkStatus: NetworkStatus.ready,\n stale: false,\n });\n },\n });\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n return ({\n subscriptions: subscriptions.concat([subscription]),\n });\n });\n });\n };\n QueryManager.prototype.refetchQueryByName = function (queryName) {\n var _this = this;\n var refetchedQueries = this.queryIdsByName[queryName];\n if (refetchedQueries === undefined)\n return;\n return Promise.all(refetchedQueries\n .map(function (id) { return _this.getQuery(id).observableQuery; })\n .filter(function (x) { return !!x; })\n .map(function (x) { return x.refetch(); }));\n };\n QueryManager.prototype.generateRequestId = function () {\n var requestId = this.idCounter;\n this.idCounter++;\n return requestId;\n };\n QueryManager.prototype.getQuery = function (queryId) {\n return this.queries.get(queryId) || {\n listeners: [],\n invalidated: false,\n document: null,\n newData: null,\n lastRequestId: null,\n observableQuery: null,\n subscriptions: [],\n };\n };\n QueryManager.prototype.setQuery = function (queryId, updater) {\n var prev = this.getQuery(queryId);\n var newInfo = __assign({}, prev, updater(prev));\n this.queries.set(queryId, newInfo);\n };\n QueryManager.prototype.invalidate = function (invalidated, queryId, fetchMoreForQueryId) {\n if (queryId)\n this.setQuery(queryId, function () { return ({ invalidated: invalidated }); });\n if (fetchMoreForQueryId) {\n this.setQuery(fetchMoreForQueryId, function () { return ({ invalidated: invalidated }); });\n }\n };\n QueryManager.prototype.buildOperationForLink = function (document, variables, extraContext) {\n var cache = this.dataStore.getCache();\n return {\n query: cache.transformForLink\n ? cache.transformForLink(document)\n : document,\n variables: variables,\n operationName: getOperationName(document) || undefined,\n context: __assign({}, extraContext, { cache: cache, getCacheKey: function (obj) {\n if (cache.config) {\n return cache.config.dataIdFromObject(obj);\n }\n else {\n throw new Error('To use context.getCacheKey, you need to use a cache that has a configurable dataIdFromObject, like apollo-cache-inmemory.');\n }\n } }),\n };\n };\n return QueryManager;\n}());\nexport { QueryManager };\n","export var NetworkStatus;\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus < 7;\n}\n","export var FetchType;\n(function (FetchType) {\n FetchType[FetchType[\"normal\"] = 1] = \"normal\";\n FetchType[FetchType[\"refetch\"] = 2] = \"refetch\";\n FetchType[FetchType[\"poll\"] = 3] = \"poll\";\n})(FetchType || (FetchType = {}));\n","var MutationStore = (function () {\n function MutationStore() {\n this.store = {};\n }\n MutationStore.prototype.getStore = function () {\n return this.store;\n };\n MutationStore.prototype.get = function (mutationId) {\n return this.store[mutationId];\n };\n MutationStore.prototype.initMutation = function (mutationId, mutationString, variables) {\n this.store[mutationId] = {\n mutationString: mutationString,\n variables: variables || {},\n loading: true,\n error: null,\n };\n };\n MutationStore.prototype.markMutationError = function (mutationId, error) {\n var mutation = this.store[mutationId];\n if (!mutation) {\n return;\n }\n mutation.loading = false;\n mutation.error = error;\n };\n MutationStore.prototype.markMutationResult = function (mutationId) {\n var mutation = this.store[mutationId];\n if (!mutation) {\n return;\n }\n mutation.loading = false;\n mutation.error = null;\n };\n MutationStore.prototype.reset = function () {\n this.store = {};\n };\n return MutationStore;\n}());\nexport { MutationStore };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { print } from 'graphql/language/printer';\nimport { isEqual } from 'apollo-utilities';\nimport { NetworkStatus } from '../core/networkStatus';\nvar QueryStore = (function () {\n function QueryStore() {\n this.store = {};\n }\n QueryStore.prototype.getStore = function () {\n return this.store;\n };\n QueryStore.prototype.get = function (queryId) {\n return this.store[queryId];\n };\n QueryStore.prototype.initQuery = function (query) {\n var previousQuery = this.store[query.queryId];\n if (previousQuery &&\n previousQuery.document !== query.document &&\n print(previousQuery.document) !== print(query.document)) {\n throw new Error('Internal Error: may not update existing query string in store');\n }\n var isSetVariables = false;\n var previousVariables = null;\n if (query.storePreviousVariables &&\n previousQuery &&\n previousQuery.networkStatus !== NetworkStatus.loading) {\n if (!isEqual(previousQuery.variables, query.variables)) {\n isSetVariables = true;\n previousVariables = previousQuery.variables;\n }\n }\n var networkStatus;\n if (isSetVariables) {\n networkStatus = NetworkStatus.setVariables;\n }\n else if (query.isPoll) {\n networkStatus = NetworkStatus.poll;\n }\n else if (query.isRefetch) {\n networkStatus = NetworkStatus.refetch;\n }\n else {\n networkStatus = NetworkStatus.loading;\n }\n var graphQLErrors = [];\n if (previousQuery && previousQuery.graphQLErrors) {\n graphQLErrors = previousQuery.graphQLErrors;\n }\n this.store[query.queryId] = {\n document: query.document,\n variables: query.variables,\n previousVariables: previousVariables,\n networkError: null,\n graphQLErrors: graphQLErrors,\n networkStatus: networkStatus,\n metadata: query.metadata,\n };\n if (typeof query.fetchMoreForQueryId === 'string' &&\n this.store[query.fetchMoreForQueryId]) {\n this.store[query.fetchMoreForQueryId].networkStatus =\n NetworkStatus.fetchMore;\n }\n };\n QueryStore.prototype.markQueryResult = function (queryId, result, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId])\n return;\n this.store[queryId].networkError = null;\n this.store[queryId].graphQLErrors =\n result.errors && result.errors.length ? result.errors : [];\n this.store[queryId].previousVariables = null;\n this.store[queryId].networkStatus = NetworkStatus.ready;\n if (typeof fetchMoreForQueryId === 'string' &&\n this.store[fetchMoreForQueryId]) {\n this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n }\n };\n QueryStore.prototype.markQueryError = function (queryId, error, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId])\n return;\n this.store[queryId].networkError = error;\n this.store[queryId].networkStatus = NetworkStatus.error;\n if (typeof fetchMoreForQueryId === 'string') {\n this.markQueryResultClient(fetchMoreForQueryId, true);\n }\n };\n QueryStore.prototype.markQueryResultClient = function (queryId, complete) {\n if (!this.store || !this.store[queryId])\n return;\n this.store[queryId].networkError = null;\n this.store[queryId].previousVariables = null;\n this.store[queryId].networkStatus = complete\n ? NetworkStatus.ready\n : NetworkStatus.loading;\n };\n QueryStore.prototype.stopQuery = function (queryId) {\n delete this.store[queryId];\n };\n QueryStore.prototype.reset = function (observableQueryIds) {\n var _this = this;\n this.store = Object.keys(this.store)\n .filter(function (queryId) {\n return observableQueryIds.indexOf(queryId) > -1;\n })\n .reduce(function (res, key) {\n res[key] = __assign({}, _this.store[key], { networkStatus: NetworkStatus.loading });\n return res;\n }, {});\n };\n return QueryStore;\n}());\nexport { QueryStore };\n","import { getOperationName, tryFunctionOrLogError, graphQLResultHasError, } from 'apollo-utilities';\nvar DataStore = (function () {\n function DataStore(initialCache) {\n this.cache = initialCache;\n }\n DataStore.prototype.getCache = function () {\n return this.cache;\n };\n DataStore.prototype.markQueryResult = function (result, document, variables, fetchMoreForQueryId, ignoreErrors) {\n if (ignoreErrors === void 0) { ignoreErrors = false; }\n var writeWithErrors = !graphQLResultHasError(result);\n if (ignoreErrors && graphQLResultHasError(result) && result.data) {\n writeWithErrors = true;\n }\n if (!fetchMoreForQueryId && writeWithErrors) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables,\n });\n }\n };\n DataStore.prototype.markSubscriptionResult = function (result, document, variables) {\n if (!graphQLResultHasError(result)) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n query: document,\n variables: variables,\n });\n }\n };\n DataStore.prototype.markMutationInit = function (mutation) {\n var _this = this;\n if (mutation.optimisticResponse) {\n var optimistic_1;\n if (typeof mutation.optimisticResponse === 'function') {\n optimistic_1 = mutation.optimisticResponse(mutation.variables);\n }\n else {\n optimistic_1 = mutation.optimisticResponse;\n }\n var changeFn_1 = function () {\n _this.markMutationResult({\n mutationId: mutation.mutationId,\n result: { data: optimistic_1 },\n document: mutation.document,\n variables: mutation.variables,\n updateQueries: mutation.updateQueries,\n update: mutation.update,\n });\n };\n this.cache.recordOptimisticTransaction(function (c) {\n var orig = _this.cache;\n _this.cache = c;\n try {\n changeFn_1();\n }\n finally {\n _this.cache = orig;\n }\n }, mutation.mutationId);\n }\n };\n DataStore.prototype.markMutationResult = function (mutation) {\n var _this = this;\n if (!graphQLResultHasError(mutation.result)) {\n var cacheWrites_1 = [];\n cacheWrites_1.push({\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n if (mutation.updateQueries) {\n Object.keys(mutation.updateQueries)\n .filter(function (id) { return mutation.updateQueries[id]; })\n .forEach(function (queryId) {\n var _a = mutation.updateQueries[queryId], query = _a.query, updater = _a.updater;\n var _b = _this.cache.diff({\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n optimistic: false,\n }), currentQueryResult = _b.result, complete = _b.complete;\n if (!complete) {\n return;\n }\n var nextQueryResult = tryFunctionOrLogError(function () {\n return updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: getOperationName(query.document) || undefined,\n queryVariables: query.variables,\n });\n });\n if (nextQueryResult) {\n cacheWrites_1.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: query.document,\n variables: query.variables,\n });\n }\n });\n }\n this.cache.performTransaction(function (c) {\n cacheWrites_1.forEach(function (write) { return c.write(write); });\n });\n var update_1 = mutation.update;\n if (update_1) {\n this.cache.performTransaction(function (c) {\n tryFunctionOrLogError(function () { return update_1(c, mutation.result); });\n });\n }\n }\n };\n DataStore.prototype.markMutationComplete = function (_a) {\n var mutationId = _a.mutationId, optimisticResponse = _a.optimisticResponse;\n if (!optimisticResponse)\n return;\n this.cache.removeOptimistic(mutationId);\n };\n DataStore.prototype.markUpdateQueryResult = function (document, variables, newResult) {\n this.cache.write({\n result: newResult,\n dataId: 'ROOT_QUERY',\n variables: variables,\n query: document,\n });\n };\n DataStore.prototype.reset = function () {\n return this.cache.reset();\n };\n return DataStore;\n}());\nexport { DataStore };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (Array.isArray(err.graphQLErrors) && err.graphQLErrors.length !== 0) {\n err.graphQLErrors.forEach(function (graphQLError) {\n var errorMessage = graphQLError\n ? graphQLError.message\n : 'Error message not found.';\n message += \"GraphQL error: \" + errorMessage + \"\\n\";\n });\n }\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.networkError = networkError || null;\n if (!errorMessage) {\n _this.message = generateErrorMessage(_this);\n }\n else {\n _this.message = errorMessage;\n }\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n","export { print as printAST } from 'graphql/language/printer';\nexport { ObservableQuery, } from './core/ObservableQuery';\nexport { NetworkStatus } from './core/networkStatus';\nexport * from './core/types';\nexport { ApolloError } from './errors/ApolloError';\nimport ApolloClient from './ApolloClient';\nexport { ApolloClient };\nexport default ApolloClient;\n","import { argumentsObjectFromField } from './storeUtils';\nexport function getDirectiveInfoFromField(field, variables) {\n if (field.directives && field.directives.length) {\n var directiveObj_1 = {};\n field.directives.forEach(function (directive) {\n directiveObj_1[directive.name.value] = argumentsObjectFromField(directive, variables);\n });\n return directiveObj_1;\n }\n return null;\n}\nexport function shouldInclude(selection, variables) {\n if (variables === void 0) { variables = {}; }\n if (!selection.directives) {\n return true;\n }\n var res = true;\n selection.directives.forEach(function (directive) {\n if (directive.name.value !== 'skip' && directive.name.value !== 'include') {\n return;\n }\n var directiveArguments = directive.arguments || [];\n var directiveName = directive.name.value;\n if (directiveArguments.length !== 1) {\n throw new Error(\"Incorrect number of arguments for the @\" + directiveName + \" directive.\");\n }\n var ifArgument = directiveArguments[0];\n if (!ifArgument.name || ifArgument.name.value !== 'if') {\n throw new Error(\"Invalid argument for the @\" + directiveName + \" directive.\");\n }\n var ifValue = directiveArguments[0].value;\n var evaledValue = false;\n if (!ifValue || ifValue.kind !== 'BooleanValue') {\n if (ifValue.kind !== 'Variable') {\n throw new Error(\"Argument for the @\" + directiveName + \" directive must be a variable or a boolean value.\");\n }\n else {\n evaledValue = variables[ifValue.name.value];\n if (evaledValue === undefined) {\n throw new Error(\"Invalid variable referenced in @\" + directiveName + \" directive.\");\n }\n }\n }\n else {\n evaledValue = ifValue.value;\n }\n if (directiveName === 'skip') {\n evaledValue = !evaledValue;\n }\n if (!evaledValue) {\n res = false;\n }\n });\n return res;\n}\nexport function flattenSelections(selection) {\n if (!selection.selectionSet ||\n !(selection.selectionSet.selections.length > 0))\n return [selection];\n return [selection].concat(selection.selectionSet.selections\n .map(function (selectionNode) {\n return [selectionNode].concat(flattenSelections(selectionNode));\n })\n .reduce(function (selections, selected) { return selections.concat(selected); }, []));\n}\nexport function getDirectiveNames(doc) {\n var directiveNames = doc.definitions\n .filter(function (definition) {\n return definition.selectionSet && definition.selectionSet.selections;\n })\n .map(function (x) { return flattenSelections(x); })\n .reduce(function (selections, selected) { return selections.concat(selected); }, [])\n .filter(function (selection) {\n return selection.directives && selection.directives.length > 0;\n })\n .map(function (selection) { return selection.directives; })\n .reduce(function (directives, directive) { return directives.concat(directive); }, [])\n .map(function (directive) { return directive.name.value; });\n return directiveNames;\n}\nexport function hasDirectives(names, doc) {\n return getDirectiveNames(doc).some(function (name) { return names.indexOf(name) > -1; });\n}\n","import { assign } from './util/assign';\nimport { valueToObjectRepresentation } from './storeUtils';\nexport function getMutationDefinition(doc) {\n checkDocument(doc);\n var mutationDef = doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation';\n })[0];\n if (!mutationDef) {\n throw new Error('Must contain a mutation definition.');\n }\n return mutationDef;\n}\nexport function checkDocument(doc) {\n if (doc.kind !== 'Document') {\n throw new Error(\"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n }\n var operations = doc.definitions\n .filter(function (d) { return d.kind !== 'FragmentDefinition'; })\n .map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw new Error(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\");\n }\n return definition;\n });\n if (operations.length > 1) {\n throw new Error(\"Ambiguous GraphQL document: contains \" + operations.length + \" operations\");\n }\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0];\n}\nexport function getOperationDefinitionOrDie(document) {\n var def = getOperationDefinition(document);\n if (!def) {\n throw new Error(\"GraphQL document is missing an operation\");\n }\n return def;\n}\nexport function getOperationName(doc) {\n return (doc.definitions\n .filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n })\n .map(function (x) { return x.name.value; })[0] || null);\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n if (!queryDef || queryDef.operation !== 'query') {\n throw new Error('Must contain a query definition.');\n }\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n if (doc.kind !== 'Document') {\n throw new Error(\"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n }\n if (doc.definitions.length > 1) {\n throw new Error('Fragment must have exactly one definition.');\n }\n var fragmentDef = doc.definitions[0];\n if (fragmentDef.kind !== 'FragmentDefinition') {\n throw new Error('Must be a fragment definition.');\n }\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw new Error('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.');\n}\nexport function createFragmentMap(fragments) {\n if (fragments === void 0) { fragments = []; }\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nexport function getDefaultValues(definition) {\n if (definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length) {\n var defaultValues = definition.variableDefinitions\n .filter(function (_a) {\n var defaultValue = _a.defaultValue;\n return defaultValue;\n })\n .map(function (_a) {\n var variable = _a.variable, defaultValue = _a.defaultValue;\n var defaultValueObj = {};\n valueToObjectRepresentation(defaultValueObj, variable.name, defaultValue);\n return defaultValueObj;\n });\n return assign.apply(void 0, [{}].concat(defaultValues));\n }\n return {};\n}\nexport function variablesInOperation(operation) {\n var names = new Set();\n if (operation.variableDefinitions) {\n for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n names.add(definition.variable.name.value);\n }\n }\n return names;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport stringify from 'fast-json-stable-stringify';\nexport function isScalarValue(value) {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\nexport function isNumberValue(value) {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n }\n else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n }\n else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n }\n else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n }\n else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isNullValue(value)) {\n argObj[name.value] = null;\n }\n else {\n throw new Error(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value.kind + \"\\\"\" +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.');\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\nexport function getStoreKeyName(fieldName, args, directives) {\n if (directives &&\n directives['connection'] &&\n directives['connection']['key']) {\n if (directives['connection']['filter'] &&\n directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter']\n ? directives['connection']['filter']\n : [];\n filterKeys.sort();\n var queryArgs_1 = args;\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = queryArgs_1[key];\n });\n return directives['connection']['key'] + \"(\" + JSON.stringify(filteredArgs_1) + \")\";\n }\n else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\" + stringifiedArgs + \")\";\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\" + key + \"(\" + JSON.stringify(directives[key]) + \")\";\n }\n else {\n completeFieldName += \"@\" + key;\n }\n });\n }\n return completeFieldName;\n}\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\nexport function isIdValue(idObject) {\n return idObject &&\n idObject.type === 'id' &&\n typeof idObject.generated === 'boolean';\n}\nexport function toIdValue(idConfig, generated) {\n if (generated === void 0) { generated = false; }\n return __assign({ type: 'id', generated: generated }, (typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig));\n}\nexport function isJsonValue(jsonObject) {\n return (jsonObject != null &&\n typeof jsonObject === 'object' &&\n jsonObject.type === 'json');\n}\nfunction defaultValueFromVariable(node) {\n throw new Error(\"Variable nodes are not supported by valueFromNode\");\n}\nexport function valueFromNode(node, onVariable) {\n if (onVariable === void 0) { onVariable = defaultValueFromVariable; }\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(function (v) { return valueFromNode(v, onVariable); });\n case 'ObjectValue': {\n var value = {};\n for (var _i = 0, _a = node.fields; _i < _a.length; _i++) {\n var field = _a[_i];\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\n","import { cloneDeep } from './util/cloneDeep';\nimport { checkDocument, getOperationDefinitionOrDie, getFragmentDefinitions, createFragmentMap, } from './getFromAST';\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\nfunction isNotEmpty(op, fragments) {\n return (op.selectionSet.selections.filter(function (selectionSet) {\n return !(selectionSet &&\n selectionSet.kind === 'FragmentSpread' &&\n !isNotEmpty(fragments[selectionSet.name.value], fragments));\n }).length > 0);\n}\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n if (dir.name && dir.name === directive.name.value)\n return true;\n if (dir.test && dir.test(directive))\n return true;\n return false;\n });\n };\n}\nfunction addTypenameToSelectionSet(selectionSet, isRoot) {\n if (isRoot === void 0) { isRoot = false; }\n if (selectionSet.selections) {\n if (!isRoot) {\n var alreadyHasThisField = selectionSet.selections.some(function (selection) {\n return (selection.kind === 'Field' &&\n selection.name.value === '__typename');\n });\n if (!alreadyHasThisField) {\n selectionSet.selections.push(TYPENAME_FIELD);\n }\n }\n selectionSet.selections.forEach(function (selection) {\n if (selection.kind === 'Field') {\n if (selection.name.value.lastIndexOf('__', 0) !== 0 &&\n selection.selectionSet) {\n addTypenameToSelectionSet(selection.selectionSet);\n }\n }\n else if (selection.kind === 'InlineFragment') {\n if (selection.selectionSet) {\n addTypenameToSelectionSet(selection.selectionSet);\n }\n }\n });\n }\n}\nfunction removeDirectivesFromSelectionSet(directives, selectionSet) {\n if (!selectionSet.selections)\n return selectionSet;\n var agressiveRemove = directives.some(function (dir) { return dir.remove; });\n selectionSet.selections = selectionSet.selections\n .map(function (selection) {\n if (selection.kind !== 'Field' ||\n !selection ||\n !selection.directives)\n return selection;\n var directiveMatcher = getDirectiveMatcher(directives);\n var remove;\n selection.directives = selection.directives.filter(function (directive) {\n var shouldKeep = !directiveMatcher(directive);\n if (!remove && !shouldKeep && agressiveRemove)\n remove = true;\n return shouldKeep;\n });\n return remove ? null : selection;\n })\n .filter(function (x) { return !!x; });\n selectionSet.selections.forEach(function (selection) {\n if ((selection.kind === 'Field' || selection.kind === 'InlineFragment') &&\n selection.selectionSet) {\n removeDirectivesFromSelectionSet(directives, selection.selectionSet);\n }\n });\n return selectionSet;\n}\nexport function removeDirectivesFromDocument(directives, doc) {\n var docClone = cloneDeep(doc);\n docClone.definitions.forEach(function (definition) {\n removeDirectivesFromSelectionSet(directives, definition.selectionSet);\n });\n var operation = getOperationDefinitionOrDie(docClone);\n var fragments = createFragmentMap(getFragmentDefinitions(docClone));\n return isNotEmpty(operation, fragments) ? docClone : null;\n}\nexport function addTypenameToDocument(doc) {\n checkDocument(doc);\n var docClone = cloneDeep(doc);\n docClone.definitions.forEach(function (definition) {\n var isRoot = definition.kind === 'OperationDefinition';\n addTypenameToSelectionSet(definition.selectionSet, isRoot);\n });\n return docClone;\n}\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments ||\n !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n console.warn('Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n },\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n checkDocument(doc);\n return removeDirectivesFromDocument([connectionRemoveConfig], doc);\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (!(selectionSet && selectionSet.selections)) {\n return false;\n }\n var matchedSelections = selectionSet.selections.filter(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n });\n return matchedSelections.length > 0;\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (selection.kind !== 'Field' || !selection) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n var directiveMatcher = getDirectiveMatcher(directives);\n var matchedDirectives = selection.directives.filter(directiveMatcher);\n return (matchedDirectives.length > 0 ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getDirectivesFromSelectionSet(directives, selectionSet) {\n selectionSet.selections = selectionSet.selections\n .filter(function (selection) {\n return hasDirectivesInSelection(directives, selection, true);\n })\n .map(function (selection) {\n if (hasDirectivesInSelection(directives, selection, false)) {\n return selection;\n }\n if ((selection.kind === 'Field' || selection.kind === 'InlineFragment') &&\n selection.selectionSet) {\n selection.selectionSet = getDirectivesFromSelectionSet(directives, selection.selectionSet);\n }\n return selection;\n });\n return selectionSet;\n}\nexport function getDirectivesFromDocument(directives, doc, includeAllFragments) {\n if (includeAllFragments === void 0) { includeAllFragments = false; }\n checkDocument(doc);\n var docClone = cloneDeep(doc);\n docClone.definitions = docClone.definitions.map(function (definition) {\n if ((definition.kind === 'OperationDefinition' ||\n (definition.kind === 'FragmentDefinition' && !includeAllFragments)) &&\n definition.selectionSet) {\n definition.selectionSet = getDirectivesFromSelectionSet(directives, definition.selectionSet);\n }\n return definition;\n });\n var operation = getOperationDefinitionOrDie(docClone);\n var fragments = createFragmentMap(getFragmentDefinitions(docClone));\n return isNotEmpty(operation, fragments) ? docClone : null;\n}\n","export function assign(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n sources.forEach(function (source) {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n Object.keys(source).forEach(function (key) {\n target[key] = source[key];\n });\n });\n return target;\n}\n","var toString = Object.prototype.toString;\nexport function cloneDeep(value) {\n return cloneDeepHelper(value, new Map());\n}\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val))\n return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n case \"[object Object]\": {\n if (seen.has(val))\n return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n default:\n return val;\n }\n}\n","export function getEnv() {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n return 'development';\n}\nexport function isEnv(env) {\n return getEnv() === env;\n}\nexport function isProduction() {\n return isEnv('production') === true;\n}\nexport function isDevelopment() {\n return isEnv('development') === true;\n}\nexport function isTest() {\n return isEnv('test') === true;\n}\n","export function tryFunctionOrLogError(f) {\n try {\n return f();\n }\n catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\nexport function graphQLResultHasError(result) {\n return result.errors && result.errors.length;\n}\n","export function isEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n if (a != null &&\n typeof a === 'object' &&\n b != null &&\n typeof b === 'object') {\n for (var key in a) {\n if (Object.prototype.hasOwnProperty.call(a, key)) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) {\n return false;\n }\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n for (var key in b) {\n if (Object.prototype.hasOwnProperty.call(b, key) &&\n !Object.prototype.hasOwnProperty.call(a, key)) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { FetchType } from '../core/types';\nimport { ObservableQuery } from '../core/ObservableQuery';\nimport { NetworkStatus } from '../core/networkStatus';\nvar QueryScheduler = (function () {\n function QueryScheduler(_a) {\n var queryManager = _a.queryManager, ssrMode = _a.ssrMode;\n this.inFlightQueries = {};\n this.registeredQueries = {};\n this.intervalQueries = {};\n this.pollingTimers = {};\n this.ssrMode = false;\n this.queryManager = queryManager;\n this.ssrMode = ssrMode || false;\n }\n QueryScheduler.prototype.checkInFlight = function (queryId) {\n var query = this.queryManager.queryStore.get(queryId);\n return (query &&\n query.networkStatus !== NetworkStatus.ready &&\n query.networkStatus !== NetworkStatus.error);\n };\n QueryScheduler.prototype.fetchQuery = function (queryId, options, fetchType) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.queryManager\n .fetchQuery(queryId, options, fetchType)\n .then(function (result) {\n resolve(result);\n })\n .catch(function (error) {\n reject(error);\n });\n });\n };\n QueryScheduler.prototype.startPollingQuery = function (options, queryId, listener) {\n if (!options.pollInterval) {\n throw new Error('Attempted to start a polling query without a polling interval.');\n }\n if (this.ssrMode)\n return queryId;\n this.registeredQueries[queryId] = options;\n if (listener) {\n this.queryManager.addQueryListener(queryId, listener);\n }\n this.addQueryOnInterval(queryId, options);\n return queryId;\n };\n QueryScheduler.prototype.stopPollingQuery = function (queryId) {\n delete this.registeredQueries[queryId];\n };\n QueryScheduler.prototype.fetchQueriesOnInterval = function (interval) {\n var _this = this;\n this.intervalQueries[interval] = this.intervalQueries[interval].filter(function (queryId) {\n if (!(_this.registeredQueries.hasOwnProperty(queryId) &&\n _this.registeredQueries[queryId].pollInterval === interval)) {\n return false;\n }\n if (_this.checkInFlight(queryId)) {\n return true;\n }\n var queryOptions = _this.registeredQueries[queryId];\n var pollingOptions = __assign({}, queryOptions);\n pollingOptions.fetchPolicy = 'network-only';\n _this.fetchQuery(queryId, pollingOptions, FetchType.poll).catch(function () { });\n return true;\n });\n if (this.intervalQueries[interval].length === 0) {\n clearInterval(this.pollingTimers[interval]);\n delete this.intervalQueries[interval];\n }\n };\n QueryScheduler.prototype.addQueryOnInterval = function (queryId, queryOptions) {\n var _this = this;\n var interval = queryOptions.pollInterval;\n if (!interval) {\n throw new Error(\"A poll interval is required to start polling query with id '\" + queryId + \"'.\");\n }\n if (this.intervalQueries.hasOwnProperty(interval.toString()) &&\n this.intervalQueries[interval].length > 0) {\n this.intervalQueries[interval].push(queryId);\n }\n else {\n this.intervalQueries[interval] = [queryId];\n this.pollingTimers[interval] = setInterval(function () {\n _this.fetchQueriesOnInterval(interval);\n }, interval);\n }\n };\n QueryScheduler.prototype.registerPollingQuery = function (queryOptions) {\n if (!queryOptions.pollInterval) {\n throw new Error('Attempted to register a non-polling query with the scheduler.');\n }\n return new ObservableQuery({\n scheduler: this,\n options: queryOptions,\n });\n };\n return QueryScheduler;\n}());\nexport { QueryScheduler };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Observable as LinkObservable } from 'apollo-link';\nimport $$observable from 'symbol-observable';\nvar Observable = (function (_super) {\n __extends(Observable, _super);\n function Observable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Observable.prototype[$$observable] = function () {\n return this;\n };\n Observable.prototype['@@observable'] = function () {\n return this;\n };\n return Observable;\n}(LinkObservable));\nexport { Observable };\n","exports.version = \"2.4.6\"","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport { ApolloLink, Observable, } from 'apollo-link';\nexport var setContext = function (setter) {\n return new ApolloLink(function (operation, forward) {\n var request = __rest(operation, []);\n return new Observable(function (observer) {\n var handle;\n Promise.resolve(request)\n .then(function (req) { return setter(req, operation.getContext()); })\n .then(operation.setContext)\n .then(function () {\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n};\n","import { __extends } from 'tslib';\nimport { Observable, ApolloLink } from 'apollo-link';\n\nvar DedupLink = (function (_super) {\n __extends(DedupLink, _super);\n function DedupLink() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inFlightRequestObservables = new Map();\n _this.subscribers = new Map();\n return _this;\n }\n DedupLink.prototype.request = function (operation, forward) {\n var _this = this;\n if (operation.getContext().forceFetch) {\n return forward(operation);\n }\n var key = operation.toKey();\n if (!this.inFlightRequestObservables.get(key)) {\n var singleObserver_1 = forward(operation);\n var subscription_1;\n var sharedObserver = new Observable(function (observer) {\n if (!_this.subscribers.has(key))\n _this.subscribers.set(key, new Set());\n _this.subscribers.get(key).add(observer);\n if (!subscription_1) {\n subscription_1 = singleObserver_1.subscribe({\n next: function (result) {\n var subscribers = _this.subscribers.get(key);\n _this.subscribers.delete(key);\n _this.inFlightRequestObservables.delete(key);\n if (subscribers) {\n subscribers.forEach(function (obs) { return obs.next(result); });\n subscribers.forEach(function (obs) { return obs.complete(); });\n }\n },\n error: function (error) {\n var subscribers = _this.subscribers.get(key);\n _this.subscribers.delete(key);\n _this.inFlightRequestObservables.delete(key);\n if (subscribers) {\n subscribers.forEach(function (obs) { return obs.error(error); });\n }\n },\n });\n }\n return function () {\n if (_this.subscribers.has(key)) {\n _this.subscribers.get(key).delete(observer);\n if (_this.subscribers.get(key).size === 0) {\n _this.inFlightRequestObservables.delete(key);\n if (subscription_1)\n subscription_1.unsubscribe();\n }\n }\n };\n });\n this.inFlightRequestObservables.set(key, sharedObserver);\n }\n return this.inFlightRequestObservables.get(key);\n };\n return DedupLink;\n}(ApolloLink));\n\nexport { DedupLink };\n","import Observable from 'zen-observable-ts';\nexport { default as Observable } from 'zen-observable-ts';\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { __extends, __assign } from 'tslib';\nimport { getOperationName } from 'apollo-utilities';\nexport { getOperationName } from 'apollo-utilities';\n\nfunction validateOperation(operation) {\n var OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(2) : new InvariantError(\"illegal argument: \" + key);\n }\n }\n return operation;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nfunction toPromise(observable) {\n var completed = false;\n return new Promise(function (resolve, reject) {\n observable.subscribe({\n next: function (data) {\n if (completed) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Promise Wrapper does not support multiple results from Observable\");\n }\n else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\nvar makePromise = toPromise;\nfunction fromPromise(promise) {\n return new Observable(function (observer) {\n promise\n .then(function (value) {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\nfunction fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}\nfunction transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n return transformedOperation;\n}\nfunction createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === 'function') {\n context = __assign({}, context, next(context));\n }\n else {\n context = __assign({}, context, next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: function () { return getKey(operation); },\n });\n return operation;\n}\nfunction getKey(operation) {\n var query = operation.query, variables = operation.variables, operationName = operation.operationName;\n return JSON.stringify([operationName, query, variables]);\n}\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction empty() {\n return new ApolloLink(function () { return Observable.of(); });\n}\nfunction from(links) {\n if (links.length === 0)\n return empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n}\nfunction split(test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n}\nvar concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n process.env.NODE_ENV === \"production\" || invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n};\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError('request is not implemented');\n };\n ApolloLink.empty = empty;\n ApolloLink.from = from;\n ApolloLink.split = split;\n ApolloLink.execute = execute;\n return ApolloLink;\n}());\nfunction execute(link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n}\n\nexport { ApolloLink, concat, createOperation, empty, execute, from, fromError, fromPromise, makePromise, split, toPromise };\n","import zenObservable from 'zen-observable';\n\nvar Observable = zenObservable;\n\nexport default Observable;\nexport { Observable };\n","import { __assign } from 'tslib';\nimport { print } from 'graphql/language/printer';\nimport { InvariantError } from 'ts-invariant';\n\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json',\n};\nvar defaultOptions = {\n method: 'POST',\n};\nvar fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nvar throwServerError = function (response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\nvar parseAndCheckHttpResponse = function (operations) { return function (response) {\n return (response\n .text()\n .then(function (bodyText) {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n return Promise.reject(parseError);\n }\n })\n .then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \" + response.status);\n }\n if (!Array.isArray(result) &&\n !result.hasOwnProperty('data') &&\n !result.hasOwnProperty('errors')) {\n throwServerError(response, result, \"Server response was missing for query '\" + (Array.isArray(operations)\n ? operations.map(function (op) { return op.operationName; })\n : operations.operationName) + \"'.\");\n }\n return result;\n }));\n}; };\nvar checkFetcher = function (fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n var library = 'unfetch';\n if (typeof window === 'undefined')\n library = 'node-fetch';\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError(\"\\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\\nyour environment like https://www.npmjs.com/package/\" + library + \".\\n\\nFor example:\\nimport fetch from '\" + library + \"';\\nimport { createHttpLink } from 'apollo-link-http';\\n\\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });\");\n }\n};\nvar createSignalIfSupported = function () {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n var controller = new AbortController();\n var signal = controller.signal;\n return { controller: controller, signal: signal };\n};\nvar selectHttpOptionsAndBody = function (operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = __assign({}, fallbackConfig.options, { headers: fallbackConfig.headers, credentials: fallbackConfig.credentials });\n var http = fallbackConfig.http;\n configs.forEach(function (config) {\n options = __assign({}, options, config.options, { headers: __assign({}, options.headers, config.headers) });\n if (config.credentials)\n options.credentials = config.credentials;\n http = __assign({}, http, config.http);\n });\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n if (http.includeQuery)\n body.query = print(query);\n return {\n options: options,\n body: body,\n };\n};\nvar serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n }\n catch (e) {\n var parseError = process.env.NODE_ENV === \"production\" ? new InvariantError(2) : new InvariantError(\"Network request failed. \" + label + \" is not serializable: \" + e.message);\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\nvar selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || '/graphql';\n }\n};\n\nexport { checkFetcher, createSignalIfSupported, fallbackHttpConfig, parseAndCheckHttpResponse, selectHttpOptionsAndBody, selectURI, serializeFetchParameter, throwServerError };\n","/* tslint:disable */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport { ApolloLink, Observable, fromError } from 'apollo-link';\nimport { serializeFetchParameter, selectURI, parseAndCheckHttpResponse, checkFetcher, selectHttpOptionsAndBody, createSignalIfSupported, fallbackHttpConfig, } from 'apollo-link-http-common';\nexport var createHttpLink = function (linkOptions) {\n if (linkOptions === void 0) { linkOptions = {}; }\n var _a = linkOptions.uri, uri = _a === void 0 ? '/graphql' : _a, \n // use default global fetch is nothing passed in\n fetcher = linkOptions.fetch, includeExtensions = linkOptions.includeExtensions, useGETForQueries = linkOptions.useGETForQueries, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"includeExtensions\", \"useGETForQueries\"]);\n // dev warnings to ensure fetch is present\n checkFetcher(fetcher);\n //fetcher is set here rather than the destructuring to ensure fetch is\n //declared before referencing it. Reference in the destructuring would cause\n //a ReferenceError\n if (!fetcher) {\n fetcher = fetch;\n }\n var linkConfig = {\n http: { includeExtensions: includeExtensions },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n var contextHeaders = __assign({}, clientAwarenessHeaders, context.headers);\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n //uses fallback, link, and then context to build options\n var _b = selectHttpOptionsAndBody(operation, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n var controller;\n if (!options.signal) {\n var _c = createSignalIfSupported(), _controller = _c.controller, signal = _c.signal;\n controller = _controller;\n if (controller)\n options.signal = signal;\n }\n // If requested, set method to GET if there are no mutations.\n var definitionIsMutation = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n }\n else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n }\n catch (parseError) {\n return fromError(parseError);\n }\n }\n return new Observable(function (observer) {\n fetcher(chosenURI, options)\n .then(function (response) {\n operation.setContext({ response: response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(function (result) {\n // we have data and can send it to back up the link chain\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(function (err) {\n // fetch was cancelled so its already been cleaned up in the unsubscribe\n if (err.name === 'AbortError')\n return;\n // if it is a network error, BUT there is graphql result info\n // fire the next observer before calling error\n // this gives apollo-client (and react-apollo) the `graphqlErrors` and `networErrors`\n // to pass to UI\n // this should only happen if we *also* have data as part of the response key per\n // the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we dont' call next, the UI can only show networkError because AC didn't\n // get andy graphqlErrors\n // this is graphql execution result info (i.e errors and possibly data)\n // this is because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n observer.error(err);\n });\n return function () {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller)\n controller.abort();\n };\n });\n });\n};\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nfunction rewriteURIForGET(chosenURI, body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n var queryParams = [];\n var addQueryParam = function (key, value) {\n queryParams.push(key + \"=\" + encodeURIComponent(value));\n };\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n var serializedVariables = void 0;\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n var serializedExtensions = void 0;\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n var fragment = '', preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI: newURI };\n}\nvar HttpLink = /** @class */ (function (_super) {\n __extends(HttpLink, _super);\n function HttpLink(opts) {\n return _super.call(this, createHttpLink(opts).request) || this;\n }\n return HttpLink;\n}(ApolloLink));\nexport { HttpLink };\n","export * from './httpLink';\n","export function buildDelayFunction(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.initial, initial = _c === void 0 ? 300 : _c, _d = _b.max, max = _d === void 0 ? Infinity : _d, _e = _b.jitter, jitter = _e === void 0 ? true : _e;\n var baseDelay;\n if (jitter) {\n // If we're jittering, baseDelay is half of the maximum delay for that\n // attempt (and is, on average, the delay we will encounter).\n baseDelay = initial;\n }\n else {\n // If we're not jittering, adjust baseDelay so that the first attempt\n // lines up with initialDelay, for everyone's sanity.\n baseDelay = initial / 2;\n }\n return function delayFunction(count) {\n var delay = Math.min(max, baseDelay * Math.pow(2, count));\n if (jitter) {\n // We opt for a full jitter approach for a mostly uniform distribution,\n // but bound it within initialDelay and delay for everyone's sanity.\n delay = Math.random() * delay;\n }\n return delay;\n };\n}\n","export * from './retryLink';\n","export function buildRetryFunction(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.max, max = _c === void 0 ? 5 : _c, retryIf = _b.retryIf;\n return function retryFunction(count, operation, error) {\n if (count >= max)\n return false;\n return retryIf ? retryIf(error, operation) : !!error;\n };\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ApolloLink, Observable, } from 'apollo-link';\nimport { buildDelayFunction, } from './delayFunction';\nimport { buildRetryFunction, } from './retryFunction';\n/**\n * Tracking and management of operations that may be (or currently are) retried.\n */\nvar RetryableOperation = /** @class */ (function () {\n function RetryableOperation(operation, nextLink, delayFor, retryIf) {\n var _this = this;\n this.operation = operation;\n this.nextLink = nextLink;\n this.delayFor = delayFor;\n this.retryIf = retryIf;\n this.retryCount = 0;\n this.values = [];\n this.complete = false;\n this.canceled = false;\n this.observers = [];\n this.currentSubscription = null;\n this.onNext = function (value) {\n _this.values.push(value);\n for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n var observer = _a[_i];\n if (!observer)\n continue;\n observer.next(value);\n }\n };\n this.onComplete = function () {\n _this.complete = true;\n for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n var observer = _a[_i];\n if (!observer)\n continue;\n observer.complete();\n }\n };\n this.onError = function (error) { return __awaiter(_this, void 0, void 0, function () {\n var shouldRetry, _i, _a, observer;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.retryCount += 1;\n return [4 /*yield*/, this.retryIf(this.retryCount, this.operation, error)];\n case 1:\n shouldRetry = _b.sent();\n if (shouldRetry) {\n this.scheduleRetry(this.delayFor(this.retryCount, this.operation, error));\n return [2 /*return*/];\n }\n this.error = error;\n for (_i = 0, _a = this.observers; _i < _a.length; _i++) {\n observer = _a[_i];\n if (!observer)\n continue;\n observer.error(error);\n }\n return [2 /*return*/];\n }\n });\n }); };\n }\n /**\n * Register a new observer for this operation.\n *\n * If the operation has previously emitted other events, they will be\n * immediately triggered for the observer.\n */\n RetryableOperation.prototype.subscribe = function (observer) {\n if (this.canceled) {\n throw new Error(\"Subscribing to a retryable link that was canceled is not supported\");\n }\n this.observers.push(observer);\n // If we've already begun, catch this observer up.\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var value = _a[_i];\n observer.next(value);\n }\n if (this.complete) {\n observer.complete();\n }\n else if (this.error) {\n observer.error(this.error);\n }\n };\n /**\n * Remove a previously registered observer from this operation.\n *\n * If no observers remain, the operation will stop retrying, and unsubscribe\n * from its downstream link.\n */\n RetryableOperation.prototype.unsubscribe = function (observer) {\n var index = this.observers.indexOf(observer);\n if (index < 0) {\n throw new Error(\"RetryLink BUG! Attempting to unsubscribe unknown observer!\");\n }\n // Note that we are careful not to change the order of length of the array,\n // as we are often mid-iteration when calling this method.\n this.observers[index] = null;\n // If this is the last observer, we're done.\n if (this.observers.every(function (o) { return o === null; })) {\n this.cancel();\n }\n };\n /**\n * Start the initial request.\n */\n RetryableOperation.prototype.start = function () {\n if (this.currentSubscription)\n return; // Already started.\n this.try();\n };\n /**\n * Stop retrying for the operation, and cancel any in-progress requests.\n */\n RetryableOperation.prototype.cancel = function () {\n if (this.currentSubscription) {\n this.currentSubscription.unsubscribe();\n }\n clearTimeout(this.timerId);\n this.timerId = null;\n this.currentSubscription = null;\n this.canceled = true;\n };\n RetryableOperation.prototype.try = function () {\n this.currentSubscription = this.nextLink(this.operation).subscribe({\n next: this.onNext,\n error: this.onError,\n complete: this.onComplete,\n });\n };\n RetryableOperation.prototype.scheduleRetry = function (delay) {\n var _this = this;\n if (this.timerId) {\n throw new Error(\"RetryLink BUG! Encountered overlapping retries\");\n }\n this.timerId = setTimeout(function () {\n _this.timerId = null;\n _this.try();\n }, delay);\n };\n return RetryableOperation;\n}());\nvar RetryLink = /** @class */ (function (_super) {\n __extends(RetryLink, _super);\n function RetryLink(_a) {\n var _b = _a === void 0 ? {} : _a, delay = _b.delay, attempts = _b.attempts;\n var _this = _super.call(this) || this;\n _this.delayFor =\n typeof delay === 'function' ? delay : buildDelayFunction(delay);\n _this.retryIf =\n typeof attempts === 'function' ? attempts : buildRetryFunction(attempts);\n return _this;\n }\n RetryLink.prototype.request = function (operation, nextLink) {\n var retryable = new RetryableOperation(operation, nextLink, this.delayFor, this.retryIf);\n retryable.start();\n return new Observable(function (observer) {\n retryable.subscribe(observer);\n return function () {\n retryable.unsubscribe(observer);\n };\n });\n };\n return RetryLink;\n}(ApolloLink));\nexport { RetryLink };\n","export * from './link';\nexport { createOperation, makePromise, toPromise, fromPromise, fromError, } from './linkUtils';\nimport Observable from 'zen-observable-ts';\nexport { Observable };\n","import Observable from 'zen-observable-ts';\nimport { validateOperation, isTerminating, LinkError, transformOperation, createOperation, } from './linkUtils';\nvar passthrough = function (op, forward) { return (forward ? forward(op) : Observable.of()); };\nvar toLink = function (handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n};\nexport var empty = function () {\n return new ApolloLink(function (op, forward) { return Observable.of(); });\n};\nexport var from = function (links) {\n if (links.length === 0)\n return empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n};\nexport var split = function (test, left, right) {\n if (right === void 0) { right = new ApolloLink(passthrough); }\n var leftLink = toLink(left);\n var rightLink = toLink(right);\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n};\n// join two Links together\nexport var concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n console.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n};\nvar ApolloLink = /** @class */ (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.prototype.split = function (test, left, right) {\n if (right === void 0) { right = new ApolloLink(passthrough); }\n return this.concat(split(test, left, right));\n };\n ApolloLink.prototype.concat = function (next) {\n return concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw new Error('request is not implemented');\n };\n ApolloLink.empty = empty;\n ApolloLink.from = from;\n ApolloLink.split = split;\n ApolloLink.execute = execute;\n return ApolloLink;\n}());\nexport { ApolloLink };\nexport function execute(link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { getOperationName } from 'apollo-utilities';\nimport Observable from 'zen-observable-ts';\nimport { print } from 'graphql/language/printer';\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw new Error(\"illegal argument: \" + key);\n }\n }\n return operation;\n}\nvar LinkError = /** @class */ (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nexport { LinkError };\nexport function isTerminating(link) {\n return link.request.length <= 1;\n}\nexport function toPromise(observable) {\n var completed = false;\n return new Promise(function (resolve, reject) {\n observable.subscribe({\n next: function (data) {\n if (completed) {\n console.warn(\"Promise Wrapper does not support multiple results from Observable\");\n }\n else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\n// backwards compat\nexport var makePromise = toPromise;\nexport function fromPromise(promise) {\n return new Observable(function (observer) {\n promise\n .then(function (value) {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n // best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n return transformedOperation;\n}\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === 'function') {\n context = __assign({}, context, next(context));\n }\n else {\n context = __assign({}, context, next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: function () { return getKey(operation); },\n });\n return operation;\n}\nexport function getKey(operation) {\n // XXX we're assuming here that variables will be serialized in the same order.\n // that might not always be true\n return print(operation.query) + \"|\" + JSON.stringify(operation.variables) + \"|\" + operation.operationName;\n}\n","import { visit } from 'graphql/language/visitor';\nimport { InvariantError, invariant } from 'ts-invariant';\nimport { __assign, __spreadArrays } from 'tslib';\nimport stringify from 'fast-json-stable-stringify';\nexport { equal as isEqual } from '@wry/equality';\n\nfunction isScalarValue(value) {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\nfunction isNumberValue(value) {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nfunction valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n }\n else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n }\n else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n }\n else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n }\n else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isNullValue(value)) {\n argObj[name.value] = null;\n }\n else {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(17) : new InvariantError(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value.kind + \"\\\"\" +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.');\n }\n}\nfunction storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\nfunction getStoreKeyName(fieldName, args, directives) {\n if (directives &&\n directives['connection'] &&\n directives['connection']['key']) {\n if (directives['connection']['filter'] &&\n directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter']\n ? directives['connection']['filter']\n : [];\n filterKeys.sort();\n var queryArgs_1 = args;\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = queryArgs_1[key];\n });\n return directives['connection']['key'] + \"(\" + JSON.stringify(filteredArgs_1) + \")\";\n }\n else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\" + stringifiedArgs + \")\";\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\" + key + \"(\" + JSON.stringify(directives[key]) + \")\";\n }\n else {\n completeFieldName += \"@\" + key;\n }\n });\n }\n return completeFieldName;\n}\nfunction argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nfunction resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nfunction isField(selection) {\n return selection.kind === 'Field';\n}\nfunction isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\nfunction isIdValue(idObject) {\n return idObject &&\n idObject.type === 'id' &&\n typeof idObject.generated === 'boolean';\n}\nfunction toIdValue(idConfig, generated) {\n if (generated === void 0) { generated = false; }\n return __assign({ type: 'id', generated: generated }, (typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig));\n}\nfunction isJsonValue(jsonObject) {\n return (jsonObject != null &&\n typeof jsonObject === 'object' &&\n jsonObject.type === 'json');\n}\nfunction defaultValueFromVariable(node) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(18) : new InvariantError(\"Variable nodes are not supported by valueFromNode\");\n}\nfunction valueFromNode(node, onVariable) {\n if (onVariable === void 0) { onVariable = defaultValueFromVariable; }\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(function (v) { return valueFromNode(v, onVariable); });\n case 'ObjectValue': {\n var value = {};\n for (var _i = 0, _a = node.fields; _i < _a.length; _i++) {\n var field = _a[_i];\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\n\nfunction getDirectiveInfoFromField(field, variables) {\n if (field.directives && field.directives.length) {\n var directiveObj_1 = {};\n field.directives.forEach(function (directive) {\n directiveObj_1[directive.name.value] = argumentsObjectFromField(directive, variables);\n });\n return directiveObj_1;\n }\n return null;\n}\nfunction shouldInclude(selection, variables) {\n if (variables === void 0) { variables = {}; }\n return getInclusionDirectives(selection.directives).every(function (_a) {\n var directive = _a.directive, ifArgument = _a.ifArgument;\n var evaledValue = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[ifArgument.value.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(evaledValue !== void 0, 13) : invariant(evaledValue !== void 0, \"Invalid variable referenced in @\" + directive.name.value + \" directive.\");\n }\n else {\n evaledValue = ifArgument.value.value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nfunction getDirectiveNames(doc) {\n var names = [];\n visit(doc, {\n Directive: function (node) {\n names.push(node.name.value);\n },\n });\n return names;\n}\nfunction hasDirectives(names, doc) {\n return getDirectiveNames(doc).some(function (name) { return names.indexOf(name) > -1; });\n}\nfunction hasClientExports(document) {\n return (document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document));\n}\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\nfunction getInclusionDirectives(directives) {\n return directives ? directives.filter(isInclusionDirective).map(function (directive) {\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n process.env.NODE_ENV === \"production\" ? invariant(directiveArguments && directiveArguments.length === 1, 14) : invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\" + directiveName + \" directive.\");\n var ifArgument = directiveArguments[0];\n process.env.NODE_ENV === \"production\" ? invariant(ifArgument.name && ifArgument.name.value === 'if', 15) : invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\" + directiveName + \" directive.\");\n var ifValue = ifArgument.value;\n process.env.NODE_ENV === \"production\" ? invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 16) : invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\" + directiveName + \" directive must be a variable or a boolean value.\");\n return { directive: directive, ifArgument: ifArgument };\n }) : [];\n}\n\nfunction getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(11) : new InvariantError(\"Found a \" + definition.operation + \" operation\" + (definition.name ? \" named '\" + definition.name.value + \"'\" : '') + \". \" +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.');\n }\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n if (typeof actualFragmentName === 'undefined') {\n process.env.NODE_ENV === \"production\" ? invariant(fragments.length === 1, 12) : invariant(fragments.length === 1, \"Found \" + fragments.length + \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\");\n actualFragmentName = fragments[0].name.value;\n }\n var query = __assign(__assign({}, document), { definitions: __spreadArrays([\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n }\n ], document.definitions) });\n return query;\n}\n\nfunction assign(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n sources.forEach(function (source) {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n Object.keys(source).forEach(function (key) {\n target[key] = source[key];\n });\n });\n return target;\n}\n\nfunction getMutationDefinition(doc) {\n checkDocument(doc);\n var mutationDef = doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation';\n })[0];\n process.env.NODE_ENV === \"production\" ? invariant(mutationDef, 1) : invariant(mutationDef, 'Must contain a mutation definition.');\n return mutationDef;\n}\nfunction checkDocument(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc && doc.kind === 'Document', 2) : invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n var operations = doc.definitions\n .filter(function (d) { return d.kind !== 'FragmentDefinition'; })\n .map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(3) : new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\");\n }\n return definition;\n });\n process.env.NODE_ENV === \"production\" ? invariant(operations.length <= 1, 4) : invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \" + operations.length + \" operations\");\n return doc;\n}\nfunction getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0];\n}\nfunction getOperationDefinitionOrDie(document) {\n var def = getOperationDefinition(document);\n process.env.NODE_ENV === \"production\" ? invariant(def, 5) : invariant(def, \"GraphQL document is missing an operation\");\n return def;\n}\nfunction getOperationName(doc) {\n return (doc.definitions\n .filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n })\n .map(function (x) { return x.name.value; })[0] || null);\n}\nfunction getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; });\n}\nfunction getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n process.env.NODE_ENV === \"production\" ? invariant(queryDef && queryDef.operation === 'query', 6) : invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.');\n return queryDef;\n}\nfunction getFragmentDefinition(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc.kind === 'Document', 7) : invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n process.env.NODE_ENV === \"production\" ? invariant(doc.definitions.length <= 1, 8) : invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.');\n var fragmentDef = doc.definitions[0];\n process.env.NODE_ENV === \"production\" ? invariant(fragmentDef.kind === 'FragmentDefinition', 9) : invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.');\n return fragmentDef;\n}\nfunction getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(10) : new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.');\n}\nfunction createFragmentMap(fragments) {\n if (fragments === void 0) { fragments = []; }\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nfunction getDefaultValues(definition) {\n if (definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length) {\n var defaultValues = definition.variableDefinitions\n .filter(function (_a) {\n var defaultValue = _a.defaultValue;\n return defaultValue;\n })\n .map(function (_a) {\n var variable = _a.variable, defaultValue = _a.defaultValue;\n var defaultValueObj = {};\n valueToObjectRepresentation(defaultValueObj, variable.name, defaultValue);\n return defaultValueObj;\n });\n return assign.apply(void 0, __spreadArrays([{}], defaultValues));\n }\n return {};\n}\nfunction variablesInOperation(operation) {\n var names = new Set();\n if (operation.variableDefinitions) {\n for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n names.add(definition.variable.name.value);\n }\n }\n return names;\n}\n\nfunction filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\nfunction isEmpty(op, fragments) {\n return op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments);\n });\n}\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc)))\n ? null\n : doc;\n}\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive));\n });\n };\n}\nfunction removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function (node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n Field: {\n enter: function (node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) { return directive.remove; });\n if (shouldRemoveField &&\n node.directives &&\n node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value,\n });\n }\n });\n }\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n });\n }\n return null;\n }\n }\n },\n },\n FragmentSpread: {\n enter: function (node) {\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n Directive: {\n enter: function (node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }));\n if (modifiedDoc &&\n filterInPlace(variablesToRemove, function (v) { return !variablesInUse[v.name]; }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n if (modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, function (fs) { return !fragmentSpreadsInUse[fs.name]; })\n .length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n return modifiedDoc;\n}\nfunction addTypenameToDocument(doc) {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter: function (node, _key, parent) {\n if (parent &&\n parent.kind === 'OperationDefinition') {\n return;\n }\n var selections = node.selections;\n if (!selections) {\n return;\n }\n var skip = selections.some(function (selection) {\n return (isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0));\n });\n if (skip) {\n return;\n }\n var field = parent;\n if (isField(field) &&\n field.directives &&\n field.directives.some(function (d) { return d.name.value === 'export'; })) {\n return;\n }\n return __assign(__assign({}, node), { selections: __spreadArrays(selections, [TYPENAME_FIELD]) });\n },\n },\n });\n}\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments ||\n !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n process.env.NODE_ENV === \"production\" || invariant.warn('Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n },\n};\nfunction removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n return (selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n }));\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (!isField(selection)) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n return (selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getDirectivesFromDocument(directives, doc) {\n checkDocument(doc);\n var parentPath;\n return nullIfDocIsEmpty(visit(doc, {\n SelectionSet: {\n enter: function (node, _key, _parent, path) {\n var currentPath = path.join('-');\n if (!parentPath ||\n currentPath === parentPath ||\n !currentPath.startsWith(parentPath)) {\n if (node.selections) {\n var selectionsWithDirectives = node.selections.filter(function (selection) { return hasDirectivesInSelection(directives, selection); });\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n return __assign(__assign({}, node), { selections: selectionsWithDirectives });\n }\n else {\n return null;\n }\n }\n },\n },\n }));\n}\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)));\n });\n };\n}\nfunction removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) { return arg.name === varDef.variable.name.value; });\n }) });\n },\n },\n Field: {\n enter: function (node) {\n var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; });\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n },\n },\n Argument: {\n enter: function (node) {\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }));\n}\nfunction removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) { return def.name === node.name.value; })) {\n return null;\n }\n }\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: { enter: enter },\n FragmentDefinition: { enter: enter },\n }));\n}\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) { return allFragments.push(frag); });\n }\n else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\nfunction buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n if (definitionOperation === 'query') {\n return document;\n }\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { operation: 'query' });\n },\n },\n });\n return modifiedDoc;\n}\nfunction removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([\n {\n test: function (directive) { return directive.name.value === 'client'; },\n remove: true,\n },\n ], document);\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function (node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n return modifiedDoc;\n}\n\nvar canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' &&\n navigator.product === 'ReactNative');\n\nvar toString = Object.prototype.toString;\nfunction cloneDeep(value) {\n return cloneDeepHelper(value, new Map());\n}\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val))\n return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n case \"[object Object]\": {\n if (seen.has(val))\n return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n default:\n return val;\n }\n}\n\nfunction getEnv() {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n return 'development';\n}\nfunction isEnv(env) {\n return getEnv() === env;\n}\nfunction isProduction() {\n return isEnv('production') === true;\n}\nfunction isDevelopment() {\n return isEnv('development') === true;\n}\nfunction isTest() {\n return isEnv('test') === true;\n}\n\nfunction tryFunctionOrLogError(f) {\n try {\n return f();\n }\n catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\nfunction graphQLResultHasError(result) {\n return result.errors && result.errors.length;\n}\n\nfunction deepFreeze(o) {\n Object.freeze(o);\n Object.getOwnPropertyNames(o).forEach(function (prop) {\n if (o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n });\n return o;\n}\nfunction maybeDeepFreeze(obj) {\n if (isDevelopment() || isTest()) {\n var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string';\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n return obj;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction mergeDeep() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return mergeDeepArray(sources);\n}\nfunction mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n if (count > 1) {\n var pastCopies = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (var i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\nfunction mergeHelper(target, source, pastCopies) {\n if (isObject(source) && isObject(target)) {\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n Object.keys(source).forEach(function (sourceKey) {\n var sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies);\n }\n }\n else {\n target[sourceKey] = sourceValue;\n }\n });\n return target;\n }\n return source;\n}\nfunction shallowCopyForMerge(value, pastCopies) {\n if (value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n pastCopies.push(value);\n }\n return value;\n}\n\nvar haveWarned = Object.create({});\nfunction warnOnceInDevelopment(msg, type) {\n if (type === void 0) { type = 'warn'; }\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n }\n else {\n console.warn(msg);\n }\n }\n}\n\nfunction stripSymbols(data) {\n return JSON.parse(JSON.stringify(data));\n}\n\nexport { addTypenameToDocument, argumentsObjectFromField, assign, buildQueryFromSelectionSet, canUseWeakMap, checkDocument, cloneDeep, createFragmentMap, getDefaultValues, getDirectiveInfoFromField, getDirectiveNames, getDirectivesFromDocument, getEnv, getFragmentDefinition, getFragmentDefinitions, getFragmentQueryDocument, getInclusionDirectives, getMainDefinition, getMutationDefinition, getOperationDefinition, getOperationDefinitionOrDie, getOperationName, getQueryDefinition, getStoreKeyName, graphQLResultHasError, hasClientExports, hasDirectives, isDevelopment, isEnv, isField, isIdValue, isInlineFragment, isJsonValue, isNumberValue, isProduction, isScalarValue, isTest, maybeDeepFreeze, mergeDeep, mergeDeepArray, removeArgumentsFromDocument, removeClientSetsFromDocument, removeConnectionDirectiveFromDocument, removeDirectivesFromDocument, removeFragmentSpreadFromDocument, resultKeyNameFromField, shouldInclude, storeKeyNameFromField, stripSymbols, toIdValue, tryFunctionOrLogError, valueFromNode, valueToObjectRepresentation, variablesInOperation, warnOnceInDevelopment };\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_2 = require(\"apollo-link\");\nvar printer_1 = require(\"graphql/language/printer\");\nvar signer_1 = require(\"./signer\");\nvar Url = require(\"url\");\nvar platform_1 = require(\"./platform\");\nvar packageInfo = require(\"../package.json\");\nvar SERVICE = 'appsync';\nexports.USER_AGENT_HEADER = 'x-amz-user-agent';\nexports.USER_AGENT = \"aws-amplify/\" + packageInfo.version + (platform_1.userAgent && ' ') + platform_1.userAgent;\nvar AUTH_TYPE;\n(function (AUTH_TYPE) {\n AUTH_TYPE[\"NONE\"] = \"NONE\";\n AUTH_TYPE[\"API_KEY\"] = \"API_KEY\";\n AUTH_TYPE[\"AWS_IAM\"] = \"AWS_IAM\";\n AUTH_TYPE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n AUTH_TYPE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n AUTH_TYPE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(AUTH_TYPE = exports.AUTH_TYPE || (exports.AUTH_TYPE = {}));\nvar AuthLink = /** @class */ (function (_super) {\n __extends(AuthLink, _super);\n /**\n *\n * @param {*} options\n */\n function AuthLink(options) {\n var _this = _super.call(this) || this;\n _this.link = exports.authLink(options);\n return _this;\n }\n AuthLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return AuthLink;\n}(apollo_link_2.ApolloLink));\nexports.AuthLink = AuthLink;\nvar headerBasedAuth = function (_a, operation, forward) {\n var _b = _a === void 0 ? { header: '', value: '' } : _a, header = _b.header, value = _b.value;\n return __awaiter(void 0, void 0, void 0, function () {\n var origContext, headers, headerValue, _c;\n var _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n origContext = operation.getContext();\n headers = __assign(__assign({}, origContext.headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d));\n if (!(header && value)) return [3 /*break*/, 5];\n if (!(typeof value === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, value.call(undefined)];\n case 1:\n _c = _f.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, value];\n case 3:\n _c = _f.sent();\n _f.label = 4;\n case 4:\n headerValue = _c;\n headers = __assign((_e = {}, _e[header] = headerValue, _e), headers);\n _f.label = 5;\n case 5:\n operation.setContext(__assign(__assign({}, origContext), { headers: headers }));\n return [2 /*return*/, forward(operation)];\n }\n });\n });\n};\nvar iamBasedAuth = function (_a, operation, forward) {\n var credentials = _a.credentials, region = _a.region, url = _a.url;\n return __awaiter(void 0, void 0, void 0, function () {\n var service, origContext, creds, _b, accessKeyId, secretAccessKey, sessionToken, _c, host, path, formatted, headers;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n service = SERVICE;\n origContext = operation.getContext();\n creds = typeof credentials === 'function' ? credentials.call() : (credentials || {});\n if (!(creds && typeof creds.getPromise === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, creds.getPromise()];\n case 1:\n _e.sent();\n _e.label = 2;\n case 2: return [4 /*yield*/, creds];\n case 3:\n _b = _e.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n _c = Url.parse(url), host = _c.host, path = _c.path;\n formatted = __assign(__assign({}, formatAsRequest(operation, {})), { service: service, region: region, url: url, host: host, path: path });\n headers = signer_1.Signer.sign(formatted, { access_key: accessKeyId, secret_key: secretAccessKey, session_token: sessionToken }).headers;\n operation.setContext(__assign(__assign({}, origContext), { headers: __assign(__assign(__assign({}, origContext.headers), headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d)) }));\n return [2 /*return*/, forward(operation)];\n }\n });\n });\n};\nexports.authLink = function (_a) {\n var url = _a.url, region = _a.region, _b = _a.auth, type = (_b === void 0 ? {} : _b).type, auth = _a.auth;\n return new apollo_link_2.ApolloLink(function (operation, forward) {\n return new apollo_link_1.Observable(function (observer) {\n var handle;\n var promise;\n switch (type) {\n case AUTH_TYPE.NONE:\n promise = headerBasedAuth(undefined, operation, forward);\n break;\n case AUTH_TYPE.AWS_IAM:\n var _a = auth.credentials, credentials = _a === void 0 ? {} : _a;\n promise = iamBasedAuth({\n credentials: credentials,\n region: region,\n url: url,\n }, operation, forward);\n break;\n case AUTH_TYPE.API_KEY:\n var _b = auth.apiKey, apiKey = _b === void 0 ? '' : _b;\n promise = headerBasedAuth({ header: 'X-Api-Key', value: apiKey }, operation, forward);\n break;\n case AUTH_TYPE.AMAZON_COGNITO_USER_POOLS:\n case AUTH_TYPE.OPENID_CONNECT:\n var _c = auth.jwtToken, jwtToken = _c === void 0 ? '' : _c;\n promise = headerBasedAuth({ header: 'Authorization', value: jwtToken }, operation, forward);\n break;\n case AUTH_TYPE.AWS_LAMBDA:\n var _d = auth.token, token = _d === void 0 ? '' : _d;\n promise = headerBasedAuth({ header: 'Authorization', value: token }, operation, forward);\n break;\n default:\n var error = new Error(\"Invalid AUTH_TYPE: \" + auth.type);\n throw error;\n }\n promise.then(function (observable) {\n handle = observable.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n });\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n};\nvar formatAsRequest = function (_a, options) {\n var operationName = _a.operationName, variables = _a.variables, query = _a.query;\n var body = {\n operationName: operationName,\n variables: removeTemporaryVariables(variables),\n query: printer_1.print(query)\n };\n return __assign(__assign({ body: JSON.stringify(body), method: 'POST' }, options), { headers: __assign({ accept: '*/*', 'content-type': 'application/json; charset=UTF-8' }, options.headers) });\n};\n/**\n * Removes all temporary variables (starting with '@@') so that the signature matches the final request.\n */\nvar removeTemporaryVariables = function (variables) {\n return Object.keys(variables)\n .filter(function (key) { return !key.startsWith(\"@@\"); })\n .reduce(function (acc, key) {\n acc[key] = variables[key];\n return acc;\n }, {});\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar auth_link_1 = require(\"./auth-link\");\nexports.AuthLink = auth_link_1.AuthLink;\nexports.AUTH_TYPE = auth_link_1.AUTH_TYPE;\nexports.USER_AGENT_HEADER = auth_link_1.USER_AGENT_HEADER;\nexports.USER_AGENT = auth_link_1.USER_AGENT;\nexports.createAuthLink = function (_a) {\n var url = _a.url, region = _a.region, auth = _a.auth;\n return new auth_link_1.AuthLink({ url: url, region: region, auth: auth });\n};\nvar signer_1 = require(\"./signer\");\nexports.Signer = signer_1.Signer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar userAgent = '';\nexports.userAgent = userAgent;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n__export(require(\"./signer\"));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\nCopyright 2017 - 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at\n http://aws.amazon.com/apache2.0/\nor in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and limitations under the License.\n*/\nglobal.Buffer = global.Buffer || require('buffer').Buffer; // Required for aws sigv4 signing\nvar url = require('url');\nvar Sha256 = require('@aws-crypto/sha256-js').Sha256;\nvar toHex = require(\"@aws-sdk/util-hex-encoding\").toHex;\nvar encrypt = function (key, src, encoding) {\n if (encoding === void 0) { encoding = ''; }\n var hash = new Sha256(key);\n hash.update(src);\n var result = hash.digestSync();\n if (encoding === 'hex') {\n return toHex(result);\n }\n return result;\n};\nvar hash = function (src) {\n var arg = src || '';\n var hash = new Sha256();\n hash.update(arg);\n return toHex(hash.digestSync());\n};\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nvar canonical_headers = function (headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n return Object.keys(headers)\n .map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : ''\n };\n })\n .sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n })\n .map(function (item) {\n return item.key + ':' + item.value;\n })\n .join('\\n') + '\\n';\n};\n/**\n* List of header keys included in the canonical headers.\n* @access private\n*/\nvar signed_headers = function (headers) {\n return Object.keys(headers)\n .map(function (key) { return key.toLowerCase(); })\n .sort()\n .join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}\n*\n
\nCanonicalRequest =\n    HTTPRequestMethod + '\\n' +\n    CanonicalURI + '\\n' +\n    CanonicalQueryString + '\\n' +\n    CanonicalHeaders + '\\n' +\n    SignedHeaders + '\\n' +\n    HexEncode(Hash(RequestPayload))\n
\n*/\nvar canonical_request = function (request) {\n var url_info = url.parse(request.url);\n return [\n request.method || '/',\n url_info.path,\n url_info.query,\n canonical_headers(request.headers),\n signed_headers(request.headers),\n hash(request.body)\n ].join('\\n');\n};\nvar parse_service_info = function (request) {\n var url_info = url.parse(request.url), host = url_info.host;\n var matched = host.match(/([^.]+)\\.(?:([^.]*)\\.)?amazonaws\\.com$/), parsed = (matched || []).slice(1, 3);\n if (parsed[1] === 'es') { // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1]\n };\n};\nvar credential_scope = function (d_str, region, service) {\n return [\n d_str,\n region,\n service,\n 'aws4_request',\n ].join('/');\n};\n/**\n* @private\n* Create a string to sign\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}\n*\n
\nStringToSign =\n    Algorithm + \\n +\n    RequestDateTime + \\n +\n    CredentialScope + \\n +\n    HashedCanonicalRequest\n
\n*/\nvar string_to_sign = function (algorithm, canonical_request, dt_str, scope) {\n return [\n algorithm,\n dt_str,\n scope,\n hash(canonical_request)\n ].join('\\n');\n};\n/**\n* @private\n* Create signing key\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}\n*\n
\nkSecret = your secret access key\nkDate = HMAC(\"AWS4\" + kSecret, Date)\nkRegion = HMAC(kDate, Region)\nkService = HMAC(kRegion, Service)\nkSigning = HMAC(kService, \"aws4_request\")\n
\n*/\nvar get_signing_key = function (secret_key, d_str, service_info) {\n if (secret_key === void 0) { secret_key = ''; }\n var k = ('AWS4' + secret_key), k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\nvar get_signature = function (signing_key, str_to_sign) {\n return encrypt(signing_key, str_to_sign, 'hex');\n};\n/**\n* @private\n* Create authorization header\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n*/\nvar get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {\n if (access_key === void 0) { access_key = ''; }\n return [\n algorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n 'SignedHeaders=' + signed_headers,\n 'Signature=' + signature\n ].join(', ');\n};\n/**\n* Sign a HTTP request, add 'Authorization' header to request param\n* @method sign\n* @memberof Signer\n* @static\n*\n* @param {object} request - HTTP request object\n
\nrequest: {\n    method: GET | POST | PUT ...\n    url: ...,\n    headers: {\n        header1: ...\n    },\n    body: data\n}\n
\n* @param {object} access_info - AWS access credential info\n
\naccess_info: {\n    access_key: ...,\n    secret_key: ...,\n    session_token: ...\n}\n
\n* @param {object} [service_info] - AWS service type and region, optional,\n* if not provided then parse out from url\n
\nservice_info: {\n    service: ...,\n    region: ...\n}\n
\n*\n* @returns {object} Signed HTTP request\n*/\nvar sign = function (request, access_info, service_info) {\n if (service_info === void 0) { service_info = null; }\n request.headers = request.headers || {};\n // datetime string and date string\n var dt = new Date(), dt_str = dt.toISOString().replace(/[:-]|\\.\\d{3}/g, ''), d_str = dt_str.substr(0, 8), algorithm = 'AWS4-HMAC-SHA256';\n var url_info = url.parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n }\n // Task 1: Create a Canonical Request\n var request_str = canonical_request(request);\n // Task 2: Create a String to Sign\n service_info = service_info || parse_service_info(request);\n var scope = credential_scope(d_str, service_info.region, service_info.service);\n var str_to_sign = string_to_sign(algorithm, request_str, dt_str, scope);\n // Task 3: Calculate the Signature\n var signing_key = get_signing_key(access_info.secret_key, d_str, service_info), signature = get_signature(signing_key, str_to_sign);\n // Task 4: Adding the Signing information to the Request\n var authorization_header = get_authorization_header(algorithm, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\n};\n/**\n* AWS request signer.\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html|Signature Version 4}\n*\n* @class Signer\n*/\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n Signer.sign = sign;\n return Signer;\n}());\nexports.Signer = Signer;\nexports.default = Signer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./jsSha256\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar subscription_handshake_link_1 = require(\"./subscription-handshake-link\");\nexports.CONTROL_EVENTS_KEY = subscription_handshake_link_1.CONTROL_EVENTS_KEY;\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_http_1 = require(\"apollo-link-http\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar non_terminating_link_1 = require(\"./non-terminating-link\");\nvar realtime_subscription_handshake_link_1 = require(\"./realtime-subscription-handshake-link\");\nfunction createSubscriptionHandshakeLink(infoOrUrl, theResultsFetcherLink) {\n var resultsFetcherLink, subscriptionLinks;\n if (typeof infoOrUrl === \"string\") {\n resultsFetcherLink =\n theResultsFetcherLink || apollo_link_http_1.createHttpLink({ uri: infoOrUrl });\n subscriptionLinks = apollo_link_1.ApolloLink.from([\n new non_terminating_link_1.NonTerminatingLink(\"controlMessages\", {\n link: new apollo_link_1.ApolloLink(function (operation, _forward) {\n return new apollo_link_1.Observable(function (observer) {\n var _a;\n var _b = operation, _c = _b.variables, _d = subscription_handshake_link_1.CONTROL_EVENTS_KEY, controlEvents = _c[_d], variables = __rest(_c, [typeof _d === \"symbol\" ? _d : _d + \"\"]);\n if (typeof controlEvents !== \"undefined\") {\n operation.variables = variables;\n }\n observer.next((_a = {}, _a[subscription_handshake_link_1.CONTROL_EVENTS_KEY] = controlEvents, _a));\n return function () { };\n });\n })\n }),\n new non_terminating_link_1.NonTerminatingLink(\"subsInfo\", { link: resultsFetcherLink }),\n new subscription_handshake_link_1.SubscriptionHandshakeLink(\"subsInfo\")\n ]);\n }\n else {\n var url = infoOrUrl.url;\n resultsFetcherLink = theResultsFetcherLink || apollo_link_http_1.createHttpLink({ uri: url });\n subscriptionLinks = new realtime_subscription_handshake_link_1.AppSyncRealTimeSubscriptionHandshakeLink(infoOrUrl);\n }\n return apollo_link_1.ApolloLink.split(function (operation) {\n var query = operation.query;\n var _a = apollo_utilities_1.getMainDefinition(query), kind = _a.kind, graphqlOperation = _a.operation;\n var isSubscription = kind === \"OperationDefinition\" && graphqlOperation === \"subscription\";\n return isSubscription;\n }, subscriptionLinks, resultsFetcherLink);\n}\nexports.createSubscriptionHandshakeLink = createSubscriptionHandshakeLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_context_1 = require(\"apollo-link-context\");\nvar NonTerminatingLink = /** @class */ (function (_super) {\n __extends(NonTerminatingLink, _super);\n function NonTerminatingLink(contextKey, _a) {\n var link = _a.link;\n var _this = _super.call(this) || this;\n _this.contextKey = contextKey;\n _this.link = link;\n return _this;\n }\n NonTerminatingLink.prototype.request = function (operation, forward) {\n var _this = this;\n return apollo_link_context_1.setContext(function (_request, prevContext) { return __awaiter(_this, void 0, void 0, function () {\n var result;\n var _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {\n _this.link.request(operation).subscribe({\n next: resolve,\n error: reject,\n });\n })];\n case 1:\n result = _b.sent();\n return [2 /*return*/, __assign(__assign({}, prevContext), (_a = {}, _a[this.contextKey] = result, _a))];\n }\n });\n }); }).request(operation, forward);\n };\n return NonTerminatingLink;\n}(apollo_link_1.ApolloLink));\nexports.NonTerminatingLink = NonTerminatingLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar utils_1 = require(\"./utils\");\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\nvar graphql_1 = require(\"graphql\");\nvar url = require(\"url\");\nvar uuid_1 = require(\"uuid\");\nvar types_1 = require(\"./types\");\nvar retry_1 = require(\"./utils/retry\");\nvar logger = utils_1.rootLogger.extend(\"subscriptions\");\nexports.CONTROL_EVENTS_KEY = \"@@controlEvents\";\nvar NON_RETRYABLE_CODES = [400, 401, 403];\nvar SERVICE = \"appsync\";\nvar APPSYNC_REALTIME_HEADERS = {\n accept: \"application/json, text/javascript\",\n \"content-encoding\": \"amz-1.0\",\n \"content-type\": \"application/json; charset=UTF-8\",\n};\n/**\n * Time in milliseconds to wait for GQL_CONNECTION_INIT message\n */\nvar CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milliseconds to wait for GQL_START_ACK message\n */\nvar START_ACK_TIMEOUT = 15000;\n/**\n * Frequency in milliseconds in which the server sends GQL_CONNECTION_KEEP_ALIVE messages\n */\nvar SERVER_KEEP_ALIVE_TIMEOUT = 1 * 60 * 1000;\n/**\n * Default Time in milliseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nvar DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\nvar standardDomainPattern = /^https:\\/\\/\\w{26}\\.appsync\\-api\\.\\w{2}(?:(?:\\-\\w{2,})+)\\-\\d\\.amazonaws.com\\/graphql$/i;\nvar customDomainPath = '/realtime';\nvar AppSyncRealTimeSubscriptionHandshakeLink = /** @class */ (function (_super) {\n __extends(AppSyncRealTimeSubscriptionHandshakeLink, _super);\n function AppSyncRealTimeSubscriptionHandshakeLink(_a) {\n var theUrl = _a.url, theRegion = _a.region, theAuth = _a.auth, keepAliveTimeoutMs = _a.keepAliveTimeoutMs;\n var _this = _super.call(this) || this;\n _this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n _this.keepAliveTimeout = undefined;\n _this.subscriptionObserverMap = new Map();\n _this.promiseArray = [];\n _this.url = theUrl;\n _this.region = theRegion;\n _this.auth = theAuth;\n _this.keepAliveTimeout = keepAliveTimeoutMs;\n if (_this.keepAliveTimeout < SERVER_KEEP_ALIVE_TIMEOUT) {\n var configName = 'keepAliveTimeoutMs';\n throw new Error(configName + \" must be greater than or equal to \" + SERVER_KEEP_ALIVE_TIMEOUT + \" (\" + _this.keepAliveTimeout + \" used).\");\n }\n return _this;\n }\n // Check if url matches standard domain pattern\n AppSyncRealTimeSubscriptionHandshakeLink.prototype.isCustomDomain = function (url) {\n return url.match(standardDomainPattern) === null;\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n var _this = this;\n var query = operation.query, variables = operation.variables;\n var _b = operation.getContext(), _c = _b.controlMessages, _d = exports.CONTROL_EVENTS_KEY, controlEvents = (_c === void 0 ? (_a = {},\n _a[exports.CONTROL_EVENTS_KEY] = undefined,\n _a) : _c)[_d], headers = _b.headers;\n return new apollo_link_1.Observable(function (observer) {\n if (!_this.url) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Subscribe only available for AWS AppSync endpoint\")),\n ],\n });\n observer.complete();\n }\n else {\n var subscriptionId_1 = uuid_1.v4();\n var token = _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS ||\n _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.OPENID_CONNECT\n ? _this.auth.jwtToken\n : null;\n token =\n _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_LAMBDA ? _this.auth.token : token;\n var options = {\n appSyncGraphqlEndpoint: _this.url,\n authenticationType: _this.auth.type,\n query: graphql_1.print(query),\n region: _this.region,\n graphql_headers: function () { return headers; },\n variables: variables,\n apiKey: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.API_KEY ? _this.auth.apiKey : \"\",\n credentials: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_IAM ? _this.auth.credentials : null,\n token: token,\n };\n _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1,\n });\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var subscriptionState;\n return __generator(this, function (_a) {\n // Cleanup after unsubscribing or observer.complete was called after _startSubscriptionWithAWSAppSyncRealTime\n try {\n this._verifySubscriptionAlreadyStarted(subscriptionId_1);\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId_1).subscriptionState;\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId_1);\n }\n else {\n throw new Error(\"Subscription has failed, starting to remove subscription.\");\n }\n }\n catch (err) {\n this._removeSubscriptionObserver(subscriptionId_1);\n return [2 /*return*/];\n }\n return [2 /*return*/];\n });\n }); };\n }\n }).filter(function (data) {\n var _a = data.extensions, _b = (_a === void 0 ? {} : _a).controlMsgType, controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== \"undefined\";\n return controlEvents === true || !isControlMsg;\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._verifySubscriptionAlreadyStarted = function (subscriptionId) {\n return __awaiter(this, void 0, void 0, function () {\n var subscriptionState;\n var _this = this;\n return __generator(this, function (_a) {\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId).subscriptionState;\n // This in case unsubscribe is invoked before sending start subscription message\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.PENDING) {\n return [2 /*return*/, new Promise(function (res, rej) {\n var _a = _this.subscriptionObserverMap.get(subscriptionId), observer = _a.observer, subscriptionState = _a.subscriptionState, variables = _a.variables, query = _a.query;\n _this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: res,\n subscriptionFailedCallback: rej,\n });\n })];\n }\n return [2 /*return*/];\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._sendUnsubscriptionMessage = function (subscriptionId) {\n try {\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN &&\n this.socketStatus === types_1.SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n var unsubscribeMessage = {\n id: subscriptionId,\n type: types_1.MESSAGE_TYPES.GQL_STOP,\n };\n var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n this._removeSubscriptionObserver(subscriptionId);\n }\n }\n catch (err) {\n // If GQL_STOP is not sent because of disconnection issue, then there is nothing the client can do\n logger({ err: err });\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._removeSubscriptionObserver = function (subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n // Verifying for 1000ms after removing subscription in case there are new subscriptions on mount / unmount\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._closeSocketIfRequired = function () {\n if (this.subscriptionObserverMap.size > 0) {\n // There are active subscriptions on the WebSocket\n return;\n }\n if (!this.awsRealTimeSocket) {\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return;\n }\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n // There is still data on the WebSocket\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n else {\n logger(\"closing WebSocket...\");\n clearTimeout(this.keepAliveTimeoutId);\n var tempSocket = this.awsRealTimeSocket;\n tempSocket.close(1000);\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {\n var options = _a.options, observer = _a.observer, subscriptionId = _a.subscriptionId;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _b, graphql_headers, credentials, token, subscriptionState, data, dataString, headerObj, _c, subscriptionMessage, stringToAWSRealTime, err_1, _d, message, subscriptionFailedCallback_1, _e, subscriptionFailedCallback, subscriptionReadyCallback;\n var _f;\n var _this = this;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _b = options.graphql_headers, graphql_headers = _b === void 0 ? function () { return ({}); } : _b, credentials = options.credentials, token = options.token;\n subscriptionState = types_1.SUBSCRIPTION_STATUS.PENDING;\n data = {\n query: query,\n variables: variables,\n };\n // Having a subscription id map will make it simple to forward messages received\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: subscriptionState,\n startAckTimeoutId: null,\n });\n dataString = JSON.stringify(data);\n _c = [{}];\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n payload: dataString,\n canonicalUri: \"\",\n region: region,\n credentials: credentials,\n token: token,\n graphql_headers: graphql_headers,\n })];\n case 1:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_g.sent())])), (_f = {}, _f[aws_appsync_auth_link_1.USER_AGENT_HEADER] = aws_appsync_auth_link_1.USER_AGENT, _f)]);\n subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: __assign({}, headerObj),\n },\n },\n type: types_1.MESSAGE_TYPES.GQL_START,\n };\n stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n _g.label = 2;\n case 2:\n _g.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this._initializeWebSocketConnection({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n region: region,\n credentials: credentials,\n token: token,\n })];\n case 3:\n _g.sent();\n return [3 /*break*/, 5];\n case 4:\n err_1 = _g.sent();\n _d = err_1.message, message = _d === void 0 ? \"\" : _d;\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + message)),\n ],\n });\n observer.complete();\n subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback_1 === \"function\") {\n subscriptionFailedCallback_1();\n }\n return [2 /*return*/];\n case 5:\n _e = this.subscriptionObserverMap.get(subscriptionId), subscriptionFailedCallback = _e.subscriptionFailedCallback, subscriptionReadyCallback = _e.subscriptionReadyCallback;\n // This must be done before sending the message in order to be listening immediately\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(function () {\n _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);\n }, START_ACK_TIMEOUT),\n });\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeWebSocketConnection = function (_a) {\n var _this = this;\n var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, authenticationType = _a.authenticationType, apiKey = _a.apiKey, region = _a.region, credentials = _a.credentials, token = _a.token;\n if (this.socketStatus === types_1.SOCKET_STATUS.READY) {\n return;\n }\n return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var payloadString, headerString, _a, _b, headerQs, payloadQs, discoverableEndpoint, awsRealTimeUrl, err_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.promiseArray.push({ res: res, rej: rej });\n if (!(this.socketStatus === types_1.SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 4, , 5]);\n this.socketStatus = types_1.SOCKET_STATUS.CONNECTING;\n payloadString = \"{}\";\n _b = (_a = JSON).stringify;\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n authenticationType: authenticationType,\n payload: payloadString,\n canonicalUri: \"/connect\",\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n region: region,\n credentials: credentials,\n token: token,\n graphql_headers: function () { }\n })];\n case 2:\n headerString = _b.apply(_a, [_c.sent()]);\n headerQs = Buffer.from(headerString).toString(\"base64\");\n payloadQs = Buffer.from(payloadString).toString(\"base64\");\n discoverableEndpoint = appSyncGraphqlEndpoint;\n if (this.isCustomDomain(discoverableEndpoint)) {\n discoverableEndpoint = discoverableEndpoint.concat(customDomainPath);\n }\n else {\n discoverableEndpoint = discoverableEndpoint.replace('appsync-api', 'appsync-realtime-api').replace('gogi-beta', 'grt-beta');\n }\n discoverableEndpoint = discoverableEndpoint\n .replace(\"https://\", \"wss://\")\n .replace('http://', 'ws://');\n awsRealTimeUrl = discoverableEndpoint + \"?header=\" + headerQs + \"&payload=\" + payloadQs;\n return [4 /*yield*/, this._initializeRetryableHandshake({ awsRealTimeUrl: awsRealTimeUrl })];\n case 3:\n _c.sent();\n this.promiseArray.forEach(function (_a) {\n var res = _a.res;\n logger(\"Notifying connection successful\");\n res();\n });\n this.socketStatus = types_1.SOCKET_STATUS.READY;\n this.promiseArray = [];\n return [3 /*break*/, 5];\n case 4:\n err_2 = _c.sent();\n this.promiseArray.forEach(function (_a) {\n var rej = _a.rej;\n return rej(err_2);\n });\n this.promiseArray = [];\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeHeaderBasedAuth = function (_a) {\n var authenticationType = _a.authenticationType, payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, apiKey = _a.apiKey, region = _a.region, credentials = _a.credentials, token = _a.token, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var headerHandler, handler, host, result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n headerHandler = {\n API_KEY: this._awsRealTimeApiKeyHeader.bind(this),\n AWS_IAM: this._awsRealTimeIAMHeader.bind(this),\n OPENID_CONNECT: this._awsRealTimeAuthorizationHeader.bind(this),\n AMAZON_COGNITO_USER_POOLS: this._awsRealTimeAuthorizationHeader.bind(this),\n AWS_LAMBDA: this._awsRealTimeAuthorizationHeader.bind(this),\n };\n handler = headerHandler[authenticationType];\n if (typeof handler !== \"function\") {\n logger(\"Authentication type \" + authenticationType + \" not supported\");\n return [2 /*return*/, {}];\n }\n host = url.parse(appSyncGraphqlEndpoint).host;\n return [4 /*yield*/, handler({\n payload: payload,\n canonicalUri: canonicalUri,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n apiKey: apiKey,\n region: region,\n host: host,\n credentials: credentials,\n token: token,\n graphql_headers: graphql_headers,\n })];\n case 1:\n result = _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeAuthorizationHeader = function (_a) {\n var host = _a.host, token = _a.token, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _b = {};\n if (!(typeof token === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, token.call(undefined)];\n case 1:\n _c = _e.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, token];\n case 3:\n _c = _e.sent();\n _e.label = 4;\n case 4:\n _d = [(_b.Authorization = _c, _b.host = host, _b)];\n return [4 /*yield*/, graphql_headers()];\n case 5: return [2 /*return*/, __assign.apply(void 0, _d.concat([(_e.sent())]))];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeApiKeyHeader = function (_a) {\n var apiKey = _a.apiKey, host = _a.host, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var dt, dtStr, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dt = new Date();\n dtStr = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, \"\");\n _b = [{ host: host, \"x-amz-date\": dtStr, \"x-api-key\": apiKey }];\n return [4 /*yield*/, graphql_headers()];\n case 1: return [2 /*return*/, __assign.apply(void 0, _b.concat([(_c.sent())]))];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeIAMHeader = function (_a) {\n var payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, region = _a.region, credentials = _a.credentials;\n return __awaiter(this, void 0, void 0, function () {\n var endpointInfo, creds, _b, accessKeyId, secretAccessKey, sessionToken, formattedCredentials, request, signed_params;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n endpointInfo = {\n region: region,\n service: SERVICE,\n };\n creds = typeof credentials === \"function\"\n ? credentials.call()\n : credentials || {};\n if (!(creds && typeof creds.getPromise === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, creds.getPromise()];\n case 1:\n _c.sent();\n _c.label = 2;\n case 2:\n if (!creds) {\n throw new Error(\"No credentials\");\n }\n return [4 /*yield*/, creds];\n case 3:\n _b = _c.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n formattedCredentials = {\n access_key: accessKeyId,\n secret_key: secretAccessKey,\n session_token: sessionToken,\n };\n request = {\n url: \"\" + appSyncGraphqlEndpoint + canonicalUri,\n body: payload,\n method: \"POST\",\n headers: __assign({}, APPSYNC_REALTIME_HEADERS),\n };\n signed_params = aws_appsync_auth_link_1.Signer.sign(request, formattedCredentials, endpointInfo);\n return [2 /*return*/, signed_params.headers];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeRetryableHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializaling retryable Handshake\");\n return [4 /*yield*/, retry_1.jitteredExponentialRetry(this._initializeHandshake.bind(this), [\n { awsRealTimeUrl: awsRealTimeUrl },\n ])];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n var err_3, errorType, errorCode;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializing handshake \" + awsRealTimeUrl);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var newSocket = AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket(awsRealTimeUrl, \"graphql-ws\");\n newSocket.onerror = function () {\n logger(\"WebSocket connection error\");\n };\n newSocket.onclose = function () {\n rej(new Error(\"Connection handshake error\"));\n };\n newSocket.onopen = function () {\n _this.awsRealTimeSocket = newSocket;\n return res();\n };\n });\n })()];\n case 2:\n _b.sent();\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var ackOk = false;\n _this.awsRealTimeSocket.onerror = function (error) {\n logger(\"WebSocket closed \" + JSON.stringify(error));\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n rej(new Error(JSON.stringify(event)));\n };\n _this.awsRealTimeSocket.onmessage = function (message) {\n var _a;\n logger(\"subscription message from AWS AppSyncRealTime: \" + message.data + \" \");\n var data = JSON.parse(message.data);\n var type = data.type, _b = data.payload, _c = (_b === void 0 ? {} : _b).connectionTimeoutMs, connectionTimeoutMs = _c === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _c;\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk = true;\n _this.keepAliveTimeout = (_a = _this.keepAliveTimeout) !== null && _a !== void 0 ? _a : connectionTimeoutMs;\n _this.awsRealTimeSocket.onmessage = _this._handleIncomingSubscriptionMessage.bind(_this);\n _this.awsRealTimeSocket.onerror = function (err) {\n logger(err);\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n res(\"Cool, connected to AWS AppSyncRealTime\");\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n var _d = data.payload, _e = (_d === void 0 ? {} : _d).errors, _f = (_e === void 0 ? [] : _e)[0], _g = _f === void 0 ? {} : _f, _h = _g.errorType, errorType = _h === void 0 ? \"\" : _h, _j = _g.errorCode, errorCode = _j === void 0 ? 0 : _j;\n rej({ errorType: errorType, errorCode: errorCode });\n }\n };\n var gqlInit = {\n type: types_1.MESSAGE_TYPES.GQL_CONNECTION_INIT,\n };\n _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n function checkAckOk() {\n if (!ackOk) {\n rej(new Error(\"Connection timeout: ack from AWSRealTime was not received on \" + CONNECTION_INIT_TIMEOUT + \" ms\"));\n }\n }\n setTimeout(checkAckOk.bind(_this), CONNECTION_INIT_TIMEOUT);\n });\n })()];\n case 3:\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n err_3 = _b.sent();\n errorType = err_3.errorType, errorCode = err_3.errorCode;\n if (NON_RETRYABLE_CODES.indexOf(errorCode) >= 0) {\n throw new retry_1.NonRetryableError(errorType);\n }\n else if (errorType) {\n throw new Error(errorType);\n }\n else {\n throw err_3;\n }\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._handleIncomingSubscriptionMessage = function (message) {\n logger(\"subscription message from AWS AppSync RealTime: \" + message.data);\n var _a = JSON.parse(message.data), _b = _a.id, id = _b === void 0 ? \"\" : _b, payload = _a.payload, type = _a.type;\n var _c = this.subscriptionObserverMap.get(id) || {}, _d = _c.observer, observer = _d === void 0 ? null : _d, _e = _c.query, query = _e === void 0 ? \"\" : _e, _f = _c.variables, variables = _f === void 0 ? {} : _f, _g = _c.startAckTimeoutId, startAckTimeoutId = _g === void 0 ? 0 : _g, _h = _c.subscriptionReadyCallback, subscriptionReadyCallback = _h === void 0 ? null : _h, _j = _c.subscriptionFailedCallback, subscriptionFailedCallback = _j === void 0 ? null : _j;\n logger({ id: id, observer: observer, query: query, variables: variables });\n if (type === types_1.MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_START_ACK) {\n logger(\"subscription ready for \" + JSON.stringify({ query: query, variables: variables }));\n if (typeof subscriptionReadyCallback === \"function\") {\n subscriptionReadyCallback();\n }\n clearTimeout(startAckTimeoutId);\n if (observer) {\n observer.next({\n data: payload,\n extensions: {\n controlMsgType: \"CONNECTED\",\n },\n });\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.CONNECTED;\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: null,\n subscriptionState: subscriptionState,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n });\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n clearTimeout(this.keepAliveTimeoutId);\n this.keepAliveTimeoutId = setTimeout(this._errorDisconnect.bind(this, types_1.CONTROL_MSG.TIMEOUT_DISCONNECT), this.keepAliveTimeout);\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_ERROR) {\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.FAILED;\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: startAckTimeoutId,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n subscriptionState: subscriptionState,\n });\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + JSON.stringify(payload))),\n ],\n });\n clearTimeout(startAckTimeoutId);\n observer.complete();\n if (typeof subscriptionFailedCallback === \"function\") {\n subscriptionFailedCallback();\n }\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._errorDisconnect = function (msg) {\n logger(\"Disconnect error: \" + msg);\n this.subscriptionObserverMap.forEach(function (_a) {\n var observer = _a.observer;\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new graphql_1.GraphQLError(msg))],\n });\n }\n });\n this.subscriptionObserverMap.clear();\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.close();\n }\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {\n var _a = this.subscriptionObserverMap.get(subscriptionId) || {}, observer = _a.observer, query = _a.query, variables = _a.variables;\n if (!observer) {\n return;\n }\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: types_1.SUBSCRIPTION_STATUS.FAILED,\n });\n if (observer && !observer.closed) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Subscription timeout \" + JSON.stringify({ query: query, variables: variables }))),\n ],\n });\n // Cleanup will be automatically executed\n observer.complete();\n }\n logger(\"timeoutStartSubscription\", JSON.stringify({ query: query, variables: variables }));\n };\n AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket = function (awsRealTimeUrl, protocol) {\n return new WebSocket(awsRealTimeUrl, protocol);\n };\n return AppSyncRealTimeSubscriptionHandshakeLink;\n}(apollo_link_1.ApolloLink));\nexports.AppSyncRealTimeSubscriptionHandshakeLink = AppSyncRealTimeSubscriptionHandshakeLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar utils_1 = require(\"./utils\");\nvar Paho = require(\"./vendor/paho-mqtt\");\nvar apollo_client_1 = require(\"apollo-client\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar logger = utils_1.rootLogger.extend('subscriptions');\nvar mqttLogger = logger.extend('mqtt');\nexports.CONTROL_EVENTS_KEY = '@@controlEvents';\nvar SubscriptionHandshakeLink = /** @class */ (function (_super) {\n __extends(SubscriptionHandshakeLink, _super);\n function SubscriptionHandshakeLink(subsInfoContextKey) {\n var _this = _super.call(this) || this;\n _this.topicObservers = new Map();\n _this.clientObservers = new Map();\n _this.onMessage = function (topic, message, selectionNames) {\n var parsedMessage = JSON.parse(message);\n var observers = _this.topicObservers.get(topic);\n var data = selectionNames.reduce(function (acc, name) { return (acc[name] = acc[name] || null, acc); }, parsedMessage.data || {});\n logger('Message received', { data: data, topic: topic, observers: observers });\n observers.forEach(function (observer) {\n try {\n observer.next(__assign(__assign({}, parsedMessage), { data: data }));\n }\n catch (err) {\n logger(err);\n }\n });\n };\n _this.subsInfoContextKey = subsInfoContextKey;\n return _this;\n }\n SubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n var _this = this;\n var _b = operation.getContext(), _c = this.subsInfoContextKey, subsInfo = _b[_c], _d = _b.controlMessages, _e = exports.CONTROL_EVENTS_KEY, controlEvents = (_d === void 0 ? (_a = {}, _a[exports.CONTROL_EVENTS_KEY] = undefined, _a) : _d)[_e];\n var _f = subsInfo.extensions, _g = (_f === void 0 ? { subscription: { newSubscriptions: {}, mqttConnections: [] } } : _f).subscription, newSubscriptions = _g.newSubscriptions, mqttConnections = _g.mqttConnections, _h = subsInfo.errors, errors = _h === void 0 ? [] : _h;\n if (errors && errors.length) {\n return new apollo_link_1.Observable(function (observer) {\n observer.error(new apollo_client_1.ApolloError({\n errorMessage: 'Error during subscription handshake',\n extraInfo: { errors: errors },\n graphQLErrors: errors\n }));\n return function () { };\n });\n }\n var newSubscriptionTopics = Object.keys(newSubscriptions).map(function (subKey) { return newSubscriptions[subKey].topic; });\n var existingTopicsWithObserver = new Set(newSubscriptionTopics.filter(function (t) { return _this.topicObservers.has(t); }));\n var newTopics = new Set(newSubscriptionTopics.filter(function (t) { return !existingTopicsWithObserver.has(t); }));\n return new apollo_link_1.Observable(function (observer) {\n existingTopicsWithObserver.forEach(function (t) {\n _this.topicObservers.get(t).add(observer);\n var anObserver = Array.from(_this.topicObservers.get(t)).find(function () { return true; });\n var clientId = Array.from(_this.clientObservers).find(function (_a) {\n var observers = _a[1].observers;\n return observers.has(anObserver);\n })[0];\n _this.clientObservers.get(clientId).observers.add(observer);\n });\n var newTopicsConnectionInfo = mqttConnections\n .filter(function (c) { return c.topics.some(function (t) { return newTopics.has(t); }); })\n .map(function (_a) {\n var topics = _a.topics, rest = __rest(_a, [\"topics\"]);\n return (__assign(__assign({}, rest), { topics: topics.filter(function (t) { return newTopics.has(t); }) }));\n });\n _this.connectNewClients(newTopicsConnectionInfo, observer, operation);\n return function () {\n var clientsForCurrentObserver = Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.has(observer);\n });\n clientsForCurrentObserver.forEach(function (_a) {\n var clientId = _a[0];\n return _this.clientObservers.get(clientId).observers.delete(observer);\n });\n _this.clientObservers.forEach(function (_a) {\n var observers = _a.observers, client = _a.client;\n if (observers.size === 0) {\n if (client.isConnected()) {\n client.disconnect();\n }\n _this.clientObservers.delete(client.clientId);\n }\n });\n _this.clientObservers = new Map(Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.size > 0;\n }));\n _this.topicObservers.forEach(function (observers) { return observers.delete(observer); });\n _this.topicObservers = new Map(Array.from(_this.topicObservers)\n .filter(function (_a) {\n var observers = _a[1];\n return observers.size > 0;\n }));\n };\n }).filter(function (data) {\n var _a = data.extensions, _b = (_a === void 0 ? {} : _a).controlMsgType, controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== 'undefined';\n return controlEvents === true || !isControlMsg;\n });\n };\n SubscriptionHandshakeLink.prototype.connectNewClients = function (connectionInfo, observer, operation) {\n return __awaiter(this, void 0, void 0, function () {\n var query, selectionNames, result, data;\n var _this = this;\n return __generator(this, function (_a) {\n query = operation.query;\n selectionNames = apollo_utilities_1.getMainDefinition(query).selectionSet.selections.map(function (_a) {\n var value = _a.name.value;\n return value;\n });\n result = Promise.all(connectionInfo.map(function (c) { return _this.connectNewClient(c, observer, selectionNames); }));\n data = selectionNames.reduce(function (acc, name) { return (acc[name] = acc[name] || null, acc); }, {});\n observer.next({\n data: data,\n extensions: {\n controlMsgType: 'CONNECTED',\n controlMsgInfo: {\n connectionInfo: connectionInfo,\n },\n }\n });\n return [2 /*return*/, result];\n });\n });\n };\n ;\n SubscriptionHandshakeLink.prototype.connectNewClient = function (connectionInfo, observer, selectionNames) {\n return __awaiter(this, void 0, void 0, function () {\n var clientId, url, topics, client;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n clientId = connectionInfo.client, url = connectionInfo.url, topics = connectionInfo.topics;\n client = new Paho.Client(url, clientId);\n client.trace = mqttLogger.bind(null, clientId);\n client.onConnectionLost = function (_a) {\n var errorCode = _a.errorCode, args = __rest(_a, [\"errorCode\"]);\n if (errorCode !== 0) {\n topics.forEach(function (t) {\n if (_this.topicObservers.has(t)) {\n _this.topicObservers.get(t).forEach(function (observer) { return observer.error(__assign(__assign({}, args), { permanent: true })); });\n }\n });\n }\n topics.forEach(function (t) { return _this.topicObservers.delete(t); });\n };\n client.onMessageArrived = function (_a) {\n var destinationName = _a.destinationName, payloadString = _a.payloadString;\n return _this.onMessage(destinationName, payloadString, selectionNames);\n };\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n client.connect({\n useSSL: url.indexOf('wss://') === 0,\n mqttVersion: 3,\n onSuccess: function () { return resolve(client); },\n onFailure: reject,\n });\n })];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.subscribeToTopics(client, topics, observer)];\n case 2:\n _a.sent();\n return [2 /*return*/, client];\n }\n });\n });\n };\n SubscriptionHandshakeLink.prototype.subscribeToTopics = function (client, topics, observer) {\n var _this = this;\n return Promise.all(topics.map(function (topic) { return _this.subscribeToTopic(client, topic, observer); }));\n };\n SubscriptionHandshakeLink.prototype.subscribeToTopic = function (client, topic, observer) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n client.subscribe(topic, {\n onSuccess: function () {\n if (!_this.topicObservers.has(topic)) {\n _this.topicObservers.set(topic, new Set());\n }\n if (!_this.clientObservers.has(client.clientId)) {\n _this.clientObservers.set(client.clientId, { client: client, observers: new Set() });\n }\n _this.topicObservers.get(topic).add(observer);\n _this.clientObservers.get(client.clientId).observers.add(observer);\n resolve(topic);\n },\n onFailure: reject,\n });\n });\n };\n return SubscriptionHandshakeLink;\n}(apollo_link_1.ApolloLink));\nexports.SubscriptionHandshakeLink = SubscriptionHandshakeLink;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//#region Subscription link enums\nvar SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS = exports.SUBSCRIPTION_STATUS || (exports.SUBSCRIPTION_STATUS = {}));\nvar SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS = exports.SOCKET_STATUS || (exports.SOCKET_STATUS = {}));\nvar MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\"; // Server -> Client\n})(MESSAGE_TYPES = exports.MESSAGE_TYPES || (exports.MESSAGE_TYPES = {}));\nvar CONTROL_MSG;\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTION_CLOSED\"] = \"Connection closed\";\n CONTROL_MSG[\"TIMEOUT_DISCONNECT\"] = \"Timeout disconnect\";\n CONTROL_MSG[\"SUBSCRIPTION_ACK\"] = \"Subscription ack\";\n})(CONTROL_MSG = exports.CONTROL_MSG || (exports.CONTROL_MSG = {}));\n//#endregion\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar logger_1 = require(\"./logger\");\nexports.rootLogger = logger_1.default;\n","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar debug_1 = require(\"debug\");\nvar debugLogger = debug_1.default('aws-appsync');\nvar extend = function (category) {\n if (category === void 0) { category = ''; }\n var newCategory = category ? __spreadArrays(this.namespace.split(':'), [category]).join(':') : this.namespace;\n var result = debug_1.default(newCategory);\n result.extend = extend.bind(result);\n return result;\n};\ndebugLogger.extend = extend.bind(debugLogger);\nexports.default = debugLogger;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar index_1 = require(\"./index\");\nvar logger = index_1.rootLogger.extend(\"retry\");\nvar MAX_DELAY_MS = 5000;\n/**\n * Internal use of Subscription link\n * @private\n */\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexports.NonRetryableError = NonRetryableError;\nvar isNonRetryableError = function (obj) {\n var key = \"nonRetryable\";\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Subscription link\n */\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) { attempt = 1; }\n return __awaiter(this, void 0, void 0, function () {\n var err_1, retryIn_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger(\"Attempt #\" + attempt + \" for this vars: \" + JSON.stringify(args));\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 8]);\n return [4 /*yield*/, functionToRetry.apply(undefined, args)];\n case 2:\n _a.sent();\n return [3 /*break*/, 8];\n case 3:\n err_1 = _a.sent();\n logger(\"error \" + err_1);\n if (isNonRetryableError(err_1)) {\n logger(\"non retryable error\");\n throw err_1;\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger(\"retryIn \", retryIn_1);\n if (!(retryIn_1 !== false)) return [3 /*break*/, 6];\n return [4 /*yield*/, new Promise(function (res) { return setTimeout(res, retryIn_1); })];\n case 4:\n _a.sent();\n return [4 /*yield*/, retry(functionToRetry, args, delayFn, attempt + 1)];\n case 5: return [2 /*return*/, _a.sent()];\n case 6: throw err_1;\n case 7: return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n}\nexports.retry = retry;\nfunction jitteredBackoff(maxDelayMs) {\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Subscription link\n */\nexports.jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n};\n","/*******************************************************************************\n * Copyright (c) 2013 IBM Corp.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * and Eclipse Distribution License v1.0 which accompany this distribution.\n *\n * The Eclipse Public License is available at\n * http://www.eclipse.org/legal/epl-v10.html\n * and the Eclipse Distribution License is available at\n * http://www.eclipse.org/org/documents/edl-v10.php.\n *\n * Contributors:\n * Andrew Banks - initial API and implementation and initial documentation\n *******************************************************************************/\n\n\n// Only expose a single object name in the global namespace.\n// Everything must go through this module. Global Paho module\n// only has a single public function, client, which returns\n// a Paho client object given connection details.\n\n/**\n * Send and receive messages using web browsers.\n *

\n * This programming interface lets a JavaScript client application use the MQTT V3.1 or\n * V3.1.1 protocol to connect to an MQTT-supporting messaging server.\n *\n * The function supported includes:\n *

    \n *
  1. Connecting to and disconnecting from a server. The server is identified by its host name and port number.\n *
  2. Specifying options that relate to the communications link with the server,\n * for example the frequency of keep-alive heartbeats, and whether SSL/TLS is required.\n *
  3. Subscribing to and receiving messages from MQTT Topics.\n *
  4. Publishing messages to MQTT Topics.\n *
\n *

\n * The API consists of two main objects:\n *

\n *
{@link Paho.Client}
\n *
This contains methods that provide the functionality of the API,\n * including provision of callbacks that notify the application when a message\n * arrives from or is delivered to the messaging server,\n * or when the status of its connection to the messaging server changes.
\n *
{@link Paho.Message}
\n *
This encapsulates the payload of the message along with various attributes\n * associated with its delivery, in particular the destination to which it has\n * been (or is about to be) sent.
\n *
\n *

\n * The programming interface validates parameters passed to it, and will throw\n * an Error containing an error message intended for developer use, if it detects\n * an error with any parameter.\n *

\n * Example:\n *\n *

\nclient = new Paho.Client(location.hostname, Number(location.port), \"clientId\");\nclient.onConnectionLost = onConnectionLost;\nclient.onMessageArrived = onMessageArrived;\nclient.connect({onSuccess:onConnect});\n\nfunction onConnect() {\n  // Once a connection has been made, make a subscription and send a message.\n  console.log(\"onConnect\");\n  client.subscribe(\"/World\");\n  message = new Paho.Message(\"Hello\");\n  message.destinationName = \"/World\";\n  client.send(message);\n};\nfunction onConnectionLost(responseObject) {\n  if (responseObject.errorCode !== 0)\n\tconsole.log(\"onConnectionLost:\"+responseObject.errorMessage);\n};\nfunction onMessageArrived(message) {\n  console.log(\"onMessageArrived:\"+message.payloadString);\n  client.disconnect();\n};\n * 
\n * @namespace Paho\n */\n\n/* jshint shadow:true */\n(function ExportLibrary(root, factory) {\n\tif(typeof exports === \"object\" && typeof module === \"object\"){\n\t\tmodule.exports = factory();\n\t} else if (typeof define === \"function\" && define.amd){\n\t\tdefine(factory);\n\t} else if (typeof exports === \"object\"){\n\t\texports = factory();\n\t} else {\n\t\t//if (typeof root.Paho === \"undefined\"){\n\t\t//\troot.Paho = {};\n\t\t//}\n\t\troot.Paho = factory();\n\t}\n})(this, function LibraryFactory(){\n\n\n\tvar PahoMQTT = (function (global) {\n\n\t// Private variables below, these are only visible inside the function closure\n\t// which is used to define the module.\n\tvar version = \"@VERSION@-@BUILDLEVEL@\";\n\n\t/**\n\t * @private\n\t */\n\tvar localStorage = global.localStorage || (function () {\n\t\tvar data = {};\n\n\t\treturn {\n\t\t\tsetItem: function (key, item) { data[key] = item; },\n\t\t\tgetItem: function (key) { return data[key]; },\n\t\t\tremoveItem: function (key) { delete data[key]; },\n\t\t};\n\t})();\n\n\t\t/**\n\t * Unique message type identifiers, with associated\n\t * associated integer values.\n\t * @private\n\t */\n\t\tvar MESSAGE_TYPE = {\n\t\t\tCONNECT: 1,\n\t\t\tCONNACK: 2,\n\t\t\tPUBLISH: 3,\n\t\t\tPUBACK: 4,\n\t\t\tPUBREC: 5,\n\t\t\tPUBREL: 6,\n\t\t\tPUBCOMP: 7,\n\t\t\tSUBSCRIBE: 8,\n\t\t\tSUBACK: 9,\n\t\t\tUNSUBSCRIBE: 10,\n\t\t\tUNSUBACK: 11,\n\t\t\tPINGREQ: 12,\n\t\t\tPINGRESP: 13,\n\t\t\tDISCONNECT: 14\n\t\t};\n\n\t\t// Collection of utility methods used to simplify module code\n\t\t// and promote the DRY pattern.\n\n\t\t/**\n\t * Validate an object's parameter names to ensure they\n\t * match a list of expected variables name for this option\n\t * type. Used to ensure option object passed into the API don't\n\t * contain erroneous parameters.\n\t * @param {Object} obj - User options object\n\t * @param {Object} keys - valid keys and types that may exist in obj.\n\t * @throws {Error} Invalid option parameter found.\n\t * @private\n\t */\n\t\tvar validate = function(obj, keys) {\n\t\t\tfor (var key in obj) {\n\t\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\t\tif (keys.hasOwnProperty(key)) {\n\t\t\t\t\t\tif (typeof obj[key] !== keys[key])\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof obj[key], key]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar errorStr = \"Unknown property, \" + key + \". Valid properties are:\";\n\t\t\t\t\t\tfor (var validKey in keys)\n\t\t\t\t\t\t\tif (keys.hasOwnProperty(validKey))\n\t\t\t\t\t\t\t\terrorStr = errorStr+\" \"+validKey;\n\t\t\t\t\t\tthrow new Error(errorStr);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Return a new function which runs the user function bound\n\t * to a fixed scope.\n\t * @param {function} User function\n\t * @param {object} Function scope\n\t * @return {function} User function bound to another scope\n\t * @private\n\t */\n\t\tvar scope = function (f, scope) {\n\t\t\treturn function () {\n\t\t\t\treturn f.apply(scope, arguments);\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * Unique message type identifiers, with associated\n\t * associated integer values.\n\t * @private\n\t */\n\t\tvar ERROR = {\n\t\t\tOK: {code:0, text:\"AMQJSC0000I OK.\"},\n\t\t\tCONNECT_TIMEOUT: {code:1, text:\"AMQJSC0001E Connect timed out.\"},\n\t\t\tSUBSCRIBE_TIMEOUT: {code:2, text:\"AMQJS0002E Subscribe timed out.\"},\n\t\t\tUNSUBSCRIBE_TIMEOUT: {code:3, text:\"AMQJS0003E Unsubscribe timed out.\"},\n\t\t\tPING_TIMEOUT: {code:4, text:\"AMQJS0004E Ping timed out.\"},\n\t\t\tINTERNAL_ERROR: {code:5, text:\"AMQJS0005E Internal error. Error Message: {0}, Stack trace: {1}\"},\n\t\t\tCONNACK_RETURNCODE: {code:6, text:\"AMQJS0006E Bad Connack return code:{0} {1}.\"},\n\t\t\tSOCKET_ERROR: {code:7, text:\"AMQJS0007E Socket error:{0}.\"},\n\t\t\tSOCKET_CLOSE: {code:8, text:\"AMQJS0008I Socket closed.\"},\n\t\t\tMALFORMED_UTF: {code:9, text:\"AMQJS0009E Malformed UTF data:{0} {1} {2}.\"},\n\t\t\tUNSUPPORTED: {code:10, text:\"AMQJS0010E {0} is not supported by this browser.\"},\n\t\t\tINVALID_STATE: {code:11, text:\"AMQJS0011E Invalid state {0}.\"},\n\t\t\tINVALID_TYPE: {code:12, text:\"AMQJS0012E Invalid type {0} for {1}.\"},\n\t\t\tINVALID_ARGUMENT: {code:13, text:\"AMQJS0013E Invalid argument {0} for {1}.\"},\n\t\t\tUNSUPPORTED_OPERATION: {code:14, text:\"AMQJS0014E Unsupported operation.\"},\n\t\t\tINVALID_STORED_DATA: {code:15, text:\"AMQJS0015E Invalid data in local storage key={0} value={1}.\"},\n\t\t\tINVALID_MQTT_MESSAGE_TYPE: {code:16, text:\"AMQJS0016E Invalid MQTT message type {0}.\"},\n\t\t\tMALFORMED_UNICODE: {code:17, text:\"AMQJS0017E Malformed Unicode string:{0} {1}.\"},\n\t\t\tBUFFER_FULL: {code:18, text:\"AMQJS0018E Message buffer is full, maximum buffer size: {0}.\"},\n\t\t};\n\n\t\t/** CONNACK RC Meaning. */\n\t\tvar CONNACK_RC = {\n\t\t\t0:\"Connection Accepted\",\n\t\t\t1:\"Connection Refused: unacceptable protocol version\",\n\t\t\t2:\"Connection Refused: identifier rejected\",\n\t\t\t3:\"Connection Refused: server unavailable\",\n\t\t\t4:\"Connection Refused: bad user name or password\",\n\t\t\t5:\"Connection Refused: not authorized\"\n\t\t};\n\n\t/**\n\t * Format an error message text.\n\t * @private\n\t * @param {error} ERROR value above.\n\t * @param {substitutions} [array] substituted into the text.\n\t * @return the text with the substitutions made.\n\t */\n\t\tvar format = function(error, substitutions) {\n\t\t\tvar text = error.text;\n\t\t\tif (substitutions) {\n\t\t\t\tvar field,start;\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\t\t\tvar part1 = text.substring(0,start);\n\t\t\t\t\t\tvar part2 = text.substring(start+field.length);\n\t\t\t\t\t\ttext = part1+substitutions[i]+part2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn text;\n\t\t};\n\n\t\t//MQTT protocol and version 6 M Q I s d p 3\n\t\tvar MqttProtoIdentifierv3 = [0x00,0x06,0x4d,0x51,0x49,0x73,0x64,0x70,0x03];\n\t\t//MQTT proto/version for 311 4 M Q T T 4\n\t\tvar MqttProtoIdentifierv4 = [0x00,0x04,0x4d,0x51,0x54,0x54,0x04];\n\n\t\t/**\n\t * Construct an MQTT wire protocol message.\n\t * @param type MQTT packet type.\n\t * @param options optional wire message attributes.\n\t *\n\t * Optional properties\n\t *\n\t * messageIdentifier: message ID in the range [0..65535]\n\t * payloadMessage:\tApplication Message - PUBLISH only\n\t * connectStrings:\tarray of 0 or more Strings to be put into the CONNECT payload\n\t * topics:\t\t\tarray of strings (SUBSCRIBE, UNSUBSCRIBE)\n\t * requestQoS:\t\tarray of QoS values [0..2]\n\t *\n\t * \"Flag\" properties\n\t * cleanSession:\ttrue if present / false if absent (CONNECT)\n\t * willMessage: \ttrue if present / false if absent (CONNECT)\n\t * isRetained:\t\ttrue if present / false if absent (CONNECT)\n\t * userName:\t\ttrue if present / false if absent (CONNECT)\n\t * password:\t\ttrue if present / false if absent (CONNECT)\n\t * keepAliveInterval:\tinteger [0..65535] (CONNECT)\n\t *\n\t * @private\n\t * @ignore\n\t */\n\t\tvar WireMessage = function (type, options) {\n\t\t\tthis.type = type;\n\t\t\tfor (var name in options) {\n\t\t\t\tif (options.hasOwnProperty(name)) {\n\t\t\t\t\tthis[name] = options[name];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tWireMessage.prototype.encode = function() {\n\t\t// Compute the first byte of the fixed header\n\t\t\tvar first = ((this.type & 0x0f) << 4);\n\n\t\t\t/*\n\t\t * Now calculate the length of the variable header + payload by adding up the lengths\n\t\t * of all the component parts\n\t\t */\n\n\t\t\tvar remLength = 0;\n\t\t\tvar topicStrLength = [];\n\t\t\tvar destinationNameLength = 0;\n\t\t\tvar willMessagePayloadBytes;\n\n\t\t\t// if the message contains a messageIdentifier then we need two bytes for that\n\t\t\tif (this.messageIdentifier !== undefined)\n\t\t\t\tremLength += 2;\n\n\t\t\tswitch(this.type) {\n\t\t\t// If this a Connect then we need to include 12 bytes for its header\n\t\t\tcase MESSAGE_TYPE.CONNECT:\n\t\t\t\tswitch(this.mqttVersion) {\n\t\t\t\tcase 3:\n\t\t\t\t\tremLength += MqttProtoIdentifierv3.length + 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tremLength += MqttProtoIdentifierv4.length + 3;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tremLength += UTF8Length(this.clientId) + 2;\n\t\t\t\tif (this.willMessage !== undefined) {\n\t\t\t\t\tremLength += UTF8Length(this.willMessage.destinationName) + 2;\n\t\t\t\t\t// Will message is always a string, sent as UTF-8 characters with a preceding length.\n\t\t\t\t\twillMessagePayloadBytes = this.willMessage.payloadBytes;\n\t\t\t\t\tif (!(willMessagePayloadBytes instanceof Uint8Array))\n\t\t\t\t\t\twillMessagePayloadBytes = new Uint8Array(payloadBytes);\n\t\t\t\t\tremLength += willMessagePayloadBytes.byteLength +2;\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tremLength += UTF8Length(this.userName) + 2;\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tremLength += UTF8Length(this.password) + 2;\n\t\t\t\tbreak;\n\n\t\t\t// Subscribe, Unsubscribe can both contain topic strings\n\t\t\tcase MESSAGE_TYPE.SUBSCRIBE:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tfor ( var i = 0; i < this.topics.length; i++) {\n\t\t\t\t\ttopicStrLength[i] = UTF8Length(this.topics[i]);\n\t\t\t\t\tremLength += topicStrLength[i] + 2;\n\t\t\t\t}\n\t\t\t\tremLength += this.requestedQos.length; // 1 byte for each topic's Qos\n\t\t\t\t// QoS on Subscribe only\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.UNSUBSCRIBE:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tfor ( var i = 0; i < this.topics.length; i++) {\n\t\t\t\t\ttopicStrLength[i] = UTF8Length(this.topics[i]);\n\t\t\t\t\tremLength += topicStrLength[i] + 2;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBREL:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tif (this.payloadMessage.duplicate) first |= 0x08;\n\t\t\t\tfirst = first |= (this.payloadMessage.qos << 1);\n\t\t\t\tif (this.payloadMessage.retained) first |= 0x01;\n\t\t\t\tdestinationNameLength = UTF8Length(this.payloadMessage.destinationName);\n\t\t\t\tremLength += destinationNameLength + 2;\n\t\t\t\tvar payloadBytes = this.payloadMessage.payloadBytes;\n\t\t\t\tremLength += payloadBytes.byteLength;\n\t\t\t\tif (payloadBytes instanceof ArrayBuffer)\n\t\t\t\t\tpayloadBytes = new Uint8Array(payloadBytes);\n\t\t\t\telse if (!(payloadBytes instanceof Uint8Array))\n\t\t\t\t\tpayloadBytes = new Uint8Array(payloadBytes.buffer);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.DISCONNECT:\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Now we can allocate a buffer for the message\n\n\t\t\tvar mbi = encodeMBI(remLength); // Convert the length to MQTT MBI format\n\t\t\tvar pos = mbi.length + 1; // Offset of start of variable header\n\t\t\tvar buffer = new ArrayBuffer(remLength + pos);\n\t\t\tvar byteStream = new Uint8Array(buffer); // view it as a sequence of bytes\n\n\t\t\t//Write the fixed header into the buffer\n\t\t\tbyteStream[0] = first;\n\t\t\tbyteStream.set(mbi,1);\n\n\t\t\t// If this is a PUBLISH then the variable header starts with a topic\n\t\t\tif (this.type == MESSAGE_TYPE.PUBLISH)\n\t\t\t\tpos = writeString(this.payloadMessage.destinationName, destinationNameLength, byteStream, pos);\n\t\t\t// If this is a CONNECT then the variable header contains the protocol name/version, flags and keepalive time\n\n\t\t\telse if (this.type == MESSAGE_TYPE.CONNECT) {\n\t\t\t\tswitch (this.mqttVersion) {\n\t\t\t\tcase 3:\n\t\t\t\t\tbyteStream.set(MqttProtoIdentifierv3, pos);\n\t\t\t\t\tpos += MqttProtoIdentifierv3.length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tbyteStream.set(MqttProtoIdentifierv4, pos);\n\t\t\t\t\tpos += MqttProtoIdentifierv4.length;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar connectFlags = 0;\n\t\t\t\tif (this.cleanSession)\n\t\t\t\t\tconnectFlags = 0x02;\n\t\t\t\tif (this.willMessage !== undefined ) {\n\t\t\t\t\tconnectFlags |= 0x04;\n\t\t\t\t\tconnectFlags |= (this.willMessage.qos<<3);\n\t\t\t\t\tif (this.willMessage.retained) {\n\t\t\t\t\t\tconnectFlags |= 0x20;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tconnectFlags |= 0x80;\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tconnectFlags |= 0x40;\n\t\t\t\tbyteStream[pos++] = connectFlags;\n\t\t\t\tpos = writeUint16 (this.keepAliveInterval, byteStream, pos);\n\t\t\t}\n\n\t\t\t// Output the messageIdentifier - if there is one\n\t\t\tif (this.messageIdentifier !== undefined)\n\t\t\t\tpos = writeUint16 (this.messageIdentifier, byteStream, pos);\n\n\t\t\tswitch(this.type) {\n\t\t\tcase MESSAGE_TYPE.CONNECT:\n\t\t\t\tpos = writeString(this.clientId, UTF8Length(this.clientId), byteStream, pos);\n\t\t\t\tif (this.willMessage !== undefined) {\n\t\t\t\t\tpos = writeString(this.willMessage.destinationName, UTF8Length(this.willMessage.destinationName), byteStream, pos);\n\t\t\t\t\tpos = writeUint16(willMessagePayloadBytes.byteLength, byteStream, pos);\n\t\t\t\t\tbyteStream.set(willMessagePayloadBytes, pos);\n\t\t\t\t\tpos += willMessagePayloadBytes.byteLength;\n\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tpos = writeString(this.userName, UTF8Length(this.userName), byteStream, pos);\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tpos = writeString(this.password, UTF8Length(this.password), byteStream, pos);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\t// PUBLISH has a text or binary payload, if text do not add a 2 byte length field, just the UTF characters.\n\t\t\t\tbyteStream.set(payloadBytes, pos);\n\n\t\t\t\tbreak;\n\n\t\t\t\t// \t case MESSAGE_TYPE.PUBREC:\n\t\t\t\t// \t case MESSAGE_TYPE.PUBREL:\n\t\t\t\t// \t case MESSAGE_TYPE.PUBCOMP:\n\t\t\t\t// \t \tbreak;\n\n\t\t\tcase MESSAGE_TYPE.SUBSCRIBE:\n\t\t\t\t// SUBSCRIBE has a list of topic strings and request QoS\n\t\t\t\tfor (var i=0; i> 4;\n\t\t\tvar messageInfo = first &= 0x0f;\n\t\t\tpos += 1;\n\n\n\t\t\t// Decode the remaining length (MBI format)\n\n\t\t\tvar digit;\n\t\t\tvar remLength = 0;\n\t\t\tvar multiplier = 1;\n\t\t\tdo {\n\t\t\t\tif (pos == input.length) {\n\t\t\t\t\treturn [null,startingPos];\n\t\t\t\t}\n\t\t\t\tdigit = input[pos++];\n\t\t\t\tremLength += ((digit & 0x7F) * multiplier);\n\t\t\t\tmultiplier *= 128;\n\t\t\t} while ((digit & 0x80) !== 0);\n\n\t\t\tvar endPos = pos+remLength;\n\t\t\tif (endPos > input.length) {\n\t\t\t\treturn [null,startingPos];\n\t\t\t}\n\n\t\t\tvar wireMessage = new WireMessage(type);\n\t\t\tswitch(type) {\n\t\t\tcase MESSAGE_TYPE.CONNACK:\n\t\t\t\tvar connectAcknowledgeFlags = input[pos++];\n\t\t\t\tif (connectAcknowledgeFlags & 0x01)\n\t\t\t\t\twireMessage.sessionPresent = true;\n\t\t\t\twireMessage.returnCode = input[pos++];\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tvar qos = (messageInfo >> 1) & 0x03;\n\n\t\t\t\tvar len = readUint16(input, pos);\n\t\t\t\tpos += 2;\n\t\t\t\tvar topicName = parseUTF8(input, pos, len);\n\t\t\t\tpos += len;\n\t\t\t\t// If QoS 1 or 2 there will be a messageIdentifier\n\t\t\t\tif (qos > 0) {\n\t\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\t\tpos += 2;\n\t\t\t\t}\n\t\t\t\tvar message = new PahoMQTT.Message(input.subarray(pos, endPos));\n\t\t\t\tif ((messageInfo & 0x01) == 0x01)\n\t\t\t\t\tmessage.retained = true;\n\t\t\t\tif ((messageInfo & 0x08) == 0x08)\n\t\t\t\t\tmessage.duplicate = true;\n\t\t\t\tmessage.qos = qos;\n\t\t\t\tmessage.destinationName = topicName;\n\t\t\t\twireMessage.payloadMessage = message;\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBACK:\n\t\t\tcase MESSAGE_TYPE.PUBREC:\n\t\t\tcase MESSAGE_TYPE.PUBREL:\n\t\t\tcase MESSAGE_TYPE.PUBCOMP:\n\t\t\tcase MESSAGE_TYPE.UNSUBACK:\n\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.SUBACK:\n\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\tpos += 2;\n\t\t\t\twireMessage.returnCode = input.subarray(pos, endPos);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn [wireMessage,endPos];\n\t\t}\n\n\t\tfunction writeUint16(input, buffer, offset) {\n\t\t\tbuffer[offset++] = input >> 8; //MSB\n\t\t\tbuffer[offset++] = input % 256; //LSB\n\t\t\treturn offset;\n\t\t}\n\n\t\tfunction writeString(input, utf8Length, buffer, offset) {\n\t\t\toffset = writeUint16(utf8Length, buffer, offset);\n\t\t\tstringToUTF8(input, buffer, offset);\n\t\t\treturn offset + utf8Length;\n\t\t}\n\n\t\tfunction readUint16(buffer, offset) {\n\t\t\treturn 256*buffer[offset] + buffer[offset+1];\n\t\t}\n\n\t\t/**\n\t * Encodes an MQTT Multi-Byte Integer\n\t * @private\n\t */\n\t\tfunction encodeMBI(number) {\n\t\t\tvar output = new Array(1);\n\t\t\tvar numBytes = 0;\n\n\t\t\tdo {\n\t\t\t\tvar digit = number % 128;\n\t\t\t\tnumber = number >> 7;\n\t\t\t\tif (number > 0) {\n\t\t\t\t\tdigit |= 0x80;\n\t\t\t\t}\n\t\t\t\toutput[numBytes++] = digit;\n\t\t\t} while ( (number > 0) && (numBytes<4) );\n\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Takes a String and calculates its length in bytes when encoded in UTF8.\n\t * @private\n\t */\n\t\tfunction UTF8Length(input) {\n\t\t\tvar output = 0;\n\t\t\tfor (var i = 0; i 0x7FF)\n\t\t\t\t{\n\t\t\t\t\t// Surrogate pair means its a 4 byte character\n\t\t\t\t\tif (0xD800 <= charCode && charCode <= 0xDBFF)\n\t\t\t\t\t{\n\t\t\t\t\t\ti++;\n\t\t\t\t\t\toutput++;\n\t\t\t\t\t}\n\t\t\t\t\toutput +=3;\n\t\t\t\t}\n\t\t\t\telse if (charCode > 0x7F)\n\t\t\t\t\toutput +=2;\n\t\t\t\telse\n\t\t\t\t\toutput++;\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Takes a String and writes it into an array as UTF8 encoded bytes.\n\t * @private\n\t */\n\t\tfunction stringToUTF8(input, output, start) {\n\t\t\tvar pos = start;\n\t\t\tfor (var i = 0; i>6 & 0x1F | 0xC0;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t} else if (charCode <= 0xFFFF) {\n\t\t\t\t\toutput[pos++] = charCode>>12 & 0x0F | 0xE0;\n\t\t\t\t\toutput[pos++] = charCode>>6 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t} else {\n\t\t\t\t\toutput[pos++] = charCode>>18 & 0x07 | 0xF0;\n\t\t\t\t\toutput[pos++] = charCode>>12 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode>>6 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\tfunction parseUTF8(input, offset, length) {\n\t\t\tvar output = \"\";\n\t\t\tvar utf16;\n\t\t\tvar pos = offset;\n\n\t\t\twhile (pos < offset+length)\n\t\t\t{\n\t\t\t\tvar byte1 = input[pos++];\n\t\t\t\tif (byte1 < 128)\n\t\t\t\t\tutf16 = byte1;\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar byte2 = input[pos++]-128;\n\t\t\t\t\tif (byte2 < 0)\n\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16),\"\"]));\n\t\t\t\t\tif (byte1 < 0xE0) // 2 byte character\n\t\t\t\t\t\tutf16 = 64*(byte1-0xC0) + byte2;\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tvar byte3 = input[pos++]-128;\n\t\t\t\t\t\tif (byte3 < 0)\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16)]));\n\t\t\t\t\t\tif (byte1 < 0xF0) // 3 byte character\n\t\t\t\t\t\t\tutf16 = 4096*(byte1-0xE0) + 64*byte2 + byte3;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar byte4 = input[pos++]-128;\n\t\t\t\t\t\t\tif (byte4 < 0)\n\t\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n\t\t\t\t\t\t\tif (byte1 < 0xF8) // 4 byte character\n\t\t\t\t\t\t\t\tutf16 = 262144*(byte1-0xF0) + 4096*byte2 + 64*byte3 + byte4;\n\t\t\t\t\t\t\telse // longer encodings are not supported\n\t\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (utf16 > 0xFFFF) // 4 byte character - express as a surrogate pair\n\t\t\t\t{\n\t\t\t\t\tutf16 -= 0x10000;\n\t\t\t\t\toutput += String.fromCharCode(0xD800 + (utf16 >> 10)); // lead character\n\t\t\t\t\tutf16 = 0xDC00 + (utf16 & 0x3FF); // trail character\n\t\t\t\t}\n\t\t\t\toutput += String.fromCharCode(utf16);\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Repeat keepalive requests, monitor responses.\n\t * @ignore\n\t */\n\t\tvar Pinger = function(client, keepAliveInterval) {\n\t\t\tthis._client = client;\n\t\t\tthis._keepAliveInterval = keepAliveInterval*1000;\n\t\t\tthis.isReset = false;\n\n\t\t\tvar pingReq = new WireMessage(MESSAGE_TYPE.PINGREQ).encode();\n\n\t\t\tvar doTimeout = function (pinger) {\n\t\t\t\treturn function () {\n\t\t\t\t\treturn doPing.apply(pinger);\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t/** @ignore */\n\t\t\tvar doPing = function() {\n\t\t\t\tif (!this.isReset) {\n\t\t\t\t\tthis._client._trace(\"Pinger.doPing\", \"Timed out\");\n\t\t\t\t\tthis._client._disconnected( ERROR.PING_TIMEOUT.code , format(ERROR.PING_TIMEOUT));\n\t\t\t\t} else {\n\t\t\t\t\tthis.isReset = false;\n\t\t\t\t\tthis._client._trace(\"Pinger.doPing\", \"send PINGREQ\");\n\t\t\t\t\tthis._client.socket.send(pingReq);\n\t\t\t\t\tthis.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.reset = function() {\n\t\t\t\tthis.isReset = true;\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t\tif (this._keepAliveInterval > 0)\n\t\t\t\t\tthis.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n\t\t\t};\n\n\t\t\tthis.cancel = function() {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * Monitor request completion.\n\t * @ignore\n\t */\n\t\tvar Timeout = function(client, timeoutSeconds, action, args) {\n\t\t\tif (!timeoutSeconds)\n\t\t\t\ttimeoutSeconds = 30;\n\n\t\t\tvar doTimeout = function (action, client, args) {\n\t\t\t\treturn function () {\n\t\t\t\t\treturn action.apply(client, args);\n\t\t\t\t};\n\t\t\t};\n\t\t\tthis.timeout = setTimeout(doTimeout(action, client, args), timeoutSeconds * 1000);\n\n\t\t\tthis.cancel = function() {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t};\n\t\t};\n\n\t/**\n\t * Internal implementation of the Websockets MQTT V3.1 client.\n\t *\n\t * @name Paho.ClientImpl @constructor\n\t * @param {String} host the DNS nameof the webSocket host.\n\t * @param {Number} port the port number for that host.\n\t * @param {String} clientId the MQ client identifier.\n\t */\n\t\tvar ClientImpl = function (uri, host, port, path, clientId) {\n\t\t// Check dependencies are satisfied in this browser.\n\t\t\tif (!(\"WebSocket\" in global && global.WebSocket !== null)) {\n\t\t\t\tthrow new Error(format(ERROR.UNSUPPORTED, [\"WebSocket\"]));\n\t\t\t}\n\t\t\tif (!(\"ArrayBuffer\" in global && global.ArrayBuffer !== null)) {\n\t\t\t\tthrow new Error(format(ERROR.UNSUPPORTED, [\"ArrayBuffer\"]));\n\t\t\t}\n\t\t\tthis._trace(\"Paho.Client\", uri, host, port, path, clientId);\n\n\t\t\tthis.host = host;\n\t\t\tthis.port = port;\n\t\t\tthis.path = path;\n\t\t\tthis.uri = uri;\n\t\t\tthis.clientId = clientId;\n\t\t\tthis._wsuri = null;\n\n\t\t\t// Local storagekeys are qualified with the following string.\n\t\t\t// The conditional inclusion of path in the key is for backward\n\t\t\t// compatibility to when the path was not configurable and assumed to\n\t\t\t// be /mqtt\n\t\t\tthis._localKey=host+\":\"+port+(path!=\"/mqtt\"?\":\"+path:\"\")+\":\"+clientId+\":\";\n\n\t\t\t// Create private instance-only message queue\n\t\t\t// Internal queue of messages to be sent, in sending order.\n\t\t\tthis._msg_queue = [];\n\t\t\tthis._buffered_msg_queue = [];\n\n\t\t\t// Messages we have sent and are expecting a response for, indexed by their respective message ids.\n\t\t\tthis._sentMessages = {};\n\n\t\t\t// Messages we have received and acknowleged and are expecting a confirm message for\n\t\t\t// indexed by their respective message ids.\n\t\t\tthis._receivedMessages = {};\n\n\t\t\t// Internal list of callbacks to be executed when messages\n\t\t\t// have been successfully sent over web socket, e.g. disconnect\n\t\t\t// when it doesn't have to wait for ACK, just message is dispatched.\n\t\t\tthis._notify_msg_sent = {};\n\n\t\t\t// Unique identifier for SEND messages, incrementing\n\t\t\t// counter as messages are sent.\n\t\t\tthis._message_identifier = 1;\n\n\t\t\t// Used to determine the transmission sequence of stored sent messages.\n\t\t\tthis._sequence = 0;\n\n\n\t\t\t// Load the local state, if any, from the saved version, only restore state relevant to this client.\n\t\t\tfor (var key in localStorage)\n\t\t\t\tif ( key.indexOf(\"Sent:\"+this._localKey) === 0 || key.indexOf(\"Received:\"+this._localKey) === 0)\n\t\t\t\t\tthis.restore(key);\n\t\t};\n\n\t\t// Messaging Client public instance members.\n\t\tClientImpl.prototype.host = null;\n\t\tClientImpl.prototype.port = null;\n\t\tClientImpl.prototype.path = null;\n\t\tClientImpl.prototype.uri = null;\n\t\tClientImpl.prototype.clientId = null;\n\n\t\t// Messaging Client private instance members.\n\t\tClientImpl.prototype.socket = null;\n\t\t/* true once we have received an acknowledgement to a CONNECT packet. */\n\t\tClientImpl.prototype.connected = false;\n\t\t/* The largest message identifier allowed, may not be larger than 2**16 but\n\t\t * if set smaller reduces the maximum number of outbound messages allowed.\n\t\t */\n\t\tClientImpl.prototype.maxMessageIdentifier = 65536;\n\t\tClientImpl.prototype.connectOptions = null;\n\t\tClientImpl.prototype.hostIndex = null;\n\t\tClientImpl.prototype.onConnected = null;\n\t\tClientImpl.prototype.onConnectionLost = null;\n\t\tClientImpl.prototype.onMessageDelivered = null;\n\t\tClientImpl.prototype.onMessageArrived = null;\n\t\tClientImpl.prototype.traceFunction = null;\n\t\tClientImpl.prototype._msg_queue = null;\n\t\tClientImpl.prototype._buffered_msg_queue = null;\n\t\tClientImpl.prototype._connectTimeout = null;\n\t\t/* The sendPinger monitors how long we allow before we send data to prove to the server that we are alive. */\n\t\tClientImpl.prototype.sendPinger = null;\n\t\t/* The receivePinger monitors how long we allow before we require evidence that the server is alive. */\n\t\tClientImpl.prototype.receivePinger = null;\n\t\tClientImpl.prototype._reconnectInterval = 1; // Reconnect Delay, starts at 1 second\n\t\tClientImpl.prototype._reconnecting = false;\n\t\tClientImpl.prototype._reconnectTimeout = null;\n\t\tClientImpl.prototype.disconnectedPublishing = false;\n\t\tClientImpl.prototype.disconnectedBufferSize = 5000;\n\n\t\tClientImpl.prototype.receiveBuffer = null;\n\n\t\tClientImpl.prototype._traceBuffer = null;\n\t\tClientImpl.prototype._MAX_TRACE_ENTRIES = 100;\n\n\t\tClientImpl.prototype.connect = function (connectOptions) {\n\t\t\tvar connectOptionsMasked = this._traceMask(connectOptions, \"password\");\n\t\t\tthis._trace(\"Client.connect\", connectOptionsMasked, this.socket, this.connected);\n\n\t\t\tif (this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n\t\t\tif (this.socket)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n\n\t\t\tif (this._reconnecting) {\n\t\t\t// connect() function is called while reconnect is in progress.\n\t\t\t// Terminate the auto reconnect process to use new connect options.\n\t\t\t\tthis._reconnectTimeout.cancel();\n\t\t\t\tthis._reconnectTimeout = null;\n\t\t\t\tthis._reconnecting = false;\n\t\t\t}\n\n\t\t\tthis.connectOptions = connectOptions;\n\t\t\tthis._reconnectInterval = 1;\n\t\t\tthis._reconnecting = false;\n\t\t\tif (connectOptions.uris) {\n\t\t\t\tthis.hostIndex = 0;\n\t\t\t\tthis._doConnect(connectOptions.uris[0]);\n\t\t\t} else {\n\t\t\t\tthis._doConnect(this.uri);\n\t\t\t}\n\n\t\t};\n\n\t\tClientImpl.prototype.subscribe = function (filter, subscribeOptions) {\n\t\t\tthis._trace(\"Client.subscribe\", filter, subscribeOptions);\n\n\t\t\tif (!this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.SUBSCRIBE);\n\t\t\twireMessage.topics=[filter];\n\t\t\tif (subscribeOptions.qos !== undefined)\n\t\t\t\twireMessage.requestedQos = [subscribeOptions.qos];\n\t\t\telse\n\t\t\t\twireMessage.requestedQos = [0];\n\n\t\t\tif (subscribeOptions.onSuccess) {\n\t\t\t\twireMessage.onSuccess = function(grantedQos) {subscribeOptions.onSuccess({invocationContext:subscribeOptions.invocationContext,grantedQos:grantedQos});};\n\t\t\t}\n\n\t\t\tif (subscribeOptions.onFailure) {\n\t\t\t\twireMessage.onFailure = function(errorCode) {subscribeOptions.onFailure({invocationContext:subscribeOptions.invocationContext,errorCode:errorCode, errorMessage:format(errorCode)});};\n\t\t\t}\n\n\t\t\tif (subscribeOptions.timeout) {\n\t\t\t\twireMessage.timeOut = new Timeout(this, subscribeOptions.timeout, subscribeOptions.onFailure,\n\t\t\t\t\t[{invocationContext:subscribeOptions.invocationContext,\n\t\t\t\t\t\terrorCode:ERROR.SUBSCRIBE_TIMEOUT.code,\n\t\t\t\t\t\terrorMessage:format(ERROR.SUBSCRIBE_TIMEOUT)}]);\n\t\t\t}\n\n\t\t\t// All subscriptions return a SUBACK.\n\t\t\tthis._requires_ack(wireMessage);\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\t/** @ignore */\n\t\tClientImpl.prototype.unsubscribe = function(filter, unsubscribeOptions) {\n\t\t\tthis._trace(\"Client.unsubscribe\", filter, unsubscribeOptions);\n\n\t\t\tif (!this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.UNSUBSCRIBE);\n\t\t\twireMessage.topics = [filter];\n\n\t\t\tif (unsubscribeOptions.onSuccess) {\n\t\t\t\twireMessage.callback = function() {unsubscribeOptions.onSuccess({invocationContext:unsubscribeOptions.invocationContext});};\n\t\t\t}\n\t\t\tif (unsubscribeOptions.timeout) {\n\t\t\t\twireMessage.timeOut = new Timeout(this, unsubscribeOptions.timeout, unsubscribeOptions.onFailure,\n\t\t\t\t\t[{invocationContext:unsubscribeOptions.invocationContext,\n\t\t\t\t\t\terrorCode:ERROR.UNSUBSCRIBE_TIMEOUT.code,\n\t\t\t\t\t\terrorMessage:format(ERROR.UNSUBSCRIBE_TIMEOUT)}]);\n\t\t\t}\n\n\t\t\t// All unsubscribes return a SUBACK.\n\t\t\tthis._requires_ack(wireMessage);\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\tClientImpl.prototype.send = function (message) {\n\t\t\tthis._trace(\"Client.send\", message);\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.PUBLISH);\n\t\t\twireMessage.payloadMessage = message;\n\n\t\t\tif (this.connected) {\n\t\t\t// Mark qos 1 & 2 message as \"ACK required\"\n\t\t\t// For qos 0 message, invoke onMessageDelivered callback if there is one.\n\t\t\t// Then schedule the message.\n\t\t\t\tif (message.qos > 0) {\n\t\t\t\t\tthis._requires_ack(wireMessage);\n\t\t\t\t} else if (this.onMessageDelivered) {\n\t\t\t\t\tthis._notify_msg_sent[wireMessage] = this.onMessageDelivered(wireMessage.payloadMessage);\n\t\t\t\t}\n\t\t\t\tthis._schedule_message(wireMessage);\n\t\t\t} else {\n\t\t\t// Currently disconnected, will not schedule this message\n\t\t\t// Check if reconnecting is in progress and disconnected publish is enabled.\n\t\t\t\tif (this._reconnecting && this.disconnectedPublishing) {\n\t\t\t\t// Check the limit which include the \"required ACK\" messages\n\t\t\t\t\tvar messageCount = Object.keys(this._sentMessages).length + this._buffered_msg_queue.length;\n\t\t\t\t\tif (messageCount > this.disconnectedBufferSize) {\n\t\t\t\t\t\tthrow new Error(format(ERROR.BUFFER_FULL, [this.disconnectedBufferSize]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (message.qos > 0) {\n\t\t\t\t\t\t// Mark this message as \"ACK required\"\n\t\t\t\t\t\t\tthis._requires_ack(wireMessage);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twireMessage.sequence = ++this._sequence;\n\t\t\t\t\t\t\t// Add messages in fifo order to array, by adding to start\n\t\t\t\t\t\t\tthis._buffered_msg_queue.unshift(wireMessage);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.disconnect = function () {\n\t\t\tthis._trace(\"Client.disconnect\");\n\n\t\t\tif (this._reconnecting) {\n\t\t\t// disconnect() function is called while reconnect is in progress.\n\t\t\t// Terminate the auto reconnect process.\n\t\t\t\tthis._reconnectTimeout.cancel();\n\t\t\t\tthis._reconnectTimeout = null;\n\t\t\t\tthis._reconnecting = false;\n\t\t\t}\n\n\t\t\tif (!this.socket)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connecting or connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.DISCONNECT);\n\n\t\t\t// Run the disconnected call back as soon as the message has been sent,\n\t\t\t// in case of a failure later on in the disconnect processing.\n\t\t\t// as a consequence, the _disconected call back may be run several times.\n\t\t\tthis._notify_msg_sent[wireMessage] = scope(this._disconnected, this);\n\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\tClientImpl.prototype.getTraceLog = function () {\n\t\t\tif ( this._traceBuffer !== null ) {\n\t\t\t\tthis._trace(\"Client.getTraceLog\", new Date());\n\t\t\t\tthis._trace(\"Client.getTraceLog in flight messages\", this._sentMessages.length);\n\t\t\t\tfor (var key in this._sentMessages)\n\t\t\t\t\tthis._trace(\"_sentMessages \",key, this._sentMessages[key]);\n\t\t\t\tfor (var key in this._receivedMessages)\n\t\t\t\t\tthis._trace(\"_receivedMessages \",key, this._receivedMessages[key]);\n\n\t\t\t\treturn this._traceBuffer;\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.startTrace = function () {\n\t\t\tif ( this._traceBuffer === null ) {\n\t\t\t\tthis._traceBuffer = [];\n\t\t\t}\n\t\t\tthis._trace(\"Client.startTrace\", new Date(), version);\n\t\t};\n\n\t\tClientImpl.prototype.stopTrace = function () {\n\t\t\tdelete this._traceBuffer;\n\t\t};\n\n\t\tClientImpl.prototype._doConnect = function (wsurl) {\n\t\t// When the socket is open, this client will send the CONNECT WireMessage using the saved parameters.\n\t\t\tif (this.connectOptions.useSSL) {\n\t\t\t\tvar uriParts = wsurl.split(\":\");\n\t\t\t\turiParts[0] = \"wss\";\n\t\t\t\twsurl = uriParts.join(\":\");\n\t\t\t}\n\t\t\tthis._wsuri = wsurl;\n\t\t\tthis.connected = false;\n\n\n\n\t\t\tif (this.connectOptions.mqttVersion < 4) {\n\t\t\t\tthis.socket = new WebSocket(wsurl, [\"mqttv3.1\"]);\n\t\t\t} else {\n\t\t\t\tthis.socket = new WebSocket(wsurl, [\"mqtt\"]);\n\t\t\t}\n\t\t\tthis.socket.binaryType = \"arraybuffer\";\n\t\t\tthis.socket.onopen = scope(this._on_socket_open, this);\n\t\t\tthis.socket.onmessage = scope(this._on_socket_message, this);\n\t\t\tthis.socket.onerror = scope(this._on_socket_error, this);\n\t\t\tthis.socket.onclose = scope(this._on_socket_close, this);\n\n\t\t\tthis.sendPinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n\t\t\tthis.receivePinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n\t\t\tif (this._connectTimeout) {\n\t\t\t\tthis._connectTimeout.cancel();\n\t\t\t\tthis._connectTimeout = null;\n\t\t\t}\n\t\t\tthis._connectTimeout = new Timeout(this, this.connectOptions.timeout, this._disconnected, [ERROR.CONNECT_TIMEOUT.code, format(ERROR.CONNECT_TIMEOUT)]);\n\t\t};\n\n\n\t\t// Schedule a new message to be sent over the WebSockets\n\t\t// connection. CONNECT messages cause WebSocket connection\n\t\t// to be started. All other messages are queued internally\n\t\t// until this has happened. When WS connection starts, process\n\t\t// all outstanding messages.\n\t\tClientImpl.prototype._schedule_message = function (message) {\n\t\t\t// Add messages in fifo order to array, by adding to start\n\t\t\tthis._msg_queue.unshift(message);\n\t\t\t// Process outstanding messages in the queue if we have an open socket, and have received CONNACK.\n\t\t\tif (this.connected) {\n\t\t\t\tthis._process_queue();\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.store = function(prefix, wireMessage) {\n\t\t\tvar storedMessage = {type:wireMessage.type, messageIdentifier:wireMessage.messageIdentifier, version:1};\n\n\t\t\tswitch(wireMessage.type) {\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tif(wireMessage.pubRecReceived)\n\t\t\t\t\tstoredMessage.pubRecReceived = true;\n\n\t\t\t\t// Convert the payload to a hex string.\n\t\t\t\tstoredMessage.payloadMessage = {};\n\t\t\t\tvar hex = \"\";\n\t\t\t\tvar messageBytes = wireMessage.payloadMessage.payloadBytes;\n\t\t\t\tfor (var i=0; i= 2) {\n\t\t\t\t\tvar x = parseInt(hex.substring(0, 2), 16);\n\t\t\t\t\thex = hex.substring(2, hex.length);\n\t\t\t\t\tbyteStream[i++] = x;\n\t\t\t\t}\n\t\t\t\tvar payloadMessage = new PahoMQTT.Message(byteStream);\n\t\t\t\tpayloadMessage.qos = storedMessage.payloadMessage.qos;\n\t\t\t\tpayloadMessage.destinationName = storedMessage.payloadMessage.destinationName;\n\t\t\t\tif (storedMessage.payloadMessage.duplicate)\n\t\t\t\t\tpayloadMessage.duplicate = true;\n\t\t\t\tif (storedMessage.payloadMessage.retained)\n\t\t\t\t\tpayloadMessage.retained = true;\n\t\t\t\twireMessage.payloadMessage = payloadMessage;\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow Error(format(ERROR.INVALID_STORED_DATA, [key, value]));\n\t\t\t}\n\n\t\t\tif (key.indexOf(\"Sent:\"+this._localKey) === 0) {\n\t\t\t\twireMessage.payloadMessage.duplicate = true;\n\t\t\t\tthis._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\t} else if (key.indexOf(\"Received:\"+this._localKey) === 0) {\n\t\t\t\tthis._receivedMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype._process_queue = function () {\n\t\t\tvar message = null;\n\n\t\t\t// Send all queued messages down socket connection\n\t\t\twhile ((message = this._msg_queue.pop())) {\n\t\t\t\tthis._socket_send(message);\n\t\t\t\t// Notify listeners that message was successfully sent\n\t\t\t\tif (this._notify_msg_sent[message]) {\n\t\t\t\t\tthis._notify_msg_sent[message]();\n\t\t\t\t\tdelete this._notify_msg_sent[message];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Expect an ACK response for this message. Add message to the set of in progress\n\t * messages and set an unused identifier in this message.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._requires_ack = function (wireMessage) {\n\t\t\tvar messageCount = Object.keys(this._sentMessages).length;\n\t\t\tif (messageCount > this.maxMessageIdentifier)\n\t\t\t\tthrow Error (\"Too many messages:\"+messageCount);\n\n\t\t\twhile(this._sentMessages[this._message_identifier] !== undefined) {\n\t\t\t\tthis._message_identifier++;\n\t\t\t}\n\t\t\twireMessage.messageIdentifier = this._message_identifier;\n\t\t\tthis._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\tif (wireMessage.type === MESSAGE_TYPE.PUBLISH) {\n\t\t\t\tthis.store(\"Sent:\", wireMessage);\n\t\t\t}\n\t\t\tif (this._message_identifier === this.maxMessageIdentifier) {\n\t\t\t\tthis._message_identifier = 1;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Called when the underlying websocket has been opened.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._on_socket_open = function () {\n\t\t// Create the CONNECT message object.\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.CONNECT, this.connectOptions);\n\t\t\twireMessage.clientId = this.clientId;\n\t\t\tthis._socket_send(wireMessage);\n\t\t};\n\n\t\t/**\n\t * Called when the underlying websocket has received a complete packet.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._on_socket_message = function (event) {\n\t\t\tthis._trace(\"Client._on_socket_message\", event.data);\n\t\t\tvar messages = this._deframeMessages(event.data);\n\t\t\tfor (var i = 0; i < messages.length; i+=1) {\n\t\t\t\tthis._handleMessage(messages[i]);\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype._deframeMessages = function(data) {\n\t\t\tvar byteArray = new Uint8Array(data);\n\t\t\tvar messages = [];\n\t\t\tif (this.receiveBuffer) {\n\t\t\t\tvar newData = new Uint8Array(this.receiveBuffer.length+byteArray.length);\n\t\t\t\tnewData.set(this.receiveBuffer);\n\t\t\t\tnewData.set(byteArray,this.receiveBuffer.length);\n\t\t\t\tbyteArray = newData;\n\t\t\t\tdelete this.receiveBuffer;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvar offset = 0;\n\t\t\t\twhile(offset < byteArray.length) {\n\t\t\t\t\tvar result = decodeMessage(byteArray,offset);\n\t\t\t\t\tvar wireMessage = result[0];\n\t\t\t\t\toffset = result[1];\n\t\t\t\t\tif (wireMessage !== null) {\n\t\t\t\t\t\tmessages.push(wireMessage);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (offset < byteArray.length) {\n\t\t\t\t\tthis.receiveBuffer = byteArray.subarray(offset);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tvar errorStack = ((error.hasOwnProperty(\"stack\") == \"undefined\") ? error.stack.toString() : \"No Error Stack Available\");\n\t\t\t\tthis._disconnected(ERROR.INTERNAL_ERROR.code , format(ERROR.INTERNAL_ERROR, [error.message,errorStack]));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn messages;\n\t\t};\n\n\t\tClientImpl.prototype._handleMessage = function(wireMessage) {\n\n\t\t\tthis._trace(\"Client._handleMessage\", wireMessage);\n\n\t\t\ttry {\n\t\t\t\tswitch(wireMessage.type) {\n\t\t\t\tcase MESSAGE_TYPE.CONNACK:\n\t\t\t\t\tthis._connectTimeout.cancel();\n\t\t\t\t\tif (this._reconnectTimeout)\n\t\t\t\t\t\tthis._reconnectTimeout.cancel();\n\n\t\t\t\t\t// If we have started using clean session then clear up the local state.\n\t\t\t\t\tif (this.connectOptions.cleanSession) {\n\t\t\t\t\t\tfor (var key in this._sentMessages) {\n\t\t\t\t\t\t\tvar sentMessage = this._sentMessages[key];\n\t\t\t\t\t\t\tlocalStorage.removeItem(\"Sent:\"+this._localKey+sentMessage.messageIdentifier);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._sentMessages = {};\n\n\t\t\t\t\t\tfor (var key in this._receivedMessages) {\n\t\t\t\t\t\t\tvar receivedMessage = this._receivedMessages[key];\n\t\t\t\t\t\t\tlocalStorage.removeItem(\"Received:\"+this._localKey+receivedMessage.messageIdentifier);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._receivedMessages = {};\n\t\t\t\t\t}\n\t\t\t\t\t// Client connected and ready for business.\n\t\t\t\t\tif (wireMessage.returnCode === 0) {\n\n\t\t\t\t\t\tthis.connected = true;\n\t\t\t\t\t\t// Jump to the end of the list of uris and stop looking for a good host.\n\n\t\t\t\t\t\tif (this.connectOptions.uris)\n\t\t\t\t\t\t\tthis.hostIndex = this.connectOptions.uris.length;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._disconnected(ERROR.CONNACK_RETURNCODE.code , format(ERROR.CONNACK_RETURNCODE, [wireMessage.returnCode, CONNACK_RC[wireMessage.returnCode]]));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Resend messages.\n\t\t\t\t\tvar sequencedMessages = [];\n\t\t\t\t\tfor (var msgId in this._sentMessages) {\n\t\t\t\t\t\tif (this._sentMessages.hasOwnProperty(msgId))\n\t\t\t\t\t\t\tsequencedMessages.push(this._sentMessages[msgId]);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Also schedule qos 0 buffered messages if any\n\t\t\t\t\tif (this._buffered_msg_queue.length > 0) {\n\t\t\t\t\t\tvar msg = null;\n\t\t\t\t\t\twhile ((msg = this._buffered_msg_queue.pop())) {\n\t\t\t\t\t\t\tsequencedMessages.push(msg);\n\t\t\t\t\t\t\tif (this.onMessageDelivered)\n\t\t\t\t\t\t\t\tthis._notify_msg_sent[msg] = this.onMessageDelivered(msg.payloadMessage);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Sort sentMessages into the original sent order.\n\t\t\t\t\tvar sequencedMessages = sequencedMessages.sort(function(a,b) {return a.sequence - b.sequence;} );\n\t\t\t\t\tfor (var i=0, len=sequencedMessages.length; i\n\t * Most applications will create just one Client object and then call its connect() method,\n\t * however applications can create more than one Client object if they wish.\n\t * In this case the combination of host, port and clientId attributes must be different for each Client object.\n\t *

\n\t * The send, subscribe and unsubscribe methods are implemented as asynchronous JavaScript methods\n\t * (even though the underlying protocol exchange might be synchronous in nature).\n\t * This means they signal their completion by calling back to the application,\n\t * via Success or Failure callback functions provided by the application on the method in question.\n\t * Such callbacks are called at most once per method invocation and do not persist beyond the lifetime\n\t * of the script that made the invocation.\n\t *

\n\t * In contrast there are some callback functions, most notably onMessageArrived,\n\t * that are defined on the {@link Paho.Client} object.\n\t * These may get called multiple times, and aren't directly related to specific method invocations made by the client.\n\t *\n\t * @name Paho.Client\n\t *\n\t * @constructor\n\t *\n\t * @param {string} host - the address of the messaging server, as a fully qualified WebSocket URI, as a DNS name or dotted decimal IP address.\n\t * @param {number} port - the port number to connect to - only required if host is not a URI\n\t * @param {string} path - the path on the host to connect to - only used if host is not a URI. Default: '/mqtt'.\n\t * @param {string} clientId - the Messaging client identifier, between 1 and 23 characters in length.\n\t *\n\t * @property {string} host - read only the server's DNS hostname or dotted decimal IP address.\n\t * @property {number} port - read only the server's port.\n\t * @property {string} path - read only the server's path.\n\t * @property {string} clientId - read only used when connecting to the server.\n\t * @property {function} onConnectionLost - called when a connection has been lost.\n\t * after a connect() method has succeeded.\n\t * Establish the call back used when a connection has been lost. The connection may be\n\t * lost because the client initiates a disconnect or because the server or network\n\t * cause the client to be disconnected. The disconnect call back may be called without\n\t * the connectionComplete call back being invoked if, for example the client fails to\n\t * connect.\n\t * A single response object parameter is passed to the onConnectionLost callback containing the following fields:\n\t *

    \n\t *
  1. errorCode\n\t *
  2. errorMessage\n\t *
\n\t * @property {function} onMessageDelivered - called when a message has been delivered.\n\t * All processing that this Client will ever do has been completed. So, for example,\n\t * in the case of a Qos=2 message sent by this client, the PubComp flow has been received from the server\n\t * and the message has been removed from persistent storage before this callback is invoked.\n\t * Parameters passed to the onMessageDelivered callback are:\n\t *
    \n\t *
  1. {@link Paho.Message} that was delivered.\n\t *
\n\t * @property {function} onMessageArrived - called when a message has arrived in this Paho.client.\n\t * Parameters passed to the onMessageArrived callback are:\n\t *
    \n\t *
  1. {@link Paho.Message} that has arrived.\n\t *
\n\t * @property {function} onConnected - called when a connection is successfully made to the server.\n\t * after a connect() method.\n\t * Parameters passed to the onConnected callback are:\n\t *
    \n\t *
  1. reconnect (boolean) - If true, the connection was the result of a reconnect.
  2. \n\t *
  3. URI (string) - The URI used to connect to the server.
  4. \n\t *
\n\t * @property {boolean} disconnectedPublishing - if set, will enable disconnected publishing in\n\t * in the event that the connection to the server is lost.\n\t * @property {number} disconnectedBufferSize - Used to set the maximum number of messages that the disconnected\n\t * buffer will hold before rejecting new messages. Default size: 5000 messages\n\t * @property {function} trace - called whenever trace is called. TODO\n\t */\n\t\tvar Client = function (host, port, path, clientId) {\n\n\t\t\tvar uri;\n\n\t\t\tif (typeof host !== \"string\")\n\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof host, \"host\"]));\n\n\t\t\tif (arguments.length == 2) {\n\t\t\t// host: must be full ws:// uri\n\t\t\t// port: clientId\n\t\t\t\tclientId = port;\n\t\t\t\turi = host;\n\t\t\t\tvar match = uri.match(/^(wss?):\\/\\/((\\[(.+)\\])|([^\\/]+?))(:(\\d+))?(\\/.*)$/);\n\t\t\t\tif (match) {\n\t\t\t\t\thost = match[4]||match[2];\n\t\t\t\t\tport = parseInt(match[7]);\n\t\t\t\t\tpath = match[8];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[host,\"host\"]));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (arguments.length == 3) {\n\t\t\t\t\tclientId = path;\n\t\t\t\t\tpath = \"/mqtt\";\n\t\t\t\t}\n\t\t\t\tif (typeof port !== \"number\" || port < 0)\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof port, \"port\"]));\n\t\t\t\tif (typeof path !== \"string\")\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof path, \"path\"]));\n\n\t\t\t\tvar ipv6AddSBracket = (host.indexOf(\":\") !== -1 && host.slice(0,1) !== \"[\" && host.slice(-1) !== \"]\");\n\t\t\t\turi = \"ws://\"+(ipv6AddSBracket?\"[\"+host+\"]\":host)+\":\"+port+path;\n\t\t\t}\n\n\t\t\tvar clientIdLength = 0;\n\t\t\tfor (var i = 0; i 65535)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [clientId, \"clientId\"]));\n\n\t\t\tvar client = new ClientImpl(uri, host, port, path, clientId);\n\n\t\t\t//Public Properties\n\t\t\tObject.defineProperties(this,{\n\t\t\t\t\"host\":{\n\t\t\t\t\tget: function() { return host; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"port\":{\n\t\t\t\t\tget: function() { return port; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"path\":{\n\t\t\t\t\tget: function() { return path; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"uri\":{\n\t\t\t\t\tget: function() { return uri; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"clientId\":{\n\t\t\t\t\tget: function() { return client.clientId; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"onConnected\":{\n\t\t\t\t\tget: function() { return client.onConnected; },\n\t\t\t\t\tset: function(newOnConnected) {\n\t\t\t\t\t\tif (typeof newOnConnected === \"function\")\n\t\t\t\t\t\t\tclient.onConnected = newOnConnected;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnected, \"onConnected\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"disconnectedPublishing\":{\n\t\t\t\t\tget: function() { return client.disconnectedPublishing; },\n\t\t\t\t\tset: function(newDisconnectedPublishing) {\n\t\t\t\t\t\tclient.disconnectedPublishing = newDisconnectedPublishing;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"disconnectedBufferSize\":{\n\t\t\t\t\tget: function() { return client.disconnectedBufferSize; },\n\t\t\t\t\tset: function(newDisconnectedBufferSize) {\n\t\t\t\t\t\tclient.disconnectedBufferSize = newDisconnectedBufferSize;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onConnectionLost\":{\n\t\t\t\t\tget: function() { return client.onConnectionLost; },\n\t\t\t\t\tset: function(newOnConnectionLost) {\n\t\t\t\t\t\tif (typeof newOnConnectionLost === \"function\")\n\t\t\t\t\t\t\tclient.onConnectionLost = newOnConnectionLost;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnectionLost, \"onConnectionLost\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onMessageDelivered\":{\n\t\t\t\t\tget: function() { return client.onMessageDelivered; },\n\t\t\t\t\tset: function(newOnMessageDelivered) {\n\t\t\t\t\t\tif (typeof newOnMessageDelivered === \"function\")\n\t\t\t\t\t\t\tclient.onMessageDelivered = newOnMessageDelivered;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageDelivered, \"onMessageDelivered\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onMessageArrived\":{\n\t\t\t\t\tget: function() { return client.onMessageArrived; },\n\t\t\t\t\tset: function(newOnMessageArrived) {\n\t\t\t\t\t\tif (typeof newOnMessageArrived === \"function\")\n\t\t\t\t\t\t\tclient.onMessageArrived = newOnMessageArrived;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageArrived, \"onMessageArrived\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"trace\":{\n\t\t\t\t\tget: function() { return client.traceFunction; },\n\t\t\t\t\tset: function(trace) {\n\t\t\t\t\t\tif(typeof trace === \"function\"){\n\t\t\t\t\t\t\tclient.traceFunction = trace;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof trace, \"onTrace\"]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t/**\n\t\t * Connect this Messaging client to its server.\n\t\t *\n\t\t * @name Paho.Client#connect\n\t\t * @function\n\t\t * @param {object} connectOptions - Attributes used with the connection.\n\t\t * @param {number} connectOptions.timeout - If the connect has not succeeded within this\n\t\t * number of seconds, it is deemed to have failed.\n\t\t * The default is 30 seconds.\n\t\t * @param {string} connectOptions.userName - Authentication username for this connection.\n\t\t * @param {string} connectOptions.password - Authentication password for this connection.\n\t\t * @param {Paho.Message} connectOptions.willMessage - sent by the server when the client\n\t\t * disconnects abnormally.\n\t\t * @param {number} connectOptions.keepAliveInterval - the server disconnects this client if\n\t\t * there is no activity for this number of seconds.\n\t\t * The default value of 60 seconds is assumed if not set.\n\t\t * @param {boolean} connectOptions.cleanSession - if true(default) the client and server\n\t\t * persistent state is deleted on successful connect.\n\t\t * @param {boolean} connectOptions.useSSL - if present and true, use an SSL Websocket connection.\n\t\t * @param {object} connectOptions.invocationContext - passed to the onSuccess callback or onFailure callback.\n\t\t * @param {function} connectOptions.onSuccess - called when the connect acknowledgement\n\t\t * has been received from the server.\n\t\t * A single response object parameter is passed to the onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext as passed in to the onSuccess method in the connectOptions.\n\t\t *
\n\t * @param {function} connectOptions.onFailure - called when the connect request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext as passed in to the onFailure method in the connectOptions.\n\t\t *
  2. errorCode a number indicating the nature of the error.\n\t\t *
  3. errorMessage text describing the error.\n\t\t *
\n\t * @param {array} connectOptions.hosts - If present this contains either a set of hostnames or fully qualified\n\t\t * WebSocket URIs (ws://iot.eclipse.org:80/ws), that are tried in order in place\n\t\t * of the host and port paramater on the construtor. The hosts are tried one at at time in order until\n\t\t * one of then succeeds.\n\t * @param {array} connectOptions.ports - If present the set of ports matching the hosts. If hosts contains URIs, this property\n\t\t * is not used.\n\t * @param {boolean} connectOptions.reconnect - Sets whether the client will automatically attempt to reconnect\n\t * to the server if the connection is lost.\n\t *
    \n\t *
  • If set to false, the client will not attempt to automatically reconnect to the server in the event that the\n\t * connection is lost.
  • \n\t *
  • If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server.\n\t * It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay\n\t * will double until it is at 2 minutes at which point the delay will stay at 2 minutes.
  • \n\t *
\n\t * @param {number} connectOptions.mqttVersion - The version of MQTT to use to connect to the MQTT Broker.\n\t *
    \n\t *
  • 3 - MQTT V3.1
  • \n\t *
  • 4 - MQTT V3.1.1
  • \n\t *
\n\t * @param {boolean} connectOptions.mqttVersionExplicit - If set to true, will force the connection to use the\n\t * selected MQTT Version or will fail to connect.\n\t * @param {array} connectOptions.uris - If present, should contain a list of fully qualified WebSocket uris\n\t * (e.g. ws://iot.eclipse.org:80/ws), that are tried in order in place of the host and port parameter of the construtor.\n\t * The uris are tried one at a time in order until one of them succeeds. Do not use this in conjunction with hosts as\n\t * the hosts array will be converted to uris and will overwrite this property.\n\t\t * @throws {InvalidState} If the client is not in disconnected state. The client must have received connectionLost\n\t\t * or disconnected before calling connect for a second or subsequent time.\n\t\t */\n\t\t\tthis.connect = function (connectOptions) {\n\t\t\t\tconnectOptions = connectOptions || {} ;\n\t\t\t\tvalidate(connectOptions, {timeout:\"number\",\n\t\t\t\t\tuserName:\"string\",\n\t\t\t\t\tpassword:\"string\",\n\t\t\t\t\twillMessage:\"object\",\n\t\t\t\t\tkeepAliveInterval:\"number\",\n\t\t\t\t\tcleanSession:\"boolean\",\n\t\t\t\t\tuseSSL:\"boolean\",\n\t\t\t\t\tinvocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\thosts:\"object\",\n\t\t\t\t\tports:\"object\",\n\t\t\t\t\treconnect:\"boolean\",\n\t\t\t\t\tmqttVersion:\"number\",\n\t\t\t\t\tmqttVersionExplicit:\"boolean\",\n\t\t\t\t\turis: \"object\"});\n\n\t\t\t\t// If no keep alive interval is set, assume 60 seconds.\n\t\t\t\tif (connectOptions.keepAliveInterval === undefined)\n\t\t\t\t\tconnectOptions.keepAliveInterval = 60;\n\n\t\t\t\tif (connectOptions.mqttVersion > 4 || connectOptions.mqttVersion < 3) {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.mqttVersion, \"connectOptions.mqttVersion\"]));\n\t\t\t\t}\n\n\t\t\t\tif (connectOptions.mqttVersion === undefined) {\n\t\t\t\t\tconnectOptions.mqttVersionExplicit = false;\n\t\t\t\t\tconnectOptions.mqttVersion = 4;\n\t\t\t\t} else {\n\t\t\t\t\tconnectOptions.mqttVersionExplicit = true;\n\t\t\t\t}\n\n\t\t\t\t//Check that if password is set, so is username\n\t\t\t\tif (connectOptions.password !== undefined && connectOptions.userName === undefined)\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.password, \"connectOptions.password\"]));\n\n\t\t\t\tif (connectOptions.willMessage) {\n\t\t\t\t\tif (!(connectOptions.willMessage instanceof Message))\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [connectOptions.willMessage, \"connectOptions.willMessage\"]));\n\t\t\t\t\t// The will message must have a payload that can be represented as a string.\n\t\t\t\t\t// Cause the willMessage to throw an exception if this is not the case.\n\t\t\t\t\tconnectOptions.willMessage.stringPayload = null;\n\n\t\t\t\t\tif (typeof connectOptions.willMessage.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.willMessage.destinationName, \"connectOptions.willMessage.destinationName\"]));\n\t\t\t\t}\n\t\t\t\tif (typeof connectOptions.cleanSession === \"undefined\")\n\t\t\t\t\tconnectOptions.cleanSession = true;\n\t\t\t\tif (connectOptions.hosts) {\n\n\t\t\t\t\tif (!(connectOptions.hosts instanceof Array) )\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n\t\t\t\t\tif (connectOptions.hosts.length <1 )\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n\n\t\t\t\t\tvar usingURIs = false;\n\t\t\t\t\tfor (var i = 0; i\n\t\t * @param {object} subscribeOptions - used to control the subscription\n\t\t *\n\t\t * @param {number} subscribeOptions.qos - the maximum qos of any publications sent\n\t\t * as a result of making this subscription.\n\t\t * @param {object} subscribeOptions.invocationContext - passed to the onSuccess callback\n\t\t * or onFailure callback.\n\t\t * @param {function} subscribeOptions.onSuccess - called when the subscribe acknowledgement\n\t\t * has been received from the server.\n\t\t * A single response object parameter is passed to the onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext if set in the subscribeOptions.\n\t\t *
\n\t\t * @param {function} subscribeOptions.onFailure - called when the subscribe request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the subscribeOptions.\n\t\t *
  2. errorCode - a number indicating the nature of the error.\n\t\t *
  3. errorMessage - text describing the error.\n\t\t *
\n\t\t * @param {number} subscribeOptions.timeout - which, if present, determines the number of\n\t\t * seconds after which the onFailure calback is called.\n\t\t * The presence of a timeout does not prevent the onSuccess\n\t\t * callback from being called when the subscribe completes.\n\t\t * @throws {InvalidState} if the client is not in connected state.\n\t\t */\n\t\t\tthis.subscribe = function (filter, subscribeOptions) {\n\t\t\t\tif (typeof filter !== \"string\")\n\t\t\t\t\tthrow new Error(\"Invalid argument:\"+filter);\n\t\t\t\tsubscribeOptions = subscribeOptions || {} ;\n\t\t\t\tvalidate(subscribeOptions, {qos:\"number\",\n\t\t\t\t\tinvocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\ttimeout:\"number\"\n\t\t\t\t});\n\t\t\t\tif (subscribeOptions.timeout && !subscribeOptions.onFailure)\n\t\t\t\t\tthrow new Error(\"subscribeOptions.timeout specified with no onFailure callback.\");\n\t\t\t\tif (typeof subscribeOptions.qos !== \"undefined\" && !(subscribeOptions.qos === 0 || subscribeOptions.qos === 1 || subscribeOptions.qos === 2 ))\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [subscribeOptions.qos, \"subscribeOptions.qos\"]));\n\t\t\t\tclient.subscribe(filter, subscribeOptions);\n\t\t\t};\n\n\t\t\t/**\n\t\t * Unsubscribe for messages, stop receiving messages sent to destinations described by the filter.\n\t\t *\n\t\t * @name Paho.Client#unsubscribe\n\t\t * @function\n\t\t * @param {string} filter - describing the destinations to receive messages from.\n\t\t * @param {object} unsubscribeOptions - used to control the subscription\n\t\t * @param {object} unsubscribeOptions.invocationContext - passed to the onSuccess callback\n\t\t\t\t\t\t\t\t\t\t\t or onFailure callback.\n\t\t * @param {function} unsubscribeOptions.onSuccess - called when the unsubscribe acknowledgement has been received from the server.\n\t\t * A single response object parameter is passed to the\n\t\t * onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the unsubscribeOptions.\n\t\t *
\n\t\t * @param {function} unsubscribeOptions.onFailure called when the unsubscribe request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the unsubscribeOptions.\n\t\t *
  2. errorCode - a number indicating the nature of the error.\n\t\t *
  3. errorMessage - text describing the error.\n\t\t *
\n\t\t * @param {number} unsubscribeOptions.timeout - which, if present, determines the number of seconds\n\t\t * after which the onFailure callback is called. The presence of\n\t\t * a timeout does not prevent the onSuccess callback from being\n\t\t * called when the unsubscribe completes\n\t\t * @throws {InvalidState} if the client is not in connected state.\n\t\t */\n\t\t\tthis.unsubscribe = function (filter, unsubscribeOptions) {\n\t\t\t\tif (typeof filter !== \"string\")\n\t\t\t\t\tthrow new Error(\"Invalid argument:\"+filter);\n\t\t\t\tunsubscribeOptions = unsubscribeOptions || {} ;\n\t\t\t\tvalidate(unsubscribeOptions, {invocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\ttimeout:\"number\"\n\t\t\t\t});\n\t\t\t\tif (unsubscribeOptions.timeout && !unsubscribeOptions.onFailure)\n\t\t\t\t\tthrow new Error(\"unsubscribeOptions.timeout specified with no onFailure callback.\");\n\t\t\t\tclient.unsubscribe(filter, unsubscribeOptions);\n\t\t\t};\n\n\t\t\t/**\n\t\t * Send a message to the consumers of the destination in the Message.\n\t\t *\n\t\t * @name Paho.Client#send\n\t\t * @function\n\t\t * @param {string|Paho.Message} topic - mandatory The name of the destination to which the message is to be sent.\n\t\t * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n\t\t * @param {String|ArrayBuffer} payload - The message data to be sent.\n\t\t * @param {number} qos The Quality of Service used to deliver the message.\n\t\t * \t\t
\n\t\t * \t\t\t
0 Best effort (default).\n\t\t * \t\t\t
1 At least once.\n\t\t * \t\t\t
2 Exactly once.\n\t\t * \t\t
\n\t\t * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n\t\t * to both current and future subscriptions.\n\t\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t\t * A received message has the retained boolean set to true if the message was published\n\t\t * with the retained boolean set to true\n\t\t * and the subscrption was made after the message has been published.\n\t\t * @throws {InvalidState} if the client is not connected.\n\t\t */\n\t\t\tthis.send = function (topic,payload,qos,retained) {\n\t\t\t\tvar message ;\n\n\t\t\t\tif(arguments.length === 0){\n\t\t\t\t\tthrow new Error(\"Invalid argument.\"+\"length\");\n\n\t\t\t\t}else if(arguments.length == 1) {\n\n\t\t\t\t\tif (!(topic instanceof Message) && (typeof topic !== \"string\"))\n\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+ typeof topic);\n\n\t\t\t\t\tmessage = topic;\n\t\t\t\t\tif (typeof message.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[message.destinationName,\"Message.destinationName\"]));\n\t\t\t\t\tclient.send(message);\n\n\t\t\t\t}else {\n\t\t\t\t//parameter checking in Message object\n\t\t\t\t\tmessage = new Message(payload);\n\t\t\t\t\tmessage.destinationName = topic;\n\t\t\t\t\tif(arguments.length >= 3)\n\t\t\t\t\t\tmessage.qos = qos;\n\t\t\t\t\tif(arguments.length >= 4)\n\t\t\t\t\t\tmessage.retained = retained;\n\t\t\t\t\tclient.send(message);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t * Publish a message to the consumers of the destination in the Message.\n\t\t * Synonym for Paho.Mqtt.Client#send\n\t\t *\n\t\t * @name Paho.Client#publish\n\t\t * @function\n\t\t * @param {string|Paho.Message} topic - mandatory The name of the topic to which the message is to be published.\n\t\t * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n\t\t * @param {String|ArrayBuffer} payload - The message data to be published.\n\t\t * @param {number} qos The Quality of Service used to deliver the message.\n\t\t * \t\t
\n\t\t * \t\t\t
0 Best effort (default).\n\t\t * \t\t\t
1 At least once.\n\t\t * \t\t\t
2 Exactly once.\n\t\t * \t\t
\n\t\t * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n\t\t * to both current and future subscriptions.\n\t\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t\t * A received message has the retained boolean set to true if the message was published\n\t\t * with the retained boolean set to true\n\t\t * and the subscrption was made after the message has been published.\n\t\t * @throws {InvalidState} if the client is not connected.\n\t\t */\n\t\t\tthis.publish = function(topic,payload,qos,retained) {\n\t\t\t\tvar message ;\n\n\t\t\t\tif(arguments.length === 0){\n\t\t\t\t\tthrow new Error(\"Invalid argument.\"+\"length\");\n\n\t\t\t\t}else if(arguments.length == 1) {\n\n\t\t\t\t\tif (!(topic instanceof Message) && (typeof topic !== \"string\"))\n\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+ typeof topic);\n\n\t\t\t\t\tmessage = topic;\n\t\t\t\t\tif (typeof message.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[message.destinationName,\"Message.destinationName\"]));\n\t\t\t\t\tclient.send(message);\n\n\t\t\t\t}else {\n\t\t\t\t\t//parameter checking in Message object\n\t\t\t\t\tmessage = new Message(payload);\n\t\t\t\t\tmessage.destinationName = topic;\n\t\t\t\t\tif(arguments.length >= 3)\n\t\t\t\t\t\tmessage.qos = qos;\n\t\t\t\t\tif(arguments.length >= 4)\n\t\t\t\t\t\tmessage.retained = retained;\n\t\t\t\t\tclient.send(message);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t * Normal disconnect of this Messaging client from its server.\n\t\t *\n\t\t * @name Paho.Client#disconnect\n\t\t * @function\n\t\t * @throws {InvalidState} if the client is already disconnected.\n\t\t */\n\t\t\tthis.disconnect = function () {\n\t\t\t\tclient.disconnect();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Get the contents of the trace log.\n\t\t *\n\t\t * @name Paho.Client#getTraceLog\n\t\t * @function\n\t\t * @return {Object[]} tracebuffer containing the time ordered trace records.\n\t\t */\n\t\t\tthis.getTraceLog = function () {\n\t\t\t\treturn client.getTraceLog();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Start tracing.\n\t\t *\n\t\t * @name Paho.Client#startTrace\n\t\t * @function\n\t\t */\n\t\t\tthis.startTrace = function () {\n\t\t\t\tclient.startTrace();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Stop tracing.\n\t\t *\n\t\t * @name Paho.Client#stopTrace\n\t\t * @function\n\t\t */\n\t\t\tthis.stopTrace = function () {\n\t\t\t\tclient.stopTrace();\n\t\t\t};\n\n\t\t\tthis.isConnected = function() {\n\t\t\t\treturn client.connected;\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * An application message, sent or received.\n\t *

\n\t * All attributes may be null, which implies the default values.\n\t *\n\t * @name Paho.Message\n\t * @constructor\n\t * @param {String|ArrayBuffer} payload The message data to be sent.\n\t *

\n\t * @property {string} payloadString read only The payload as a string if the payload consists of valid UTF-8 characters.\n\t * @property {ArrayBuffer} payloadBytes read only The payload as an ArrayBuffer.\n\t *

\n\t * @property {string} destinationName mandatory The name of the destination to which the message is to be sent\n\t * (for messages about to be sent) or the name of the destination from which the message has been received.\n\t * (for messages received by the onMessage function).\n\t *

\n\t * @property {number} qos The Quality of Service used to deliver the message.\n\t *

\n\t *
0 Best effort (default).\n\t *
1 At least once.\n\t *
2 Exactly once.\n\t *
\n\t *

\n\t * @property {Boolean} retained If true, the message is to be retained by the server and delivered\n\t * to both current and future subscriptions.\n\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t * A received message has the retained boolean set to true if the message was published\n\t * with the retained boolean set to true\n\t * and the subscrption was made after the message has been published.\n\t *

\n\t * @property {Boolean} duplicate read only If true, this message might be a duplicate of one which has already been received.\n\t * This is only set on messages received from the server.\n\t *\n\t */\n\t\tvar Message = function (newPayload) {\n\t\t\tvar payload;\n\t\t\tif ( typeof newPayload === \"string\" ||\n\t\tnewPayload instanceof ArrayBuffer ||\n\t\t(ArrayBuffer.isView(newPayload) && !(newPayload instanceof DataView))\n\t\t\t) {\n\t\t\t\tpayload = newPayload;\n\t\t\t} else {\n\t\t\t\tthrow (format(ERROR.INVALID_ARGUMENT, [newPayload, \"newPayload\"]));\n\t\t\t}\n\n\t\t\tvar destinationName;\n\t\t\tvar qos = 0;\n\t\t\tvar retained = false;\n\t\t\tvar duplicate = false;\n\n\t\t\tObject.defineProperties(this,{\n\t\t\t\t\"payloadString\":{\n\t\t\t\t\tenumerable : true,\n\t\t\t\t\tget : function () {\n\t\t\t\t\t\tif (typeof payload === \"string\")\n\t\t\t\t\t\t\treturn payload;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\treturn parseUTF8(payload, 0, payload.length);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"payloadBytes\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\tif (typeof payload === \"string\") {\n\t\t\t\t\t\t\tvar buffer = new ArrayBuffer(UTF8Length(payload));\n\t\t\t\t\t\t\tvar byteStream = new Uint8Array(buffer);\n\t\t\t\t\t\t\tstringToUTF8(payload, byteStream, 0);\n\t\t\n\t\t\t\t\t\t\treturn byteStream;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn payload;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"destinationName\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return destinationName; },\n\t\t\t\t\tset: function(newDestinationName) {\n\t\t\t\t\t\tif (typeof newDestinationName === \"string\")\n\t\t\t\t\t\t\tdestinationName = newDestinationName;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [newDestinationName, \"newDestinationName\"]));\n\t\t\t\t\t} \n\t\t\t\t},\n\t\t\t\t\"qos\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return qos; },\n\t\t\t\t\tset: function(newQos) {\n\t\t\t\t\t\tif (newQos === 0 || newQos === 1 || newQos === 2 )\n\t\t\t\t\t\t\tqos = newQos;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+newQos);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"retained\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return retained; },\n\t\t\t\t\tset: function(newRetained) {\n\t\t\t\t\t\tif (typeof newRetained === \"boolean\")\n\t\t\t\t\t\t\tretained = newRetained;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [newRetained, \"newRetained\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"topic\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return destinationName; },\n\t\t\t\t\tset: function(newTopic) {destinationName=newTopic;}\n\t\t\t\t},\n\t\t\t\t\"duplicate\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return duplicate; },\n\t\t\t\t\tset: function(newDuplicate) {duplicate=newDuplicate;}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// Module contents.\n\t\treturn {\n\t\t\tClient: Client,\n\t\t\tMessage: Message\n\t\t};\n\t// eslint-disable-next-line no-nested-ternary\n\t})(typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n\treturn PahoMQTT;\n});\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n__export(require(\"./offline-cache\"));\nvar offline_cache_1 = require(\"./offline-cache\");\nexports.OfflineCache = offline_cache_1.default;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar utils_1 = require(\"../utils\");\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nexports.defaultDataIdFromObject = apollo_cache_inmemory_1.defaultDataIdFromObject;\nvar deltaSync_1 = require(\"../deltaSync\");\nvar logger = utils_1.rootLogger.extend('offline-cache');\n// Offline schema keys: Do not change in a non-backwards-compatible way\nexports.NORMALIZED_CACHE_KEY = 'appsync';\nexports.METADATA_KEY = 'appsync-metadata';\nvar WRITE_CACHE_ACTION = 'AAS_WRITE_CACHE';\nfunction isOfflineCacheOptions(obj) {\n return !!obj.store;\n}\n;\nvar MyCache = /** @class */ (function (_super) {\n __extends(MyCache, _super);\n function MyCache(optionsOrStore, config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this, config) || this;\n if (isOfflineCacheOptions(optionsOrStore)) {\n var store = optionsOrStore.store;\n _this.store = store;\n }\n else {\n _this.store = optionsOrStore;\n }\n var cancelSubscription = _this.store.subscribe(function () {\n var _a = _this.store.getState(), _b = exports.NORMALIZED_CACHE_KEY, _c = _a[_b], normCache = _c === void 0 ? {} : _c, _d = _a.rehydrated, rehydrated = _d === void 0 ? false : _d;\n _super.prototype.restore.call(_this, __assign({}, normCache));\n if (rehydrated) {\n logger('Rehydrated! Cancelling subscription.');\n cancelSubscription();\n }\n });\n return _this;\n }\n MyCache.prototype.restore = function (data) {\n boundWriteCache(this.store, data);\n _super.prototype.restore.call(this, data);\n _super.prototype.broadcastWatches.call(this);\n return this;\n };\n MyCache.prototype.write = function (write) {\n _super.prototype.write.call(this, write);\n if (write.dataId === 'ROOT_MUTATION') {\n this.data.delete('ROOT_MUTATION');\n }\n if (this.data && typeof this.data.record === 'undefined') {\n // do not persist contents of a RecordingCache\n var data = _super.prototype.extract.call(this, true);\n boundWriteCache(this.store, data);\n }\n else {\n logger('No dispatch for RecordingCache');\n }\n };\n MyCache.prototype.reset = function () {\n logger('Resetting cache');\n boundWriteCache(this.store, {});\n return _super.prototype.reset.call(this);\n };\n MyCache.prototype.getIdsMap = function () {\n var _a = this.store.getState(), _b = exports.METADATA_KEY, idsMap = _a[_b].idsMap;\n return __assign({}, idsMap);\n };\n return MyCache;\n}(apollo_cache_inmemory_1.InMemoryCache));\nexports.default = MyCache;\nvar boundWriteCache = function (store, data) {\n logger(\"Dispatching \" + WRITE_CACHE_ACTION);\n store.dispatch(writeThunk(WRITE_CACHE_ACTION, data));\n};\nvar writeThunk = function (type, payload) { return function (dispatch, _getState) { return dispatch({\n type: type,\n payload: payload,\n}); }; };\nexports.reducer = function () {\n var _a;\n return (_a = {},\n _a[exports.NORMALIZED_CACHE_KEY] = function (state, action) {\n if (state === void 0) { state = {}; }\n var type = action.type, normCache = action.payload;\n switch (type) {\n case WRITE_CACHE_ACTION:\n return __assign({}, normCache);\n default:\n return state;\n }\n },\n _a);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nrequire(\"setimmediate\");\nvar apollo_client_1 = require(\"apollo-client\");\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_http_1 = require(\"apollo-link-http\");\nvar index_1 = require(\"./cache/index\");\nexports.defaultDataIdFromObject = index_1.defaultDataIdFromObject;\nvar offline_cache_1 = require(\"./cache/offline-cache\");\nvar link_1 = require(\"./link\");\nvar store_1 = require(\"./store\");\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\nexports.AUTH_TYPE = aws_appsync_auth_link_1.AUTH_TYPE;\nvar aws_appsync_subscription_link_1 = require(\"aws-appsync-subscription-link\");\nvar utils_1 = require(\"./utils\");\nvar conflict_resolution_link_1 = require(\"./link/conflict-resolution-link\");\nvar retry_link_1 = require(\"./link/retry-link\");\nvar deltaSync_1 = require(\"./deltaSync\");\nexports.buildSync = deltaSync_1.buildSync;\nvar retry_link_2 = require(\"./link/retry-link\");\nvar CatchErrorLink = /** @class */ (function (_super) {\n __extends(CatchErrorLink, _super);\n function CatchErrorLink(linkGenerator) {\n var _this = this;\n try {\n _this = _super.call(this) || this;\n _this.link = linkGenerator();\n }\n catch (error) {\n error[retry_link_2.PERMANENT_ERROR_KEY] = true;\n throw error;\n }\n return _this;\n }\n CatchErrorLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return CatchErrorLink;\n}(apollo_link_1.ApolloLink));\nvar PermanentErrorLink = /** @class */ (function (_super) {\n __extends(PermanentErrorLink, _super);\n function PermanentErrorLink(link) {\n var _this = _super.call(this) || this;\n _this.link = link;\n return _this;\n }\n PermanentErrorLink.prototype.request = function (operation, forward) {\n var _this = this;\n return new apollo_link_1.Observable(function (observer) {\n var subscription = _this.link.request(operation, forward).subscribe({\n next: observer.next.bind(observer),\n error: function (err) {\n if (err.permanent) {\n err[retry_link_2.PERMANENT_ERROR_KEY] = true;\n }\n observer.error.call(observer, err);\n },\n complete: observer.complete.bind(observer)\n });\n return function () {\n subscription.unsubscribe();\n };\n });\n };\n return PermanentErrorLink;\n}(apollo_link_1.ApolloLink));\nexports.createAppSyncLink = function (_a) {\n var url = _a.url, region = _a.region, auth = _a.auth, complexObjectsCredentials = _a.complexObjectsCredentials, _b = _a.resultsFetcherLink, resultsFetcherLink = _b === void 0 ? apollo_link_http_1.createHttpLink({ uri: url }) : _b, conflictResolver = _a.conflictResolver;\n var link = apollo_link_1.ApolloLink.from([\n createLinkWithStore(function (store) { return new link_1.OfflineLink(store); }),\n new conflict_resolution_link_1.default(conflictResolver),\n new link_1.ComplexObjectLink(complexObjectsCredentials),\n retry_link_1.createRetryLink(apollo_link_1.ApolloLink.from([\n new CatchErrorLink(function () { return new aws_appsync_auth_link_1.AuthLink({ url: url, region: region, auth: auth }); }),\n new PermanentErrorLink(aws_appsync_subscription_link_1.createSubscriptionHandshakeLink({ url: url, region: region, auth: auth }, resultsFetcherLink))\n ]))\n ].filter(Boolean));\n return link;\n};\nexports.createLinkWithCache = function (createLinkFunc) {\n if (createLinkFunc === void 0) { createLinkFunc = function (cache) { return new apollo_link_1.ApolloLink(utils_1.passthroughLink); }; }\n var theLink;\n return new apollo_link_1.ApolloLink(function (op, forward) {\n if (!theLink) {\n var cache = op.getContext().cache;\n theLink = createLinkFunc(cache);\n }\n return theLink.request(op, forward);\n });\n};\nvar createLinkWithStore = function (createLinkFunc) {\n if (createLinkFunc === void 0) { createLinkFunc = function (store) { return new apollo_link_1.ApolloLink(utils_1.passthroughLink); }; }\n return exports.createLinkWithCache(function (cache) {\n var store = cache.store;\n return store ? createLinkFunc(store) : new apollo_link_1.ApolloLink(utils_1.passthroughLink);\n });\n};\nvar keyPrefixesInUse = new Set();\nvar AWSAppSyncClient = /** @class */ (function (_super) {\n __extends(AWSAppSyncClient, _super);\n function AWSAppSyncClient(_a, options) {\n var url = _a.url, region = _a.region, auth = _a.auth, conflictResolver = _a.conflictResolver, complexObjectsCredentials = _a.complexObjectsCredentials, _b = _a.cacheOptions, cacheOptions = _b === void 0 ? {} : _b, _c = _a.disableOffline, disableOffline = _c === void 0 ? false : _c, _d = _a.offlineConfig, _e = _d === void 0 ? {} : _d, _f = _e.storage, storage = _f === void 0 ? undefined : _f, _g = _e.keyPrefix, keyPrefix = _g === void 0 ? undefined : _g, _h = _e.callback, callback = _h === void 0 ? function () { } : _h;\n var _this = this;\n var _j = options || {}, _k = _j.cache, customCache = _k === void 0 ? undefined : _k, _l = _j.link, customLink = _l === void 0 ? undefined : _l;\n if (!customLink && (!url || !region || !auth)) {\n throw new Error('In order to initialize AWSAppSyncClient, you must specify url, region and auth properties on the config object or a custom link.');\n }\n keyPrefix = keyPrefix || store_1.DEFAULT_KEY_PREFIX;\n if (!disableOffline && keyPrefixesInUse.has(keyPrefix)) {\n throw new Error(\"The keyPrefix \" + keyPrefix + \" is already in use. Multiple clients cannot share the same keyPrefix. Provide a different keyPrefix in the offlineConfig object.\");\n }\n var resolveClient;\n var dataIdFromObject = disableOffline ? function () { return null; } : cacheOptions.dataIdFromObject || index_1.defaultDataIdFromObject;\n var store = disableOffline ? null : store_1.createStore({\n clientGetter: function () { return _this; },\n persistCallback: function () { resolveClient(_this); },\n dataIdFromObject: dataIdFromObject,\n storage: storage,\n keyPrefix: keyPrefix,\n callback: callback\n });\n var cache = disableOffline\n ? (customCache || new apollo_cache_inmemory_1.InMemoryCache(cacheOptions))\n : new index_1.OfflineCache({ store: store }, cacheOptions);\n var waitForRehydrationLink = new apollo_link_1.ApolloLink(function (op, forward) {\n var handle = null;\n return new apollo_link_1.Observable(function (observer) {\n _this.hydratedPromise.then(function () {\n handle = utils_1.passthroughLink(op, forward).subscribe(observer);\n }).catch(observer.error);\n return function () {\n if (handle) {\n handle.unsubscribe();\n }\n };\n });\n });\n var link = waitForRehydrationLink.concat(customLink || exports.createAppSyncLink({ url: url, region: region, auth: auth, complexObjectsCredentials: complexObjectsCredentials, conflictResolver: conflictResolver }));\n var newOptions = __assign(__assign({}, options), { link: link,\n cache: cache });\n _this = _super.call(this, newOptions) || this;\n _this.hydratedPromise = disableOffline ? Promise.resolve(_this) : new Promise(function (resolve) { resolveClient = resolve; });\n _this._disableOffline = disableOffline;\n _this._store = store;\n if (!disableOffline) {\n keyPrefixesInUse.add(keyPrefix);\n }\n return _this;\n }\n AWSAppSyncClient.prototype.hydrated = function () {\n return this.hydratedPromise;\n };\n ;\n AWSAppSyncClient.prototype.isOfflineEnabled = function () {\n return !this._disableOffline;\n };\n AWSAppSyncClient.prototype.mutate = function (options) {\n if (!this.isOfflineEnabled()) {\n return _super.prototype.mutate.call(this, options);\n }\n var doIt = false;\n var origContext = options.context, optimisticResponse = options.optimisticResponse, update = options.update, fetchPolicy = options.fetchPolicy, otherOptions = __rest(options, [\"context\", \"optimisticResponse\", \"update\", \"fetchPolicy\"]);\n var context = __assign(__assign({}, origContext), { AASContext: {\n doIt: doIt,\n optimisticResponse: optimisticResponse,\n update: update,\n fetchPolicy: fetchPolicy,\n } });\n return _super.prototype.mutate.call(this, __assign({ optimisticResponse: optimisticResponse,\n context: context,\n update: update,\n fetchPolicy: fetchPolicy }, otherOptions));\n };\n AWSAppSyncClient.prototype.sync = function (options) {\n var _this = this;\n if (!this.isOfflineEnabled()) {\n throw new Error('Not supported');\n }\n return new apollo_link_1.Observable(function (observer) {\n var handle;\n var callback = function (subscription) {\n handle = subscription;\n };\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var hash, itemInHash, _a, baseLastSyncTimestamp;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.hydrated()];\n case 1:\n _b.sent();\n hash = deltaSync_1.hashForOptions(options);\n itemInHash = this._store.getState()[offline_cache_1.METADATA_KEY][deltaSync_1.DELTASYNC_KEY].metadata[hash];\n _a = (itemInHash || {}).baseLastSyncTimestamp, baseLastSyncTimestamp = _a === void 0 ? null : _a;\n deltaSync_1.boundEnqueueDeltaSync(this._store, __assign(__assign({}, options), { baseLastSyncTimestamp: baseLastSyncTimestamp }), observer, callback);\n return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n if (handle) {\n handle.unsubscribe();\n }\n };\n }).subscribe(function () { });\n };\n return AWSAppSyncClient;\n}(apollo_client_1.default));\nexports.AWSAppSyncClient = AWSAppSyncClient;\nexports.default = AWSAppSyncClient;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nvar offline_cache_1 = require(\"./cache/offline-cache\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar utils_1 = require(\"./utils\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar retry_link_1 = require(\"./link/retry-link\");\nvar graphql_1 = require(\"graphql\");\nvar offline_1 = require(\"./helpers/offline\");\nvar offline_link_1 = require(\"./link/offline-link\");\nvar aws_appsync_subscription_link_1 = require(\"aws-appsync-subscription-link\");\nvar logger = utils_1.rootLogger.extend('deltasync');\nexports.DELTASYNC_KEY = 'deltaSync';\n//#endregion\n//#region Constants\nvar actions = {\n ENQUEUE: 'DELTASYNC_ENQUEUE_RECONNECT',\n UPDATE_LASTSYNC: 'DELTASYNC_UPDATE_LASTSYNC',\n};\nvar DEFAULT_UPPER_BOUND_TIME_MS = 24 * 60 * 60 * 1000;\nvar MIN_UPPER_BOUND_TIME_MS = 2 * 1000;\nvar BUFFER_MILLISECONDS = 2000;\n//#endregion\n//#region helpers\nvar subscriptionMessagesProcessorCreator = function (proxy, updateFunction) {\n var buffer = [];\n var ready = false;\n var wrappedUpdateFunction = function (proxy, record) { return apollo_utilities_1.tryFunctionOrLogError(function () { return updateFunction(proxy, record); }); };\n var processor = {\n enqueue: function (record) {\n if (ready) {\n wrappedUpdateFunction(proxy, record);\n return;\n }\n buffer.push(record);\n },\n ready: function () {\n if (ready) {\n return;\n }\n buffer.forEach(function (record) { return wrappedUpdateFunction(proxy, record); });\n buffer = [];\n ready = true;\n },\n close: function () {\n buffer = [];\n ready = true;\n }\n };\n return processor;\n};\nexports.hashForOptions = function (options) {\n var _a = options.baseQuery, _b = _a === void 0 ? {} : _a, _c = _b.query, baseQueryQuery = _c === void 0 ? null : _c, _d = _b.variables, baseQueryVariables = _d === void 0 ? {} : _d, _e = options.subscriptionQuery, _f = _e === void 0 ? {} : _e, _g = _f.query, subscriptionQueryQuery = _g === void 0 ? null : _g, _h = _f.variables, subscriptionQueryVariables = _h === void 0 ? {} : _h, _j = options.deltaQuery, _k = _j === void 0 ? {} : _j, _l = _k.query, deltaQueryQuery = _l === void 0 ? null : _l, _m = _k.variables, deltaQueryVariables = _m === void 0 ? {} : _m;\n var baseQuery = baseQueryQuery ? {\n query: graphql_1.print(baseQueryQuery),\n variables: baseQueryVariables,\n } : {};\n var subscriptionQuery = subscriptionQueryQuery ? {\n query: graphql_1.print(subscriptionQueryQuery),\n variables: subscriptionQueryVariables,\n } : {};\n var deltaQuery = deltaQueryQuery ? {\n query: graphql_1.print(deltaQueryQuery),\n variables: deltaQueryVariables,\n } : {};\n return utils_1.hash(JSON.stringify({\n baseQuery: baseQuery,\n subscriptionQuery: subscriptionQuery,\n deltaQuery: deltaQuery,\n }));\n};\n//#endregion\n//#region Redux\nvar effect = function (store, client, effect, _action, _offlineCallback, offlineStatusChangeObservable) { return __awaiter(void 0, void 0, void 0, function () {\n var options, _a, baseQuery, subscriptionQuery, deltaQuery, observer, _b, callback, upperBoundTimeMS, hash, itemInHash, _c, lastSyncTimestamp, _d, baseLastSyncTimestamp, networkStatusSubscription, subscription, baseQueryTimeoutId, subscriptionProcessor, unsubscribeAll, enqueueAgain, handle, STOP_CACHE_RECORDING, recorderCacheWrites, cacheProxy, error_2, _e, _f, _g, idsMap_1, cacheSnapshot, enquededMutations, subsControlLogger_1, baseRefreshIntervalInSeconds, skipBaseQuery, query, update_1, variables, result_1, _h, _j, cacheSnapshot_1, data, query, update_2, variables, result_2, dataStore_1, enqueuedActionsFilter_1, baseQueryTimeout, error_1;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n options = effect.options, _a = effect.options, baseQuery = _a.baseQuery, subscriptionQuery = _a.subscriptionQuery, deltaQuery = _a.deltaQuery, observer = effect.observer, _b = effect.callback, callback = _b === void 0 ? function () { } : _b;\n if (!observer || typeof observer.next !== 'function' || observer.closed) {\n // If we don't have an observer, we complete this effect (this means the app was closed/opened and a completely \n // new deltaSync will happen)\n return [2 /*return*/];\n }\n upperBoundTimeMS = DEFAULT_UPPER_BOUND_TIME_MS;\n hash = exports.hashForOptions(options);\n itemInHash = store.getState()[offline_cache_1.METADATA_KEY][exports.DELTASYNC_KEY].metadata[hash];\n _c = options.lastSyncTimestamp, lastSyncTimestamp = _c === void 0 ? itemInHash.lastSyncTimestamp : _c, _d = options.baseLastSyncTimestamp, baseLastSyncTimestamp = _d === void 0 ? itemInHash.baseLastSyncTimestamp : _d;\n unsubscribeAll = function () {\n logger('Unsubscribing');\n if (networkStatusSubscription)\n networkStatusSubscription.unsubscribe();\n if (subscription)\n subscription.unsubscribe();\n if (baseQueryTimeoutId)\n clearTimeout(baseQueryTimeoutId);\n if (subscriptionProcessor)\n subscriptionProcessor.close();\n };\n enqueueAgain = function () {\n unsubscribeAll();\n logger('Re-queuing', { baseLastSyncTimestamp: baseLastSyncTimestamp, lastSyncTimestamp: lastSyncTimestamp });\n exports.boundEnqueueDeltaSync(store, __assign(__assign({}, options), { lastSyncTimestamp: lastSyncTimestamp, baseLastSyncTimestamp: baseLastSyncTimestamp }), observer, callback);\n };\n if (typeof callback === 'function') {\n handle = new apollo_link_1.Observable(function () { return function () { return unsubscribeAll(); }; }).subscribe({ next: function () { } });\n callback(handle);\n }\n networkStatusSubscription = new apollo_link_1.Observable(function (obs) {\n var handle = offlineStatusChangeObservable.subscribe({\n next: function (_a) {\n var online = _a.online;\n if (!online) {\n obs.next(null);\n obs.complete();\n }\n },\n complete: function () { return obs.complete(); },\n });\n return function () { return handle.unsubscribe(); };\n }).subscribe({\n next: function () {\n enqueueAgain();\n }\n });\n STOP_CACHE_RECORDING = typeof Symbol !== 'undefined' ? Symbol('stopCacheRecording') : '@@stopCacheRecording';\n recorderCacheWrites = [];\n cacheProxy = new Proxy(client.cache, {\n get: function (target, name, receiver) {\n switch (name) {\n case 'write':\n return function (options) {\n if (!receiver[STOP_CACHE_RECORDING]) {\n recorderCacheWrites.push(options);\n }\n return target[name](options);\n };\n }\n return target[name];\n }\n });\n subscriptionProcessor = subscriptionMessagesProcessorCreator(cacheProxy, function (proxy, record) {\n var update = options.subscriptionQuery.update;\n if (typeof update === 'function') {\n update(proxy, record);\n client.queryManager.broadcastQueries();\n }\n });\n _k.label = 1;\n case 1:\n _k.trys.push([1, 8, , 9]);\n _e = store.getState(), _f = offline_cache_1.METADATA_KEY, _g = _e[_f], idsMap_1 = _g.idsMap, cacheSnapshot = _g.snapshot.cache, enquededMutations = _e.offline.outbox;\n subsControlLogger_1 = logger.extend('subsc-control');\n return [4 /*yield*/, new Promise(function (resolve) {\n var _a;\n if (subscriptionQuery && subscriptionQuery.query) {\n var query = subscriptionQuery.query, variables = subscriptionQuery.variables;\n subscription = client.subscribe({\n query: query,\n variables: __assign(__assign({}, variables), (_a = {}, _a[retry_link_1.SKIP_RETRY_KEY] = true, _a[aws_appsync_subscription_link_1.CONTROL_EVENTS_KEY] = true, _a)),\n }).filter(function (data) {\n var _a = data.extensions, _b = _a === void 0 ? {} : _a, _c = _b.controlMsgType, controlMsgType = _c === void 0 ? undefined : _c, _d = _b.controlMsgInfo, controlMsgInfo = _d === void 0 ? undefined : _d;\n var isControlMsg = typeof controlMsgType !== 'undefined';\n if (controlMsgType) {\n subsControlLogger_1(controlMsgType, controlMsgInfo);\n if (controlMsgType === 'CONNECTED') {\n resolve();\n }\n }\n return !isControlMsg;\n }).subscribe({\n next: function (data) {\n subscriptionProcessor.enqueue(data);\n },\n error: function (err) {\n resolve();\n error_2 = err;\n unsubscribeAll();\n if (apollo_utilities_1.graphQLResultHasError(err) || err.graphQLErrors) {\n // send error to observable, unsubscribe all, do not enqueue\n observer.error(err);\n return;\n }\n enqueueAgain();\n }\n });\n }\n else {\n resolve();\n }\n })];\n case 2:\n _k.sent();\n if (error_2) {\n throw error_2;\n }\n baseRefreshIntervalInSeconds = (baseQuery || { baseRefreshIntervalInSeconds: undefined }).baseRefreshIntervalInSeconds;\n upperBoundTimeMS = baseRefreshIntervalInSeconds ? baseRefreshIntervalInSeconds * 1000 : DEFAULT_UPPER_BOUND_TIME_MS;\n skipBaseQuery = !(baseQuery && baseQuery.query) || (baseLastSyncTimestamp\n ? Date.now() - baseLastSyncTimestamp < upperBoundTimeMS\n : itemInHash.baseLastSyncTimestamp && Date.now() - itemInHash.baseLastSyncTimestamp < upperBoundTimeMS);\n if (!(baseQuery && baseQuery.query)) return [3 /*break*/, 5];\n query = baseQuery.query, update_1 = baseQuery.update, variables = baseQuery.variables;\n logger((skipBaseQuery ? 'Skipping' : 'Running') + \" base query\", { baseLastSyncTimestamp: baseLastSyncTimestamp, itemInHash: itemInHash });\n if (!!skipBaseQuery) return [3 /*break*/, 4];\n return [4 /*yield*/, client.query({\n fetchPolicy: 'no-cache',\n query: query,\n variables: variables,\n })];\n case 3:\n result_1 = _k.sent();\n cacheProxy.writeQuery({ query: query, variables: variables, data: result_1.data });\n if (typeof update_1 === 'function') {\n apollo_utilities_1.tryFunctionOrLogError(function () {\n update_1(cacheProxy, result_1);\n });\n }\n baseLastSyncTimestamp = Date.now() - BUFFER_MILLISECONDS;\n boundUpdateLastSync(store, { hash: hash, baseLastSyncTimestamp: baseLastSyncTimestamp });\n return [3 /*break*/, 5];\n case 4:\n try {\n if (enquededMutations.length === 1) {\n offline_link_1.boundSaveSnapshot(store, client.cache);\n }\n _h = store.getState(), _j = offline_cache_1.METADATA_KEY, cacheSnapshot_1 = _h[_j].snapshot.cache;\n data = cacheProxy.storeReader.readQueryFromStore({\n store: apollo_cache_inmemory_1.defaultNormalizedCacheFactory(cacheSnapshot_1),\n query: apollo_utilities_1.addTypenameToDocument(query),\n variables: variables,\n });\n cacheProxy.writeQuery({ query: query, variables: variables, data: data });\n }\n catch (error) {\n logger('Error reading/writting baseQuery from store', error);\n }\n _k.label = 5;\n case 5:\n //#endregion\n //#region Delta query\n if (deltaQuery && deltaQuery.query && !skipBaseQuery) {\n logger('Skipping deltaQuery');\n }\n if (!(deltaQuery && deltaQuery.query && skipBaseQuery)) return [3 /*break*/, 7];\n query = deltaQuery.query, update_2 = deltaQuery.update, variables = deltaQuery.variables;\n logger('Running deltaQuery', { lastSyncTimestamp: lastSyncTimestamp, baseLastSyncTimestamp: baseLastSyncTimestamp });\n return [4 /*yield*/, client.query({\n fetchPolicy: 'no-cache',\n query: query,\n variables: __assign(__assign({}, variables), { lastSync: Math.floor((lastSyncTimestamp || baseLastSyncTimestamp) / 1000) || 0 }),\n })];\n case 6:\n result_2 = _k.sent();\n if (typeof update_2 === 'function') {\n apollo_utilities_1.tryFunctionOrLogError(function () {\n update_2(cacheProxy, result_2);\n });\n }\n lastSyncTimestamp = Date.now() - BUFFER_MILLISECONDS;\n boundUpdateLastSync(store, { hash: hash, lastSyncTimestamp: lastSyncTimestamp });\n _k.label = 7;\n case 7:\n //#endregion\n if (error_2) {\n throw error_2;\n }\n // process subscription messages\n subscriptionProcessor.ready();\n cacheProxy[STOP_CACHE_RECORDING] = true;\n if (enquededMutations.length === 1) {\n offline_link_1.boundSaveSnapshot(store, client.cache);\n }\n else {\n // Restore from cache snapshot\n client.cache.restore(cacheSnapshot);\n }\n recorderCacheWrites.forEach(client.cache.write.bind(client.cache));\n offline_link_1.boundSaveSnapshot(store, client.cache);\n client.initQueryManager();\n dataStore_1 = client.queryManager.dataStore;\n enqueuedActionsFilter_1 = [offline_link_1.offlineEffectConfig.enqueueAction];\n enquededMutations\n .filter(function (_a) {\n var type = _a.type;\n return enqueuedActionsFilter_1.indexOf(type) > -1;\n })\n .forEach(function (_a) {\n var effect = _a.meta.offline.effect;\n var _b = effect, _c = _b.operation, _d = _c === void 0 ? {} : _c, _e = _d.variables, variables = _e === void 0 ? {} : _e, _f = _d.query, document = _f === void 0 ? null : _f, update = _b.update, origOptimisticResponse = _b.optimisticResponse;\n if (typeof update !== 'function') {\n return;\n }\n var optimisticResponse = offline_link_1.replaceUsingMap(__assign({}, origOptimisticResponse), idsMap_1);\n var result = { data: optimisticResponse };\n dataStore_1.markMutationResult({\n mutationId: null,\n result: result,\n document: document,\n variables: variables,\n updateQueries: {},\n update: update\n });\n });\n client.queryManager.broadcastQueries();\n if (baseQuery && baseQuery.query) {\n baseQueryTimeout = Math.max(upperBoundTimeMS - (Date.now() - baseLastSyncTimestamp), MIN_UPPER_BOUND_TIME_MS);\n logger(\"Re-running in \" + baseQueryTimeout / 1000 / 60 + \" minutes\");\n baseQueryTimeoutId = global.setTimeout(function () { return enqueueAgain(); }, baseQueryTimeout);\n }\n return [3 /*break*/, 9];\n case 8:\n error_1 = _k.sent();\n unsubscribeAll();\n throw error_1;\n case 9: return [2 /*return*/];\n }\n });\n}); };\nvar discard = function (_callback, error, action, retries) {\n var effect = action.meta.offline.effect;\n var observer = effect.observer;\n if (observer && observer.error && !observer.closed) {\n observer.error(error);\n }\n return true;\n};\nvar reducer = function () { return function (state, action) {\n var _a;\n switch (action.type) {\n case actions.UPDATE_LASTSYNC:\n logger(action.type, action.payload);\n return lastSyncReducer(state, action);\n case actions.ENQUEUE:\n logger(action.type, action.meta.offline.effect.options);\n return metadataReducer(state, action);\n default:\n var newState = __assign(__assign({}, state), (_a = {}, _a[exports.DELTASYNC_KEY] = __assign({ metadata: {} }, state.deltaSync), _a));\n return newState;\n }\n}; };\nvar lastSyncReducer = function (state, action) {\n var _a, _b;\n var _c = action.payload, lastSyncTimestamp = _c.lastSyncTimestamp, hash = _c.hash, baseLastSyncTimestamp = _c.baseLastSyncTimestamp;\n var _d = state[exports.DELTASYNC_KEY], metadata = _d.metadata, deltaSync = __rest(_d, [\"metadata\"]);\n var _e = metadata, _f = hash, hashMetadata = _e[_f], otherHashes = __rest(_e, [typeof _f === \"symbol\" ? _f : _f + \"\"]);\n var newMetadata = {\n baseLastSyncTimestamp: baseLastSyncTimestamp || hashMetadata.baseLastSyncTimestamp,\n lastSyncTimestamp: lastSyncTimestamp,\n };\n var newState = __assign(__assign({}, state), (_a = {}, _a[exports.DELTASYNC_KEY] = __assign(__assign({}, deltaSync), { metadata: __assign(__assign({}, otherHashes), (_b = {}, _b[hash] = newMetadata, _b)) }), _a));\n return newState;\n};\nvar metadataReducer = function (state, action) {\n var _a, _b;\n var effect = action.meta.offline.effect;\n var options = effect.options;\n var metadata = state[exports.DELTASYNC_KEY].metadata;\n var hash = exports.hashForOptions(options);\n var hashMetadata = metadata[hash];\n var _c = hashMetadata || {}, _d = _c.lastSyncTimestamp, lastSyncTimestamp = _d === void 0 ? options.lastSyncTimestamp : _d, _e = _c.baseLastSyncTimestamp, baseLastSyncTimestamp = _e === void 0 ? options.baseLastSyncTimestamp : _e;\n var newMetadata = {\n lastSyncTimestamp: lastSyncTimestamp,\n baseLastSyncTimestamp: options.baseLastSyncTimestamp === null ? null : baseLastSyncTimestamp,\n };\n var newState = __assign(__assign({}, state), (_a = {}, _a[exports.DELTASYNC_KEY] = {\n metadata: __assign(__assign({}, metadata), (_b = {}, _b[hash] = newMetadata, _b))\n }, _a));\n return newState;\n};\nexports.boundEnqueueDeltaSync = function (store, options, observer, callback) {\n var effect = { options: options, observer: observer, callback: callback };\n store.dispatch({\n type: exports.offlineEffectConfig.enqueueAction,\n meta: {\n offline: {\n effect: effect\n },\n }\n });\n};\nvar boundUpdateLastSync = function (store, _a) {\n var hash = _a.hash, lastSyncTimestamp = _a.lastSyncTimestamp, baseLastSyncTimestamp = _a.baseLastSyncTimestamp;\n var action = {\n type: actions.UPDATE_LASTSYNC,\n payload: {\n hash: hash,\n lastSyncTimestamp: lastSyncTimestamp,\n baseLastSyncTimestamp: baseLastSyncTimestamp,\n }\n };\n store.dispatch(action);\n};\n//#endregion\n//#region Builder\nexports.buildSync = function (typename, options, idField) {\n if (idField === void 0) { idField = 'id'; }\n var baseQuery = options.baseQuery, subscriptionQuery = options.subscriptionQuery, deltaQuery = options.deltaQuery, _a = options.cacheUpdates, cacheUpdates = _a === void 0 ? function () { return []; } : _a;\n var loggerHelper = logger.extend('helper');\n var result = {\n baseQuery: __assign(__assign({}, baseQuery), (baseQuery && {\n update: function (cache, _a) {\n var data = _a.data;\n var opFieldName = utils_1.getOperationFieldName(baseQuery.query);\n var _b = data, _c = opFieldName, result = _b[_c];\n writeCacheUpdates(loggerHelper, cache, result, cacheUpdates);\n }\n })),\n subscriptionQuery: __assign(__assign({}, subscriptionQuery), (subscriptionQuery && {\n update: function (cache, _a) {\n var data = _a.data;\n updateBaseWithDelta(loggerHelper, baseQuery, subscriptionQuery, cache, data, cacheUpdates, typename, idField);\n }\n })),\n deltaQuery: __assign(__assign({}, deltaQuery), (deltaQuery && {\n update: function (cache, _a) {\n var data = _a.data;\n updateBaseWithDelta(loggerHelper, baseQuery, deltaQuery, cache, data, cacheUpdates, typename, idField);\n }\n })),\n };\n loggerHelper('buildSync options', result);\n return result;\n};\nvar writeCacheUpdates = function (logger, cache, result, cacheUpdates) {\n if (cacheUpdates === void 0) { cacheUpdates = function () { return []; }; }\n var cacheUpdatesLogger = logger.extend('cacheUpdates');\n cacheUpdatesLogger('writeCacheUpdates');\n result.forEach(function (item) { return cacheUpdates(item).forEach(function (_a) {\n var _b;\n var query = _a.query, variables = _a.variables;\n var opFieldName = utils_1.getOperationFieldName(query);\n var data = (_b = {}, _b[opFieldName] = item, _b);\n cacheUpdatesLogger(\"Writing \" + opFieldName, { variables: variables, data: data });\n cache.writeQuery({ query: query, variables: variables, data: data });\n }); });\n};\nvar deltaRecordsProcessor = function (logger, deltaOperationName, deltaRecords, baseResult, typename, idField) {\n var opType = offline_1.getOpTypeFromOperationName(deltaOperationName);\n logger({ deltaOperationName: deltaOperationName, opType: opType, deltaRecords: deltaRecords });\n if (!deltaRecords.length) {\n return baseResult;\n }\n var result = __spreadArrays(baseResult);\n deltaRecords.forEach(function (deltaRecord) {\n var incomingRecord = __assign(__assign({}, deltaRecord), { __typename: typename });\n var isRemove = opType === offline_1.CacheOperationTypes.REMOVE || incomingRecord.aws_ds === 'DELETE';\n var updater = offline_1.getUpdater(opType === offline_1.CacheOperationTypes.AUTO && !isRemove\n ? offline_1.CacheOperationTypes.ADD\n : (isRemove ? offline_1.CacheOperationTypes.REMOVE : opType), idField);\n logger({ incomingRecord: incomingRecord, isRemove: isRemove });\n result = updater(__spreadArrays(result), incomingRecord);\n });\n return result;\n};\nvar updateBaseWithDelta = function (logger, baseQuery, otherQuery, cache, data, cacheUpdates, typename, idField) {\n var _a;\n if (cacheUpdates === void 0) { cacheUpdates = function () { return []; }; }\n if (idField === void 0) { idField = 'id'; }\n var updateLogger = logger.extend('update');\n var opDefinition = apollo_utilities_1.getMainDefinition(otherQuery.query);\n var _b = opDefinition.selectionSet.selections[0], opName = _b.name.value, opAliasNode = _b.alias;\n var _c = (opAliasNode || {}).value, opAlias = _c === void 0 ? null : _c;\n var _d = opDefinition, kind = _d.kind, graphqlOperation = _d.operation;\n var isSubscription = kind === 'OperationDefinition' && graphqlOperation === 'subscription';\n var deltaOperationName = (isSubscription ? Object.keys(data) : [opAlias || opName])[0];\n var _e = data, _f = deltaOperationName, records = _e[_f];\n var deltaRecords = [].concat(records);\n if (!baseQuery || !baseQuery.query) {\n updateLogger('No baseQuery provided');\n }\n else {\n var query = baseQuery.query, variables = baseQuery.variables;\n var operationName = utils_1.getOperationFieldName(query);\n var _g = cache.readQuery({ query, variables }), _h = operationName, baseResult = _g[_h];\n if (!Array.isArray(baseResult)) {\n throw new Error('Result of baseQuery is not an array');\n }\n var result = deltaRecordsProcessor(updateLogger, deltaOperationName, deltaRecords, baseResult, typename, idField);\n if (result !== baseResult) {\n cache.writeQuery({ query: query, data: (_a = {}, _a[operationName] = result, _a) });\n }\n }\n writeCacheUpdates(updateLogger, cache, deltaRecords, cacheUpdates);\n};\n//#endregion\nexports.offlineEffectConfig = {\n enqueueAction: actions.ENQUEUE,\n effect: effect,\n discard: discard,\n reducer: reducer,\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar uuid_1 = require(\"uuid\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar client_1 = require(\"../client\");\nvar link_1 = require(\"../link\");\nvar utils_1 = require(\"../utils\");\nvar logger = utils_1.rootLogger.extend('offline-helper');\nvar CacheOperationTypes;\n(function (CacheOperationTypes) {\n CacheOperationTypes[\"AUTO\"] = \"auto\";\n CacheOperationTypes[\"ADD\"] = \"add\";\n CacheOperationTypes[\"REMOVE\"] = \"remove\";\n CacheOperationTypes[\"UPDATE\"] = \"update\";\n})(CacheOperationTypes = exports.CacheOperationTypes || (exports.CacheOperationTypes = {}));\n;\nvar prefixesForRemove = [\n 'delete',\n 'deleted',\n 'discard',\n 'discarded',\n 'erase',\n 'erased',\n 'remove',\n 'removed'\n];\nvar prefixesForUpdate = [\n 'update',\n 'updated',\n 'upsert',\n 'upserted',\n 'edit',\n 'edited',\n 'modify',\n 'modified',\n];\nvar prefixesForAdd = [\n 'create',\n 'created',\n 'put',\n 'set',\n 'add',\n 'added',\n 'new',\n 'insert',\n 'inserted',\n];\nexports.getOpTypeFromOperationName = function (opName) {\n if (opName === void 0) { opName = ''; }\n // Note: we do a toLowerCase() and startsWith() to avoid ambiguity with operations like \"RemoveAddendum\"\n var comparator = function (prefix) { return opName.toLowerCase().startsWith(prefix) || opName.toLowerCase().startsWith(\"on\" + prefix); };\n var result = CacheOperationTypes.AUTO;\n [\n [prefixesForAdd, CacheOperationTypes.ADD],\n [prefixesForRemove, CacheOperationTypes.REMOVE],\n [prefixesForUpdate, CacheOperationTypes.UPDATE],\n ].forEach(function (_a) {\n var prefix = _a[0], type = _a[1];\n if (prefix.some(comparator)) {\n result = type;\n return;\n }\n });\n return result;\n};\n/**\n * Builds a SubscribeToMoreOptions object ready to be used by Apollo's subscribeToMore() to automatically update the query result in the\n * cache according to the cacheUpdateQuery parameter\n *\n * @param subscriptionQuery The GraphQL subscription DocumentNode or CacheUpdateQuery\n * @param cacheUpdateQuery The query for which the result needs to be updated\n * @param idField\n * @param operationType\n */\nvar buildSubscription = function (subscriptionQuery, cacheUpdateQuery, idField, operationType) {\n var document = (subscriptionQuery && subscriptionQuery.query) || subscriptionQuery;\n var variables = (subscriptionQuery && subscriptionQuery.variables) || {};\n var query = (cacheUpdateQuery && cacheUpdateQuery.query) || cacheUpdateQuery;\n var queryField = utils_1.getOperationFieldName(query);\n return {\n document: document,\n variables: variables,\n updateQuery: function (prev, _a) {\n var _b;\n var data = _a.subscriptionData.data;\n var subField = Object.keys(data)[0];\n var _c = data, _d = subField, mutadedItem = _c[_d];\n var optype = operationType || exports.getOpTypeFromOperationName(subField);\n var updater = exports.getUpdater(optype, idField);\n var updatedOpResult;\n var result;\n var path = findArrayInObject(prev);\n if (path) {\n var arr = __spreadArrays(getValueByPath(prev, path));\n updatedOpResult = updater(arr, mutadedItem);\n }\n else {\n updatedOpResult = updater(prev, mutadedItem);\n }\n if (!path || path.length === 0) {\n result = updatedOpResult;\n }\n else {\n var cloned = apollo_utilities_1.cloneDeep(prev);\n setValueByPath(cloned, path, updatedOpResult);\n result = cloned[queryField];\n }\n return _b = {},\n _b[queryField] = result,\n _b;\n }\n };\n};\nexports.buildSubscription = buildSubscription;\nexports.getUpdater = function (opType, idField) {\n if (idField === void 0) { idField = 'id'; }\n var updater;\n switch (opType) {\n case CacheOperationTypes.ADD:\n updater = function (currentValue, newItem) {\n if (Array.isArray(currentValue)) {\n return !newItem ? __spreadArrays(currentValue) : __spreadArrays(currentValue.filter(function (item) { return item[idField] !== newItem[idField]; }), [newItem]);\n }\n else {\n return newItem;\n }\n };\n break;\n case CacheOperationTypes.UPDATE:\n updater = function (currentValue, newItem) {\n if (Array.isArray(currentValue)) {\n return !newItem ? __spreadArrays(currentValue) : currentValue.map(function (item) { return item[idField] === newItem[idField] ? newItem : item; });\n }\n else {\n return newItem;\n }\n };\n break;\n case CacheOperationTypes.REMOVE:\n updater = function (currentValue, newItem) {\n if (Array.isArray(currentValue)) {\n return !newItem ? __spreadArrays(currentValue) : currentValue.filter(function (item) { return item[idField] !== newItem[idField]; });\n }\n else {\n return null;\n }\n };\n break;\n default:\n updater = function (currentValue) { return currentValue; };\n }\n return updater;\n};\nvar getOpTypeQueriesMap = function (cacheUpdateQuery, variables) {\n var _a;\n var cacheUpdateQueryVal = typeof cacheUpdateQuery === 'function' ?\n cacheUpdateQuery(variables) :\n cacheUpdateQuery || {};\n var opTypeQueriesMap = cacheUpdateQueryVal;\n if (isDocument(cacheUpdateQueryVal) ||\n isDocument(cacheUpdateQueryVal.query) ||\n Array.isArray(cacheUpdateQuery)) {\n opTypeQueriesMap = (_a = {}, _a[CacheOperationTypes.AUTO] = [].concat(cacheUpdateQueryVal), _a);\n }\n return opTypeQueriesMap;\n};\nvar getEvaluatedOp = function (opType, mutationField, operationType) {\n var evaluatedOP = opType === CacheOperationTypes.AUTO ?\n (operationType || exports.getOpTypeFromOperationName(mutationField)) :\n opType;\n return evaluatedOP;\n};\nvar findArrayInObject = function (obj, path) {\n if (path === void 0) { path = []; }\n if (Array.isArray(obj)) {\n return path;\n }\n if (!isObject(obj)) {\n return undefined;\n }\n var result;\n Object.keys(obj).some(function (key) {\n var newPath = findArrayInObject(obj[key], path.concat(key));\n if (newPath) {\n result = newPath;\n return true;\n }\n return false;\n });\n return result;\n};\nvar getValueByPath = function (obj, path) {\n if (path === void 0) { path = []; }\n if (!isObject(obj)) {\n return obj;\n }\n return path.reduce(function (acc, elem) {\n var val = acc && acc[elem];\n if (val) {\n return val;\n }\n return null;\n }, obj);\n};\nvar setValueByPath = function (obj, path, value) {\n if (path === void 0) { path = []; }\n return path.reduce(function (acc, elem, i, arr) {\n if (arr.length - 1 === i) {\n acc[elem] = value;\n return obj;\n }\n return acc[elem];\n }, obj);\n};\nvar isDocument = function (doc) { return !!doc && doc.kind === 'Document'; };\n// make sure that the object is of type object and is not null.\nvar isObject = function (object) { return object != null && (typeof object === 'object'); };\n/**\n * Builds a MutationOptions object ready to be used by the ApolloClient to automatically update the cache according to the cacheUpdateQuery\n * parameter\n *\n * @param client An ApolloClient instance\n * @param mutation DocumentNode for the muation\n * @param variables An object with the mutation variables\n * @param cacheUpdateQuery The queries to update in the cache\n * @param typename __typename from your schema\n * @param idField The name of the field with the ID\n * @param operationType Override for the operation type\n *\n * @returns Mutation options to be used by the ApolloClient\n */\nvar buildMutation = function (client, mutation, variablesInfo, cacheUpdateQuery, typename, idField, operationType) {\n var _a, _b, _c;\n if (idField === void 0) { idField = 'id'; }\n var isVariablesInfo = typeof variablesInfo.variables === 'object';\n var variables = isVariablesInfo ? variablesInfo.variables : variablesInfo;\n var hasInputType = Object.keys(variables).length === 1 && typeof variables.input === 'object';\n var inputTypeVersionField = isVariablesInfo && variablesInfo.inputType.definitions[0].fields.find(function (f) {\n return ['version', 'expectedVersion'].find(function (n) { return n === f.name.value; }) && f.type.name.value === 'Int';\n });\n var useVersioning = hasInputType ? !!inputTypeVersionField : true;\n var opTypeQueriesMap = getOpTypeQueriesMap(cacheUpdateQuery, variables);\n var _d = hasInputType ? variables.input : variables, _e = idField || 'id', idCustomField = _d[_e];\n var comparator = function (elem) { return elem[idField] === idCustomField; };\n var version = 0;\n for (var opType in opTypeQueriesMap) {\n var queries = [].concat(opTypeQueriesMap[opType]);\n queries.forEach(function (queryEntry) {\n var query = (queryEntry && queryEntry.query) || queryEntry;\n var queryVars = (queryEntry && queryEntry.variables) || {};\n var queryField = utils_1.getOperationFieldName(query);\n var result;\n var cachedItem;\n try {\n var _a = client.readQuery({ query, variables: queryVars }), _b = queryField, queryRead = _a[_b];\n result = queryRead;\n }\n catch (err) {\n logger('Skipping query', query, err.message);\n return;\n }\n var path = findArrayInObject(result);\n if (path) {\n var arr = __spreadArrays(getValueByPath(result, path));\n cachedItem = arr.find(comparator);\n }\n else {\n cachedItem = result;\n }\n if (cachedItem) {\n version = Math.max(version, cachedItem.version);\n }\n });\n }\n ;\n var mutationField = utils_1.getOperationFieldName(mutation);\n var cache = client &&\n client instanceof client_1.default &&\n client.isOfflineEnabled() &&\n client.cache;\n var versionFieldName = inputTypeVersionField ? inputTypeVersionField.name.value : '';\n return {\n mutation: mutation,\n variables: hasInputType\n ? { input: __assign(__assign({}, (useVersioning && (_a = {}, _a[versionFieldName] = version, _a))), variables.input) }\n : __assign({ version: version, expectedVersion: version }, variables),\n optimisticResponse: typename ? (_b = {\n __typename: \"Mutation\"\n },\n _b[mutationField] = __assign(__assign((_c = { __typename: typename }, _c[idField] = (hasInputType ? variables.input : variables)[idField] || uuid_1.v4(), _c), (hasInputType ? variables.input : variables)), { version: version + 1 }),\n _b) : null,\n update: function (proxy, _a) {\n var _b = mutationField, mutatedItem = _a.data[_b];\n var _loop_1 = function (opType) {\n var queries = [].concat(opTypeQueriesMap[opType]);\n var updaterFn = exports.getUpdater(getEvaluatedOp(opType, mutationField, operationType), idField);\n queries.forEach(function (queryEntry) {\n var query = (queryEntry && queryEntry.query) || queryEntry;\n var queryField = utils_1.getOperationFieldName(query);\n var queryVars = (queryEntry && queryEntry.variables) || {};\n if (cache) {\n queryVars = link_1.replaceUsingMap(__assign({}, queryVars), cache.getIdsMap());\n }\n var data;\n var updatedOpResult;\n try {\n data = proxy.readQuery({ query: query, variables: queryVars });\n }\n catch (err) {\n logger('Skipping query', query, err.message);\n return;\n }\n var opResultCachedValue = data[queryField];\n var path = findArrayInObject(opResultCachedValue);\n if (path) {\n var arr = __spreadArrays(getValueByPath(opResultCachedValue, path));\n updatedOpResult = updaterFn(arr, mutatedItem);\n }\n else {\n updatedOpResult = updaterFn(opResultCachedValue, mutatedItem);\n }\n if (!path || path.length === 0) {\n data[queryField] = updatedOpResult;\n }\n else {\n setValueByPath(data[queryField], path, updatedOpResult);\n }\n proxy.writeQuery({ query: query, variables: queryVars, data: data });\n });\n };\n for (var opType in opTypeQueriesMap) {\n _loop_1(opType);\n }\n },\n };\n};\nexports.buildMutation = buildMutation;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar client_1 = require(\"./client\");\n__export(require(\"./client\"));\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\nexports.Signer = aws_appsync_auth_link_1.Signer;\n__export(require(\"./helpers/offline\"));\nexports.default = client_1.default;\n","\"use strict\";\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lib_storage_1 = require(\"@aws-sdk/lib-storage\");\nvar client_s3_1 = require(\"@aws-sdk/client-s3\");\nexports.default = (function (fileField, _a) {\n var credentials = _a.credentials;\n var Bucket = fileField.bucket, Key = fileField.key, region = fileField.region, ContentType = fileField.mimeType, Body = fileField.localUri;\n var target = { Bucket: Bucket, Key: Key, Body: Body, ContentType: ContentType };\n var parallelUploads3 = new lib_storage_1.Upload({\n client: new client_s3_1.S3({ credentials: credentials, region: region }) || new client_s3_1.S3Client({ credentials: credentials, region: region }),\n leavePartsOnError: false,\n params: target,\n });\n return parallelUploads3.done();\n});\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_client_1 = require(\"apollo-client\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_2 = require(\"apollo-link\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar graphql_1 = require(\"graphql\");\nvar complex_object_link_uploader_1 = require(\"./complex-object-link-uploader\");\nvar ComplexObjectLink = /** @class */ (function (_super) {\n __extends(ComplexObjectLink, _super);\n function ComplexObjectLink(credentials) {\n var _this = _super.call(this) || this;\n _this.link = exports.complexObjectLink(credentials);\n return _this;\n }\n ComplexObjectLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return ComplexObjectLink;\n}(apollo_link_2.ApolloLink));\nexports.ComplexObjectLink = ComplexObjectLink;\nexports.complexObjectLink = function (credentials) {\n return new apollo_link_2.ApolloLink(function (operation, forward) {\n return new apollo_link_1.Observable(function (observer) {\n var handle;\n var operationType = apollo_utilities_1.getOperationDefinition(operation.query).operation;\n var isMutation = operationType === 'mutation';\n var objectsToUpload = isMutation ? findInObject(operation.variables) : {};\n var uploadPromise = Promise.resolve(operation);\n if (Object.keys(objectsToUpload).length) {\n var uploadCredentials = typeof credentials === 'function' ? credentials.call() : credentials;\n uploadPromise = Promise.resolve(uploadCredentials)\n .then(function (credentials) {\n var uploadPromises = Object.entries(objectsToUpload).map(function (_a) {\n var _ = _a[0], fileField = _a[1];\n return complex_object_link_uploader_1.default(fileField, { credentials: credentials });\n });\n return Promise.all(__spreadArrays([operation], uploadPromises));\n })\n .then(function (_a) {\n var operation = _a[0], all = _a.slice(1);\n return operation;\n })\n .catch(function (err) {\n var error = new graphql_1.GraphQLError(err.message);\n error.errorType = 'AWSAppSyncClient:S3UploadException';\n throw new apollo_client_1.ApolloError({\n graphQLErrors: [error],\n extraInfo: err,\n });\n });\n }\n uploadPromise\n .then(forward)\n .then(function (observable) {\n handle = observable.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n }).catch(function (err) {\n observer.error(err);\n });\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n};\nvar complexObjectFields = [\n { name: 'bucket', type: 'string' },\n { name: 'key', type: 'string' },\n { name: 'region', type: 'string' },\n { name: 'mimeType', type: 'string' },\n { name: 'localUri', type: ['object', 'string'] },\n];\nvar findInObject = function (obj) {\n var testFn = function (val) {\n return complexObjectFields.every(function (field) {\n var hasValue = val[field.name];\n var types = Array.isArray(field.type) ? field.type : [field.type];\n var isOfType = hasValue && types.reduce(function (prev, curr) {\n return prev || typeof val[field.name] === curr;\n }, false);\n return isOfType;\n });\n };\n var _findInObject = function (obj, path, acc) {\n if (path === void 0) { path = ''; }\n if (acc === void 0) { acc = {}; }\n if (!obj) {\n return acc;\n }\n if (testFn(obj)) {\n acc[path] = __assign({}, obj);\n delete obj.mimeType;\n delete obj.localUri;\n }\n if (typeof obj === 'object') {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (Array.isArray(val)) {\n val.forEach(function (v, i) { return _findInObject(v, path + \".\" + key + \"[\" + i + \"]\", acc); });\n }\n else if (typeof val === 'object') {\n _findInObject(val, \"\" + path + (path && '.') + key, acc);\n }\n });\n }\n return _findInObject(null, path, acc);\n };\n return _findInObject(obj);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_retry_1 = require(\"apollo-link-retry\");\nvar utils_1 = require(\"../utils\");\nvar ConflictResolutionLink = /** @class */ (function (_super) {\n __extends(ConflictResolutionLink, _super);\n function ConflictResolutionLink(conflictResolver, maxRetries) {\n if (maxRetries === void 0) { maxRetries = 10; }\n var _this = _super.call(this) || this;\n _this.conflictResolver = conflictResolver;\n _this.maxRetries = maxRetries;\n _this.link = apollo_link_1.ApolloLink.from([\n new apollo_link_retry_1.RetryLink({\n delay: { initial: 0, max: 0 },\n attempts: function (count, operation, error) {\n if (count > _this.maxRetries) {\n return false;\n }\n if (_this.hasConflictError(error)) {\n if (typeof _this.conflictResolver === 'function') {\n var data = error.data;\n var mutation = operation.query;\n var mutationName = utils_1.getOperationFieldName(mutation);\n var operationType = 'mutation';\n var retries = count;\n var variables = __assign({}, operation.variables);\n var newVars = _this.conflictResolver({\n data: data,\n mutation: mutation,\n mutationName: mutationName,\n operationType: operationType,\n retries: retries,\n variables: variables,\n });\n if (newVars === 'DISCARD') {\n return false;\n }\n if (newVars) {\n operation.variables = newVars;\n return true;\n }\n }\n }\n return false;\n }\n }),\n new apollo_link_1.ApolloLink(function (op, fwd) { return new apollo_link_1.Observable(function (observer) {\n fwd(op).subscribe({\n next: function (data) {\n var err = (data.errors || []).find(_this.hasConflictError);\n if (err) {\n observer.error(err);\n }\n else {\n observer.next(__assign(__assign({}, data), { context: __assign(__assign({}, data.context), { additionalDataContext: {\n newVars: op.variables,\n } }) }));\n }\n },\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return function () { return null; };\n }); })\n ]);\n return _this;\n }\n ConflictResolutionLink.prototype.hasConflictError = function (error) {\n var hasConflictError = [\n 'DynamoDB:ConditionalCheckFailedException'\n ].some(function (err) { return err === error.errorType; });\n return hasConflictError;\n };\n ConflictResolutionLink.prototype.request = function (operation, forward) {\n if (typeof this.conflictResolver !== 'function') {\n return utils_1.passthroughLink(operation, forward);\n }\n return this.link.request(operation, forward);\n };\n return ConflictResolutionLink;\n}(apollo_link_1.ApolloLink));\nexports.default = ConflictResolutionLink;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar offline_link_1 = require(\"./offline-link\");\nexports.OfflineLink = offline_link_1.OfflineLink;\nexports.replaceUsingMap = offline_link_1.replaceUsingMap;\nvar complex_object_link_1 = require(\"./complex-object-link\");\nexports.ComplexObjectLink = complex_object_link_1.ComplexObjectLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar constants_1 = require(\"@redux-offline/redux-offline/lib/constants\");\nvar cache_1 = require(\"../cache\");\nvar utils_1 = require(\"../utils\");\nvar apollo_client_1 = require(\"apollo-client\");\nvar retry_link_1 = require(\"./retry-link\");\nvar logger = utils_1.rootLogger.extend('offline-link');\nvar actions = {\n SAVE_SNAPSHOT: 'SAVE_SNAPSHOT',\n ENQUEUE: 'ENQUEUE_OFFLINE_MUTATION',\n COMMIT: 'COMMIT_OFFLINE_MUTATION',\n ROLLBACK: 'ROLLBACK_OFFLINE_MUTATION',\n SAVE_SERVER_ID: 'SAVE_SERVER_ID',\n};\nvar IS_OPTIMISTIC_KEY = typeof Symbol !== 'undefined' ? Symbol('isOptimistic') : '@@isOptimistic';\nexports.isOptimistic = function (obj) { return typeof obj[IS_OPTIMISTIC_KEY] !== undefined ? !!obj[IS_OPTIMISTIC_KEY] : false; };\nvar OfflineLink = /** @class */ (function (_super) {\n __extends(OfflineLink, _super);\n function OfflineLink(store) {\n var _this = _super.call(this) || this;\n _this.store = store;\n return _this;\n }\n OfflineLink.prototype.request = function (operation, forward) {\n var _this = this;\n return new apollo_link_1.Observable(function (observer) {\n var _a;\n var online = _this.store.getState().offline.online;\n var operationType = apollo_utilities_1.getOperationDefinition(operation.query).operation;\n var isMutation = operationType === 'mutation';\n var isQuery = operationType === 'query';\n if (!online && isQuery) {\n var data = processOfflineQuery(operation, _this.store);\n observer.next({ data: data });\n observer.complete();\n return function () { return null; };\n }\n if (isMutation) {\n var _b = operation.getContext(), _c = _b.AASContext, _d = (_c === void 0 ? {} : _c).doIt, doIt = _d === void 0 ? false : _d, cache = _b.cache;\n if (!doIt) {\n var _e = _this.store.getState(), _f = cache_1.METADATA_KEY, enqueuedMutations = _e[_f].snapshot.enqueuedMutations;\n if (enqueuedMutations === 0) {\n exports.boundSaveSnapshot(_this.store, cache);\n }\n var data = enqueueMutation(operation, _this.store, observer);\n if (!online) {\n observer.next((_a = { data: data }, _a[IS_OPTIMISTIC_KEY] = true, _a));\n observer.complete();\n }\n return function () { return null; };\n }\n }\n var handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n };\n return OfflineLink;\n}(apollo_link_1.ApolloLink));\nexports.OfflineLink = OfflineLink;\nexports.boundSaveSnapshot = function (store, cache) { return store.dispatch(saveSnapshot(cache)); };\nvar saveSnapshot = function (cache) { return ({\n type: actions.SAVE_SNAPSHOT,\n payload: { cache: cache },\n}); };\nvar processOfflineQuery = function (operation, theStore) {\n var _a = theStore.getState(), _b = cache_1.NORMALIZED_CACHE_KEY, _c = _a[_b], normalizedCache = _c === void 0 ? {} : _c;\n var query = operation.query, variables = operation.variables;\n var cache = operation.getContext().cache;\n var store = apollo_cache_inmemory_1.defaultNormalizedCacheFactory(normalizedCache);\n var data = cache.storeReader.readQueryFromStore({\n store: store,\n query: query,\n variables: variables,\n });\n return data;\n};\nvar enqueueMutation = function (operation, theStore, observer) {\n var mutation = operation.query, variables = operation.variables;\n var _a = operation.getContext().AASContext, origOptimistic = _a.optimisticResponse, update = _a.update, updateQueries = _a.updateQueries, refetchQueries = _a.refetchQueries, fetchPolicy = _a.fetchPolicy;\n var optimisticResponse = typeof origOptimistic === 'function' ? origOptimistic(variables) : origOptimistic;\n setImmediate(function () {\n var effect = {\n optimisticResponse: optimisticResponse,\n operation: operation,\n update: update,\n updateQueries: updateQueries,\n refetchQueries: refetchQueries,\n fetchPolicy: fetchPolicy,\n observer: observer,\n };\n theStore.dispatch({\n type: actions.ENQUEUE,\n payload: { optimisticResponse: optimisticResponse },\n meta: {\n offline: {\n effect: effect,\n commit: { type: actions.COMMIT },\n rollback: { type: actions.ROLLBACK },\n }\n }\n });\n });\n var result;\n if (optimisticResponse) {\n result = optimisticResponse;\n }\n else {\n var mutationDefinition = apollo_utilities_1.getMutationDefinition(mutation);\n result = mutationDefinition.selectionSet.selections.reduce(function (acc, elem) {\n acc[apollo_utilities_1.resultKeyNameFromField(elem)] = null;\n return acc;\n }, {});\n }\n return result;\n};\nvar effect = function (store, client, effect, action, callback) { return __awaiter(void 0, void 0, void 0, function () {\n var doIt, origOptimistic, _a, origVars, mutation, context, update, updateQueries, refetchQueries, fetchPolicy, observer, _b, _c, idsMap, variables, optimisticResponse;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n doIt = true;\n origOptimistic = effect.optimisticResponse, _a = effect.operation, origVars = _a.variables, mutation = _a.query, context = _a.context, update = effect.update, updateQueries = effect.updateQueries, refetchQueries = effect.refetchQueries, fetchPolicy = effect.fetchPolicy, observer = effect.observer;\n return [4 /*yield*/, client.hydrated()];\n case 1:\n _e.sent();\n _b = store.getState(), _c = cache_1.METADATA_KEY, idsMap = _b[_c].idsMap;\n variables = __assign(__assign({}, exports.replaceUsingMap(__assign({}, origVars), idsMap)), (_d = {}, _d[retry_link_1.SKIP_RETRY_KEY] = true, _d));\n optimisticResponse = exports.replaceUsingMap(__assign({}, origOptimistic), idsMap);\n return [2 /*return*/, new Promise(function (resolve, reject) {\n if (!client.queryManager) {\n client.initQueryManager();\n }\n var buildOperationForLink = client.queryManager.buildOperationForLink;\n var extraContext = __assign(__assign({ AASContext: {\n doIt: doIt\n } }, context), { optimisticResponse: optimisticResponse });\n var operation = buildOperationForLink.call(client.queryManager, mutation, variables, extraContext);\n logger('Executing link', operation);\n apollo_link_1.execute(client.link, operation).subscribe({\n next: function (data) {\n var _a;\n boundSaveServerId(store, optimisticResponse, data.data);\n var _b = store.getState(), _c = cache_1.METADATA_KEY, _d = _b[_c], idsMap = _d.idsMap, cacheSnapshot = _d.snapshot.cache, _e = _b.offline.outbox, enquededMutations = _e.slice(1);\n // Restore from cache snapshot\n client.cache.restore(cacheSnapshot);\n var dataStore = client.queryManager.dataStore;\n if (fetchPolicy !== 'no-cache') {\n dataStore.markMutationResult({\n mutationId: null,\n result: data,\n document: mutation,\n variables: variables,\n updateQueries: {},\n update: update\n });\n }\n exports.boundSaveSnapshot(store, client.cache);\n // Apply enqueued update functions to new cache\n var enqueuedActionsFilter = [\n exports.offlineEffectConfig.enqueueAction\n ];\n enquededMutations\n .filter(function (_a) {\n var type = _a.type;\n return enqueuedActionsFilter.indexOf(type) > -1;\n })\n .forEach(function (_a) {\n var effect = _a.meta.offline.effect;\n var _b = effect, _c = _b.operation, _d = _c === void 0 ? {} : _c, _e = _d.variables, variables = _e === void 0 ? {} : _e, _f = _d.query, document = _f === void 0 ? null : _f, update = _b.update, origOptimisticResponse = _b.optimisticResponse, fetchPolicy = _b.fetchPolicy;\n if (typeof update !== 'function') {\n logger('No update function for mutation', { document: document, variables: variables });\n return;\n }\n var optimisticResponse = exports.replaceUsingMap(__assign({}, origOptimisticResponse), idsMap);\n var result = { data: optimisticResponse };\n if (fetchPolicy !== 'no-cache') {\n logger('Running update function for mutation', { document: document, variables: variables });\n dataStore.markMutationResult({\n mutationId: null,\n result: result,\n document: document,\n variables: variables,\n updateQueries: {},\n update: update\n });\n }\n });\n client.queryManager.broadcastQueries();\n resolve({ data: data });\n if (observer.next && !observer.closed) {\n observer.next(__assign(__assign({}, data), (_a = {}, _a[IS_OPTIMISTIC_KEY] = false, _a)));\n observer.complete();\n }\n else {\n // throw new Error('Manually interact with cache');\n }\n if (typeof callback === 'function') {\n var mutationName_1 = utils_1.getOperationFieldName(mutation);\n var _f = data.context || {}, _g = _f.additionalDataContext, _h = (_g === void 0 ? {} : _g).newVars, newVars_1 = _h === void 0 ? operation.variables : _h, restContext = __rest(_f, [\"additionalDataContext\"]);\n if (!Object.keys(restContext || {}).length) {\n delete data.context;\n }\n else {\n data.context = restContext;\n }\n apollo_utilities_1.tryFunctionOrLogError(function () {\n var errors = data.errors ? {\n mutation: mutationName_1,\n variables: newVars_1,\n error: new apollo_client_1.ApolloError({\n graphQLErrors: __spreadArrays(data.errors),\n }),\n notified: !!observer.next,\n } : null;\n var success = errors === null ? __assign(__assign({ mutation: mutationName_1, variables: newVars_1 }, data), { notified: !!observer.next }) : null;\n callback(errors, success);\n });\n }\n },\n error: function (err) {\n logger('Error when executing link', err);\n reject(err);\n }\n });\n })];\n }\n });\n}); };\nvar reducer = function (dataIdFromObject) { return function (state, action) {\n var type = action.type, payload = action.payload;\n switch (type) {\n case constants_1.PERSIST_REHYDRATE:\n var _a = payload, _b = cache_1.METADATA_KEY, rehydratedState = _a[_b];\n return rehydratedState || state;\n default:\n var _c = state || {}, _d = _c.idsMap, origIdsMap = _d === void 0 ? {} : _d, _e = _c.snapshot, origSnapshot = _e === void 0 ? {} : _e, restState = __rest(_c, [\"idsMap\", \"snapshot\"]);\n var snapshot = snapshotReducer(origSnapshot, action);\n var idsMap = idsMapReducer(origIdsMap, __assign(__assign({}, action), { remainingMutations: snapshot.enqueuedMutations }), dataIdFromObject);\n return __assign(__assign({}, restState), { snapshot: snapshot,\n idsMap: idsMap });\n }\n}; };\nvar snapshotReducer = function (state, action) {\n var enqueuedMutations = enqueuedMutationsReducer(state && state.enqueuedMutations, action);\n var cache = cacheSnapshotReducer(state && state.cache, __assign(__assign({}, action), { enqueuedMutations: enqueuedMutations }));\n return {\n enqueuedMutations: enqueuedMutations,\n cache: cache,\n };\n};\nvar enqueuedMutationsReducer = function (state, action) {\n if (state === void 0) { state = 0; }\n var type = action.type;\n switch (type) {\n case actions.ENQUEUE:\n return state + 1;\n case actions.COMMIT:\n case actions.ROLLBACK:\n return state - 1;\n default:\n return state;\n }\n};\nvar cacheSnapshotReducer = function (state, action) {\n if (state === void 0) { state = {}; }\n var type = action.type, payload = action.payload;\n switch (type) {\n case actions.SAVE_SNAPSHOT:\n var cache = payload.cache;\n var cacheContents = __assign({}, cache.extract(false));\n return cacheContents;\n default:\n return state;\n }\n};\nvar boundSaveServerId = function (store, optimisticResponse, data) { return store.dispatch(saveServerId(optimisticResponse, data)); };\nvar saveServerId = function (optimisticResponse, data) { return ({\n type: actions.SAVE_SERVER_ID,\n payload: { data: data, optimisticResponse: optimisticResponse },\n}); };\nvar idsMapReducer = function (state, action, dataIdFromObject) {\n if (state === void 0) { state = {}; }\n var type = action.type, _a = action.payload, payload = _a === void 0 ? {} : _a;\n var optimisticResponse = payload.optimisticResponse;\n switch (type) {\n case actions.ENQUEUE:\n var ids = exports.getIds(dataIdFromObject, optimisticResponse);\n var entries = Object.values(ids).reduce(function (acc, id) { return (acc[id] = null, acc); }, {});\n return __assign(__assign({}, state), entries);\n case actions.COMMIT:\n var remainingMutations = action.remainingMutations;\n // Clear ids map on last mutation\n return remainingMutations ? state : {};\n case actions.SAVE_SERVER_ID:\n var data = payload.data;\n var oldIds = exports.getIds(dataIdFromObject, optimisticResponse);\n var newIds = exports.getIds(dataIdFromObject, data);\n var mapped = mapIds(oldIds, newIds);\n return __assign(__assign({}, state), mapped);\n default:\n return state;\n }\n};\nvar discard = function (callback, error, action, retries) {\n var discardResult = _discard(error, action, retries);\n if (discardResult) {\n // Call global error callback and observer\n var observer = action.meta.offline.effect.observer;\n if (observer && !observer.closed) {\n observer.error(error);\n }\n if (typeof callback === 'function') {\n apollo_utilities_1.tryFunctionOrLogError(function () {\n callback({ error: error }, null);\n });\n }\n }\n return discardResult;\n};\nvar _discard = function (error, action, retries) {\n var _a = error.graphQLErrors, graphQLErrors = _a === void 0 ? [] : _a;\n if (graphQLErrors.length) {\n logger('Discarding action.', action, graphQLErrors);\n return true;\n }\n else {\n var _b = error.networkError, _c = (_b === void 0 ? { graphQLErrors: [] } : _b).graphQLErrors, graphQLErrors_1 = _c === void 0 ? [] : _c;\n var appSyncClientError = graphQLErrors_1.find(function (err) { return err.errorType && err.errorType.startsWith('AWSAppSyncClient:'); });\n if (appSyncClientError) {\n logger('Discarding action.', action, appSyncClientError);\n return true;\n }\n }\n return error.permanent || retries > 10;\n};\n//#region utils\nexports.replaceUsingMap = function (obj, map) {\n if (map === void 0) { map = {}; }\n if (!obj || !map) {\n return obj;\n }\n var newVal = map[obj];\n if (newVal) {\n obj = newVal;\n return obj;\n }\n if (typeof obj === 'object') {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (Array.isArray(val)) {\n obj[key] = val.map(function (v, i) { return exports.replaceUsingMap(v, map); });\n }\n else if (typeof val === 'object') {\n obj[key] = exports.replaceUsingMap(val, map);\n }\n else {\n var newVal_1 = map[val];\n if (newVal_1) {\n obj[key] = newVal_1;\n }\n }\n });\n }\n return obj;\n};\nexports.getIds = function (dataIdFromObject, obj, path, acc) {\n if (path === void 0) { path = ''; }\n if (acc === void 0) { acc = {}; }\n if (!obj) {\n return acc;\n }\n if (typeof obj === 'object') {\n var dataId = dataIdFromObject(obj);\n if (dataId) {\n var _a = dataId.match(/(.+:)?(.+)/) || [], _b = _a[2], id = _b === void 0 ? null : _b;\n if (utils_1.isUuid(dataId)) {\n acc[path] = id;\n }\n }\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (Array.isArray(val)) {\n val.forEach(function (v, i) { return exports.getIds(dataIdFromObject, v, path + \".\" + key + \"[\" + i + \"]\", acc); });\n }\n else if (typeof val === 'object') {\n exports.getIds(dataIdFromObject, val, \"\" + path + (path && '.') + key, acc);\n }\n });\n }\n return exports.getIds(dataIdFromObject, null, path, acc);\n};\nvar intersectingKeys = function (obj1, obj2) {\n if (obj1 === void 0) { obj1 = {}; }\n if (obj2 === void 0) { obj2 = {}; }\n var keys1 = Object.keys(obj1);\n var keys2 = Object.keys(obj2);\n return keys1.filter(function (k) { return keys2.indexOf(k) !== -1; });\n};\nvar mapIds = function (obj1, obj2) { return intersectingKeys(obj1, obj2).reduce(function (acc, k) { return (acc[obj1[k]] = obj2[k], acc); }, {}); };\n//#endregion\nexports.offlineEffectConfig = {\n enqueueAction: actions.ENQUEUE,\n effect: effect,\n discard: discard,\n reducer: reducer,\n};\n","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_retry_1 = require(\"apollo-link-retry\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nexports.PERMANENT_ERROR_KEY = typeof Symbol !== 'undefined' ? Symbol('permanentError') : '@@permanentError';\nvar BASE_TIME_MS = 100;\nvar JITTER_FACTOR = 100;\nvar MAX_DELAY_MS = 5 * 60 * 1000;\nvar getDelay = function (count) { return ((Math.pow(2, count)) * BASE_TIME_MS) + (JITTER_FACTOR * Math.random()); };\nexports.SKIP_RETRY_KEY = '@@skipRetry';\nexports.getEffectDelay = function (_action, retries) {\n var delay = getDelay(retries);\n return delay <= MAX_DELAY_MS ? delay : null;\n};\nexports.createRetryLink = function (origLink) {\n var delay;\n var retryLink = new apollo_link_retry_1.RetryLink({\n attempts: function (count, operation, error) {\n var _a = error, _b = exports.PERMANENT_ERROR_KEY, _c = _a[_b], permanent = _c === void 0 ? false : _c;\n var _d = operation.variables, _e = exports.SKIP_RETRY_KEY, _f = _d[_e], skipRetry = _f === void 0 ? false : _f;\n if (permanent) {\n return false;\n }\n if (error.statusCode >= 400 && error.statusCode < 500) {\n return false;\n }\n if (apollo_utilities_1.graphQLResultHasError({ errors: error ? error.graphQLErrors : [] })) {\n return false;\n }\n if (skipRetry) {\n return false;\n }\n delay = getDelay(count);\n return delay <= MAX_DELAY_MS;\n },\n delay: function (_count, _operation, _error) { return delay; },\n });\n var link = apollo_link_1.ApolloLink.from([\n retryLink,\n origLink,\n ]);\n return new apollo_link_1.ApolloLink(function (operation, forward) {\n var _a = operation.variables, _b = exports.SKIP_RETRY_KEY, _c = _a[_b], skipRetry = _c === void 0 ? false : _c, otherVars = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\n if (skipRetry) {\n operation.variables = otherVars;\n }\n return link.request(operation, forward);\n });\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar utils_1 = require(\"./utils\");\nvar redux_1 = require(\"redux\");\nvar redux_offline_1 = require(\"@redux-offline/redux-offline\");\nvar defaults_1 = require(\"@redux-offline/redux-offline/lib/defaults\");\nvar constants_1 = require(\"@redux-offline/redux-offline/lib/constants\");\nvar constants_2 = require(\"redux-persist/lib/constants\");\nvar redux_thunk_1 = require(\"redux-thunk\");\nvar index_1 = require(\"./cache/index\");\nvar retry_link_1 = require(\"./link/retry-link\");\nvar offline_link_1 = require(\"./link/offline-link\");\nvar deltaSync_1 = require(\"./deltaSync\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar detectNetwork = defaults_1.default.detectNetwork;\nvar logger = utils_1.rootLogger.extend('store');\nexports.DEFAULT_KEY_PREFIX = constants_2.KEY_PREFIX;\nvar newStore = function (_a) {\n var _b = _a.clientGetter, clientGetter = _b === void 0 ? function () { return null; } : _b, _c = _a.persistCallback, persistCallback = _c === void 0 ? function () { return null; } : _c, dataIdFromObject = _a.dataIdFromObject, keyPrefix = _a.keyPrefix, storage = _a.storage, _d = _a.callback, callback = _d === void 0 ? function () { } : _d;\n logger('Creating store');\n var store = redux_1.createStore(redux_1.combineReducers(__assign(__assign({ rehydrated: function (state, action) {\n if (state === void 0) { state = false; }\n switch (action.type) {\n case constants_1.PERSIST_REHYDRATE:\n return true;\n default:\n return state;\n }\n } }, index_1.reducer()), reducer(dataIdFromObject))), typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(), redux_1.compose(redux_1.applyMiddleware(redux_thunk_1.default), redux_offline_1.offline(__assign(__assign({}, defaults_1.default), { retry: retry_link_1.getEffectDelay, persistCallback: function () {\n logger('Storage ready');\n persistCallback();\n }, persistOptions: __assign(__assign(__assign({}, (keyPrefix && { keyPrefix: keyPrefix + \":\" })), (storage && { storage: storage })), { whitelist: [\n index_1.NORMALIZED_CACHE_KEY,\n index_1.METADATA_KEY,\n 'offline',\n ] }), effect: function (effectPayload, action) { return effect(effectPayload, action, store, clientGetter(), callback, detectNetwork); }, discard: function (error, action, retries) { return discard(callback, error, action, retries); } }))));\n return store;\n};\nexports.createStore = newStore;\nvar offlineEffectsConfigs = [\n offline_link_1.offlineEffectConfig,\n deltaSync_1.offlineEffectConfig\n].filter(Boolean).reduce(function (acc, _a) {\n var enqueueAction = _a.enqueueAction, rest = __rest(_a, [\"enqueueAction\"]);\n acc[enqueueAction] = __assign({ enqueueAction: enqueueAction }, rest);\n return acc;\n}, {});\nvar reducer = function (dataIdFromObject) {\n var _a;\n return (_a = {},\n _a[index_1.METADATA_KEY] = function (state, action) { return Object.entries(offlineEffectsConfigs)\n .reduce(function (acc, _a) {\n var _b = _a[1].reducer, reducer = _b === void 0 ? function () { return function (x) { return x; }; } : _b;\n return reducer(dataIdFromObject)(acc, action);\n }, state); },\n _a);\n};\nvar effect = function (effect, action, store, clientGetter, callback, offlineStatusChangeCallbackCreator) { return __awaiter(void 0, void 0, void 0, function () {\n var config, observable;\n return __generator(this, function (_a) {\n config = offlineEffectsConfigs[action.type];\n observable = new apollo_link_1.Observable(function (observer) {\n offlineStatusChangeCallbackCreator(function (onlineStatus) {\n observer.next(onlineStatus);\n });\n return function () { };\n });\n if (config && config.effect) {\n logger(\"Executing effect for \" + action.type);\n return [2 /*return*/, config.effect(store, clientGetter, effect, action, callback, observable)];\n }\n logger(\"No effect found for \" + action.type);\n return [2 /*return*/];\n });\n}); };\nvar discard = function (callback, error, action, retries) {\n var discard = offlineEffectsConfigs[action.type].discard;\n if (discard) {\n logger(\"Executing discard for \" + action.type, discard);\n return discard(callback, error, action, retries);\n }\n logger(\"No custom discard found for \" + action.type + \". Discarding effect.\");\n return true;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nexports.passthroughLink = function (op, forward) { return (forward ? forward(op) : apollo_link_1.Observable.of()); };\nexports.isUuid = function (val) { return typeof val === 'string' && val.match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i); };\nexports.getOperationFieldName = function (operation) { return apollo_utilities_1.resultKeyNameFromField(operation.definitions[0].selectionSet.selections[0]); };\nexports.hash = function (src) {\n debugger;\n var arg = src || {};\n var hash = new sha256_js_1.Sha256();\n hash.update(arg);\n return util_hex_encoding_1.toHex(hash.digestSync());\n};\nvar logger_1 = require(\"./logger\");\nexports.rootLogger = logger_1.default;\n","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar debug_1 = require(\"debug\");\nvar debugLogger = debug_1.default('aws-appsync');\nvar extend = function (category) {\n if (category === void 0) { category = ''; }\n var newCategory = category ? __spreadArrays(this.namespace.split(':'), [category]).join(':') : this.namespace;\n var result = debug_1.default(newCategory);\n result.extend = extend.bind(result);\n return result;\n};\ndebugLogger.extend = extend.bind(debugLogger);\nexports.default = debugLogger;\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport compose from './compose';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nexport default function applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}","function bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}","import { ActionTypes } from './createStore';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport warning from './utils/warning';\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nexport default function combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n var unexpectedKeyCache = void 0;\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError = void 0;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}","/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nexport default function compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(undefined, arguments));\n };\n });\n}","import isPlainObject from 'lodash-es/isPlainObject';\nimport $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nexport var ActionTypes = {\n INIT: '@@redux/INIT'\n\n /**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n};export default function createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}","import createStore from './createStore';\nimport combineReducers from './combineReducers';\nimport bindActionCreators from './bindActionCreators';\nimport applyMiddleware from './applyMiddleware';\nimport compose from './compose';\nimport warning from './utils/warning';\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose };","/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nexport default function warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['acm'] = {};\nAWS.ACM = Service.defineService('acm', ['2015-12-08']);\nObject.defineProperty(apiLoader.services['acm'], '2015-12-08', {\n get: function get() {\n var model = require('../apis/acm-2015-12-08.min.json');\n model.paginators = require('../apis/acm-2015-12-08.paginators.json').pagination;\n model.waiters = require('../apis/acm-2015-12-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ACM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['amp'] = {};\nAWS.Amp = Service.defineService('amp', ['2020-08-01']);\nObject.defineProperty(apiLoader.services['amp'], '2020-08-01', {\n get: function get() {\n var model = require('../apis/amp-2020-08-01.min.json');\n model.paginators = require('../apis/amp-2020-08-01.paginators.json').pagination;\n model.waiters = require('../apis/amp-2020-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Amp;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['applicationautoscaling'] = {};\nAWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']);\nObject.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', {\n get: function get() {\n var model = require('../apis/application-autoscaling-2016-02-06.min.json');\n model.paginators = require('../apis/application-autoscaling-2016-02-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ApplicationAutoScaling;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['autoscaling'] = {};\nAWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']);\nObject.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', {\n get: function get() {\n var model = require('../apis/autoscaling-2011-01-01.min.json');\n model.paginators = require('../apis/autoscaling-2011-01-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.AutoScaling;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n MarketplaceCatalog: require('./marketplacecatalog'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Amp: require('./amp'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudformation'] = {};\nAWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']);\nObject.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', {\n get: function get() {\n var model = require('../apis/cloudformation-2010-05-15.min.json');\n model.paginators = require('../apis/cloudformation-2010-05-15.paginators.json').pagination;\n model.waiters = require('../apis/cloudformation-2010-05-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFormation;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudtrail'] = {};\nAWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']);\nObject.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', {\n get: function get() {\n var model = require('../apis/cloudtrail-2013-11-01.min.json');\n model.paginators = require('../apis/cloudtrail-2013-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudTrail;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatch'] = {};\nAWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']);\nObject.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', {\n get: function get() {\n var model = require('../apis/monitoring-2010-08-01.min.json');\n model.paginators = require('../apis/monitoring-2010-08-01.paginators.json').pagination;\n model.waiters = require('../apis/monitoring-2010-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatch;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchevents'] = {};\nAWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']);\nObject.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', {\n get: function get() {\n var model = require('../apis/events-2015-10-07.min.json');\n model.paginators = require('../apis/events-2015-10-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codecommit'] = {};\nAWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']);\nObject.defineProperty(apiLoader.services['codecommit'], '2015-04-13', {\n get: function get() {\n var model = require('../apis/codecommit-2015-04-13.min.json');\n model.paginators = require('../apis/codecommit-2015-04-13.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeCommit;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codedeploy'] = {};\nAWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']);\nObject.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', {\n get: function get() {\n var model = require('../apis/codedeploy-2014-10-06.min.json');\n model.paginators = require('../apis/codedeploy-2014-10-06.paginators.json').pagination;\n model.waiters = require('../apis/codedeploy-2014-10-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeDeploy;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentity'] = {};\nAWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-identity-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentity;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentityserviceprovider'] = {};\nAWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']);\nObject.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', {\n get: function get() {\n var model = require('../apis/cognito-idp-2016-04-18.min.json');\n model.paginators = require('../apis/cognito-idp-2016-04-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentityServiceProvider;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitosync'] = {};\nAWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-sync-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-sync-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoSync;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehendmedical'] = {};\nAWS.ComprehendMedical = Service.defineService('comprehendmedical', ['2018-10-30']);\nObject.defineProperty(apiLoader.services['comprehendmedical'], '2018-10-30', {\n get: function get() {\n var model = require('../apis/comprehendmedical-2018-10-30.min.json');\n model.paginators = require('../apis/comprehendmedical-2018-10-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ComprehendMedical;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cur'] = {};\nAWS.CUR = Service.defineService('cur', ['2017-01-06']);\nObject.defineProperty(apiLoader.services['cur'], '2017-01-06', {\n get: function get() {\n var model = require('../apis/cur-2017-01-06.min.json');\n model.paginators = require('../apis/cur-2017-01-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CUR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodb'] = {};\nAWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']);\nrequire('../lib/services/dynamodb');\nObject.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', {\n get: function get() {\n var model = require('../apis/dynamodb-2011-12-05.min.json');\n model.paginators = require('../apis/dynamodb-2011-12-05.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2011-12-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/dynamodb-2012-08-10.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2012-08-10.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ec2'] = {};\nAWS.EC2 = Service.defineService('ec2', ['2013-06-15*', '2013-10-15*', '2014-02-01*', '2014-05-01*', '2014-06-15*', '2014-09-01*', '2014-10-01*', '2015-03-01*', '2015-04-15*', '2015-10-01*', '2016-04-01*', '2016-09-15*', '2016-11-15']);\nrequire('../lib/services/ec2');\nObject.defineProperty(apiLoader.services['ec2'], '2016-11-15', {\n get: function get() {\n var model = require('../apis/ec2-2016-11-15.min.json');\n model.paginators = require('../apis/ec2-2016-11-15.paginators.json').pagination;\n model.waiters = require('../apis/ec2-2016-11-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EC2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecs'] = {};\nAWS.ECS = Service.defineService('ecs', ['2014-11-13']);\nObject.defineProperty(apiLoader.services['ecs'], '2014-11-13', {\n get: function get() {\n var model = require('../apis/ecs-2014-11-13.min.json');\n model.paginators = require('../apis/ecs-2014-11-13.paginators.json').pagination;\n model.waiters = require('../apis/ecs-2014-11-13.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticache'] = {};\nAWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']);\nObject.defineProperty(apiLoader.services['elasticache'], '2015-02-02', {\n get: function get() {\n var model = require('../apis/elasticache-2015-02-02.min.json');\n model.paginators = require('../apis/elasticache-2015-02-02.paginators.json').pagination;\n model.waiters = require('../apis/elasticache-2015-02-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElastiCache;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticbeanstalk'] = {};\nAWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/elasticbeanstalk-2010-12-01.min.json');\n model.paginators = require('../apis/elasticbeanstalk-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticbeanstalk-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticBeanstalk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elastictranscoder'] = {};\nAWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']);\nObject.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', {\n get: function get() {\n var model = require('../apis/elastictranscoder-2012-09-25.min.json');\n model.paginators = require('../apis/elastictranscoder-2012-09-25.paginators.json').pagination;\n model.waiters = require('../apis/elastictranscoder-2012-09-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticTranscoder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elbv2'] = {};\nAWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']);\nObject.defineProperty(apiLoader.services['elbv2'], '2015-12-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancingv2-2015-12-01.min.json');\n model.paginators = require('../apis/elasticloadbalancingv2-2015-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancingv2-2015-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELBv2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastqueryservice'] = {};\nAWS.ForecastQueryService = Service.defineService('forecastqueryservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastqueryservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecastquery-2018-06-26.min.json');\n model.paginators = require('../apis/forecastquery-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastQueryService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iot'] = {};\nAWS.Iot = Service.defineService('iot', ['2015-05-28']);\nObject.defineProperty(apiLoader.services['iot'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-2015-05-28.min.json');\n model.paginators = require('../apis/iot-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Iot;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideo'] = {};\nAWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesisvideo-2017-09-30.min.json');\n model.paginators = require('../apis/kinesisvideo-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideo;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideoarchivedmedia'] = {};\nAWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-archived-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-archived-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoArchivedMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kms'] = {};\nAWS.KMS = Service.defineService('kms', ['2014-11-01']);\nObject.defineProperty(apiLoader.services['kms'], '2014-11-01', {\n get: function get() {\n var model = require('../apis/kms-2014-11-01.min.json');\n model.paginators = require('../apis/kms-2014-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KMS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lambda'] = {};\nAWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']);\nrequire('../lib/services/lambda');\nObject.defineProperty(apiLoader.services['lambda'], '2014-11-11', {\n get: function get() {\n var model = require('../apis/lambda-2014-11-11.min.json');\n model.paginators = require('../apis/lambda-2014-11-11.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['lambda'], '2015-03-31', {\n get: function get() {\n var model = require('../apis/lambda-2015-03-31.min.json');\n model.paginators = require('../apis/lambda-2015-03-31.paginators.json').pagination;\n model.waiters = require('../apis/lambda-2015-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Lambda;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntimev2'] = {};\nAWS.LexRuntimeV2 = Service.defineService('lexruntimev2', ['2020-08-07']);\nObject.defineProperty(apiLoader.services['lexruntimev2'], '2020-08-07', {\n get: function get() {\n var model = require('../apis/runtime.lex.v2-2020-08-07.min.json');\n model.paginators = require('../apis/runtime.lex.v2-2020-08-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntimeV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['machinelearning'] = {};\nAWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']);\nrequire('../lib/services/machinelearning');\nObject.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', {\n get: function get() {\n var model = require('../apis/machinelearning-2014-12-12.min.json');\n model.paginators = require('../apis/machinelearning-2014-12-12.paginators.json').pagination;\n model.waiters = require('../apis/machinelearning-2014-12-12.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MachineLearning;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecatalog'] = {};\nAWS.MarketplaceCatalog = Service.defineService('marketplacecatalog', ['2018-09-17']);\nObject.defineProperty(apiLoader.services['marketplacecatalog'], '2018-09-17', {\n get: function get() {\n var model = require('../apis/marketplace-catalog-2018-09-17.min.json');\n model.paginators = require('../apis/marketplace-catalog-2018-09-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecommerceanalytics'] = {};\nAWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']);\nObject.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', {\n get: function get() {\n var model = require('../apis/marketplacecommerceanalytics-2015-07-01.min.json');\n model.paginators = require('../apis/marketplacecommerceanalytics-2015-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCommerceAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mturk'] = {};\nAWS.MTurk = Service.defineService('mturk', ['2017-01-17']);\nObject.defineProperty(apiLoader.services['mturk'], '2017-01-17', {\n get: function get() {\n var model = require('../apis/mturk-requester-2017-01-17.min.json');\n model.paginators = require('../apis/mturk-requester-2017-01-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MTurk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['opsworks'] = {};\nAWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']);\nObject.defineProperty(apiLoader.services['opsworks'], '2013-02-18', {\n get: function get() {\n var model = require('../apis/opsworks-2013-02-18.min.json');\n model.paginators = require('../apis/opsworks-2013-02-18.paginators.json').pagination;\n model.waiters = require('../apis/opsworks-2013-02-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.OpsWorks;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeevents'] = {};\nAWS.PersonalizeEvents = Service.defineService('personalizeevents', ['2018-03-22']);\nObject.defineProperty(apiLoader.services['personalizeevents'], '2018-03-22', {\n get: function get() {\n var model = require('../apis/personalize-events-2018-03-22.min.json');\n model.paginators = require('../apis/personalize-events-2018-03-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeruntime'] = {};\nAWS.PersonalizeRuntime = Service.defineService('personalizeruntime', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalizeruntime'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-runtime-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-runtime-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['polly'] = {};\nAWS.Polly = Service.defineService('polly', ['2016-06-10']);\nrequire('../lib/services/polly');\nObject.defineProperty(apiLoader.services['polly'], '2016-06-10', {\n get: function get() {\n var model = require('../apis/polly-2016-06-10.min.json');\n model.paginators = require('../apis/polly-2016-06-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Polly;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['pricing'] = {};\nAWS.Pricing = Service.defineService('pricing', ['2017-10-15']);\nObject.defineProperty(apiLoader.services['pricing'], '2017-10-15', {\n get: function get() {\n var model = require('../apis/pricing-2017-10-15.min.json');\n model.paginators = require('../apis/pricing-2017-10-15.paginators.json').pagination;\n model.waiters = require('../apis/pricing-2017-10-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Pricing;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rds'] = {};\nAWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']);\nrequire('../lib/services/rds');\nObject.defineProperty(apiLoader.services['rds'], '2013-01-10', {\n get: function get() {\n var model = require('../apis/rds-2013-01-10.min.json');\n model.paginators = require('../apis/rds-2013-01-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-02-12', {\n get: function get() {\n var model = require('../apis/rds-2013-02-12.min.json');\n model.paginators = require('../apis/rds-2013-02-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-09-09', {\n get: function get() {\n var model = require('../apis/rds-2013-09-09.min.json');\n model.paginators = require('../apis/rds-2013-09-09.paginators.json').pagination;\n model.waiters = require('../apis/rds-2013-09-09.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-09-01', {\n get: function get() {\n var model = require('../apis/rds-2014-09-01.min.json');\n model.paginators = require('../apis/rds-2014-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-10-31', {\n get: function get() {\n var model = require('../apis/rds-2014-10-31.min.json');\n model.paginators = require('../apis/rds-2014-10-31.paginators.json').pagination;\n model.waiters = require('../apis/rds-2014-10-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.RDS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['redshift'] = {};\nAWS.Redshift = Service.defineService('redshift', ['2012-12-01']);\nObject.defineProperty(apiLoader.services['redshift'], '2012-12-01', {\n get: function get() {\n var model = require('../apis/redshift-2012-12-01.min.json');\n model.paginators = require('../apis/redshift-2012-12-01.paginators.json').pagination;\n model.waiters = require('../apis/redshift-2012-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Redshift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['s3'] = {};\nAWS.S3 = Service.defineService('s3', ['2006-03-01']);\nrequire('../lib/services/s3');\nObject.defineProperty(apiLoader.services['s3'], '2006-03-01', {\n get: function get() {\n var model = require('../apis/s3-2006-03-01.min.json');\n model.paginators = require('../apis/s3-2006-03-01.paginators.json').pagination;\n model.waiters = require('../apis/s3-2006-03-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.S3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['secretsmanager'] = {};\nAWS.SecretsManager = Service.defineService('secretsmanager', ['2017-10-17']);\nObject.defineProperty(apiLoader.services['secretsmanager'], '2017-10-17', {\n get: function get() {\n var model = require('../apis/secretsmanager-2017-10-17.min.json');\n model.paginators = require('../apis/secretsmanager-2017-10-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SecretsManager;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['servicecatalog'] = {};\nAWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']);\nObject.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', {\n get: function get() {\n var model = require('../apis/servicecatalog-2015-12-10.min.json');\n model.paginators = require('../apis/servicecatalog-2015-12-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ServiceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ses'] = {};\nAWS.SES = Service.defineService('ses', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['ses'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/email-2010-12-01.min.json');\n model.paginators = require('../apis/email-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/email-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SES;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sns'] = {};\nAWS.SNS = Service.defineService('sns', ['2010-03-31']);\nObject.defineProperty(apiLoader.services['sns'], '2010-03-31', {\n get: function get() {\n var model = require('../apis/sns-2010-03-31.min.json');\n model.paginators = require('../apis/sns-2010-03-31.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SNS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sqs'] = {};\nAWS.SQS = Service.defineService('sqs', ['2012-11-05']);\nrequire('../lib/services/sqs');\nObject.defineProperty(apiLoader.services['sqs'], '2012-11-05', {\n get: function get() {\n var model = require('../apis/sqs-2012-11-05.min.json');\n model.paginators = require('../apis/sqs-2012-11-05.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SQS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ssm'] = {};\nAWS.SSM = Service.defineService('ssm', ['2014-11-06']);\nObject.defineProperty(apiLoader.services['ssm'], '2014-11-06', {\n get: function get() {\n var model = require('../apis/ssm-2014-11-06.min.json');\n model.paginators = require('../apis/ssm-2014-11-06.paginators.json').pagination;\n model.waiters = require('../apis/ssm-2014-11-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['storagegateway'] = {};\nAWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']);\nObject.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', {\n get: function get() {\n var model = require('../apis/storagegateway-2013-06-30.min.json');\n model.paginators = require('../apis/storagegateway-2013-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.StorageGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\nrequire('../lib/services/sts');\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.STS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['workdocs'] = {};\nAWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']);\nObject.defineProperty(apiLoader.services['workdocs'], '2016-05-01', {\n get: function get() {\n var model = require('../apis/workdocs-2016-05-01.min.json');\n model.paginators = require('../apis/workdocs-2016-05-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WorkDocs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var Hmac = require('./browserHmac');\nvar Md5 = require('./browserMd5');\nvar Sha1 = require('./browserSha1');\nvar Sha256 = require('./browserSha256');\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createHmac: function createHmac(alg, key) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Hmac(Md5, key);\n } else if (alg === 'sha256') {\n return new Hmac(Sha256, key);\n } else if (alg === 'sha1') {\n return new Hmac(Sha1, key);\n }\n\n throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createSign: function() {\n throw new Error('createSign is not implemented in the browser');\n }\n };\n","var Buffer = require('buffer/').Buffer;\n\n/**\n * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is\n * e.g. missing in IE 10.\n *\n * @api private\n */\nif (\n typeof ArrayBuffer !== 'undefined' &&\n typeof ArrayBuffer.isView === 'undefined'\n) {\n ArrayBuffer.isView = function(arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n\n/**\n * @api private\n */\nvar viewStrings = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]',\n '[object DataView]',\n];\n\n/**\n * @api private\n */\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nfunction convertToBuffer(data) {\n if (typeof data === 'string') {\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer,\n};\n","var hashUtils = require('./browserHashUtils');\n\n/**\n * @api private\n */\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\n\n var inner = bufferFromSecret(hashCtor, secret);\n var outer = new Uint8Array(hashCtor.BLOCK_SIZE);\n outer.set(inner);\n\n for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // Zero out the copied key buffer.\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Hmac;\n\nHmac.prototype.update = function (toHash) {\n if (hashUtils.isEmptyData(toHash) || this.error) {\n return this;\n }\n\n try {\n this.hash.update(hashUtils.convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n\n return this;\n};\n\nHmac.prototype.digest = function (encoding) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest(encoding);\n};\n\nfunction bufferFromSecret(hashCtor, secret) {\n var input = hashUtils.convertToBuffer(secret);\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor;\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","var hashUtils = require('./browserHashUtils');\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 16;\n\nvar INIT = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n];\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function (sourceData) {\n if (hashUtils.isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n var data = hashUtils.convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function (encoding) {\n if (!this.finished) {\n var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n var bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 20;\n\nvar KEY = new Uint32Array([\n 0x5a827999,\n 0x6ed9eba1,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var length = data.length;\n this.totalLength += length * 8;\n for (var i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xff) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) this.processBlock();\n};\n\nSha1.prototype.digest = function (encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n var outView = new DataView(out.buffer);\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (var i = 16; i < 80; i++) {\n var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n var a = this.h0;\n var b = this.h1;\n var c = this.h2;\n var d = this.h3;\n var e = this.h4;\n var f, k;\n\n // Main loop:\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n }\n else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0);\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 32;\n\nvar KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function (encoding) {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n var state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xff) << 24) |\n ((buffer[(i * 4) + 1] & 0xff) << 16) |\n ((buffer[(i * 4) + 2] & 0xff) << 8) |\n (buffer[(i * 4) + 3] & 0xff));\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n var t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7))\n + ((state4 & state5) ^ (~state4 & state6))) | 0)\n + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n var t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","var util = require('./util');\n\n// browser specific modules\nutil.crypto.lib = require('./browserCryptoLib');\nutil.Buffer = require('buffer/').Buffer;\nutil.url = require('url/');\nutil.querystring = require('querystring/');\nutil.realClock = require('./realclock/browserClock');\nutil.environment = 'js';\nutil.createEventStream = require('./event-stream/buffered-create-event-stream').createEventStream;\nutil.isBrowser = function() { return true; };\nutil.isNode = function() { return false; };\n\nvar AWS = require('./core');\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nrequire('./credentials/temporary_credentials');\nrequire('./credentials/chainable_temporary_credentials');\nrequire('./credentials/web_identity_credentials');\nrequire('./credentials/cognito_identity_credentials');\nrequire('./credentials/saml_credentials');\n\n// Load the DOMParser XML parser\nAWS.XML.Parser = require('./xml/browser_parser');\n\n// Load the XHR HttpClient\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}\n","var AWS = require('../core'),\n url = AWS.util.url,\n crypto = AWS.util.crypto.lib,\n base64Encode = AWS.util.base64.encode,\n inherit = AWS.util.inherit;\n\nvar queryEncode = function (string) {\n var replacements = {\n '+': '-',\n '=': '_',\n '/': '~'\n };\n return string.replace(/[\\+=\\/]/g, function (match) {\n return replacements[match];\n });\n};\n\nvar signPolicy = function (policy, privateKey) {\n var sign = crypto.createSign('RSA-SHA1');\n sign.write(policy);\n return queryEncode(sign.sign(privateKey, 'base64'));\n};\n\nvar signWithCannedPolicy = function (url, expires, keyPairId, privateKey) {\n var policy = JSON.stringify({\n Statement: [\n {\n Resource: url,\n Condition: { DateLessThan: { 'AWS:EpochTime': expires } }\n }\n ]\n });\n\n return {\n Expires: expires,\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy.toString(), privateKey)\n };\n};\n\nvar signWithCustomPolicy = function (policy, keyPairId, privateKey) {\n policy = policy.replace(/\\s/mg, '');\n\n return {\n Policy: queryEncode(base64Encode(policy)),\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy, privateKey)\n };\n};\n\nvar determineScheme = function (url) {\n var parts = url.split('://');\n if (parts.length < 2) {\n throw new Error('Invalid URL.');\n }\n\n return parts[0].replace('*', '');\n};\n\nvar getRtmpUrl = function (rtmpUrl) {\n var parsed = url.parse(rtmpUrl);\n return parsed.path.replace(/^\\//, '') + (parsed.hash || '');\n};\n\nvar getResource = function (url) {\n switch (determineScheme(url)) {\n case 'http':\n case 'https':\n return url;\n case 'rtmp':\n return getRtmpUrl(url);\n default:\n throw new Error('Invalid URI scheme. Scheme must be one of'\n + ' http, https, or rtmp');\n }\n};\n\nvar handleError = function (err, callback) {\n if (!callback || typeof callback !== 'function') {\n throw err;\n }\n\n callback(err);\n};\n\nvar handleSuccess = function (result, callback) {\n if (!callback || typeof callback !== 'function') {\n return result;\n }\n\n callback(null, result);\n};\n\nAWS.CloudFront.Signer = inherit({\n /**\n * A signer object can be used to generate signed URLs and cookies for granting\n * access to content on restricted CloudFront distributions.\n *\n * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html\n *\n * @param keyPairId [String] (Required) The ID of the CloudFront key pair\n * being used.\n * @param privateKey [String] (Required) A private key in RSA format.\n */\n constructor: function Signer(keyPairId, privateKey) {\n if (keyPairId === void 0 || privateKey === void 0) {\n throw new Error('A key pair ID and private key are required');\n }\n\n this.keyPairId = keyPairId;\n this.privateKey = privateKey;\n },\n\n /**\n * Create a signed Amazon CloudFront Cookie.\n *\n * @param options [Object] The options to create a signed cookie.\n * @option options url [String] The URL to which the signature will grant\n * access. Required unless you pass in a full\n * policy.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the hash as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [Object] if called synchronously (with no callback), returns the\n * signed cookie parameters.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedCookie: function (options, cb) {\n var signatureHash = 'policy' in options\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey);\n\n var cookieHash = {};\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n cookieHash['CloudFront-' + key] = signatureHash[key];\n }\n }\n\n return handleSuccess(cookieHash, cb);\n },\n\n /**\n * Create a signed Amazon CloudFront URL.\n *\n * Keep in mind that URLs meant for use in media/flash players may have\n * different requirements for URL formats (e.g. some require that the\n * extension be removed, some require the file name to be prefixed\n * - mp4:, some require you to add \"/cfx/st\" into your URL).\n *\n * @param options [Object] The options to create a signed URL.\n * @option options url [String] The URL to which the signature will grant\n * access. Any query params included with\n * the URL should be encoded. Required.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedUrl: function (options, cb) {\n try {\n var resource = getResource(options.url);\n } catch (err) {\n return handleError(err, cb);\n }\n\n var parsedUrl = url.parse(options.url, true),\n signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy')\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey);\n\n parsedUrl.search = null;\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n parsedUrl.query[key] = signatureHash[key];\n }\n }\n\n try {\n var signedUrl = determineScheme(options.url) === 'rtmp'\n ? getRtmpUrl(url.format(parsedUrl))\n : url.format(parsedUrl);\n } catch (err) {\n return handleError(err, cb);\n }\n\n return handleSuccess(signedUrl, cb);\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.CloudFront.Signer;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * Loads token from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Token} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your token is loaded prior to a request, you can use this method\n * directly to provide accurate token data stored in the object.\n *\n * @note If you configure the SDK with static token, the token data should\n * already be present in {token} attribute. This method is primarily necessary\n * to load token from asynchronous sources, or sources that can refresh\n * token periodically.\n * @example Getting your access token\n * AWS.config.getToken(function(err) {\n * if (err) console.log(err.stack); // token not loaded\n * else console.log(\"Token:\", AWS.config.token.token);\n * })\n * @callback callback function(err)\n * Called when the {token} have been properly set on the configuration object.\n *\n * @param err [Error] if this is set, token was not successfully loaded and\n * this error provides information why.\n * @see token\n */\n getToken: function getToken(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.token);\n }\n\n function tokenError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'TokenError',\n message: msg,\n name: 'TokenError'\n });\n }\n\n function getAsyncToken() {\n self.token.get(function(err) {\n if (err) {\n var msg = 'Could not load token from ' +\n self.token.constructor.name;\n err = tokenError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticToken() {\n var err = null;\n if (!self.token.token) {\n err = tokenError('Missing token');\n }\n finish(err);\n }\n\n if (self.token) {\n if (typeof self.token.get === 'function') {\n getAsyncToken();\n } else { // static token\n getStaticToken();\n }\n } else if (self.tokenProvider) {\n self.tokenProvider.resolve(function(err, token) {\n if (err) {\n err = tokenError('Could not load token from any providers', err);\n }\n self.token = token;\n finish(err);\n });\n } else {\n finish(tokenError('No token to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false,\n token: null\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1406.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\nrequire('./maintenance_mode_message');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","var AWS = require('./core');\n\n/**\n * Represents your AWS security credentials, specifically the\n * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}.\n * Creating a `Credentials` object allows you to pass around your\n * security information to configuration and service objects.\n *\n * Note that this class typically does not need to be constructed manually,\n * as the {AWS.Config} and {AWS.Service} classes both accept simple\n * options hashes with the three keys. These structures will be converted\n * into Credentials objects automatically.\n *\n * ## Expiring and Refreshing Credentials\n *\n * Occasionally credentials can expire in the middle of a long-running\n * application. In this case, the SDK will automatically attempt to\n * refresh the credentials from the storage location if the Credentials\n * class implements the {refresh} method.\n *\n * If you are implementing a credential storage location, you\n * will want to create a subclass of the `Credentials` class and\n * override the {refresh} method. This method allows credentials to be\n * retrieved from the backing store, be it a file system, database, or\n * some network storage. The method should reset the credential attributes\n * on the object.\n *\n * @!attribute expired\n * @return [Boolean] whether the credentials have been expired and\n * require a refresh. Used in conjunction with {expireTime}.\n * @!attribute expireTime\n * @return [Date] a time when credentials should be considered expired. Used\n * in conjunction with {expired}.\n * @!attribute accessKeyId\n * @return [String] the AWS access key ID\n * @!attribute secretAccessKey\n * @return [String] the AWS secret access key\n * @!attribute sessionToken\n * @return [String] an optional AWS session token\n */\nAWS.Credentials = AWS.util.inherit({\n /**\n * A credentials object can be created using positional arguments or an options\n * hash.\n *\n * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null)\n * Creates a Credentials object with a given set of credential information\n * as positional arguments.\n * @param accessKeyId [String] the AWS access key ID\n * @param secretAccessKey [String] the AWS secret access key\n * @param sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials('akid', 'secret', 'session');\n * @overload AWS.Credentials(options)\n * Creates a Credentials object with a given set of credential information\n * as an options hash.\n * @option options accessKeyId [String] the AWS access key ID\n * @option options secretAccessKey [String] the AWS secret access key\n * @option options sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials({\n * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session'\n * });\n */\n constructor: function Credentials() {\n // hide secretAccessKey from being displayed with util.inspect\n AWS.util.hideProperties(this, ['secretAccessKey']);\n\n this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n if (arguments.length === 1 && typeof arguments[0] === 'object') {\n var creds = arguments[0].credentials || arguments[0];\n this.accessKeyId = creds.accessKeyId;\n this.secretAccessKey = creds.secretAccessKey;\n this.sessionToken = creds.sessionToken;\n } else {\n this.accessKeyId = arguments[0];\n this.secretAccessKey = arguments[1];\n this.sessionToken = arguments[2];\n }\n },\n\n /**\n * @return [Integer] the number of seconds before {expireTime} during which\n * the credentials will be considered expired.\n */\n expiryWindow: 15,\n\n /**\n * @return [Boolean] whether the credentials object should call {refresh}\n * @note Subclasses should override this method to provide custom refresh\n * logic.\n */\n needsRefresh: function needsRefresh() {\n var currentTime = AWS.util.date.getDate().getTime();\n var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);\n\n if (this.expireTime && adjustedTime > this.expireTime) {\n return true;\n } else {\n return this.expired || !this.accessKeyId || !this.secretAccessKey;\n }\n },\n\n /**\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means either credentials\n * do not need to be refreshed or refreshed credentials information has\n * been loaded into the object (as the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n */\n get: function get(callback) {\n var self = this;\n if (this.needsRefresh()) {\n this.refresh(function(err) {\n if (!err) self.expired = false; // reset expired flag\n if (callback) callback(err);\n });\n } else if (callback) {\n callback();\n }\n },\n\n /**\n * @!method getPromise()\n * Returns a 'thenable' promise.\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means either credentials do not need to be refreshed or refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `get` call.\n * @example Calling the `getPromise` method.\n * var promise = credProvider.getPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * @!method refreshPromise()\n * Returns a 'thenable' promise.\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means refreshed credentials information has been loaded into the object\n * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Calling the `refreshPromise` method.\n * var promise = credProvider.refreshPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @note Subclasses should override this class to reset the\n * {accessKeyId}, {secretAccessKey} and optional {sessionToken}\n * on the credentials object and then call the callback with\n * any error information.\n * @see get\n */\n refresh: function refresh(callback) {\n this.expired = false;\n callback();\n },\n\n /**\n * @api private\n * @param callback\n */\n coalesceRefresh: function coalesceRefresh(callback, sync) {\n var self = this;\n if (self.refreshCallbacks.push(callback) === 1) {\n self.load(function onLoad(err) {\n AWS.util.arrayEach(self.refreshCallbacks, function(callback) {\n if (sync) {\n callback(err);\n } else {\n // callback could throw, so defer to ensure all callbacks are notified\n AWS.util.defer(function () {\n callback(err);\n });\n }\n });\n self.refreshCallbacks.length = 0;\n });\n }\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n callback();\n }\n});\n\n/**\n * @api private\n */\nAWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency);\n this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in\n * the way masterCredentials and refreshes are handled.\n * AWS.ChainableTemporaryCredentials refreshes expired credentials using the\n * masterCredentials passed by the user to support chaining of STS credentials.\n * However, AWS.TemporaryCredentials recursively collapses the masterCredentials\n * during instantiation, precluding the ability to refresh credentials which\n * require intermediate, temporary credentials.\n *\n * For example, if the application should use RoleA, which must be assumed from\n * RoleB, and the environment provides credentials which can assume RoleB, then\n * AWS.ChainableTemporaryCredentials must be used to support refreshing the\n * temporary credentials for RoleA:\n *\n * ```javascript\n * var roleACreds = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleA'},\n * masterCredentials: new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleB'},\n * masterCredentials: new AWS.EnvironmentCredentials('AWS')\n * })\n * });\n * ```\n *\n * If AWS.TemporaryCredentials had been used in the previous example,\n * `roleACreds` would fail to refresh because `roleACreds` would\n * use the environment credentials for the AssumeRole request.\n *\n * Another difference is that AWS.ChainableTemporaryCredentials creates the STS\n * service instance during instantiation while AWS.TemporaryCredentials creates\n * the STS service instance during the first refresh. Creating the service\n * instance during instantiation effectively captures the master credentials\n * from the global config, so that subsequent changes to the global config do\n * not affect the master credentials used to refresh the temporary credentials.\n *\n * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned\n * to AWS.config.credentials:\n *\n * ```javascript\n * var envCreds = new AWS.EnvironmentCredentials('AWS');\n * AWS.config.credentials = envCreds;\n * // masterCredentials will be envCreds\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * Similarly, to use the CredentialProviderChain's default providers as the\n * master credentials, simply create a new instance of\n * AWS.ChainableTemporaryCredentials:\n *\n * ```javascript\n * AWS.config.credentials = new ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * @!attribute service\n * @return [AWS.STS] the STS service instance used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @param options [map] a set of options\n * @option options params [map] ({}) a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must\n * also be passed in or an error will be thrown.\n * @option options masterCredentials [AWS.Credentials] the master credentials\n * used to get and refresh temporary credentials from AWS STS. By default,\n * AWS.config.credentials or AWS.config.credentialProvider will be used.\n * @option options tokenCodeFn [Function] (null) Function to provide\n * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function\n * is called with value of `SerialNumber` and `callback`, and should provide\n * the `TokenCode` or an error to the callback in the format\n * `callback(err, token)`.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials'\n * }\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function ChainableTemporaryCredentials(options) {\n AWS.Credentials.call(this);\n options = options || {};\n this.errorCode = 'ChainableTemporaryCredentialsProviderFailure';\n this.expired = true;\n this.tokenCodeFn = null;\n\n var params = AWS.util.copy(options.params) || {};\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) {\n throw new AWS.util.error(\n new Error('tokenCodeFn must be a function when params.SerialNumber is given'),\n {code: this.errorCode}\n );\n } else {\n this.tokenCodeFn = options.tokenCodeFn;\n }\n }\n var config = AWS.util.merge(\n {\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n },\n options.stsConfig || {}\n );\n this.service = new STS(config);\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken';\n this.getTokenCode(function (err, tokenCode) {\n var params = {};\n if (err) {\n callback(err);\n return;\n }\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n if (err instanceof Error) {\n message = err.message;\n }\n callback(\n AWS.util.error(\n new Error('Error fetching MFA token: ' + message),\n { code: self.errorCode}\n )\n );\n return;\n }\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});\n","var AWS = require('../core');\nvar CognitoIdentity = require('../../clients/cognitoidentity');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation using\n * the Amazon Cognito Identity service.\n *\n * By default this provider gets credentials using the\n * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which\n * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito\n * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to\n * obtain an `IdentityId`. If the identity or identity pool is not configured in\n * the Amazon Cognito Console to use IAM roles with the appropriate permissions,\n * then additionally a `RoleArn` is required containing the ARN of the IAM trust\n * policy for the Amazon Cognito role that the user will log into. If a `RoleArn`\n * is provided, then this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an\n * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}.\n *\n * In addition, if this credential provider is used to provide authenticated\n * login, the `Logins` map may be set to the tokens provided by the respective\n * identity providers. See {constructor} for an example on creating a credentials\n * object with proper property values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.CognitoIdentity.getId},\n * {AWS.CognitoIdentity.getOpenIdToken}, and\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.CognitoIdentity.getCredentialsForIdentity}, or\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n * @!attribute identityId\n * @return [String] the Cognito ID returned by the last call to\n * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual\n * final resolved identity ID from Amazon Cognito.\n */\nAWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * @api private\n */\n localStorageKey: {\n id: 'aws.cognito.identity-id.',\n providers: 'aws.cognito.identity-providers.'\n },\n\n /**\n * Creates a new credentials object.\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n *\n * // either IdentityPoolId or IdentityId is required\n * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below)\n * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity\n * // or AWS.CognitoIdentity.getOpenIdToken (linked below)\n * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',\n * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f'\n *\n * // optional, only necessary when the identity pool is not configured\n * // to use IAM roles in the Amazon Cognito Console\n * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity',\n *\n * // optional tokens, used for authenticated login\n * // See the Logins param for AWS.CognitoIdentity.getID (linked below)\n * Logins: {\n * 'graph.facebook.com': 'FBTOKEN',\n * 'www.amazon.com': 'AMAZONTOKEN',\n * 'accounts.google.com': 'GOOGLETOKEN',\n * 'api.twitter.com': 'TWITTERTOKEN',\n * 'www.digits.com': 'DIGITSTOKEN'\n * },\n *\n * // optional name, defaults to web-identity\n * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleSessionName: 'web',\n *\n * // optional, only necessary when application runs in a browser\n * // and multiple users are signed in at once, used for caching\n * LoginId: 'example@gmail.com'\n *\n * }, {\n * // optionally provide configuration to apply to the underlying service clients\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // region should match the region your identity pool is located in\n * region: 'us-east-1',\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.CognitoIdentity.getId\n * @see AWS.CognitoIdentity.getCredentialsForIdentity\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.CognitoIdentity.getOpenIdToken\n * @see AWS.Config\n * @note If a region is not provided in the global AWS.config, or\n * specified in the `clientConfig` to the CognitoIdentityCredentials\n * constructor, you may encounter a 'Missing credentials in config' error\n * when calling making a service call.\n */\n constructor: function CognitoIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.data = null;\n this._identityId = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n this.loadCachedId();\n var self = this;\n Object.defineProperty(this, 'identityId', {\n get: function() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function(identityId) {\n self._identityId = identityId;\n }\n });\n },\n\n /**\n * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity},\n * or {AWS.STS.assumeRoleWithWebIdentity}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.data = null;\n self._identityId = null;\n self.getId(function(err) {\n if (!err) {\n if (!self.params.RoleArn) {\n self.getCredentialsForIdentity(callback);\n } else {\n self.getCredentialsFromSTS(callback);\n }\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * Clears the cached Cognito ID associated with the currently configured\n * identity pool ID. Use this to manually invalidate your cache if\n * the identity pool ID was deleted.\n */\n clearCachedId: function clearCache() {\n this._identityId = null;\n delete this.params.IdentityId;\n\n var poolId = this.params.IdentityPoolId;\n var loginId = this.params.LoginId || '';\n delete this.storage[this.localStorageKey.id + poolId + loginId];\n delete this.storage[this.localStorageKey.providers + poolId + loginId];\n },\n\n /**\n * @api private\n */\n clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) {\n var self = this;\n if (err.code == 'NotAuthorizedException') {\n self.clearCachedId();\n }\n },\n\n /**\n * Retrieves a Cognito ID, loading from cache if it was already retrieved\n * on this device.\n *\n * @callback callback function(err, identityId)\n * @param err [Error, null] an error object if the call failed or null if\n * it succeeded.\n * @param identityId [String, null] if successful, the callback will return\n * the Cognito ID.\n * @note If not loaded explicitly, the Cognito ID is loaded and stored in\n * localStorage in the browser environment of a device.\n * @api private\n */\n getId: function getId(callback) {\n var self = this;\n if (typeof self.params.IdentityId === 'string') {\n return callback(null, self.params.IdentityId);\n }\n\n self.cognito.getId(function(err, data) {\n if (!err && data.IdentityId) {\n self.params.IdentityId = data.IdentityId;\n callback(null, data.IdentityId);\n } else {\n callback(err);\n }\n });\n },\n\n\n /**\n * @api private\n */\n loadCredentials: function loadCredentials(data, credentials) {\n if (!data || !credentials) return;\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n },\n\n /**\n * @api private\n */\n getCredentialsForIdentity: function getCredentialsForIdentity(callback) {\n var self = this;\n self.cognito.getCredentialsForIdentity(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.data = data;\n self.loadCredentials(self.data, self);\n } else {\n self.clearIdOnNotAuthorized(err);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n getCredentialsFromSTS: function getCredentialsFromSTS(callback) {\n var self = this;\n self.cognito.getOpenIdToken(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.params.WebIdentityToken = data.Token;\n self.webIdentityCredentials.refresh(function(webErr) {\n if (!webErr) {\n self.data = self.webIdentityCredentials.data;\n self.sts.credentialsFrom(self.data, self);\n }\n callback(webErr);\n });\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * @api private\n */\n loadCachedId: function loadCachedId() {\n var self = this;\n\n // in the browser we source default IdentityId from localStorage\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders =\n (self.getStorage('providers') || '').split(',');\n\n // only load ID if at least one provider used this ID before\n var intersect = cachedProviders.filter(function(n) {\n return actualProviders.indexOf(n) !== -1;\n });\n if (intersect.length !== 0) {\n self.params.IdentityId = id;\n }\n } else if (id) {\n self.params.IdentityId = id;\n }\n }\n },\n\n /**\n * @api private\n */\n createClients: function() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials ||\n new AWS.WebIdentityCredentials(this.params, clientConfig);\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\n this.sts = this.sts || new STS(clientConfig);\n },\n\n /**\n * @api private\n */\n cacheId: function cacheId(data) {\n this._identityId = data.IdentityId;\n this.params.IdentityId = this._identityId;\n\n // cache this IdentityId in browser localStorage if possible\n if (AWS.util.isBrowser()) {\n this.setStorage('id', data.IdentityId);\n\n if (this.params.Logins) {\n this.setStorage('providers', Object.keys(this.params.Logins).join(','));\n }\n }\n },\n\n /**\n * @api private\n */\n getStorage: function getStorage(key) {\n return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];\n },\n\n /**\n * @api private\n */\n setStorage: function setStorage(key, val) {\n try {\n this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;\n } catch (_) {}\n },\n\n /**\n * @api private\n */\n storage: (function() {\n try {\n var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?\n window.localStorage : {};\n\n // Test set/remove which would throw an error in Safari's private browsing\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n\n return storage;\n } catch (_) {\n return {};\n }\n })()\n});\n","var AWS = require('../core');\n\n/**\n * Creates a credential provider chain that searches for AWS credentials\n * in a list of credential providers specified by the {providers} property.\n *\n * By default, the chain will use the {defaultProviders} to resolve credentials.\n * These providers will look in the environment using the\n * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes.\n *\n * ## Setting Providers\n *\n * Each provider in the {providers} list should be a function that returns\n * a {AWS.Credentials} object, or a hardcoded credentials object. The function\n * form allows for delayed execution of the credential construction.\n *\n * ## Resolving Credentials from a Chain\n *\n * Call {resolve} to return the first valid credential object that can be\n * loaded by the provider chain.\n *\n * For example, to resolve a chain with a custom provider that checks a file\n * on disk after the set of {defaultProviders}:\n *\n * ```javascript\n * var diskProvider = new AWS.FileSystemCredentials('./creds.json');\n * var chain = new AWS.CredentialProviderChain();\n * chain.providers.push(diskProvider);\n * chain.resolve();\n * ```\n *\n * The above code will return the `diskProvider` object if the\n * file contains credentials and the `defaultProviders` do not contain\n * any credential settings.\n *\n * @!attribute providers\n * @return [Array]\n * a list of credentials objects or functions that return credentials\n * objects. If the provider is a function, the function will be\n * executed lazily when the provider needs to be checked for valid\n * credentials. By default, this object will be set to the\n * {defaultProviders}.\n * @see defaultProviders\n */\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\n\n /**\n * Creates a new CredentialProviderChain with a default set of providers\n * specified by {defaultProviders}.\n */\n constructor: function CredentialProviderChain(providers) {\n if (providers) {\n this.providers = providers;\n } else {\n this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);\n }\n this.resolveCallbacks = [];\n },\n\n /**\n * @!method resolvePromise()\n * Returns a 'thenable' promise.\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(credentials)\n * Called if the promise is fulfilled and the provider resolves the chain\n * to a credentials object\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param err [Error] the error object returned if no credentials are found.\n * @return [Promise] A promise that represents the state of the `resolve` method call.\n * @example Calling the `resolvePromise` method.\n * var promise = chain.resolvePromise();\n * promise.then(function(credentials) { ... }, function(err) { ... });\n */\n\n /**\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * @callback callback function(err, credentials)\n * Called when the provider resolves the chain to a credentials object\n * or null if no credentials can be found.\n *\n * @param err [Error] the error object returned if no credentials are\n * found.\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @return [AWS.CredentialProviderChain] the provider, for chaining.\n */\n resolve: function resolve(callback) {\n var self = this;\n if (self.providers.length === 0) {\n callback(new Error('No providers'));\n return self;\n }\n\n if (self.resolveCallbacks.push(callback) === 1) {\n var index = 0;\n var providers = self.providers.slice(0);\n\n function resolveNext(err, creds) {\n if ((!err && creds) || index === providers.length) {\n AWS.util.arrayEach(self.resolveCallbacks, function (callback) {\n callback(err, creds);\n });\n self.resolveCallbacks.length = 0;\n return;\n }\n\n var provider = providers[index++];\n if (typeof provider === 'function') {\n creds = provider.call();\n } else {\n creds = provider;\n }\n\n if (creds.get) {\n creds.get(function (getErr) {\n resolveNext(getErr, getErr ? null : creds);\n });\n } else {\n resolveNext(null, creds);\n }\n }\n\n resolveNext();\n }\n\n return self;\n }\n});\n\n/**\n * The default set of providers used by a vanilla CredentialProviderChain.\n *\n * In the browser:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = []\n * ```\n *\n * In Node.js:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = [\n * function () { return new AWS.EnvironmentCredentials('AWS'); },\n * function () { return new AWS.EnvironmentCredentials('AMAZON'); },\n * function () { return new AWS.SsoCredentials(); },\n * function () { return new AWS.SharedIniFileCredentials(); },\n * function () { return new AWS.ECSCredentials(); },\n * function () { return new AWS.ProcessCredentials(); },\n * function () { return new AWS.TokenFileWebIdentityCredentials(); },\n * function () { return new AWS.EC2MetadataCredentials() }\n * ]\n * ```\n */\nAWS.CredentialProviderChain.defaultProviders = [];\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS SAML support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithSAML} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given, as well as a `PrincipalArn`\n * representing the ARN for the SAML identity provider. In addition, the\n * `SAMLAssertion` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the SAMLAssertion, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.SAMLAssertion = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithSAML}. To update the token, set the\n * `params.SAMLAssertion` property.\n */\nAWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithSAML)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.SAMLCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole',\n * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal',\n * SAMLAssertion: 'base64-token', // base64-encoded token from IdP\n * });\n * @see AWS.STS.assumeRoleWithSAML\n */\n constructor: function SAMLCredentials(params) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithSAML}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithSAML(function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","var AWS = require('../core');\nvar Translator = require('./translator');\nvar DynamoDBSet = require('./set');\n\n/**\n * The document client simplifies working with items in Amazon DynamoDB\n * by abstracting away the notion of attribute values. This abstraction\n * annotates native JavaScript types supplied as input parameters, as well\n * as converts annotated response data to native JavaScript types.\n *\n * ## Marshalling Input and Unmarshalling Response Data\n *\n * The document client affords developers the use of native JavaScript types\n * instead of `AttributeValue`s to simplify the JavaScript development\n * experience with Amazon DynamoDB. JavaScript objects passed in as parameters\n * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB.\n * Responses from DynamoDB are unmarshalled into plain JavaScript objects\n * by the `DocumentClient`. The `DocumentClient`, does not accept\n * `AttributeValue`s in favor of native JavaScript types.\n *\n * | JavaScript Type | DynamoDB AttributeValue |\n * |:----------------------------------------------------------------------:|-------------------------|\n * | String | S |\n * | Number | N |\n * | Boolean | BOOL |\n * | null | NULL |\n * | Array | L |\n * | Object | M |\n * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B |\n *\n * ## Support for Sets\n *\n * The `DocumentClient` offers a convenient way to create sets from\n * JavaScript Arrays. The type of set is inferred from the first element\n * in the array. DynamoDB supports string, number, and binary sets. To\n * learn more about supported types see the\n * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)\n * For more information see {AWS.DynamoDB.DocumentClient.createSet}\n *\n */\nAWS.DynamoDB.DocumentClient = AWS.util.inherit({\n\n /**\n * Creates a DynamoDB document client with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.DynamoDB] An optional pre-configured instance\n * of the AWS.DynamoDB service object. This instance's config will be\n * copied to a new instance used by this client. You should not need to\n * retain a reference to the input object, and may destroy it or allow it\n * to be garbage collected.\n * @option options convertEmptyValues [Boolean] set to true if you would like\n * the document client to convert empty values (0-length strings, binary\n * buffers, and sets) to be converted to NULL types when persisting to\n * DynamoDB.\n * @option options wrapNumbers [Boolean] Set to true to return numbers as a\n * NumberValue object instead of converting them to native JavaScript numbers.\n * This allows for the safe round-trip transport of numbers of arbitrary size.\n * @see AWS.DynamoDB.constructor\n *\n */\n constructor: function DocumentClient(options) {\n var self = this;\n self.options = options || {};\n self.configure(self.options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n var self = this;\n self.service = options.service;\n self.bindServiceObject(options);\n self.attrValue = options.attrValue =\n self.service.api.operations.putItem.input.members.Item.value.shape;\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n var self = this;\n options = options || {};\n\n if (!self.service) {\n self.service = new AWS.DynamoDB(options);\n } else {\n var config = AWS.util.copy(self.service.config);\n self.service = new self.service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n makeServiceRequest: function(operation, params, callback) {\n var self = this;\n var request = self.service[operation](params);\n self.setupRequest(request);\n self.setupResponse(request);\n if (typeof callback === 'function') {\n request.send(callback);\n }\n return request;\n },\n\n /**\n * @api private\n */\n serviceClientOperationsMap: {\n batchGet: 'batchGetItem',\n batchWrite: 'batchWriteItem',\n delete: 'deleteItem',\n get: 'getItem',\n put: 'putItem',\n query: 'query',\n scan: 'scan',\n update: 'updateItem',\n transactGet: 'transactGetItems',\n transactWrite: 'transactWriteItems'\n },\n\n /**\n * Returns the attributes of one or more items from one or more tables\n * by delegating to `AWS.DynamoDB.batchGetItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchGetItem\n * @example Get items from multiple tables\n * var params = {\n * RequestItems: {\n * 'Table-1': {\n * Keys: [\n * {\n * HashKey: 'haskey',\n * NumberRangeKey: 1\n * }\n * ]\n * },\n * 'Table-2': {\n * Keys: [\n * { foo: 'bar' },\n * ]\n * }\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Puts or deletes multiple items in one or more tables by delegating\n * to `AWS.DynamoDB.batchWriteItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchWriteItem\n * @example Write to and delete from a table\n * var params = {\n * RequestItems: {\n * 'Table-1': [\n * {\n * DeleteRequest: {\n * Key: { HashKey: 'someKey' }\n * }\n * },\n * {\n * PutRequest: {\n * Item: {\n * HashKey: 'anotherKey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar' }\n * }\n * }\n * }\n * ]\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Deletes a single item in a table by primary key by delegating to\n * `AWS.DynamoDB.deleteItem()`\n *\n * Supply the same parameters as {AWS.DynamoDB.deleteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.deleteItem\n * @example Delete an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey',\n * NumberRangeKey: 1\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.delete(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n delete: function(params, callback) {\n var operation = this.serviceClientOperationsMap['delete'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns a set of attributes for the item with the given primary key\n * by delegating to `AWS.DynamoDB.getItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.getItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.getItem\n * @example Get an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey'\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.get(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n get: function(params, callback) {\n var operation = this.serviceClientOperationsMap['get'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a new item, or replaces an old item with a new item by\n * delegating to `AWS.DynamoDB.putItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.putItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.putItem\n * @example Create a new item in a table\n * var params = {\n * TableName : 'Table',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n put: function(params, callback) {\n var operation = this.serviceClientOperationsMap['put'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Edits an existing item's attributes, or adds a new item to the table if\n * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.updateItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.updateItem\n * @example Update an item with expressions\n * var params = {\n * TableName: 'Table',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.update(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n update: function(params, callback) {\n var operation = this.serviceClientOperationsMap['update'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns one or more items and item attributes by accessing every item\n * in a table or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.scan} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.scan\n * @example Scan the table with a filter expression\n * var params = {\n * TableName : 'Table',\n * FilterExpression : 'Year = :this_year',\n * ExpressionAttributeValues : {':this_year' : 2015}\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.scan(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n scan: function(params, callback) {\n var operation = this.serviceClientOperationsMap['scan'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Directly access items from a table by primary key or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.query} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.query\n * @example Query an index\n * var params = {\n * TableName: 'Table',\n * IndexName: 'Index',\n * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey',\n * ExpressionAttributeValues: {\n * ':hkey': 'key',\n * ':rkey': 2015\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.query(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n query: function(params, callback) {\n var operation = this.serviceClientOperationsMap['query'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Synchronous write operation that groups up to 25 action requests.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactWriteItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactWriteItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Put: {\n * TableName : 'Table0',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * }\n * }, {\n * Update: {\n * TableName: 'Table1',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Atomically retrieves multiple items from one or more tables (but not from indexes)\n * in a single account and region.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactGetItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactGetItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Get: {\n * TableName : 'Table0',\n * Key: {\n * HashKey: 'hashkey0'\n * }\n * }\n * }, {\n * Get: {\n * TableName : 'Table1',\n * Key: {\n * HashKey: 'hashkey1'\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a set of elements inferring the type of set from\n * the type of the first element. Amazon DynamoDB currently supports\n * the number sets, string sets, and binary sets. For more information\n * about DynamoDB data types see the documentation on the\n * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes).\n *\n * @param list [Array] Collection to represent your DynamoDB Set\n * @param options [map]\n * * **validate** [Boolean] set to true if you want to validate the type\n * of each element in the set. Defaults to `false`.\n * @example Creating a number set\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * var params = {\n * Item: {\n * hashkey: 'hashkey'\n * numbers: documentClient.createSet([1, 2, 3]);\n * }\n * };\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n createSet: function(list, options) {\n options = options || {};\n return new DynamoDBSet(list, options);\n },\n\n /**\n * @api private\n */\n getTranslator: function() {\n return new Translator(this.options);\n },\n\n /**\n * @api private\n */\n setupRequest: function setupRequest(request) {\n var self = this;\n var translator = self.getTranslator();\n var operation = request.operation;\n var inputShape = request.service.api.operations[operation].input;\n request._events.validate.unshift(function(req) {\n req.rawParams = AWS.util.copy(req.params);\n req.params = translator.translateInput(req.rawParams, inputShape);\n });\n },\n\n /**\n * @api private\n */\n setupResponse: function setupResponse(request) {\n var self = this;\n var translator = self.getTranslator();\n var outputShape = self.service.api.operations[request.operation].output;\n request.on('extractData', function(response) {\n response.data = translator.translateOutput(response.data, outputShape);\n });\n\n var response = request.response;\n response.nextPage = function(cb) {\n var resp = this;\n var req = resp.request;\n var config;\n var service = req.service;\n var operation = req.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { resp.error = e; }\n\n if (!resp.hasNextPage()) {\n if (cb) cb(resp.error, null);\n else if (resp.error) throw resp.error;\n return null;\n }\n\n var params = AWS.util.copy(req.rawParams);\n if (!resp.nextPageTokens) {\n return cb ? cb(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = resp.nextPageTokens[i];\n }\n return self[operation](params, cb);\n }\n };\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.DocumentClient;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var util = require('../core').util;\n\nfunction typeOf(data) {\n if (data === null && typeof data === 'object') {\n return 'null';\n } else if (data !== undefined && isBinary(data)) {\n return 'Binary';\n } else if (data !== undefined && data.constructor) {\n return data.wrapperName || util.typeName(data.constructor);\n } else if (data !== undefined && typeof data === 'object') {\n // this object is the result of Object.create(null), hence the absence of a\n // defined constructor\n return 'Object';\n } else {\n return 'undefined';\n }\n}\n\nfunction isBinary(data) {\n var types = [\n 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView',\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray',\n 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',\n 'Float32Array', 'Float64Array'\n ];\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n if (util.Buffer.isBuffer(data) || data instanceof Stream) {\n return true;\n }\n }\n\n for (var i = 0; i < types.length; i++) {\n if (data !== undefined && data.constructor) {\n if (util.isType(data, types[i])) return true;\n if (util.typeName(data.constructor) === types[i]) return true;\n }\n }\n\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n typeOf: typeOf,\n isBinary: isBinary\n};\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","/**\n * Takes in a buffer of event messages and splits them into individual messages.\n * @param {Buffer} buffer\n * @api private\n */\nfunction eventMessageChunker(buffer) {\n /** @type Buffer[] */\n var messages = [];\n var offset = 0;\n\n while (offset < buffer.length) {\n var totalLength = buffer.readInt32BE(offset);\n\n // create new buffer for individual message (shares memory with original)\n var message = buffer.slice(offset, totalLength + offset);\n // increment offset to it starts at the next message\n offset += totalLength;\n\n messages.push(message);\n }\n\n return messages;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n\n this.bytes = bytes;\n}\n\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\nInt64.fromNumber = function(number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(\n number + ' is too large (or, if negative, too small) to represent as an Int64'\n );\n }\n\n var bytes = new Uint8Array(8);\n for (\n var i = 7, remaining = Math.abs(Math.round(number));\n i > -1 && remaining > 0;\n i--, remaining /= 256\n ) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n\n/**\n * @returns {number}\n *\n * @api private\n */\nInt64.prototype.valueOf = function() {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1);\n};\n\nInt64.prototype.toString = function() {\n return String(this.valueOf());\n};\n\n/**\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xFF;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0) {\n break;\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n Int64: Int64\n};\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","var Int64 = require('./int64').Int64;\n\nvar splitMessage = require('./split-message').splitMessage;\n\nvar BOOLEAN_TAG = 'boolean';\nvar BYTE_TAG = 'byte';\nvar SHORT_TAG = 'short';\nvar INT_TAG = 'integer';\nvar LONG_TAG = 'long';\nvar BINARY_TAG = 'binary';\nvar STRING_TAG = 'string';\nvar TIMESTAMP_TAG = 'timestamp';\nvar UUID_TAG = 'uuid';\n\n/**\n * @api private\n *\n * @param {Buffer} headers\n */\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n switch (headers.readUInt8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.readInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: headers.slice(position, position + binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(\n position,\n position + stringLength\n ).toString()\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(\n new Int64(headers.slice(position, position + 8))\n .valueOf()\n )\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidChars = headers.slice(position, position + 16)\n .toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' +\n uuidChars.substr(8, 4) + '-' +\n uuidChars.substr(12, 4) + '-' +\n uuidChars.substr(16, 4) + '-' +\n uuidChars.substr(20)\n };\n break;\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return { headers: parseHeaders(parsed.headers), body: parsed.body };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseMessage: parseMessage\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n\n/**\n * @api private\n *\n * @param {Buffer} message\n */\nfunction splitMessage(message) {\n if (!util.Buffer.isBuffer(message)) message = toBuffer(message);\n\n if (message.length < MINIMUM_MESSAGE_LENGTH) {\n throw new Error('Provided message too short to accommodate event stream message overhead');\n }\n\n if (message.length !== message.readUInt32BE(0)) {\n throw new Error('Reported message length does not match received message length');\n }\n\n var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH);\n\n if (\n expectedPreludeChecksum !== util.crypto.crc32(\n message.slice(0, PRELUDE_LENGTH)\n )\n ) {\n throw new Error(\n 'The prelude checksum specified in the message (' +\n expectedPreludeChecksum +\n ') does not match the calculated CRC32 checksum.'\n );\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (\n expectedMessageChecksum !== util.crypto.crc32(\n message.slice(0, message.length - CHECKSUM_LENGTH)\n )\n ) {\n throw new Error(\n 'The message checksum did not match the expected value of ' +\n expectedMessageChecksum\n );\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH),\n };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n splitMessage: splitMessage\n};\n","var AWS = require('./core');\nvar SequentialExecutor = require('./sequential_executor');\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\nAWS.EventListeners = {\n /**\n * @!attribute VALIDATE_CREDENTIALS\n * A request listener that validates whether the request is being\n * sent with credentials.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating credentials\n * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_REGION\n * A request listener that validates whether the region is set\n * for a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating region configuration\n * var listener = AWS.EventListeners.Core.VALIDATE_REGION;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_PARAMETERS\n * A request listener that validates input parameters in a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating parameters\n * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS;\n * request.removeListener('validate', listener);\n * @example Disable parameter validation globally\n * AWS.EventListeners.Core.removeListener('validate',\n * AWS.EventListeners.Core.VALIDATE_REGION);\n * @readonly\n * @return [Function]\n * @!attribute SEND\n * A request listener that initiates the HTTP connection for a\n * request being sent. Handles the {AWS.Request~send 'send' Request event}\n * @example Replacing the HTTP handler\n * var listener = AWS.EventListeners.Core.SEND;\n * request.removeListener('send', listener);\n * request.on('send', function(response) {\n * customHandler.send(response);\n * });\n * @return [Function]\n * @readonly\n * @!attribute HTTP_DATA\n * A request listener that reads data from the HTTP connection in order\n * to build the response data.\n * Handles the {AWS.Request~httpData 'httpData' Request event}.\n * Remove this handler if you are overriding the 'httpData' event and\n * do not want extra data processing and buffering overhead.\n * @example Disabling default data processing\n * var listener = AWS.EventListeners.Core.HTTP_DATA;\n * request.removeListener('httpData', listener);\n * @return [Function]\n * @readonly\n */\n Core: {} /* doc hack */\n};\n\n/**\n * @api private\n */\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\n/**\n * @api private\n */\nfunction getIdentityType(req) {\n var service = req.service;\n\n if (service.config.signatureVersion) {\n return service.config.signatureVersion;\n }\n\n if (service.api.signatureVersion) {\n return service.api.signatureVersion;\n }\n\n return getOperationAuthtype(req);\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {\n addAsync(\n 'VALIDATE_CREDENTIALS', 'validate',\n function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n var identityType = getIdentityType(req);\n if (identityType === 'bearer') {\n req.service.config.getToken(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err, {code: 'TokenError'});\n }\n done();\n });\n return;\n }\n\n req.service.config.getCredentials(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err,\n {\n code: 'CredentialsError',\n message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1'\n }\n );\n }\n done();\n });\n });\n\n add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {\n if (!req.service.isGlobalEndpoint) {\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Invalid region in config'});\n }\n }\n });\n\n add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var idempotentMembers = operation.idempotentMembers;\n if (!idempotentMembers.length) {\n return;\n }\n // creates a copy of params so user's param object isn't mutated\n var params = AWS.util.copy(req.params);\n for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) {\n if (!params[idempotentMembers[i]]) {\n // add the member\n params[idempotentMembers[i]] = AWS.util.uuid.v4();\n }\n }\n req.params = params;\n });\n\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var rules = req.service.api.operations[req.operation].input;\n var validation = req.service.config.paramValidation;\n new AWS.ParamValidator(validation).validate(rules, req.params);\n });\n\n add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var body = req.httpRequest.body;\n var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string');\n var headers = req.httpRequest.headers;\n if (\n operation.httpChecksumRequired &&\n req.service.config.computeChecksums &&\n isNonStreamingPayload &&\n !headers['Content-MD5']\n ) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!req.service.api.signatureVersion && !authtype && !req.service.config.signatureVersion) return done(); // none\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n AWS.util.computeSha256(body, function(err, sha) {\n if (err) {\n done(err);\n }\n else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\n }\n });\n\n add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {\n var authtype = getOperationAuthtype(req);\n var payloadMember = AWS.util.getRequestPayloadShape(req);\n if (req.httpRequest.headers['Content-Length'] === undefined) {\n try {\n var length = AWS.util.string.byteLength(req.httpRequest.body);\n req.httpRequest.headers['Content-Length'] = length;\n } catch (err) {\n if (payloadMember && payloadMember.isStreaming) {\n if (payloadMember.requiresLength) {\n //streaming payload requires length(s3, glacier)\n throw err;\n } else if (authtype.indexOf('unsigned-body') >= 0) {\n //unbounded streaming payload(lex, mediastore)\n req.httpRequest.headers['Transfer-Encoding'] = 'chunked';\n return;\n } else {\n throw err;\n }\n }\n throw err;\n }\n }\n });\n\n add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {\n req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;\n });\n\n add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) {\n var traceIdHeaderName = 'X-Amzn-Trace-Id';\n if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) {\n var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME';\n var ENV_TRACE_ID = '_X_AMZN_TRACE_ID';\n var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n var traceId = process.env[ENV_TRACE_ID];\n if (\n typeof functionName === 'string' &&\n functionName.length > 0 &&\n typeof traceId === 'string' &&\n traceId.length > 0\n ) {\n req.httpRequest.headers[traceIdHeaderName] = traceId;\n }\n }\n });\n\n add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n\n this.httpRequest = new AWS.HttpRequest(\n this.service.endpoint,\n this.service.region\n );\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var identityType = getIdentityType(req);\n if (!identityType || identityType.length === 0) return done(); // none\n\n if (identityType === 'bearer') {\n service.config.getToken(function (err, token) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var SignerClass = service.getSignerClass(req);\n var signer = new SignerClass(req.httpRequest);\n signer.addAuthorization(token);\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n } else {\n service.config.getCredentials(function (err, credentials) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var date = service.getSkewCorrectedDate();\n var SignerClass = service.getSignerClass(req);\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var signer = new SignerClass(req.httpRequest,\n service.getSigningName(req),\n {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId);\n\n // clear old authorization headers\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date'];\n\n // add new authorization\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n\n }\n });\n\n add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {\n if (this.service.successfulResponse(resp, this)) {\n resp.data = {};\n resp.error = null;\n } else {\n resp.data = null;\n resp.error = AWS.util.error(new Error(),\n {code: 'UnknownError', message: 'An unknown error occurred.'});\n }\n });\n\n add('ERROR', 'error', function ERROR(err, resp) {\n var awsQueryCompatible = resp.request.service.api.awsQueryCompatible;\n if (awsQueryCompatible) {\n var headers = resp.httpResponse.headers;\n var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined;\n if (queryErrorCode && queryErrorCode.includes(';')) {\n resp.error.code = queryErrorCode.split(';')[0];\n }\n }\n }, true);\n\n addAsync('SEND', 'send', function SEND(resp, done) {\n resp.httpResponse._abortCallback = done;\n resp.error = null;\n resp.data = null;\n\n function callback(httpResp) {\n resp.httpResponse.stream = httpResp;\n var stream = resp.request.httpRequest.stream;\n var service = resp.request.service;\n var api = service.api;\n var operationName = resp.request.operation;\n var operation = api.operations[operationName] || {};\n\n httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit(\n 'httpHeaders',\n [statusCode, headers, resp, statusMessage]\n );\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check\n // if we detect event streams, we're going to have to\n // return the stream immediately\n if (operation.hasEventOutput && service.successfulResponse(resp)) {\n // skip reading the IncomingStream\n resp.request.emit('httpDone');\n done();\n return;\n }\n\n httpResp.on('readable', function onReadable() {\n var data = httpResp.read();\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else { // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\n });\n }\n }\n });\n\n httpResp.on('end', function onEnd() {\n if (!stream || !stream.didCallback) {\n if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) {\n // don't concatenate response chunks when streaming event stream data when response is successful\n return;\n }\n resp.request.emit('httpDone');\n done();\n }\n });\n }\n\n function progress(httpResp) {\n httpResp.on('sendProgress', function onSendProgress(value) {\n resp.request.emit('httpUploadProgress', [value, resp]);\n });\n\n httpResp.on('receiveProgress', function onReceiveProgress(value) {\n resp.request.emit('httpDownloadProgress', [value, resp]);\n });\n }\n\n function error(err) {\n if (err.code !== 'RequestAbortedError') {\n var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError';\n err = AWS.util.error(err, {\n code: errCode,\n region: resp.request.httpRequest.region,\n hostname: resp.request.httpRequest.endpoint.hostname,\n retryable: true\n });\n }\n resp.error = err;\n resp.request.emit('httpError', [resp.error, resp], function() {\n done();\n });\n }\n\n function executeSend() {\n var http = AWS.HttpClient.getInstance();\n var httpOptions = resp.request.service.config.httpOptions || {};\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions,\n callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign\n this.emit('sign', [this], function(err) {\n if (err) done(err);\n else executeSend();\n });\n } else {\n executeSend();\n }\n });\n\n add('HTTP_HEADERS', 'httpHeaders',\n function HTTP_HEADERS(statusCode, headers, resp, statusMessage) {\n resp.httpResponse.statusCode = statusCode;\n resp.httpResponse.statusMessage = statusMessage;\n resp.httpResponse.headers = headers;\n resp.httpResponse.body = AWS.util.buffer.toBuffer('');\n resp.httpResponse.buffers = [];\n resp.httpResponse.numBytes = 0;\n var dateHeader = headers.date || headers.Date;\n var service = resp.request.service;\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n if (service.config.correctClockSkew\n && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\n }\n }\n });\n\n add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {\n if (chunk) {\n if (AWS.util.isNode()) {\n resp.httpResponse.numBytes += chunk.length;\n\n var total = resp.httpResponse.headers['content-length'];\n var progress = { loaded: resp.httpResponse.numBytes, total: total };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\n }\n });\n\n add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {\n // convert buffers array into single buffer\n if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {\n var body = AWS.util.buffer.concat(resp.httpResponse.buffers);\n resp.httpResponse.body = body;\n }\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n if (typeof err.code === 'string' && typeof err.message === 'string') {\n if (err.code.match(/Signature/) && err.message.match(/expired/)) {\n resp.error.retryable = true;\n }\n }\n });\n\n add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n if (this.service.clockSkewError(resp.error)\n && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 &&\n resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint =\n new AWS.Endpoint(resp.httpResponse.headers['location']);\n this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;\n resp.error.redirect = true;\n resp.error.retryable = true;\n }\n });\n\n add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {\n if (resp.error) {\n if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.error.retryDelay = 0;\n } else if (resp.retryCount < resp.maxRetries) {\n resp.error.retryDelay = this.service.retryDelays(resp.retryCount, resp.error) || 0;\n }\n }\n });\n\n addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay, willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n if (resp.error.retryable && resp.retryCount < resp.maxRetries) {\n resp.retryCount++;\n willRetry = true;\n } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.redirectCount++;\n willRetry = true;\n }\n }\n\n // delay < 0 is a signal from customBackoff to skip retries\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\n }\n });\n }),\n\n CorePost: new SequentialExecutor().addNamedListeners(function(add) {\n add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);\n add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);\n\n add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' ||\n typeof err.errno === 'number' &&\n typeof AWS.util.getSystemErrorName === 'function' &&\n ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port +\n '\\'. This service may not be available in the `' + err.region +\n '\\' region.';\n this.response.error = AWS.util.error(new Error(message), {\n code: 'UnknownEndpoint',\n region: err.region,\n hostname: err.hostname,\n retryable: true,\n originalError: err\n });\n }\n });\n }),\n\n Logger: new SequentialExecutor().addNamedListeners(function(add) {\n add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {\n var req = resp.request;\n var logger = req.service.config.logger;\n if (!logger) return;\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\n switch (inputShape.type) {\n case 'structure':\n var struct = {};\n AWS.util.each(shape, function(subShapeName, subShape) {\n if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) {\n struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape);\n } else {\n struct[subShapeName] = subShape;\n }\n });\n return struct;\n case 'list':\n var list = [];\n AWS.util.arrayEach(shape, function(subShape, index) {\n list.push(filterSensitiveLog(inputShape.member, subShape));\n });\n return list;\n case 'map':\n var map = {};\n AWS.util.each(shape, function(key, value) {\n map[key] = filterSensitiveLog(inputShape.value, value);\n });\n return map;\n default:\n return shape;\n }\n }\n\n function buildMessage() {\n var time = resp.request.service.getSkewCorrectedDate().getTime();\n var delta = (time - req.startTime.getTime()) / 1000;\n var ansi = logger.isTTY ? true : false;\n var status = resp.httpResponse.statusCode;\n var censoredParams = req.params;\n if (\n req.service.api.operations &&\n req.service.api.operations[req.operation] &&\n req.service.api.operations[req.operation].input\n ) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n var params = require('util').inspect(censoredParams, true, null);\n var message = '';\n if (ansi) message += '\\x1B[33m';\n message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;\n message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';\n if (ansi) message += '\\x1B[0;1m';\n message += ' ' + AWS.util.string.lowerFirst(req.operation);\n message += '(' + params + ')';\n if (ansi) message += '\\x1B[0m';\n return message;\n }\n\n var line = buildMessage();\n if (typeof logger.log === 'function') {\n logger.log(line);\n } else if (typeof logger.write === 'function') {\n logger.write(line + '\\n');\n }\n });\n }),\n\n Json: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Rest: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n RestJson: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength);\n }),\n\n RestXml: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_xml');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Query: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/query');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","var util = require('../util');\n\nfunction JsonParser() { }\n\nJsonParser.prototype.parse = function(value, shape) {\n return translate(JSON.parse(value), shape);\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n\n var struct = {};\n var shapeMembers = shape.members;\n util.each(shapeMembers, function(name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n if (Object.prototype.hasOwnProperty.call(structure, locationName)) {\n var value = structure[locationName];\n var result = translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonParser;\n","var warning = [\n 'We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.\\n',\n 'Please migrate your code to use AWS SDK for JavaScript (v3).',\n 'For more information, check the migration guide at https://a.co/7PzMCcy'\n].join('\\n');\n\nmodule.exports = {\n suppress: false\n};\n\n/**\n * To suppress this message:\n * @example\n * require('aws-sdk/lib/maintenance_mode_message').suppress = true;\n */\nfunction emitWarning() {\n if (typeof process === 'undefined')\n return;\n\n // Skip maintenance mode message in Lambda environments\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_EXECUTION_ENV !== 'undefined' &&\n process.env.AWS_EXECUTION_ENV.indexOf('AWS_Lambda_') === 0\n ) {\n return;\n }\n\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE !== 'undefined'\n ) {\n return;\n }\n\n if (typeof process.emitWarning === 'function') {\n process.emitWarning(warning, {\n type: 'NOTE'\n });\n }\n}\n\nsetTimeout(function () {\n if (!module.exports.suppress) {\n emitWarning();\n }\n}, 0);\n","var Collection = require('./collection');\nvar Operation = require('./operation');\nvar Shape = require('./shape');\nvar Paginator = require('./paginator');\nvar ResourceWaiter = require('./resource_waiter');\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Api(api, options) {\n var self = this;\n api = api || {};\n options = options || {};\n options.api = this;\n\n api.metadata = api.metadata || {};\n\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\n\n property(this, 'isApi', true, false);\n property(this, 'apiVersion', api.metadata.apiVersion);\n property(this, 'endpointPrefix', api.metadata.endpointPrefix);\n property(this, 'signingName', api.metadata.signingName);\n property(this, 'globalEndpoint', api.metadata.globalEndpoint);\n property(this, 'signatureVersion', api.metadata.signatureVersion);\n property(this, 'jsonVersion', api.metadata.jsonVersion);\n property(this, 'targetPrefix', api.metadata.targetPrefix);\n property(this, 'protocol', api.metadata.protocol);\n property(this, 'timestampFormat', api.metadata.timestampFormat);\n property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);\n property(this, 'abbreviation', api.metadata.serviceAbbreviation);\n property(this, 'fullName', api.metadata.serviceFullName);\n property(this, 'serviceId', api.metadata.serviceId);\n if (serviceIdentifier && metadata[serviceIdentifier]) {\n property(this, 'xmlNoDefaultLists', metadata[serviceIdentifier].xmlNoDefaultLists, false);\n }\n\n memoizedProperty(this, 'className', function() {\n var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;\n if (!name) return null;\n\n name = name.replace(/^Amazon|AWS\\s*|\\(.*|\\s+|\\W+/g, '');\n if (name === 'ElasticLoadBalancing') name = 'ELB';\n return name;\n });\n\n function addEndpointOperation(name, operation) {\n if (operation.endpointoperation === true) {\n property(self, 'endpointOperation', util.string.lowerFirst(name));\n }\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(\n self,\n 'hasRequiredEndpointDiscovery',\n operation.endpointdiscovery.required === true\n );\n }\n }\n\n property(this, 'operations', new Collection(api.operations, options, function(name, operation) {\n return new Operation(name, operation, options);\n }, util.string.lowerFirst, addEndpointOperation));\n\n property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {\n return Shape.create(shape, options);\n }));\n\n property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {\n return new Paginator(name, paginator, options);\n }));\n\n property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {\n return new ResourceWaiter(name, waiter, options);\n }, util.string.lowerFirst));\n\n if (options.documentation) {\n property(this, 'documentation', api.documentation);\n property(this, 'documentationUrl', api.documentationUrl);\n }\n property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible);\n}\n\n/**\n * @api private\n */\nmodule.exports = Api;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var Shape = require('./shape');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\n\n operation.http = operation.http || {};\n property(this, 'endpoint', operation.endpoint);\n property(this, 'httpMethod', operation.http.method || 'POST');\n property(this, 'httpPath', operation.http.requestUri || '/');\n property(this, 'authtype', operation.authtype || '');\n property(\n this,\n 'endpointDiscoveryRequired',\n operation.endpointdiscovery ?\n (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') :\n 'NULL'\n );\n\n // httpChecksum replaces usage of httpChecksumRequired, but some APIs\n // (s3control) still uses old trait.\n var httpChecksumRequired = operation.httpChecksumRequired\n || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired);\n property(this, 'httpChecksumRequired', httpChecksumRequired, false);\n\n memoizedProperty(this, 'input', function() {\n if (!operation.input) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.input, options);\n });\n\n memoizedProperty(this, 'output', function() {\n if (!operation.output) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.output, options);\n });\n\n memoizedProperty(this, 'errors', function() {\n var list = [];\n if (!operation.errors) return null;\n\n for (var i = 0; i < operation.errors.length; i++) {\n list.push(Shape.create(operation.errors[i], options));\n }\n\n return list;\n });\n\n memoizedProperty(this, 'paginator', function() {\n return options.api.paginators[name];\n });\n\n if (options.documentation) {\n property(this, 'documentation', operation.documentation);\n property(this, 'documentationUrl', operation.documentationUrl);\n }\n\n // idempotentMembers only tracks top-level input shapes\n memoizedProperty(this, 'idempotentMembers', function() {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n if (!input.members) {\n return idempotentMembers;\n }\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n return idempotentMembers;\n });\n\n memoizedProperty(this, 'hasEventOutput', function() {\n var output = self.output;\n return hasEventStream(output);\n });\n}\n\nfunction hasEventStream(topLevelShape) {\n var members = topLevelShape.members;\n var payload = topLevelShape.payload;\n\n if (!topLevelShape.members) {\n return false;\n }\n\n if (payload) {\n var payloadMember = members[payload];\n return payloadMember.isEventStream;\n }\n\n // check if any member is an event stream\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = Operation;\n","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","var Collection = require('./collection');\n\nvar util = require('../util');\n\nfunction property(obj, name, value) {\n if (value !== null && value !== undefined) {\n util.property.apply(this, arguments);\n }\n}\n\nfunction memoizedProperty(obj, name) {\n if (!obj.constructor.prototype[name]) {\n util.memoizedProperty.apply(this, arguments);\n }\n}\n\nfunction Shape(shape, options, memberName) {\n options = options || {};\n\n property(this, 'shape', shape.shape);\n property(this, 'api', options.api, false);\n property(this, 'type', shape.type);\n property(this, 'enum', shape.enum);\n property(this, 'min', shape.min);\n property(this, 'max', shape.max);\n property(this, 'pattern', shape.pattern);\n property(this, 'location', shape.location || this.location || 'body');\n property(this, 'name', this.name || shape.xmlName || shape.queryName ||\n shape.locationName || memberName);\n property(this, 'isStreaming', shape.streaming || this.isStreaming || false);\n property(this, 'requiresLength', shape.requiresLength, false);\n property(this, 'isComposite', shape.isComposite || false);\n property(this, 'isShape', true, false);\n property(this, 'isQueryName', Boolean(shape.queryName), false);\n property(this, 'isLocationName', Boolean(shape.locationName), false);\n property(this, 'isIdempotent', shape.idempotencyToken === true);\n property(this, 'isJsonValue', shape.jsonvalue === true);\n property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true);\n property(this, 'isEventStream', Boolean(shape.eventstream), false);\n property(this, 'isEvent', Boolean(shape.event), false);\n property(this, 'isEventPayload', Boolean(shape.eventpayload), false);\n property(this, 'isEventHeader', Boolean(shape.eventheader), false);\n property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false);\n property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false);\n property(this, 'hostLabel', Boolean(shape.hostLabel), false);\n\n if (options.documentation) {\n property(this, 'documentation', shape.documentation);\n property(this, 'documentationUrl', shape.documentationUrl);\n }\n\n if (shape.xmlAttribute) {\n property(this, 'isXmlAttribute', shape.xmlAttribute || false);\n }\n\n // type conversion and parsing\n property(this, 'defaultValue', null);\n this.toWireFormat = function(value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n this.toType = function(value) { return value; };\n}\n\n/**\n * @api private\n */\nShape.normalizedTypes = {\n character: 'string',\n double: 'float',\n long: 'integer',\n short: 'integer',\n biginteger: 'integer',\n bigdecimal: 'float',\n blob: 'binary'\n};\n\n/**\n * @api private\n */\nShape.types = {\n 'structure': StructureShape,\n 'list': ListShape,\n 'map': MapShape,\n 'boolean': BooleanShape,\n 'timestamp': TimestampShape,\n 'float': FloatShape,\n 'integer': IntegerShape,\n 'string': StringShape,\n 'base64': Base64Shape,\n 'binary': BinaryShape\n};\n\nShape.resolve = function resolve(shape, options) {\n if (shape.shape) {\n var refShape = options.api.shapes[shape.shape];\n if (!refShape) {\n throw new Error('Cannot find shape reference: ' + shape.shape);\n }\n\n return refShape;\n } else {\n return null;\n }\n};\n\nShape.create = function create(shape, options, memberName) {\n if (shape.isShape) return shape;\n\n var refShape = Shape.resolve(shape, options);\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function(name) {\n return !name.match(/documentation/);\n });\n }\n\n // create an inline shape with extra members\n var InlineShape = function() {\n refShape.constructor.call(this, shape, options, memberName);\n };\n InlineShape.prototype = refShape;\n return new InlineShape();\n } else {\n // set type if not set\n if (!shape.type) {\n if (shape.members) shape.type = 'structure';\n else if (shape.member) shape.type = 'list';\n else if (shape.key) shape.type = 'map';\n else shape.type = 'string';\n }\n\n // normalize types\n var origType = shape.type;\n if (Shape.normalizedTypes[shape.type]) {\n shape.type = Shape.normalizedTypes[shape.type];\n }\n\n if (Shape.types[shape.type]) {\n return new Shape.types[shape.type](shape, options, memberName);\n } else {\n throw new Error('Unrecognized shape type: ' + origType);\n }\n }\n};\n\nfunction CompositeShape(shape) {\n Shape.apply(this, arguments);\n property(this, 'isComposite', true);\n\n if (shape.flattened) {\n property(this, 'flattened', shape.flattened || false);\n }\n}\n\nfunction StructureShape(shape, options) {\n var self = this;\n var requiredMap = null, firstInit = !this.isShape;\n\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function() { return false; });\n property(this, 'isDocument', Boolean(shape.document));\n }\n\n if (shape.members) {\n property(this, 'members', new Collection(shape.members, options, function(name, member) {\n return Shape.create(member, options, name);\n }));\n memoizedProperty(this, 'memberNames', function() {\n return shape.xmlOrder || Object.keys(shape.members);\n });\n\n if (shape.event) {\n memoizedProperty(this, 'eventPayloadMemberName', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n // iterate over members to find ones that are event payloads\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventPayload) {\n return memberNames[i];\n }\n }\n });\n\n memoizedProperty(this, 'eventHeaderMemberNames', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = [];\n // iterate over members to find ones that are event headers\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventHeader) {\n eventHeaderMemberNames.push(memberNames[i]);\n }\n }\n return eventHeaderMemberNames;\n });\n }\n }\n\n if (shape.required) {\n property(this, 'required', shape.required);\n property(this, 'isRequired', function(name) {\n if (!requiredMap) {\n requiredMap = {};\n for (var i = 0; i < shape.required.length; i++) {\n requiredMap[shape.required[i]] = true;\n }\n }\n\n return requiredMap[name];\n }, false, true);\n }\n\n property(this, 'resultWrapper', shape.resultWrapper || null);\n\n if (shape.payload) {\n property(this, 'payload', shape.payload);\n }\n\n if (typeof shape.xmlNamespace === 'string') {\n property(this, 'xmlNamespaceUri', shape.xmlNamespace);\n } else if (typeof shape.xmlNamespace === 'object') {\n property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);\n property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);\n }\n}\n\nfunction ListShape(shape, options) {\n var self = this, firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return []; });\n }\n\n if (shape.member) {\n memoizedProperty(this, 'member', function() {\n return Shape.create(shape.member, options);\n });\n }\n\n if (this.flattened) {\n var oldName = this.name;\n memoizedProperty(this, 'name', function() {\n return self.member.name || oldName;\n });\n }\n}\n\nfunction MapShape(shape, options) {\n var firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'key', Shape.create({type: 'string'}, options));\n property(this, 'value', Shape.create({type: 'string'}, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function() {\n return Shape.create(shape.key, options);\n });\n }\n if (shape.value) {\n memoizedProperty(this, 'value', function() {\n return Shape.create(shape.value, options);\n });\n }\n}\n\nfunction TimestampShape(shape) {\n var self = this;\n Shape.apply(this, arguments);\n\n if (shape.timestampFormat) {\n property(this, 'timestampFormat', shape.timestampFormat);\n } else if (self.isTimestampFormatSet && this.timestampFormat) {\n property(this, 'timestampFormat', this.timestampFormat);\n } else if (this.location === 'header') {\n property(this, 'timestampFormat', 'rfc822');\n } else if (this.location === 'querystring') {\n property(this, 'timestampFormat', 'iso8601');\n } else if (this.api) {\n switch (this.api.protocol) {\n case 'json':\n case 'rest-json':\n property(this, 'timestampFormat', 'unixTimestamp');\n break;\n case 'rest-xml':\n case 'query':\n case 'ec2':\n property(this, 'timestampFormat', 'iso8601');\n break;\n }\n }\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n if (typeof value.toUTCString === 'function') return value;\n return typeof value === 'string' || typeof value === 'number' ?\n util.date.parseTimestamp(value) : null;\n };\n\n this.toWireFormat = function(value) {\n return util.date.format(value, self.timestampFormat);\n };\n}\n\nfunction StringShape() {\n Shape.apply(this, arguments);\n\n var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n this.toType = function(value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ?\n value || '' : value;\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ?\n value.toString() : value;\n };\n\n this.toWireFormat = function(value) {\n return this.isJsonValue ? JSON.stringify(value) : value;\n };\n}\n\nfunction FloatShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseFloat(value);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction IntegerShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseInt(value, 10);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n this.toType = function(value) {\n var buf = util.base64.decode(value);\n if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') {\n /* Node.js can create a Buffer that is not isolated.\n * i.e. buf.byteLength !== buf.buffer.byteLength\n * This means that the sensitive data is accessible to anyone with access to buf.buffer.\n * If this is the node shared Buffer, then other code within this process _could_ find this secret.\n * Copy sensitive data to an isolated Buffer and zero the sensitive data.\n * While this is safe to do here, copying this code somewhere else may produce unexpected results.\n */\n var secureBuf = util.Buffer.alloc(buf.length, buf);\n buf.fill(0);\n buf = secureBuf;\n }\n return buf;\n };\n this.toWireFormat = util.base64.encode;\n}\n\nfunction Base64Shape() {\n BinaryShape.apply(this, arguments);\n}\n\nfunction BooleanShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (typeof value === 'boolean') return value;\n if (value === null || value === undefined) return null;\n return value === 'true';\n };\n}\n\n/**\n * @api private\n */\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n\n/**\n * @api private\n */\nmodule.exports = Shape;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","var util = require('../util');\nvar AWS = require('../core');\n\n/**\n * Prepend prefix defined by API model to endpoint that's already\n * constructed. This feature does not apply to operations using\n * endpoint discovery and can be disabled.\n * @api private\n */\nfunction populateHostPrefix(request) {\n var enabled = request.service.config.hostPrefixEnabled;\n if (!enabled) return request;\n var operationModel = request.service.api.operations[request.operation];\n //don't marshal host prefix when operation has endpoint discovery traits\n if (hasEndpointDiscover(request)) return request;\n if (operationModel.endpoint && operationModel.endpoint.hostPrefix) {\n var hostPrefixNotation = operationModel.endpoint.hostPrefix;\n var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input);\n prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix);\n validateHostname(request.httpRequest.endpoint.hostname);\n }\n return request;\n}\n\n/**\n * @api private\n */\nfunction hasEndpointDiscover(request) {\n var api = request.service.api;\n var operationModel = api.operations[request.operation];\n var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name));\n return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true);\n}\n\n/**\n * @api private\n */\nfunction expandHostPrefix(hostPrefixNotation, params, shape) {\n util.each(shape.members, function(name, member) {\n if (member.hostLabel === true) {\n if (typeof params[name] !== 'string' || params[name] === '') {\n throw util.error(new Error(), {\n message: 'Parameter ' + name + ' should be a non-empty string.',\n code: 'InvalidParameter'\n });\n }\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n\n/**\n * @api private\n */\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n\n/**\n * @api private\n */\nfunction validateHostname(hostname) {\n var labels = hostname.split('.');\n //Reference: https://tools.ietf.org/html/rfc1123#section-2\n var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]$/;\n util.arrayEach(labels, function(label) {\n if (!label.length || label.length < 1 || label.length > 63) {\n throw util.error(new Error(), {\n code: 'ValidationError',\n message: 'Hostname label length should be between 1 to 63 characters, inclusive.'\n });\n }\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(),\n {code: 'ValidationError', message: label + ' is not hostname compatible.'});\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n\n if (api.awsQueryCompatible) {\n if (!httpRequest.params) {\n httpRequest.params = {};\n }\n // because Query protocol does this.\n Object.assign(httpRequest.params, req.params);\n }\n\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n\n // The minimized models do not have error shapes, so\n // without expanding the model size, it's not possible\n // to validate the response shape (members) or\n // check if any are sensitive to logging.\n\n // Assign the fields as non-enumerable, allowing specific access only.\n for (var key in e || {}) {\n if (key === 'code' || key === 'message') {\n continue;\n }\n error['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(error, key, {\n value: e[key],\n enumerable: false,\n writable: true\n });\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar QueryParamSerializer = require('../query/query_param_serializer');\nvar Shape = require('../model/shape');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var operation = req.service.api.operations[req.operation];\n var httpRequest = req.httpRequest;\n httpRequest.headers['Content-Type'] =\n 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n };\n\n // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n var builder = new QueryParamSerializer();\n builder.serialize(req.params, operation.input, function(name, value) {\n httpRequest.params[name] = value;\n });\n httpRequest.body = util.queryParamsToString(httpRequest.params);\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data, body = resp.httpResponse.body.toString();\n if (body.match('= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var util = require('../util');\nvar Rest = require('./rest');\nvar Json = require('./json');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\n\nvar METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE'];\n\nfunction unsetContentLength(req) {\n var payloadMember = util.getRequestPayloadShape(req);\n if (\n payloadMember === undefined &&\n METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0\n ) {\n delete req.httpRequest.headers['Content-Length'];\n }\n}\n\nfunction populateBody(req) {\n var builder = new JsonBuilder();\n var input = req.service.api.operations[req.operation].input;\n\n if (input.payload) {\n var params = {};\n var payloadShape = input.members[input.payload];\n params = req.params[input.payload];\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params || {}, payloadShape);\n applyContentTypeHeader(req);\n } else if (params !== undefined) {\n // non-JSON payload\n req.httpRequest.body = params;\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n req.httpRequest.body = builder.build(req.params, input);\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n if (!req.httpRequest.headers['Content-Type']) {\n var type = isBinary ? 'binary/octet-stream' : 'application/json';\n req.httpRequest.headers['Content-Type'] = type;\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD/DELETE\n if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Json.extractError(resp);\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var req = resp.request;\n var operation = req.service.api.operations[req.operation];\n var rules = req.service.api.operations[req.operation].output || {};\n var parser;\n var hasEventOutput = operation.hasEventOutput;\n\n if (rules.payload) {\n var payloadMember = rules.members[rules.payload];\n var body = resp.httpResponse.body;\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {\n var parser = new JsonParser();\n resp.data[rules.payload] = parser.parse(body, payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[rules.payload] = body;\n } else {\n resp.data[rules.payload] = payloadMember.toType(body);\n }\n } else {\n var data = resp.data;\n Json.extractData(resp);\n resp.data = util.merge(data, resp.data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n unsetContentLength: unsetContentLength\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\n\nfunction populateBody(req) {\n var input = req.service.api.operations[req.operation].input;\n var builder = new AWS.XML.Builder();\n var params = req.params;\n\n var payload = input.payload;\n if (payload) {\n var payloadMember = input.members[payload];\n params = params[payload];\n if (params === undefined) return;\n\n if (payloadMember.type === 'structure') {\n var rootElement = payloadMember.name;\n req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);\n } else { // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name ||\n input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n\n var data;\n try {\n data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());\n } catch (e) {\n data = {\n Code: resp.httpResponse.statusCode,\n Message: resp.httpResponse.statusMessage\n };\n }\n\n if (data.Errors) data = data.Errors;\n if (data.Error) data = data.Error;\n if (data.Code) {\n resp.error = util.error(new Error(), {\n code: data.Code,\n message: data.Message\n });\n } else {\n resp.error = util.error(new Error(), {\n code: resp.httpResponse.statusCode,\n message: null\n });\n }\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var parser;\n var req = resp.request;\n var body = resp.httpResponse.body;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n var hasEventOutput = operation.hasEventOutput;\n\n var payload = output.payload;\n if (payload) {\n var payloadMember = output.members[payload];\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure') {\n parser = new AWS.XML.Parser();\n resp.data[payload] = parser.parse(body.toString(), payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[payload] = body;\n } else {\n resp.data[payload] = payloadMember.toType(body);\n }\n } else if (body.length > 0) {\n parser = new AWS.XML.Parser();\n var data = parser.parse(body.toString(), output);\n util.update(resp.data, data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var util = require('../util');\n\nfunction QueryParamSerializer() {\n}\n\nQueryParamSerializer.prototype.serialize = function(params, shape, fn) {\n serializeStructure('', params, shape, fn);\n};\n\nfunction ucfirst(shape) {\n if (shape.isQueryName || shape.api.protocol !== 'ec2') {\n return shape.name;\n } else {\n return shape.name[0].toUpperCase() + shape.name.substr(1);\n }\n}\n\nfunction serializeStructure(prefix, struct, rules, fn) {\n util.each(rules.members, function(name, member) {\n var value = struct[name];\n if (value === null || value === undefined) return;\n\n var memberName = ucfirst(member);\n memberName = prefix ? prefix + '.' + memberName : memberName;\n serializeMember(memberName, value, member, fn);\n });\n}\n\nfunction serializeMap(name, map, rules, fn) {\n var i = 1;\n util.each(map, function (key, value) {\n var prefix = rules.flattened ? '.' : '.entry.';\n var position = prefix + (i++) + '.';\n var keyName = position + (rules.key.name || 'key');\n var valueName = position + (rules.value.name || 'value');\n serializeMember(name + keyName, key, rules.key, fn);\n serializeMember(name + valueName, value, rules.value, fn);\n });\n}\n\nfunction serializeList(name, list, rules, fn) {\n var memberRules = rules.member || {};\n\n if (list.length === 0) {\n fn.call(this, name, null);\n return;\n }\n\n util.arrayEach(list, function (v, n) {\n var suffix = '.' + (n + 1);\n if (rules.api.protocol === 'ec2') {\n // Do nothing for EC2\n suffix = suffix + ''; // make linter happy\n } else if (rules.flattened) {\n if (memberRules.name) {\n var parts = name.split('.');\n parts.pop();\n parts.push(ucfirst(memberRules));\n name = parts.join('.');\n }\n } else {\n suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix;\n }\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n if (rules.type === 'structure') {\n serializeStructure(name, value, rules, fn);\n } else if (rules.type === 'list') {\n serializeList(name, value, rules, fn);\n } else if (rules.type === 'map') {\n serializeMap(name, value, rules, fn);\n } else {\n fn(name, rules.toWireFormat(value).toString());\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = QueryParamSerializer;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar service = null;\n\n/**\n * @api private\n */\nvar api = {\n signatureVersion: 'v4',\n signingName: 'rds-db',\n operations: {}\n};\n\n/**\n * @api private\n */\nvar requiredAuthTokenOptions = {\n region: 'string',\n hostname: 'string',\n port: 'number',\n username: 'string'\n};\n\n/**\n * A signer object can be used to generate an auth token to a database.\n */\nAWS.RDS.Signer = AWS.util.inherit({\n /**\n * Creates a signer object can be used to generate an auth token.\n *\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * @option options hostname [String] the hostname of the database to connect to.\n * @option options port [Number] the port number the database is listening on.\n * @option options region [String] the region the database is located in.\n * @option options username [String] the username to login as.\n * @example Passing in options to constructor\n * var signer = new AWS.RDS.Signer({\n * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}),\n * region: 'us-east-1',\n * hostname: 'db.us-east-1.rds.amazonaws.com',\n * port: 8000,\n * username: 'name'\n * });\n */\n constructor: function Signer(options) {\n this.options = options || {};\n },\n\n /**\n * @api private\n * Strips the protocol from a url.\n */\n convertUrlToAuthToken: function convertUrlToAuthToken(url) {\n // we are always using https as the protocol\n var protocol = 'https://';\n if (url.indexOf(protocol) === 0) {\n return url.substring(protocol.length);\n }\n },\n\n /**\n * @overload getAuthToken(options = {}, [callback])\n * Generate an auth token to a database.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @param options [map] The fields to use when generating an auth token.\n * Any options specified here will be merged on top of any options passed\n * to AWS.RDS.Signer:\n *\n * * **credentials** (AWS.Credentials) — the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * * **hostname** (String) — the hostname of the database to connect to.\n * * **port** (Number) — the port number the database is listening on.\n * * **region** (String) — the region the database is located in.\n * * **username** (String) — the username to login as.\n * @return [String] if called synchronously (with no callback), returns the\n * auth token.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, token)\n * If a callback is supplied, it is called when an auth token has been generated.\n * @param err [Error] the error object returned from the signer.\n * @param token [String] the auth token.\n *\n * @example Generating an auth token synchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * var token = signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * });\n * @example Generating an auth token asynchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * }, function(err, token) {\n * if (err) {\n * // handle error\n * } else {\n * // use token\n * }\n * });\n *\n */\n getAuthToken: function getAuthToken(options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = {};\n }\n var self = this;\n var hasCallback = typeof callback === 'function';\n // merge options with existing options\n options = AWS.util.merge(this.options, options);\n // validate options\n var optionsValidation = this.validateAuthTokenOptions(options);\n if (optionsValidation !== true) {\n if (hasCallback) {\n return callback(optionsValidation, null);\n }\n throw optionsValidation;\n }\n\n // 15 minutes\n var expires = 900;\n // create service to generate a request from\n var serviceOptions = {\n region: options.region,\n endpoint: new AWS.Endpoint(options.hostname + ':' + options.port),\n paramValidation: false,\n signatureVersion: 'v4'\n };\n if (options.credentials) {\n serviceOptions.credentials = options.credentials;\n }\n service = new AWS.Service(serviceOptions);\n // ensure the SDK is using sigv4 signing (config is not enough)\n service.api = api;\n\n var request = service.makeRequest();\n // add listeners to request to properly build auth token\n this.modifyRequestForAuthToken(request, options);\n\n if (hasCallback) {\n request.presign(expires, function(err, url) {\n if (url) {\n url = self.convertUrlToAuthToken(url);\n }\n callback(err, url);\n });\n } else {\n var url = request.presign(expires);\n return this.convertUrlToAuthToken(url);\n }\n },\n\n /**\n * @api private\n * Modifies a request to allow the presigner to generate an auth token.\n */\n modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) {\n request.on('build', request.buildAsGet);\n var httpRequest = request.httpRequest;\n httpRequest.body = AWS.util.queryParamsToString({\n Action: 'connect',\n DBUser: options.username\n });\n },\n\n /**\n * @api private\n * Validates that the options passed in contain all the keys with values of the correct type that\n * are needed to generate an auth token.\n */\n validateAuthTokenOptions: function validateAuthTokenOptions(options) {\n // iterate over all keys in options\n var message = '';\n options = options || {};\n for (var key in requiredAuthTokenOptions) {\n if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) {\n continue;\n }\n if (typeof options[key] !== requiredAuthTokenOptions[key]) {\n message += 'option \\'' + key + '\\' should have been type \\'' + requiredAuthTokenOptions[key] + '\\', was \\'' + typeof options[key] + '\\'.\\n';\n }\n }\n if (message.length) {\n return AWS.util.error(new Error(), {\n code: 'InvalidParameter',\n message: message\n });\n }\n return true;\n }\n});\n","module.exports = {\n //provide realtime clock for performance measurement\n now: function now() {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n }\n};\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","var util = require('./util');\nvar regionConfig = require('./region_config_data.json');\n\nfunction generateRegionPrefix(region) {\n if (!region) return null;\n var parts = region.split('-');\n if (parts.length < 3) return null;\n return parts.slice(0, parts.length - 2).join('-') + '-*';\n}\n\nfunction derivedKeys(service) {\n var region = service.config.region;\n var regionPrefix = generateRegionPrefix(region);\n var endpointPrefix = service.api.endpointPrefix;\n\n return [\n [region, endpointPrefix],\n [regionPrefix, endpointPrefix],\n [region, '*'],\n [regionPrefix, '*'],\n ['*', endpointPrefix],\n [region, 'internal-*'],\n ['*', '*']\n ].map(function(item) {\n return item[0] && item[1] ? item.join('/') : null;\n });\n}\n\nfunction applyConfig(service, config) {\n util.each(config, function(key, value) {\n if (key === 'globalEndpoint') return;\n if (service.config[key] === undefined || service.config[key] === null) {\n service.config[key] = value;\n }\n });\n}\n\nfunction configureEndpoint(service) {\n var keys = derivedKeys(service);\n var useFipsEndpoint = service.config.useFipsEndpoint;\n var useDualstackEndpoint = service.config.useDualstackEndpoint;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n var rules = useFipsEndpoint\n ? useDualstackEndpoint\n ? regionConfig.dualstackFipsRules\n : regionConfig.fipsRules\n : useDualstackEndpoint\n ? regionConfig.dualstackRules\n : regionConfig.rules;\n\n if (Object.prototype.hasOwnProperty.call(rules, key)) {\n var config = rules[key];\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n }\n\n // set global endpoint\n service.isGlobalEndpoint = !!config.globalEndpoint;\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n }\n\n // signature version\n if (!config.signatureVersion) {\n // Note: config is a global object and should not be mutated here.\n // However, we are retaining this line for backwards compatibility.\n // The non-v4 signatureVersion will be set in a copied object below.\n config.signatureVersion = 'v4';\n }\n\n var useBearer = (service.api && service.api.signatureVersion) === 'bearer';\n\n // merge config\n applyConfig(service, Object.assign(\n {},\n config,\n { signatureVersion: useBearer ? 'bearer' : config.signatureVersion }\n ));\n return;\n }\n }\n}\n\nfunction getEndpointSuffix(region) {\n var regionRegexes = {\n '^(us|eu|ap|sa|ca|me)\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^cn\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com.cn',\n '^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$': 'c2s.ic.gov',\n '^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$': 'sc2s.sgov.gov'\n };\n var defaultSuffix = 'amazonaws.com';\n var regexes = Object.keys(regionRegexes);\n for (var i = 0; i < regexes.length; i++) {\n var regionPattern = RegExp(regexes[i]);\n var dnsSuffix = regionRegexes[regexes[i]];\n if (regionPattern.test(region)) return dnsSuffix;\n }\n return defaultSuffix;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix,\n};\n","var AWS = require('./core');\nvar AcceptorStateMachine = require('./state_machine');\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nvar hardErrorStates = {success: 1, error: 1, complete: 1};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\nfsm.setupStates = function() {\n var transition = function(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\n\n self.emit(self._asm.currentState, function(err) {\n if (err) {\n if (isTerminalState(self)) {\n if (domain && self.domain instanceof domain.Domain) {\n err.domainEmitter = self;\n err.domain = self.domain;\n err.domainThrown = false;\n self.domain.emit('error', err);\n } else {\n throw err;\n }\n } else {\n self.response.error = err;\n done(err);\n }\n } else {\n done(self.response.error);\n }\n });\n\n };\n\n this.addState('validate', 'build', 'error', transition);\n this.addState('build', 'afterBuild', 'restart', transition);\n this.addState('afterBuild', 'sign', 'restart', transition);\n this.addState('sign', 'send', 'retry', transition);\n this.addState('retry', 'afterRetry', 'afterRetry', transition);\n this.addState('afterRetry', 'sign', 'error', transition);\n this.addState('send', 'validateResponse', 'retry', transition);\n this.addState('validateResponse', 'extractData', 'extractError', transition);\n this.addState('extractError', 'extractData', 'retry', transition);\n this.addState('extractData', 'success', 'retry', transition);\n this.addState('restart', 'build', 'error', transition);\n this.addState('success', 'complete', 'complete', transition);\n this.addState('error', 'complete', 'complete', transition);\n this.addState('complete', null, null, transition);\n};\nfsm.setupStates();\n\n/**\n * ## Asynchronous Requests\n *\n * All requests made through the SDK are asynchronous and use a\n * callback interface. Each service method that kicks off a request\n * returns an `AWS.Request` object that you can use to register\n * callbacks.\n *\n * For example, the following service method returns the request\n * object as \"request\", which can be used to register callbacks:\n *\n * ```javascript\n * // request is an AWS.Request object\n * var request = ec2.describeInstances();\n *\n * // register callbacks on request to retrieve response data\n * request.on('success', function(response) {\n * console.log(response.data);\n * });\n * ```\n *\n * When a request is ready to be sent, the {send} method should\n * be called:\n *\n * ```javascript\n * request.send();\n * ```\n *\n * Since registered callbacks may or may not be idempotent, requests should only\n * be sent once. To perform the same operation multiple times, you will need to\n * create multiple request objects, each with its own registered callbacks.\n *\n * ## Removing Default Listeners for Events\n *\n * Request objects are built with default listeners for the various events,\n * depending on the service type. In some cases, you may want to remove\n * some built-in listeners to customize behaviour. Doing this requires\n * access to the built-in listener functions, which are exposed through\n * the {AWS.EventListeners.Core} namespace. For instance, you may\n * want to customize the HTTP handler used when sending a request. In this\n * case, you can remove the built-in listener associated with the 'send'\n * event, the {AWS.EventListeners.Core.SEND} listener and add your own.\n *\n * ## Multiple Callbacks and Chaining\n *\n * You can register multiple callbacks on any request object. The\n * callbacks can be registered for different events, or all for the\n * same event. In addition, you can chain callback registration, for\n * example:\n *\n * ```javascript\n * request.\n * on('success', function(response) {\n * console.log(\"Success!\");\n * }).\n * on('error', function(error, response) {\n * console.log(\"Error!\");\n * }).\n * on('complete', function(response) {\n * console.log(\"Always!\");\n * }).\n * send();\n * ```\n *\n * The above example will print either \"Success! Always!\", or \"Error! Always!\",\n * depending on whether the request succeeded or not.\n *\n * @!attribute httpRequest\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpRequest] the raw HTTP request object\n * containing request headers and body information\n * sent by the service.\n *\n * @!attribute startTime\n * @readonly\n * @!group Operation Properties\n * @return [Date] the time that the request started\n *\n * @!group Request Building Events\n *\n * @!event validate(request)\n * Triggered when a request is being validated. Listeners\n * should throw an error if the request should not be sent.\n * @param request [Request] the request object being sent\n * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS\n * @see AWS.EventListeners.Core.VALIDATE_REGION\n * @example Ensuring that a certain parameter is set before sending a request\n * var req = s3.putObject(params);\n * req.on('validate', function() {\n * if (!req.params.Body.match(/^Hello\\s/)) {\n * throw new Error('Body must start with \"Hello \"');\n * }\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event build(request)\n * Triggered when the request payload is being built. Listeners\n * should fill the necessary information to send the request\n * over HTTP.\n * @param (see AWS.Request~validate)\n * @example Add a custom HTTP header to a request\n * var req = s3.putObject(params);\n * req.on('build', function() {\n * req.httpRequest.headers['Custom-Header'] = 'value';\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event sign(request)\n * Triggered when the request is being signed. Listeners should\n * add the correct authentication headers and/or adjust the body,\n * depending on the authentication mechanism being used.\n * @param (see AWS.Request~validate)\n *\n * @!group Request Sending Events\n *\n * @!event send(response)\n * Triggered when the request is ready to be sent. Listeners\n * should call the underlying transport layer to initiate\n * the sending of the request.\n * @param response [Response] the response object\n * @context [Request] the request object that was sent\n * @see AWS.EventListeners.Core.SEND\n *\n * @!event retry(response)\n * Triggered when a request failed and might need to be retried or redirected.\n * If the response is retryable, the listener should set the\n * `response.error.retryable` property to `true`, and optionally set\n * `response.error.retryDelay` to the millisecond delay for the next attempt.\n * In the case of a redirect, `response.error.redirect` should be set to\n * `true` with `retryDelay` set to an optional delay on the next request.\n *\n * If a listener decides that a request should not be retried,\n * it should set both `retryable` and `redirect` to false.\n *\n * Note that a retryable error will be retried at most\n * {AWS.Config.maxRetries} times (based on the service object's config).\n * Similarly, a request that is redirected will only redirect at most\n * {AWS.Config.maxRedirects} times.\n *\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @example Adding a custom retry for a 404 response\n * request.on('retry', function(response) {\n * // this resource is not yet available, wait 10 seconds to get it again\n * if (response.httpResponse.statusCode === 404 && response.error) {\n * response.error.retryable = true; // retry this error\n * response.error.retryDelay = 10000; // wait 10 seconds\n * }\n * });\n *\n * @!group Data Parsing Events\n *\n * @!event extractError(response)\n * Triggered on all non-2xx requests so that listeners can extract\n * error details from the response body. Listeners to this event\n * should set the `response.error` property.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event extractData(response)\n * Triggered in successful requests to allow listeners to\n * de-serialize the response body into `response.data`.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group Completion Events\n *\n * @!event success(response)\n * Triggered when the request completed successfully.\n * `response.data` will contain the response data and\n * `response.error` will be null.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event error(error, response)\n * Triggered when an error occurs at any point during the\n * request. `response.error` will contain details about the error\n * that occurred. `response.data` will be null.\n * @param error [Error] the error object containing details about\n * the error that occurred.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event complete(response)\n * Triggered whenever a request cycle completes. `response.error`\n * should be checked, since the request may have failed.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group HTTP Events\n *\n * @!event httpHeaders(statusCode, headers, response, statusMessage)\n * Triggered when headers are sent by the remote server\n * @param statusCode [Integer] the HTTP response code\n * @param headers [map] the response headers\n * @param (see AWS.Request~send)\n * @param statusMessage [String] A status message corresponding to the HTTP\n * response code\n * @context (see AWS.Request~send)\n *\n * @!event httpData(chunk, response)\n * Triggered when data is sent by the remote server\n * @param chunk [Buffer] the buffer data containing the next data chunk\n * from the server\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @see AWS.EventListeners.Core.HTTP_DATA\n *\n * @!event httpUploadProgress(progress, response)\n * Triggered when the HTTP request has uploaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpDownloadProgress(progress, response)\n * Triggered when the HTTP request has downloaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpError(error, response)\n * Triggered when the HTTP request failed\n * @param error [Error] the error object that was thrown\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event httpDone(response)\n * Triggered when the server is finished sending data\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @see AWS.Response\n */\nAWS.Request = inherit({\n\n /**\n * Creates a request for an operation on a given service with\n * a set of input parameters.\n *\n * @param service [AWS.Service] the service to perform the operation on\n * @param operation [String] the operation to perform on the service\n * @param params [Object] parameters to send to the operation.\n * See the operation's documentation for the format of the\n * parameters.\n */\n constructor: function Request(service, operation, params) {\n var endpoint = service.endpoint;\n var region = service.config.region;\n var customUserAgent = service.config.customUserAgent;\n\n if (service.signingRegion) {\n region = service.signingRegion;\n } else if (service.isGlobalEndpoint) {\n region = 'us-east-1';\n }\n\n this.domain = domain && domain.active;\n this.service = service;\n this.operation = operation;\n this.params = params || {};\n this.httpRequest = new AWS.HttpRequest(endpoint, region);\n this.httpRequest.appendToUserAgent(customUserAgent);\n this.startTime = service.getSkewCorrectedDate();\n\n this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\n\n AWS.SequentialExecutor.call(this);\n this.emit = this.emitEvent;\n },\n\n /**\n * @!group Sending a Request\n */\n\n /**\n * @overload send(callback = null)\n * Sends the request object.\n *\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @context [AWS.Request] the request object being sent.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n * @example Sending a request with a callback\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.send(function(err, data) { console.log(err, data); });\n * @example Sending a request with no callback (using event handlers)\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.on('complete', function(response) { ... }); // register a callback\n * request.send();\n */\n send: function send(callback) {\n if (callback) {\n // append to user agent\n this.httpRequest.appendToUserAgent('callback');\n this.on('complete', function (resp) {\n callback.call(resp, resp.error, resp.data);\n });\n }\n this.runTo();\n\n return this.response;\n },\n\n /**\n * @!method promise()\n * Sends the request and returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [Object] the de-serialized data returned from the request.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param error [Error] the error object returned from the request.\n * @return [Promise] A promise that represents the state of the request.\n * @example Sending a request using promises.\n * var request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * var result = request.promise();\n * result.then(function(data) { ... }, function(error) { ... });\n */\n\n /**\n * @api private\n */\n build: function build(callback) {\n return this.runTo('send', callback);\n },\n\n /**\n * @api private\n */\n runTo: function runTo(state, done) {\n this._asm.runTo(state, done, this);\n return this;\n },\n\n /**\n * Aborts a request, emitting the error and complete events.\n *\n * @!macro nobrowser\n * @example Aborting a request after sending\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload\n * };\n * var request = s3.putObject(params);\n * request.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(request.abort.bind(request), 1000);\n *\n * // prints \"Error: RequestAbortedError Request aborted by user\"\n * @return [AWS.Request] the same request object, for chaining.\n * @since v1.4.0\n */\n abort: function abort() {\n this.removeAllListeners('validateResponse');\n this.removeAllListeners('extractError');\n this.on('validateResponse', function addAbortedError(resp) {\n resp.error = AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream\n this.httpRequest.stream.abort();\n if (this.httpRequest._abortCallback) {\n this.httpRequest._abortCallback();\n } else {\n this.removeAllListeners('send'); // haven't sent yet, so let's not\n }\n }\n\n return this;\n },\n\n /**\n * Iterates over each page of results given a pageable request, calling\n * the provided callback with each page of data. After all pages have been\n * retrieved, the callback is called with `null` data.\n *\n * @note This operation can generate multiple requests to a service.\n * @example Iterating over multiple pages of objects in an S3 bucket\n * var pages = 1;\n * s3.listObjects().eachPage(function(err, data) {\n * if (err) return;\n * console.log(\"Page\", pages++);\n * console.log(data);\n * });\n * @example Iterating over multiple pages with an asynchronous callback\n * s3.listObjects(params).eachPage(function(err, data, done) {\n * doSomethingAsyncAndOrExpensive(function() {\n * // The next page of results isn't fetched until done is called\n * done();\n * });\n * });\n * @callback callback function(err, data, [doneCallback])\n * Called with each page of resulting data from the request. If the\n * optional `doneCallback` is provided in the function, it must be called\n * when the callback is complete.\n *\n * @param err [Error] an error object, if an error occurred.\n * @param data [Object] a single page of response data. If there is no\n * more data, this object will be `null`.\n * @param doneCallback [Function] an optional done callback. If this\n * argument is defined in the function declaration, it should be called\n * when the next page is ready to be retrieved. This is useful for\n * controlling serial pagination across asynchronous operations.\n * @return [Boolean] if the callback returns `false`, pagination will\n * stop.\n *\n * @see AWS.Request.eachItem\n * @see AWS.Response.nextPage\n * @since v1.4.0\n */\n eachPage: function eachPage(callback) {\n // Make all callbacks async-ish\n callback = AWS.util.fn.makeAsync(callback, 3);\n\n function wrappedCallback(response) {\n callback.call(response, response.error, response.data, function (result) {\n if (result === false) return;\n\n if (response.hasNextPage()) {\n response.nextPage().on('complete', wrappedCallback).send();\n } else {\n callback.call(response, null, null, AWS.util.fn.noop);\n }\n });\n }\n\n this.on('complete', wrappedCallback).send();\n },\n\n /**\n * Enumerates over individual items of a request, paging the responses if\n * necessary.\n *\n * @api experimental\n * @since v1.4.0\n */\n eachItem: function eachItem(callback) {\n var self = this;\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\n\n var config = self.service.paginationConfig(self.operation);\n var resultKey = config.resultKey;\n if (Array.isArray(resultKey)) resultKey = resultKey[0];\n var items = jmespath.search(data, resultKey);\n var continueIteration = true;\n AWS.util.arrayEach(items, function(item) {\n continueIteration = callback(null, item);\n if (continueIteration === false) {\n return AWS.util.abort;\n }\n });\n return continueIteration;\n }\n\n this.eachPage(wrappedCallback);\n },\n\n /**\n * @return [Boolean] whether the operation can return multiple pages of\n * response data.\n * @see AWS.Response.eachPage\n * @since v1.4.0\n */\n isPageable: function isPageable() {\n return this.service.paginationConfig(this.operation) ? true : false;\n },\n\n /**\n * Sends the request and converts the request object into a readable stream\n * that can be read from or piped into a writable stream.\n *\n * @note The data read from a readable stream contains only\n * the raw HTTP body contents.\n * @example Manually reading from a stream\n * request.createReadStream().on('data', function(data) {\n * console.log(\"Got data:\", data.toString());\n * });\n * @example Piping a request body into a file\n * var out = fs.createWriteStream('/path/to/outfile.jpg');\n * s3.service.getObject(params).createReadStream().pipe(out);\n * @return [Stream] the readable stream object that can be piped\n * or read from (by registering 'data' event listeners).\n * @!macro nobrowser\n */\n createReadStream: function createReadStream() {\n var streams = AWS.util.stream;\n var req = this;\n var stream = null;\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n stream = new streams.PassThrough();\n process.nextTick(function() { req.send(); });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n\n stream.sent = false;\n stream.on('newListener', function(event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function() { req.send(); });\n }\n });\n }\n\n this.on('error', function(err) {\n stream.emit('error', err);\n });\n\n this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {\n if (statusCode < 300) {\n req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);\n req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);\n req.on('httpError', function streamHttpError(error) {\n resp.error = error;\n resp.error.retryable = false;\n });\n\n var shouldCheckContentLength = false;\n var expectedLen;\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\n if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) {\n shouldCheckContentLength = true;\n var receivedLen = 0;\n }\n\n var checkContentLengthAndEmit = function checkContentLengthAndEmit() {\n if (shouldCheckContentLength && receivedLen !== expectedLen) {\n stream.emit('error', AWS.util.error(\n new Error('Stream content length mismatch. Received ' +\n receivedLen + ' of ' + expectedLen + ' bytes.'),\n { code: 'StreamContentLengthMismatch' }\n ));\n } else if (AWS.HttpClient.streamsApiVersion === 2) {\n stream.end();\n } else {\n stream.emit('end');\n }\n };\n\n var httpStream = resp.httpResponse.createUnbufferedStream();\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n if (shouldCheckContentLength) {\n var lengthAccumulator = new streams.PassThrough();\n lengthAccumulator._write = function(chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\n return streams.PassThrough.prototype._write.apply(this, arguments);\n };\n\n lengthAccumulator.on('end', checkContentLengthAndEmit);\n stream.on('error', function(err) {\n shouldCheckContentLength = false;\n httpStream.unpipe(lengthAccumulator);\n lengthAccumulator.emit('end');\n lengthAccumulator.end();\n });\n httpStream.pipe(lengthAccumulator).pipe(stream, { end: false });\n } else {\n httpStream.pipe(stream);\n }\n } else {\n\n if (shouldCheckContentLength) {\n httpStream.on('data', function(arg) {\n if (arg && arg.length) {\n receivedLen += arg.length;\n }\n });\n }\n\n httpStream.on('data', function(arg) {\n stream.emit('data', arg);\n });\n httpStream.on('end', checkContentLengthAndEmit);\n }\n\n httpStream.on('error', function(err) {\n shouldCheckContentLength = false;\n stream.emit('error', err);\n });\n }\n });\n\n return stream;\n },\n\n /**\n * @param [Array,Response] args This should be the response object,\n * or an array of args to send to the event.\n * @api private\n */\n emitEvent: function emit(eventName, args, done) {\n if (typeof args === 'function') { done = args; args = null; }\n if (!done) done = function() { };\n if (!args) args = this.eventParameters(eventName, this.response);\n\n var origEmit = AWS.SequentialExecutor.prototype.emit;\n origEmit.call(this, eventName, args, function (err) {\n if (err) this.response.error = err;\n done.call(this, err);\n });\n },\n\n /**\n * @api private\n */\n eventParameters: function eventParameters(eventName) {\n switch (eventName) {\n case 'restart':\n case 'validate':\n case 'sign':\n case 'build':\n case 'afterValidate':\n case 'afterBuild':\n return [this];\n case 'error':\n return [this.response.error, this.response];\n default:\n return [this.response];\n }\n },\n\n /**\n * @api private\n */\n presign: function presign(expires, callback) {\n if (!callback && typeof expires === 'function') {\n callback = expires;\n expires = null;\n }\n return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);\n },\n\n /**\n * @api private\n */\n isPresigned: function isPresigned() {\n return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires');\n },\n\n /**\n * @api private\n */\n toUnauthenticated: function toUnauthenticated() {\n this._unAuthenticated = true;\n this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);\n this.removeListener('sign', AWS.EventListeners.Core.SIGN);\n return this;\n },\n\n /**\n * @api private\n */\n toGet: function toGet() {\n if (this.service.api.protocol === 'query' ||\n this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\n return this;\n },\n\n /**\n * @api private\n */\n buildAsGet: function buildAsGet(request) {\n request.httpRequest.method = 'GET';\n request.httpRequest.path = request.service.endpoint.path +\n '?' + request.httpRequest.body;\n request.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete request.httpRequest.headers['Content-Length'];\n delete request.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @api private\n */\n haltHandlersOnError: function haltHandlersOnError() {\n this._haltHandlersOnError = true;\n }\n});\n\n/**\n * @api private\n */\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this;\n // append to user agent\n this.httpRequest.appendToUserAgent('promise');\n return new PromiseDependency(function(resolve, reject) {\n self.on('complete', function(resp) {\n if (resp.error) {\n reject(resp.error);\n } else {\n // define $response property so that it is not enumerable\n // this prevents circular reference errors when stringifying the JSON object\n resolve(Object.defineProperty(\n resp.data || {},\n '$response',\n {value: resp}\n ));\n }\n });\n self.runTo();\n });\n };\n};\n\n/**\n * @api private\n */\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\n\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);\n","/**\n * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You\n * may not use this file except in compliance with the License. A copy of\n * the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n */\n\nvar AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nfunction CHECK_ACCEPTORS(resp) {\n var waiter = resp.request._waiter;\n var acceptors = waiter.config.acceptors;\n var acceptorMatched = false;\n var state = 'retry';\n\n acceptors.forEach(function(acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\n }\n }\n });\n\n if (!acceptorMatched && resp.error) state = 'failure';\n\n if (state === 'success') {\n waiter.setSuccess(resp);\n } else {\n waiter.setError(resp, state === 'retry');\n }\n}\n\n/**\n * @api private\n */\nAWS.ResourceWaiter = inherit({\n /**\n * Waits for a given state on a service object\n * @param service [Service] the service object to wait on\n * @param state [String] the state (defined in waiter configuration) to wait\n * for.\n * @example Create a waiter for running EC2 instances\n * var ec2 = new AWS.EC2;\n * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning');\n */\n constructor: function constructor(service, state) {\n this.service = service;\n this.state = state;\n this.loadWaiterConfig(this.state);\n },\n\n service: null,\n\n state: null,\n\n config: null,\n\n matchers: {\n path: function(resp, expected, argument) {\n try {\n var result = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n return jmespath.strictDeepEqual(result,expected);\n },\n\n pathAll: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n if (!numResults) return false;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n return true;\n },\n\n pathAny: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n return false;\n },\n\n status: function(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return (typeof statusCode === 'number') && (statusCode === expected);\n },\n\n error: function(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n }\n // if expected is not string, can be boolean indicating presence of error\n return expected === !!resp.error;\n }\n },\n\n listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) {\n add('RETRY_CHECK', 'retry', function(resp) {\n var waiter = resp.request._waiter;\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\n\n add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS);\n }),\n\n /**\n * @return [AWS.Request]\n */\n wait: function wait(params, callback) {\n if (typeof params === 'function') {\n callback = params; params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\n delete params.$waiter;\n }\n\n var request = this.service.makeRequest(this.config.operation, params);\n request._waiter = this;\n request.response.maxRetries = this.config.maxAttempts;\n request.addListeners(this.listeners);\n\n if (callback) request.send(callback);\n return request;\n },\n\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\n },\n\n setError: function setError(resp, retryable) {\n resp.data = null;\n resp.error = AWS.util.error(resp.error || new Error(), {\n code: 'ResourceNotReady',\n message: 'Resource is not in the state ' + this.state,\n retryable: retryable\n });\n },\n\n /**\n * Loads waiter configuration from API configuration\n *\n * @api private\n */\n loadWaiterConfig: function loadWaiterConfig(state) {\n if (!this.service.api.waiters[state]) {\n throw new AWS.util.error(new Error(), {\n code: 'StateNotFoundError',\n message: 'State ' + state + ' not found.'\n });\n }\n\n this.config = AWS.util.copy(this.service.api.waiters[state]);\n }\n});\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","var AWS = require('../core');\nvar byteLength = AWS.util.string.byteLength;\nvar Buffer = AWS.util.Buffer;\n\n/**\n * The managed uploader allows for easy and efficient uploading of buffers,\n * blobs, or streams, using a configurable amount of concurrency to perform\n * multipart uploads where possible. This abstraction also enables uploading\n * streams of unknown size due to the use of multipart uploads.\n *\n * To construct a managed upload object, see the {constructor} function.\n *\n * ## Tracking upload progress\n *\n * The managed upload object can also track progress by attaching an\n * 'httpUploadProgress' listener to the upload manager. This event is similar\n * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress\n * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more\n * information.\n *\n * ## Handling Multipart Cleanup\n *\n * By default, this class will automatically clean up any multipart uploads\n * when an individual part upload fails. This behavior can be disabled in order\n * to manually handle failures by setting the `leavePartsOnError` configuration\n * option to `true` when initializing the upload object.\n *\n * @!event httpUploadProgress(progress)\n * Triggered when the uploader has uploaded more data.\n * @note The `total` property may not be set if the stream being uploaded has\n * not yet finished chunking. In this case the `total` will be undefined\n * until the total stream size is known.\n * @note This event will not be emitted in Node.js 0.8.x.\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload\n * size is known.\n * @context (see AWS.Request~send)\n */\nAWS.S3.ManagedUpload = AWS.util.inherit({\n /**\n * Creates a managed upload object with a set of configuration options.\n *\n * @note A \"Body\" parameter is required to be set prior to calling {send}.\n * @note In Node.js, sending \"Body\" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream}\n * may result in upload hangs. Using buffer stream is preferable.\n * @option options params [map] a map of parameters to pass to the upload\n * requests. The \"Body\" parameter is required to be specified either on\n * the service or in the params option.\n * @note ContentMD5 should not be provided when using the managed upload object.\n * Instead, setting \"computeChecksums\" to true will enable automatic ContentMD5 generation\n * by the managed upload object.\n * @option options queueSize [Number] (4) the size of the concurrent queue\n * manager to upload parts in parallel. Set to 1 for synchronous uploading\n * of parts. Note that the uploader will buffer at most queueSize * partSize\n * bytes into memory at any given time.\n * @option options partSize [Number] (5mb) the size in bytes for each\n * individual part to be uploaded. Adjust the part size to ensure the number\n * of parts does not exceed {maxTotalParts}. See {minPartSize} for the\n * minimum allowed part size.\n * @option options leavePartsOnError [Boolean] (false) whether to abort the\n * multipart upload if an error occurs. Set to true if you want to handle\n * failures manually.\n * @option options service [AWS.S3] an optional S3 service object to use for\n * requests. This object might have bound parameters used by the uploader.\n * @option options tags [Array] The tags to apply to the uploaded object.\n * Each tag should have a `Key` and `Value` keys.\n * @example Creating a default uploader for a stream object\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with concurrency of 1 and partSize of 10mb\n * var upload = new AWS.S3.ManagedUpload({\n * partSize: 10 * 1024 * 1024, queueSize: 1,\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with tags\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream},\n * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}]\n * });\n * @see send\n */\n constructor: function ManagedUpload(options) {\n var self = this;\n AWS.SequentialExecutor.call(self);\n self.body = null;\n self.sliceFn = null;\n self.callback = null;\n self.parts = {};\n self.completeInfo = [];\n self.fillQueue = function() {\n self.callback(new Error('Unsupported body payload ' + typeof self.body));\n };\n\n self.configure(options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n options = options || {};\n this.partSize = this.minPartSize;\n\n if (options.queueSize) this.queueSize = options.queueSize;\n if (options.partSize) this.partSize = options.partSize;\n if (options.leavePartsOnError) this.leavePartsOnError = true;\n if (options.tags) {\n if (!Array.isArray(options.tags)) {\n throw new Error('Tags must be specified as an array; ' +\n typeof options.tags + ' provided.');\n }\n this.tags = options.tags;\n }\n\n if (this.partSize < this.minPartSize) {\n throw new Error('partSize must be greater than ' +\n this.minPartSize);\n }\n\n this.service = options.service;\n this.bindServiceObject(options.params);\n this.validateBody();\n this.adjustTotalBytes();\n },\n\n /**\n * @api private\n */\n leavePartsOnError: false,\n\n /**\n * @api private\n */\n queueSize: 4,\n\n /**\n * @api private\n */\n partSize: null,\n\n /**\n * @readonly\n * @return [Number] the minimum number of bytes for an individual part\n * upload.\n */\n minPartSize: 1024 * 1024 * 5,\n\n /**\n * @readonly\n * @return [Number] the maximum allowed number of parts in a multipart upload.\n */\n maxTotalParts: 10000,\n\n /**\n * Initiates the managed upload for the payload.\n *\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * * `Location` (String) the URL of the uploaded object\n * * `ETag` (String) the ETag of the uploaded object\n * * `Bucket` (String) the bucket to which the object was uploaded\n * * `Key` (String) the key to which the object was uploaded\n * @example Sending a managed upload object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var upload = new AWS.S3.ManagedUpload({params: params});\n * upload.send(function(err, data) {\n * console.log(err, data);\n * });\n */\n send: function(callback) {\n var self = this;\n self.failed = false;\n self.callback = callback || function(err) { if (err) throw err; };\n\n var runFill = true;\n if (self.sliceFn) {\n self.fillQueue = self.fillBuffer;\n } else if (AWS.util.isNode()) {\n var Stream = AWS.util.stream.Stream;\n if (self.body instanceof Stream) {\n runFill = false;\n self.fillQueue = self.fillStream;\n self.partBuffers = [];\n self.body.\n on('error', function(err) { self.cleanup(err); }).\n on('readable', function() { self.fillQueue(); }).\n on('end', function() {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers;\n self.fillQueue.call(self);\n\n if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) {\n self.finishMultiPart();\n }\n });\n }\n }\n\n if (runFill) self.fillQueue.call(self);\n },\n\n /**\n * @!method promise()\n * Returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [map] The response data from the successful upload:\n * `Location` (String) the URL of the uploaded object\n * `ETag` (String) the ETag of the uploaded object\n * `Bucket` (String) the bucket to which the object was uploaded\n * `Key` (String) the key to which the object was uploaded\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] an error or null if no error occurred.\n * @return [Promise] A promise that represents the state of the upload request.\n * @example Sending an upload request using promises.\n * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream});\n * var promise = upload.promise();\n * promise.then(function(data) { ... }, function(err) { ... });\n */\n\n /**\n * Aborts a managed upload, including all concurrent upload requests.\n * @note By default, calling this function will cleanup a multipart upload\n * if one was created. To leave the multipart upload around after aborting\n * a request, configure `leavePartsOnError` to `true` in the {constructor}.\n * @note Calling {abort} in the browser environment will not abort any requests\n * that are already in flight. If a multipart upload was created, any parts\n * not yet uploaded will not be sent, and the multipart upload will be cleaned up.\n * @example Aborting an upload\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload\n * };\n * var upload = s3.upload(params);\n * upload.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(upload.abort.bind(upload), 1000);\n */\n abort: function() {\n var self = this;\n //abort putObject request\n if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) {\n self.singlePart.abort();\n } else {\n self.cleanup(AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n }));\n }\n },\n\n /**\n * @api private\n */\n validateBody: function validateBody() {\n var self = this;\n self.body = self.service.config.params.Body;\n if (typeof self.body === 'string') {\n self.body = AWS.util.buffer.toBuffer(self.body);\n } else if (!self.body) {\n throw new Error('params.Body is required');\n }\n self.sliceFn = AWS.util.arraySliceFn(self.body);\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(params) {\n params = params || {};\n var self = this;\n // bind parameters to new service object\n if (!self.service) {\n self.service = new AWS.S3({params: params});\n } else {\n // Create a new S3 client from the supplied client's constructor.\n var service = self.service;\n var config = AWS.util.copy(service.config);\n config.signatureVersion = service.getSignatureVersion();\n self.service = new service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, params);\n Object.defineProperty(self.service, '_originalConfig', {\n get: function() { return service._originalConfig; },\n enumerable: false,\n configurable: true\n });\n }\n },\n\n /**\n * @api private\n */\n adjustTotalBytes: function adjustTotalBytes() {\n var self = this;\n try { // try to get totalBytes\n self.totalBytes = byteLength(self.body);\n } catch (e) { }\n\n // try to adjust partSize if we know payload length\n if (self.totalBytes) {\n var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);\n if (newPartSize > self.partSize) self.partSize = newPartSize;\n } else {\n self.totalBytes = undefined;\n }\n },\n\n /**\n * @api private\n */\n isDoneChunking: false,\n\n /**\n * @api private\n */\n partPos: 0,\n\n /**\n * @api private\n */\n totalChunkedBytes: 0,\n\n /**\n * @api private\n */\n totalUploadedBytes: 0,\n\n /**\n * @api private\n */\n totalBytes: undefined,\n\n /**\n * @api private\n */\n numParts: 0,\n\n /**\n * @api private\n */\n totalPartNumbers: 0,\n\n /**\n * @api private\n */\n activeParts: 0,\n\n /**\n * @api private\n */\n doneParts: 0,\n\n /**\n * @api private\n */\n parts: null,\n\n /**\n * @api private\n */\n completeInfo: null,\n\n /**\n * @api private\n */\n failed: false,\n\n /**\n * @api private\n */\n multipartReq: null,\n\n /**\n * @api private\n */\n partBuffers: null,\n\n /**\n * @api private\n */\n partBufferLength: 0,\n\n /**\n * @api private\n */\n fillBuffer: function fillBuffer() {\n var self = this;\n var bodyLen = byteLength(self.body);\n\n if (bodyLen === 0) {\n self.isDoneChunking = true;\n self.numParts = 1;\n self.nextChunk(self.body);\n return;\n }\n\n while (self.activeParts < self.queueSize && self.partPos < bodyLen) {\n var endPos = Math.min(self.partPos + self.partSize, bodyLen);\n var buf = self.sliceFn.call(self.body, self.partPos, endPos);\n self.partPos += self.partSize;\n\n if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers + 1;\n }\n self.nextChunk(buf);\n }\n },\n\n /**\n * @api private\n */\n fillStream: function fillStream() {\n var self = this;\n if (self.activeParts >= self.queueSize) return;\n\n var buf = self.body.read(self.partSize - self.partBufferLength) ||\n self.body.read();\n if (buf) {\n self.partBuffers.push(buf);\n self.partBufferLength += buf.length;\n self.totalChunkedBytes += buf.length;\n }\n\n if (self.partBufferLength >= self.partSize) {\n // if we have single buffer we avoid copyfull concat\n var pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n\n // if we have more than partSize, push the rest back on the queue\n if (pbuf.length > self.partSize) {\n var rest = pbuf.slice(self.partSize);\n self.partBuffers.push(rest);\n self.partBufferLength += rest.length;\n pbuf = pbuf.slice(0, self.partSize);\n }\n\n self.nextChunk(pbuf);\n }\n\n if (self.isDoneChunking && !self.isDoneSending) {\n // if we have single buffer we avoid copyfull concat\n pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n self.totalBytes = self.totalChunkedBytes;\n self.isDoneSending = true;\n\n if (self.numParts === 0 || pbuf.length > 0) {\n self.numParts++;\n self.nextChunk(pbuf);\n }\n }\n\n self.body.read(0);\n },\n\n /**\n * @api private\n */\n nextChunk: function nextChunk(chunk) {\n var self = this;\n if (self.failed) return null;\n\n var partNumber = ++self.totalPartNumbers;\n if (self.isDoneChunking && partNumber === 1) {\n var params = {Body: chunk};\n if (this.tags) {\n params.Tagging = this.getTaggingHeader();\n }\n var req = self.service.putObject(params);\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);\n self.singlePart = req; //save the single part request\n return null;\n } else if (self.service.config.params.ContentMD5) {\n var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {\n code: 'InvalidDigest', retryable: false\n });\n\n self.cleanup(err);\n return null;\n }\n\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {\n return null; // Already uploaded this part.\n }\n\n self.activeParts++;\n if (!self.service.config.params.UploadId) {\n\n if (!self.multipartReq) { // create multipart\n self.multipartReq = self.service.createMultipartUpload();\n self.multipartReq.on('success', function(resp) {\n self.service.config.params.UploadId = resp.data.UploadId;\n self.multipartReq = null;\n });\n self.queueChunks(chunk, partNumber);\n self.multipartReq.on('error', function(err) {\n self.cleanup(err);\n });\n self.multipartReq.send();\n } else {\n self.queueChunks(chunk, partNumber);\n }\n } else { // multipart is created, just send\n self.uploadPart(chunk, partNumber);\n }\n },\n\n /**\n * @api private\n */\n getTaggingHeader: function getTaggingHeader() {\n var kvPairStrings = [];\n for (var i = 0; i < this.tags.length; i++) {\n kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' +\n AWS.util.uriEscape(this.tags[i].Value));\n }\n\n return kvPairStrings.join('&');\n },\n\n /**\n * @api private\n */\n uploadPart: function uploadPart(chunk, partNumber) {\n var self = this;\n\n var partParams = {\n Body: chunk,\n ContentLength: AWS.util.string.byteLength(chunk),\n PartNumber: partNumber\n };\n\n var partInfo = {ETag: null, PartNumber: partNumber};\n self.completeInfo[partNumber] = partInfo;\n\n var req = self.service.uploadPart(partParams);\n self.parts[partNumber] = req;\n req._lastUploadedBytes = 0;\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress);\n req.send(function(err, data) {\n delete self.parts[partParams.PartNumber];\n self.activeParts--;\n\n if (!err && (!data || !data.ETag)) {\n var message = 'No access to ETag property on response.';\n if (AWS.util.isBrowser()) {\n message += ' Check CORS configuration to expose ETag header.';\n }\n\n err = AWS.util.error(new Error(message), {\n code: 'ETagMissing', retryable: false\n });\n }\n if (err) return self.cleanup(err);\n //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304)\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null;\n partInfo.ETag = data.ETag;\n self.doneParts++;\n if (self.isDoneChunking && self.doneParts === self.totalPartNumbers) {\n self.finishMultiPart();\n } else {\n self.fillQueue.call(self);\n }\n });\n },\n\n /**\n * @api private\n */\n queueChunks: function queueChunks(chunk, partNumber) {\n var self = this;\n self.multipartReq.on('success', function() {\n self.uploadPart(chunk, partNumber);\n });\n },\n\n /**\n * @api private\n */\n cleanup: function cleanup(err) {\n var self = this;\n if (self.failed) return;\n\n // clean up stream\n if (typeof self.body.removeAllListeners === 'function' &&\n typeof self.body.resume === 'function') {\n self.body.removeAllListeners('readable');\n self.body.removeAllListeners('end');\n self.body.resume();\n }\n\n // cleanup multipartReq listeners\n if (self.multipartReq) {\n self.multipartReq.removeAllListeners('success');\n self.multipartReq.removeAllListeners('error');\n self.multipartReq.removeAllListeners('complete');\n delete self.multipartReq;\n }\n\n if (self.service.config.params.UploadId && !self.leavePartsOnError) {\n self.service.abortMultipartUpload().send();\n } else if (self.leavePartsOnError) {\n self.isDoneChunking = false;\n }\n\n AWS.util.each(self.parts, function(partNumber, part) {\n part.removeAllListeners('complete');\n part.abort();\n });\n\n self.activeParts = 0;\n self.partPos = 0;\n self.numParts = 0;\n self.totalPartNumbers = 0;\n self.parts = {};\n self.failed = true;\n self.callback(err);\n },\n\n /**\n * @api private\n */\n finishMultiPart: function finishMultiPart() {\n var self = this;\n var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };\n self.service.completeMultipartUpload(completeParams, function(err, data) {\n if (err) {\n return self.cleanup(err);\n }\n\n if (data && typeof data.Location === 'string') {\n data.Location = data.Location.replace(/%2F/g, '/');\n }\n\n if (Array.isArray(self.tags)) {\n for (var i = 0; i < self.tags.length; i++) {\n self.tags[i].Value = String(self.tags[i].Value);\n }\n self.service.putObjectTagging(\n {Tagging: {TagSet: self.tags}},\n function(e, d) {\n if (e) {\n self.callback(e);\n } else {\n self.callback(e, data);\n }\n }\n );\n } else {\n self.callback(err, data);\n }\n });\n },\n\n /**\n * @api private\n */\n finishSinglePart: function finishSinglePart(err, data) {\n var upload = this.request._managedUpload;\n var httpReq = this.request.httpRequest;\n var endpoint = httpReq.endpoint;\n if (err) return upload.callback(err);\n data.Location =\n [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');\n data.key = this.request.params.Key; // will stay undocumented\n data.Key = this.request.params.Key;\n data.Bucket = this.request.params.Bucket;\n upload.callback(err, data);\n },\n\n /**\n * @api private\n */\n progress: function progress(info) {\n var upload = this._managedUpload;\n if (this.operation === 'putObject') {\n info.part = 1;\n info.key = this.params.Key;\n } else {\n upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;\n this._lastUploadedBytes = info.loaded;\n info = {\n loaded: upload.totalUploadedBytes,\n total: upload.totalBytes,\n part: this.params.PartNumber,\n key: this.params.Key\n };\n }\n upload.emit('httpUploadProgress', [info]);\n }\n});\n\nAWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.S3.ManagedUpload);\n\n/**\n * @api private\n */\nmodule.exports = AWS.S3.ManagedUpload;\n","var AWS = require('./core');\n\n/**\n * @api private\n * @!method on(eventName, callback)\n * Registers an event listener callback for the event given by `eventName`.\n * Parameters passed to the callback function depend on the individual event\n * being triggered. See the event documentation for those parameters.\n *\n * @param eventName [String] the event name to register the listener for\n * @param callback [Function] the listener callback function\n * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true.\n * Default to be false.\n * @return [AWS.SequentialExecutor] the same object for chaining\n */\nAWS.SequentialExecutor = AWS.util.inherit({\n\n constructor: function SequentialExecutor() {\n this._events = {};\n },\n\n /**\n * @api private\n */\n listeners: function listeners(eventName) {\n return this._events[eventName] ? this._events[eventName].slice(0) : [];\n },\n\n on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ?\n this._events[eventName].unshift(listener) :\n this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n return this;\n },\n\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n return this;\n },\n\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function() { };\n var listeners = this.listeners(eventName);\n var count = listeners.length;\n this.callListeners(listeners, eventArgs, doneCallback);\n return count > 0;\n },\n\n /**\n * @api private\n */\n callListeners: function callListeners(listeners, args, doneCallback, prevError) {\n var self = this;\n var error = prevError || null;\n\n function callNextListener(err) {\n if (err) {\n error = AWS.util.error(error || new Error(), err);\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n if (listener._isAsync) { // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else { // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\n }\n }\n doneCallback.call(self, error);\n },\n\n /**\n * Adds or copies a set of listeners from another list of\n * listeners or SequentialExecutor object.\n *\n * @param listeners [map>, AWS.SequentialExecutor]\n * a list of events and callbacks, or an event emitter object\n * containing listeners to add to this emitter object.\n * @return [AWS.SequentialExecutor] the emitter object, for chaining.\n * @example Adding listeners from a map of listeners\n * emitter.addListeners({\n * event1: [function() { ... }, function() { ... }],\n * event2: [function() { ... }]\n * });\n * emitter.emit('event1'); // emitter has event1\n * emitter.emit('event2'); // emitter has event2\n * @example Adding listeners from another emitter object\n * var emitter1 = new AWS.SequentialExecutor();\n * emitter1.on('event1', function() { ... });\n * emitter1.on('event2', function() { ... });\n * var emitter2 = new AWS.SequentialExecutor();\n * emitter2.addListeners(emitter1);\n * emitter2.emit('event1'); // emitter2 has event1\n * emitter2.emit('event2'); // emitter2 has event2\n */\n addListeners: function addListeners(listeners) {\n var self = this;\n\n // extract listeners if parameter is an SequentialExecutor object\n if (listeners._events) listeners = listeners._events;\n\n AWS.util.each(listeners, function(event, callbacks) {\n if (typeof callbacks === 'function') callbacks = [callbacks];\n AWS.util.arrayEach(callbacks, function(callback) {\n self.on(event, callback);\n });\n });\n\n return self;\n },\n\n /**\n * Registers an event with {on} and saves the callback handle function\n * as a property on the emitter object using a given `name`.\n *\n * @param name [String] the property name to set on this object containing\n * the callback function handle so that the listener can be removed in\n * the future.\n * @param (see on)\n * @return (see on)\n * @example Adding a named listener DATA_CALLBACK\n * var listener = function() { doSomething(); };\n * emitter.addNamedListener('DATA_CALLBACK', 'data', listener);\n *\n * // the following prints: true\n * console.log(emitter.DATA_CALLBACK == listener);\n */\n addNamedListener: function addNamedListener(name, eventName, callback, toHead) {\n this[name] = callback;\n this.addListener(eventName, callback, toHead);\n return this;\n },\n\n /**\n * @api private\n */\n addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) {\n callback._isAsync = true;\n return this.addNamedListener(name, eventName, callback, toHead);\n },\n\n /**\n * Helper method to add a set of named listeners using\n * {addNamedListener}. The callback contains a parameter\n * with a handle to the `addNamedListener` method.\n *\n * @callback callback function(add)\n * The callback function is called immediately in order to provide\n * the `add` function to the block. This simplifies the addition of\n * a large group of named listeners.\n * @param add [Function] the {addNamedListener} function to call\n * when registering listeners.\n * @example Adding a set of named listeners\n * emitter.addNamedListeners(function(add) {\n * add('DATA_CALLBACK', 'data', function() { ... });\n * add('OTHER', 'otherEvent', function() { ... });\n * add('LAST', 'lastEvent', function() { ... });\n * });\n *\n * // these properties are now set:\n * emitter.DATA_CALLBACK;\n * emitter.OTHER;\n * emitter.LAST;\n */\n addNamedListeners: function addNamedListeners(callback) {\n var self = this;\n callback(\n function() {\n self.addNamedListener.apply(self, arguments);\n },\n function() {\n self.addNamedAsyncListener.apply(self, arguments);\n }\n );\n return this;\n }\n});\n\n/**\n * {on} is the prefered method.\n * @api private\n */\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n\n/**\n * @api private\n */\nmodule.exports = AWS.SequentialExecutor;\n","var AWS = require('./core');\nvar Api = require('./model/api');\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\nvar region_utils = require('./region/utils');\n\n/**\n * The service class representing an AWS service.\n *\n * @class_abstract This class is an abstract class.\n *\n * @!attribute apiVersions\n * @return [Array] the list of API versions supported by this service.\n * @readonly\n */\nAWS.Service = inherit({\n /**\n * Create a new service object with a configuration object\n *\n * @param config [map] a map of configuration options\n */\n constructor: function Service(config) {\n if (!this.loadServiceClass) {\n throw AWS.util.error(new Error(),\n 'Service must be constructed with `new\\' operator');\n }\n\n if (config) {\n if (config.region) {\n var region = config.region;\n if (region_utils.isFipsRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n config.useFipsEndpoint = true;\n }\n if (region_utils.isGlobalRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n }\n }\n if (typeof config.useDualstack === 'boolean'\n && typeof config.useDualstackEndpoint !== 'boolean') {\n config.useDualstackEndpoint = config.useDualstack;\n }\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function() { return originalConfig; },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\n this.initialize(config);\n },\n\n /**\n * @api private\n */\n initialize: function initialize(config) {\n var svcConfig = AWS.config[this.serviceIdentifier];\n this.config = new AWS.Config(AWS.config);\n if (svcConfig) this.config.update(svcConfig, true);\n if (config) this.config.update(config, true);\n\n this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint);\n //enable attaching listeners to service client\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) {\n var publisher = this.publisher;\n this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n },\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n if (!AWS.util.isEmpty(this.api)) {\n return null;\n } else if (config.apiConfig) {\n return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);\n } else if (!this.constructor.services) {\n return null;\n } else {\n config = new AWS.Config(AWS.config);\n config.update(serviceConfig, true);\n var version = config.apiVersions[this.constructor.serviceIdentifier];\n version = version || config.apiVersion;\n return this.getLatestServiceClass(version);\n }\n },\n\n /**\n * @api private\n */\n getLatestServiceClass: function getLatestServiceClass(version) {\n version = this.getLatestServiceVersion(version);\n if (this.constructor.services[version] === null) {\n AWS.Service.defineServiceApi(this.constructor, version);\n }\n\n return this.constructor.services[version];\n },\n\n /**\n * @api private\n */\n getLatestServiceVersion: function getLatestServiceVersion(version) {\n if (!this.constructor.services || this.constructor.services.length === 0) {\n throw new Error('No services defined on ' +\n this.constructor.serviceIdentifier);\n }\n\n if (!version) {\n version = 'latest';\n } else if (AWS.util.isType(version, Date)) {\n version = AWS.util.date.iso8601(version).split('T')[0];\n }\n\n if (Object.hasOwnProperty(this.constructor.services, version)) {\n return version;\n }\n\n var keys = Object.keys(this.constructor.services).sort();\n var selectedVersion = null;\n for (var i = keys.length - 1; i >= 0; i--) {\n // versions that end in \"*\" are not available on disk and can be\n // skipped, so do not choose these as selectedVersions\n if (keys[i][keys[i].length - 1] !== '*') {\n selectedVersion = keys[i];\n }\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier +\n ' API to satisfy version constraint `' + version + '\\'');\n },\n\n /**\n * @api private\n */\n api: {},\n\n /**\n * @api private\n */\n defaultRetryCount: 3,\n\n /**\n * @api private\n */\n customizeRequests: function customizeRequests(callback) {\n if (!callback) {\n this.customRequestHandler = null;\n } else if (typeof callback === 'function') {\n this.customRequestHandler = callback;\n } else {\n throw new Error('Invalid callback type \\'' + typeof callback + '\\' provided in customizeRequests');\n }\n },\n\n /**\n * Calls an operation on a service with the given input parameters.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeRequest: function makeRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n params = params || {};\n if (this.config.params) { // copy only toplevel bound params\n var rules = this.api.operations[operation];\n if (rules) {\n params = AWS.util.copy(params);\n AWS.util.each(this.config.params, function(key, value) {\n if (rules.input.members[key]) {\n if (params[key] === undefined || params[key] === null) {\n params[key] = value;\n }\n }\n });\n }\n }\n\n var request = new AWS.Request(this, operation, params);\n this.addAllRequestListeners(request);\n this.attachMonitoringEmitter(request);\n if (callback) request.send(callback);\n return request;\n },\n\n /**\n * Calls an operation on a service with the given input parameters, without\n * any authentication data. This method is useful for \"public\" API operations.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n var request = this.makeRequest(operation, params).toUnauthenticated();\n return callback ? request.send(callback) : request;\n },\n\n /**\n * Waits for a given state\n *\n * @param state [String] the state on the service to wait for\n * @param params [map] a map of parameters to pass with each request\n * @option params $waiter [map] a map of configuration options for the waiter\n * @option params $waiter.delay [Number] The number of seconds to wait between\n * requests\n * @option params $waiter.maxAttempts [Number] The maximum number of requests\n * to send while waiting\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n waitFor: function waitFor(state, params, callback) {\n var waiter = new AWS.ResourceWaiter(this, state);\n return waiter.wait(params, callback);\n },\n\n /**\n * @api private\n */\n addAllRequestListeners: function addAllRequestListeners(request) {\n var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),\n AWS.EventListeners.CorePost];\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n }\n\n // disable parameter validation\n if (!this.config.paramValidation) {\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) { // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request);\n // call prototype's customRequestHandler\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n }\n // call instance's customRequestHandler\n if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') {\n this.customRequestHandler(request);\n }\n },\n\n /**\n * Event recording metrics for a whole API call.\n * @returns {object} a subset of api call metrics\n * @api private\n */\n apiCallEvent: function apiCallEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCall',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Region: request.httpRequest.region,\n MaxRetriesExceeded: 0,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n if (statusCode > 299) {\n if (error.code) monitoringEvent.FinalAwsException = error.code;\n if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name;\n if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message;\n }\n }\n return monitoringEvent;\n },\n\n /**\n * Event recording metrics for an API call attempt.\n * @returns {object} a subset of api call attempt metrics\n * @api private\n */\n apiAttemptEvent: function apiAttemptEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCallAttempt',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Fqdn: request.httpRequest.endpoint.hostname,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n if (\n !request._unAuthenticated &&\n request.service.config.credentials &&\n request.service.config.credentials.accessKeyId\n ) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n if (!response.httpResponse.headers) return monitoringEvent;\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\n return monitoringEvent;\n },\n\n /**\n * Add metrics of failed request.\n * @api private\n */\n attemptFailEvent: function attemptFailEvent(request) {\n var monitoringEvent = this.apiAttemptEvent(request);\n var response = request.response;\n var error = response.error;\n if (response.httpResponse.statusCode > 299 ) {\n if (error.code) monitoringEvent.AwsException = error.code;\n if (error.message) monitoringEvent.AwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name;\n if (error.message) monitoringEvent.SdkExceptionMessage = error.message;\n }\n return monitoringEvent;\n },\n\n /**\n * Attach listeners to request object to fetch metrics of each request\n * and emit data object through \\'ApiCall\\' and \\'ApiCallAttempt\\' events.\n * @api private\n */\n attachMonitoringEmitter: function attachMonitoringEmitter(request) {\n var attemptTimestamp; //timestamp marking the beginning of a request attempt\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n var attemptLatency; //latency from request sent out to http response reaching SDK\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n var attemptCount = 0; //request.retryCount is not reliable here\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n var callTimestamp; //timestamp when the request is created\n var self = this;\n var addToHead = true;\n\n request.on('validate', function () {\n callStartRealTime = AWS.util.realClock.now();\n callTimestamp = Date.now();\n }, addToHead);\n request.on('sign', function () {\n attemptStartRealTime = AWS.util.realClock.now();\n attemptTimestamp = Date.now();\n region = request.httpRequest.region;\n attemptCount++;\n }, addToHead);\n request.on('validateResponse', function() {\n attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n });\n request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() {\n var apiAttemptEvent = self.apiAttemptEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() {\n var apiAttemptEvent = self.attemptFailEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n //attemptLatency may not be available if fail before response\n attemptLatency = attemptLatency ||\n Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL', 'complete', function API_CALL() {\n var apiCallEvent = self.apiCallEvent(request);\n apiCallEvent.AttemptCount = attemptCount;\n if (apiCallEvent.AttemptCount <= 0) return;\n apiCallEvent.Timestamp = callTimestamp;\n var latency = Math.round(AWS.util.realClock.now() - callStartRealTime);\n apiCallEvent.Latency = latency >= 0 ? latency : 0;\n var response = request.response;\n if (\n response.error &&\n response.error.retryable &&\n typeof response.retryCount === 'number' &&\n typeof response.maxRetries === 'number' &&\n (response.retryCount >= response.maxRetries)\n ) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\n self.emit('apiCall', [apiCallEvent]);\n });\n },\n\n /**\n * Override this method to setup any custom request listeners for each\n * new request to the service.\n *\n * @method_abstract This is an abstract method.\n */\n setupRequestListeners: function setupRequestListeners(request) {\n },\n\n /**\n * Gets the signing name for a given request\n * @api private\n */\n getSigningName: function getSigningName() {\n return this.api.signingName || this.api.endpointPrefix;\n },\n\n /**\n * Gets the signer class for a given request\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var version;\n // get operation authtype if present\n var operation = null;\n var authtype = '';\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\n if (this.config.signatureVersion) {\n version = this.config.signatureVersion;\n } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') {\n version = 'v4';\n } else if (authtype === 'bearer') {\n version = 'bearer';\n } else {\n version = this.api.signatureVersion;\n }\n return AWS.Signers.RequestSigner.getVersion(version);\n },\n\n /**\n * @api private\n */\n serviceInterface: function serviceInterface() {\n switch (this.api.protocol) {\n case 'ec2': return AWS.EventListeners.Query;\n case 'query': return AWS.EventListeners.Query;\n case 'json': return AWS.EventListeners.Json;\n case 'rest-json': return AWS.EventListeners.RestJson;\n case 'rest-xml': return AWS.EventListeners.RestXml;\n }\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' +\n this.api.protocol + ' in API config');\n }\n },\n\n /**\n * @api private\n */\n successfulResponse: function successfulResponse(resp) {\n return resp.httpResponse.statusCode < 300;\n },\n\n /**\n * How many times a failed request should be retried before giving up.\n * the defaultRetryCount can be overriden by service classes.\n *\n * @api private\n */\n numRetries: function numRetries() {\n if (this.config.maxRetries !== undefined) {\n return this.config.maxRetries;\n } else {\n return this.defaultRetryCount;\n }\n },\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions, err);\n },\n\n /**\n * @api private\n */\n retryableError: function retryableError(error) {\n if (this.timeoutError(error)) return true;\n if (this.networkingError(error)) return true;\n if (this.expiredCredentialsError(error)) return true;\n if (this.throttledError(error)) return true;\n if (error.statusCode >= 500) return true;\n return false;\n },\n\n /**\n * @api private\n */\n networkingError: function networkingError(error) {\n return error.code === 'NetworkingError';\n },\n\n /**\n * @api private\n */\n timeoutError: function timeoutError(error) {\n return error.code === 'TimeoutError';\n },\n\n /**\n * @api private\n */\n expiredCredentialsError: function expiredCredentialsError(error) {\n // TODO : this only handles *one* of the expired credential codes\n return (error.code === 'ExpiredTokenException');\n },\n\n /**\n * @api private\n */\n clockSkewError: function clockSkewError(error) {\n switch (error.code) {\n case 'RequestTimeTooSkewed':\n case 'RequestExpired':\n case 'InvalidSignatureException':\n case 'SignatureDoesNotMatch':\n case 'AuthFailure':\n case 'RequestInTheFuture':\n return true;\n default: return false;\n }\n },\n\n /**\n * @api private\n */\n getSkewCorrectedDate: function getSkewCorrectedDate() {\n return new Date(Date.now() + this.config.systemClockOffset);\n },\n\n /**\n * @api private\n */\n applyClockOffset: function applyClockOffset(newServerTime) {\n if (newServerTime) {\n this.config.systemClockOffset = newServerTime - Date.now();\n }\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(newServerTime) {\n if (newServerTime) {\n return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 300000;\n }\n },\n\n /**\n * @api private\n */\n throttledError: function throttledError(error) {\n // this logic varies between services\n if (error.statusCode === 429) return true;\n switch (error.code) {\n case 'ProvisionedThroughputExceededException':\n case 'Throttling':\n case 'ThrottlingException':\n case 'RequestLimitExceeded':\n case 'RequestThrottled':\n case 'RequestThrottledException':\n case 'TooManyRequestsException':\n case 'TransactionInProgressException': //dynamodb\n case 'EC2ThrottledException':\n return true;\n default:\n return false;\n }\n },\n\n /**\n * @api private\n */\n endpointFromTemplate: function endpointFromTemplate(endpoint) {\n if (typeof endpoint !== 'string') return endpoint;\n\n var e = endpoint;\n e = e.replace(/\\{service\\}/g, this.api.endpointPrefix);\n e = e.replace(/\\{region\\}/g, this.config.region);\n e = e.replace(/\\{scheme\\}/g, this.config.sslEnabled ? 'https' : 'http');\n return e;\n },\n\n /**\n * @api private\n */\n setEndpoint: function setEndpoint(endpoint) {\n this.endpoint = new AWS.Endpoint(endpoint, this.config);\n },\n\n /**\n * @api private\n */\n paginationConfig: function paginationConfig(operation, throwException) {\n var paginator = this.api.operations[operation].paginator;\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n return null;\n }\n\n return paginator;\n }\n});\n\nAWS.util.update(AWS.Service, {\n\n /**\n * Adds one method for each operation described in the api configuration\n *\n * @api private\n */\n defineMethods: function defineMethods(svc) {\n AWS.util.each(svc.prototype.api.operations, function iterator(method) {\n if (svc.prototype[method]) return;\n var operation = svc.prototype.api.operations[method];\n if (operation.authtype === 'none') {\n svc.prototype[method] = function (params, callback) {\n return this.makeUnauthenticatedRequest(method, params, callback);\n };\n } else {\n svc.prototype[method] = function (params, callback) {\n return this.makeRequest(method, params, callback);\n };\n }\n });\n },\n\n /**\n * Defines a new Service class using a service identifier and list of versions\n * including an optional set of features (functions) to apply to the class\n * prototype.\n *\n * @param serviceIdentifier [String] the identifier for the service\n * @param versions [Array] a list of versions that work with this\n * service\n * @param features [Object] an object to attach to the prototype\n * @return [Class] the service class defined by this function.\n */\n defineService: function defineService(serviceIdentifier, versions, features) {\n AWS.Service._serviceMap[serviceIdentifier] = true;\n if (!Array.isArray(versions)) {\n features = versions;\n versions = [];\n }\n\n var svc = inherit(AWS.Service, features || {});\n\n if (typeof serviceIdentifier === 'string') {\n AWS.Service.addVersions(svc, versions);\n\n var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else { // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n AWS.SequentialExecutor.call(this.prototype);\n //util.clientSideMonitoring is only available in node\n if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {\n var Publisher = AWS.util.clientSideMonitoring.Publisher;\n var configProvider = AWS.util.clientSideMonitoring.configProvider;\n var publisherConfig = configProvider();\n this.prototype.publisher = new Publisher(publisherConfig);\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\n }\n AWS.SequentialExecutor.call(svc.prototype);\n AWS.Service.addDefaultMonitoringListeners(svc.prototype);\n return svc;\n },\n\n /**\n * @api private\n */\n addVersions: function addVersions(svc, versions) {\n if (!Array.isArray(versions)) versions = [versions];\n\n svc.services = svc.services || {};\n for (var i = 0; i < versions.length; i++) {\n if (svc.services[versions[i]] === undefined) {\n svc.services[versions[i]] = null;\n }\n }\n\n svc.apiVersions = Object.keys(svc.services).sort();\n },\n\n /**\n * @api private\n */\n defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {\n var svc = inherit(superclass, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n\n function setApi(api) {\n if (api.isApi) {\n svc.prototype.api = api;\n } else {\n svc.prototype.api = new Api(api, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n }\n }\n\n if (typeof version === 'string') {\n if (apiConfig) {\n setApi(apiConfig);\n } else {\n try {\n setApi(AWS.apiLoader(superclass.serviceIdentifier, version));\n } catch (err) {\n throw AWS.util.error(err, {\n message: 'Could not find API configuration ' +\n superclass.serviceIdentifier + '-' + version\n });\n }\n }\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\n superclass.services[version] = svc;\n } else {\n setApi(version);\n }\n\n AWS.Service.defineMethods(svc);\n return svc;\n },\n\n /**\n * @api private\n */\n hasService: function(identifier) {\n return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);\n },\n\n /**\n * @param attachOn attach default monitoring listeners to object\n *\n * Each monitoring event should be emitted from service client to service constructor prototype and then\n * to global service prototype like bubbling up. These default monitoring events listener will transfer\n * the monitoring events to the upper layer.\n * @api private\n */\n addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {\n attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);\n });\n attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCall', [event]);\n });\n },\n\n /**\n * @api private\n */\n _serviceMap: {}\n});\n\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nmodule.exports = AWS.Service;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","var AWS = require('../core');\nrequire('../dynamodb/document_client');\n\nAWS.util.update(AWS.DynamoDB.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.service.config.dynamoDbCrc32) {\n request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n request.addListener('extractData', this.checkCrc32);\n request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n }\n },\n\n /**\n * @api private\n */\n checkCrc32: function checkCrc32(resp) {\n if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {\n resp.data = null;\n resp.error = AWS.util.error(new Error(), {\n code: 'CRC32CheckFailed',\n message: 'CRC32 integrity check failed',\n retryable: true\n });\n resp.request.haltHandlersOnError();\n throw (resp.error);\n }\n },\n\n /**\n * @api private\n */\n crc32IsValid: function crc32IsValid(resp) {\n var crc = resp.httpResponse.headers['x-amz-crc32'];\n if (!crc) return true; // no (valid) CRC32 header\n return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);\n },\n\n /**\n * @api private\n */\n defaultRetryCount: 10,\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions);\n\n if (typeof retryDelayOptions.base !== 'number') {\n retryDelayOptions.base = 50; // default for dynamodb\n }\n var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions, err);\n return delay;\n }\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","require('../polly/presigner');\n","var AWS = require('../core');\nvar rdsutil = require('./rdsutil');\nrequire('../rds/signer');\n /**\n * @api private\n */\n var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot', 'startDBInstanceAutomatedBackupsReplication'];\n\n AWS.util.update(AWS.RDS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n rdsutil.setupRequestListeners(this, request, crossRegionOperations);\n },\n });\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n if (!operationsWith200StatusCodeError[resp.request.operation]) return;\n var httpResponse = resp.httpResponse;\n if (httpResponse.body && httpResponse.body.toString().match('')) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n var service = this.service ? this.service : this;\n service.extractError(resp);\n throw resp.error;\n } else if (!httpResponse.body || !httpResponse.body.toString().match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (operationsWith200StatusCodeError[request.operation] &&\n error.statusCode === 200) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","var AWS = require('../core');\nvar regionUtil = require('../region_config');\n\nvar s3util = {\n /**\n * @api private\n */\n isArnInParam: function isArnInParam(req, paramName) {\n var inputShape = (req.service.api.operations[req.operation] || {}).input || {};\n var inputMembers = inputShape.members || {};\n if (!req.params[paramName] || !inputMembers[paramName]) return false;\n return AWS.util.ARN.validate(req.params[paramName]);\n },\n\n /**\n * Validate service component from ARN supplied in Bucket parameter\n */\n validateArnService: function validateArnService(req) {\n var parsedArn = req._parsedArn;\n\n if (parsedArn.service !== 's3'\n && parsedArn.service !== 's3-outposts'\n && parsedArn.service !== 's3-object-lambda') {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'expect \\'s3\\' or \\'s3-outposts\\' or \\'s3-object-lambda\\' in ARN service component'\n });\n }\n },\n\n /**\n * Validate account ID from ARN supplied in Bucket parameter is a valid account\n */\n validateArnAccount: function validateArnAccount(req) {\n var parsedArn = req._parsedArn;\n\n if (!/[0-9]{12}/.exec(parsedArn.accountId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN accountID does not match regex \"[0-9]{12}\"'\n });\n }\n },\n\n /**\n * Validate ARN supplied in Bucket parameter is a valid access point ARN\n */\n validateS3AccessPointArn: function validateS3AccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['accesspoint'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 2) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[1];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsArn: function validateOutpostsArn(req) {\n var parsedArn = req._parsedArn;\n\n if (\n parsedArn.resource.indexOf('outpost:') !== 0 &&\n parsedArn.resource.indexOf('outpost/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'outpost/\\''\n });\n }\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n var outpostId = parsedArn.resource.split(delimiter)[1];\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(outpostId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId\n });\n }\n req._parsedArn.outpostId = outpostId;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 4) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[3];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate region field in ARN supplied in Bucket parameter is a valid region\n */\n validateArnRegion: function validateArnRegion(req, options) {\n if (options === undefined) {\n options = {};\n }\n\n var useArnRegion = s3util.loadUseArnRegionConfig(req);\n var regionFromArn = req._parsedArn.region;\n var clientRegion = req.service.config.region;\n var useFipsEndpoint = req.service.config.useFipsEndpoint;\n var allowFipsEndpoint = options.allowFipsEndpoint || false;\n\n if (!regionFromArn) {\n var message = 'ARN region is empty';\n if (req._parsedArn.service === 's3') {\n message = message + '\\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +\n 'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';\n }\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: message\n });\n }\n\n if (useFipsEndpoint && !allowFipsEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'ARN endpoint is not compatible with FIPS region'\n });\n }\n\n if (regionFromArn.indexOf('fips') >= 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'FIPS region not allowed in ARN'\n });\n }\n\n if (!useArnRegion && regionFromArn !== clientRegion) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region conflicts with access point region'\n });\n } else if (\n useArnRegion &&\n regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region and access point region not in same partition'\n });\n }\n\n if (req.service.config.useAccelerateEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'useAccelerateEndpoint config is not supported with access point ARN'\n });\n }\n\n if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Dualstack is not supported with outposts access point ARN'\n });\n }\n },\n\n loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {\n var envName = 'AWS_S3_USE_ARN_REGION';\n var configName = 's3_use_arn_region';\n var useArnRegion = true;\n var originalConfig = req.service._originalConfig || {};\n if (req.service.config.s3UseArnRegion !== undefined) {\n return req.service.config.s3UseArnRegion;\n } else if (originalConfig.s3UseArnRegion !== undefined) {\n useArnRegion = originalConfig.s3UseArnRegion === true;\n } else if (AWS.util.isNode()) {\n //load from environmental variable AWS_USE_ARN_REGION\n if (process.env[envName]) {\n var value = process.env[envName].trim().toLowerCase();\n if (['false', 'true'].indexOf(value) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: envName + ' only accepts true or false. Got ' + process.env[envName],\n retryable: false\n });\n }\n useArnRegion = value === 'true';\n } else { //load from shared config property use_arn_region\n var profiles = {};\n var profile = {};\n try {\n profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {}\n if (profile[configName]) {\n if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: configName + ' only accepts true or false. Got ' + profile[configName],\n retryable: false\n });\n }\n useArnRegion = profile[configName].trim().toLowerCase() === 'true';\n }\n }\n }\n req.service.config.s3UseArnRegion = useArnRegion;\n return useArnRegion;\n },\n\n /**\n * Validations before URI can be populated\n */\n validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {\n if (req.service._originalConfig && req.service._originalConfig.endpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Custom endpoint is not compatible with access point ARN'\n });\n }\n\n if (req.service.config.s3ForcePathStyle) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Cannot construct path-style endpoint with access point'\n });\n }\n },\n\n /**\n * Returns true if the bucket name is DNS compatible. Buckets created\n * outside of the classic region MUST be DNS compatible.\n *\n * @api private\n */\n dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {\n var b = bucketName;\n var domain = new RegExp(/^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/);\n var ipAddress = new RegExp(/(\\d+\\.){3}\\d+/);\n var dots = new RegExp(/\\.\\./);\n return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;\n },\n};\n\n/**\n * @api private\n */\nmodule.exports = s3util;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.SQS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.buildEndpoint);\n\n if (request.service.config.computeChecksums) {\n if (request.operation === 'sendMessage') {\n request.addListener('extractData', this.verifySendMessageChecksum);\n } else if (request.operation === 'sendMessageBatch') {\n request.addListener('extractData', this.verifySendMessageBatchChecksum);\n } else if (request.operation === 'receiveMessage') {\n request.addListener('extractData', this.verifyReceiveMessageChecksum);\n }\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageChecksum: function verifySendMessageChecksum(response) {\n if (!response.data) return;\n\n var md5 = response.data.MD5OfMessageBody;\n var body = this.params.MessageBody;\n var calculatedMd5 = this.service.calculateChecksum(body);\n if (calculatedMd5 !== md5) {\n var msg = 'Got \"' + response.data.MD5OfMessageBody +\n '\", expecting \"' + calculatedMd5 + '\".';\n this.service.throwInvalidChecksumError(response,\n [response.data.MessageId], msg);\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var entries = {};\n var errors = [];\n var messageIds = [];\n AWS.util.arrayEach(response.data.Successful, function (entry) {\n entries[entry.Id] = entry;\n });\n AWS.util.arrayEach(this.params.Entries, function (entry) {\n if (entries[entry.Id]) {\n var md5 = entries[entry.Id].MD5OfMessageBody;\n var body = entry.MessageBody;\n if (!service.isChecksumValid(md5, body)) {\n errors.push(entry.Id);\n messageIds.push(entries[entry.Id].MessageId);\n }\n }\n });\n\n if (errors.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + errors.join(', '));\n }\n },\n\n /**\n * @api private\n */\n verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var messageIds = [];\n AWS.util.arrayEach(response.data.Messages, function(message) {\n var md5 = message.MD5OfBody;\n var body = message.Body;\n if (!service.isChecksumValid(md5, body)) {\n messageIds.push(message.MessageId);\n }\n });\n\n if (messageIds.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + messageIds.join(', '));\n }\n },\n\n /**\n * @api private\n */\n throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {\n response.error = AWS.util.error(new Error(), {\n retryable: true,\n code: 'InvalidChecksum',\n messageIds: ids,\n message: response.request.operation +\n ' returned an invalid MD5 response. ' + message\n });\n },\n\n /**\n * @api private\n */\n isChecksumValid: function isChecksumValid(checksum, data) {\n return this.calculateChecksum(data) === checksum;\n },\n\n /**\n * @api private\n */\n calculateChecksum: function calculateChecksum(data) {\n return AWS.util.crypto.md5(data, 'hex');\n },\n\n /**\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.httpRequest.params.QueueUrl;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n\n // signature version 4 requires the region name to be set,\n // sqs queue urls contain the region name\n var matches = request.httpRequest.endpoint.host.match(/^sqs\\.(.+?)\\./);\n if (matches) request.httpRequest.region = matches[1];\n }\n }\n});\n","var AWS = require('../core');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\n\nAWS.util.update(AWS.STS.prototype, {\n /**\n * @overload credentialsFrom(data, credentials = null)\n * Creates a credentials object from STS response data containing\n * credentials information. Useful for quickly setting AWS credentials.\n *\n * @note This is a low-level utility function. If you want to load temporary\n * credentials into your process for subsequent requests to AWS resources,\n * you should use {AWS.TemporaryCredentials} instead.\n * @param data [map] data retrieved from a call to {getFederatedToken},\n * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.\n * @param credentials [AWS.Credentials] an optional credentials object to\n * fill instead of creating a new object. Useful when modifying an\n * existing credentials object from a refresh call.\n * @return [AWS.TemporaryCredentials] the set of temporary credentials\n * loaded from a raw STS operation response.\n * @example Using credentialsFrom to load global AWS credentials\n * var sts = new AWS.STS();\n * sts.getSessionToken(function (err, data) {\n * if (err) console.log(\"Error getting credentials\");\n * else {\n * AWS.config.credentials = sts.credentialsFrom(data);\n * }\n * });\n * @see AWS.TemporaryCredentials\n */\n credentialsFrom: function credentialsFrom(data, credentials) {\n if (!data) return null;\n if (!credentials) credentials = new AWS.TemporaryCredentials();\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretAccessKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n return credentials;\n },\n\n assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\n },\n\n assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validate', this.optInRegionalEndpoint, true);\n },\n\n /**\n * @api private\n */\n optInRegionalEndpoint: function optInRegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: ENV_REGIONAL_ENDPOINT_ENABLED,\n sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,\n clientConfig: 'stsRegionalEndpoints'\n });\n if (\n config.stsRegionalEndpoints === 'regional' &&\n service.isGlobalEndpoint\n ) {\n //client will throw if region is not supplied; request will be signed with specified region\n if (!config.region) {\n throw AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n }\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nAWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {\n constructor: function Bearer(request) {\n AWS.Signers.RequestSigner.call(this, request);\n },\n\n addAuthorization: function addAuthorization(token) {\n this.request.headers['Authorization'] = 'Bearer ' + token.token;\n }\n});\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n case 'bearer': return AWS.Signers.Bearer;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\nrequire('./bearer');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","function AcceptorStateMachine(states, state) {\n this.currentState = state || null;\n this.states = states || {};\n}\n\nAcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {\n if (typeof finalState === 'function') {\n inputError = bindObject; bindObject = done;\n done = finalState; finalState = null;\n }\n\n var self = this;\n var state = self.states[self.currentState];\n state.fn.call(bindObject || self, inputError, function(err) {\n if (err) {\n if (state.fail) self.currentState = state.fail;\n else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;\n else return done ? done.call(bindObject) : null;\n }\n if (self.currentState === finalState) {\n return done ? done.call(bindObject, err) : null;\n }\n\n self.runTo(finalState, done, bindObject, err);\n });\n};\n\nAcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {\n if (typeof acceptState === 'function') {\n fn = acceptState; acceptState = null; failState = null;\n } else if (typeof failState === 'function') {\n fn = failState; failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = { accept: acceptState, fail: failState, fn: fn };\n return this;\n};\n\n/**\n * @api private\n */\nmodule.exports = AcceptorStateMachine;\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0].trim(); // remove comments and trim\n var isSection = line[0] === '[' && line[line.length - 1] === ']';\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var indexOfEqualsSign = line.indexOf('=');\n var start = 0;\n var end = line.length - 1;\n var isAssignment =\n indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n\n if (isAssignment) {\n var name = line.substring(0, indexOfEqualsSign).trim();\n var value = line.substring(indexOfEqualsSign + 1).trim();\n\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) {\n err.originalError = originalError;\n }\n\n\n for (var key in options || {}) {\n if (key[0] === '[' && key[key.length - 1] === ']') {\n key = key.slice(1, -1);\n if (key === 'code' || key === 'message') {\n continue;\n }\n err['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(err, key, {\n value: err[key] || (options && options[key]) || (originalError && originalError[key]),\n enumerable: false,\n writable: true\n });\n }\n }\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar punycode = require('punycode');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a puny coded representation of \"domain\".\n // It only converts the part of the domain name that\n // has non ASCII characters. I.e. it dosent matter if\n // you call it with a domain that already is in ASCII.\n var domainArray = this.hostname.split('.');\n var newOut = [];\n for (var i = 0; i < domainArray.length; ++i) {\n var s = domainArray[i];\n newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n 'xn--' + punycode.encode(s) : s);\n }\n this.hostname = newOut.join('.');\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n Object.keys(this).forEach(function(k) {\n result[k] = this[k];\n }, this);\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n Object.keys(relative).forEach(function(k) {\n if (k !== 'protocol')\n result[k] = relative[k];\n });\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n Object.keys(relative).forEach(function(k) {\n result[k] = relative[k];\n });\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host) && (last === '.' || last === '..') ||\n last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last == '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nvar _default = bytesToUuid;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) W[t] = M[i][t];\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : (0, _bytesToUuid.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n var generateUUID = function (value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedListNode = /** @class */ (function () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n return LinkedListNode;\n}());\nvar LRUCache = /** @class */ (function () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n this.sizeLimit = size;\n }\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function () {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n }\n else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n this.headerNode = node;\n this.size++;\n };\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n var node = this.tailNode;\n var prevNode = node.prev;\n if (prevNode) {\n prevNode.next = undefined;\n }\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\n LRUCache.prototype.get = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n this.prependToList(node);\n return node.value;\n }\n };\n LRUCache.prototype.remove = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\n }\n else if (this.size === this.sizeLimit) {\n var tailNode = this.removeFromTail();\n var key_1 = tailNode.key;\n delete this.nodeMap[key_1];\n }\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n return LRUCache;\n}());\nexports.LRUCache = LRUCache;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nmodule.exports = function getTimezoneOffsetInMilliseconds (dirtyDate) {\n var date = new Date(dirtyDate.getTime())\n var baseTimezoneOffset = date.getTimezoneOffset()\n date.setSeconds(0, 0)\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE\n\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset\n}\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added\n * @returns {Date} the new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nfunction addDays (dirtyDate, dirtyAmount) {\n var date = parse(dirtyDate)\n var amount = Number(dirtyAmount)\n date.setDate(date.getDate() + amount)\n return date\n}\n\nmodule.exports = addDays\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\n\n/**\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added\n * @returns {Date} the new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nfunction addHours (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR)\n}\n\nmodule.exports = addHours\n","var getISOYear = require('../get_iso_year/index.js')\nvar setISOYear = require('../set_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Add the specified number of ISO week-numbering years to the given date.\n *\n * @description\n * Add the specified number of ISO week-numbering years to the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be added\n * @returns {Date} the new date with the ISO week-numbering years added\n *\n * @example\n * // Add 5 ISO week-numbering years to 2 July 2010:\n * var result = addISOYears(new Date(2010, 6, 2), 5)\n * //=> Fri Jun 26 2015 00:00:00\n */\nfunction addISOYears (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return setISOYear(dirtyDate, getISOYear(dirtyDate) + amount)\n}\n\nmodule.exports = addISOYears\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds (dirtyDate, dirtyAmount) {\n var timestamp = parse(dirtyDate).getTime()\n var amount = Number(dirtyAmount)\n return new Date(timestamp + amount)\n}\n\nmodule.exports = addMilliseconds\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added\n * @returns {Date} the new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nfunction addMinutes (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE)\n}\n\nmodule.exports = addMinutes\n","var parse = require('../parse/index.js')\nvar getDaysInMonth = require('../get_days_in_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added\n * @returns {Date} the new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nfunction addMonths (dirtyDate, dirtyAmount) {\n var date = parse(dirtyDate)\n var amount = Number(dirtyAmount)\n var desiredMonth = date.getMonth() + amount\n var dateWithDesiredMonth = new Date(0)\n dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1)\n dateWithDesiredMonth.setHours(0, 0, 0, 0)\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth)\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()))\n return date\n}\n\nmodule.exports = addMonths\n","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added\n * @returns {Date} the new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * var result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nfunction addQuarters (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n var months = amount * 3\n return addMonths(dirtyDate, months)\n}\n\nmodule.exports = addQuarters\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added\n * @returns {Date} the new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * var result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nfunction addSeconds (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMilliseconds(dirtyDate, amount * 1000)\n}\n\nmodule.exports = addSeconds\n","var addDays = require('../add_days/index.js')\n\n/**\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added\n * @returns {Date} the new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nfunction addWeeks (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n var days = amount * 7\n return addDays(dirtyDate, days)\n}\n\nmodule.exports = addWeeks\n","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added\n * @returns {Date} the new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nfunction addYears (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMonths(dirtyDate, amount * 12)\n}\n\nmodule.exports = addYears\n","var parse = require('../parse/index.js')\n\n/**\n * @category Range Helpers\n * @summary Is the given date range overlapping with another date range?\n *\n * @description\n * Is the given date range overlapping with another date range?\n *\n * @param {Date|String|Number} initialRangeStartDate - the start of the initial range\n * @param {Date|String|Number} initialRangeEndDate - the end of the initial range\n * @param {Date|String|Number} comparedRangeStartDate - the start of the range to compare it with\n * @param {Date|String|Number} comparedRangeEndDate - the end of the range to compare it with\n * @returns {Boolean} whether the date ranges are overlapping\n * @throws {Error} startDate of a date range cannot be after its endDate\n *\n * @example\n * // For overlapping date ranges:\n * areRangesOverlapping(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n * //=> true\n *\n * @example\n * // For non-overlapping date ranges:\n * areRangesOverlapping(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 21), new Date(2014, 0, 22)\n * )\n * //=> false\n */\nfunction areRangesOverlapping (dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {\n var initialStartTime = parse(dirtyInitialRangeStartDate).getTime()\n var initialEndTime = parse(dirtyInitialRangeEndDate).getTime()\n var comparedStartTime = parse(dirtyComparedRangeStartDate).getTime()\n var comparedEndTime = parse(dirtyComparedRangeEndDate).getTime()\n\n if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {\n throw new Error('The start of the range cannot be after the end of the range')\n }\n\n return initialStartTime < comparedEndTime && comparedStartTime < initialEndTime\n}\n\nmodule.exports = areRangesOverlapping\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return an index of the closest date from the array comparing to the given date.\n *\n * @description\n * Return an index of the closest date from the array comparing to the given date.\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date[]|String[]|Number[]} datesArray - the array to search\n * @returns {Number} an index of the date closest to the given date\n * @throws {TypeError} the second argument must be an instance of Array\n *\n * @example\n * // Which date is closer to 6 September 2015?\n * var dateToCompare = new Date(2015, 8, 6)\n * var datesArray = [\n * new Date(2015, 0, 1),\n * new Date(2016, 0, 1),\n * new Date(2017, 0, 1)\n * ]\n * var result = closestIndexTo(dateToCompare, datesArray)\n * //=> 1\n */\nfunction closestIndexTo (dirtyDateToCompare, dirtyDatesArray) {\n if (!(dirtyDatesArray instanceof Array)) {\n throw new TypeError(toString.call(dirtyDatesArray) + ' is not an instance of Array')\n }\n\n var dateToCompare = parse(dirtyDateToCompare)\n var timeToCompare = dateToCompare.getTime()\n\n var result\n var minDistance\n\n dirtyDatesArray.forEach(function (dirtyDate, index) {\n var currentDate = parse(dirtyDate)\n var distance = Math.abs(timeToCompare - currentDate.getTime())\n if (result === undefined || distance < minDistance) {\n result = index\n minDistance = distance\n }\n })\n\n return result\n}\n\nmodule.exports = closestIndexTo\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return a date from the array closest to the given date.\n *\n * @description\n * Return a date from the array closest to the given date.\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date[]|String[]|Number[]} datesArray - the array to search\n * @returns {Date} the date from the array closest to the given date\n * @throws {TypeError} the second argument must be an instance of Array\n *\n * @example\n * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\n * var dateToCompare = new Date(2015, 8, 6)\n * var result = closestTo(dateToCompare, [\n * new Date(2000, 0, 1),\n * new Date(2030, 0, 1)\n * ])\n * //=> Tue Jan 01 2030 00:00:00\n */\nfunction closestTo (dirtyDateToCompare, dirtyDatesArray) {\n if (!(dirtyDatesArray instanceof Array)) {\n throw new TypeError(toString.call(dirtyDatesArray) + ' is not an instance of Array')\n }\n\n var dateToCompare = parse(dirtyDateToCompare)\n var timeToCompare = dateToCompare.getTime()\n\n var result\n var minDistance\n\n dirtyDatesArray.forEach(function (dirtyDate) {\n var currentDate = parse(dirtyDate)\n var distance = Math.abs(timeToCompare - currentDate.getTime())\n if (result === undefined || distance < minDistance) {\n result = currentDate\n minDistance = distance\n }\n })\n\n return result\n}\n\nmodule.exports = closestTo\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var timeLeft = dateLeft.getTime()\n var dateRight = parse(dirtyDateRight)\n var timeRight = dateRight.getTime()\n\n if (timeLeft < timeRight) {\n return -1\n } else if (timeLeft > timeRight) {\n return 1\n } else {\n return 0\n }\n}\n\nmodule.exports = compareAsc\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * var result = compareDesc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\nfunction compareDesc (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var timeLeft = dateLeft.getTime()\n var dateRight = parse(dirtyDateRight)\n var timeRight = dateRight.getTime()\n\n if (timeLeft > timeRight) {\n return -1\n } else if (timeLeft < timeRight) {\n return 1\n } else {\n return 0\n }\n}\n\nmodule.exports = compareDesc\n","var startOfDay = require('../start_of_day/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_DAY = 86400000\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) {\n var startOfDayLeft = startOfDay(dirtyDateLeft)\n var startOfDayRight = startOfDay(dirtyDateRight)\n\n var timestampLeft = startOfDayLeft.getTime() -\n startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n var timestampRight = startOfDayRight.getTime() -\n startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = differenceInCalendarDays\n","var startOfISOWeek = require('../start_of_iso_week/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the number of calendar ISO weeks between the given dates.\n *\n * @description\n * Get the number of calendar ISO weeks between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO weeks\n *\n * @example\n * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?\n * var result = differenceInCalendarISOWeeks(\n * new Date(2014, 6, 21),\n * new Date(2014, 6, 6)\n * )\n * //=> 3\n */\nfunction differenceInCalendarISOWeeks (dirtyDateLeft, dirtyDateRight) {\n var startOfISOWeekLeft = startOfISOWeek(dirtyDateLeft)\n var startOfISOWeekRight = startOfISOWeek(dirtyDateRight)\n\n var timestampLeft = startOfISOWeekLeft.getTime() -\n startOfISOWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n var timestampRight = startOfISOWeekRight.getTime() -\n startOfISOWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK)\n}\n\nmodule.exports = differenceInCalendarISOWeeks\n","var getISOYear = require('../get_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO week-numbering years\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * var result = differenceInCalendarISOYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 2\n */\nfunction differenceInCalendarISOYears (dirtyDateLeft, dirtyDateRight) {\n return getISOYear(dirtyDateLeft) - getISOYear(dirtyDateRight)\n}\n\nmodule.exports = differenceInCalendarISOYears\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth()\n\n return yearDiff * 12 + monthDiff\n}\n\nmodule.exports = differenceInCalendarMonths\n","var getQuarter = require('../get_quarter/index.js')\nvar parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar quarters\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInCalendarQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 3\n */\nfunction differenceInCalendarQuarters (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()\n var quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight)\n\n return yearDiff * 4 + quarterDiff\n}\n\nmodule.exports = differenceInCalendarQuarters\n","var startOfWeek = require('../start_of_week/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * {weekStartsOn: 1}\n * )\n * //=> 2\n */\nfunction differenceInCalendarWeeks (dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions)\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions)\n\n var timestampLeft = startOfWeekLeft.getTime() -\n startOfWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n var timestampRight = startOfWeekRight.getTime() -\n startOfWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK)\n}\n\nmodule.exports = differenceInCalendarWeeks\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInCalendarYears (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n return dateLeft.getFullYear() - dateRight.getFullYear()\n}\n\nmodule.exports = differenceInCalendarYears\n","var parse = require('../parse/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full days\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n */\nfunction differenceInDays (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight))\n dateLeft.setDate(dateLeft.getDate() - sign * difference)\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastDayNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastDayNotFull)\n}\n\nmodule.exports = differenceInDays\n","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\n\n/**\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of hours\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nfunction differenceInHours (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInHours\n","var parse = require('../parse/index.js')\nvar differenceInCalendarISOYears = require('../difference_in_calendar_iso_years/index.js')\nvar compareAsc = require('../compare_asc/index.js')\nvar subISOYears = require('../sub_iso_years/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of full ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of full ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full ISO week-numbering years\n *\n * @example\n * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?\n * var result = differenceInISOYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 1\n */\nfunction differenceInISOYears (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarISOYears(dateLeft, dateRight))\n dateLeft = subISOYears(dateLeft, sign * difference)\n\n // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1\n // if last calendar ISO year is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastISOYearNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastISOYearNotFull)\n}\n\nmodule.exports = differenceInISOYears\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getTime() - dateRight.getTime()\n}\n\nmodule.exports = differenceInMilliseconds\n","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the number of minutes between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * var result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n */\nfunction differenceInMinutes (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInMinutes\n","var parse = require('../parse/index.js')\nvar differenceInCalendarMonths = require('../difference_in_calendar_months/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 7\n */\nfunction differenceInMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight))\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference)\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastMonthNotFull)\n}\n\nmodule.exports = differenceInMonths\n","var differenceInMonths = require('../difference_in_months/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Get the number of full quarters between the given dates.\n *\n * @description\n * Get the number of full quarters between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full quarters\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInQuarters (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMonths(dirtyDateLeft, dirtyDateRight) / 3\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInQuarters\n","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInSeconds\n","var differenceInDays = require('../difference_in_days/index.js')\n\n/**\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full weeks\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 2\n */\nfunction differenceInWeeks (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInWeeks\n","var parse = require('../parse/index.js')\nvar differenceInCalendarYears = require('../difference_in_calendar_years/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 1\n */\nfunction differenceInYears (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight))\n dateLeft.setFullYear(dateLeft.getFullYear() - sign * difference)\n\n // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastYearNotFull)\n}\n\nmodule.exports = differenceInYears\n","var compareDesc = require('../compare_desc/index.js')\nvar parse = require('../parse/index.js')\nvar differenceInSeconds = require('../difference_in_seconds/index.js')\nvar differenceInMonths = require('../difference_in_months/index.js')\nvar enLocale = require('../locale/en/index.js')\n\nvar MINUTES_IN_DAY = 1440\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520\nvar MINUTES_IN_MONTH = 43200\nvar MINUTES_IN_TWO_MONTHS = 86400\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWords(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 1)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = distanceInWords(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWords(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWords(\n * new Date(2016, 7, 1),\n * new Date(2015, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWords (dirtyDateToCompare, dirtyDate, dirtyOptions) {\n var options = dirtyOptions || {}\n\n var comparison = compareDesc(dirtyDateToCompare, dirtyDate)\n\n var locale = options.locale\n var localize = enLocale.distanceInWords.localize\n if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n localize = locale.distanceInWords.localize\n }\n\n var localizeOptions = {\n addSuffix: Boolean(options.addSuffix),\n comparison: comparison\n }\n\n var dateLeft, dateRight\n if (comparison > 0) {\n dateLeft = parse(dirtyDateToCompare)\n dateRight = parse(dirtyDate)\n } else {\n dateLeft = parse(dirtyDate)\n dateRight = parse(dirtyDateToCompare)\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft)\n var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()\n var minutes = Math.round(seconds / 60) - offset\n var months\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return localize('lessThanXSeconds', 5, localizeOptions)\n } else if (seconds < 10) {\n return localize('lessThanXSeconds', 10, localizeOptions)\n } else if (seconds < 20) {\n return localize('lessThanXSeconds', 20, localizeOptions)\n } else if (seconds < 40) {\n return localize('halfAMinute', null, localizeOptions)\n } else if (seconds < 60) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', 1, localizeOptions)\n }\n } else {\n if (minutes === 0) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', minutes, localizeOptions)\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return localize('xMinutes', minutes, localizeOptions)\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return localize('aboutXHours', 1, localizeOptions)\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60)\n return localize('aboutXHours', hours, localizeOptions)\n\n // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return localize('xDays', 1, localizeOptions)\n\n // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY)\n return localize('xDays', days, localizeOptions)\n\n // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('aboutXMonths', months, localizeOptions)\n }\n\n months = differenceInMonths(dateRight, dateLeft)\n\n // 2 months up to 12 months\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('xMonths', nearestMonth, localizeOptions)\n\n // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12\n var years = Math.floor(months / 12)\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return localize('aboutXYears', years, localizeOptions)\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return localize('overXYears', years, localizeOptions)\n\n // N years 9 months up to N year 12 months\n } else {\n return localize('almostXYears', years + 1, localizeOptions)\n }\n }\n}\n\nmodule.exports = distanceInWords\n","var compareDesc = require('../compare_desc/index.js')\nvar parse = require('../parse/index.js')\nvar differenceInSeconds = require('../difference_in_seconds/index.js')\nvar enLocale = require('../locale/en/index.js')\n\nvar MINUTES_IN_DAY = 1440\nvar MINUTES_IN_MONTH = 43200\nvar MINUTES_IN_YEAR = 525600\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `distanceInWords`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'s'|'m'|'h'|'d'|'M'|'Y'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.partialMethod='floor'] - which way to round partial units\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWordsStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * var result = distanceInWordsStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWordsStrict(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {addSuffix: true}\n * )\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * var result = distanceInWordsStrict(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {unit: 'm'}\n * )\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 28 January 2015, in months, rounded up?\n * var result = distanceInWordsStrict(\n * new Date(2015, 0, 28),\n * new Date(2015, 0, 1),\n * {unit: 'M', partialMethod: 'ceil'}\n * )\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsStrict(\n * new Date(2016, 7, 1),\n * new Date(2015, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\nfunction distanceInWordsStrict (dirtyDateToCompare, dirtyDate, dirtyOptions) {\n var options = dirtyOptions || {}\n\n var comparison = compareDesc(dirtyDateToCompare, dirtyDate)\n\n var locale = options.locale\n var localize = enLocale.distanceInWords.localize\n if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n localize = locale.distanceInWords.localize\n }\n\n var localizeOptions = {\n addSuffix: Boolean(options.addSuffix),\n comparison: comparison\n }\n\n var dateLeft, dateRight\n if (comparison > 0) {\n dateLeft = parse(dirtyDateToCompare)\n dateRight = parse(dirtyDate)\n } else {\n dateLeft = parse(dirtyDate)\n dateRight = parse(dirtyDateToCompare)\n }\n\n var unit\n var mathPartial = Math[options.partialMethod ? String(options.partialMethod) : 'floor']\n var seconds = differenceInSeconds(dateRight, dateLeft)\n var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()\n var minutes = mathPartial(seconds / 60) - offset\n var hours, days, months, years\n\n if (options.unit) {\n unit = String(options.unit)\n } else {\n if (minutes < 1) {\n unit = 's'\n } else if (minutes < 60) {\n unit = 'm'\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'h'\n } else if (minutes < MINUTES_IN_MONTH) {\n unit = 'd'\n } else if (minutes < MINUTES_IN_YEAR) {\n unit = 'M'\n } else {\n unit = 'Y'\n }\n }\n\n // 0 up to 60 seconds\n if (unit === 's') {\n return localize('xSeconds', seconds, localizeOptions)\n\n // 1 up to 60 mins\n } else if (unit === 'm') {\n return localize('xMinutes', minutes, localizeOptions)\n\n // 1 up to 24 hours\n } else if (unit === 'h') {\n hours = mathPartial(minutes / 60)\n return localize('xHours', hours, localizeOptions)\n\n // 1 up to 30 days\n } else if (unit === 'd') {\n days = mathPartial(minutes / MINUTES_IN_DAY)\n return localize('xDays', days, localizeOptions)\n\n // 1 up to 12 months\n } else if (unit === 'M') {\n months = mathPartial(minutes / MINUTES_IN_MONTH)\n return localize('xMonths', months, localizeOptions)\n\n // 1 year up to max Date\n } else if (unit === 'Y') {\n years = mathPartial(minutes / MINUTES_IN_YEAR)\n return localize('xYears', years, localizeOptions)\n }\n\n throw new Error('Unknown unit: ' + unit)\n}\n\nmodule.exports = distanceInWordsStrict\n","var distanceInWords = require('../distance_in_words/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|String|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = distanceInWordsToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = distanceInWordsToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = distanceInWordsToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWordsToNow (dirtyDate, dirtyOptions) {\n return distanceInWords(Date.now(), dirtyDate, dirtyOptions)\n}\n\nmodule.exports = distanceInWordsToNow\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the array of dates within the specified range.\n *\n * @description\n * Return the array of dates within the specified range.\n *\n * @param {Date|String|Number} startDate - the first date\n * @param {Date|String|Number} endDate - the last date\n * @param {Number} [step=1] - the step between each day\n * @returns {Date[]} the array with starts of days from the day of startDate to the day of endDate\n * @throws {Error} startDate cannot be after endDate\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * var result = eachDay(\n * new Date(2014, 9, 6),\n * new Date(2014, 9, 10)\n * )\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nfunction eachDay (dirtyStartDate, dirtyEndDate, dirtyStep) {\n var startDate = parse(dirtyStartDate)\n var endDate = parse(dirtyEndDate)\n var step = dirtyStep !== undefined ? dirtyStep : 1\n\n var endTime = endDate.getTime()\n\n if (startDate.getTime() > endTime) {\n throw new Error('The first date cannot be after the second date')\n }\n\n var dates = []\n\n var currentDate = startDate\n currentDate.setHours(0, 0, 0, 0)\n\n while (currentDate.getTime() <= endTime) {\n dates.push(parse(currentDate))\n currentDate.setDate(currentDate.getDate() + step)\n }\n\n return dates\n}\n\nmodule.exports = eachDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nfunction endOfDay (dirtyDate) {\n var date = parse(dirtyDate)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an hour\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * var result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\nfunction endOfHour (dirtyDate) {\n var date = parse(dirtyDate)\n date.setMinutes(59, 59, 999)\n return date\n}\n\nmodule.exports = endOfHour\n","var endOfWeek = require('../end_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * var result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfISOWeek (dirtyDate) {\n return endOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = endOfISOWeek\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the end of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the end of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n *\n * @example\n * // The end of an ISO week-numbering year for 2 July 2005:\n * var result = endOfISOYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 23:59:59.999\n */\nfunction endOfISOYear (dirtyDate) {\n var year = getISOYear(dirtyDate)\n var fourthOfJanuaryOfNextYear = new Date(0)\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n var date = startOfISOWeek(fourthOfJanuaryOfNextYear)\n date.setMilliseconds(date.getMilliseconds() - 1)\n return date\n}\n\nmodule.exports = endOfISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a minute\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * var result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\nfunction endOfMinute (dirtyDate) {\n var date = parse(dirtyDate)\n date.setSeconds(59, 999)\n return date\n}\n\nmodule.exports = endOfMinute\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfMonth (dirtyDate) {\n var date = parse(dirtyDate)\n var month = date.getMonth()\n date.setFullYear(date.getFullYear(), month + 1, 0)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * var result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfQuarter (dirtyDate) {\n var date = parse(dirtyDate)\n var currentMonth = date.getMonth()\n var month = currentMonth - currentMonth % 3 + 3\n date.setMonth(month, 0)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a second\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * var result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\nfunction endOfSecond (dirtyDate) {\n var date = parse(dirtyDate)\n date.setMilliseconds(999)\n return date\n}\n\nmodule.exports = endOfSecond\n","var endOfDay = require('../end_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the end of today.\n *\n * @description\n * Return the end of today.\n *\n * @returns {Date} the end of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfToday()\n * //=> Mon Oct 6 2014 23:59:59.999\n */\nfunction endOfToday () {\n return endOfDay(new Date())\n}\n\nmodule.exports = endOfToday\n","/**\n * @category Day Helpers\n * @summary Return the end of tomorrow.\n *\n * @description\n * Return the end of tomorrow.\n *\n * @returns {Date} the end of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfTomorrow()\n * //=> Tue Oct 7 2014 23:59:59.999\n */\nfunction endOfTomorrow () {\n var now = new Date()\n var year = now.getFullYear()\n var month = now.getMonth()\n var day = now.getDate()\n\n var date = new Date(0)\n date.setFullYear(year, month, day + 1)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfTomorrow\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn)\n\n date.setDate(date.getDate() + diff)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfWeek\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * var result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nfunction endOfYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n date.setFullYear(year + 1, 0, 0)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfYear\n","/**\n * @category Day Helpers\n * @summary Return the end of yesterday.\n *\n * @description\n * Return the end of yesterday.\n *\n * @returns {Date} the end of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfYesterday()\n * //=> Sun Oct 5 2014 23:59:59.999\n */\nfunction endOfYesterday () {\n var now = new Date()\n var year = now.getFullYear()\n var month = now.getMonth()\n var day = now.getDate()\n\n var date = new Date(0)\n date.setFullYear(year, month, day - 1)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfYesterday\n","var getDayOfYear = require('../get_day_of_year/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\nvar getISOYear = require('../get_iso_year/index.js')\nvar parse = require('../parse/index.js')\nvar isValid = require('../is_valid/index.js')\nvar enLocale = require('../locale/en/index.js')\n\n/**\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format.\n *\n * Accepted tokens:\n * | Unit | Token | Result examples |\n * |-------------------------|-------|----------------------------------|\n * | Month | M | 1, 2, ..., 12 |\n * | | Mo | 1st, 2nd, ..., 12th |\n * | | MM | 01, 02, ..., 12 |\n * | | MMM | Jan, Feb, ..., Dec |\n * | | MMMM | January, February, ..., December |\n * | Quarter | Q | 1, 2, 3, 4 |\n * | | Qo | 1st, 2nd, 3rd, 4th |\n * | Day of month | D | 1, 2, ..., 31 |\n * | | Do | 1st, 2nd, ..., 31st |\n * | | DD | 01, 02, ..., 31 |\n * | Day of year | DDD | 1, 2, ..., 366 |\n * | | DDDo | 1st, 2nd, ..., 366th |\n * | | DDDD | 001, 002, ..., 366 |\n * | Day of week | d | 0, 1, ..., 6 |\n * | | do | 0th, 1st, ..., 6th |\n * | | dd | Su, Mo, ..., Sa |\n * | | ddd | Sun, Mon, ..., Sat |\n * | | dddd | Sunday, Monday, ..., Saturday |\n * | Day of ISO week | E | 1, 2, ..., 7 |\n * | ISO week | W | 1, 2, ..., 53 |\n * | | Wo | 1st, 2nd, ..., 53rd |\n * | | WW | 01, 02, ..., 53 |\n * | Year | YY | 00, 01, ..., 99 |\n * | | YYYY | 1900, 1901, ..., 2099 |\n * | ISO week-numbering year | GG | 00, 01, ..., 99 |\n * | | GGGG | 1900, 1901, ..., 2099 |\n * | AM/PM | A | AM, PM |\n * | | a | am, pm |\n * | | aa | a.m., p.m. |\n * | Hour | H | 0, 1, ... 23 |\n * | | HH | 00, 01, ... 23 |\n * | | h | 1, 2, ..., 12 |\n * | | hh | 01, 02, ..., 12 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | 1/10 of second | S | 0, 1, ..., 9 |\n * | 1/100 of second | SS | 00, 01, ..., 99 |\n * | Millisecond | SSS | 000, 001, ..., 999 |\n * | Timezone | Z | -01:00, +00:00, ... +12:00 |\n * | | ZZ | -0100, +0000, ..., +1200 |\n * | Seconds timestamp | X | 512969520 |\n * | Milliseconds timestamp | x | 512969520900 |\n *\n * The characters wrapped in square brackets are escaped.\n *\n * The result may vary by locale.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens\n * @param {Object} [options] - the object with options\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the formatted date string\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n * new Date(2014, 1, 11),\n * 'MM/DD/YYYY'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * var eoLocale = require('date-fns/locale/eo')\n * var result = format(\n * new Date(2014, 6, 2),\n * 'Do [de] MMMM YYYY',\n * {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n */\nfunction format (dirtyDate, dirtyFormatStr, dirtyOptions) {\n var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n var options = dirtyOptions || {}\n\n var locale = options.locale\n var localeFormatters = enLocale.format.formatters\n var formattingTokensRegExp = enLocale.format.formattingTokensRegExp\n if (locale && locale.format && locale.format.formatters) {\n localeFormatters = locale.format.formatters\n\n if (locale.format.formattingTokensRegExp) {\n formattingTokensRegExp = locale.format.formattingTokensRegExp\n }\n }\n\n var date = parse(dirtyDate)\n\n if (!isValid(date)) {\n return 'Invalid Date'\n }\n\n var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp)\n\n return formatFn(date)\n}\n\nvar formatters = {\n // Month: 1, 2, ..., 12\n 'M': function (date) {\n return date.getMonth() + 1\n },\n\n // Month: 01, 02, ..., 12\n 'MM': function (date) {\n return addLeadingZeros(date.getMonth() + 1, 2)\n },\n\n // Quarter: 1, 2, 3, 4\n 'Q': function (date) {\n return Math.ceil((date.getMonth() + 1) / 3)\n },\n\n // Day of month: 1, 2, ..., 31\n 'D': function (date) {\n return date.getDate()\n },\n\n // Day of month: 01, 02, ..., 31\n 'DD': function (date) {\n return addLeadingZeros(date.getDate(), 2)\n },\n\n // Day of year: 1, 2, ..., 366\n 'DDD': function (date) {\n return getDayOfYear(date)\n },\n\n // Day of year: 001, 002, ..., 366\n 'DDDD': function (date) {\n return addLeadingZeros(getDayOfYear(date), 3)\n },\n\n // Day of week: 0, 1, ..., 6\n 'd': function (date) {\n return date.getDay()\n },\n\n // Day of ISO week: 1, 2, ..., 7\n 'E': function (date) {\n return date.getDay() || 7\n },\n\n // ISO week: 1, 2, ..., 53\n 'W': function (date) {\n return getISOWeek(date)\n },\n\n // ISO week: 01, 02, ..., 53\n 'WW': function (date) {\n return addLeadingZeros(getISOWeek(date), 2)\n },\n\n // Year: 00, 01, ..., 99\n 'YY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4).substr(2)\n },\n\n // Year: 1900, 1901, ..., 2099\n 'YYYY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4)\n },\n\n // ISO week-numbering year: 00, 01, ..., 99\n 'GG': function (date) {\n return String(getISOYear(date)).substr(2)\n },\n\n // ISO week-numbering year: 1900, 1901, ..., 2099\n 'GGGG': function (date) {\n return getISOYear(date)\n },\n\n // Hour: 0, 1, ... 23\n 'H': function (date) {\n return date.getHours()\n },\n\n // Hour: 00, 01, ..., 23\n 'HH': function (date) {\n return addLeadingZeros(date.getHours(), 2)\n },\n\n // Hour: 1, 2, ..., 12\n 'h': function (date) {\n var hours = date.getHours()\n if (hours === 0) {\n return 12\n } else if (hours > 12) {\n return hours % 12\n } else {\n return hours\n }\n },\n\n // Hour: 01, 02, ..., 12\n 'hh': function (date) {\n return addLeadingZeros(formatters['h'](date), 2)\n },\n\n // Minute: 0, 1, ..., 59\n 'm': function (date) {\n return date.getMinutes()\n },\n\n // Minute: 00, 01, ..., 59\n 'mm': function (date) {\n return addLeadingZeros(date.getMinutes(), 2)\n },\n\n // Second: 0, 1, ..., 59\n 's': function (date) {\n return date.getSeconds()\n },\n\n // Second: 00, 01, ..., 59\n 'ss': function (date) {\n return addLeadingZeros(date.getSeconds(), 2)\n },\n\n // 1/10 of second: 0, 1, ..., 9\n 'S': function (date) {\n return Math.floor(date.getMilliseconds() / 100)\n },\n\n // 1/100 of second: 00, 01, ..., 99\n 'SS': function (date) {\n return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2)\n },\n\n // Millisecond: 000, 001, ..., 999\n 'SSS': function (date) {\n return addLeadingZeros(date.getMilliseconds(), 3)\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n 'Z': function (date) {\n return formatTimezone(date.getTimezoneOffset(), ':')\n },\n\n // Timezone: -0100, +0000, ... +1200\n 'ZZ': function (date) {\n return formatTimezone(date.getTimezoneOffset())\n },\n\n // Seconds timestamp: 512969520\n 'X': function (date) {\n return Math.floor(date.getTime() / 1000)\n },\n\n // Milliseconds timestamp: 512969520900\n 'x': function (date) {\n return date.getTime()\n }\n}\n\nfunction buildFormatFn (formatStr, localeFormatters, formattingTokensRegExp) {\n var array = formatStr.match(formattingTokensRegExp)\n var length = array.length\n\n var i\n var formatter\n for (i = 0; i < length; i++) {\n formatter = localeFormatters[array[i]] || formatters[array[i]]\n if (formatter) {\n array[i] = formatter\n } else {\n array[i] = removeFormattingTokens(array[i])\n }\n }\n\n return function (date) {\n var output = ''\n for (var i = 0; i < length; i++) {\n if (array[i] instanceof Function) {\n output += array[i](date, formatters)\n } else {\n output += array[i]\n }\n }\n return output\n }\n}\n\nfunction removeFormattingTokens (input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|]$/g, '')\n }\n return input.replace(/\\\\/g, '')\n}\n\nfunction formatTimezone (offset, delimeter) {\n delimeter = delimeter || ''\n var sign = offset > 0 ? '-' : '+'\n var absOffset = Math.abs(offset)\n var hours = Math.floor(absOffset / 60)\n var minutes = absOffset % 60\n return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction addLeadingZeros (number, targetLength) {\n var output = Math.abs(number).toString()\n while (output.length < targetLength) {\n output = '0' + output\n }\n return output\n}\n\nmodule.exports = format\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * var result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nfunction getDate (dirtyDate) {\n var date = parse(dirtyDate)\n var dayOfMonth = date.getDate()\n return dayOfMonth\n}\n\nmodule.exports = getDate\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of week\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * var result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nfunction getDay (dirtyDate) {\n var date = parse(dirtyDate)\n var day = date.getDay()\n return day\n}\n\nmodule.exports = getDay\n","var parse = require('../parse/index.js')\nvar startOfYear = require('../start_of_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = differenceInCalendarDays(date, startOfYear(date))\n var dayOfYear = diff + 1\n return dayOfYear\n}\n\nmodule.exports = getDayOfYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nfunction getDaysInMonth (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n var monthIndex = date.getMonth()\n var lastDayOfMonth = new Date(0)\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0)\n lastDayOfMonth.setHours(0, 0, 0, 0)\n return lastDayOfMonth.getDate()\n}\n\nmodule.exports = getDaysInMonth\n","var isLeapYear = require('../is_leap_year/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the number of days in a year of the given date.\n *\n * @description\n * Get the number of days in a year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of days in a year\n *\n * @example\n * // How many days are in 2012?\n * var result = getDaysInYear(new Date(2012, 0, 1))\n * //=> 366\n */\nfunction getDaysInYear (dirtyDate) {\n return isLeapYear(dirtyDate) ? 366 : 365\n}\n\nmodule.exports = getDaysInYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * var result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nfunction getHours (dirtyDate) {\n var date = parse(dirtyDate)\n var hours = date.getHours()\n return hours\n}\n\nmodule.exports = getHours\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * var result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nfunction getISODay (dirtyDate) {\n var date = parse(dirtyDate)\n var day = date.getDay()\n\n if (day === 0) {\n day = 7\n }\n\n return day\n}\n\nmodule.exports = getISODay\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime()\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\nmodule.exports = getISOWeek\n","var startOfISOYear = require('../start_of_iso_year/index.js')\nvar addWeeks = require('../add_weeks/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * @description\n * Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of ISO weeks in a year\n *\n * @example\n * // How many weeks are in ISO week-numbering year 2015?\n * var result = getISOWeeksInYear(new Date(2015, 1, 11))\n * //=> 53\n */\nfunction getISOWeeksInYear (dirtyDate) {\n var thisYear = startOfISOYear(dirtyDate)\n var nextYear = startOfISOYear(addWeeks(thisYear, 60))\n var diff = nextYear.valueOf() - thisYear.valueOf()\n // Round the number of weeks to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK)\n}\n\nmodule.exports = getISOWeeksInYear\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n\n var fourthOfJanuaryOfNextYear = new Date(0)\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear)\n\n var fourthOfJanuaryOfThisYear = new Date(0)\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4)\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0)\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear)\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\nmodule.exports = getISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Get the milliseconds of the given date.\n *\n * @description\n * Get the milliseconds of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the milliseconds\n *\n * @example\n * // Get the milliseconds of 29 February 2012 11:45:05.123:\n * var result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 123\n */\nfunction getMilliseconds (dirtyDate) {\n var date = parse(dirtyDate)\n var milliseconds = date.getMilliseconds()\n return milliseconds\n}\n\nmodule.exports = getMilliseconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * var result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nfunction getMinutes (dirtyDate) {\n var date = parse(dirtyDate)\n var minutes = date.getMinutes()\n return minutes\n}\n\nmodule.exports = getMinutes\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the month\n *\n * @example\n * // Which month is 29 February 2012?\n * var result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nfunction getMonth (dirtyDate) {\n var date = parse(dirtyDate)\n var month = date.getMonth()\n return month\n}\n\nmodule.exports = getMonth\n","var parse = require('../parse/index.js')\n\nvar MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000\n\n/**\n * @category Range Helpers\n * @summary Get the number of days that overlap in two date ranges\n *\n * @description\n * Get the number of days that overlap in two date ranges\n *\n * @param {Date|String|Number} initialRangeStartDate - the start of the initial range\n * @param {Date|String|Number} initialRangeEndDate - the end of the initial range\n * @param {Date|String|Number} comparedRangeStartDate - the start of the range to compare it with\n * @param {Date|String|Number} comparedRangeEndDate - the end of the range to compare it with\n * @returns {Number} the number of days that overlap in two date ranges\n * @throws {Error} startDate of a date range cannot be after its endDate\n *\n * @example\n * // For overlapping date ranges adds 1 for each started overlapping day:\n * getOverlappingDaysInRanges(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n * //=> 3\n *\n * @example\n * // For non-overlapping date ranges returns 0:\n * getOverlappingDaysInRanges(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 21), new Date(2014, 0, 22)\n * )\n * //=> 0\n */\nfunction getOverlappingDaysInRanges (dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {\n var initialStartTime = parse(dirtyInitialRangeStartDate).getTime()\n var initialEndTime = parse(dirtyInitialRangeEndDate).getTime()\n var comparedStartTime = parse(dirtyComparedRangeStartDate).getTime()\n var comparedEndTime = parse(dirtyComparedRangeEndDate).getTime()\n\n if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {\n throw new Error('The start of the range cannot be after the end of the range')\n }\n\n var isOverlapping = initialStartTime < comparedEndTime && comparedStartTime < initialEndTime\n\n if (!isOverlapping) {\n return 0\n }\n\n var overlapStartDate = comparedStartTime < initialStartTime\n ? initialStartTime\n : comparedStartTime\n\n var overlapEndDate = comparedEndTime > initialEndTime\n ? initialEndTime\n : comparedEndTime\n\n var differenceInMs = overlapEndDate - overlapStartDate\n\n return Math.ceil(differenceInMs / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = getOverlappingDaysInRanges\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nfunction getQuarter (dirtyDate) {\n var date = parse(dirtyDate)\n var quarter = Math.floor(date.getMonth() / 3) + 1\n return quarter\n}\n\nmodule.exports = getQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * var result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nfunction getSeconds (dirtyDate) {\n var date = parse(dirtyDate)\n var seconds = date.getSeconds()\n return seconds\n}\n\nmodule.exports = getSeconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the timestamp\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nfunction getTime (dirtyDate) {\n var date = parse(dirtyDate)\n var timestamp = date.getTime()\n return timestamp\n}\n\nmodule.exports = getTime\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the year\n *\n * @example\n * // Which year is 2 July 2014?\n * var result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nfunction getYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n return year\n}\n\nmodule.exports = getYear\n","module.exports = {\n addDays: require('./add_days/index.js'),\n addHours: require('./add_hours/index.js'),\n addISOYears: require('./add_iso_years/index.js'),\n addMilliseconds: require('./add_milliseconds/index.js'),\n addMinutes: require('./add_minutes/index.js'),\n addMonths: require('./add_months/index.js'),\n addQuarters: require('./add_quarters/index.js'),\n addSeconds: require('./add_seconds/index.js'),\n addWeeks: require('./add_weeks/index.js'),\n addYears: require('./add_years/index.js'),\n areRangesOverlapping: require('./are_ranges_overlapping/index.js'),\n closestIndexTo: require('./closest_index_to/index.js'),\n closestTo: require('./closest_to/index.js'),\n compareAsc: require('./compare_asc/index.js'),\n compareDesc: require('./compare_desc/index.js'),\n differenceInCalendarDays: require('./difference_in_calendar_days/index.js'),\n differenceInCalendarISOWeeks: require('./difference_in_calendar_iso_weeks/index.js'),\n differenceInCalendarISOYears: require('./difference_in_calendar_iso_years/index.js'),\n differenceInCalendarMonths: require('./difference_in_calendar_months/index.js'),\n differenceInCalendarQuarters: require('./difference_in_calendar_quarters/index.js'),\n differenceInCalendarWeeks: require('./difference_in_calendar_weeks/index.js'),\n differenceInCalendarYears: require('./difference_in_calendar_years/index.js'),\n differenceInDays: require('./difference_in_days/index.js'),\n differenceInHours: require('./difference_in_hours/index.js'),\n differenceInISOYears: require('./difference_in_iso_years/index.js'),\n differenceInMilliseconds: require('./difference_in_milliseconds/index.js'),\n differenceInMinutes: require('./difference_in_minutes/index.js'),\n differenceInMonths: require('./difference_in_months/index.js'),\n differenceInQuarters: require('./difference_in_quarters/index.js'),\n differenceInSeconds: require('./difference_in_seconds/index.js'),\n differenceInWeeks: require('./difference_in_weeks/index.js'),\n differenceInYears: require('./difference_in_years/index.js'),\n distanceInWords: require('./distance_in_words/index.js'),\n distanceInWordsStrict: require('./distance_in_words_strict/index.js'),\n distanceInWordsToNow: require('./distance_in_words_to_now/index.js'),\n eachDay: require('./each_day/index.js'),\n endOfDay: require('./end_of_day/index.js'),\n endOfHour: require('./end_of_hour/index.js'),\n endOfISOWeek: require('./end_of_iso_week/index.js'),\n endOfISOYear: require('./end_of_iso_year/index.js'),\n endOfMinute: require('./end_of_minute/index.js'),\n endOfMonth: require('./end_of_month/index.js'),\n endOfQuarter: require('./end_of_quarter/index.js'),\n endOfSecond: require('./end_of_second/index.js'),\n endOfToday: require('./end_of_today/index.js'),\n endOfTomorrow: require('./end_of_tomorrow/index.js'),\n endOfWeek: require('./end_of_week/index.js'),\n endOfYear: require('./end_of_year/index.js'),\n endOfYesterday: require('./end_of_yesterday/index.js'),\n format: require('./format/index.js'),\n getDate: require('./get_date/index.js'),\n getDay: require('./get_day/index.js'),\n getDayOfYear: require('./get_day_of_year/index.js'),\n getDaysInMonth: require('./get_days_in_month/index.js'),\n getDaysInYear: require('./get_days_in_year/index.js'),\n getHours: require('./get_hours/index.js'),\n getISODay: require('./get_iso_day/index.js'),\n getISOWeek: require('./get_iso_week/index.js'),\n getISOWeeksInYear: require('./get_iso_weeks_in_year/index.js'),\n getISOYear: require('./get_iso_year/index.js'),\n getMilliseconds: require('./get_milliseconds/index.js'),\n getMinutes: require('./get_minutes/index.js'),\n getMonth: require('./get_month/index.js'),\n getOverlappingDaysInRanges: require('./get_overlapping_days_in_ranges/index.js'),\n getQuarter: require('./get_quarter/index.js'),\n getSeconds: require('./get_seconds/index.js'),\n getTime: require('./get_time/index.js'),\n getYear: require('./get_year/index.js'),\n isAfter: require('./is_after/index.js'),\n isBefore: require('./is_before/index.js'),\n isDate: require('./is_date/index.js'),\n isEqual: require('./is_equal/index.js'),\n isFirstDayOfMonth: require('./is_first_day_of_month/index.js'),\n isFriday: require('./is_friday/index.js'),\n isFuture: require('./is_future/index.js'),\n isLastDayOfMonth: require('./is_last_day_of_month/index.js'),\n isLeapYear: require('./is_leap_year/index.js'),\n isMonday: require('./is_monday/index.js'),\n isPast: require('./is_past/index.js'),\n isSameDay: require('./is_same_day/index.js'),\n isSameHour: require('./is_same_hour/index.js'),\n isSameISOWeek: require('./is_same_iso_week/index.js'),\n isSameISOYear: require('./is_same_iso_year/index.js'),\n isSameMinute: require('./is_same_minute/index.js'),\n isSameMonth: require('./is_same_month/index.js'),\n isSameQuarter: require('./is_same_quarter/index.js'),\n isSameSecond: require('./is_same_second/index.js'),\n isSameWeek: require('./is_same_week/index.js'),\n isSameYear: require('./is_same_year/index.js'),\n isSaturday: require('./is_saturday/index.js'),\n isSunday: require('./is_sunday/index.js'),\n isThisHour: require('./is_this_hour/index.js'),\n isThisISOWeek: require('./is_this_iso_week/index.js'),\n isThisISOYear: require('./is_this_iso_year/index.js'),\n isThisMinute: require('./is_this_minute/index.js'),\n isThisMonth: require('./is_this_month/index.js'),\n isThisQuarter: require('./is_this_quarter/index.js'),\n isThisSecond: require('./is_this_second/index.js'),\n isThisWeek: require('./is_this_week/index.js'),\n isThisYear: require('./is_this_year/index.js'),\n isThursday: require('./is_thursday/index.js'),\n isToday: require('./is_today/index.js'),\n isTomorrow: require('./is_tomorrow/index.js'),\n isTuesday: require('./is_tuesday/index.js'),\n isValid: require('./is_valid/index.js'),\n isWednesday: require('./is_wednesday/index.js'),\n isWeekend: require('./is_weekend/index.js'),\n isWithinRange: require('./is_within_range/index.js'),\n isYesterday: require('./is_yesterday/index.js'),\n lastDayOfISOWeek: require('./last_day_of_iso_week/index.js'),\n lastDayOfISOYear: require('./last_day_of_iso_year/index.js'),\n lastDayOfMonth: require('./last_day_of_month/index.js'),\n lastDayOfQuarter: require('./last_day_of_quarter/index.js'),\n lastDayOfWeek: require('./last_day_of_week/index.js'),\n lastDayOfYear: require('./last_day_of_year/index.js'),\n max: require('./max/index.js'),\n min: require('./min/index.js'),\n parse: require('./parse/index.js'),\n setDate: require('./set_date/index.js'),\n setDay: require('./set_day/index.js'),\n setDayOfYear: require('./set_day_of_year/index.js'),\n setHours: require('./set_hours/index.js'),\n setISODay: require('./set_iso_day/index.js'),\n setISOWeek: require('./set_iso_week/index.js'),\n setISOYear: require('./set_iso_year/index.js'),\n setMilliseconds: require('./set_milliseconds/index.js'),\n setMinutes: require('./set_minutes/index.js'),\n setMonth: require('./set_month/index.js'),\n setQuarter: require('./set_quarter/index.js'),\n setSeconds: require('./set_seconds/index.js'),\n setYear: require('./set_year/index.js'),\n startOfDay: require('./start_of_day/index.js'),\n startOfHour: require('./start_of_hour/index.js'),\n startOfISOWeek: require('./start_of_iso_week/index.js'),\n startOfISOYear: require('./start_of_iso_year/index.js'),\n startOfMinute: require('./start_of_minute/index.js'),\n startOfMonth: require('./start_of_month/index.js'),\n startOfQuarter: require('./start_of_quarter/index.js'),\n startOfSecond: require('./start_of_second/index.js'),\n startOfToday: require('./start_of_today/index.js'),\n startOfTomorrow: require('./start_of_tomorrow/index.js'),\n startOfWeek: require('./start_of_week/index.js'),\n startOfYear: require('./start_of_year/index.js'),\n startOfYesterday: require('./start_of_yesterday/index.js'),\n subDays: require('./sub_days/index.js'),\n subHours: require('./sub_hours/index.js'),\n subISOYears: require('./sub_iso_years/index.js'),\n subMilliseconds: require('./sub_milliseconds/index.js'),\n subMinutes: require('./sub_minutes/index.js'),\n subMonths: require('./sub_months/index.js'),\n subQuarters: require('./sub_quarters/index.js'),\n subSeconds: require('./sub_seconds/index.js'),\n subWeeks: require('./sub_weeks/index.js'),\n subYears: require('./sub_years/index.js')\n}\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|String|Number} date - the date that should be after the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nfunction isAfter (dirtyDate, dirtyDateToCompare) {\n var date = parse(dirtyDate)\n var dateToCompare = parse(dirtyDateToCompare)\n return date.getTime() > dateToCompare.getTime()\n}\n\nmodule.exports = isAfter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|String|Number} date - the date that should be before the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nfunction isBefore (dirtyDate, dirtyDateToCompare) {\n var date = parse(dirtyDate)\n var dateToCompare = parse(dirtyDateToCompare)\n return date.getTime() < dateToCompare.getTime()\n}\n\nmodule.exports = isBefore\n","/**\n * @category Common Helpers\n * @summary Is the given argument an instance of Date?\n *\n * @description\n * Is the given argument an instance of Date?\n *\n * @param {*} argument - the argument to check\n * @returns {Boolean} the given argument is an instance of Date\n *\n * @example\n * // Is 'mayonnaise' a Date?\n * var result = isDate('mayonnaise')\n * //=> false\n */\nfunction isDate (argument) {\n return argument instanceof Date\n}\n\nmodule.exports = isDate\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0)\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nfunction isEqual (dirtyLeftDate, dirtyRightDate) {\n var dateLeft = parse(dirtyLeftDate)\n var dateRight = parse(dirtyRightDate)\n return dateLeft.getTime() === dateRight.getTime()\n}\n\nmodule.exports = isEqual\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Is the given date the first day of a month?\n *\n * @description\n * Is the given date the first day of a month?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is the first day of a month\n *\n * @example\n * // Is 1 September 2014 the first day of a month?\n * var result = isFirstDayOfMonth(new Date(2014, 8, 1))\n * //=> true\n */\nfunction isFirstDayOfMonth (dirtyDate) {\n return parse(dirtyDate).getDate() === 1\n}\n\nmodule.exports = isFirstDayOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Friday?\n *\n * @description\n * Is the given date Friday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Friday\n *\n * @example\n * // Is 26 September 2014 Friday?\n * var result = isFriday(new Date(2014, 8, 26))\n * //=> true\n */\nfunction isFriday (dirtyDate) {\n return parse(dirtyDate).getDay() === 5\n}\n\nmodule.exports = isFriday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date in the future?\n *\n * @description\n * Is the given date in the future?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the future\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * var result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nfunction isFuture (dirtyDate) {\n return parse(dirtyDate).getTime() > new Date().getTime()\n}\n\nmodule.exports = isFuture\n","var parse = require('../parse/index.js')\nvar endOfDay = require('../end_of_day/index.js')\nvar endOfMonth = require('../end_of_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nfunction isLastDayOfMonth (dirtyDate) {\n var date = parse(dirtyDate)\n return endOfDay(date).getTime() === endOfMonth(date).getTime()\n}\n\nmodule.exports = isLastDayOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Is the given date in the leap year?\n *\n * @description\n * Is the given date in the leap year?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the leap year\n *\n * @example\n * // Is 1 September 2012 in the leap year?\n * var result = isLeapYear(new Date(2012, 8, 1))\n * //=> true\n */\nfunction isLeapYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0\n}\n\nmodule.exports = isLeapYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Monday?\n *\n * @description\n * Is the given date Monday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Monday\n *\n * @example\n * // Is 22 September 2014 Monday?\n * var result = isMonday(new Date(2014, 8, 22))\n * //=> true\n */\nfunction isMonday (dirtyDate) {\n return parse(dirtyDate).getDay() === 1\n}\n\nmodule.exports = isMonday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date in the past?\n *\n * @description\n * Is the given date in the past?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the past\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * var result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isPast (dirtyDate) {\n return parse(dirtyDate).getTime() < new Date().getTime()\n}\n\nmodule.exports = isPast\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(\n * new Date(2014, 8, 4, 6, 0),\n * new Date(2014, 8, 4, 18, 0)\n * )\n * //=> true\n */\nfunction isSameDay (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft)\n var dateRightStartOfDay = startOfDay(dirtyDateRight)\n\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime()\n}\n\nmodule.exports = isSameDay\n","var startOfHour = require('../start_of_hour/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Are the given dates in the same hour?\n *\n * @description\n * Are the given dates in the same hour?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same hour\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * var result = isSameHour(\n * new Date(2014, 8, 4, 6, 0),\n * new Date(2014, 8, 4, 6, 30)\n * )\n * //=> true\n */\nfunction isSameHour (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfHour = startOfHour(dirtyDateLeft)\n var dateRightStartOfHour = startOfHour(dirtyDateRight)\n\n return dateLeftStartOfHour.getTime() === dateRightStartOfHour.getTime()\n}\n\nmodule.exports = isSameHour\n","var isSameWeek = require('../is_same_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Are the given dates in the same ISO week?\n *\n * @description\n * Are the given dates in the same ISO week?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week\n *\n * @example\n * // Are 1 September 2014 and 7 September 2014 in the same ISO week?\n * var result = isSameISOWeek(\n * new Date(2014, 8, 1),\n * new Date(2014, 8, 7)\n * )\n * //=> true\n */\nfunction isSameISOWeek (dirtyDateLeft, dirtyDateRight) {\n return isSameWeek(dirtyDateLeft, dirtyDateRight, {weekStartsOn: 1})\n}\n\nmodule.exports = isSameISOWeek\n","var startOfISOYear = require('../start_of_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Are the given dates in the same ISO week-numbering year?\n *\n * @description\n * Are the given dates in the same ISO week-numbering year?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week-numbering year\n *\n * @example\n * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?\n * var result = isSameISOYear(\n * new Date(2003, 11, 29),\n * new Date(2005, 0, 2)\n * )\n * //=> true\n */\nfunction isSameISOYear (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfYear = startOfISOYear(dirtyDateLeft)\n var dateRightStartOfYear = startOfISOYear(dirtyDateRight)\n\n return dateLeftStartOfYear.getTime() === dateRightStartOfYear.getTime()\n}\n\nmodule.exports = isSameISOYear\n","var startOfMinute = require('../start_of_minute/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Are the given dates in the same minute?\n *\n * @description\n * Are the given dates in the same minute?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same minute\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n * // in the same minute?\n * var result = isSameMinute(\n * new Date(2014, 8, 4, 6, 30),\n * new Date(2014, 8, 4, 6, 30, 15)\n * )\n * //=> true\n */\nfunction isSameMinute (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfMinute = startOfMinute(dirtyDateLeft)\n var dateRightStartOfMinute = startOfMinute(dirtyDateRight)\n\n return dateLeftStartOfMinute.getTime() === dateRightStartOfMinute.getTime()\n}\n\nmodule.exports = isSameMinute\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(\n * new Date(2014, 8, 2),\n * new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameMonth (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getFullYear() === dateRight.getFullYear() &&\n dateLeft.getMonth() === dateRight.getMonth()\n}\n\nmodule.exports = isSameMonth\n","var startOfQuarter = require('../start_of_quarter/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(\n * new Date(2014, 0, 1),\n * new Date(2014, 2, 8)\n * )\n * //=> true\n */\nfunction isSameQuarter (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft)\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight)\n\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime()\n}\n\nmodule.exports = isSameQuarter\n","var startOfSecond = require('../start_of_second/index.js')\n\n/**\n * @category Second Helpers\n * @summary Are the given dates in the same second?\n *\n * @description\n * Are the given dates in the same second?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same second\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n * // in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n */\nfunction isSameSecond (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft)\n var dateRightStartOfSecond = startOfSecond(dirtyDateRight)\n\n return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime()\n}\n\nmodule.exports = isSameSecond\n","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category Week Helpers\n * @summary Are the given dates in the same week?\n *\n * @description\n * Are the given dates in the same week?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the dates are in the same week\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n * new Date(2014, 7, 31),\n * new Date(2014, 8, 4)\n * )\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n * new Date(2014, 7, 31),\n * new Date(2014, 8, 4),\n * {weekStartsOn: 1}\n * )\n * //=> false\n */\nfunction isSameWeek (dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n var dateLeftStartOfWeek = startOfWeek(dirtyDateLeft, dirtyOptions)\n var dateRightStartOfWeek = startOfWeek(dirtyDateRight, dirtyOptions)\n\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime()\n}\n\nmodule.exports = isSameWeek\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(\n * new Date(2014, 8, 2),\n * new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameYear (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getFullYear() === dateRight.getFullYear()\n}\n\nmodule.exports = isSameYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Saturday?\n *\n * @description\n * Is the given date Saturday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Saturday\n *\n * @example\n * // Is 27 September 2014 Saturday?\n * var result = isSaturday(new Date(2014, 8, 27))\n * //=> true\n */\nfunction isSaturday (dirtyDate) {\n return parse(dirtyDate).getDay() === 6\n}\n\nmodule.exports = isSaturday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Sunday?\n *\n * @description\n * Is the given date Sunday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Sunday\n *\n * @example\n * // Is 21 September 2014 Sunday?\n * var result = isSunday(new Date(2014, 8, 21))\n * //=> true\n */\nfunction isSunday (dirtyDate) {\n return parse(dirtyDate).getDay() === 0\n}\n\nmodule.exports = isSunday\n","var isSameHour = require('../is_same_hour/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Is the given date in the same hour as the current date?\n *\n * @description\n * Is the given date in the same hour as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this hour\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:00:00 in this hour?\n * var result = isThisHour(new Date(2014, 8, 25, 18))\n * //=> true\n */\nfunction isThisHour (dirtyDate) {\n return isSameHour(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisHour\n","var isSameISOWeek = require('../is_same_iso_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Is the given date in the same ISO week as the current date?\n *\n * @description\n * Is the given date in the same ISO week as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this ISO week\n *\n * @example\n * // If today is 25 September 2014, is 22 September 2014 in this ISO week?\n * var result = isThisISOWeek(new Date(2014, 8, 22))\n * //=> true\n */\nfunction isThisISOWeek (dirtyDate) {\n return isSameISOWeek(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisISOWeek\n","var isSameISOYear = require('../is_same_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Is the given date in the same ISO week-numbering year as the current date?\n *\n * @description\n * Is the given date in the same ISO week-numbering year as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this ISO week-numbering year\n *\n * @example\n * // If today is 25 September 2014,\n * // is 30 December 2013 in this ISO week-numbering year?\n * var result = isThisISOYear(new Date(2013, 11, 30))\n * //=> true\n */\nfunction isThisISOYear (dirtyDate) {\n return isSameISOYear(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisISOYear\n","var isSameMinute = require('../is_same_minute/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Is the given date in the same minute as the current date?\n *\n * @description\n * Is the given date in the same minute as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this minute\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:00 in this minute?\n * var result = isThisMinute(new Date(2014, 8, 25, 18, 30))\n * //=> true\n */\nfunction isThisMinute (dirtyDate) {\n return isSameMinute(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisMinute\n","var isSameMonth = require('../is_same_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Is the given date in the same month as the current date?\n *\n * @description\n * Is the given date in the same month as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this month\n *\n * @example\n * // If today is 25 September 2014, is 15 September 2014 in this month?\n * var result = isThisMonth(new Date(2014, 8, 15))\n * //=> true\n */\nfunction isThisMonth (dirtyDate) {\n return isSameMonth(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisMonth\n","var isSameQuarter = require('../is_same_quarter/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Is the given date in the same quarter as the current date?\n *\n * @description\n * Is the given date in the same quarter as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this quarter\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this quarter?\n * var result = isThisQuarter(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisQuarter (dirtyDate) {\n return isSameQuarter(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisQuarter\n","var isSameSecond = require('../is_same_second/index.js')\n\n/**\n * @category Second Helpers\n * @summary Is the given date in the same second as the current date?\n *\n * @description\n * Is the given date in the same second as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this second\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:15.000 in this second?\n * var result = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))\n * //=> true\n */\nfunction isThisSecond (dirtyDate) {\n return isSameSecond(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisSecond\n","var isSameWeek = require('../is_same_week/index.js')\n\n/**\n * @category Week Helpers\n * @summary Is the given date in the same week as the current date?\n *\n * @description\n * Is the given date in the same week as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the date is in this week\n *\n * @example\n * // If today is 25 September 2014, is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21))\n * //=> true\n *\n * @example\n * // If today is 25 September 2014 and week starts with Monday\n * // is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21), {weekStartsOn: 1})\n * //=> false\n */\nfunction isThisWeek (dirtyDate, dirtyOptions) {\n return isSameWeek(new Date(), dirtyDate, dirtyOptions)\n}\n\nmodule.exports = isThisWeek\n","var isSameYear = require('../is_same_year/index.js')\n\n/**\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this year\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * var result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisYear (dirtyDate) {\n return isSameYear(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Thursday?\n *\n * @description\n * Is the given date Thursday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Thursday\n *\n * @example\n * // Is 25 September 2014 Thursday?\n * var result = isThursday(new Date(2014, 8, 25))\n * //=> true\n */\nfunction isThursday (dirtyDate) {\n return parse(dirtyDate).getDay() === 4\n}\n\nmodule.exports = isThursday\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Is the given date today?\n *\n * @description\n * Is the given date today?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nfunction isToday (dirtyDate) {\n return startOfDay(dirtyDate).getTime() === startOfDay(new Date()).getTime()\n}\n\nmodule.exports = isToday\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Is the given date tomorrow?\n *\n * @description\n * Is the given date tomorrow?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is tomorrow\n *\n * @example\n * // If today is 6 October 2014, is 7 October 14:00:00 tomorrow?\n * var result = isTomorrow(new Date(2014, 9, 7, 14, 0))\n * //=> true\n */\nfunction isTomorrow (dirtyDate) {\n var tomorrow = new Date()\n tomorrow.setDate(tomorrow.getDate() + 1)\n return startOfDay(dirtyDate).getTime() === startOfDay(tomorrow).getTime()\n}\n\nmodule.exports = isTomorrow\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Tuesday?\n *\n * @description\n * Is the given date Tuesday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Tuesday\n *\n * @example\n * // Is 23 September 2014 Tuesday?\n * var result = isTuesday(new Date(2014, 8, 23))\n * //=> true\n */\nfunction isTuesday (dirtyDate) {\n return parse(dirtyDate).getDay() === 2\n}\n\nmodule.exports = isTuesday\n","var isDate = require('../is_date/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate) {\n if (isDate(dirtyDate)) {\n return !isNaN(dirtyDate)\n } else {\n throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date')\n }\n}\n\nmodule.exports = isValid\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Wednesday?\n *\n * @description\n * Is the given date Wednesday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Wednesday\n *\n * @example\n * // Is 24 September 2014 Wednesday?\n * var result = isWednesday(new Date(2014, 8, 24))\n * //=> true\n */\nfunction isWednesday (dirtyDate) {\n return parse(dirtyDate).getDay() === 3\n}\n\nmodule.exports = isWednesday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date falls on a weekend\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * var result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\nfunction isWeekend (dirtyDate) {\n var date = parse(dirtyDate)\n var day = date.getDay()\n return day === 0 || day === 6\n}\n\nmodule.exports = isWeekend\n","var parse = require('../parse/index.js')\n\n/**\n * @category Range Helpers\n * @summary Is the given date within the range?\n *\n * @description\n * Is the given date within the range?\n *\n * @param {Date|String|Number} date - the date to check\n * @param {Date|String|Number} startDate - the start of range\n * @param {Date|String|Number} endDate - the end of range\n * @returns {Boolean} the date is within the range\n * @throws {Error} startDate cannot be after endDate\n *\n * @example\n * // For the date within the range:\n * isWithinRange(\n * new Date(2014, 0, 3), new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n * //=> true\n *\n * @example\n * // For the date outside of the range:\n * isWithinRange(\n * new Date(2014, 0, 10), new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n * //=> false\n */\nfunction isWithinRange (dirtyDate, dirtyStartDate, dirtyEndDate) {\n var time = parse(dirtyDate).getTime()\n var startTime = parse(dirtyStartDate).getTime()\n var endTime = parse(dirtyEndDate).getTime()\n\n if (startTime > endTime) {\n throw new Error('The start of the range cannot be after the end of the range')\n }\n\n return time >= startTime && time <= endTime\n}\n\nmodule.exports = isWithinRange\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Is the given date yesterday?\n *\n * @description\n * Is the given date yesterday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * var result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\nfunction isYesterday (dirtyDate) {\n var yesterday = new Date()\n yesterday.setDate(yesterday.getDate() - 1)\n return startOfDay(dirtyDate).getTime() === startOfDay(yesterday).getTime()\n}\n\nmodule.exports = isYesterday\n","var lastDayOfWeek = require('../last_day_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the last day of an ISO week for the given date.\n *\n * @description\n * Return the last day of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of an ISO week\n *\n * @example\n * // The last day of an ISO week for 2 September 2014 11:55:00:\n * var result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfISOWeek (dirtyDate) {\n return lastDayOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = lastDayOfISOWeek\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the last day of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the last day of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n *\n * @example\n * // The last day of an ISO week-numbering year for 2 July 2005:\n * var result = lastDayOfISOYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 00:00:00\n */\nfunction lastDayOfISOYear (dirtyDate) {\n var year = getISOYear(dirtyDate)\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(year + 1, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n var date = startOfISOWeek(fourthOfJanuary)\n date.setDate(date.getDate() - 1)\n return date\n}\n\nmodule.exports = lastDayOfISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * var result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfMonth (dirtyDate) {\n var date = parse(dirtyDate)\n var month = date.getMonth()\n date.setFullYear(date.getFullYear(), month + 1, 0)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = lastDayOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Return the last day of a year quarter for the given date.\n *\n * @description\n * Return the last day of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a quarter\n *\n * @example\n * // The last day of a quarter for 2 September 2014 11:55:00:\n * var result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfQuarter (dirtyDate) {\n var date = parse(dirtyDate)\n var currentMonth = date.getMonth()\n var month = currentMonth - currentMonth % 3 + 3\n date.setMonth(month, 0)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = lastDayOfQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the last day of a week\n *\n * @example\n * // The last day of a week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn)\n\n date.setHours(0, 0, 0, 0)\n date.setDate(date.getDate() + diff)\n return date\n}\n\nmodule.exports = lastDayOfWeek\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the last day of a year for the given date.\n *\n * @description\n * Return the last day of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a year\n *\n * @example\n * // The last day of a year for 2 September 2014 11:55:00:\n * var result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 00:00:00\n */\nfunction lastDayOfYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n date.setFullYear(year + 1, 0, 0)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = lastDayOfYear\n","var commonFormatterKeys = [\n 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',\n 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',\n 'H', 'HH', 'h', 'hh', 'm', 'mm',\n 's', 'ss', 'S', 'SS', 'SSS',\n 'Z', 'ZZ', 'X', 'x'\n]\n\nfunction buildFormattingTokensRegExp (formatters) {\n var formatterKeys = []\n for (var key in formatters) {\n if (formatters.hasOwnProperty(key)) {\n formatterKeys.push(key)\n }\n }\n\n var formattingTokens = commonFormatterKeys\n .concat(formatterKeys)\n .sort()\n .reverse()\n var formattingTokensRegExp = new RegExp(\n '(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'\n )\n\n return formattingTokensRegExp\n}\n\nmodule.exports = buildFormattingTokensRegExp\n","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result\n } else {\n return result + ' ago'\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n","var buildFormattingTokensRegExp = require('../../_lib/build_formatting_tokens_reg_exp/index.js')\n\nfunction buildFormatLocale () {\n // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n var meridiemUppercase = ['AM', 'PM']\n var meridiemLowercase = ['am', 'pm']\n var meridiemFull = ['a.m.', 'p.m.']\n\n var formatters = {\n // Month: Jan, Feb, ..., Dec\n 'MMM': function (date) {\n return months3char[date.getMonth()]\n },\n\n // Month: January, February, ..., December\n 'MMMM': function (date) {\n return monthsFull[date.getMonth()]\n },\n\n // Day of week: Su, Mo, ..., Sa\n 'dd': function (date) {\n return weekdays2char[date.getDay()]\n },\n\n // Day of week: Sun, Mon, ..., Sat\n 'ddd': function (date) {\n return weekdays3char[date.getDay()]\n },\n\n // Day of week: Sunday, Monday, ..., Saturday\n 'dddd': function (date) {\n return weekdaysFull[date.getDay()]\n },\n\n // AM, PM\n 'A': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]\n },\n\n // am, pm\n 'a': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]\n },\n\n // a.m., p.m.\n 'aa': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]\n }\n }\n\n // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']\n ordinalFormatters.forEach(function (formatterToken) {\n formatters[formatterToken + 'o'] = function (date, formatters) {\n return ordinal(formatters[formatterToken](date))\n }\n })\n\n return {\n formatters: formatters,\n formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n }\n}\n\nfunction ordinal (number) {\n var rem100 = number % 100\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st'\n case 2:\n return number + 'nd'\n case 3:\n return number + 'rd'\n }\n }\n return number + 'th'\n}\n\nmodule.exports = buildFormatLocale\n","var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n distanceInWords: buildDistanceInWordsLocale(),\n format: buildFormatLocale()\n}\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {...(Date|String|Number)} dates - the dates to compare\n * @returns {Date} the latest of the dates\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max(\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * )\n * //=> Sun Jul 02 1995 00:00:00\n */\nfunction max () {\n var dirtyDates = Array.prototype.slice.call(arguments)\n var dates = dirtyDates.map(function (dirtyDate) {\n return parse(dirtyDate)\n })\n var latestTimestamp = Math.max.apply(null, dates)\n return new Date(latestTimestamp)\n}\n\nmodule.exports = max\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the earliest of the given dates.\n *\n * @description\n * Return the earliest of the given dates.\n *\n * @param {...(Date|String|Number)} dates - the dates to compare\n * @returns {Date} the earliest of the dates\n *\n * @example\n * // Which of these dates is the earliest?\n * var result = min(\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * )\n * //=> Wed Feb 11 1987 00:00:00\n */\nfunction min () {\n var dirtyDates = Array.prototype.slice.call(arguments)\n var dates = dirtyDates.map(function (dirtyDate) {\n return parse(dirtyDate)\n })\n var earliestTimestamp = Math.min.apply(null, dates)\n return new Date(earliestTimestamp)\n}\n\nmodule.exports = min\n","var getTimezoneOffsetInMilliseconds = require('../_lib/getTimezoneOffsetInMilliseconds/index.js')\nvar isDate = require('../is_date/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar parseTokenDateTimeDelimeter = /[T ]/\nvar parseTokenPlainTime = /:/\n\n// year tokens\nvar parseTokenYY = /^(\\d{2})$/\nvar parseTokensYYY = [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n]\n\nvar parseTokenYYYY = /^(\\d{4})/\nvar parseTokensYYYYY = [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n]\n\n// date tokens\nvar parseTokenMM = /^-(\\d{2})$/\nvar parseTokenDDD = /^-?(\\d{3})$/\nvar parseTokenMMDD = /^-?(\\d{2})-?(\\d{2})$/\nvar parseTokenWww = /^-?W(\\d{2})$/\nvar parseTokenWwwD = /^-?W(\\d{2})-?(\\d{1})$/\n\n// time tokens\nvar parseTokenHH = /^(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMM = /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMMSS = /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\n\n// timezone tokens\nvar parseTokenTimezone = /([Z+-].*)$/\nvar parseTokenTimezoneZ = /^(Z)$/\nvar parseTokenTimezoneHH = /^([+-])(\\d{2})$/\nvar parseTokenTimezoneHHMM = /^([+-])(\\d{2}):?(\\d{2})$/\n\n/**\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If all above fails, the function passes the given argument to Date constructor.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Object} [options] - the object with options\n * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parse('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Parse string '+02014101',\n * // if the additional number of digits in the extended year format is 1:\n * var result = parse('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parse (argument, dirtyOptions) {\n if (isDate(argument)) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (typeof argument !== 'string') {\n return new Date(argument)\n }\n\n var options = dirtyOptions || {}\n var additionalDigits = options.additionalDigits\n if (additionalDigits == null) {\n additionalDigits = DEFAULT_ADDITIONAL_DIGITS\n } else {\n additionalDigits = Number(additionalDigits)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone) * MILLISECONDS_IN_MINUTE\n } else {\n var fullTime = timestamp + time\n var fullTimeDate = new Date(fullTime)\n\n offset = getTimezoneOffsetInMilliseconds(fullTimeDate)\n\n // Adjust time when it's coming from DST\n var fullTimeDateNextDay = new Date(fullTime)\n fullTimeDateNextDay.setDate(fullTimeDate.getDate() + 1)\n var offsetDiff =\n getTimezoneOffsetInMilliseconds(fullTimeDateNextDay) -\n getTimezoneOffsetInMilliseconds(fullTimeDate)\n if (offsetDiff > 0) {\n offset += offsetDiff\n }\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(argument)\n }\n}\n\nfunction splitDateString (dateString) {\n var dateStrings = {}\n var array = dateString.split(parseTokenDateTimeDelimeter)\n var timeString\n\n if (parseTokenPlainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n }\n\n if (timeString) {\n var token = parseTokenTimezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n var parseTokenYYY = parseTokensYYY[additionalDigits]\n var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate (dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = parseTokenMM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = parseTokenDDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // YYYY-MM-DD or YYYYMMDD\n token = parseTokenMMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = parseTokenWww.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n return dayOfISOYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = parseTokenWwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n return dayOfISOYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime (timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = parseTokenHH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = parseTokenHHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE\n }\n\n // hh:mm:ss or hhmmss\n token = parseTokenHHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE +\n seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction parseTimezone (timezoneString) {\n var token\n var absoluteOffset\n\n // Z\n token = parseTokenTimezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n // ±hh\n token = parseTokenTimezoneHH.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = parseTokenTimezoneHHMM.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n return 0\n}\n\nfunction dayOfISOYear (isoYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\nmodule.exports = parse\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} dayOfMonth - the day of the month of the new date\n * @returns {Date} the new date with the day of the month setted\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * var result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction setDate (dirtyDate, dirtyDayOfMonth) {\n var date = parse(dirtyDate)\n var dayOfMonth = Number(dirtyDayOfMonth)\n date.setDate(dayOfMonth)\n return date\n}\n\nmodule.exports = setDate\n","var parse = require('../parse/index.js')\nvar addDays = require('../add_days/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} day - the day of the week of the new date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the new date with the day of the week setted\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If week starts with Monday, set Sunday to 1 September 2014:\n * var result = setDay(new Date(2014, 8, 1), 0, {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setDay (dirtyDate, dirtyDay, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n var date = parse(dirtyDate)\n var day = Number(dirtyDay)\n var currentDay = date.getDay()\n\n var remainder = day % 7\n var dayIndex = (remainder + 7) % 7\n\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay\n return addDays(date, diff)\n}\n\nmodule.exports = setDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Set the day of the year to the given date.\n *\n * @description\n * Set the day of the year to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} dayOfYear - the day of the year of the new date\n * @returns {Date} the new date with the day of the year setted\n *\n * @example\n * // Set the 2nd day of the year to 2 July 2014:\n * var result = setDayOfYear(new Date(2014, 6, 2), 2)\n * //=> Thu Jan 02 2014 00:00:00\n */\nfunction setDayOfYear (dirtyDate, dirtyDayOfYear) {\n var date = parse(dirtyDate)\n var dayOfYear = Number(dirtyDayOfYear)\n date.setMonth(0)\n date.setDate(dayOfYear)\n return date\n}\n\nmodule.exports = setDayOfYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours setted\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nfunction setHours (dirtyDate, dirtyHours) {\n var date = parse(dirtyDate)\n var hours = Number(dirtyHours)\n date.setHours(hours)\n return date\n}\n\nmodule.exports = setHours\n","var parse = require('../parse/index.js')\nvar addDays = require('../add_days/index.js')\nvar getISODay = require('../get_iso_day/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} day - the day of the ISO week of the new date\n * @returns {Date} the new date with the day of the ISO week setted\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setISODay (dirtyDate, dirtyDay) {\n var date = parse(dirtyDate)\n var day = Number(dirtyDay)\n var currentDay = getISODay(date)\n var diff = day - currentDay\n return addDays(date, diff)\n}\n\nmodule.exports = setISODay\n","var parse = require('../parse/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} isoWeek - the ISO week of the new date\n * @returns {Date} the new date with the ISO week setted\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * var result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nfunction setISOWeek (dirtyDate, dirtyISOWeek) {\n var date = parse(dirtyDate)\n var isoWeek = Number(dirtyISOWeek)\n var diff = getISOWeek(date) - isoWeek\n date.setDate(date.getDate() - diff * 7)\n return date\n}\n\nmodule.exports = setISOWeek\n","var parse = require('../parse/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Set the ISO week-numbering year to the given date.\n *\n * @description\n * Set the ISO week-numbering year to the given date,\n * saving the week number and the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} isoYear - the ISO week-numbering year of the new date\n * @returns {Date} the new date with the ISO week-numbering year setted\n *\n * @example\n * // Set ISO week-numbering year 2007 to 29 December 2008:\n * var result = setISOYear(new Date(2008, 11, 29), 2007)\n * //=> Mon Jan 01 2007 00:00:00\n */\nfunction setISOYear (dirtyDate, dirtyISOYear) {\n var date = parse(dirtyDate)\n var isoYear = Number(dirtyISOYear)\n var diff = differenceInCalendarDays(date, startOfISOYear(date))\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(isoYear, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n date = startOfISOYear(fourthOfJanuary)\n date.setDate(date.getDate() + diff)\n return date\n}\n\nmodule.exports = setISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} milliseconds - the milliseconds of the new date\n * @returns {Date} the new date with the milliseconds setted\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * var result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nfunction setMilliseconds (dirtyDate, dirtyMilliseconds) {\n var date = parse(dirtyDate)\n var milliseconds = Number(dirtyMilliseconds)\n date.setMilliseconds(milliseconds)\n return date\n}\n\nmodule.exports = setMilliseconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes setted\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nfunction setMinutes (dirtyDate, dirtyMinutes) {\n var date = parse(dirtyDate)\n var minutes = Number(dirtyMinutes)\n date.setMinutes(minutes)\n return date\n}\n\nmodule.exports = setMinutes\n","var parse = require('../parse/index.js')\nvar getDaysInMonth = require('../get_days_in_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month setted\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nfunction setMonth (dirtyDate, dirtyMonth) {\n var date = parse(dirtyDate)\n var month = Number(dirtyMonth)\n var year = date.getFullYear()\n var day = date.getDate()\n\n var dateWithDesiredMonth = new Date(0)\n dateWithDesiredMonth.setFullYear(year, month, 15)\n dateWithDesiredMonth.setHours(0, 0, 0, 0)\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth)\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth))\n return date\n}\n\nmodule.exports = setMonth\n","var parse = require('../parse/index.js')\nvar setMonth = require('../set_month/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter setted\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * var result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nfunction setQuarter (dirtyDate, dirtyQuarter) {\n var date = parse(dirtyDate)\n var quarter = Number(dirtyQuarter)\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1\n var diff = quarter - oldQuarter\n return setMonth(date, date.getMonth() + diff * 3)\n}\n\nmodule.exports = setQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds setted\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * var result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nfunction setSeconds (dirtyDate, dirtySeconds) {\n var date = parse(dirtyDate)\n var seconds = Number(dirtySeconds)\n date.setSeconds(seconds)\n return date\n}\n\nmodule.exports = setSeconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year setted\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * var result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nfunction setYear (dirtyDate, dirtyYear) {\n var date = parse(dirtyDate)\n var year = Number(dirtyYear)\n date.setFullYear(year)\n return date\n}\n\nmodule.exports = setYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay (dirtyDate) {\n var date = parse(dirtyDate)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * var result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nfunction startOfHour (dirtyDate) {\n var date = parse(dirtyDate)\n date.setMinutes(0, 0, 0)\n return date\n}\n\nmodule.exports = startOfHour\n","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek (dirtyDate) {\n return startOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = startOfISOWeek\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear (dirtyDate) {\n var year = getISOYear(dirtyDate)\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(year, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n var date = startOfISOWeek(fourthOfJanuary)\n return date\n}\n\nmodule.exports = startOfISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * var result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nfunction startOfMinute (dirtyDate) {\n var date = parse(dirtyDate)\n date.setSeconds(0, 0)\n return date\n}\n\nmodule.exports = startOfMinute\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfMonth (dirtyDate) {\n var date = parse(dirtyDate)\n date.setDate(1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nfunction startOfQuarter (dirtyDate) {\n var date = parse(dirtyDate)\n var currentMonth = date.getMonth()\n var month = currentMonth - currentMonth % 3\n date.setMonth(month, 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * var result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nfunction startOfSecond (dirtyDate) {\n var date = parse(dirtyDate)\n date.setMilliseconds(0)\n return date\n}\n\nmodule.exports = startOfSecond\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of today.\n *\n * @description\n * Return the start of today.\n *\n * @returns {Date} the start of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nfunction startOfToday () {\n return startOfDay(new Date())\n}\n\nmodule.exports = startOfToday\n","/**\n * @category Day Helpers\n * @summary Return the start of tomorrow.\n *\n * @description\n * Return the start of tomorrow.\n *\n * @returns {Date} the start of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfTomorrow()\n * //=> Tue Oct 7 2014 00:00:00\n */\nfunction startOfTomorrow () {\n var now = new Date()\n var year = now.getFullYear()\n var month = now.getMonth()\n var day = now.getDate()\n\n var date = new Date(0)\n date.setFullYear(year, month, day + 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfTomorrow\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n\n date.setDate(date.getDate() - diff)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfWeek\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear (dirtyDate) {\n var cleanDate = parse(dirtyDate)\n var date = new Date(0)\n date.setFullYear(cleanDate.getFullYear(), 0, 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfYear\n","/**\n * @category Day Helpers\n * @summary Return the start of yesterday.\n *\n * @description\n * Return the start of yesterday.\n *\n * @returns {Date} the start of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfYesterday()\n * //=> Sun Oct 5 2014 00:00:00\n */\nfunction startOfYesterday () {\n var now = new Date()\n var year = now.getFullYear()\n var month = now.getMonth()\n var day = now.getDate()\n\n var date = new Date(0)\n date.setFullYear(year, month, day - 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfYesterday\n","var addDays = require('../add_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted\n * @returns {Date} the new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * var result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nfunction subDays (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addDays(dirtyDate, -amount)\n}\n\nmodule.exports = subDays\n","var addHours = require('../add_hours/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted\n * @returns {Date} the new date with the hours subtracted\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * var result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\nfunction subHours (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addHours(dirtyDate, -amount)\n}\n\nmodule.exports = subHours\n","var addISOYears = require('../add_iso_years/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Subtract the specified number of ISO week-numbering years from the given date.\n *\n * @description\n * Subtract the specified number of ISO week-numbering years from the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be subtracted\n * @returns {Date} the new date with the ISO week-numbering years subtracted\n *\n * @example\n * // Subtract 5 ISO week-numbering years from 1 September 2014:\n * var result = subISOYears(new Date(2014, 8, 1), 5)\n * //=> Mon Aug 31 2009 00:00:00\n */\nfunction subISOYears (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addISOYears(dirtyDate, -amount)\n}\n\nmodule.exports = subISOYears\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @returns {Date} the new date with the milliseconds subtracted\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMilliseconds(dirtyDate, -amount)\n}\n\nmodule.exports = subMilliseconds\n","var addMinutes = require('../add_minutes/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted\n * @returns {Date} the new date with the mintues subtracted\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * var result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\nfunction subMinutes (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMinutes(dirtyDate, -amount)\n}\n\nmodule.exports = subMinutes\n","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted\n * @returns {Date} the new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * var result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction subMonths (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMonths(dirtyDate, -amount)\n}\n\nmodule.exports = subMonths\n","var addQuarters = require('../add_quarters/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted\n * @returns {Date} the new date with the quarters subtracted\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * var result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nfunction subQuarters (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addQuarters(dirtyDate, -amount)\n}\n\nmodule.exports = subQuarters\n","var addSeconds = require('../add_seconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Subtract the specified number of seconds from the given date.\n *\n * @description\n * Subtract the specified number of seconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be subtracted\n * @returns {Date} the new date with the seconds subtracted\n *\n * @example\n * // Subtract 30 seconds from 10 July 2014 12:45:00:\n * var result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:44:30\n */\nfunction subSeconds (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addSeconds(dirtyDate, -amount)\n}\n\nmodule.exports = subSeconds\n","var addWeeks = require('../add_weeks/index.js')\n\n/**\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted\n * @returns {Date} the new date with the weeks subtracted\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nfunction subWeeks (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addWeeks(dirtyDate, -amount)\n}\n\nmodule.exports = subWeeks\n","var addYears = require('../add_years/index.js')\n\n/**\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted\n * @returns {Date} the new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nfunction subYears (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addYears(dirtyDate, -amount)\n}\n\nmodule.exports = subYears\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/*! dom-to-image-more 01-02-2023 */\n!function(n){\"use strict\";const s=function(){let t=0;return{escape:function(t){return t.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g,\"\\\\$1\")},isDataUrl:function(t){return-1!==t.search(/^(data:)/)},canvasToBlob:function(e){if(e.toBlob)return new Promise(function(t){e.toBlob(t)});return function(o){return new Promise(function(t){var e=l(o.toDataURL().split(\",\")[1]),n=e.length,r=new Uint8Array(n);for(let t=0;te.style.removeProperty(t)),[\"left\",\"right\",\"top\",\"bottom\"].forEach(t=>{e.style.getPropertyValue(t)&&e.style.setProperty(t,\"0px\")})))}t(l,a)}function e(){const c=s.uid();function e(o){const i=f(l,o),u=i.getPropertyValue(\"content\");if(\"\"!==u&&\"none\"!==u){const e=a.getAttribute(\"class\")||\"\",n=(a.setAttribute(\"class\",e+\" \"+c),document.createElement(\"style\"));function t(){const t=`.${c}:`+o,e=(i.cssText?n:r)();return document.createTextNode(t+`{${e}}`);function n(){return`${i.cssText} content: ${u};`}function r(){const t=s.asArray(i).map(e).join(\"; \");return t+\";\";function e(t){const e=i.getPropertyValue(t),n=i.getPropertyPriority(t)?\" !important\":\"\";return t+\": \"+e+n}}}n.appendChild(t()),a.appendChild(n)}}[\":before\",\":after\"].forEach(function(t){e(t)})}function n(){s.isHTMLTextAreaElement(l)&&(a.innerHTML=l.value),s.isHTMLInputElement(l)&&a.setAttribute(\"value\",l.value)}function r(){s.isSVGElement(a)&&(a.setAttribute(\"xmlns\",\"http://www.w3.org/2000/svg\"),s.isSVGRectElement(a))&&[\"width\",\"height\"].forEach(function(t){const e=a.getAttribute(t);e&&a.style.setProperty(t,e)})}}}(t,o.filter,!0,null,e)}).then(m).then(d).then(function(e){o.bgcolor&&(e.style.backgroundColor=o.bgcolor);o.width&&(e.style.width=o.width+\"px\");o.height&&(e.style.height=o.height+\"px\");o.style&&Object.keys(o.style).forEach(function(t){e.style[t]=o.style[t]});let t=null;\"function\"==typeof o.onclone&&(t=o.onclone(e));return Promise.resolve(t).then(function(){return e})}).then(function(t){return t=t,e=o.width||s.width(r),n=o.height||s.height(r),Promise.resolve(t).then(function(t){return t.setAttribute(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),(new XMLSerializer).serializeToString(t)}).then(s.escapeXhtml).then(function(t){return`${t}`}).then(function(t){return`${t}`}).then(function(t){return\"data:image/svg+xml;charset=utf-8,\"+t});var e,n}).then(function(t){return c.impl.urlCache=[],function(){y&&(document.body.removeChild(y),y=null);g&&clearTimeout(g);g=setTimeout(()=>{g=null,v={}},2e4)}(),t})}function h(o,i){return a(o,i=i||{}).then(s.makeImage).then(s.delay(0)).then(function(t){var e=\"number\"!=typeof i.scale?1:i.scale,n=function(t,e){var n=document.createElement(\"canvas\");n.width=(i.width||s.width(t))*e,n.height=(i.height||s.height(t))*e,i.bgcolor&&((t=n.getContext(\"2d\")).fillStyle=i.bgcolor,t.fillRect(0,0,n.width,n.height));return n}(o,e),r=n.getContext(\"2d\");return r.mozImageSmoothingEnabled=!1,r.msImageSmoothingEnabled=!1,r.imageSmoothingEnabled=!1,t&&(r.scale(e,e),r.drawImage(t,0,0)),n})}function m(n){return t.resolveAll().then(function(t){var e;return\"\"!==t&&(e=document.createElement(\"style\"),n.appendChild(e),e.appendChild(document.createTextNode(t))),n})}function d(t){return r.inlineAll(t).then(function(){return t})}function p(i,u,t){const c=function(t){if(v[t])return v[t];var e=function(){if(y)return y.contentWindow;var t=document.characterSet||\"UTF-8\",e=document.doctype,e=e?(`\":\"\";return(y=document.createElement(\"iframe\")).id=\"domtoimage-sandbox-\"+s.uid(),y.style.visibility=\"hidden\",y.style.position=\"fixed\",document.body.appendChild(y),function(t,e,n,r){try{return t.contentWindow.document.write(e+`${r}`),t.contentWindow}catch(t){}var o=document.createElement(\"meta\");o.setAttribute(\"charset\",n);try{var i=document.implementation.createHTMLDocument(r),u=(i.head.appendChild(o),e+i.documentElement.outerHTML);return t.setAttribute(\"srcdoc\",u),t.contentWindow}catch(t){}return t.contentDocument.head.appendChild(o),t.contentDocument.title=r,t.contentWindow}(y,e,t,\"domtoimage-sandbox\");function n(t){var e;return t?((e=document.createElement(\"div\")).innerText=t,e.innerHTML):\"\"}}(),n=e.document,r=function(t,e){e=t.createElement(e);return t.body.appendChild(e),e.textContent=\"​\",e}(n,t),e=function(t,e){const n={},r=t.getComputedStyle(e);return s.asArray(r).forEach(function(t){n[t]=\"width\"===t||\"height\"===t?\"auto\":r.getPropertyValue(t)}),n}(e,r);return function(t,e){t.body.removeChild(e)}(n,r),v[t]=e}(t.tagName),l=t.style;s.asArray(i).forEach(function(t){var e,n,r,o=i.getPropertyValue(t);(o!==c[t]||u&&o!==u.getPropertyValue(t))&&(n=i.getPropertyPriority(t),e=l,o=o,n=n,r=0<=[\"background-clip\"].indexOf(t=t),n?(e.setProperty(t,o,n),r&&e.setProperty(\"-webkit-\"+t,o,n)):(e.setProperty(t,o),r&&e.setProperty(\"-webkit-\"+t,o)))})}let g=null,y=null,v={}}(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n};\n\nfunction Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n if(this.options.oneListGroup ){\n listTagVal += this.j2x(item, level + 1).val;\n }else{\n listTagVal += this.processTextOrObjNode(item, key, level)\n }\n } else {\n listTagVal += this.buildTextValNode(item, key, '', level);\n }\n }\n if(this.options.oneListGroup){\n listTagVal = this.buildObjectNode(listTagVal, key, '', level);\n }\n val += listTagVal;\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n val = this.options.attributeValueProcessor(attrName, '' + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return ' ' + attrName;\n } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if(val === \"\"){\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n }else{\n\n let tagEndExp = '' + val + tagEndExp );\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `` + this.newLine;\n }else {\n return (\n this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n val +\n this.indentate(level) + tagEndExp );\n }\n }\n}\n\nBuilder.prototype.closeTag = function(key){\n let closeTag = \"\";\n if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n }else if(this.options.suppressEmptyNode){ //empty\n closeTag = \"/\";\n }else{\n closeTag = `>` + this.newLine;\n }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `` + this.newLine;\n }else if(key[0] === \"?\") {//PI tag\n return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n }else{\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n \n if( textValue === ''){\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }else{\n return this.indentate(level) + '<' + key + attrStr + '>' +\n textValue +\n ' 0 && this.options.processEntities){\n for (let i=0; i 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName\n else newJPath = `${jPath}.${tagName}`;\n\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += ``;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + ``;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n }\n isPreviousElementTag = true;\n }\n\n return xmlStr;\n}\n\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key !== \":@\") return key;\n }\n}\n\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\nmodule.exports = toXml;\n","//TODO: handle comments\nfunction readDocType(xmlData, i){\n \n const entities = {};\n if( xmlData[i + 3] === 'O' &&\n xmlData[i + 4] === 'C' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'Y' &&\n xmlData[i + 7] === 'P' &&\n xmlData[i + 8] === 'E')\n { \n i = i+9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for(;i') { //Read tag content\n if(comment){\n if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n comment = false;\n angleBracketsCount--;\n }\n }else{\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n }else if( xmlData[i] === '['){\n hasBody = true;\n }else{\n exp += xmlData[i];\n }\n }\n if(angleBracketsCount !== 0){\n throw new Error(`Unclosed DOCTYPE`);\n }\n }else{\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n //External entities are not supported\n // \n\n //Parameter entities are not supported\n // \n\n //Internal entities are supported\n // \n \n //read EntityName\n let entityName = \"\";\n for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n // if(xmlData[i] === \" \") continue;\n // else \n entityName += xmlData[i];\n }\n entityName = entityName.trim();\n if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n //read Entity Value\n const startChar = xmlData[i++];\n let val = \"\"\n for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n val += xmlData[i];\n }\n return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === '-' &&\n xmlData[i+3] === '-') return true\n return false\n}\nfunction isEntity(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'N' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'I' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'Y') return true\n return false\n}\nfunction isElement(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'L' &&\n xmlData[i+4] === 'E' &&\n xmlData[i+5] === 'M' &&\n xmlData[i+6] === 'E' &&\n xmlData[i+7] === 'N' &&\n xmlData[i+8] === 'T') return true\n return false\n}\n\nfunction isAttlist(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'A' &&\n xmlData[i+3] === 'T' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'L' &&\n xmlData[i+6] === 'I' &&\n xmlData[i+7] === 'S' &&\n xmlData[i+8] === 'T') return true\n return false\n}\nfunction isNotation(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'N' &&\n xmlData[i+3] === 'O' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'A' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'I' &&\n xmlData[i+8] === 'O' &&\n xmlData[i+9] === 'N') return true\n return false\n}\n\n//an entity name should not contains special characters that may be used in regex\n//Eg !?\\\\\\/[]$%{}^&*()<>\nconst specialChar = \"!?\\\\\\/[]$%{}^&*()<>|+\";\n\nfunction validateEntityName(name){\n for (let i = 0; i < specialChar.length; i++) {\n const ch = specialChar[i];\n if(name.indexOf(ch) !== -1) throw new Error(`Invalid character ${ch} in entity name`);\n }\n return name;\n}\n\nmodule.exports = readDocType;","\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs){\n return tagName\n },\n // skipEmptyListItem: false\n};\n \nconst buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;","'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n constructor(options){\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n }\n\n}\n\nfunction addExternalEntities(externalEntities){\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n val : externalEntities[ent]\n }\n }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== undefined) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n if(!escapeEntities) val = this.replaceEntitiesValue(val);\n \n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(this.options.trimValues){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if(aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== undefined) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs\n }\n}\n\nconst parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(this.options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n if(currentNode){\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n\n //check if last tag of nested tag was unpaired tag\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n throw new Error(`Unpaired tag can not be used as closing tag: `);\n }\n let propIndex = 0\n if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n this.tagsNodeStack.pop();\n }else{\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n\n currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n\n let tagData = readTagExp(xmlData,i, false, \"?>\");\n if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n }else{\n \n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n \n if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n\n }\n\n\n i = tagData.closeIndex + 1;\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n if(this.options.commentPropName){\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n }\n i = endIndex;\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const result = readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n //cdata should be set even if it is 0 length string\n if(this.options.cdataPropName){\n // let val = this.parseTextData(tagExp, this.options.cdataPropName, jPath + \".\" + this.options.cdataPropName, true, false, true);\n // if(!val) val = \"\";\n currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n }else{\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true);\n if(val == undefined) val = \"\";\n currentNode.add(this.options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n let tagName= result.tagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n\n //check if last tag was unpaired tag\n const lastTag = currentNode;\n if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { //TODO: namespace\n let tagContent = \"\";\n //self-closing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n i = result.closeIndex;\n }\n //unpaired tag\n else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n i = result.closeIndex;\n }\n //normal tag\n else{\n //read until closing tag is found\n const result = this.readStopNodeData(xmlData, tagName, closeIndex + 1);\n if(!result) throw new Error(`Unexpected end of ${tagName}`);\n i = result.i;\n tagContent = result.tagContent;\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if(tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n \n this.addChild(currentNode, childNode, jPath)\n }else{\n //selfClosing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n \n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n }\n //opening tag\n else{\n const childNode = new xmlNode( tagName);\n this.tagsNodeStack.push(currentNode);\n \n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n if(result === false){\n }else if(typeof result === \"string\"){\n childNode.tagname = result\n currentNode.addChild(childNode);\n }else{\n currentNode.addChild(childNode);\n }\n}\n\nconst replaceEntitiesValue = function(val){\n\n if(this.options.processEntities){\n for(let entityName in this.docTypeEntities){\n const entity = this.docTypeEntities[entityName];\n val = val.replace( entity.regx, entity.val);\n }\n for(let entityName in this.lastEntities){\n const entity = this.lastEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n if(this.options.htmlEntities){\n for(let entityName in this.htmlEntities){\n const entity = this.htmlEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n }\n val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) { //store previously collected data as textNode\n if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n \n textData = this.parseTextData(textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode);\n\n if (textData !== undefined && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if( allNodesExp === stopNodeExp || jPath === stopNodeExp ) return true;\n }\n return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if(closingChar[1]){\n if(xmlData[index + 1] === closingChar[1]){\n return {\n data: tagExp,\n index: index\n }\n }\n }else{\n return {\n data: tagExp,\n index: index\n }\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n if(!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n const startIndex = i;\n // Starting at 1 since we already have an open tag\n let openTagCount = 1;\n\n for (; i < xmlData.length; i++) {\n if( xmlData[i] === \"<\"){ \n if (xmlData[i+1] === \"/\") {//close tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n if(closeTagName === tagName){\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i : closeIndex\n }\n }\n }\n i=closeIndex;\n } else if(xmlData[i+1] === '?') { \n const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 3) === '!--') { \n const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 2) === '![') { \n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i=closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, '>')\n\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n openTagCount++;\n }\n i=tagData.closeIndex;\n }\n }\n }\n }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n\nmodule.exports = OrderedObjParser;\n","const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n \n constructor(options){\n this.externalEntities = {};\n this.options = buildOptions(options);\n \n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value){\n if(value.indexOf(\"&\") !== -1){\n throw new Error(\"Entity value can't have '&'\")\n }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for ' '\")\n }else if(value === \"&\"){\n throw new Error(\"An entity with value '&' is not permitted\");\n }else{\n this.externalEntities[key] = value;\n }\n }\n}\n\nmodule.exports = XMLParser;","'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj[\":@\"]){\n assignAttributes( val, tagObj[\":@\"], newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \":@\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n \n if (propCount === 0) {\n return true;\n }\n\n if (\n propCount === 1 &&\n (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n ) {\n return true;\n }\n\n return false;\n}\nexports.prettify = prettify;\n","'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[\":@\"] = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if(key === \"__proto__\") key = \"#__proto__\";\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })));\n var w = new Worker(u);\n w.onerror = function (e) { return cb(e.error, null); };\n w.onmessage = function (e) { return cb(null, e.data); };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = 0xFFFFFFFF;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return c ^ 0xFFFFFFFF; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume)\n dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t)\n throw 'stream finished';\n if (!strm.ondata)\n throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length, l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n if (ce != null)\n wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null)\n d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n }\n catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), m = file.length;\n c.p(file);\n var n = strToU8(fn), s = n.length;\n var t = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (!--lft)\n cbf();\n }\n };\n if (n.length > 65535)\n cbl('filename too long', null);\n if (!t)\n cbl(null, file);\n else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn), s = n.length;\n if (n.length > 65535)\n throw 'filename too long';\n var d = t ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n if (typeof cb != 'function')\n throw 'no callback';\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft)\n cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_2 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n files[fn] = d;\n if (!--lft)\n cb(null, files);\n }\n };\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n throw 'unknown compression type ' + c_2;\n }\n return files;\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n }\n else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set);\n }\n sourceKeySet.add(sourceKey);\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n }\n else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), { definitions: definitions });\n}\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc)\n delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n return doc;\n}\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n return docCache.get(cacheKey);\n}\nexport function gql(literals) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof literals === 'string') {\n literals = [literals];\n }\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n }\n else {\n result += arg;\n }\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\ngql[\"default\"] = gql;\nexport default gql;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","import { Component, ElementRef, EventEmitter, Input, Output, NgZone, NgModule } from '@angular/core';\nimport 'highcharts';\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes} checked by tsc\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nclass HighchartsChartComponent {\r\n /**\r\n * @param {?} el\r\n * @param {?} _zone\r\n */\r\n constructor(el, _zone // #75\r\n ) {\r\n this.el = el;\r\n this._zone = _zone;\r\n this.updateChange = new EventEmitter(true);\r\n this.chartInstance = new EventEmitter();\r\n }\r\n /**\r\n * @param {?} val\r\n * @return {?}\r\n */\r\n set options(val) {\r\n this.optionsValue = val;\r\n this.wrappedUpdateOrCreateChart();\r\n }\r\n /**\r\n * @param {?} val\r\n * @return {?}\r\n */\r\n set update(val) {\r\n if (val) {\r\n this.wrappedUpdateOrCreateChart();\r\n this.updateChange.emit(false); // clear the flag after update\r\n }\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n wrappedUpdateOrCreateChart() {\r\n // #75\r\n if (this.runOutsideAngular) {\r\n this._zone.runOutsideAngular(() => {\r\n this.updateOrCreateChart();\r\n });\r\n }\r\n else {\r\n this.updateOrCreateChart();\r\n }\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n updateOrCreateChart() {\r\n if (this.chart && this.chart.update) {\r\n this.chart.update(this.optionsValue, true, this.oneToOne || false);\r\n }\r\n else {\r\n this.chart = (/** @type {?} */ (this.Highcharts))[this.constructorType || 'chart'](this.el.nativeElement, this.optionsValue, this.callbackFunction || null);\r\n // emit chart instance on init\r\n this.chartInstance.emit(this.chart);\r\n }\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n ngOnDestroy() {\r\n // #44\r\n if (this.chart) { // #56\r\n // #56\r\n this.chart.destroy();\r\n this.chart = null;\r\n }\r\n }\r\n}\nHighchartsChartComponent.ɵfac = function HighchartsChartComponent_Factory(t) { return new (t || HighchartsChartComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nHighchartsChartComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: HighchartsChartComponent, selectors: [[\"highcharts-chart\"]], inputs: { options: \"options\", update: \"update\", Highcharts: \"Highcharts\", constructorType: \"constructorType\", callbackFunction: \"callbackFunction\", oneToOne: \"oneToOne\", runOutsideAngular: \"runOutsideAngular\" }, outputs: { updateChange: \"updateChange\", chartInstance: \"chartInstance\" }, decls: 0, vars: 0, template: function HighchartsChartComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n/** @nocollapse */\r\nHighchartsChartComponent.ctorParameters = () => [\r\n { type: ElementRef, },\r\n { type: NgZone, },\r\n];\r\nHighchartsChartComponent.propDecorators = {\r\n \"Highcharts\": [{ type: Input },],\r\n \"constructorType\": [{ type: Input },],\r\n \"callbackFunction\": [{ type: Input },],\r\n \"oneToOne\": [{ type: Input },],\r\n \"runOutsideAngular\": [{ type: Input },],\r\n \"options\": [{ type: Input },],\r\n \"update\": [{ type: Input },],\r\n \"updateChange\": [{ type: Output },],\r\n \"chartInstance\": [{ type: Output },],\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HighchartsChartComponent, [{\n type: Component,\n args: [{\n selector: 'highcharts-chart',\n template: ''\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { updateChange: [{\n type: Output\n }], chartInstance: [{\n type: Output\n }], options: [{\n type: Input\n }], update: [{\n type: Input\n }], Highcharts: [{\n type: Input\n }], constructorType: [{\n type: Input\n }], callbackFunction: [{\n type: Input\n }], oneToOne: [{\n type: Input\n }], runOutsideAngular: [{\n type: Input\n }] }); })();\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes} checked by tsc\r\n */\r\nclass HighchartsChartModule {\r\n}\nHighchartsChartModule.ɵfac = function HighchartsChartModule_Factory(t) { return new (t || HighchartsChartModule)(); };\nHighchartsChartModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: HighchartsChartModule });\nHighchartsChartModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\r\n/** @nocollapse */\r\nHighchartsChartModule.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HighchartsChartModule, [{\n type: NgModule,\n args: [{\n declarations: [HighchartsChartComponent],\n exports: [HighchartsChartComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(HighchartsChartModule, { declarations: [HighchartsChartComponent], exports: [HighchartsChartComponent] }); })();\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes} checked by tsc\r\n */\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes} checked by tsc\r\n */\n\nexport { HighchartsChartModule, HighchartsChartComponent };\n\n","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(f){\"object\"===typeof module&&module.exports?(f[\"default\"]=f,module.exports=f):\"function\"===typeof define&&define.amd?define(\"highcharts/highcharts-more\",[\"highcharts\"],function(A){f(A);f.Highcharts=A;return f}):f(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(f){function A(f,b,e,a){f.hasOwnProperty(b)||(f[b]=a.apply(null,e),\"function\"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:b,module:f[b]}})))}f=f?f._modules:{};A(f,\n\"Extensions/Pane.js\",[f[\"Core/Chart/Chart.js\"],f[\"Series/CenteredUtilities.js\"],f[\"Core/Globals.js\"],f[\"Core/Pointer.js\"],f[\"Core/Utilities.js\"]],function(f,b,e,a,d){function p(c,t,h){return Math.sqrt(Math.pow(c-h[0],2)+Math.pow(t-h[1],2))<=h[2]/2}var l=d.addEvent,k=d.extend,y=d.merge,B=d.pick,c=d.splat;f.prototype.collectionsWithUpdate.push(\"pane\");d=function(){function g(c,h){this.options=this.chart=this.center=this.background=void 0;this.coll=\"pane\";this.defaultOptions={center:[\"50%\",\"50%\"],size:\"85%\",\ninnerSize:\"0%\",startAngle:0};this.defaultBackgroundOptions={shape:\"circle\",borderWidth:1,borderColor:\"#cccccc\",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,\"#ffffff\"],[1,\"#e6e6e6\"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:\"105%\"};this.init(c,h)}g.prototype.init=function(c,h){this.chart=h;this.background=[];h.pane.push(this);this.setOptions(c)};g.prototype.setOptions=function(c){this.options=y(this.defaultOptions,this.chart.angular?{background:{}}:void 0,\nc)};g.prototype.render=function(){var g=this.options,h=this.options.background,z=this.chart.renderer;this.group||(this.group=z.g(\"pane-group\").attr({zIndex:g.zIndex||0}).add());this.updateCenter();if(h)for(h=c(h),g=Math.max(h.length,this.background.length||0),z=0;z\\u25cf {series.name}: {point.low} - {point.high}
'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}};a=function(a){function b(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;c.lowerStateMarkerGraphic=void 0;c.xAxis=void 0;return c}d(b,a);b.prototype.toYData=function(c){return[c.low,c.high]};b.prototype.highToXY=function(c){var a=\nthis.chart,C=this.xAxis.postTranslate(c.rectPlotX||0,this.yAxis.len-c.plotHigh);c.plotHighX=C.x-a.plotLeft;c.plotHigh=C.y-a.plotTop;c.plotLowX=c.plotX};b.prototype.translate=function(){var c=this,a=c.yAxis;k.translate.apply(c);c.points.forEach(function(C){var g=C.high,r=C.plotY;C.isNull?C.plotY=null:(C.plotLow=r,C.plotHigh=a.translate(c.dataModify?c.dataModify.modifyValue(g):g,0,1,0,1),c.dataModify&&(C.yBottom=C.plotHigh))});this.chart.polar&&this.points.forEach(function(a){c.highToXY(a);a.tooltipPos=\n[(a.plotHighX+a.plotLowX)/2,(a.plotHigh+a.plotLow)/2]})};b.prototype.getGraphPath=function(c){var a=[],g=[],h=k.getGraphPath,r=this.options,q=this.chart.polar,v=q&&!1!==r.connectEnds,b=r.connectNulls,d,z=r.step;c=c||this.points;for(d=c.length;d--;){var e=c[d];var n=q?{plotX:e.rectPlotX,plotY:e.yBottom,doCurve:!1}:{plotX:e.plotX,plotY:e.plotY,doCurve:!1};e.isNull||v||b||c[d+1]&&!c[d+1].isNull||g.push(n);var m={polarPlotY:e.polarPlotY,rectPlotX:e.rectPlotX,yBottom:e.yBottom,plotX:t(e.plotHighX,e.plotX),\nplotY:e.plotHigh,isNull:e.isNull};g.push(m);a.push(m);e.isNull||v||b||c[d-1]&&!c[d-1].isNull||g.push(n)}c=h.call(this,c);z&&(!0===z&&(z=\"left\"),r.step={left:\"right\",center:\"center\",right:\"left\"}[z]);a=h.call(this,a);g=h.call(this,g);r.step=z;r=[].concat(c,a);!this.chart.polar&&g[0]&&\"M\"===g[0][0]&&(g[0]=[\"L\",g[0][1],g[0][2]]);this.graphPath=r;this.areaPath=c.concat(g);r.isArea=!0;r.xMap=c.xMap;this.areaPath.xMap=c.xMap;return r};b.prototype.drawDataLabels=function(){var a=this.points,h=a.length,C=\n[],b=this.options.dataLabels,r=this.chart.inverted,q,v;if(b){if(g(b)){var d=b[0]||{enabled:!1};var z=b[1]||{enabled:!1}}else d=c({},b),d.x=b.xHigh,d.y=b.yHigh,z=c({},b),z.x=b.xLow,z.y=b.yLow;if(d.enabled||this._hasPointLabels){for(q=h;q--;)if(v=a[q]){var t=d.inside?v.plotHighv.plotLow;v.y=v.high;v._plotY=v.plotY;v.plotY=v.plotHigh;C[q]=v.dataLabel;v.dataLabel=v.dataLabelUpper;v.below=t;r?d.align||(d.align=t?\"right\":\"left\"):d.verticalAlign||(d.verticalAlign=t?\"top\":\"bottom\")}this.options.dataLabels=\nd;k.drawDataLabels&&k.drawDataLabels.apply(this,arguments);for(q=h;q--;)if(v=a[q])v.dataLabelUpper=v.dataLabel,v.dataLabel=C[q],delete v.dataLabels,v.y=v.low,v.plotY=v._plotY}if(z.enabled||this._hasPointLabels){for(q=h;q--;)if(v=a[q])t=z.inside?v.plotHighv.plotLow,v.below=!t,r?z.align||(z.align=t?\"left\":\"right\"):z.verticalAlign||(z.verticalAlign=t?\"bottom\":\"top\");this.options.dataLabels=z;k.drawDataLabels&&k.drawDataLabels.apply(this,arguments)}if(d.enabled)for(q=h;q--;)if(v=\na[q])v.dataLabels=[v.dataLabelUpper,v.dataLabel].filter(function(c){return!!c});this.options.dataLabels=b}};b.prototype.alignDataLabel=function(){y.alignDataLabel.apply(this,arguments)};b.prototype.drawPoints=function(){var a=this.points.length,g;k.drawPoints.apply(this,arguments);for(g=0;g\\u25cf {series.name}
Maximum: {point.high}
Upper quartile: {point.q3}
Median: {point.median}
Lower quartile: {point.q1}
Minimum: {point.low}
'},whiskerLength:\"50%\",fillColor:\"#ffffff\",lineWidth:1,medianWidth:2,whiskerWidth:2});return b}(f);p(a.prototype,{pointArrayMap:[\"low\",\"q1\",\n\"median\",\"q3\",\"high\"],pointValKey:\"high\",drawDataLabels:b,setStackedPoints:b});e.registerSeriesType(\"boxplot\",a);\"\";return a});A(f,\"Series/Bubble/BubbleLegendDefaults.js\",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:\"\",formatter:void 0,align:\"right\",style:{fontSize:\"10px\",color:\"#000000\"},x:0,y:0},maxSize:60,minSize:10,\nlegendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:\"area\",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}});A(f,\"Series/Bubble/BubbleLegendItem.js\",[f[\"Core/Color/Color.js\"],f[\"Core/FormatUtilities.js\"],f[\"Core/Globals.js\"],f[\"Core/Utilities.js\"]],function(f,b,e,a){var d=f.parse,p=e.noop,l=a.arrayMax,k=a.arrayMin,y=a.isNumber,B=a.merge,c=a.pick,g=a.stableSort;\"\";return function(){function a(c,a){this.options=this.symbols=this.visible=this.selected=this.ranges=\nthis.movementX=this.maxLabel=this.legendSymbol=this.legendItemWidth=this.legendItemHeight=this.legendItem=this.legendGroup=this.legend=this.fontMetrics=this.chart=void 0;this.setState=p;this.init(c,a)}a.prototype.init=function(c,a){this.options=c;this.visible=!0;this.chart=a.chart;this.legend=a};a.prototype.addToLegend=function(c){c.splice(this.options.legendIndex,0,this)};a.prototype.drawLegendSymbol=function(a){var h=this.chart,b=this.options,d=c(a.options.itemDistance,20),e=b.ranges,k=b.connectorDistance;\nthis.fontMetrics=h.renderer.fontMetrics(b.labels.style.fontSize);e&&e.length&&y(e[0].value)?(g(e,function(c,a){return a.value-c.value}),this.ranges=e,this.setOptions(),this.render(),a=this.getMaxLabelSize(),e=this.ranges[0].radius,h=2*e,k=k-e+a.width,k=0=a&&this.renderRange(c)},this);this.legendSymbol.add(this.legendItem);this.legendItem.add(this.legendGroup);this.hideOverlappingLabels()};a.prototype.renderRange=function(c){var a=this.options,g=a.labels,b=this.chart,h=b.series[a.seriesIndex],d=b.renderer,e=this.symbols;b=e.labels;var k=c.center,r=Math.abs(c.radius),q=a.connectorDistance||\n0,v=g.align,f=a.connectorWidth,H=this.ranges[0].radius||0,t=k-r-a.borderWidth/2+f/2,l=this.fontMetrics;l=l.f/2-(l.h-l.f)/2;var n=d.styledMode;q=this.legend.options.rtl||\"left\"===v?-q:q;\"center\"===v&&(q=0,a.connectorDistance=0,c.labelAttribs.align=\"center\");v=t+a.labels.y;var m=H+q+a.labels.x;e.bubbleItems.push(d.circle(H,k+((t%1?1:.5)-(f%2?0:.5)),r).attr(n?{}:c.bubbleAttribs).addClass((n?\"highcharts-color-\"+h.colorIndex+\" \":\"\")+\"highcharts-bubble-legend-symbol \"+(a.className||\"\")).add(this.legendSymbol));\ne.connectors.push(d.path(d.crispLine([[\"M\",H,t],[\"L\",H+q,t]],a.connectorWidth)).attr(n?{}:c.connectorAttribs).addClass((n?\"highcharts-color-\"+this.options.seriesIndex+\" \":\"\")+\"highcharts-bubble-legend-connectors \"+(a.connectorClassName||\"\")).add(this.legendSymbol));c=d.text(this.formatLabel(c),m,v+l).attr(n?{}:c.labelAttribs).css(n?{}:g.style).addClass(\"highcharts-bubble-legend-labels \"+(a.labels.className||\"\")).add(this.legendSymbol);b.push(c);c.placed=!0;c.alignAttr={x:m,y:v+l}};a.prototype.getMaxLabelSize=\nfunction(){var c,a;this.symbols.labels.forEach(function(g){a=g.getBBox(!0);c=c?a.width>c.width?a:c:a});return c||{}};a.prototype.formatLabel=function(c){var a=this.options,g=a.labels.formatter;a=a.labels.format;var d=this.chart.numberFormatter;return a?b.format(a,c):g?g.call(c):d(c.value,1)};a.prototype.hideOverlappingLabels=function(){var c=this.chart,a=this.symbols;!this.options.labels.allowOverlap&&a&&(c.hideOverlappingLabels(a.labels),a.labels.forEach(function(c,g){c.newOpacity?c.newOpacity!==\nc.oldOpacity&&a.connectors[g].show():a.connectors[g].hide()}))};a.prototype.getRanges=function(){var a=this.legend.bubbleLegend,g=a.options.ranges,b,d=Number.MAX_VALUE,e=-Number.MAX_VALUE;a.chart.series.forEach(function(a){a.isBubble&&!a.ignoreSeries&&(b=a.zData.filter(y),b.length&&(d=c(a.options.zMin,Math.min(d,Math.max(k(b),!1===a.options.displayNegative?a.options.zThreshold:-Number.MAX_VALUE))),e=c(a.options.zMax,Math.max(e,l(b)))))});var f=d===e?[{value:e}]:[{value:d},{value:(d+e)/2},{value:e,\nautoRanges:!0}];g.length&&g[0].radius&&f.reverse();f.forEach(function(c,a){g&&g[a]&&(f[a]=B(g[a],c))});return f};a.prototype.predictBubbleSizes=function(){var c=this.chart,a=this.fontMetrics,g=c.legend.options,b=g.floating,d=(g=\"horizontal\"===g.layout)?c.legend.lastLineHeight:0,e=c.plotSizeX,k=c.plotSizeY,D=c.series[this.options.seriesIndex],r=D.getPxExtremes();c=Math.ceil(r.minPxSize);r=Math.ceil(r.maxPxSize);var q=Math.min(k,e);D=D.options.maxSize;if(b||!/%$/.test(D))a=r;else if(D=parseFloat(D),\na=(q+d-a.h/2)*D/100/(D/100+1),g&&k-a>=e||!g&&e-a>=k)a=r;return[c,Math.ceil(a)]};a.prototype.updateRanges=function(c,a){var g=this.legend.options.bubbleLegend;g.minSize=c;g.maxSize=a;g.ranges=this.getRanges()};a.prototype.correctSizes=function(){var c=this.legend,a=this.chart.series[this.options.seriesIndex].getPxExtremes();1d.height&&(d.height=c[r].itemHeight);d.step=b}return a}function h(c){var a=this.bubbleLegend,d=this.options,h=d.bubbleLegend,r=g(this.chart);a&&a.ranges&&a.ranges.length&&(h.ranges.length&&(h.autoRanges=!!h.ranges[0].autoRanges),this.destroyItem(a));\n0<=r&&d.enabled&&h.enabled&&(h.seriesIndex=r,this.bubbleLegend=new b(h,this),this.bubbleLegend.addToLegend(c.allItems))}function z(){var c=this.chart,a=this.visible,b=this.chart.legend;b&&b.bubbleLegend&&(this.visible=!a,this.ignoreSeries=a,c=0<=g(c),b.bubbleLegend.visible!==c&&(b.update({bubbleLegend:{enabled:c}}),b.bubbleLegend.visible=c),this.visible=a)}function y(c,a){var g=c.options.rtl,b,r,d,h=0;c.allItems.forEach(function(c,q){b=c.legendGroup.translateX;r=c._legendItemPos[1];if((d=c.movementX)||\ng&&c.ranges)d=g?b-c.options.maxSize/2:b+d,c.legendGroup.attr({translateX:d});q>a[h].step&&h++;c.legendGroup.attr({translateY:Math.round(r+a[h].height/2)});c._legendItemPos[1]=r+a[h].height/2})}var B=[];a.compose=function(a,g,b){-1===B.indexOf(a)&&(B.push(a),d({legend:{bubbleLegend:f}}),k(a.prototype,\"drawChartBox\",c));-1===B.indexOf(g)&&(B.push(g),p(g,\"afterGetAllItems\",h));-1===B.indexOf(b)&&(B.push(b),p(b,\"legendItemClick\",z))}})(y||(y={}));return y});A(f,\"Series/Bubble/BubblePoint.js\",[f[\"Core/Series/Point.js\"],\nf[\"Core/Series/SeriesRegistry.js\"],f[\"Core/Utilities.js\"]],function(f,b,e){var a=this&&this.__extends||function(){var a=function(b,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return a(b,d)};return function(b,d){function e(){this.constructor=b}a(b,d);b.prototype=null===d?Object.create(d):(e.prototype=d.prototype,new e)}}();e=e.extend;b=function(b){function d(){var a=null!==b&&b.apply(this,arguments)||\nthis;a.options=void 0;a.series=void 0;return a}a(d,b);d.prototype.haloPath=function(a){return f.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)};return d}(b.seriesTypes.scatter.prototype.pointClass);e(b.prototype,{ttBelow:!1});return b});A(f,\"Series/Bubble/BubbleSeries.js\",[f[\"Core/Axis/Axis.js\"],f[\"Series/Bubble/BubbleLegendComposition.js\"],f[\"Series/Bubble/BubblePoint.js\"],f[\"Core/Color/Color.js\"],f[\"Core/Globals.js\"],f[\"Core/Series/Series.js\"],f[\"Core/Series/SeriesRegistry.js\"],\nf[\"Core/Utilities.js\"]],function(f,b,e,a,d,p,l,k){var y=this&&this.__extends||function(){var c=function(a,r){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,a){c.__proto__=a}||function(c,a){for(var r in a)a.hasOwnProperty(r)&&(c[r]=a[r])};return c(a,r)};return function(a,r){function b(){this.constructor=a}c(a,r);a.prototype=null===r?Object.create(r):(b.prototype=r.prototype,new b)}}(),B=a.parse;a=d.noop;var c=l.seriesTypes;d=c.column;var g=c.scatter;c=k.addEvent;var t=k.arrayMax,\nh=k.arrayMin,z=k.clamp,J=k.extend,I=k.isNumber,K=k.merge,E=k.pick;k=function(c){function a(){var a=null!==c&&c.apply(this,arguments)||this;a.data=void 0;a.maxPxSize=void 0;a.minPxSize=void 0;a.options=void 0;a.points=void 0;a.radii=void 0;a.yData=void 0;a.zData=void 0;return a}y(a,c);a.prototype.animate=function(a){!a&&this.points.length=b/2?(d.marker=J(d.marker,{radius:h,width:2*h,height:2*h}),d.dlBox=\n{x:d.plotX-h,y:d.plotY-h,width:2*h,height:2*h}):(d.shapeArgs=d.dlBox=void 0,d.plotY=0,d.marker={width:0,height:0})}};a.prototype.getPxExtremes=function(){var a=Math.min(this.chart.plotWidth,this.chart.plotHeight),c=function(c){if(\"string\"===typeof c){var b=/%$/.test(c);c=parseInt(c,10)}return b?a*c/100:c},b=c(E(this.options.minSize,8));c=Math.max(c(E(this.options.maxSize,\"20%\")),b);return{minPxSize:b,maxPxSize:c}};a.prototype.getZExtremes=function(){var c=this.options,a=(this.zData||[]).filter(I);\nif(a.length){var b=E(c.zMin,z(h(a),!1===c.displayNegative?c.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE));c=E(c.zMax,t(a));if(I(b)&&I(c))return{zMin:b,zMax:c}}};a.compose=b.compose;a.defaultOptions=K(g.defaultOptions,{dataLabels:{formatter:function(){var c=this.series.chart.numberFormatter,a=this.point.z;return I(a)?c(a,-1):\"\"},inside:!0,verticalAlign:\"middle\"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:\"circle\"},minSize:8,\nmaxSize:\"20%\",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:\"({point.x}, {point.y}), Size: {point.z}\"},turboThreshold:0,zThreshold:0,zoneAxis:\"z\"});return a}(g);J(k.prototype,{alignDataLabel:d.prototype.alignDataLabel,applyZones:a,bubblePadding:!0,buildKDTree:a,directTouch:!0,isBubble:!0,pointArrayMap:[\"y\",\"z\"],pointClass:e,parallelArrays:[\"x\",\"y\",\"z\"],trackerGroups:[\"group\",\"dataLabelsGroup\"],specialGroup:\"group\",zoneAxis:\"z\"});c(k,\"updatedData\",function(c){delete c.target.chart.bubbleZExtremes});\nf.prototype.beforePadding=function(){var c=this,a=this.len,b=this.chart,g=0,d=a,h=this.isXAxis,e=h?\"xData\":\"yData\",k=this.min,f=this.max-k,n=a/f,m;this.series.forEach(function(a){if(a.bubblePadding&&(a.visible||!b.options.chart.ignoreHiddenSeries)){m=c.allowZoomOutside=!0;var r=a[e];h&&((a.onPoint||a).getRadii(0,0,a),a.onPoint&&(a.radii=a.onPoint.radii));if(0q&&(q*=-1,l-=q);e&&a.polar?(k=v.barX+d,v.shapeType=\"arc\",v.shapeArgs=\na.polar.arc(l+q,l,k,k+v.pointWidth)):(n.height=q,n.y=l,m=n.x,m=void 0===m?0:m,n=n.width,n=void 0===n?0:n,v.tooltipPos=h.inverted?[c.len+c.pos-h.plotLeft-l-q/2,b.len+b.pos-h.plotTop-m-n/2,q]:[b.left-h.plotLeft+m+n/2,c.pos-h.plotTop+l+q/2,q])})};b.prototype.pointAttribs=function(){return y.pointAttribs.apply(this,arguments)};b.prototype.translate3dPoints=function(){return y.translate3dPoints.apply(this,arguments)};b.prototype.translate3dShapes=function(){return y.translate3dShapes.apply(this,arguments)};\nb.defaultOptions=c(k.defaultOptions,l.defaultOptions,t);return b}(l);p(a.prototype,{directTouch:!0,pointClass:f,trackerGroups:[\"group\",\"dataLabelsGroup\"],adjustForMissingColumns:y.adjustForMissingColumns,animate:y.animate,crispCol:y.crispCol,drawGraph:b,drawPoints:y.drawPoints,getSymbol:b,drawTracker:y.drawTracker,getColumnMetrics:y.getColumnMetrics});e.registerSeriesType(\"columnrange\",a);\"\";return a});A(f,\"Series/ColumnPyramid/ColumnPyramidSeries.js\",[f[\"Series/Column/ColumnSeries.js\"],f[\"Core/Series/SeriesRegistry.js\"],\nf[\"Core/Utilities.js\"]],function(f,b,e){var a=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(b,c)};return function(b,c){function d(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}(),d=f.prototype,p=e.clamp,l=e.merge,k=e.pick;e=function(b){function e(){var a=null!==b&&b.apply(this,arguments)||\nthis;a.data=void 0;a.options=void 0;a.points=void 0;return a}a(e,b);e.prototype.translate=function(){var a=this,b=a.chart,e=a.options,h=a.dense=2>a.closestPointRange*a.xAxis.transA;h=a.borderWidth=k(e.borderWidth,h?0:1);var f=a.yAxis,l=e.threshold,B=a.translatedThreshold=f.getThreshold(l),y=k(e.minPointLength,5),E=a.getColumnMetrics(),C=E.width,D=a.barW=Math.max(C,1+2*h),r=a.pointXOffset=E.offset;b.inverted&&(B-=.5);e.pointPadding&&(D=Math.ceil(D));d.translate.apply(a);a.points.forEach(function(c){var d=\nk(c.yBottom,B),g=999+Math.abs(d),h=p(c.plotY,-g,f.len+g);g=c.plotX+r;var q=D/2,t=Math.min(h,d);d=Math.max(h,d)-t;var n;c.barX=g;c.pointWidth=C;c.tooltipPos=b.inverted?[f.len+f.pos-b.plotLeft-h,a.xAxis.len-g-q,d]:[g+q,h+f.pos-b.plotTop,d];h=l+(c.total||c.y);\"percent\"===e.stacking&&(h=l+(0>c.y)?-100:100);h=f.toPixels(h,!0);var m=(n=b.plotHeight-h-(b.plotHeight-B))?q*(t-h)/n:0;var z=n?q*(t+d-h)/n:0;n=g-m+q;m=g+m+q;var u=g+z+q;z=g-z+q;var w=t-y;var x=t+d;0>c.y&&(w=t,x=t+d+y);b.inverted&&(u=f.width-t,\nn=h-(f.width-B),m=q*(h-u)/n,z=q*(h-(u-d))/n,n=g+q+m,m=n-2*m,u=g-z+q,z=g+z+q,w=t,x=t+d-y,0>c.y&&(x=t+d+y));c.shapeType=\"path\";c.shapeArgs={x:n,y:w,width:m-n,height:d,d:[[\"M\",n,w],[\"L\",m,w],[\"L\",u,x],[\"L\",z,x],[\"Z\"]]}})};e.defaultOptions=l(f.defaultOptions,{});return e}(f);b.registerSeriesType(\"columnpyramid\",e);\"\";return e});A(f,\"Series/ErrorBar/ErrorBarSeries.js\",[f[\"Series/BoxPlot/BoxPlotSeries.js\"],f[\"Series/Column/ColumnSeries.js\"],f[\"Core/Series/SeriesRegistry.js\"],f[\"Core/Utilities.js\"]],function(f,\nb,e,a){var d=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(b,c)};return function(b,c){function d(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}(),p=e.seriesTypes.arearange,l=a.merge;a=a.extend;var k=function(a){function e(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;\nc.options=void 0;c.points=void 0;return c}d(e,a);e.prototype.getColumnMetrics=function(){return this.linkedParent&&this.linkedParent.columnMetrics||b.prototype.getColumnMetrics.call(this)};e.prototype.drawDataLabels=function(){var a=this.pointValKey;p&&(p.prototype.drawDataLabels.call(this),this.data.forEach(function(c){c.y=c[a]}))};e.prototype.toYData=function(a){return[a.low,a.high]};e.defaultOptions=l(f.defaultOptions,{color:\"#000000\",grouping:!1,linkedTo:\":previous\",tooltip:{pointFormat:'\\u25cf {series.name}: {point.low} - {point.high}
'},\nwhiskerWidth:null});return e}(f);a(k.prototype,{pointArrayMap:[\"low\",\"high\"],pointValKey:\"high\",doQuartiles:!1});e.registerSeriesType(\"errorbar\",k);\"\";return k});A(f,\"Series/Gauge/GaugePoint.js\",[f[\"Core/Series/SeriesRegistry.js\"]],function(f){var b=this&&this.__extends||function(){var b=function(a,d){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return b(a,d)};return function(a,d){function e(){this.constructor=\na}b(a,d);a.prototype=null===d?Object.create(d):(e.prototype=d.prototype,new e)}}();return function(e){function a(){var a=null!==e&&e.apply(this,arguments)||this;a.options=void 0;a.series=void 0;a.shapeArgs=void 0;return a}b(a,e);a.prototype.setState=function(a){this.state=a};return a}(f.series.prototype.pointClass)});A(f,\"Series/Gauge/GaugeSeries.js\",[f[\"Series/Gauge/GaugePoint.js\"],f[\"Core/Globals.js\"],f[\"Core/Series/SeriesRegistry.js\"],f[\"Core/Utilities.js\"]],function(f,b,e,a){var d=this&&this.__extends||\nfunction(){var a=function(c,b){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(c,b)};return function(c,b){function d(){this.constructor=c}a(c,b);c.prototype=null===b?Object.create(b):(d.prototype=b.prototype,new d)}}();b=b.noop;var p=e.series,l=e.seriesTypes.column,k=a.clamp,y=a.isNumber,B=a.extend,c=a.merge,g=a.pick,t=a.pInt;a=function(a){function b(){var c=null!==a&&a.apply(this,arguments)||\nthis;c.data=void 0;c.points=void 0;c.options=void 0;c.yAxis=void 0;return c}d(b,a);b.prototype.translate=function(){var a=this.yAxis,b=this.options,d=a.center;this.generatePoints();this.points.forEach(function(g){var h=c(b.dial,g.dial),e=t(h.radius)*d[2]/200,r=t(h.baseLength)*e/100,f=t(h.rearLength)*e/100,v=h.baseWidth,l=h.topWidth,p=b.overshoot,z=a.startAngleRad+a.translate(g.y,void 0,void 0,void 0,!0);if(y(p)||!1===b.wrap)p=y(p)?p/180*Math.PI:0,z=k(z,a.startAngleRad-p,a.endAngleRad+p);z=180*z/Math.PI;\ng.shapeType=\"path\";g.shapeArgs={d:h.path||[[\"M\",-f,-v/2],[\"L\",r,-v/2],[\"L\",e,-l/2],[\"L\",e,l/2],[\"L\",r,v/2],[\"L\",-f,v/2],[\"Z\"]],translateX:d[0],translateY:d[1],rotation:z};g.plotX=d[0];g.plotY=d[1]})};b.prototype.drawPoints=function(){var a=this,b=a.chart,d=a.yAxis.center,g=a.pivot,h=a.options,e=h.pivot,r=b.renderer;a.points.forEach(function(d){var g=d.graphic,e=d.shapeArgs,f=e.d,q=c(h.dial,d.dial);g?(g.animate(e),e.d=f):d.graphic=r[d.shapeType](e).attr({rotation:e.rotation,zIndex:1}).addClass(\"highcharts-dial\").add(a.group);\nif(!b.styledMode)d.graphic[g?\"animate\":\"attr\"]({stroke:q.borderColor,\"stroke-width\":q.borderWidth,fill:q.backgroundColor})});g?g.animate({translateX:d[0],translateY:d[1]}):e&&(a.pivot=r.circle(0,0,e.radius).attr({zIndex:2}).addClass(\"highcharts-pivot\").translate(d[0],d[1]).add(a.group),b.styledMode||a.pivot.attr({fill:e.backgroundColor,stroke:e.borderColor,\"stroke-width\":e.borderWidth}))};b.prototype.animate=function(a){var c=this;a||c.points.forEach(function(a){var b=a.graphic;b&&(b.attr({rotation:180*\nc.yAxis.startAngleRad/Math.PI}),b.animate({rotation:a.shapeArgs.rotation},c.options.animation))})};b.prototype.render=function(){this.group=this.plotGroup(\"group\",\"series\",this.visible?\"inherit\":\"hidden\",this.options.zIndex,this.chart.seriesGroup);p.prototype.render.call(this);this.group.clip(this.chart.clipRect)};b.prototype.setData=function(a,c){p.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();g(c,!0)&&this.chart.redraw()};b.prototype.hasData=function(){return!!this.points.length};\nb.defaultOptions=c(p.defaultOptions,{dataLabels:{borderColor:\"#cccccc\",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:\"top\",y:15,zIndex:2},dial:{backgroundColor:\"#000000\",baseLength:\"70%\",baseWidth:3,borderColor:\"#cccccc\",borderWidth:0,radius:\"80%\",rearLength:\"10%\",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:\"#cccccc\",backgroundColor:\"#000000\"},tooltip:{headerFormat:\"\"},showInLegend:!1});return b}(p);B(a.prototype,{angular:!0,directTouch:!0,drawGraph:b,drawTracker:l.prototype.drawTracker,\nfixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:f,trackerGroups:[\"group\",\"dataLabelsGroup\"]});e.registerSeriesType(\"gauge\",a);\"\";return a});A(f,\"Series/PackedBubble/PackedBubblePoint.js\",[f[\"Core/Chart/Chart.js\"],f[\"Core/Series/Point.js\"],f[\"Core/Series/SeriesRegistry.js\"]],function(f,b,e){var a=this&&this.__extends||function(){var a=function(b,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};\nreturn a(b,d)};return function(b,d){function e(){this.constructor=b}a(b,d);b.prototype=null===d?Object.create(d):(e.prototype=d.prototype,new e)}}();return function(d){function e(){var a=null!==d&&d.apply(this,arguments)||this;a.degree=NaN;a.mass=NaN;a.radius=NaN;a.options=void 0;a.series=void 0;a.value=null;return a}a(e,d);e.prototype.destroy=function(){this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes);return b.prototype.destroy.apply(this,arguments)};\ne.prototype.firePointEvent=function(){var a=this.series.options;if(this.isParentNode&&a.parentNode){var d=a.allowPointSelect;a.allowPointSelect=a.parentNode.allowPointSelect;b.prototype.firePointEvent.apply(this,arguments);a.allowPointSelect=d}else b.prototype.firePointEvent.apply(this,arguments)};e.prototype.select=function(){var a=this.series.chart;this.isParentNode?(a.getSelectedPoints=a.getSelectedParentNodes,b.prototype.select.apply(this,arguments),a.getSelectedPoints=f.prototype.getSelectedPoints):\nb.prototype.select.apply(this,arguments)};return e}(e.seriesTypes.bubble.prototype.pointClass)});A(f,\"Series/Networkgraph/DraggableNodes.js\",[f[\"Core/Chart/Chart.js\"],f[\"Core/Globals.js\"],f[\"Core/Utilities.js\"]],function(f,b,e){var a=e.addEvent;b.dragNodesMixin={onMouseDown:function(a,b){b=this.chart.pointer.normalize(b);a.fixedPosition={chartX:b.chartX,chartY:b.chartY,plotX:a.plotX,plotY:a.plotY};a.inDragMode=!0},onMouseMove:function(a,b){if(a.fixedPosition&&a.inDragMode){var d=this.chart,e=d.pointer.normalize(b);\nb=a.fixedPosition.chartX-e.chartX;e=a.fixedPosition.chartY-e.chartY;var f=void 0,p=void 0,c=d.graphLayoutsLookup;if(5b?1:0)},barycenter:function(){var b=this.options.gravitationalConstant,e=this.barycenter.xFactor,a=this.barycenter.yFactor;e=(e-(this.box.left+this.box.width)/2)*b;a=(a-(this.box.top+this.box.height)/2)*b;this.nodes.forEach(function(b){b.fixedPosition||\n(b.plotX-=e/b.mass/b.degree,b.plotY-=a/b.mass/b.degree)})},repulsive:function(b,e,a){e=e*this.diffTemperature/b.mass/b.degree;b.fixedPosition||(b.plotX+=a.x*e,b.plotY+=a.y*e)},attractive:function(b,e,a){var d=b.getMass(),f=-a.x*e*this.diffTemperature;e=-a.y*e*this.diffTemperature;b.fromNode.fixedPosition||(b.fromNode.plotX-=f*d.fromNode/b.fromNode.degree,b.fromNode.plotY-=e*d.fromNode/b.fromNode.degree);b.toNode.fixedPosition||(b.toNode.plotX+=f*d.toNode/b.toNode.degree,b.toNode.plotY+=e*d.toNode/\nb.toNode.degree)},integrate:function(b,e){var a=-b.options.friction,d=b.options.maxSpeed,f=(e.plotX+e.dispX-e.prevX)*a;a*=e.plotY+e.dispY-e.prevY;var l=Math.abs,k=l(f)/(f||1);l=l(a)/(a||1);f=k*Math.min(d,Math.abs(f));a=l*Math.min(d,Math.abs(a));e.prevX=e.plotX+e.dispX;e.prevY=e.plotY+e.dispY;e.plotX+=f;e.plotY+=a;e.temperature=b.vectorLength({x:f,y:a})},getK:function(b){return Math.pow(b.box.width*b.box.height/b.nodes.length,.5)}},euler:{attractiveForceFunction:function(b,e){return b*b/e},repulsiveForceFunction:function(b,\ne){return e*e/b},barycenter:function(){var b=this.options.gravitationalConstant,e=this.barycenter.xFactor,a=this.barycenter.yFactor;this.nodes.forEach(function(d){if(!d.fixedPosition){var f=d.getDegree();f*=1+f/2;d.dispX+=(e-d.plotX)*b*f/d.degree;d.dispY+=(a-d.plotY)*b*f/d.degree}})},repulsive:function(b,e,a,d){b.dispX+=a.x/d*e/b.degree;b.dispY+=a.y/d*e/b.degree},attractive:function(b,e,a,d){var f=b.getMass(),l=a.x/d*e;e*=a.y/d;b.fromNode.fixedPosition||(b.fromNode.dispX-=l*f.fromNode/b.fromNode.degree,\nb.fromNode.dispY-=e*f.fromNode/b.fromNode.degree);b.toNode.fixedPosition||(b.toNode.dispX+=l*f.toNode/b.toNode.degree,b.toNode.dispY+=e*f.toNode/b.toNode.degree)},integrate:function(b,e){e.dispX+=e.dispX*b.options.friction;e.dispY+=e.dispY*b.options.friction;var a=e.temperature=b.vectorLength({x:e.dispX,y:e.dispY});0!==a&&(e.plotX+=e.dispX/a*Math.min(Math.abs(e.dispX),b.temperature),e.plotY+=e.dispY/a*Math.min(Math.abs(e.dispY),b.temperature))},getK:function(b){return Math.pow(b.box.width*b.box.height/\nb.nodes.length,.3)}}}});A(f,\"Series/Networkgraph/QuadTree.js\",[f[\"Core/Globals.js\"],f[\"Core/Utilities.js\"]],function(f,b){b=b.extend;var e=f.QuadTreeNode=function(a){this.box=a;this.boxSize=Math.min(a.width,a.height);this.nodes=[];this.body=this.isInternal=!1;this.isEmpty=!0};b(e.prototype,{insert:function(a,b){this.isInternal?this.nodes[this.getBoxPosition(a)].insert(a,b-1):(this.isEmpty=!1,this.body?b?(this.isInternal=!0,this.divideBox(),!0!==this.body&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,\nb-1),this.body=!0),this.nodes[this.getBoxPosition(a)].insert(a,b-1)):(b=new e({top:a.plotX,left:a.plotY,width:.1,height:.1}),b.body=a,b.isInternal=!1,this.nodes.push(b)):(this.isInternal=!1,this.body=a))},updateMassAndCenter:function(){var a=0,b=0,e=0;this.isInternal?(this.nodes.forEach(function(d){d.isEmpty||(a+=d.mass,b+=d.plotX*d.mass,e+=d.plotY*d.mass)}),b/=a,e/=a):this.body&&(a=this.body.mass,b=this.body.plotX,e=this.body.plotY);this.mass=a;this.plotX=b;this.plotY=e},divideBox:function(){var a=\nthis.box.width/2,b=this.box.height/2;this.nodes[0]=new e({left:this.box.left,top:this.box.top,width:a,height:b});this.nodes[1]=new e({left:this.box.left+a,top:this.box.top,width:a,height:b});this.nodes[2]=new e({left:this.box.left+a,top:this.box.top+b,width:a,height:b});this.nodes[3]=new e({left:this.box.left,top:this.box.top+b,width:a,height:b})},getBoxPosition:function(a){var b=a.plotYMath.abs(this.systemTemperature-this.prevSystemTemperature)||0>=this.temperature},\ngetSystemTemperature:function(){return this.nodes.reduce(function(a,b){return a+b.temperature},0)},vectorLength:function(a){return Math.sqrt(a.x*a.x+a.y*a.y)},getDistR:function(a,b){a=this.getDistXY(a,b);return this.vectorLength(a)},getDistXY:function(a,b){var c=a.plotX-b.plotX;a=a.plotY-b.plotY;return{x:c,y:a,absX:Math.abs(c),absY:Math.abs(a)}}});b(f,\"predraw\",function(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(function(a){a.stop()})});b(f,\"render\",function(){function a(a){a.maxIterations--&&\nisFinite(a.temperature)&&!a.isStable()&&!a.enableSimulation&&(a.beforeStep&&a.beforeStep(),a.step(),e=!1,b=!0)}var b=!1;if(this.graphLayoutsLookup){d(!1,this);for(this.graphLayoutsLookup.forEach(function(a){a.start()});!e;){var e=!0;this.graphLayoutsLookup.forEach(a)}b&&this.series.forEach(function(a){a&&a.layout&&a.render()})}});b(f,\"beforePrint\",function(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(function(a){a.updateSimulation(!1)}),this.redraw())});b(f,\"afterPrint\",function(){this.graphLayoutsLookup&&\nthis.graphLayoutsLookup.forEach(function(a){a.updateSimulation()});this.redraw()})});A(f,\"Series/PackedBubble/PackedBubbleComposition.js\",[f[\"Core/Chart/Chart.js\"],f[\"Core/Globals.js\"],f[\"Core/Utilities.js\"]],function(f,b,e){var a=b.layouts[\"reingold-fruchterman\"],d=e.addEvent,p=e.extendClass,l=e.pick;f.prototype.getSelectedParentNodes=function(){var a=[];this.series.forEach(function(b){b.parentNode&&b.parentNode.selected&&a.push(b.parentNode)});return a};b.networkgraphIntegrations.packedbubble={repulsiveForceFunction:function(a,\nb,d,c){return Math.min(a,(d.marker.radius+c.marker.radius)/2)},barycenter:function(){var a=this,b=a.options.gravitationalConstant,d=a.box,c=a.nodes,e,f;c.forEach(function(g){a.options.splitSeries&&!g.isParentNode?(e=g.series.parentNode.plotX,f=g.series.parentNode.plotY):(e=d.width/2,f=d.height/2);g.fixedPosition||(g.plotX-=(g.plotX-e)*b/(g.mass*Math.sqrt(c.length)),g.plotY-=(g.plotY-f)*b/(g.mass*Math.sqrt(c.length)))})},repulsive:function(a,b,d,c){var e=b*this.diffTemperature/a.mass/a.degree;b=d.x*\ne;d=d.y*e;a.fixedPosition||(a.plotX+=b,a.plotY+=d);c.fixedPosition||(c.plotX-=b,c.plotY-=d)},integrate:b.networkgraphIntegrations.verlet.integrate,getK:b.noop};b.layouts.packedbubble=p(a,{beforeStep:function(){this.options.marker&&this.series.forEach(function(a){a&&a.calculateParentRadius()})},isStable:function(){var a=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&.00001>a||0>=this.temperature},setCircularPositions:function(){var a=\nthis,b=a.box,d=a.nodes,c=2*Math.PI/(d.length+1),e,f,h=a.options.initialPositionRadius;d.forEach(function(d,g){a.options.splitSeries&&!d.isParentNode?(e=d.series.parentNode.plotX,f=d.series.parentNode.plotY):(e=b.width/2,f=b.height/2);d.plotX=d.prevX=l(d.plotX,e+h*Math.cos(d.index||g*c));d.plotY=d.prevY=l(d.plotY,f+h*Math.sin(d.index||g*c));d.dispX=0;d.dispY=0})},repulsiveForces:function(){var a=this,b,d,c,e=a.options.bubblePadding;a.nodes.forEach(function(f){f.degree=f.mass;f.neighbours=0;a.nodes.forEach(function(g){b=\n0;f===g||f.fixedPosition||!a.options.seriesInteraction&&f.series!==g.series||(c=a.getDistXY(f,g),d=a.vectorLength(c)-(f.marker.radius+g.marker.radius+e),0>d&&(f.degree+=.01,f.neighbours++,b=a.repulsiveForce(-d/Math.sqrt(f.neighbours),a.k,f,g)),a.force(\"repulsive\",f,b*g.mass,c,g,d))})})},applyLimitBox:function(b){if(this.options.splitSeries&&!b.isParentNode&&this.options.parentNodeLimit){var d=this.getDistXY(b,b.series.parentNode);var e=b.series.parentNodeRadius-b.marker.radius-this.vectorLength(d);\n0>e&&e>-2*b.marker.radius&&(b.plotX-=.01*d.x,b.plotY-=.01*d.y)}a.prototype.applyLimitBox.apply(this,arguments)}});d(f,\"beforeRedraw\",function(){this.allDataPoints&&delete this.allDataPoints})});A(f,\"Series/PackedBubble/PackedBubbleSeries.js\",[f[\"Core/Color/Color.js\"],f[\"Core/Globals.js\"],f[\"Series/PackedBubble/PackedBubblePoint.js\"],f[\"Core/Series/SeriesRegistry.js\"],f[\"Core/Utilities.js\"]],function(f,b,e,a,d){var p=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof\nArray&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return a(b,c)};return function(b,c){function d(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}(),l=f.parse,k=a.series,y=a.seriesTypes.bubble,B=d.addEvent,c=d.clamp,g=d.defined,t=d.extend,h=d.fireEvent,z=d.isArray,J=d.isNumber,A=d.merge,I=d.pick,E=b.dragNodesMixin;f=function(a){function d(){var b=null!==a&&a.apply(this,arguments)||this;b.chart=void 0;\nb.data=void 0;b.layout=void 0;b.options=void 0;b.points=void 0;b.xData=void 0;return b}p(d,a);d.prototype.accumulateAllPoints=function(a){var b=a.chart,c=[],d,e;for(d=0;dd&&(d=a),aMath.sqrt(c*c+d*d)-Math.abs(a[2]+b[2])};d.prototype.createParentNodes=function(){var a=this,b=a.chart,c=a.parentNodeLayout,d,e=a.parentNode,f=a.pointClass,g=a.layout.options,h={radius:a.parentNodeRadius,lineColor:a.color,fillColor:l(a.color).brighten(.4).get()};g.parentNodeOptions&&(h=A(g.parentNodeOptions.marker||{},h));a.parentNodeMass=0;a.points.forEach(function(b){a.parentNodeMass+=Math.PI*Math.pow(b.marker.radius,2)});a.calculateParentRadius();c.nodes.forEach(function(b){b.seriesIndex===\na.index&&(d=!0)});c.setArea(0,0,b.plotWidth,b.plotHeight);d||(e||(e=(new f).init(this,{mass:a.parentNodeRadius/2,marker:h,dataLabels:{inside:!1},states:{normal:{marker:h},hover:{marker:h}},dataLabelOnNull:!0,degree:a.parentNodeRadius,isParentNode:!0,seriesIndex:a.index})),a.parentNode&&(e.plotX=a.parentNode.plotX,e.plotY=a.parentNode.plotY),a.parentNode=e,c.addElementsToCollection([a],c.series),c.addElementsToCollection([e],c.nodes))};d.prototype.deferLayout=function(){var a=this.options.layoutAlgorithm;\nthis.visible&&(this.addLayout(),a.splitSeries&&this.addSeriesLayout())};d.prototype.destroy=function(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(function(a){a.removeElementFromCollection(this,a.series)},this);this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy()));k.prototype.destroy.apply(this,arguments)};\nd.prototype.drawDataLabels=function(){var a=this.options.dataLabels.textPath,b=this.points;k.prototype.drawDataLabels.apply(this,arguments);this.parentNode&&(this.parentNode.formatPrefix=\"parentNode\",this.points=[this.parentNode],this.options.dataLabels.textPath=this.options.dataLabels.parentNodeTextPath,k.prototype.drawDataLabels.apply(this,arguments),this.points=b,this.options.dataLabels.textPath=a)};d.prototype.drawGraph=function(){if(this.layout&&this.layout.options.splitSeries){var a=this.chart;\nvar b=this.layout.options.parentNodeOptions.marker;var c={fill:b.fillColor||l(this.color).brighten(.4).get(),opacity:b.fillOpacity,stroke:b.lineColor||this.color,\"stroke-width\":I(b.lineWidth,this.options.lineWidth)};this.parentNodesGroup||(this.parentNodesGroup=this.plotGroup(\"parentNodesGroup\",\"parentNode\",this.visible?\"inherit\":\"hidden\",.1,a.seriesGroup),this.group.attr({zIndex:2}));this.calculateParentRadius();b=A({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,\nwidth:2*this.parentNodeRadius,height:2*this.parentNodeRadius},c);this.parentNode.graphic||(this.graph=this.parentNode.graphic=a.renderer.symbol(c.symbol).add(this.parentNodesGroup));this.parentNode.graphic.attr(b)}};d.prototype.drawTracker=function(){var b=this.parentNode;a.prototype.drawTracker.call(this);if(b){var c=z(b.dataLabels)?b.dataLabels:b.dataLabel?[b.dataLabel]:[];b.graphic&&(b.graphic.element.point=b);c.forEach(function(a){a.div?a.div.point=b:a.element.point=b})}};d.prototype.getPointRadius=\nfunction(){var a=this,b=a.chart,d=a.options,e=d.useSimulation,f=Math.min(b.plotWidth,b.plotHeight),g={},h=[],n=b.allDataPoints,m,k,u,w;[\"minSize\",\"maxSize\"].forEach(function(a){var b=parseInt(d[a],10),c=/%$/.test(d[a]);g[a]=c?f*b/100:b*Math.sqrt(n.length)});b.minRadius=m=g.minSize/Math.sqrt(n.length);b.maxRadius=k=g.maxSize/Math.sqrt(n.length);var x=e?a.calculateZExtremes():[m,k];(n||[]).forEach(function(b,d){u=e?c(b[2],x[0],x[1]):b[2];w=a.getRadius(x[0],x[1],m,k,u);0===w&&(w=null);n[d][2]=w;h.push(w)});\na.radii=h};d.prototype.init=function(){k.prototype.init.apply(this,arguments);this.eventsToUnbind.push(B(this,\"updatedData\",function(){this.chart.series.forEach(function(a){a.type===this.type&&(a.isDirty=!0)},this)}));return this};d.prototype.onMouseUp=function(a){if(a.fixedPosition&&!a.removed){var b,c,d=this.layout,e=this.parentNodeLayout;e&&d.options.dragBetweenSeries&&e.nodes.forEach(function(e){a&&a.marker&&e!==a.series.parentNode&&(b=d.getDistXY(a,e),c=d.vectorLength(b)-e.marker.radius-a.marker.radius,\n0>c&&(e.series.addPoint(A(a.options,{plotX:a.plotX,plotY:a.plotY}),!1),d.removeElementFromCollection(a,d.nodes),a.remove()))});E.onMouseUp.apply(this,arguments)}};d.prototype.placeBubbles=function(a){var b=this.checkOverlap,c=this.positionBubble,d=[],e=1,f=0,g=0;var h=[];var m;a=a.sort(function(a,b){return b[2]-a[2]});if(a.length){d.push([[0,0,a[0][2],a[0][3],a[0][4]]]);if(1a[1]-b[1]?0:Math.PI)+f+e*(0>(a[0]-b[0])*(a[1]-b[1])?1:-1);return[b[0]+(b[2]+c[2])*Math.sin(a),b[1]-(b[2]+c[2])*Math.cos(a),c[2],c[3],c[4]]};d.prototype.render=function(){var a=[];\nk.prototype.render.apply(this,arguments);this.options.dataLabels.allowOverlap||(this.data.forEach(function(b){z(b.dataLabels)&&b.dataLabels.forEach(function(b){a.push(b)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(a))};d.prototype.resizeRadius=function(){var a=this.chart,b=a.rawPositions,c=Math.min,d=Math.max,e=a.plotLeft,f=a.plotTop,g=a.plotHeight,h=a.plotWidth,m,k,u;var w=m=Number.POSITIVE_INFINITY;var x=k=Number.NEGATIVE_INFINITY;for(u=0;uu.height&&(u.y+=u.height,u.height*=-1);m.plotY=u.y=Math.round(u.y||\n0)-this.borderWidth%2/2;u.height=Math.max(Math.round(u.height||0),.001);m.yBottom=u.y+u.height;u.height<=c&&!m.isNull?(u.height=c,u.y-=d,m.plotY=u.y,m.minPointLengthOffset=0>m.y?-d:d):(m.isNull&&(u.width=0),m.minPointLengthOffset=0);x=m.plotY+(m.negative?u.height:0);m.below&&(m.plotY+=u.height);m.tooltipPos&&(this.chart.inverted?m.tooltipPos[0]=b.len-x:m.tooltipPos[1]=x);m.isInside=this.isPointInside(m)}}};b.prototype.processData=function(b){var c=this.options,d=this.yData,e=c.data,f=d.length,g=c.threshold||\n0,h,k,l,n,m;for(m=k=h=l=n=0;ml.y&&!g||0n.indexOf(g)&&(w=!0);c[g]||(c[g]={});n=c[g];for(var x=0;x-Math.PI/2&&u-Math.PI&&0>u||u>Math.PI?-10:10)}return h}function I(a){var b=this,c=this.pane.center,d=this.chart,e=d.inverted,f=a.reverse,g=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},m=g.innerRadius||\"0%\",n=g.outerRadius||\"100%\",\nk=c[0]+d.plotLeft,w=c[1]+d.plotTop,u=this.height,l=a.isCrosshair;g=c[3]/2;var x=a.value,p;var r=this.getPosition(x);var q=r.x;r=r.y;l&&(r=this.getCrosshairPosition(a,k,w),x=r[0],q=r[1],r=r[2]);if(this.isCircular)x=Math.sqrt(Math.pow(q-k,2)+Math.pow(r-w,2)),f=\"string\"===typeof m?h(m,1):m/x,d=\"string\"===typeof n?h(n,1):n/x,c&&g&&(g/=x,fx||x>u)&&(x=0),\"circle\"===this.options.gridLineInterpolation)c=\nthis.getLinePath(0,x,g);else if(c=[],d[e?\"yAxis\":\"xAxis\"].forEach(function(a){a.pane===b.pane&&(p=a)}),p)for(k=p.tickPositions,p.autoConnect&&(k=k.concat([k[0]])),f&&(k=k.slice().reverse()),x&&(x+=g),w=0;wa?0:a,this.center[2]/2)-this.offset)}function G(){var a=this.center,b=this.chart,c=this.options.title;\nreturn{x:b.plotLeft+a[0]+(c.x||0),y:b.plotTop+a[1]-{high:.5,middle:.25,low:0}[c.align]*a[2]+(c.y||0)}}function J(a){a.beforeSetTickPositions=b;a.createLabelCollector=e;a.getCrosshairPosition=D;a.getLinePath=r;a.getOffset=q;a.getPlotBandPath=v;a.getPlotLinePath=I;a.getPosition=H;a.getTitlePosition=G;a.postTranslate=P;a.setAxisSize=V;a.setAxisTranslation=W;a.setOptions=U}function n(){var a=this.chart,b=this.options,c=this.pane,d=c&&c.options;a.angular&&this.isXAxis||!c||!a.angular&&!a.polar||(this.angleRad=\n(b.angle||0)*Math.PI/180,this.startAngleRad=(d.startAngle-90)*Math.PI/180,this.endAngleRad=(t(d.endAngle,d.startAngle+360)-90)*Math.PI/180,this.offset=b.offset||0)}function m(a){this.isRadial&&(a.align=void 0,a.preventDefault())}function F(){if(this.chart&&this.chart.labelCollectors){var a=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;0<=a&&this.chart.labelCollectors.splice(a,1)}}function u(a){var b=this.chart,c=b.inverted,d=b.angular,e=b.polar,m=this.isXAxis,h=this.coll,\nn=d&&m,k=b.options;a=a.userOptions.pane||0;a=this.pane=b.pane&&b.pane[a];var w;if(\"colorAxis\"===h)this.isRadial=!1;else{if(d){if(n?(this.isHidden=!0,this.createLabelCollector=A,this.getOffset=p,this.render=this.redraw=Q,this.setTitle=this.setCategories=this.setScale=p):J(this),w=!m)this.defaultPolarOptions=T}else e&&(J(this),this.defaultPolarOptions=(w=this.horiz)?S:g(\"xAxis\"===h?f.defaultXAxisOptions:f.defaultYAxisOptions,X),c&&\"yAxis\"===h&&(this.defaultPolarOptions.stackLabels=f.defaultYAxisOptions.stackLabels,\nthis.defaultPolarOptions.reversedStacks=!0));d||e?(this.isRadial=!0,k.chart.zoomType=null,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&b.labelCollectors.push(this.labelCollector)):this.isRadial=!1;a&&w&&(a.axis=this);this.isCircular=w}}function w(){this.isRadial&&this.beforeSetTickPositions()}function x(a){var b=this.label;if(b){var c=this.axis,d=b.getBBox(),e=c.options.labels,f=(c.translate(this.pos)+c.startAngleRad+Math.PI/2)/Math.PI*180%360,g=Math.round(f),\nm=y(e.y)?0:.3*-d.height,n=e.y,k=20,w=e.align,u=\"end\",x=0>g?g+360:g,l=x,p=0,r=0;if(c.isRadial){var q=c.getPosition(this.pos,c.center[2]/2+h(t(e.distance,-25),c.center[2]/2,-c.center[2]/2));\"auto\"===e.rotation?b.attr({rotation:f}):y(n)||(n=c.chart.renderer.fontMetrics(b.styles&&b.styles.fontSize).b-d.height/2);y(w)||(c.isCircular?(d.width>c.len*c.tickInterval/(c.max-c.min)&&(k=0),w=f>k&&f<180-k?\"left\":f>180+k&&f<360-k?\"right\":\"center\"):w=\"center\",b.attr({align:w}));if(\"auto\"===w&&2===c.tickPositions.length&&\nc.isCircular){90x?x=180-x:270=x&&(x=540-x);180=l&&(l=360-l);if(c.pane.options.startAngle===g||c.pane.options.startAngle===g+360||c.pane.options.startAngle===g-360)u=\"start\";w=-90<=g&&90>=g||-360<=g&&-270>=g||270<=g&&360>=g?\"start\"===u?\"right\":\"left\":\"start\"===u?\"left\":\"right\";70l&&(w=\"center\");15>x||180<=x&&195>x?p=.3*d.height:15<=x&&35>=x?p=\"start\"===u?0:.75*d.height:195<=x&&215>=x?p=\"start\"===u?.75*d.height:0:35=x?p=\"start\"===u?.25*-d.height:d.height:215=x&&(p=\"start\"===u?d.height:.25*-d.height);15>l?r=\"start\"===u?.15*-d.height:.15*d.height:165=l&&(r=\"start\"===u?.15*d.height:.15*-d.height);b.attr({align:w});b.translate(r,p+m)}a.pos.x=q.x+(e.x||0);a.pos.y=q.y+(n||0)}}}function O(a){this.axis.getPosition&&B(a.pos,this.axis.getPosition(this.pos))}function P(a,b){var c=this.chart,d=this.center;a=this.startAngleRad+a;return{x:c.plotLeft+d[0]+Math.cos(a)*b,y:c.plotTop+d[1]+Math.sin(a)*b}}function Q(){this.isDirty=!1}function V(){this.constructor.prototype.setAxisSize.call(this);\nif(this.isRadial){this.pane.updateCenter(this);var a=this.center=this.pane.center.slice();if(this.isCircular)this.sector=this.endAngleRad-this.startAngleRad;else{var b=this.postTranslate(this.angleRad,a[3]/2);a[0]=b.x-this.chart.plotLeft;a[1]=b.y-this.chart.plotTop}this.len=this.width=this.height=(a[2]-a[3])*t(this.sector,1)/2}}function W(){this.constructor.prototype.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):\n(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function U(a){a=this.options=g(this.constructor.defaultOptions,this.defaultPolarOptions,d[this.coll],a);a.plotBands||(a.plotBands=[]);c(this,\"afterSetOptions\")}function R(a,b,c,d,e,f,g){var m=this.axis;m.isRadial?(a=m.getPosition(this.pos,m.center[2]/2+d),b=[\"M\",b,c,\"L\",a.x,a.y]):b=a.call(this,b,c,d,e,f,g);return b}var M=[],S={gridLineWidth:1,labels:{align:void 0,distance:15,\nx:0,y:void 0,style:{textOverflow:\"none\"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},T={labels:{align:\"center\",x:0,y:void 0},minorGridLineWidth:0,minorTickInterval:\"auto\",minorTickLength:10,minorTickPosition:\"inside\",minorTickWidth:1,tickLength:10,tickPosition:\"inside\",tickWidth:2,title:{rotation:0},zIndex:2},X={gridLineInterpolation:\"circle\",gridLineWidth:1,labels:{align:\"right\",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};a.compose=function(a,b){-1===M.indexOf(a)&&\n(M.push(a),l(a,\"afterInit\",n),l(a,\"autoLabelAlign\",m),l(a,\"destroy\",F),l(a,\"init\",u),l(a,\"initialAxisTranslation\",w));-1===M.indexOf(b)&&(M.push(b),l(b,\"afterGetLabelPosition\",x),l(b,\"afterGetPosition\",O),z(b.prototype,\"getMarkPath\",R));return a}})(A||(A={}));return A});A(f,\"Series/PolarComposition.js\",[f[\"Core/Animation/AnimationUtilities.js\"],f[\"Core/Globals.js\"],f[\"Extensions/Pane.js\"],f[\"Core/Axis/RadialAxis.js\"],f[\"Core/Utilities.js\"]],function(f,b,e,a,d){function p(a,b,c,d){var e=d?1:0;var f=\n0<=b&&b<=a.length-1?b:0>b?a.length-1+b:0;b=0>f-1?a.length-(1+e):f-1;var g=a[b];e=a[f+1>a.length-1?e:f+1];var m=g.plotY;var h=e.plotX;var k=e.plotY;e=a[f].plotX;f=a[f].plotY;g=(1.5*e+g.plotX)/2.5;m=(1.5*f+m)/2.5;h=(1.5*e+h)/2.5;var n=(1.5*f+k)/2.5;k=Math.sqrt(Math.pow(g-e,2)+Math.pow(m-f,2));var u=Math.sqrt(Math.pow(h-e,2)+Math.pow(n-f,2));g=Math.atan2(m-f,g-e);n=Math.PI/2+(g+Math.atan2(n-f,h-e))/2;Math.abs(g-n)>Math.PI/2&&(n-=Math.PI);g=e+Math.cos(n)*k;m=f+Math.sin(n)*k;h=e+Math.cos(Math.PI+n)*u;\nn=f+Math.sin(Math.PI+n)*u;e={rightContX:h,rightContY:n,leftContX:g,leftContY:m,plotX:e,plotY:f};c&&(e.prevPointCont=p(a,b,!1,d));return e}function l(){(this.pane||[]).forEach(function(a){a.render()})}function k(){var a=this;this.pane||(this.pane=[]);this.options.pane=v(this.options.pane);this.options.pane.forEach(function(b){new e(b,a)},this)}function y(){var a=this.chart;a.polar&&(this.polar=new N(this),a.inverted&&(this.isRadialSeries=!0,this.is(\"column\")&&(this.isRadialBar=!0)))}function B(){if(this.chart.polar&&\nthis.xAxis){var a=this.chart;(this.kdByAngle=a.tooltip&&a.tooltip.shared)?this.searchPoint=this.polar.searchPointByAngle:this.options.findNearestPointBy=\"xy\";if(!this.preventPostTranslate)for(var c=this.points,d=c.length,e=void 0;d--;)e=c[d],this.polar.toXY(e),!a.hasParallelCoordinates&&!this.yAxis.reversed&&e.ya?\"left\":200a?\"right\":\"center\"),null===d.verticalAlign&&(d.verticalAlign=45>\na||315a?\"top\":\"middle\")),Object.getPrototypeOf(Object.getPrototypeOf(this)).alignDataLabel.call(this,b,c,d,e,f),this.isRadialBar&&b.shapeArgs&&b.shapeArgs.start===b.shapeArgs.end?c.hide():c.show()):a.call(this,b,c,d,e,f)}function t(a){var b=this.options,c=b.stacking,e=this.chart,f=this.xAxis,g=this.yAxis,h=g.reversed,k=g.center,n=f.startAngleRad,l=f.endAngleRad-n,p=0,q=0,t=0;this.preventPostTranslate=!0;a.call(this);if(f.isRadial){a=this.points;f=a.length;var v=g.translate(g.min);\nvar z=g.translate(g.max);b=b.threshold||0;e.inverted&&r(b)&&(p=g.translate(b),C(p)&&(0>p?p=0:p>l&&(p=l),this.translatedThreshold=p+n));for(;f--;){b=a[f];var y=b.barX;var B=b.x;var A=b.y;b.shapeType=\"arc\";if(e.inverted){b.plotY=g.translate(A);c&&g.stacking?(A=g.stacking.stacks[(0>A?\"-\":\"\")+this.stackKey],this.visible&&A&&A[B]&&!b.isNull&&(t=A[B].points[this.getStackIndicator(void 0,B,this.index).key],q=g.translate(t[0]),t=g.translate(t[1]),C(q)&&(q=d.clamp(q,0,l)))):(q=p,t=b.plotY);q>t&&(t=[q,q=t][0]);\nif(!h)if(qz)t=z;else{if(tz)q=t=0}else if(t>v)t=v;else if(qv||tg.max&&(q=t=h?l:0);q+=n;t+=n;k&&(b.barX=y+=k[3]/2);B=Math.max(y,0);A=Math.max(y+b.pointWidth,0);b.shapeArgs={x:k&&k[0],y:k&&k[1],r:A,innerR:B,start:q,end:t};b.opacity=q===t?0:void 0;b.plotY=(C(this.translatedThreshold)&&(qk[1])}}}function h(a,b){var c=this;if(this.chart.polar){b=b||this.points;for(var d=0;db&&(b=h),0>a&&(a=h));return{x:f[0],y:f[1],r:b,innerR:a,start:c,end:d}};b.prototype.searchPointByAngle=function(a){var b=this.series,c=b.chart,d=b.xAxis.pane.center;return b.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-\nd[0]-c.plotLeft,a.chartY-d[1]-c.plotTop)})};b.prototype.toXY=function(a){var b=this.series,c=b.chart,d=b.xAxis,e=b.yAxis,f=a.plotX,g=c.inverted,h=a.y,k=a.plotY,l=g?f:e.len-k;g&&b&&!b.isRadialBar&&(a.plotY=k=r(h)?e.translate(h):0);a.rectPlotX=f;a.rectPlotY=k;e.center&&(l+=e.center[3]/2);r(k)&&(e=g?e.postTranslate(k,l):d.postTranslate(f,l),a.plotX=a.polarPlotX=e.x-c.plotLeft,a.plotY=a.polarPlotY=e.y-c.plotTop);b.kdByAngle?(b=(f/Math.PI*180+d.pane.options.startAngle)%360,0>b&&(b+=360),a.clientX=b):a.clientX=\na.plotX};return b}();return N});A(f,\"masters/highcharts-more.src.js\",[f[\"Core/Globals.js\"],f[\"Core/Series/SeriesRegistry.js\"],f[\"Series/Bubble/BubbleSeries.js\"],f[\"Series/PolarComposition.js\"]],function(f,b,e,a){e.compose(f.Chart,f.Legend,f.Series);a.compose(f.Axis,f.Chart,f.Pointer,f.Series,f.Tick,b.seriesTypes.areasplinerange,b.seriesTypes.column,b.seriesTypes.line,b.seriesTypes.spline)})});\n","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(Y,K){\"object\"===typeof module&&module.exports?(K[\"default\"]=K,module.exports=Y.document?K(Y):K):\"function\"===typeof define&&define.amd?define(\"highcharts/highcharts\",function(){return K(Y)}):(Y.Highcharts&&Y.Highcharts.error(16,!0),Y.Highcharts=K(Y))})(\"undefined\"!==typeof window?window:this,function(Y){function K(f,e,l,C){f.hasOwnProperty(e)||(f[e]=C.apply(null,l),\"function\"===typeof CustomEvent&&Y.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:e,module:f[e]}})))}\nvar l={};K(l,\"Core/Globals.js\",[],function(){var f;(function(e){e.SVG_NS=\"http://www.w3.org/2000/svg\";e.product=\"Highcharts\";e.version=\"10.2.0\";e.win=\"undefined\"!==typeof Y?Y:{};e.doc=e.win.document;e.svg=e.doc&&e.doc.createElementNS&&!!e.doc.createElementNS(e.SVG_NS,\"svg\").createSVGRect;e.userAgent=e.win.navigator&&e.win.navigator.userAgent||\"\";e.isChrome=-1!==e.userAgent.indexOf(\"Chrome\");e.isFirefox=-1!==e.userAgent.indexOf(\"Firefox\");e.isMS=/(edge|msie|trident)/i.test(e.userAgent)&&!e.win.opera;\ne.isSafari=!e.isChrome&&-1!==e.userAgent.indexOf(\"Safari\");e.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(e.userAgent);e.isWebKit=-1!==e.userAgent.indexOf(\"AppleWebKit\");e.deg2rad=2*Math.PI/360;e.hasBidiBug=e.isFirefox&&4>parseInt(e.userAgent.split(\"Firefox/\")[1],10);e.hasTouch=!!e.win.TouchEvent;e.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"];e.noop=function(){};e.supportsPassiveEvents=function(){var f=!1;if(!e.isMS){var l=Object.defineProperty({},\"passive\",{get:function(){f=\n!0}});e.win.addEventListener&&e.win.removeEventListener&&(e.win.addEventListener(\"testPassive\",e.noop,l),e.win.removeEventListener(\"testPassive\",e.noop,l))}return f}();e.charts=[];e.dateFormats={};e.seriesTypes={};e.symbolSizes={};e.chartCount=0})(f||(f={}));\"\";return f});K(l,\"Core/Utilities.js\",[l[\"Core/Globals.js\"]],function(f){function e(c,u,g,k){var A=u?\"Highcharts error\":\"Highcharts warning\";32===c&&(c=\"\"+A+\": Deprecated member\");var m=t(c),n=m?\"\"+A+\" #\"+c+\": www.highcharts.com/errors/\"+c+\"/\":\nc.toString();if(\"undefined\"!==typeof k){var b=\"\";m&&(n+=\"?\");w(k,function(a,c){b+=\"\\n - \".concat(c,\": \").concat(a);m&&(n+=encodeURI(c)+\"=\"+encodeURI(a))});n+=b}x(f,\"displayError\",{chart:g,code:c,message:n,params:k},function(){if(u)throw Error(n);a.console&&-1===e.messages.indexOf(n)&&console.warn(n)});e.messages.push(n)}function l(a,c){var A={};w(a,function(u,g){if(G(a[g],!0)&&!a.nodeType&&c[g])u=l(a[g],c[g]),Object.keys(u).length&&(A[g]=u);else if(G(a[g])||a[g]!==c[g]||g in a&&!(g in c))A[g]=a[g]});\nreturn A}function C(a,c){return parseInt(a,c||10)}function v(a){return\"string\"===typeof a}function E(a){a=Object.prototype.toString.call(a);return\"[object Array]\"===a||\"[object Array Iterator]\"===a}function G(a,c){return!!a&&\"object\"===typeof a&&(!c||!E(a))}function B(a){return G(a)&&\"number\"===typeof a.nodeType}function y(a){var c=a&&a.constructor;return!(!G(a,!0)||B(a)||!c||!c.name||\"Object\"===c.name)}function t(a){return\"number\"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity=u-1&&(u=Math.floor(g)),Math.max(0,u-(A(c,\"padding-left\",!0)||0)-(A(c,\"padding-right\",!0)||0));if(\"height\"===u)return Math.max(0,Math.min(c.offsetHeight,c.scrollHeight)-(A(c,\"padding-top\",!0)||0)-(A(c,\n\"padding-bottom\",!0)||0));a.getComputedStyle||e(27,!0);if(c=a.getComputedStyle(c,void 0)){var k=c.getPropertyValue(u);p(g,\"opacity\"!==u)&&(k=C(k))}return k}function w(a,c,g){for(var A in a)Object.hasOwnProperty.call(a,A)&&c.call(g||a[A],a[A],A,a)}function z(a,c,g){function A(c,I){var A=a.removeEventListener||f.removeEventListenerPolyfill;A&&A.call(a,c,I,!1)}function u(u){var I;if(a.nodeName){if(c){var H={};H[c]=!0}else H=u;w(H,function(a,c){if(u[c])for(I=u[c].length;I--;)A(c,u[c][I].fn)})}}var k=\n\"function\"===typeof a&&a.prototype||a;if(Object.hasOwnProperty.call(k,\"hcEvents\")){var m=k.hcEvents;c?(k=m[c]||[],g?(m[c]=k.filter(function(a){return g!==a.fn}),A(c,g)):(u(m),m[c]=[])):(u(m),delete k.hcEvents)}}function x(a,c,g,m){g=g||{};if(k.createEvent&&(a.dispatchEvent||a.fireEvent&&a!==f)){var A=k.createEvent(\"Events\");A.initEvent(c,!0,!0);g=b(A,g);a.dispatchEvent?a.dispatchEvent(g):a.fireEvent(c,g)}else if(a.hcEvents){g.target||b(g,{preventDefault:function(){g.defaultPrevented=!0},target:a,\ntype:c});A=[];for(var u=a,n=!1;u.hcEvents;)Object.hasOwnProperty.call(u,\"hcEvents\")&&u.hcEvents[c]&&(A.length&&(n=!0),A.unshift.apply(A,u.hcEvents[c])),u=Object.getPrototypeOf(u);n&&A.sort(function(a,c){return a.order-c.order});A.forEach(function(c){!1===c.fn.call(a,g)&&g.preventDefault()})}m&&!g.defaultPrevented&&m.call(a,g)}var m=f.charts,k=f.doc,a=f.win;(e||(e={})).messages=[];Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};var g=Array.prototype.find?function(a,c){return a.find(c)}:\nfunction(a,c){var A,u=a.length;for(A=0;Ag&&(g=a[c]);return g},arrayMin:function(a){for(var c=a.length,g=a[0];c--;)a[c]c?a=g&&(c=[1/g])));for(k=0;k=a||!m&&A<=(c[k]+(c[k+1]||c[k]))/2);k++);return u=n(u*g,-Math.round(Math.log(.001)/Math.LN10))},objectEach:w,offset:function(c){var g=k.documentElement;c=c.parentElement||c.parentNode?c.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:c.top+(a.pageYOffset||g.scrollTop)-(g.clientTop||0),left:c.left+(a.pageXOffset||g.scrollLeft)-\n(g.clientLeft||0),width:c.width,height:c.height}},pad:function(a,c,g){return Array((c||2)+1-String(a).replace(\"-\",\"\").length).join(g||\"0\")+a},pick:p,pInt:C,relativeLength:function(a,c,g){return/%$/.test(a)?c*parseFloat(a)/100+(g||0):parseFloat(a)},removeEvent:z,splat:function(a){return E(a)?a:[a]},stableSort:function(a,c){var g=a.length,k,u;for(u=0;u>16,(t&65280)>>8,t&255,1]:\n4===y&&(B=[(t&3840)>>4|(t&3840)>>8,(t&240)>>4|t&240,(t&15)<<4|t&15,1])}if(!B)for(t=e.parsers.length;t--&&!B;){var h=e.parsers[t];(y=h.regex.exec(f))&&(B=h.parse(y))}}B&&(this.rgba=B)};e.prototype.get=function(e){var B=this.input,y=this.rgba;if(\"object\"===typeof B&&\"undefined\"!==typeof this.stops){var t=C(B);t.stops=[].slice.call(t.stops);this.stops.forEach(function(h,d){t.stops[d]=[t.stops[d][0],h.get(e)]});return t}return y&&l(y[0])?\"rgb\"===e||!e&&1===y[3]?\"rgb(\"+y[0]+\",\"+y[1]+\",\"+y[2]+\")\":\"a\"===\ne?\"\".concat(y[3]):\"rgba(\"+y.join(\",\")+\")\":B};e.prototype.brighten=function(e){var B=this.rgba;if(this.stops)this.stops.forEach(function(t){t.brighten(e)});else if(l(e)&&0!==e)for(var y=0;3>y;y++)B[y]+=v(255*e),0>B[y]&&(B[y]=0),255m?\"AM\":\"PM\",P:12>m?\"am\":\"pm\",S:t(p.getSeconds()),L:t(Math.floor(d%1E3),3)},f.dateFormats);y(p,function(a,c){for(;-1!==b.indexOf(\"%\"+c);)b=b.replace(\"%\"+c,\"function\"===typeof a?a.call(n,d):a)});return r?b.substr(0,\n1).toUpperCase()+b.substr(1):b};r.prototype.resolveDTLFormat=function(b){return G(b,!0)?b:(b=d(b),{main:b[0],from:b[1],to:b[2]})};r.prototype.getTimeTicks=function(d,r,p,q){var n=this,m=[],k={},a=new n.Date(r),g=d.unitRange,c=d.count||1,D;q=h(q,1);if(C(r)){n.set(\"Milliseconds\",a,g>=b.second?0:c*Math.floor(n.get(\"Milliseconds\",a)/c));g>=b.second&&n.set(\"Seconds\",a,g>=b.minute?0:c*Math.floor(n.get(\"Seconds\",a)/c));g>=b.minute&&n.set(\"Minutes\",a,g>=b.hour?0:c*Math.floor(n.get(\"Minutes\",a)/c));g>=b.hour&&\nn.set(\"Hours\",a,g>=b.day?0:c*Math.floor(n.get(\"Hours\",a)/c));g>=b.day&&n.set(\"Date\",a,g>=b.month?1:Math.max(1,c*Math.floor(n.get(\"Date\",a)/c)));if(g>=b.month){n.set(\"Month\",a,g>=b.year?0:c*Math.floor(n.get(\"Month\",a)/c));var A=n.get(\"FullYear\",a)}g>=b.year&&n.set(\"FullYear\",a,A-A%c);g===b.week&&(A=n.get(\"Day\",a),n.set(\"Date\",a,n.get(\"Date\",a)-A+q+(A4*b.month||n.getTimezoneOffset(r)!==n.getTimezoneOffset(p));r=a.getTime();for(a=1;rm.length&&m.forEach(function(a){0===a%18E5&&\"000000000\"===n.dateFormat(\"%H%M%S%L\",a)&&(k[a]=\"day\")})}m.info=E(d,{higherRanks:k,totalRange:g*c});return m};r.prototype.getDateFormat=function(n,d,r,\np){var q=this.dateFormat(\"%m-%d %H:%M:%S.%L\",d),m={millisecond:15,second:12,minute:9,hour:6,day:3},k=\"millisecond\";for(a in b){if(n===b.week&&+this.dateFormat(\"%w\",d)===r&&\"00:00:00.000\"===q.substr(6)){var a=\"week\";break}if(b[a]>n){a=k;break}if(m[a]&&q.substr(m[a])!==\"01-01 00:00:00.000\".substr(m[a]))break;\"week\"!==a&&(k=a)}return this.resolveDTLFormat(p[a]).main};return r}();\"\";return e});K(l,\"Core/DefaultOptions.js\",[l[\"Core/Chart/ChartDefaults.js\"],l[\"Core/Color/Color.js\"],l[\"Core/Globals.js\"],\nl[\"Core/Color/Palettes.js\"],l[\"Core/Time.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v,E){e=e.parse;var P=E.merge,B={colors:C.colors,symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),decimalPoint:\".\",\nnumericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:f,title:{text:\"Chart title\",align:\"center\",margin:15,widthAdjust:-44},subtitle:{text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},labels:{style:{position:\"absolute\",color:\"#333333\"}},legend:{enabled:!0,align:\"center\",\nalignColumns:!0,className:\"highcharts-no-tooltip\",layout:\"horizontal\",labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{activeColor:\"#003399\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"12px\",fontWeight:\"bold\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#cccccc\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",\nx:0,y:0,title:{style:{fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:l.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %b %e, %H:%M:%S.%L\",second:\"%A, %b %e, %H:%M:%S\",minute:\"%A, %b %e, %H:%M\",hour:\"%A, %b %e, %H:%M\",day:\"%A, %b %e, %Y\",week:\"Week from %A, %b %e, %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",headerShape:\"callout\",\nhideDelay:500,padding:8,shape:\"callout\",shared:!1,snap:l.isTouchDevice?25:10,headerFormat:'{point.key}
',pointFormat:'\\u25cf {series.name}: {point.y}
',backgroundColor:e(\"#f7f7f7\").setOpacity(.85).get(),borderWidth:1,shadow:!0,stickOnContact:!1,style:{color:\"#333333\",cursor:\"default\",fontSize:\"12px\",whiteSpace:\"nowrap\"},useHTML:!1},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",\nx:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"9px\"},text:\"Highcharts.com\"}};B.chart.styledMode=!1;\"\";var y=new v(P(B.global,B.time));f={defaultOptions:B,defaultTime:y,getOptions:function(){return B},setOptions:function(t){P(!0,B,t);if(t.time||t.global)l.time?l.time.update(P(B.global,B.time,t.global,t.time)):l.time=y;return B}};\"\";return f});K(l,\"Core/Animation/Fx.js\",[l[\"Core/Color/Color.js\"],l[\"Core/Globals.js\"],l[\"Core/Utilities.js\"]],function(f,e,l){var P=\nf.parse,v=e.win,E=l.isNumber,G=l.objectEach;return function(){function e(e,t,h){this.pos=NaN;this.options=t;this.elem=e;this.prop=h}e.prototype.dSetter=function(){var e=this.paths,t=e&&e[0];e=e&&e[1];var h=this.now||0,d=[];if(1!==h&&t&&e)if(t.length===e.length&&1>h)for(var b=0;b=p+this.startTime){this.now=this.end;this.pos=1;this.update();var r=q[this.prop]=!0;G(q,\nfunction(b){!0!==b&&(r=!1)});r&&b&&b.call(d);e=!1}else this.pos=h.easing((t-this.startTime)/p),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0;return e};e.prototype.initPath=function(e,t,h){function d(b,m){for(;b.lengthr[1]){var J=h+ +r[1];0<=J?(r[0]=(+r[0]).toExponential(J).split(\"e\")[0],h=J):(r[0]=r[0].split(\".\")[0]||0,e=20>h?(r[0]*Math.pow(10,r[1])).toFixed(h):0,r[1]=0)}J=(Math.abs(r[1]?r[0]:e)+Math.pow(10,-Math.max(h,q)-\n1)).toFixed(h);q=String(y(J));var w=3e?\"-\":\"\")+(w?q.substr(0,w)+b:\"\");e=0>+r[1]&&!n?\"0\":e+q.substr(w).replace(/(\\d{3})(?=\\d)/g,\"$1\"+b);h&&(e+=d+J.slice(-h));r[1]&&0!==+e&&(e+=\"e\"+r[1]);return e}var C=f.defaultOptions,v=f.defaultTime,E=e.getNestedProperty,G=e.isNumber,B=e.pick,y=e.pInt;return{dateFormat:function(e,h,d){return v.dateFormat(e,h,d)},format:function(e,h,d){var b=\"{\",p=!1,q=/f$/,r=/\\.([0-9])/,n=C.lang,J=d&&d.time||\nv;d=d&&d.numberFormatter||l;for(var w=[];e;){var z=e.indexOf(b);if(-1===z)break;var x=e.slice(0,z);if(p){x=x.split(\":\");b=E(x.shift()||\"\",h);if(x.length&&\"number\"===typeof b)if(x=x.join(\":\"),q.test(x)){var m=parseInt((x.match(r)||[\"\",\"-1\"])[1],10);null!==b&&(b=d(b,m,n.decimalPoint,-1d){C(f,b);for(J=q=0;J<=d;)J+=f[q].size,q++;n=f.splice(q-1,f.length)}C(f,p);for(f=f.map(function(b){return{size:b.size,targets:[b.target],align:l(b.align,.5)}});r;){for(q=f.length;q--;)d=f[q],b=(Math.min.apply(0,d.targets)+Math.max.apply(0,d.targets))/\n2,d.pos=e(b-d.size*d.align,0,y-d.size);q=f.length;for(r=!1;q--;)0f[q].pos&&(f[q-1].size+=f[q].size,f[q-1].targets=f[q-1].targets.concat(f[q].targets),f[q-1].align=.5,f[q-1].pos+f[q-1].size>y&&(f[q-1].pos=y-f[q-1].size),f.splice(q,1),r=!0)}h.push.apply(h,n);q=0;f.some(function(b){var d=0;return(b.targets||[]).some(function(){h[q].pos=b.pos+d;if(\"undefined\"!==typeof t&&Math.abs(h[q].pos-h[q].target)>t)return h.slice(0,q+1).forEach(function(b){return delete b.pos}),h.reducedLen=\n(h.reducedLen||y)-.1*y,h.reducedLen>.1*y&&v(h,y,t),!0;d+=h[q].size;q++;return!1})});C(h,p);return h}f.distribute=v})(v||(v={}));return v});K(l,\"Core/Renderer/SVG/SVGElement.js\",[l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/Renderer/HTML/AST.js\"],l[\"Core/Color/Color.js\"],l[\"Core/Globals.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v){var P=f.animate,G=f.animObject,B=f.stop,y=C.deg2rad,t=C.doc,h=C.noop,d=C.svg,b=C.SVG_NS,p=C.win,q=v.addEvent,r=v.attr,n=v.createElement,J=v.css,w=v.defined,z=v.erase,\nx=v.extend,m=v.fireEvent,k=v.isArray,a=v.isFunction,g=v.isNumber,c=v.isString,D=v.merge,A=v.objectEach,u=v.pick,L=v.pInt,S=v.syncTimeout,R=v.uniqueKey;f=function(){function f(){this.element=void 0;this.onEvents={};this.opacity=1;this.renderer=void 0;this.SVG_NS=b;this.symbolCustomAttribs=\"x y width height r start end innerR anchorX anchorY rounded\".split(\" \")}f.prototype._defaultGetter=function(a){a=u(this[a+\"Value\"],this[a],this.element?this.element.getAttribute(a):null,0);/^[\\-0-9\\.]+$/.test(a)&&\n(a=parseFloat(a));return a};f.prototype._defaultSetter=function(a,c,g){g.setAttribute(c,a)};f.prototype.add=function(a){var c=this.renderer,g=this.element;a&&(this.parentGroup=a);this.parentInverted=a&&a.inverted;\"undefined\"!==typeof this.textStr&&\"text\"===this.element.nodeName&&c.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)var b=this.zIndexSetter();b||(a?a.element:c.box).appendChild(g);if(this.onAdd)this.onAdd();return this};f.prototype.addClass=function(a,c){var g=c?\"\":this.attr(\"class\")||\n\"\";a=(a||\"\").split(/ /g).reduce(function(a,c){-1===g.indexOf(c)&&a.push(c);return a},g?[g]:[]).join(\" \");a!==g&&this.attr(\"class\",a);return this};f.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)};f.prototype.align=function(a,g,I){var b={},k=this.renderer,m=k.alignedObjects,d,p,F;if(a){if(this.alignOptions=a,this.alignByTranslate=g,!I||c(I))this.alignTo=d=I||\"renderer\",z(m,this),m.push(this),I=void 0}else a=this.alignOptions,g=this.alignByTranslate,\nd=this.alignTo;I=u(I,k[d],\"scrollablePlotBox\"===d?k.plotBox:void 0,k);d=a.align;var A=a.verticalAlign;k=(I.x||0)+(a.x||0);m=(I.y||0)+(a.y||0);\"right\"===d?p=1:\"center\"===d&&(p=2);p&&(k+=(I.width-(a.width||0))/p);b[g?\"translateX\":\"x\"]=Math.round(k);\"bottom\"===A?F=1:\"middle\"===A&&(F=2);F&&(m+=(I.height-(a.height||0))/F);b[g?\"translateY\":\"y\"]=Math.round(m);this[this.placed?\"animate\":\"attr\"](b);this.placed=!0;this.alignAttr=b;return this};f.prototype.alignSetter=function(a){var c={left:\"start\",center:\"middle\",\nright:\"end\"};c[a]&&(this.alignValue=a,this.element.setAttribute(\"text-anchor\",c[a]))};f.prototype.animate=function(a,c,g){var I=this,b=G(u(c,this.renderer.globalAnimation,!0));c=b.defer;u(t.hidden,t.msHidden,t.webkitHidden,!1)&&(b.duration=0);0!==b.duration?(g&&(b.complete=g),S(function(){I.element&&P(I,a,b)},c)):(this.attr(a,void 0,g||b.complete),A(a,function(a,c){b.step&&b.step.call(this,a,{prop:c,pos:1,elem:this})},this));return this};f.prototype.applyTextOutline=function(a){var c=this.element;\n-1!==a.indexOf(\"contrast\")&&(a=a.replace(/contrast/g,this.renderer.getContrast(c.style.fill)));var g=a.split(\" \");a=g[g.length-1];if((g=g[0])&&\"none\"!==g&&C.svg){this.fakeTS=!0;this.ySetter=this.xSetter;g=g.replace(/(^[\\d\\.]+)(.*?)$/g,function(a,c,g){return 2*Number(c)+g});this.removeTextOutline();var k=t.createElementNS(b,\"tspan\");r(k,{\"class\":\"highcharts-text-outline\",fill:a,stroke:a,\"stroke-width\":g,\"stroke-linejoin\":\"round\"});[].forEach.call(c.childNodes,function(a){var c=a.cloneNode(!0);c.removeAttribute&&\n[\"fill\",\"stroke\",\"stroke-width\",\"stroke\"].forEach(function(a){return c.removeAttribute(a)});k.appendChild(c)});var u=t.createElementNS(b,\"tspan\");u.textContent=\"\\u200b\";[\"x\",\"y\"].forEach(function(a){var g=c.getAttribute(a);g&&u.setAttribute(a,g)});k.appendChild(u);c.insertBefore(k,c.firstChild)}};f.prototype.attr=function(a,c,g,b){var I=this.element,k=this.symbolCustomAttribs,H,u=this,F,m;if(\"string\"===typeof a&&\"undefined\"!==typeof c){var d=a;a={};a[d]=c}\"string\"===typeof a?u=(this[a+\"Getter\"]||\nthis._defaultGetter).call(this,a,I):(A(a,function(c,g){F=!1;b||B(this,g);this.symbolName&&-1!==k.indexOf(g)&&(H||(this.symbolAttr(a),H=!0),F=!0);!this.rotation||\"x\"!==g&&\"y\"!==g||(this.doTransform=!0);F||(m=this[g+\"Setter\"]||this._defaultSetter,m.call(this,c,g,I),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(g)&&this.updateShadows(g,c,m))},this),this.afterSetters());g&&g.call(this);return u};f.prototype.clip=function(a){return this.attr(\"clip-path\",a?\"url(\"+\nthis.renderer.url+\"#\"+a.id+\")\":\"none\")};f.prototype.crisp=function(a,c){c=c||a.strokeWidth||0;var g=Math.round(c)%2/2;a.x=Math.floor(a.x||this.x||0)+g;a.y=Math.floor(a.y||this.y||0)+g;a.width=Math.floor((a.width||this.width||0)-2*g);a.height=Math.floor((a.height||this.height||0)-2*g);w(a.strokeWidth)&&(a.strokeWidth=c);return a};f.prototype.complexColor=function(a,c,g){var b=this.renderer,I,u,d,p,F,n,r,q,h,z,e=[],x;m(this.renderer,\"complexColor\",{args:arguments},function(){a.radialGradient?u=\"radialGradient\":\na.linearGradient&&(u=\"linearGradient\");if(u){d=a[u];F=b.gradients;n=a.stops;h=g.radialReference;k(d)&&(a[u]=d={x1:d[0],y1:d[1],x2:d[2],y2:d[3],gradientUnits:\"userSpaceOnUse\"});\"radialGradient\"===u&&h&&!w(d.gradientUnits)&&(p=d,d=D(d,b.getRadialAttr(h,p),{gradientUnits:\"userSpaceOnUse\"}));A(d,function(a,c){\"id\"!==c&&e.push(c,a)});A(n,function(a){e.push(a)});e=e.join(\",\");if(F[e])z=F[e].attr(\"id\");else{d.id=z=R();var H=F[e]=b.createElement(u).attr(d).add(b.defs);H.radAttr=p;H.stops=[];n.forEach(function(a){0===\na[1].indexOf(\"rgba\")?(I=l.parse(a[1]),r=I.get(\"rgb\"),q=I.get(\"a\")):(r=a[1],q=1);a=b.createElement(\"stop\").attr({offset:a[0],\"stop-color\":r,\"stop-opacity\":q}).add(H);H.stops.push(a)})}x=\"url(\"+b.url+\"#\"+z+\")\";g.setAttribute(c,x);g.gradient=e;a.toString=function(){return x}}})};f.prototype.css=function(a){var c=this.styles,g={},b=this.element,k=!c;a.color&&(a.fill=a.color);c&&A(a,function(a,b){c&&c[b]!==a&&(g[b]=a,k=!0)});if(k){c&&(a=x(c,g));if(null===a.width||\"auto\"===a.width)delete this.textWidth;\nelse if(\"text\"===b.nodeName.toLowerCase()&&a.width)var u=this.textWidth=L(a.width);this.styles=a;u&&!d&&this.renderer.forExport&&delete a.width;var m=D(a);b.namespaceURI===this.SVG_NS&&[\"textOutline\",\"textOverflow\",\"width\"].forEach(function(a){return m&&delete m[a]});J(b,m);this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),a.textOutline&&this.applyTextOutline(a.textOutline))}return this};f.prototype.dashstyleSetter=function(a){var c=this[\"stroke-width\"];\"inherit\"===c&&(c=\n1);if(a=a&&a.toLowerCase()){var g=a.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(a=g.length;a--;)g[a]=\"\"+L(g[a])*u(c,NaN);a=g.join(\",\").replace(/NaN/g,\"none\");this.element.setAttribute(\"stroke-dasharray\",a)}};f.prototype.destroy=function(){var a=this,c=a.element||{},g=a.renderer,b=c.ownerSVGElement,k=g.isSVG&&\n\"SPAN\"===c.nodeName&&a.parentGroup||void 0;c.onclick=c.onmouseout=c.onmouseover=c.onmousemove=c.point=null;B(a);if(a.clipPath&&b){var u=a.clipPath;[].forEach.call(b.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(a){-1D.width)D={x:0,y:0,width:0,height:0}}else D=this.htmlGetBBox();if(d.isSVG&&(d=D.width,c=D.height,n&&(D.height=c={\"11px,17\":14,\"13px,20\":16}[\"\"+(r||\"\")+\",\".concat(Math.round(c))]||c),g)){n=Number(k.getAttribute(\"y\")||0)-D.y;b={right:1,center:.5}[b||0]||0;m=g*y;r=(g-90)*y;var z=d*Math.cos(m);g=d*Math.sin(m);h=Math.cos(r);m=Math.sin(r);d=D.x+b*(d-z)+n*h;r=d+z;h=r-c*h;z=h-z;n=D.y+n-b*g+n*m;b=n+g;c=b-c*m;g=c-g;D.x=Math.min(d,r,h,z);D.y=Math.min(n,b,c,g);D.width=Math.max(d,r,\nh,z)-D.x;D.height=Math.max(n,b,c,g)-D.y}if(q&&(\"\"===p||0]*>/g,\"\").replace(/</g,\"<\").replace(/>/g,\">\")};f.prototype.toFront=function(){var a=this.element;a.parentNode.appendChild(a);return this};f.prototype.translate=\nfunction(a,c){return this.attr({translateX:a,translateY:c})};f.prototype.updateShadows=function(a,c,g){var b=this.shadows;if(b)for(var k=b.length;k--;)g.call(b[k],\"height\"===a?Math.max(c-(b[k].cutHeight||0),0):\"d\"===a?this.d:c,a,b[k])};f.prototype.updateTransform=function(){var a=this.scaleX,c=this.scaleY,g=this.inverted,b=this.rotation,k=this.matrix,m=this.element,d=this.translateX||0,n=this.translateY||0;g&&(d+=this.width,n+=this.height);d=[\"translate(\"+d+\",\"+n+\")\"];w(k)&&d.push(\"matrix(\"+k.join(\",\")+\n\")\");g?d.push(\"rotate(90) scale(-1,1)\"):b&&d.push(\"rotate(\"+b+\" \"+u(this.rotationOriginX,m.getAttribute(\"x\"),0)+\" \"+u(this.rotationOriginY,m.getAttribute(\"y\")||0)+\")\");(w(a)||w(c))&&d.push(\"scale(\"+u(a,1)+\" \"+u(c,1)+\")\");d.length&&m.setAttribute(\"transform\",d.join(\" \"))};f.prototype.visibilitySetter=function(a,c,g){\"inherit\"===a?g.removeAttribute(c):this[c]!==a&&g.setAttribute(c,a);this[c]=a};f.prototype.xGetter=function(a){\"circle\"===this.element.nodeName&&(\"x\"===a?a=\"cx\":\"y\"===a&&(a=\"cy\"));return this._defaultGetter(a)};\nf.prototype.zIndexSetter=function(a,c){var g=this.renderer,b=this.parentGroup,k=(b||g).element||g.box,u=this.element;g=k===g.box;var d=!1;var m=this.added;var F;w(a)?(u.setAttribute(\"data-z-index\",a),a=+a,this[c]===a&&(m=!1)):w(this[c])&&u.removeAttribute(\"data-z-index\");this[c]=a;if(m){(a=this.zIndex)&&b&&(b.handleZ=!0);c=k.childNodes;for(F=c.length-1;0<=F&&!d;F--){b=c[F];m=b.getAttribute(\"data-z-index\");var n=!w(m);if(b!==u)if(0>a&&n&&!g&&!F)k.insertBefore(u,c[F]),d=!0;else if(L(m)<=a||n&&(!w(a)||\n0<=a))k.insertBefore(u,c[F+1]||null),d=!0}d||(k.insertBefore(u,c[g?3:0]||null),d=!0)}return d};return f}();f.prototype[\"stroke-widthSetter\"]=f.prototype.strokeSetter;f.prototype.yGetter=f.prototype.xGetter;f.prototype.matrixSetter=f.prototype.rotationOriginXSetter=f.prototype.rotationOriginYSetter=f.prototype.rotationSetter=f.prototype.scaleXSetter=f.prototype.scaleYSetter=f.prototype.translateXSetter=f.prototype.translateYSetter=f.prototype.verticalAlignSetter=function(a,c){this[c]=a;this.doTransform=\n!0};\"\";return f});K(l,\"Core/Renderer/RendererRegistry.js\",[l[\"Core/Globals.js\"]],function(f){var e;(function(e){e.rendererTypes={};var l;e.getRendererType=function(f){void 0===f&&(f=l);return e.rendererTypes[f]||e.rendererTypes[l]};e.registerRendererType=function(v,P,G){e.rendererTypes[v]=P;if(!l||G)l=v,f.Renderer=P}})(e||(e={}));return e});K(l,\"Core/Renderer/SVG/SVGLabel.js\",[l[\"Core/Renderer/SVG/SVGElement.js\"],l[\"Core/Utilities.js\"]],function(f,e){var l=this&&this.__extends||function(){var e=function(h,\nd){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var p in d)d.hasOwnProperty(p)&&(b[p]=d[p])};return e(h,d)};return function(h,d){function b(){this.constructor=h}e(h,d);h.prototype=null===d?Object.create(d):(b.prototype=d.prototype,new b)}}(),C=e.defined,v=e.extend,E=e.isNumber,G=e.merge,B=e.pick,y=e.removeEvent;return function(e){function h(d,b,p,q,r,n,f,w,z,x){var m=e.call(this)||this;m.paddingLeftSetter=m.paddingSetter;m.paddingRightSetter=\nm.paddingSetter;m.init(d,\"g\");m.textStr=b;m.x=p;m.y=q;m.anchorX=n;m.anchorY=f;m.baseline=z;m.className=x;m.addClass(\"button\"===x?\"highcharts-no-tooltip\":\"highcharts-label\");x&&m.addClass(\"highcharts-\"+x);m.text=d.text(void 0,0,0,w).attr({zIndex:1});var k;\"string\"===typeof r&&((k=/^url\\((.*?)\\)$/.test(r))||m.renderer.symbols[r])&&(m.symbolKey=r);m.bBox=h.emptyBBox;m.padding=3;m.baselineOffset=0;m.needsBox=d.styledMode||k;m.deferredAttr={};m.alignFactor=0;return m}l(h,e);h.prototype.alignSetter=function(d){d=\n{left:0,center:.5,right:1}[d];d!==this.alignFactor&&(this.alignFactor=d,this.bBox&&E(this.xSetting)&&this.attr({x:this.xSetting}))};h.prototype.anchorXSetter=function(d,b){this.anchorX=d;this.boxAttr(b,Math.round(d)-this.getCrispAdjust()-this.xSetting)};h.prototype.anchorYSetter=function(d,b){this.anchorY=d;this.boxAttr(b,d-this.ySetting)};h.prototype.boxAttr=function(d,b){this.box?this.box.attr(d,b):this.deferredAttr[d]=b};h.prototype.css=function(d){if(d){var b={};d=G(d);h.textProps.forEach(function(p){\"undefined\"!==\ntypeof d[p]&&(b[p]=d[p],delete d[p])});this.text.css(b);var p=\"width\"in b;\"fontSize\"in b||\"fontWeight\"in b?this.updateTextPadding():p&&this.updateBoxSize()}return f.prototype.css.call(this,d)};h.prototype.destroy=function(){y(this.element,\"mouseenter\");y(this.element,\"mouseleave\");this.text&&this.text.destroy();this.box&&(this.box=this.box.destroy());f.prototype.destroy.call(this)};h.prototype.fillSetter=function(d,b){d&&(this.needsBox=!0);this.fill=d;this.boxAttr(b,d)};h.prototype.getBBox=function(){this.textStr&&\n0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();var d=this.padding,b=B(this.paddingLeft,d);return{width:this.width,height:this.height,x:this.bBox.x-b,y:this.bBox.y-d}};h.prototype.getCrispAdjust=function(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this[\"stroke-width\"]?parseInt(this[\"stroke-width\"],10):0)%2/2};h.prototype.heightSetter=function(d){this.heightSetting=d};h.prototype.onAdd=function(){var d=this.textStr;this.text.add(this);this.attr({text:C(d)?\nd:\"\",x:this.x,y:this.y});this.box&&C(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})};h.prototype.paddingSetter=function(d,b){E(d)?d!==this[b]&&(this[b]=d,this.updateTextPadding()):this[b]=void 0};h.prototype.rSetter=function(d,b){this.boxAttr(b,d)};h.prototype.shadow=function(d){d&&!this.renderer.styledMode&&(this.updateBoxSize(),this.box&&this.box.shadow(d));return this};h.prototype.strokeSetter=function(d,b){this.stroke=d;this.boxAttr(b,d)};h.prototype[\"stroke-widthSetter\"]=\nfunction(d,b){d&&(this.needsBox=!0);this[\"stroke-width\"]=d;this.boxAttr(b,d)};h.prototype[\"text-alignSetter\"]=function(d){this.textAlign=d};h.prototype.textSetter=function(d){\"undefined\"!==typeof d&&this.text.attr({text:d});this.updateTextPadding()};h.prototype.updateBoxSize=function(){var d=this.text.element.style,b={},p=this.padding,q=this.bBox=E(this.widthSetting)&&E(this.heightSetting)&&!this.textAlign||!C(this.text.textStr)?h.emptyBBox:this.text.getBBox();this.width=this.getPaddedWidth();this.height=\n(this.heightSetting||q.height||0)+2*p;d=this.renderer.fontMetrics(d&&d.fontSize,this.text);this.baselineOffset=p+Math.min((this.text.firstLineMetrics||d).b,q.height||Infinity);this.heightSetting&&(this.baselineOffset+=(this.heightSetting-d.h)/2);this.needsBox&&(this.box||(p=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect(),p.addClass((\"button\"===this.className?\"\":\"highcharts-label-box\")+(this.className?\" highcharts-\"+this.className+\"-box\":\"\")),p.add(this)),p=this.getCrispAdjust(),\nb.x=p,b.y=(this.baseline?-this.baselineOffset:0)+p,b.width=Math.round(this.width),b.height=Math.round(this.height),this.box.attr(v(b,this.deferredAttr)),this.deferredAttr={})};h.prototype.updateTextPadding=function(){var d=this.text;this.updateBoxSize();var b=this.baseline?0:this.baselineOffset,p=B(this.paddingLeft,this.padding);C(this.widthSetting)&&this.bBox&&(\"center\"===this.textAlign||\"right\"===this.textAlign)&&(p+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width));if(p!==\nd.x||b!==d.y)d.attr(\"x\",p),d.hasBoxWidthChanged&&(this.bBox=d.getBBox(!0)),\"undefined\"!==typeof b&&d.attr(\"y\",b);d.x=p;d.y=b};h.prototype.widthSetter=function(d){this.widthSetting=E(d)?d:void 0};h.prototype.getPaddedWidth=function(){var d=this.padding,b=B(this.paddingLeft,d);d=B(this.paddingRight,d);return(this.widthSetting||this.bBox.width||0)+b+d};h.prototype.xSetter=function(d){this.x=d;this.alignFactor&&(d-=this.alignFactor*this.getPaddedWidth(),this[\"forceAnimate:x\"]=!0);this.xSetting=Math.round(d);\nthis.attr(\"translateX\",this.xSetting)};h.prototype.ySetter=function(d){this.ySetting=this.y=Math.round(d);this.attr(\"translateY\",this.ySetting)};h.emptyBBox={width:0,height:0,x:0,y:0};h.textProps=\"color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");return h}(f)});K(l,\"Core/Renderer/SVG/Symbols.js\",[l[\"Core/Utilities.js\"]],function(f){function e(e,f,t,h,d){var b=[];if(d){var p=d.start||0,q=G(d.r,t);t=G(d.r,h||t);var r=\n(d.end||0)-.001;h=d.innerR;var n=G(d.open,.001>Math.abs((d.end||0)-p-2*Math.PI)),J=Math.cos(p),w=Math.sin(p),z=Math.cos(r),x=Math.sin(r);p=G(d.longArc,.001>r-p-Math.PI?0:1);b.push([\"M\",e+q*J,f+t*w],[\"A\",q,t,0,p,G(d.clockwise,1),e+q*z,f+t*x]);v(h)&&b.push(n?[\"M\",e+h*z,f+h*x]:[\"L\",e+h*z,f+h*x],[\"A\",h,h,0,p,v(d.clockwise)?1-d.clockwise:0,e+h*J,f+h*w]);n||b.push([\"Z\"])}return b}function l(e,f,t,h,d){return d&&d.r?C(e,f,t,h,d):[[\"M\",e,f],[\"L\",e+t,f],[\"L\",e+t,f+h],[\"L\",e,f+h],[\"Z\"]]}function C(e,f,t,h,\nd){d=d&&d.r||0;return[[\"M\",e+d,f],[\"L\",e+t-d,f],[\"C\",e+t,f,e+t,f,e+t,f+d],[\"L\",e+t,f+h-d],[\"C\",e+t,f+h,e+t,f+h,e+t-d,f+h],[\"L\",e+d,f+h],[\"C\",e,f+h,e,f+h,e,f+h-d],[\"L\",e,f+d],[\"C\",e,f,e,f,e+d,f]]}var v=f.defined,E=f.isNumber,G=f.pick;return{arc:e,callout:function(e,f,t,h,d){var b=Math.min(d&&d.r||0,t,h),p=b+6,q=d&&d.anchorX;d=d&&d.anchorY||0;var r=C(e,f,t,h,{r:b});if(!E(q))return r;e+q>=t?d>f+p&&d=e+q?d>f+p&&dh&&q>e+p&&qd&&q>e+p&&q/g,z=[r,this.ellipsis,this.noWrap,this.textLineHeight,\nthis.textOutline,this.fontSize,this.width].join();if(z!==b.textCache){b.textCache=z;delete b.actualWidth;for(z=J.length;z--;)d.removeChild(J[z]);n||this.ellipsis||this.width||-1!==r.indexOf(\" \")&&(!this.noWrap||w.test(r))?\"\"!==r&&(e&&e.appendChild(d),r=new f(r),this.modifyTree(r.nodes),r.addToDOM(b.element),this.modifyDOM(),this.ellipsis&&-1!==(d.textContent||\"\").indexOf(\"\\u2026\")&&b.attr(\"title\",this.unescapeEntities(b.textStr||\"\",[\"<\",\">\"])),e&&e.removeChild(d)):d.appendChild(P.createTextNode(this.unescapeEntities(r)));\ny(this.textOutline)&&b.applyTextOutline&&b.applyTextOutline(this.textOutline)}};d.prototype.modifyDOM=function(){var b=this,d=this.svgElement,e=G(d.element,\"x\");d.firstLineMetrics=void 0;for(var r;r=d.element.firstChild;)if(/^[\\s\\u200B]*$/.test(r.textContent||\" \"))d.element.removeChild(r);else break;[].forEach.call(d.element.querySelectorAll(\"tspan.highcharts-br\"),function(n,r){n.nextSibling&&n.previousSibling&&(0===r&&1===n.previousSibling.nodeType&&(d.firstLineMetrics=d.renderer.fontMetrics(void 0,\nn.previousSibling)),G(n,{dy:b.getLineHeight(n.nextSibling),x:e}))});var n=this.width||0;if(n){var h=function(r,p){var m=r.textContent||\"\",k=m.replace(/([^\\^])-/g,\"$1- \").split(\" \"),a=!b.noWrap&&(1n){for(;k<=a;)g=Math.ceil((k+a)/2),e&&(c=h(e,g)),A=D(g,c&&c.length-1),k===a?k=a+1:A>n?a=g-1:k=g;0===a?b.textContent=\"\":d&&a===d.length-1||(b.textContent=c||h(d||e,g))}e&&e.splice(0,g);p.actualWidth=A;p.rotation=q};d.prototype.unescapeEntities=function(b,d){t(this.renderer.escapes,function(e,r){d&&-1!==d.indexOf(e)||(b=b.toString().replace(new RegExp(e,\"g\"),r))});return b};return d}()});\nK(l,\"Core/Renderer/SVG/SVGRenderer.js\",[l[\"Core/Renderer/HTML/AST.js\"],l[\"Core/Color/Color.js\"],l[\"Core/Globals.js\"],l[\"Core/Renderer/RendererRegistry.js\"],l[\"Core/Renderer/SVG/SVGElement.js\"],l[\"Core/Renderer/SVG/SVGLabel.js\"],l[\"Core/Renderer/SVG/Symbols.js\"],l[\"Core/Renderer/SVG/TextBuilder.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v,E,G,B,y){var t=l.charts,h=l.deg2rad,d=l.doc,b=l.isFirefox,p=l.isMS,q=l.isWebKit,r=l.noop,n=l.SVG_NS,J=l.symbolSizes,w=l.win,z=y.addEvent,x=y.attr,m=y.createElement,\nk=y.css,a=y.defined,g=y.destroyObjectProperties,c=y.extend,D=y.isArray,A=y.isNumber,u=y.isObject,L=y.isString,S=y.merge,R=y.pick,M=y.pInt,U=y.uniqueKey,aa;l=function(){function I(a,c,g,b,d,k,m){this.width=this.url=this.style=this.isSVG=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0;this.init(a,c,g,b,d,k,m)}I.prototype.init=function(a,c,g,m,u,F,I){var n=this.createElement(\"svg\").attr({version:\"1.1\",\n\"class\":\"highcharts-root\"}),H=n.element;I||n.css(this.getStyle(m));a.appendChild(H);x(a,\"dir\",\"ltr\");-1===a.innerHTML.indexOf(\"xmlns\")&&x(H,\"xmlns\",this.SVG_NS);this.isSVG=!0;this.box=H;this.boxWrapper=n;this.alignedObjects=[];this.url=this.getReferenceURL();this.createElement(\"desc\").add().element.appendChild(d.createTextNode(\"Created with Highcharts 10.2.0\"));this.defs=this.createElement(\"defs\").add();this.allowHTML=F;this.forExport=u;this.styledMode=I;this.gradients={};this.cache={};this.cacheKeys=\n[];this.imgCount=0;this.setSize(c,g,!1);var e;b&&a.getBoundingClientRect&&(c=function(){k(a,{left:0,top:0});e=a.getBoundingClientRect();k(a,{left:Math.ceil(e.left)-e.left+\"px\",top:Math.ceil(e.top)-e.top+\"px\"})},c(),this.unSubPixelFix=z(w,\"resize\",c))};I.prototype.definition=function(a){return(new f([a])).addToDOM(this.defs.element)};I.prototype.getReferenceURL=function(){if((b||q)&&d.getElementsByTagName(\"base\").length){if(!a(aa)){var c=U();c=(new f([{tagName:\"svg\",attributes:{width:8,height:8},children:[{tagName:\"defs\",\nchildren:[{tagName:\"clipPath\",attributes:{id:c},children:[{tagName:\"rect\",attributes:{width:4,height:4}}]}]},{tagName:\"rect\",attributes:{id:\"hitme\",width:8,height:8,\"clip-path\":\"url(#\".concat(c,\")\"),fill:\"rgba(0,0,0,0.001)\"}}]}])).addToDOM(d.body);k(c,{position:\"fixed\",top:0,left:0,zIndex:9E5});var g=d.elementFromPoint(6,6);aa=\"hitme\"===(g&&g.id);d.body.removeChild(c)}if(aa)return w.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\")}return\"\"};I.prototype.getStyle=\nfunction(a){return this.style=c({fontFamily:'\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',fontSize:\"12px\"},a)};I.prototype.setStyle=function(a){this.boxWrapper.css(this.getStyle(a))};I.prototype.isHidden=function(){return!this.boxWrapper.getBBox().width};I.prototype.destroy=function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();g(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=\nnull};I.prototype.createElement=function(a){var c=new this.Element;c.init(this,a);return c};I.prototype.getRadialAttr=function(a,c){return{cx:a[0]-a[2]/2+(c.cx||0)*a[2],cy:a[1]-a[2]/2+(c.cy||0)*a[2],r:(c.r||0)*a[2]}};I.prototype.buildText=function(a){(new B(a)).buildSVG()};I.prototype.getContrast=function(a){a=e.parse(a).rgba.map(function(a){a/=255;return.03928>=a?a/12.92:Math.pow((a+.055)/1.055,2.4)});a=.2126*a[0]+.7152*a[1]+.0722*a[2];return 1.05/(a+.05)>(a+.05)/.05?\"#FFFFFF\":\"#000000\"};I.prototype.button=\nfunction(a,g,b,d,k,m,I,n,e,r){void 0===k&&(k={});var F=this.label(a,g,b,e,void 0,void 0,r,void 0,\"button\"),D=this.styledMode;a=k.states||{};var A=0;k=S(k);delete k.states;var H=S({color:\"#333333\",cursor:\"pointer\",fontWeight:\"normal\"},k.style);delete k.style;var h=f.filterUserAttributes(k);F.attr(S({padding:8,r:2},h));if(!D){h=S({fill:\"#f7f7f7\",stroke:\"#cccccc\",\"stroke-width\":1},h);m=S(h,{fill:\"#e6e6e6\"},f.filterUserAttributes(m||a.hover||{}));var q=m.style;delete m.style;I=S(h,{fill:\"#e6ebf5\",style:{color:\"#000000\",\nfontWeight:\"bold\"}},f.filterUserAttributes(I||a.select||{}));var N=I.style;delete I.style;n=S(h,{style:{color:\"#cccccc\"}},f.filterUserAttributes(n||a.disabled||{}));var w=n.style;delete n.style}z(F.element,p?\"mouseover\":\"mouseenter\",function(){3!==A&&F.setState(1)});z(F.element,p?\"mouseout\":\"mouseleave\",function(){3!==A&&F.setState(A)});F.setState=function(a){1!==a&&(F.state=A=a);F.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\n\"disabled\"][a||0]);D||(F.attr([h,m,I,n][a||0]),a=[H,q,N,w][a||0],u(a)&&F.css(a))};D||F.attr(h).css(c({cursor:\"default\"},H));return F.on(\"touchstart\",function(a){return a.stopPropagation()}).on(\"click\",function(a){3!==A&&d.call(F,a)})};I.prototype.crispLine=function(c,g,b){void 0===b&&(b=\"round\");var d=c[0],k=c[1];a(d[1])&&d[1]===k[1]&&(d[1]=k[1]=Math[b](d[1])-g%2/2);a(d[2])&&d[2]===k[2]&&(d[2]=k[2]=Math[b](d[2])+g%2/2);return c};I.prototype.path=function(a){var g=this.styledMode?{}:{fill:\"none\"};\nD(a)?g.d=a:u(a)&&c(g,a);return this.createElement(\"path\").attr(g)};I.prototype.circle=function(a,c,g){a=u(a)?a:\"undefined\"===typeof a?{}:{x:a,y:c,r:g};c=this.createElement(\"circle\");c.xSetter=c.ySetter=function(a,c,g){g.setAttribute(\"c\"+c,a)};return c.attr(a)};I.prototype.arc=function(a,c,g,b,d,k){u(a)?(b=a,c=b.y,g=b.r,a=b.x):b={innerR:b,start:d,end:k};a=this.symbol(\"arc\",a,c,g,g,b);a.r=g;return a};I.prototype.rect=function(a,c,g,b,d,k){d=u(a)?a.r:d;var m=this.createElement(\"rect\");a=u(a)?a:\"undefined\"===\ntypeof a?{}:{x:a,y:c,width:Math.max(g,0),height:Math.max(b,0)};this.styledMode||(\"undefined\"!==typeof k&&(a[\"stroke-width\"]=k,a=m.crisp(a)),a.fill=\"none\");d&&(a.r=d);m.rSetter=function(a,c,g){m.r=a;x(g,{rx:a,ry:a})};m.rGetter=function(){return m.r||0};return m.attr(a)};I.prototype.setSize=function(a,c,g){this.width=a;this.height=c;this.boxWrapper.animate({width:a,height:c},{step:function(){this.attr({viewBox:\"0 0 \"+this.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:R(g,!0)?void 0:0});this.alignElements()};\nI.prototype.g=function(a){var c=this.createElement(\"g\");return a?c.attr({\"class\":\"highcharts-\"+a}):c};I.prototype.image=function(a,c,g,b,d,k){var m={preserveAspectRatio:\"none\"},u=function(a,c){a.setAttributeNS?a.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",c):a.setAttribute(\"hc-svg-href\",c)};A(c)&&(m.x=c);A(g)&&(m.y=g);A(b)&&(m.width=b);A(d)&&(m.height=d);var F=this.createElement(\"image\").attr(m);c=function(c){u(F.element,a);k.call(F,c)};k?(u(F.element,\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"),\ng=new w.Image,z(g,\"load\",c),g.src=a,g.complete&&c({})):u(F.element,a);return F};I.prototype.symbol=function(g,b,u,I,n,F){var e=this,r=/^url\\((.*?)\\)$/,D=r.test(g),p=!D&&(this.symbols[g]?g:\"circle\"),A=p&&this.symbols[p],h;if(A){\"number\"===typeof b&&(h=A.call(this.symbols,Math.round(b||0),Math.round(u||0),I||0,n||0,F));var f=this.path(h);e.styledMode||f.attr(\"fill\",\"none\");c(f,{symbolName:p||void 0,x:b,y:u,width:I,height:n});F&&c(f,F)}else if(D){var q=g.match(r)[1];var H=f=this.image(q);H.imgwidth=\nR(J[q]&&J[q].width,F&&F.width);H.imgheight=R(J[q]&&J[q].height,F&&F.height);var z=function(a){return a.attr({width:a.width,height:a.height})};[\"width\",\"height\"].forEach(function(c){H[c+\"Setter\"]=function(c,g){var b=this[\"img\"+g];this[g]=c;a(b)&&(F&&\"within\"===F.backgroundSize&&this.width&&this.height&&(b=Math.round(b*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(g,b),this.alignByTranslate||(c=((this[g]||0)-b)/2,this.attr(\"width\"===g?{translateX:c}:\n{translateY:c})))}});a(b)&&H.attr({x:b,y:u});H.isImg=!0;a(H.imgwidth)&&a(H.imgheight)?z(H):(H.attr({width:0,height:0}),m(\"img\",{onload:function(){var a=t[e.chartIndex];0===this.width&&(k(this,{position:\"absolute\",top:\"-999em\"}),d.body.appendChild(this));J[q]={width:this.width,height:this.height};H.imgwidth=this.width;H.imgheight=this.height;H.element&&z(H);this.parentNode&&this.parentNode.removeChild(this);e.imgCount--;if(!e.imgCount&&a&&!a.hasLoaded)a.onload()},src:q}),this.imgCount++)}return f};\nI.prototype.clipRect=function(a,c,g,b){var d=U()+\"-\",k=this.createElement(\"clipPath\").attr({id:d}).add(this.defs);a=this.rect(a,c,g,b,0).add(k);a.id=d;a.clipPath=k;a.count=0;return a};I.prototype.text=function(c,g,b,d){var k={};if(d&&(this.allowHTML||!this.forExport))return this.html(c,g,b);k.x=Math.round(g||0);b&&(k.y=Math.round(b));a(c)&&(k.text=c);c=this.createElement(\"text\").attr(k);if(!d||this.forExport&&!this.allowHTML)c.xSetter=function(a,c,g){for(var b=g.getElementsByTagName(\"tspan\"),d=g.getAttribute(c),\nk=0,m;ka?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}};I.prototype.rotCorr=function(a,c,g){var b=a;c&&g&&(b=Math.max(b*Math.cos(c*h),4));return{x:-a/3*Math.sin(c*h),\ny:b}};I.prototype.pathToSegments=function(a){for(var c=[],g=[],b={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},d=0;d\":\">\",\"'\":\"'\",'\"':\""\"},symbols:G,draw:r});C.registerRendererType(\"svg\",l,!0);\"\";return l});K(l,\"Core/Renderer/HTML/HTMLElement.js\",[l[\"Core/Globals.js\"],l[\"Core/Renderer/SVG/SVGElement.js\"],l[\"Core/Utilities.js\"]],function(f,e,l){var C=this&&this.__extends||function(){var b=function(d,e){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var n in d)d.hasOwnProperty(n)&&\n(b[n]=d[n])};return b(d,e)};return function(d,e){function n(){this.constructor=d}b(d,e);d.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),v=f.isFirefox,E=f.isMS,G=f.isWebKit,B=f.win,y=l.css,t=l.defined,h=l.extend,d=l.pick,b=l.pInt;return function(e){function p(){return null!==e&&e.apply(this,arguments)||this}C(p,e);p.compose=function(b){if(-1===p.composedClasses.indexOf(b)){p.composedClasses.push(b);var d=p.prototype,e=b.prototype;e.getSpanCorrection=d.getSpanCorrection;e.htmlCss=\nd.htmlCss;e.htmlGetBBox=d.htmlGetBBox;e.htmlUpdateTransform=d.htmlUpdateTransform;e.setSpanRotation=d.setSpanRotation}return b};p.prototype.getSpanCorrection=function(b,d,e){this.xCorr=-b*e;this.yCorr=-d};p.prototype.htmlCss=function(b){var n=\"SPAN\"===this.element.tagName&&b&&\"width\"in b,e=d(n&&b.width,void 0);if(n){delete b.width;this.textWidth=e;var p=!0}b&&\"ellipsis\"===b.textOverflow&&(b.whiteSpace=\"nowrap\",b.overflow=\"hidden\");this.styles=h(this.styles,b);y(this.element,b);p&&this.htmlUpdateTransform();\nreturn this};p.prototype.htmlGetBBox=function(){var b=this.element;return{x:b.offsetLeft,y:b.offsetTop,width:b.offsetWidth,height:b.offsetHeight}};p.prototype.htmlUpdateTransform=function(){if(this.added){var d=this.renderer,n=this.element,e=this.translateX||0,p=this.translateY||0,h=this.x||0,f=this.y||0,m=this.textAlign||\"left\",k={left:0,center:.5,right:1}[m],a=this.styles;a=a&&a.whiteSpace;y(n,{marginLeft:e,marginTop:p});!d.styledMode&&this.shadows&&this.shadows.forEach(function(a){y(a,{marginLeft:e+\n1,marginTop:p+1})});this.inverted&&[].forEach.call(n.childNodes,function(a){d.invertChild(a,n)});if(\"SPAN\"===n.tagName){var g=this.rotation,c=this.textWidth&&b(this.textWidth),D=[g,m,n.innerHTML,this.textWidth,this.textAlign].join(),A=void 0;A=!1;if(c!==this.oldTextWidth){if(this.textPxLength)var u=this.textPxLength;else y(n,{width:\"\",whiteSpace:a||\"nowrap\"}),u=n.offsetWidth;(c>this.oldTextWidth||u>c)&&(/[ \\-]/.test(n.textContent||n.innerText)||\"ellipsis\"===n.style.textOverflow)&&(y(n,{width:u>c||\ng?c+\"px\":\"auto\",display:\"block\",whiteSpace:a||\"normal\"}),this.oldTextWidth=c,A=!0)}this.hasBoxWidthChanged=A;D!==this.cTT&&(A=d.fontMetrics(n.style.fontSize,n).b,!t(g)||g===(this.oldRotation||0)&&m===this.oldAlign||this.setSpanRotation(g,k,A),this.getSpanCorrection(!t(g)&&this.textPxLength||n.offsetWidth,A,k,g,m));y(n,{left:h+(this.xCorr||0)+\"px\",top:f+(this.yCorr||0)+\"px\"});this.cTT=D;this.oldRotation=g;this.oldAlign=m}}else this.alignOnAdd=!0};p.prototype.setSpanRotation=function(b,d,e){var n={},\np=E&&!/Edge/.test(B.navigator.userAgent)?\"-ms-transform\":G?\"-webkit-transform\":v?\"MozTransform\":B.opera?\"-o-transform\":void 0;p&&(n[p]=n.transform=\"rotate(\"+b+\"deg)\",n[p+(v?\"Origin\":\"-origin\")]=n.transformOrigin=100*d+\"% \"+e+\"px\",y(this.element,n))};p.composedClasses=[];return p}(e)});K(l,\"Core/Renderer/HTML/HTMLRenderer.js\",[l[\"Core/Renderer/HTML/AST.js\"],l[\"Core/Renderer/SVG/SVGElement.js\"],l[\"Core/Renderer/SVG/SVGRenderer.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C){var v=this&&this.__extends||\nfunction(){var e=function(h,d){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var e in d)d.hasOwnProperty(e)&&(b[e]=d[e])};return e(h,d)};return function(h,d){function b(){this.constructor=h}e(h,d);h.prototype=null===d?Object.create(d):(b.prototype=d.prototype,new b)}}(),E=C.attr,G=C.createElement,B=C.extend,y=C.pick;return function(t){function h(){return null!==t&&t.apply(this,arguments)||this}v(h,t);h.compose=function(d){-1===h.composedClasses.indexOf(d)&&\n(h.composedClasses.push(d),d.prototype.html=h.prototype.html);return d};h.prototype.html=function(d,b,p){var h=this.createElement(\"span\"),r=h.element,n=h.renderer,t=n.isSVG,w=function(b,d){[\"opacity\",\"visibility\"].forEach(function(m){b[m+\"Setter\"]=function(k,a,g){var c=b.div?b.div.style:d;e.prototype[m+\"Setter\"].call(this,k,a,g);c&&(c[a]=k)}});b.addedSetters=!0};h.textSetter=function(b){b!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,f.setElementHTML(this.element,y(b,\"\")),this.textStr=\nb,h.doTransform=!0)};t&&w(h,h.element.style);h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(b,d){\"align\"===d?h.alignValue=h.textAlign=b:h[d]=b;h.doTransform=!0};h.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};h.attr({text:d,x:Math.round(b),y:Math.round(p)}).css({position:\"absolute\"});n.styledMode||h.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});r.style.whiteSpace=\"nowrap\";h.css=h.htmlCss;t&&(h.add=function(b){var d=\nn.box.parentNode,m=[];if(this.parentGroup=b){var k=b.div;if(!k){for(;b;)m.push(b),b=b.parentGroup;m.reverse().forEach(function(a){function g(c,g){a[g]=c;\"translateX\"===g?e.left=c+\"px\":e.top=c+\"px\";a.doTransform=!0}var c=E(a.element,\"class\"),b=a.styles||{};k=a.div=a.div||G(\"div\",c?{className:c}:void 0,{position:\"absolute\",left:(a.translateX||0)+\"px\",top:(a.translateY||0)+\"px\",display:a.display,opacity:a.opacity,cursor:b.cursor,pointerEvents:b.pointerEvents,visibility:a.visibility},k||d);var e=k.style;\nB(a,{classSetter:function(a){return function(c){this.element.setAttribute(\"class\",c);a.className=c}}(k),on:function(){m[0].div&&h.on.apply({element:m[0].div,onEvents:a.onEvents},arguments);return a},translateXSetter:g,translateYSetter:g});a.addedSetters||w(a)})}}else k=d;k.appendChild(r);h.added=!0;h.alignOnAdd&&h.htmlUpdateTransform();return h});return h};h.composedClasses=[];return h}(l)});K(l,\"Core/Axis/AxisDefaults.js\",[],function(){var f;(function(e){e.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,\npanningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",range:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e. %b\"},week:{main:\"%e. %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,gridLineDashStyle:\"Solid\",gridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:void 0,enabled:!0,indentation:10,overflow:\"justify\",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,\nstep:0,useHTML:!1,x:0,zIndex:7,style:{color:\"#666666\",cursor:\"default\",fontSize:\"11px\"}},maxPadding:.01,minorGridLineDashStyle:\"Solid\",minorTickLength:2,minorTickPosition:\"outside\",minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",rotation:0,useHTML:!1,x:0,y:0,style:{color:\"#666666\"}},type:\"linear\",\nuniqueNames:!0,visible:!0,minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#ccd6eb\",lineWidth:1,gridLineColor:\"#e6e6e6\",gridLineWidth:void 0,tickColor:\"#ccd6eb\"};e.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){var e=this.axis.chart.numberFormatter;\nreturn e(this.total,-1)},style:{color:\"#000000\",fontSize:\"11px\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};e.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}};e.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}};e.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};e.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}}})(f||(f={}));return f});K(l,\"Core/Foundation.js\",[l[\"Core/Utilities.js\"]],\nfunction(f){var e=f.addEvent,l=f.isFunction,C=f.objectEach,v=f.removeEvent,E;(function(f){f.registerEventOptions=function(f,y){f.eventOptions=f.eventOptions||{};C(y.events,function(t,h){f.eventOptions[h]!==t&&(f.eventOptions[h]&&(v(f,h,f.eventOptions[h]),delete f.eventOptions[h]),l(t)&&(f.eventOptions[h]=t,e(f,h,t)))})}})(E||(E={}));return E});K(l,\"Core/Axis/Tick.js\",[l[\"Core/FormatUtilities.js\"],l[\"Core/Globals.js\"],l[\"Core/Utilities.js\"]],function(f,e,l){var C=e.deg2rad,v=l.clamp,E=l.correctFloat,\nG=l.defined,B=l.destroyObjectProperties,y=l.extend,t=l.fireEvent,h=l.isNumber,d=l.merge,b=l.objectEach,p=l.pick;e=function(){function e(b,d,e,p,h){this.isNewLabel=this.isNew=!0;this.axis=b;this.pos=d;this.type=e||\"\";this.parameters=h||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;t(this,\"init\");e||p||this.addLabel()}e.prototype.addLabel=function(){var b=this,d=b.axis,e=d.options,q=d.chart,z=d.categories,x=d.logarithmic,m=d.names,k=b.pos,a=p(b.options&&\nb.options.labels,e.labels),g=d.tickPositions,c=k===g[0],D=k===g[g.length-1],A=(!a.step||1===a.step)&&1===d.tickInterval;g=g.info;var u=b.label,l;z=this.parameters.category||(z?p(z[k],m[k],k):k);x&&h(z)&&(z=E(x.lin2log(z)));if(d.dateTime)if(g){var S=q.time.resolveDTLFormat(e.dateTimeLabelFormats[!e.grid&&g.higherRanks[k]||g.unitName]);var R=S.main}else h(z)&&(R=d.dateTime.getXDateFormat(z,e.dateTimeLabelFormats||{}));b.isFirst=c;b.isLast=D;var M={axis:d,chart:q,dateTimeLabelFormat:R,isFirst:c,isLast:D,\npos:k,tick:b,tickPositionInfo:g,value:z};t(this,\"labelFormat\",M);var B=function(c){return a.formatter?a.formatter.call(c,c):a.format?(c.text=d.defaultLabelFormatter.call(c),f.format(a.format,c,q)):d.defaultLabelFormatter.call(c,c)};e=B.call(M,M);var aa=S&&S.list;b.shortenLabel=aa?function(){for(l=0;la&&h-g*cr&&(l=Math.round((f-h)/Math.cos(a*C)));else if(f=h+(1-g)*c,h-g*cr&&(u=r-b.x+u*g,q=-1),u=Math.min(D,u),uu||d.autoRotation&&(k.styles||{}).width)l=u;l&&(this.shortenLabel?this.shortenLabel():(A.width=Math.floor(l)+\"px\",(e.style||{}).textOverflow||(A.textOverflow=\n\"ellipsis\"),k.css(A)))};e.prototype.moveLabel=function(d,e){var h=this,p=h.label,n=h.axis,f=n.reversed,m=!1;p&&p.textStr===d?(h.movedLabel=p,m=!0,delete h.label):b(n.ticks,function(a){m||a.isNew||a===h||!a.label||a.label.textStr!==d||(h.movedLabel=a.label,m=!0,a.labelPos=h.movedLabel.xy,delete a.label)});if(!m&&(h.labelPos||p)){var k=h.labelPos||p.xy;p=n.horiz?f?0:n.width+n.left:k.x;n=n.horiz?k.y:f?n.width+n.left:0;h.movedLabel=h.createLabel({x:p,y:n},d,e);h.movedLabel&&h.movedLabel.attr({opacity:0})}};\ne.prototype.render=function(b,d,e){var h=this.axis,n=h.horiz,f=this.pos,m=p(this.tickmarkOffset,h.tickmarkOffset);f=this.getPosition(n,f,m,d);m=f.x;var k=f.y;h=n&&m===h.pos+h.len||!n&&k===h.pos?-1:1;n=p(e,this.label&&this.label.newOpacity,1);e=p(e,1);this.isActive=!0;this.renderGridLine(d,e,h);this.renderMark(f,e,h);this.renderLabel(f,d,n,b);this.isNew=!1;t(this,\"afterRender\")};e.prototype.renderGridLine=function(b,d,e){var h=this.axis,n=h.options,f={},m=this.pos,k=this.type,a=p(this.tickmarkOffset,\nh.tickmarkOffset),g=h.chart.renderer,c=this.gridLine,D=n.gridLineWidth,A=n.gridLineColor,u=n.gridLineDashStyle;\"minor\"===this.type&&(D=n.minorGridLineWidth,A=n.minorGridLineColor,u=n.minorGridLineDashStyle);c||(h.chart.styledMode||(f.stroke=A,f[\"stroke-width\"]=D||0,f.dashstyle=u),k||(f.zIndex=1),b&&(d=0),this.gridLine=c=g.path().attr(f).addClass(\"highcharts-\"+(k?k+\"-\":\"\")+\"grid-line\").add(h.gridGroup));if(c&&(e=h.getPlotLinePath({value:m+a,lineWidth:c.strokeWidth()*e,force:\"pass\",old:b})))c[b||this.isNew?\n\"attr\":\"animate\"]({d:e,opacity:d})};e.prototype.renderMark=function(b,d,e){var h=this.axis,n=h.options,f=h.chart.renderer,m=this.type,k=h.tickSize(m?m+\"Tick\":\"tick\"),a=b.x;b=b.y;var g=p(n[\"minor\"!==m?\"tickWidth\":\"minorTickWidth\"],!m&&h.isXAxis?1:0);n=n[\"minor\"!==m?\"tickColor\":\"minorTickColor\"];var c=this.mark,D=!c;k&&(h.opposite&&(k[0]=-k[0]),c||(this.mark=c=f.path().addClass(\"highcharts-\"+(m?m+\"-\":\"\")+\"tick\").add(h.axisGroup),h.chart.styledMode||c.attr({stroke:n,\"stroke-width\":g})),c[D?\"attr\":\"animate\"]({d:this.getMarkPath(a,\nb,k[0],c.strokeWidth()*e,h.horiz,f),opacity:d}))};e.prototype.renderLabel=function(b,d,e,f){var n=this.axis,r=n.horiz,m=n.options,k=this.label,a=m.labels,g=a.step;n=p(this.tickmarkOffset,n.tickmarkOffset);var c=b.x;b=b.y;var D=!0;k&&h(c)&&(k.xy=b=this.getLabelPosition(c,b,k,r,a,n,f,g),this.isFirst&&!this.isLast&&!m.showFirstLabel||this.isLast&&!this.isFirst&&!m.showLastLabel?D=!1:!r||a.step||a.rotation||d||0===e||this.handleOverflow(b),g&&f%g&&(D=!1),D&&h(b.y)?(b.opacity=e,k[this.isNewLabel?\"attr\":\n\"animate\"](b).show(!0),this.isNewLabel=!1):(k.hide(),this.isNewLabel=!0))};e.prototype.replaceMovedLabel=function(){var b=this.label,d=this.axis,e=d.reversed;if(b&&!this.isNew){var h=d.horiz?e?d.left:d.width+d.left:b.xy.x;e=d.horiz?b.xy.y:e?d.width+d.top:d.top;b.animate({x:h,y:e,opacity:0},void 0,b.destroy);delete this.label}d.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel};return e}();\"\";return e});K(l,\"Core/Axis/Axis.js\",[l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/Axis/AxisDefaults.js\"],\nl[\"Core/Color/Color.js\"],l[\"Core/DefaultOptions.js\"],l[\"Core/Foundation.js\"],l[\"Core/Globals.js\"],l[\"Core/Axis/Tick.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v,E,G,B){var y=f.animObject,t=C.defaultOptions,h=v.registerEventOptions,d=E.deg2rad,b=B.arrayMax,p=B.arrayMin,q=B.clamp,r=B.correctFloat,n=B.defined,J=B.destroyObjectProperties,w=B.erase,z=B.error,x=B.extend,m=B.fireEvent,k=B.isArray,a=B.isNumber,g=B.isString,c=B.merge,D=B.normalizeTickInterval,A=B.objectEach,u=B.pick,L=B.relativeLength,\nS=B.removeEvent,R=B.splat,M=B.syncTimeout,U=function(a,c){return D(c,void 0,void 0,u(a.options.allowDecimals,.5>c||void 0!==a.tickAmount),!!a.tickAmount)};f=function(){function f(a,c){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=\nthis.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.bottom=this.alternateBands=void 0;this.init(a,c)}f.prototype.init=function(c,b){var g=b.isX;this.chart=\nc;this.horiz=c.inverted&&!this.isZAxis?!g:g;this.isXAxis=g;this.coll=this.coll||(g?\"xAxis\":\"yAxis\");m(this,\"init\",{userOptions:b});this.opposite=u(b.opposite,this.opposite);this.side=u(b.side,this.side,this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(b);var d=this.options,k=d.labels,e=d.type;this.userOptions=b;this.minPixelPadding=0;this.reversed=u(d.reversed,this.reversed);this.visible=d.visible;this.zoomEnabled=d.zoomEnabled;this.hasNames=\"category\"===e||!0===d.categories;this.categories=\nd.categories||(this.hasNames?[]:void 0);this.names||(this.names=[],this.names.keys={});this.plotLinesAndBandsGroups={};this.positiveValuesOnly=!!this.logarithmic;this.isLinked=n(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.min=this.max=null;b=u(d.crosshair,R(c.options.tooltip.crosshairs)[g?0:1]);this.crosshair=!0===b?{}:\nb;-1===c.axes.indexOf(this)&&(g?c.axes.splice(c.xAxis.length,0,this):c.axes.push(this),c[this.coll].push(this));this.series=this.series||[];c.inverted&&!this.isZAxis&&g&&\"undefined\"===typeof this.reversed&&(this.reversed=!0);this.labelRotation=a(k.rotation)?k.rotation:void 0;h(this,d);m(this,\"afterInit\")};f.prototype.setOptions=function(a){this.options=c(e.defaultXAxisOptions,\"yAxis\"===this.coll&&e.defaultYAxisOptions,[e.defaultTopAxisOptions,e.defaultRightAxisOptions,e.defaultBottomAxisOptions,e.defaultLeftAxisOptions][this.side],\nc(t[this.coll],a));m(this,\"afterSetOptions\",{userOptions:a})};f.prototype.defaultLabelFormatter=function(c){var b=this.axis;c=this.chart.numberFormatter;var g=a(this.value)?this.value:NaN,d=b.chart.time,k=this.dateTimeLabelFormat,e=t.lang,m=e.numericSymbols;e=e.numericSymbolMagnitude||1E3;var u=b.logarithmic?Math.abs(g):b.tickInterval,h=m&&m.length;if(b.categories)var f=\"\".concat(this.value);else if(k)f=d.dateFormat(k,g);else if(h&&1E3<=u)for(;h--&&\"undefined\"===typeof f;)b=Math.pow(e,h+1),u>=b&&\n0===10*g%b&&null!==m[h]&&0!==g&&(f=c(g/b,-1)+m[h]);\"undefined\"===typeof f&&(f=1E4<=Math.abs(g)?c(g,-1):c(g,-1,void 0,\"\"));return f};f.prototype.getSeriesExtremes=function(){var c=this,b=c.chart,g;m(this,\"getSeriesExtremes\",null,function(){c.hasVisibleSeries=!1;c.dataMin=c.dataMax=c.threshold=null;c.softThreshold=!c.isXAxis;c.stacking&&c.stacking.buildStacks();c.series.forEach(function(d){if(d.visible||!b.options.chart.ignoreHiddenSeries){var k=d.options,e=k.threshold;c.hasVisibleSeries=!0;c.positiveValuesOnly&&\n0>=e&&(e=null);if(c.isXAxis){if(k=d.xData,k.length){k=c.logarithmic?k.filter(c.validatePositiveValue):k;g=d.getXExtremes(k);var m=g.min;var h=g.max;a(m)||m instanceof Date||(k=k.filter(a),g=d.getXExtremes(k),m=g.min,h=g.max);k.length&&(c.dataMin=Math.min(u(c.dataMin,m),m),c.dataMax=Math.max(u(c.dataMax,h),h))}}else if(d=d.applyExtremes(),a(d.dataMin)&&(m=d.dataMin,c.dataMin=Math.min(u(c.dataMin,m),m)),a(d.dataMax)&&(h=d.dataMax,c.dataMax=Math.max(u(c.dataMax,h),h)),n(e)&&(c.threshold=e),!k.softThreshold||\nc.positiveValuesOnly)c.softThreshold=!1}})});m(this,\"afterGetSeriesExtremes\")};f.prototype.translate=function(c,b,g,d,k,e){var m=this.linkedParent||this,u=d&&m.old?m.old.min:m.min;if(!a(u))return NaN;var h=m.minPixelPadding;k=(m.isOrdinal||m.brokenAxis&&m.brokenAxis.hasBreaks||m.logarithmic&&k)&&m.lin2val;var f=1,p=0;d=d&&m.old?m.old.transA:m.transA;d||(d=m.transA);g&&(f*=-1,p=m.len);m.reversed&&(f*=-1,p-=f*(m.sector||m.len));b?(e=(c*f+p-h)/d+u,k&&(e=m.lin2val(e))):(k&&(c=m.val2lin(c)),c=f*(c-u)*\nd,e=(m.isRadial?c:r(c))+p+f*h+(a(e)?d*e:0));return e};f.prototype.toPixels=function(a,c){return this.translate(a,!1,!this.horiz,void 0,!0)+(c?0:this.pos)};f.prototype.toValue=function(a,c){return this.translate(a-(c?0:this.pos),!0,!this.horiz,void 0,!0)};f.prototype.getPlotLinePath=function(c){function b(a,c,g){if(\"pass\"!==r&&ag)r?a=q(a,c,g):L=!0;return a}var g=this,d=g.chart,k=g.left,e=g.top,h=c.old,f=c.value,p=c.lineWidth,n=h&&d.oldChartHeight||d.chartHeight,I=h&&d.oldChartWidth||d.chartWidth,\nD=g.transB,A=c.translatedValue,r=c.force,l,t,x,z,L;c={value:f,lineWidth:p,old:h,force:r,acrossPanes:c.acrossPanes,translatedValue:A};m(this,\"getPlotLinePath\",c,function(c){A=u(A,g.translate(f,void 0,void 0,h));A=q(A,-1E5,1E5);l=x=Math.round(A+D);t=z=Math.round(n-A-D);a(A)?g.horiz?(t=e,z=n-g.bottom,l=x=b(l,k,k+g.width)):(l=k,x=I-g.right,t=z=b(t,e,e+g.height)):(L=!0,r=!1);c.path=L&&!r?null:d.renderer.crispLine([[\"M\",l,t],[\"L\",x,z]],p||1)});return c.path};f.prototype.getLinearTickPositions=function(a,\nc,g){var b=r(Math.floor(c/a)*a);g=r(Math.ceil(g/a)*a);var d=[],k;r(b+a)===b&&(k=20);if(this.single)return[c];for(c=b;c<=g;){d.push(c);c=r(c+a,k);if(c===m)break;var m=c}return d};f.prototype.getMinorTickInterval=function(){var a=this.options;return!0===a.minorTicks?u(a.minorTickInterval,\"auto\"):!1===a.minorTicks?null:a.minorTickInterval};f.prototype.getMinorTickPositions=function(){var a=this.options,c=this.tickPositions,g=this.minorTickInterval,b=this.pointRangePadding||0,d=this.min-b;b=this.max+\nb;var k=b-d,m=[];if(k&&k/g=this.minRange;var D=this.minRange;var r=(D-d+g)/2;r=[g-r,u(a.min,g-r)];A&&(r[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):\nthis.dataMin);g=b(r);d=[g+D,u(a.max,g+D)];A&&(d[2]=c?c.log2lin(this.dataMax):this.dataMax);d=p(d);d-g=q)x=q,D=0;else if(this.dataMax<=q){var L=q;A=0}this.min=u(l,x,this.dataMin);this.max=u(t,L,this.dataMax)}b&&(this.positiveValuesOnly&&!c&&0>=Math.min(this.min,u(this.dataMin,this.min))&&z(10,1,g),this.min=r(b.log2lin(this.min),16),this.max=r(b.log2lin(this.max),16));this.range&&n(this.max)&&(this.userMin=this.min=l=Math.max(this.dataMin,\nthis.minFromRange()),this.userMax=t=this.max,this.range=null);m(this,\"foundExtremes\");this.beforePadding&&this.beforePadding();this.adjustForMinRange();!(f||this.axisPointRange||this.stacking&&this.stacking.usePercentage||e)&&n(this.min)&&n(this.max)&&(g=this.max-this.min)&&(!n(l)&&D&&(this.min-=g*D),!n(t)&&A&&(this.max+=g*A));a(this.userMin)||(a(d.softMin)&&d.softMinthis.max&&\n(this.max=t=d.softMax),a(d.ceiling)&&(this.max=Math.min(this.max,d.ceiling)));p&&n(this.dataMin)&&(q=q||0,!n(l)&&this.min=q?this.min=this.options.minRange?Math.min(q,this.max-this.minRange):q:!n(t)&&this.max>q&&this.dataMax<=q&&(this.max=this.options.minRange?Math.max(q,this.min+this.minRange):q));a(this.min)&&a(this.max)&&!this.chart.polar&&this.min>this.max&&(n(this.options.min)?this.max=this.min:n(this.options.max)&&(this.min=this.max));this.tickInterval=this.min===this.max||\"undefined\"===\ntypeof this.min||\"undefined\"===typeof this.max?1:e&&this.linkedParent&&!I&&h===this.linkedParent.options.tickPixelInterval?I=this.linkedParent.tickInterval:u(I,this.tickAmount?(this.max-this.min)/Math.max(this.tickAmount-1,1):void 0,f?1:(this.max-this.min)*h/Math.max(this.len,h));if(k&&!c){var w=this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max);this.series.forEach(function(a){a.forceCrop=a.forceCropping&&a.forceCropping();a.processData(w)});m(this,\"postProcessData\",{hasExtemesChanged:w})}this.setAxisTranslation();\nm(this,\"initialAxisTranslation\");this.pointRange&&!I&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));c=u(d.minTickInterval,this.dateTime&&!this.series.some(function(a){return a.noSharedTooltip})?this.closestPointRange:0);!I&&this.tickIntervalMath.max(2*this.len,200)))if(this.dateTime)g=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0);else if(this.logarithmic)g=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else for(var e=a=this.tickInterval;e<=2*a;)if(g=this.getLinearTickPositions(this.tickInterval,this.min,this.max),\nthis.tickAmount&&g.length>this.tickAmount)this.tickInterval=U(this,e*=1.1);else break;else g=[this.min,this.max],z(19,!1,this.chart);g.length>this.len&&(g=[g[0],g.pop()],g[0]===g[1]&&(g.length=1));this.tickPositions=g;d&&(d=d.apply(this,[this.min,this.max]))&&(this.tickPositions=g=d)}this.paddedTicks=g.slice(0);this.trimTicks(g,k,b);this.isLinked||(this.single&&2>g.length&&!this.categories&&!this.series.some(function(a){return a.is(\"heatmap\")&&\"between\"===a.options.pointPlacement})&&(this.min-=.5,\nthis.max+=.5),c||d||this.adjustTickAmount());m(this,\"afterSetTickPositions\")};f.prototype.trimTicks=function(a,c,g){var b=a[0],d=a[a.length-1],k=!this.isOrdinal&&this.minPointOffset||0;m(this,\"trimTicks\");if(!this.isLinked){if(c&&-Infinity!==b)this.min=b;else for(;this.min-k>a[0];)a.shift();if(g)this.max=d;else for(;this.max+kg&&(this.finalTickAmt=g,g=5);this.tickAmount=g};f.prototype.adjustTickAmount=function(){var c=this,g=c.finalTickAmt,b=c.max,d=c.min,k=c.options,m=c.tickPositions,e=c.tickAmount,h=c.thresholdAlignment,f=m&&m.length,p=u(c.threshold,c.softThreshold?0:null);var A=c.tickInterval;if(a(h)){var D=.5>h?Math.ceil(h*\n(e-1)):Math.floor(h*(e-1));k.reversed&&(D=e-1-D)}if(c.hasData()&&a(d)&&a(b)){h=function(){c.transA*=(f-1)/(e-1);c.min=k.startOnTick?m[0]:Math.min(d,m[0]);c.max=k.endOnTick?m[m.length-1]:Math.max(b,m[m.length-1])};if(a(D)&&a(c.threshold)){for(;m[D]!==p||m.length!==e||m[0]>d||m[m.length-1]c.threshold?m.unshift(r(m[0]-A)):m.push(r(m[m.length-1]+A));if(A>8*c.tickInterval)break;A*=2}h()}else if(f=g&&0h&&(c=h)),n(d)&&(kh&&(k=h))),g.displayBtn=\"undefined\"!==typeof c||\"undefined\"!==typeof k,g.setExtremes(c,k,!1,void 0,{trigger:\"zoom\"});a.zoomed=\n!0});return a.zoomed};f.prototype.setAxisSize=function(){var a=this.chart,c=this.options,g=c.offsets||[0,0,0,0],b=this.horiz,d=this.width=Math.round(L(u(c.width,a.plotWidth-g[3]+g[1]),a.plotWidth)),k=this.height=Math.round(L(u(c.height,a.plotHeight-g[0]+g[2]),a.plotHeight)),m=this.top=Math.round(L(u(c.top,a.plotTop+g[0]),a.plotHeight,a.plotTop));c=this.left=Math.round(L(u(c.left,a.plotLeft+g[3]),a.plotWidth,a.plotLeft));this.bottom=a.chartHeight-k-m;this.right=a.chartWidth-d-c;this.len=Math.max(b?\nd:k,0);this.pos=b?c:m};f.prototype.getExtremes=function(){var a=this.logarithmic;return{min:a?r(a.lin2log(this.min)):this.min,max:a?r(a.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}};f.prototype.getThreshold=function(a){var c=this.logarithmic,g=c?c.lin2log(this.min):this.min;c=c?c.lin2log(this.max):this.max;null===a||-Infinity===a?a=g:Infinity===a?a=c:g>a?a=g:cc?a.align=\"right\":195c&&(a.align=\"left\")});return a.align};f.prototype.tickSize=function(a){var c=this.options,g=u(c[\"tick\"===a?\"tickWidth\":\"minorTickWidth\"],\"tick\"===a&&this.isXAxis&&!this.categories?1:0),b=c[\"tick\"===a?\"tickLength\":\"minorTickLength\"];if(g&&b){\"inside\"===c[a+\"Position\"]&&(b=-b);var d=[b,g]}a={tickSize:d};m(this,\"afterTickSize\",a);return a.tickSize};f.prototype.labelMetrics=\nfunction(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)};f.prototype.unsquish=function(){var c=this.options.labels,g=this.horiz,b=this.tickInterval,k=this.len/(((this.categories?1:0)+this.max-this.min)/b),m=c.rotation,e=this.labelMetrics(),h=Math.max(this.max-this.min,0),f=function(a){var c=a/(k||1);c=1h&&Infinity!==a&&Infinity!==k&&h&&(c=Math.ceil(h/b));return r(c*\nb)},p=b,n,A,D=Number.MAX_VALUE;if(g){if(!c.staggerLines&&!c.step)if(a(m))var q=[m];else k=a){A=f(Math.abs(e.h/Math.sin(d*a)));var c=A+Math.abs(a/360);cd.step)return d.rotation?0:(this.staggerLines||1)*this.len/k;if(!b){c=d.style.width;if(void 0!==c)return parseInt(String(c),10);if(m)return m-g.spacing[3]}return.33*g.chartWidth};f.prototype.renderUnsquish=function(){var a=this.chart,c=a.renderer,b=this.tickPositions,d=this.ticks,k=this.options.labels,m=k.style,e=this.horiz,h=this.getSlotWidth(),u=Math.max(1,Math.round(h-2*k.padding)),f={},p=this.labelMetrics(),n=m.textOverflow,A=0;g(k.rotation)||\n(f.rotation=k.rotation||0);b.forEach(function(a){a=d[a];a.movedLabel&&a.replaceMovedLabel();a&&a.label&&a.label.textPxLength>A&&(A=a.label.textPxLength)});this.maxLabelLength=A;if(this.autoRotation)A>u&&A>p.h?f.rotation=this.labelRotation:this.labelRotation=0;else if(h){var D=u;if(!n){var r=\"clip\";for(u=b.length;!e&&u--;){var q=b[u];if(q=d[q].label)q.styles&&\"ellipsis\"===q.styles.textOverflow?q.css({textOverflow:\"clip\"}):q.textPxLength>h&&q.css({width:h+\"px\"}),q.getBBox().height>this.len/b.length-\n(p.h-p.f)&&(q.specificTextOverflow=\"ellipsis\")}}}f.rotation&&(D=A>.5*a.chartHeight?.33*a.chartHeight:A,n||(r=\"ellipsis\"));if(this.labelAlign=k.align||this.autoLabelAlign(this.labelRotation))f.align=this.labelAlign;b.forEach(function(a){var c=(a=d[a])&&a.label,g=m.width,b={};c&&(c.attr(f),a.shortenLabel?a.shortenLabel():D&&!g&&\"nowrap\"!==m.whiteSpace&&(D=this.min&&a<=this.max||this.grid&&this.grid.isColumn)b[a]||(b[a]=new G(this,a)),g&&b[a].isNew&&b[a].render(c,!0,-1),b[a].render(c)};f.prototype.render=function(){var c=this,g=c.chart,b=c.logarithmic,d=c.options,k=c.isLinked,e=c.tickPositions,h=c.axisTitle,f=c.ticks,u=c.minorTicks,p=c.alternateBands,n=d.stackLabels,D=d.alternateGridColor,r=c.tickmarkOffset,\nq=c.axisLine,l=c.showAxis,t=y(g.renderer.globalAnimation),x,z;c.labelEdge.length=0;c.overlap=!1;[f,u,p].forEach(function(a){A(a,function(a){a.isActive=!1})});if(c.hasData()||k){var L=c.chart.hasRendered&&c.old&&a(c.old.min);c.minorTickInterval&&!c.categories&&c.getMinorTickPositions().forEach(function(a){c.renderMinorTick(a,L)});e.length&&(e.forEach(function(a,g){c.renderTick(a,g,L)}),r&&(0===c.min||c.single)&&(f[-1]||(f[-1]=new G(c,-1,null,!0)),f[-1].render(-1)));D&&e.forEach(function(a,d){z=\"undefined\"!==\ntypeof e[d+1]?e[d+1]+r:c.max-r;0===d%2&&ab&&(!h||q<=e)&&\"undefined\"!==typeof q&&t.push(q);q>e&&(m=!0);q=a}}}else b=this.lin2log(b),e=this.lin2log(e),d=h?f.getMinorTickInterval():q.tickInterval,d=C(\"auto\"===d?null:d,this.minorAutoInterval,q.tickPixelInterval/(h?5:1)*(e-b)/((h?p/f.tickPositions.length:p)||1)),d=l(d),t=f.getLinearTickPositions(d,b,e).map(this.log2lin),h||(this.minorAutoInterval=d/5);h||(f.tickInterval=d);return t};e.prototype.lin2log=function(d){return Math.pow(10,d)};e.prototype.log2lin=\nfunction(d){return Math.log(d)/Math.LN10};return e}();f.Additions=t})(v||(v={}));return v});K(l,\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\",[l[\"Core/Utilities.js\"]],function(f){var e=f.erase,l=f.extend,C=f.isNumber,v;(function(f){var v=[],B;f.compose=function(e,h){B||(B=e);-1===v.indexOf(h)&&(v.push(h),l(h.prototype,y.prototype));return h};var y=function(){function f(){}f.prototype.getPlotBandPath=function(e,d,b){void 0===b&&(b=this.options);var h=this.getPlotLinePath({value:d,force:!0,acrossPanes:b.acrossPanes}),\nf=[],r=this.horiz;d=!C(this.min)||!C(this.max)||ethis.max&&d>this.max;e=this.getPlotLinePath({value:e,force:!0,acrossPanes:b.acrossPanes});b=1;if(e&&h){if(d){var n=e.toString()===h.toString();b=0}for(d=0;dr-e?r:r-e);else if(F)k[a]=Math.max(h,f+e+g>c?f:f+e);else return!1},w=function(a,c,g,b,e){var m;ec-d?m=!1:k[a]=ec-b/2?c-b-2:e-g/2;return m},F=function(a){var c=r;r=q;q=c;l=a},T=function(){!1!==x.apply(0,r)?!1!==w.apply(0,q)||l||(F(!0),T()):l?k.x=k.y=0:(F(!0),T())};(b.inverted||1c})&&(a=\na.map(function(a){var b=c(a.anchorX,a.anchorY,a.point.isHeader,a.boxWidth,!1);return p(a,{target:b.y,x:b.x})}));b.cleanSplit();B(a,E);var C=Q,P=Q;a.forEach(function(a){var c=a.x,g=a.boxWidth;a=a.isHeader;a||(b.outside&&Q+cP&&(P=Q+c))});a.forEach(function(a){var c=a.x,g=a.anchorX,d=a.pos,k=a.point.isHeader;d={visibility:\"undefined\"===typeof d?\"hidden\":\"inherit\",x:c,y:d+Z,anchorX:g,anchorY:a.anchorY};if(b.outside&&cc[0]?Math.max(Math.abs(c[0]),k.width-c[0]):Math.max(Math.abs(c[0]),k.width);d.height=0>c[1]?Math.max(Math.abs(c[1]),k.height-Math.abs(c[1])):Math.max(Math.abs(c[1]),k.height);this.tracker?this.tracker.attr(d):(this.tracker=b.renderer.rect(d).addClass(\"highcharts-tracker\").add(b),a.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}};k.prototype.styledModeFormat=function(a){return a.replace('style=\"font-size: 10px\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,\n'class=\"highcharts-color-{$1.colorIndex}\"')};k.prototype.tooltipFooterHeaderFormatter=function(a,b){var c=a.series,g=c.tooltipOptions,d=c.xAxis,k=d&&d.dateTime;d={isFooter:b,labelConfig:a};var e=g.xDateFormat,m=g[b?\"footerFormat\":\"headerFormat\"];q(this,\"headerFormatter\",d,function(b){k&&!e&&n(a.key)&&(e=k.getXDateFormat(a.key,g.dateTimeLabelFormats));k&&e&&(a.point&&a.point.tooltipDateKeys||[\"key\"]).forEach(function(a){m=m.replace(\"{point.\"+a+\"}\",\"{point.\"+a+\":\"+e+\"}\")});c.chart.styledMode&&(m=this.styledModeFormat(m));\nb.text=E(m,{point:a,series:c},this.chart)});return d.text};k.prototype.update=function(a){this.destroy();w(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,w(!0,this.options,a))};k.prototype.updatePosition=function(a){var b=this.chart,c=this.options,d=b.pointer,k=this.getLabel();d=d.getChartPosition();var e=(c.positioner||this.getPosition).call(this,k.width,k.height,a),m=a.plotX+b.plotLeft;a=a.plotY+b.plotTop;if(this.outside){c=c.borderWidth+2*this.distance;this.renderer.setSize(k.width+\nc,k.height+c,!1);if(1!==d.scaleX||1!==d.scaleY)h(this.container,{transform:\"scale(\".concat(d.scaleX,\", \").concat(d.scaleY,\")\")}),m*=d.scaleX,a*=d.scaleY;m+=d.left-e.x;a+=d.top-e.y}this.move(Math.round(e.x),Math.round(e.y||0),m,a)};return k}();\"\";return f});K(l,\"Core/Series/Point.js\",[l[\"Core/Renderer/HTML/AST.js\"],l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/DefaultOptions.js\"],l[\"Core/FormatUtilities.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v){var E=e.animObject,G=l.defaultOptions,B=C.format,\ny=v.addEvent,t=v.defined,h=v.erase,d=v.extend,b=v.fireEvent,p=v.getNestedProperty,q=v.isArray,r=v.isFunction,n=v.isNumber,J=v.isObject,w=v.merge,z=v.objectEach,x=v.pick,m=v.syncTimeout,k=v.removeEvent,a=v.uniqueKey;e=function(){function g(){this.colorIndex=this.category=void 0;this.formatPrefix=\"point\";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=!1;this.total=this.shapeArgs=this.series=void 0;this.visible=!0;this.x=void 0}g.prototype.animateBeforeDestroy=\nfunction(){var a=this,b={x:a.startXPos,opacity:0},g=a.getGraphicalProps();g.singular.forEach(function(c){a[c]=a[c].animate(\"dataLabel\"===c?{x:a[c].startXPos,y:a[c].startYPos,opacity:0}:b)});g.plural.forEach(function(c){a[c].forEach(function(c){c.element&&c.animate(d({x:a.startXPos},c.startYPos?{x:c.startXPos,y:c.startYPos}:{}))})})};g.prototype.applyOptions=function(a,b){var c=this.series,k=c.options.pointValKey||c.pointValKey;a=g.prototype.optionsToObject.call(this,a);d(this,a);this.options=this.options?\nd(this.options,a):a;a.group&&delete this.group;a.dataLabels&&delete this.dataLabels;k&&(this.y=g.prototype.getNestedProperty.call(this,k));this.formatPrefix=(this.isNull=x(this.isValid&&!this.isValid(),null===this.x||!n(this.y)))?\"null\":\"point\";this.selected&&(this.state=\"select\");\"name\"in this&&\"undefined\"===typeof b&&c.xAxis&&c.xAxis.hasNames&&(this.x=c.xAxis.nameToX(this));\"undefined\"===typeof this.x&&c?this.x=\"undefined\"===typeof b?c.autoIncrement():b:n(a.x)&&c.options.relativeXValue&&(this.x=\nc.autoIncrement(a.x));return this};g.prototype.destroy=function(){function a(){if(b.graphic||b.dataLabel||b.dataLabels)k(b),b.destroyElements();for(p in b)b[p]=null}var b=this,g=b.series,d=g.chart;g=g.options.dataSorting;var e=d.hoverPoints,f=E(b.series.chart.renderer.globalAnimation),p;b.legendItem&&d.legend.destroyItem(b);e&&(b.setState(),h(e,b),e.length||(d.hoverPoints=null));if(b===d.hoverPoint)b.onMouseOut();g&&g.enabled?(this.animateBeforeDestroy(),m(a,f.duration)):a();d.pointCount--};g.prototype.destroyElements=\nfunction(a){var c=this;a=c.getGraphicalProps(a);a.singular.forEach(function(a){c[a]=c[a].destroy()});a.plural.forEach(function(a){c[a].forEach(function(a){a.element&&a.destroy()});delete c[a]})};g.prototype.firePointEvent=function(a,g,d){var c=this,k=this.series.options;(k.point.events[a]||c.options&&c.options.events&&c.options.events[a])&&c.importEvents();\"click\"===a&&k.allowPointSelect&&(d=function(a){c.select&&c.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});b(c,a,g,d)};g.prototype.getClassName=\nfunction(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+(\"undefined\"!==typeof this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")};g.prototype.getGraphicalProps=function(a){var c=this,b=[],g={singular:[],plural:[]},d;a=a||{graphic:1,dataLabel:1};\na.graphic&&b.push(\"graphic\",\"upperGraphic\",\"shadowGroup\");a.dataLabel&&b.push(\"dataLabel\",\"dataLabelUpper\",\"connector\");for(d=b.length;d--;){var k=b[d];c[k]&&g.singular.push(k)}[\"dataLabel\",\"connector\"].forEach(function(b){var d=b+\"s\";a[b]&&c[d]&&g.plural.push(d)});return g};g.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}};\ng.prototype.getNestedProperty=function(a){if(a)return 0===a.indexOf(\"custom.\")?p(a,this.options):this[a]};g.prototype.getZone=function(){var a=this.series,b=a.zones;a=a.zoneAxis||\"y\";var g,d=0;for(g=b[d];this[a]>=g.value;)g=b[++d];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=g&&g.color&&!this.options.color?g.color:this.nonZonedColor;return g};g.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};g.prototype.init=\nfunction(c,g,d){this.series=c;this.applyOptions(g,d);this.id=t(this.id)?this.id:a();this.resolveColor();c.chart.pointCount++;b(this,\"afterInit\");return this};g.prototype.optionsToObject=function(a){var c=this.series,b=c.options.keys,d=b||c.pointArrayMap||[\"y\"],k=d.length,e={},m=0,f=0;if(n(a)||null===a)e[d[0]]=a;else if(q(a))for(!b&&a.length>k&&(c=typeof a[0],\"string\"===c?e.name=a[0]:\"number\"===c&&(e.x=a[0]),m++);fe+f&&(t=e+f),zm+h&&(z=m+h),this.hasDragged=Math.sqrt(Math.pow(p-t,2)+Math.pow(n-z,2)),10c.options.findNearestPointBy.indexOf(\"y\");c=c.searchPoint(a,b);if((b=r(c,!0)&&c.series)&&!(b=!r(k,!0))){b=k.distX-c.distX;var g=k.dist-c.dist,e=(c.series.group&&c.series.group.zIndex)-(k.series.group&&k.series.group.zIndex);b=0<(0!==b&&d?b:0!==g?g:0!==e?e:k.series.index>c.series.index?-1:1)}b&&(k=c)});return k};f.prototype.getChartCoordinatesFromPoint=\nfunction(b,d){var a=b.series,g=a.xAxis;a=a.yAxis;var c=b.shapeArgs;if(g&&a){var k=w(b.clientX,b.plotX),e=b.plotY||0;b.isNode&&c&&q(c.x)&&q(c.y)&&(k=c.x,e=c.y);return d?{chartX:a.len+a.pos-e,chartY:g.len+g.pos-k}:{chartX:k+g.pos,chartY:e+a.pos}}if(c&&c.x&&c.y)return{chartX:c.x,chartY:c.y}};f.prototype.getChartPosition=function(){if(this.chartPosition)return this.chartPosition;var b=this.chart.container,d=J(b);this.chartPosition={left:d.left,top:d.top,scaleX:1,scaleY:1};var a=b.offsetWidth;b=b.offsetHeight;\n2l.max&&(a=l.max-z,y=!0);y?(N-=.8*(N-f[m][0]),\"number\"===typeof x&&(x-=.8*(x-f[m][1])),d()):f[m]=[N,x];q||(e[m]=F-r,e[u]=z);e=q?1/w:w;c[u]=z;c[m]=a;g[q?b?\"scaleY\":\"scaleX\":\"scale\"+p]=w;g[\"translate\"+p]=e*r+(N-e*A)};f.prototype.reset=function(b,d){var a=this.chart,g=a.hoverSeries,c=a.hoverPoint,e=a.hoverPoints,k=a.tooltip,f=k&&k.shared?e:c;b&&f&&z(f).forEach(function(a){a.series.isCartesian&&\n\"undefined\"===typeof a.plotX&&(b=!1)});if(b)k&&f&&z(f).length&&(k.refresh(f),k.shared&&e?e.forEach(function(a){a.setState(a.state,!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):c&&(c.setState(c.state,!0),a.axes.forEach(function(a){a.crosshair&&c.series[a.coll]===a&&a.drawCrosshair(null,c)})));else{if(c)c.onMouseOut();e&&e.forEach(function(a){a.setState()});if(g)g.onMouseOut();k&&k.hide(d);\nthis.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());a.axes.forEach(function(a){a.hideCrosshair()});this.hoverX=a.hoverPoints=a.hoverPoint=null}};f.prototype.runPointActions=function(d,e){var a=this.chart,g=a.tooltip&&a.tooltip.options.enabled?a.tooltip:void 0,c=g?g.shared:!1,k=e||a.hoverPoint,h=k&&k.series||a.hoverSeries;e=this.getHoverData(k,h,a.series,(!d||\"touchmove\"!==d.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),c,d);k=e.hoverPoint;h=e.hoverSeries;var m=e.hoverPoints;e=h&&\nh.tooltipOptions.followPointer&&!h.tooltipOptions.split;var p=c&&h&&!h.noSharedTooltip;if(k&&(k!==a.hoverPoint||g&&g.isHidden)){(a.hoverPoints||[]).forEach(function(a){-1===m.indexOf(a)&&a.setState()});if(a.hoverSeries!==h)h.onMouseOver();this.applyInactiveState(m);(m||[]).forEach(function(a){a.setState(\"hover\")});a.hoverPoint&&a.hoverPoint.firePointEvent(\"mouseOut\");if(!k.series)return;a.hoverPoints=m;a.hoverPoint=k;k.firePointEvent(\"mouseOver\",void 0,function(){g&&k&&g.refresh(p?m:k,d)})}else e&&\ng&&!g.isHidden&&(c=g.getAnchor([{}],d),a.isInsidePlot(c[0],c[1],{visiblePlotOnly:!0})&&g.updatePosition({plotX:c[0],plotY:c[1]}));this.unDocMouseMove||(this.unDocMouseMove=B(a.container.ownerDocument,\"mousemove\",function(a){var c=E[f.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(a)}),this.eventsToUnbind.push(this.unDocMouseMove));a.axes.forEach(function(c){var g=w((c.crosshair||{}).snap,!0),e;g&&((e=a.hoverPoint)&&e.series[c.coll]===c||(e=b(m,function(a){return a.series&&a.series[c.coll]===\nc})));e||!g?c.drawCrosshair(d,e):c.hideCrosshair()})};f.prototype.scaleGroups=function(b,d){var a=this.chart;a.series.forEach(function(g){var c=b||g.getPlotBox();g.group&&(g.xAxis&&g.xAxis.zoomEnabled||a.mapView)&&(g.group.attr(c),g.markerGroup&&(g.markerGroup.attr(c),g.markerGroup.clip(d?a.clipRect:null)),g.dataLabelsGroup&&g.dataLabelsGroup.attr(c))});a.clipRect.attr(d||a.clipBox)};f.prototype.setDOMEvents=function(){var b=this,d=this.chart.container,a=d.ownerDocument;d.onmousedown=this.onContainerMouseDown.bind(this);\nd.onmousemove=this.onContainerMouseMove.bind(this);d.onclick=this.onContainerClick.bind(this);this.eventsToUnbind.push(B(d,\"mouseenter\",this.onContainerMouseEnter.bind(this)));this.eventsToUnbind.push(B(d,\"mouseleave\",this.onContainerMouseLeave.bind(this)));f.unbindDocumentMouseUp||(f.unbindDocumentMouseUp=B(a,\"mouseup\",this.onDocumentMouseUp.bind(this)));for(var g=this.chart.renderTo.parentElement;g&&\"BODY\"!==g.tagName;)this.eventsToUnbind.push(B(g,\"scroll\",function(){delete b.chartPosition})),g=\ng.parentElement;e.hasTouch&&(this.eventsToUnbind.push(B(d,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(B(d,\"touchmove\",this.onContainerTouchMove.bind(this),{passive:!1})),f.unbindDocumentTouchEnd||(f.unbindDocumentTouchEnd=B(a,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})))};f.prototype.setHoverChartIndex=function(){var b=this.chart,d=e.charts[w(f.hoverChartIndex,-1)];if(d&&d!==b)d.pointer.onContainerMouseLeave({relatedTarget:b.container});\nd&&d.mouseIsDown||(f.hoverChartIndex=b.index)};f.prototype.touch=function(b,d){var a=this.chart,g;this.setHoverChartIndex();if(1===b.touches.length)if(b=this.normalize(b),(g=a.isInsidePlot(b.chartX-a.plotLeft,b.chartY-a.plotTop,{visiblePlotOnly:!0}))&&!a.openMenu){d&&this.runPointActions(b);if(\"touchmove\"===b.type){d=this.pinchDown;var c=d[0]?4<=Math.sqrt(Math.pow(d[0].chartX-b.chartX,2)+Math.pow(d[0].chartY-b.chartY,2)):!1}w(c,!0)&&this.pinch(b)}else d&&this.reset();else 2===b.touches.length&&this.pinch(b)};\nf.prototype.touchSelect=function(b){return!(!this.chart.options.chart.zoomBySingleTouch||!b.touches||1!==b.touches.length)};f.prototype.zoomOption=function(b){var d=this.chart,a=d.options.chart;d=d.inverted;var g=a.zoomType||\"\";/touch/.test(b.type)&&(g=w(a.pinchType,g));this.zoomX=b=/x/.test(g);this.zoomY=a=/y/.test(g);this.zoomHor=b&&!d||a&&d;this.zoomVert=a&&!d||b&&d;this.hasZoom=b||a};return f}();\"\";return f});K(l,\"Core/MSPointer.js\",[l[\"Core/Globals.js\"],l[\"Core/Pointer.js\"],l[\"Core/Utilities.js\"]],\nfunction(f,e,l){function C(){var d=[];d.item=function(b){return this[b]};b(q,function(b){d.push({pageX:b.pageX,pageY:b.pageY,target:b.target})});return d}function v(b,d,f,h){var p=G[e.hoverChartIndex||NaN];\"touch\"!==b.pointerType&&b.pointerType!==b.MSPOINTER_TYPE_TOUCH||!p||(p=p.pointer,h(b),p[d]({type:f,target:b.currentTarget,preventDefault:y,touches:C()}))}var E=this&&this.__extends||function(){var b=function(d,e){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=\nd}||function(b,d){for(var e in d)d.hasOwnProperty(e)&&(b[e]=d[e])};return b(d,e)};return function(d,e){function f(){this.constructor=d}b(d,e);d.prototype=null===e?Object.create(e):(f.prototype=e.prototype,new f)}}(),G=f.charts,B=f.doc,y=f.noop,t=f.win,h=l.addEvent,d=l.css,b=l.objectEach,p=l.removeEvent,q={},r=!!t.PointerEvent;return function(b){function e(){return null!==b&&b.apply(this,arguments)||this}E(e,b);e.isRequired=function(){return!(f.hasTouch||!t.PointerEvent&&!t.MSPointerEvent)};e.prototype.batchMSEvents=\nfunction(b){b(this.chart.container,r?\"pointerdown\":\"MSPointerDown\",this.onContainerPointerDown);b(this.chart.container,r?\"pointermove\":\"MSPointerMove\",this.onContainerPointerMove);b(B,r?\"pointerup\":\"MSPointerUp\",this.onDocumentPointerUp)};e.prototype.destroy=function(){this.batchMSEvents(p);b.prototype.destroy.call(this)};e.prototype.init=function(e,f){b.prototype.init.call(this,e,f);this.hasZoom&&d(e.container,{\"-ms-touch-action\":\"none\",\"touch-action\":\"none\"})};e.prototype.onContainerPointerDown=\nfunction(b){v(b,\"onContainerTouchStart\",\"touchstart\",function(b){q[b.pointerId]={pageX:b.pageX,pageY:b.pageY,target:b.currentTarget}})};e.prototype.onContainerPointerMove=function(b){v(b,\"onContainerTouchMove\",\"touchmove\",function(b){q[b.pointerId]={pageX:b.pageX,pageY:b.pageY};q[b.pointerId].target||(q[b.pointerId].target=b.currentTarget)})};e.prototype.onDocumentPointerUp=function(b){v(b,\"onDocumentTouchEnd\",\"touchend\",function(b){delete q[b.pointerId]})};e.prototype.setDOMEvents=function(){b.prototype.setDOMEvents.call(this);\n(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(h)};return e}(e)});K(l,\"Core/Legend/Legend.js\",[l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/FormatUtilities.js\"],l[\"Core/Globals.js\"],l[\"Core/Series/Point.js\"],l[\"Core/Renderer/RendererUtilities.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v,E){var G=f.animObject,B=f.setAnimation,y=e.format;f=l.isFirefox;var t=l.marginNames;l=l.win;var h=v.distribute,d=E.addEvent,b=E.createElement,p=E.css,q=E.defined,r=E.discardElement,n=E.find,J=E.fireEvent,\nw=E.isNumber,z=E.merge,x=E.pick,m=E.relativeLength,k=E.stableSort,a=E.syncTimeout;v=E.wrap;E=function(){function g(a,b){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options=void 0;this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=\nvoid 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=a;this.init(a,b)}g.prototype.init=function(a,b){this.chart=a;this.setOptions(b);b.enabled&&(this.render(),d(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=d(this.chart,\"render\",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};g.prototype.setOptions=function(a){var c=x(a.padding,\n8);this.options=a;this.chart.styledMode||(this.itemStyle=a.itemStyle,this.itemHiddenStyle=z(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop||0;this.itemMarginBottom=a.itemMarginBottom||0;this.padding=c;this.initialItemY=c-5;this.symbolWidth=x(a.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===a.layout&&!this.chart.inverted;this.baseline=void 0};g.prototype.update=function(a,b){var c=this.chart;this.setOptions(z(!0,this.options,a));this.destroy();c.isDirtyLegend=c.isDirtyBox=\n!0;x(b,!0)&&c.redraw();J(this,\"afterUpdate\")};g.prototype.colorizeItem=function(a,b){a.legendGroup[b?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){var c=this.options,d=a.legendItem,g=a.legendLine,e=a.legendSymbol,f=this.itemHiddenStyle.color;c=b?c.itemStyle.color:f;var k=b?a.color||f:f,h=a.options&&a.options.marker,m={fill:k};d&&d.css({fill:c,color:c});g&&g.attr({stroke:k});e&&(h&&e.isMarker&&(m=a.pointAttribs(),b||(m.stroke=m.fill=f)),e.attr(m))}J(this,\"afterColorizeItem\",\n{item:a,visible:b})};g.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};g.prototype.positionItem=function(a){var c=this,b=this.options,d=b.symbolPadding,g=!b.rtl,e=a._legendItemPos;b=e[0];e=e[1];var f=a.checkbox,k=a.legendGroup;k&&k.element&&(d={translateX:g?b:this.legendWidth-b-2*d-4,translateY:e},g=function(){J(c,\"afterPositionItem\",{item:a})},q(k.translateY)?k.animate(d,void 0,g):(k.attr(d),g()));f&&(f.x=b,f.y=e)};\ng.prototype.destroyItem=function(a){var c=a.checkbox;[\"legendItem\",\"legendLine\",\"legendSymbol\",\"legendGroup\"].forEach(function(c){a[c]&&(a[c]=a[c].destroy())});c&&r(a.checkbox)};g.prototype.destroy=function(){function a(a){this[a]&&(this[a]=this[a].destroy())}this.getAllItems().forEach(function(c){[\"legendItem\",\"legendGroup\"].forEach(a,c)});\"clipRect up down pager nav box title group\".split(\" \").forEach(a,this);this.display=null};g.prototype.positionCheckboxes=function(){var a=this.group&&this.group.alignAttr,\nb=this.clipHeight||this.legendHeight,d=this.titleHeight;if(a){var g=a.translateY;this.allItems.forEach(function(c){var e=c.checkbox;if(e){var f=g+d+e.y+(this.scrollOffset||0)+3;p(e,{left:a.translateX+c.checkboxOffset+e.x-20+\"px\",top:f+\"px\",display:this.proximate||f>g-6&&f1.5*b?c.height:b))};g.prototype.layoutItem=function(a){var c=this.options,b=this.padding,d=\"horizontal\"===c.layout,g=a.itemHeight,e=this.itemMarginBottom,f=this.itemMarginTop,k=d?x(c.itemDistance,20):0,h=this.maxLegendWidth;c=c.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:a.itemWidth;d&&this.itemX-b+c>h&&(this.itemX=b,this.lastLineHeight&&(this.itemY+=f+this.lastLineHeight+e),this.lastLineHeight=0);this.lastItemY=f+this.itemY+e;this.lastLineHeight=\nMath.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];d?this.itemX+=c:(this.itemY+=f+g+e,this.lastLineHeight=g);this.offsetWidth=this.widthOption||Math.max((d?this.itemX-b-(a.checkbox?0:k):c)+b,this.offsetWidth)};g.prototype.getAllItems=function(){var a=[];this.chart.series.forEach(function(c){var b=c&&c.options;c&&x(b.showInLegend,q(b.linkedTo)?!1:void 0,!0)&&(a=a.concat(c.legendItems||(\"point\"===b.legendType?c.data:c)))});J(this,\"afterGetAllItems\",{allItems:a});return a};g.prototype.getAlignment=\nfunction(){var a=this.options;return this.proximate?a.align.charAt(0)+\"tv\":a.floating?\"\":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)};g.prototype.adjustMargins=function(a,b){var c=this.chart,d=this.options,g=this.getAlignment();g&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(e,f){e.test(g)&&!q(a[f])&&(c[t[f]]=Math.max(c[t[f]],c.legend[(f+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][f]*d[f%2?\"x\":\"y\"]+x(d.margin,12)+b[f]+(c.titleOffset[f]||0)))})};\ng.prototype.proximatePositions=function(){var a=this.chart,b=[],d=\"left\"===this.options.align;this.allItems.forEach(function(c){var g;var e=d;if(c.yAxis){c.xAxis.options.reversed&&(e=!e);c.points&&(g=n(e?c.points:c.points.slice(0).reverse(),function(a){return w(a.plotY)}));e=this.itemMarginTop+c.legendItem.getBBox().height+this.itemMarginBottom;var f=c.yAxis.top-a.plotTop;c.visible?(g=g?g.plotY:c.yAxis.height,g+=f-.3*e):g=f+c.yAxis.height;b.push({target:g,size:e,item:c})}},this);h(b,a.plotHeight).forEach(function(c){c.item._legendItemPos&&\nc.pos&&(c.item._legendItemPos[1]=a.plotTop-a.spacing[0]+c.pos)})};g.prototype.render=function(){var a=this.chart,b=a.renderer,d=this.options,g=this.padding,e=this.getAllItems(),f=this.group,h=this.box;this.itemX=g;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=m(d.width,a.spacingBox.width-g);var p=a.spacingBox.width-2*g-d.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(p/=2);this.maxLegendWidth=this.widthOption||p;f||(this.group=f=b.g(\"legend\").addClass(d.className||\n\"\").attr({zIndex:7}).add(),this.contentGroup=b.g().attr({zIndex:1}).add(f),this.scrollGroup=b.g().add(this.contentGroup));this.renderTitle();k(e,function(a,c){return(a.options&&a.options.legendIndex||0)-(c.options&&c.options.legendIndex||0)});d.reversed&&e.reverse();this.allItems=e;this.display=p=!!e.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;e.forEach(this.renderItem,this);e.forEach(this.layoutItem,this);e=(this.widthOption||this.offsetWidth)+g;var n=this.lastItemY+\nthis.lastLineHeight+this.titleHeight;n=this.handleOverflow(n);n+=g;h||(this.box=h=b.rect().addClass(\"highcharts-legend-box\").attr({r:d.borderRadius}).add(f));a.styledMode||h.attr({stroke:d.borderColor,\"stroke-width\":d.borderWidth||0,fill:d.backgroundColor||\"none\"}).shadow(d.shadow);if(0e&&!1!==m.enabled?(this.clipHeight=F=Math.max(e-20-this.titleHeight-k,0),this.currentPage=x(this.currentPage,1),this.fullHeight=a,r.forEach(function(a,c){var b=a._legendItemPos[1],d=Math.round(a.legendItem.getBBox().height),\ng=l.length;if(!g||b-l[g-1]>F&&(z||b)!==l[g-1])l.push(z||b),g++;a.pageIx=g-1;z&&(r[c-1].pageIx=g-1);c===r.length-1&&b+d-l[g-1]>F&&d<=F&&(l.push(b),a.pageIx=g);b!==z&&(z=b)}),w||(w=c.clipRect=d.clipRect(0,k,9999,0),c.contentGroup.clip(w)),q(F),N||(this.nav=N=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol(\"triangle\",0,0,n,n).add(N),t(\"upTracker\").on(\"click\",function(){c.scroll(-1,p)}),this.pager=d.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),!b.styledMode&&m.style&&this.pager.css(m.style),\nthis.pager.add(N),this.down=d.symbol(\"triangle-down\",0,0,n,n).add(N),t(\"downTracker\").on(\"click\",function(){c.scroll(1,p)})),c.scroll(0),a=e):N&&(q(),this.nav=N.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a};g.prototype.scroll=function(c,b){var d=this,g=this.chart,e=this.pages,f=e.length,k=this.clipHeight,h=this.options.navigation,m=this.pager,p=this.padding,n=this.currentPage+c;n>f&&(n=f);0=Math.max(h+e,n.pos)&&k<=Math.min(h+e+g.width,n.pos+n.len)||(a.isInsidePlot=!1)}!b.ignoreY&&a.isInsidePlot&&(d=p&&(d?p.xAxis:p.yAxis)||{pos:f,len:Infinity},b=b.paneCoordinates?d.pos+c:f+\nc,b>=Math.max(m+f,d.pos)&&b<=Math.min(m+f+g.height,d.pos+d.len)||(a.isInsidePlot=!1));O(this,\"afterIsInsidePlot\",a);return a.isInsidePlot};f.prototype.redraw=function(a){O(this,\"beforeRedraw\");var c=this.hasCartesianSeries?this.axes:this.colorAxis||[],b=this.series,d=this.pointer,g=this.legend,e=this.userOptions.legend,f=this.renderer,k=f.isHidden(),h=[],m=this.isDirtyBox,p=this.isDirtyLegend;this.setResponsive&&this.setResponsive(!1);J(this.hasRendered?a:!1,this);k&&this.temporaryDisplay();this.layOutTitles();\nfor(a=b.length;a--;){var n=b[a];if(n.options.stacking||n.options.centerInCategory){var l=!0;if(n.isDirty){var F=!0;break}}}if(F)for(a=b.length;a--;)n=b[a],n.options.stacking&&(n.isDirty=!0);b.forEach(function(a){a.isDirty&&(\"point\"===a.options.legendType?(\"function\"===typeof a.updateTotals&&a.updateTotals(),p=!0):e&&(e.labelFormatter||e.labelFormat)&&(p=!0));a.isDirtyData&&O(a,\"updatedData\")});p&&g&&g.options.enabled&&(g.render(),this.isDirtyLegend=!1);l&&this.getStacks();c.forEach(function(a){a.updateNames();\na.setScale()});this.getMargins();c.forEach(function(a){a.isDirty&&(m=!0)});c.forEach(function(a){var c=a.min+\",\"+a.max;a.extKey!==c&&(a.extKey=c,h.push(function(){O(a,\"afterSetExtremes\",K(a.eventArgs,a.getExtremes()));delete a.eventArgs}));(m||l)&&a.redraw()});m&&this.drawChartBox();O(this,\"predraw\");b.forEach(function(a){(m||a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=!1});d&&d.reset(!0);f.draw();O(this,\"redraw\");O(this,\"render\");k&&this.temporaryDisplay(!0);h.forEach(function(a){a.call()})};\nf.prototype.get=function(a){function c(c){return c.id===a||c.options&&c.options.id===a}for(var b=this.series,d=da(this.axes,c)||da(this.series,c),g=0;!d&&g=k&&d<=h||m||!U(d))n=!0;b[m?\"zoomX\":\"zoomY\"]&&n&&(e=f.zoom(a.min,a.max),f.displayBtn&&(g=!0))});var f=c.resetZoomButton;g&&!f?c.showResetZoom():!g&&N(f)&&(c.resetZoomButton=f.destroy());e&&c.redraw(Q(c.options.chart.animation,a&&a.animation,100>c.pointCount))};\nf.prototype.pan=function(a,c){var b=this,d=b.hoverPoints;c=\"object\"===typeof c?c:{enabled:c,type:\"x\"};var g=b.options.chart;g&&g.panning&&(g.panning=c);var e=c.type,f;O(this,\"pan\",{originalEvent:a},function(){d&&d.forEach(function(a){a.setState()});var c=b.xAxis;\"xy\"===e?c=c.concat(b.yAxis):\"y\"===e&&(c=b.yAxis);var g={};c.forEach(function(c){if(c.options.panningEnabled&&!c.options.isInternal){var d=c.horiz,k=a[d?\"chartX\":\"chartY\"];d=d?\"mouseDownX\":\"mouseDownY\";var h=b[d],m=c.minPointOffset||0,n=c.reversed&&\n!b.inverted||!c.reversed&&b.inverted?-1:1,p=c.getExtremes(),l=c.toValue(h-k,!0)+m*n,F=c.toValue(h+c.len-k,!0)-(m*n||c.isXAxis&&c.pointRangePadding||0),r=F=n&&l<=F&&(c.setExtremes(h,l,!1,!1,{trigger:\"pan\"}),!b.resetZoomButton&&h!==n&&l!==F&&e.match(\"y\")&&(b.showResetZoom(),c.displayBtn=\n!1),f=!0),g[d]=k)}});X(g,function(a,c){b[c]=a});f&&b.redraw(!1);M(b.container,{cursor:\"move\"})})};return f}();K(f.prototype,{callbacks:[],collectionsWithInit:{xAxis:[f.prototype.addAxis,[!0]],yAxis:[f.prototype.addAxis,[!1]],series:[f.prototype.addSeries]},collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"series\"],propsRequireDirtyBox:\"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),propsRequireReflow:\"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\npropsRequireUpdateSeries:\"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \")});\"\";return f});K(l,\"Core/Legend/LegendSymbol.js\",[l[\"Core/Utilities.js\"]],function(f){var e=f.merge,l=f.pick,C;(function(f){f.drawLineMarker=function(f){var v=this.options,B=f.symbolWidth,y=f.symbolHeight,t=y/2,h=this.chart.renderer,d=this.legendGroup;f=f.baseline-Math.round(.3*f.fontMetrics.b);var b={},p=v.marker;this.chart.styledMode||(b={\"stroke-width\":v.lineWidth||\n0},v.dashStyle&&(b.dashstyle=v.dashStyle));this.legendLine=h.path([[\"M\",0,f],[\"L\",B,f]]).addClass(\"highcharts-graph\").attr(b).add(d);p&&!1!==p.enabled&&B&&(v=Math.min(l(p.radius,t),t),0===this.symbol.indexOf(\"url\")&&(p=e(p,{width:y,height:y}),v=0),this.legendSymbol=B=h.symbol(this.symbol,B/2-v,f-v,2*v,2*v,p).addClass(\"highcharts-point\").add(d),B.isMarker=!0)};f.drawRectangle=function(e,f){var v=e.symbolHeight,y=e.options.squareSymbol;f.legendSymbol=this.chart.renderer.rect(y?(e.symbolWidth-v)/2:0,\ne.baseline-v+1,y?v:e.symbolWidth,v,l(e.options.symbolRadius,v/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(f.legendGroup)}})(C||(C={}));return C});K(l,\"Core/Series/SeriesDefaults.js\",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",\nlineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:\"center\",defer:!0,formatter:function(){var f=this.series.chart.numberFormatter;return\"number\"!==typeof this.y?\"\":f(this.y,-1)},padding:5,style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},\nselect:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"}});K(l,\"Core/Series/Series.js\",[l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/DefaultOptions.js\"],l[\"Core/Foundation.js\"],l[\"Core/Globals.js\"],l[\"Core/Legend/LegendSymbol.js\"],l[\"Core/Series/Point.js\"],l[\"Core/Series/SeriesDefaults.js\"],l[\"Core/Series/SeriesRegistry.js\"],l[\"Core/Renderer/SVG/SVGElement.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v,E,G,B,\ny,t){var h=f.animObject,d=f.setAnimation,b=e.defaultOptions,p=l.registerEventOptions,q=C.hasTouch,r=C.svg,n=C.win,J=B.seriesTypes,w=t.addEvent,z=t.arrayMax,x=t.arrayMin,m=t.clamp,k=t.cleanRecursively,a=t.correctFloat,g=t.defined,c=t.erase,D=t.error,A=t.extend,u=t.find,L=t.fireEvent,S=t.getNestedProperty,R=t.isArray,M=t.isNumber,U=t.isString,P=t.merge,I=t.objectEach,H=t.pick,K=t.removeEvent,da=t.splat,O=t.syncTimeout;f=function(){function e(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=\nthis.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}e.prototype.init=function(a,c){L(this,\"init\",{options:c});var b=this,d=a.series;this.eventsToUnbind=[];b.chart=a;b.options=b.setOptions(c);c=b.options;b.linkedSeries=[];b.bindAxes();A(b,{name:c.name,state:\"\",visible:!1!==c.visible,selected:!0===c.selected});p(this,c);var g=c.events;if(g&&g.click||c.point&&c.point.events&&c.point.events.click||\nc.allowPointSelect)a.runTrackerClick=!0;b.getColor();b.getSymbol();b.parallelArrays.forEach(function(a){b[a+\"Data\"]||(b[a+\"Data\"]=[])});b.isCartesian&&(a.hasCartesianSeries=!0);var e;d.length&&(e=d[d.length-1]);b._i=H(e&&e._i,-1)+1;b.opacity=b.options.opacity;a.orderSeries(this.insert(d));c.dataSorting&&c.dataSorting.enabled?b.setDataSortingOptions():b.points||b.data||b.setData(c.data,!1);L(this,\"afterInit\")};e.prototype.is=function(a){return J[a]&&this instanceof J[a]};e.prototype.insert=function(a){var c=\nthis.options.index,b;if(M(c)){for(b=a.length;b--;)if(c>=H(a[b].options.index,a[b]._i)){a.splice(b+1,0,this);break}-1===b&&a.unshift(this);b+=1}else a.push(this);return H(b,a.length-1)};e.prototype.bindAxes=function(){var a=this,c=a.options,b=a.chart,d;L(this,\"bindAxes\",null,function(){(a.axisTypes||[]).forEach(function(g){var e=0;b[g].forEach(function(b){d=b.options;if(c[g]===e&&!d.isInternal||\"undefined\"!==typeof c[g]&&c[g]===d.id||\"undefined\"===typeof c[g]&&0===d.index)a.insert(b.series),a[g]=b,\nb.isDirty=!0;d.isInternal||e++});a[g]||a.optionalAxis===g||D(18,!0,b)})});L(this,\"afterBindAxes\")};e.prototype.updateParallelArrays=function(a,c){var b=a.series,d=arguments,g=M(c)?function(d){var g=\"y\"===d&&b.toYData?b.toYData(a):a[d];b[d+\"Data\"][c]=g}:function(a){Array.prototype[c].apply(b[a+\"Data\"],Array.prototype.slice.call(d,2))};b.parallelArrays.forEach(g)};e.prototype.hasData=function(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&\nthis.yData&&0=this.cropStart?h-this.cropStart:h);!k&&M(h)&&g[h]&&g[h].touched&&(h=void 0);return h};e.prototype.updateData=function(a,c){var b=this.options,d=b.dataSorting,e=this.points,f=[],k=this.requireSorting,h=a.length===e.length,m,n,p,l=!0;this.xIncrement=null;a.forEach(function(a,c){var n=g(a)&&this.pointClass.prototype.optionsToObject.call({series:this},\na)||{},l=n.x;if(n.id||M(l)){if(n=this.findPointIndex(n,p),-1===n||\"undefined\"===typeof n?f.push(a):e[n]&&a!==b.data[n]?(e[n].update(a,!1,null,!1),e[n].touched=!0,k&&(p=n+1)):e[n]&&(e[n].touched=!0),!h||c!==n||d&&d.enabled||this.hasDerivedData)m=!0}else f.push(a)},this);if(m)for(a=e.length;a--;)(n=e[a])&&!n.touched&&n.remove&&n.remove(!1,c);else!h||d&&d.enabled?l=!1:(a.forEach(function(a,c){a!==e[c].y&&e[c].update&&e[c].update(a,!1,null,!1)}),f.length=0);e.forEach(function(a){a&&(a.touched=!1)});if(!l)return!1;\nf.forEach(function(a){this.addPoint(a,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=z(this.xData),this.autoIncrement());return!0};e.prototype.setData=function(a,c,b,d){var g=this,e=g.points,f=e&&e.length||0,k=g.options,h=g.chart,m=k.dataSorting,n=g.xAxis,p=k.turboThreshold,l=this.xData,r=this.yData,q=g.pointArrayMap;q=q&&q.length;var F=k.keys,u,t=0,z=1,w=null;if(!h.options.chart.allowMutatingData){k.data&&delete g.options.data;g.userOptions.data&&\ndelete g.userOptions.data;var x=P(!0,a)}a=x||a||[];x=a.length;c=H(c,!0);m&&m.enabled&&(a=this.sortData(a));h.options.chart.allowMutatingData&&!1!==d&&x&&f&&!g.cropped&&!g.hasGroupedData&&g.visible&&!g.isSeriesBoosting&&(u=this.updateData(a,b));if(!u){g.xIncrement=null;g.colorCounter=0;this.parallelArrays.forEach(function(a){g[a+\"Data\"].length=0});if(p&&x>p)if(w=g.getFirstValidPoint(a),M(w))for(b=0;ba?1:0}).forEach(function(a,\nc){a.x=c},this);c.linkedSeries&&c.linkedSeries.forEach(function(c){var b=c.options,g=b.data;b.dataSorting&&b.dataSorting.enabled||!g||(g.forEach(function(b,e){g[e]=d(c,b);a[e]&&(g[e].x=a[e].x,g[e].index=e)}),c.setData(g,!1))});return a};e.prototype.getProcessedData=function(a){var c=this.xAxis,b=this.options,d=b.cropThreshold,g=a||this.getExtremesFromAll||b.getExtremesFromAll,e=this.isCartesian;a=c&&c.val2lin;b=!(!c||!c.logarithmic);var f=0,k=this.xData,h=this.yData,m=this.requireSorting;var n=!1;\nvar p=k.length;if(c){n=c.getExtremes();var l=n.min;var r=n.max;n=!(!c.categories||c.names.length)}if(e&&this.sorted&&!g&&(!d||p>d||this.forceCrop))if(k[p-1]r)k=[],h=[];else if(this.yData&&(k[0]r)){var q=this.cropData(this.xData,this.yData,l,r);k=q.xData;h=q.yData;f=q.start;q=!0}for(d=k.length||1;--d;)if(c=b?a(k[d])-a(k[d-1]):k[d]-k[d-1],0c&&m&&!n&&(D(15,!1,this.chart),m=!1);return{xData:k,yData:h,cropped:q,cropStart:f,closestPointRange:u}};\ne.prototype.processData=function(a){var c=this.xAxis;if(this.isCartesian&&!this.isDirty&&!c.isDirty&&!this.yAxis.isDirty&&!a)return!1;a=this.getProcessedData();this.cropped=a.cropped;this.cropStart=a.cropStart;this.processedXData=a.xData;this.processedYData=a.yData;this.closestPointRange=this.basePointRange=a.closestPointRange;L(this,\"afterProcessData\")};e.prototype.cropData=function(a,c,b,d,g){var e=a.length,f,k=0,h=e;g=H(g,this.cropShoulder);for(f=0;f=b){k=Math.max(0,f-g);break}for(b=\nf;bd){h=b+g;break}return{xData:a.slice(k,h),yData:c.slice(k,h),start:k,end:h}};e.prototype.generatePoints=function(){var a=this.options,c=this.processedData||a.data,b=this.processedXData,d=this.processedYData,g=this.pointClass,e=b.length,f=this.cropStart||0,k=this.hasGroupedData,h=a.keys,m=[];a=a.dataGrouping&&a.dataGrouping.groupAll?f:0;var n,p,l=this.data;if(!l&&!k){var r=[];r.length=c.length;l=this.data=r}h&&k&&(this.options.keys=!1);for(p=0;p=h&&(g[k-f]||q)<=m;if(r&&\nq)if(r=l.length)for(;r--;)M(l[r])&&(e[n++]=l[r]);else e[n++]=l}a={activeYData:e,dataMin:x(e),dataMax:z(e)};L(this,\"afterGetExtremes\",{dataExtremes:a});return a};e.prototype.applyExtremes=function(){var a=this.getExtremes();this.dataMin=a.dataMin;this.dataMax=a.dataMax;return a};e.prototype.getFirstValidPoint=function(a){for(var c=a.length,b=0,d=null;null===d&&b=J&&(J=null),x.total=x.stackTotal=y.total,x.percentage=y.total&&x.y/y.total*100,x.stackY=v,this.irregularWidths||y.setOffset(this.pointXOffset||0,this.barW||0));x.yBottom=g(J)?m(k.translate(J,0,1,0,1),-1E5,1E5):null;this.dataModify&&(v=\nthis.dataModify.modifyValue(v,t));x.plotY=void 0;M(v)&&(y=k.translate(v,!1,!0,!1,!0),\"undefined\"!==typeof y&&(x.plotY=m(y,-1E5,1E5)));x.isInside=this.isPointInside(x);x.clientX=l?a(d.translate(A,0,0,0,1,p)):z;x.negative=x[u]<(c[u+\"Threshold\"]||q||0);x.category=H(e&&e[x.x],x.x);if(!x.isNull&&!1!==x.visible){\"undefined\"!==typeof G&&(w=Math.min(w,Math.abs(z-G)));var G=z}x.zone=this.zones.length?x.getZone():void 0;!x.graphic&&this.group&&f&&(x.isNew=!0)}this.closestPointRangePx=w;L(this,\"afterTranslate\")};\ne.prototype.getValidPoints=function(a,c,b){var d=this.chart;return(a||this.points||[]).filter(function(a){return c&&!d.isInsidePlot(a.plotX,a.plotY,{inverted:d.inverted})?!1:!1!==a.visible&&(b||!a.isNull)})};e.prototype.getClipBox=function(){var a=this.chart,c=this.xAxis,b=this.yAxis,d=P(a.clipBox);c&&c.len!==a.plotSizeX&&(d.width=c.len);b&&b.len!==a.plotSizeY&&(d.height=b.len);return d};e.prototype.getSharedClipKey=function(){return this.sharedClipKey=(this.options.xAxis||0)+\",\"+(this.options.yAxis||\n0)};e.prototype.setClip=function(){var a=this.chart,c=this.group,b=this.markerGroup,d=a.sharedClips;a=a.renderer;var g=this.getClipBox(),e=this.getSharedClipKey(),f=d[e];f?f.animate(g):d[e]=f=a.clipRect(g);c&&c.clip(!1===this.options.clip?void 0:f);b&&b.clip()};e.prototype.animate=function(a){var c=this.chart,b=this.group,d=this.markerGroup,g=c.inverted,e=h(this.options.animation),f=[this.getSharedClipKey(),e.duration,e.easing,e.defer].join(),k=c.sharedClips[f],m=c.sharedClips[f+\"m\"];if(a&&b)e=this.getClipBox(),\nk?k.attr(\"height\",e.height):(e.width=0,g&&(e.x=c.plotHeight),k=c.renderer.clipRect(e),c.sharedClips[f]=k,m=c.renderer.clipRect({x:g?(c.plotSizeX||0)+99:-99,y:g?-c.plotLeft:-c.plotTop,width:99,height:g?c.chartWidth:c.chartHeight}),c.sharedClips[f+\"m\"]=m),b.clip(k),d&&d.clip(m);else if(k&&!k.hasClass(\"highcharts-animating\")){c=this.getClipBox();var n=e.step;d&&d.element.childNodes.length&&(e.step=function(a,c){n&&n.apply(c,arguments);m&&m.element&&m.attr(c.prop,\"width\"===c.prop?a+99:a)});k.addClass(\"highcharts-animating\").animate(c,\ne)}};e.prototype.afterAnimate=function(){var a=this;this.setClip();I(this.chart.sharedClips,function(c,b,d){c&&!a.chart.container.querySelector('[clip-path=\"url(#'.concat(c.id,')\"]'))&&(c.destroy(),delete d[b])});this.finishedAnimating=!0;L(this,\"afterAnimate\")};e.prototype.drawPoints=function(){var a=this.points,c=this.chart,b=this.options.marker,d=this[this.specialGroup]||this.markerGroup,g=this.xAxis,e=H(b.enabled,!g||g.isRadial?!0:null,this.closestPointRangePx>=b.enabledThreshold*b.radius),f,\nk;if(!1!==b.enabled||this._hasPointMarkers)for(f=0;fD.max;a.resetZones&&0===l&&(l=void 0)});this.clips=g}else a.visible&&(e&&e.show(),f&&f.show())};e.prototype.invertGroups=\nfunction(a){function c(){[\"group\",\"markerGroup\"].forEach(function(c){b[c]&&(d.renderer.isVML&&b[c].attr({width:b.yAxis.len,height:b.xAxis.len}),b[c].width=b.yAxis.len,b[c].height=b.xAxis.len,b[c].invert(b.isRadialSeries?!1:a))})}var b=this,d=b.chart;b.xAxis&&(b.eventsToUnbind.push(w(d,\"resize\",c)),c(),b.invertGroups=c)};e.prototype.plotGroup=function(a,c,b,d,e){var f=this[a],k=!f;b={visibility:b,zIndex:d||.1};\"undefined\"===typeof this.opacity||this.chart.styledMode||\"inactive\"===this.state||(b.opacity=\nthis.opacity);k&&(this[a]=f=this.chart.renderer.g().add(e));f.addClass(\"highcharts-\"+c+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(g(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(f.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);f.attr(b)[k?\"attr\":\"animate\"](this.getPlotBox());return f};e.prototype.getPlotBox=function(){var a=this.chart,c=this.xAxis,b=this.yAxis;a.inverted&&(c=b,b=this.xAxis);return{translateX:c?c.left:\na.plotLeft,translateY:b?b.top:a.plotTop,scaleX:1,scaleY:1}};e.prototype.removeEvents=function(a){a||K(this);this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind.length=0)};e.prototype.render=function(){var a=this,c=a.chart,b=a.options,d=h(b.animation),g=a.visible?\"inherit\":\"hidden\",e=b.zIndex,f=a.hasRendered,k=c.seriesGroup,m=c.inverted;c=!a.finishedAnimating&&c.renderer.isSVG?d.duration:0;L(this,\"render\");var n=a.plotGroup(\"group\",\"series\",g,e,k);a.markerGroup=\na.plotGroup(\"markerGroup\",\"markers\",g,e,k);!1!==b.clip&&a.setClip();a.animate&&c&&a.animate(!0);n.inverted=H(a.invertible,a.isCartesian)?m:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.visible&&a.drawPoints();a.drawDataLabels&&a.drawDataLabels();a.redrawPoints&&a.redrawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(m);a.animate&&c&&a.animate();f||(c&&d.defer&&(c+=d.defer),a.animationTimeout=O(function(){a.afterAnimate()},c||0));a.isDirty=!1;a.hasRendered=\n!0;L(a,\"afterRender\")};e.prototype.redraw=function(){var a=this.chart,c=this.isDirty||this.isDirtyData,b=this.group,d=this.xAxis,g=this.yAxis;b&&(a.inverted&&b.attr({width:a.plotWidth,height:a.plotHeight}),b.animate({translateX:H(d&&d.left,a.plotLeft),translateY:H(g&&g.top,a.plotTop)}));this.translate();this.render();c&&delete this.kdTree};e.prototype.searchPoint=function(a,c){var b=this.xAxis,d=this.yAxis,g=this.chart.inverted;return this.searchKDTree({clientX:g?b.len-a.chartY+b.pos:a.chartX-b.pos,\nplotY:g?d.len-a.chartX+d.pos:a.chartY-d.pos},c,a)};e.prototype.buildKDTree=function(a){function c(a,d,g){var e=a&&a.length;if(e){var f=b.kdAxisArray[d%g];a.sort(function(a,c){return a[f]-c[f]});e=Math.floor(e/2);return{point:a[e],left:c(a.slice(0,e),d+1,g),right:c(a.slice(e+1),d+1,g)}}}this.buildingKdTree=!0;var b=this,d=-1p?\"left\":\"right\";q=0>p?\"right\":\"left\";c[r]&&(r=d(a,c[r],b+1,m),l=r[h]q;)r--;this.updateParallelArrays(l,\"splice\",r,0,0);this.updateParallelArrays(l,r);h&&l.name&&(h[q]=l.name);m.splice(r,0,a);if(p||this.processedData)this.data.splice(r,0,null),this.processData();\"point\"===e.legendType&&this.generatePoints();\nb&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(l,\"shift\"),m.shift()));!1!==g&&L(this,\"addPoint\",{point:l});this.isDirtyData=this.isDirty=!0;c&&k.redraw(d)};e.prototype.removePoint=function(a,c,b){var g=this,e=g.data,f=e[a],k=g.points,h=g.chart,m=function(){k&&k.length===e.length&&k.splice(a,1);e.splice(a,1);g.options.data.splice(a,1);g.updateParallelArrays(f||{series:g},\"splice\",a,1);f&&f.destroy();g.isDirty=!0;g.isDirtyData=!0;c&&h.redraw()};d(b,h);c=H(c,!0);f?f.firePointEvent(\"remove\",\nnull,m):m()};e.prototype.remove=function(a,c,b,d){function g(){e.destroy(d);f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();H(a,!0)&&f.redraw(c)}var e=this,f=e.chart;!1!==b?L(e,\"remove\",null,g):g()};e.prototype.update=function(a,c){a=k(a,this.userOptions);L(this,\"update\",{options:a});var b=this,d=b.chart,g=b.userOptions,e=b.initialType||b.type,f=d.options.plotOptions,h=J[e].prototype,m=b.finishedAnimating&&{animation:!1},n={},p,l=[\"eventOptions\",\"navigatorSeries\",\"baseSeries\"],q=a.type||g.type||d.options.chart.type,\nr=!(this.hasDerivedData||q&&q!==this.type||\"undefined\"!==typeof a.pointStart||\"undefined\"!==typeof a.pointInterval||\"undefined\"!==typeof a.relativeXValue||a.joinBy||a.mapData||b.hasOptionChanged(\"dataGrouping\")||b.hasOptionChanged(\"pointStart\")||b.hasOptionChanged(\"pointInterval\")||b.hasOptionChanged(\"pointIntervalUnit\")||b.hasOptionChanged(\"keys\"));q=q||e;r&&(l.push(\"data\",\"isDirtyData\",\"points\",\"processedData\",\"processedXData\",\"processedYData\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"_hasPointLabels\",\n\"clips\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==a.visible&&l.push(\"area\",\"graph\"),b.parallelArrays.forEach(function(a){l.push(a+\"Data\")}),a.data&&(a.dataSorting&&A(b.options.dataSorting,a.dataSorting),this.setData(a.data,!1)));a=P(g,m,{index:\"undefined\"===typeof g.index?b.index:g.index,pointStart:H(f&&f.series&&f.series.pointStart,g.pointStart,b.xData[0])},!r&&{data:b.options.data},a);r&&a.data&&(a.data=b.options.data);l=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\n\"transformGroup\"].concat(l);l.forEach(function(a){l[a]=b[a];delete b[a]});f=!1;if(J[q]){if(f=q!==b.type,b.remove(!1,!1,!1,!0),f)if(Object.setPrototypeOf)Object.setPrototypeOf(b,J[q].prototype);else{m=Object.hasOwnProperty.call(b,\"hcEvents\")&&b.hcEvents;for(p in h)b[p]=void 0;A(b,J[q].prototype);m?b.hcEvents=m:delete b.hcEvents}}else D(17,!0,d,{missingModuleFor:q});l.forEach(function(a){b[a]=l[a]});b.init(d,a);if(r&&this.points){var u=b.options;!1===u.visible?(n.graphic=1,n.dataLabel=1):b._hasPointLabels||\n(a=u.marker,h=u.dataLabels,!a||!1!==a.enabled&&(g.marker&&g.marker.symbol)===a.symbol||(n.graphic=1),h&&!1===h.enabled&&(n.dataLabel=1));this.points.forEach(function(a){a&&a.series&&(a.resolveColor(),Object.keys(n).length&&a.destroyElements(n),!1===u.showInLegend&&a.legendItem&&d.legend.destroyItem(a))},this)}b.initialType=e;d.linkSeries();f&&b.linkedSeries.length&&(b.isDirtyData=!0);L(this,\"afterUpdate\");H(c,!0)&&d.redraw(r?void 0:!1)};e.prototype.setName=function(a){this.name=this.options.name=\nthis.userOptions.name=a;this.chart.isDirtyLegend=!0};e.prototype.hasOptionChanged=function(a){var c=this.options[a],b=this.chart.options.plotOptions,d=this.userOptions[a];return d?c!==d:c!==H(b&&b[this.type]&&b[this.type][a],b&&b.series&&b.series[a],c)};e.prototype.onMouseOver=function(){var a=this.chart,c=a.hoverSeries;a.pointer.setHoverChartIndex();if(c&&c!==this)c.onMouseOut();this.options.events.mouseOver&&L(this,\"mouseOver\");this.setState(\"hover\");a.hoverSeries=this};e.prototype.onMouseOut=function(){var a=\nthis.options,c=this.chart,b=c.tooltip,d=c.hoverPoint;c.hoverSeries=null;if(d)d.onMouseOut();this&&a.events.mouseOut&&L(this,\"mouseOut\");!b||this.stickyTracking||b.shared&&!this.noSharedTooltip||b.hide();c.series.forEach(function(a){a.setState(\"\",!0)})};e.prototype.setState=function(a,c){var b=this,d=b.options,g=b.graph,e=d.inactiveOtherPoints,f=d.states,k=H(f[a||\"normal\"]&&f[a||\"normal\"].animation,b.chart.options.chart.animation),h=d.lineWidth,m=0,n=d.opacity;a=a||\"\";if(b.state!==a&&([b.group,b.markerGroup,\nb.dataLabelsGroup].forEach(function(c){c&&(b.state&&c.removeClass(\"highcharts-series-\"+b.state),a&&c.addClass(\"highcharts-series-\"+a))}),b.state=a,!b.chart.styledMode)){if(f[a]&&!1===f[a].enabled)return;a&&(h=f[a].lineWidth||h+(f[a].lineWidthPlus||0),n=H(f[a].opacity,n));if(g&&!g.dashstyle)for(d={\"stroke-width\":h},g.animate(d,k);b[\"zone-graph-\"+m];)b[\"zone-graph-\"+m].animate(d,k),m+=1;e||[b.group,b.markerGroup,b.dataLabelsGroup,b.labelBySeries].forEach(function(a){a&&a.animate({opacity:n},k)})}c&&\ne&&b.points&&b.setAllPointsToState(a||void 0)};e.prototype.setAllPointsToState=function(a){this.points.forEach(function(c){c.setState&&c.setState(a)})};e.prototype.setVisible=function(a,c){var b=this,d=b.chart,g=b.legendItem,e=d.options.chart.ignoreHiddenSeries,f=b.visible,k=(b.visible=a=b.options.visible=b.userOptions.visible=\"undefined\"===typeof a?!f:a)?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(function(a){if(b[a])b[a][k]()});if(d.hoverSeries===b||(d.hoverPoint&&\nd.hoverPoint.series)===b)b.onMouseOut();g&&d.legend.colorizeItem(b,a);b.isDirty=!0;b.options.stacking&&d.series.forEach(function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});b.linkedSeries.forEach(function(c){c.setVisible(a,!1)});e&&(d.isDirtyBox=!0);L(b,k);!1!==c&&d.redraw()};e.prototype.show=function(){this.setVisible(!0)};e.prototype.hide=function(){this.setVisible(!1)};e.prototype.select=function(a){this.selected=a=this.options.selected=\"undefined\"===typeof a?!this.selected:a;this.checkbox&&\n(this.checkbox.checked=a);L(this,a?\"select\":\"unselect\")};e.prototype.shouldShowTooltip=function(a,c,b){void 0===b&&(b={});b.series=this;b.visiblePlotOnly=!0;return this.chart.isInsidePlot(a,c,b)};e.defaultOptions=G;return e}();A(f.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,cropShoulder:1,directTouch:!1,drawLegendSymbol:v.drawLineMarker,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:E,requireSorting:!0,sorted:!0});B.series=f;\"\";\"\";return f});\nK(l,\"Extensions/ScrollablePlotArea.js\",[l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/Axis/Axis.js\"],l[\"Core/Chart/Chart.js\"],l[\"Core/Series/Series.js\"],l[\"Core/Renderer/RendererRegistry.js\"],l[\"Core/Utilities.js\"]],function(f,e,l,C,v,E){var G=f.stop,B=E.addEvent,y=E.createElement,t=E.defined,h=E.merge,d=E.pick;B(l,\"afterSetChartSize\",function(b){var d=this.options.chart.scrollablePlotArea,f=d&&d.minWidth;d=d&&d.minHeight;if(!this.renderer.forExport){if(f){if(this.scrollablePixelsX=f=Math.max(0,\nf-this.chartWidth)){this.scrollablePlotBox=this.renderer.scrollablePlotBox=h(this.plotBox);this.plotBox.width=this.plotWidth+=f;this.inverted?this.clipBox.height+=f:this.clipBox.width+=f;var l={1:{name:\"right\",value:f}}}}else d&&(this.scrollablePixelsY=f=Math.max(0,d-this.chartHeight),t(f)&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=h(this.plotBox),this.plotBox.height=this.plotHeight+=f,this.inverted?this.clipBox.width+=f:this.clipBox.height+=f,l={2:{name:\"bottom\",value:f}}));l&&!b.skipAxes&&\nthis.axes.forEach(function(b){l[b.side]?b.getPlotLinePath=function(){var d=l[b.side].name,f=this[d];this[d]=f-l[b.side].value;var h=e.prototype.getPlotLinePath.apply(this,arguments);this[d]=f;return h}:(b.setAxisSize(),b.setAxisTranslation())})}});B(l,\"render\",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});l.prototype.setUpScrolling=function(){var b=this,d={WebkitOverflowScrolling:\"touch\",\noverflowX:\"hidden\",overflowY:\"hidden\"};this.scrollablePixelsX&&(d.overflowX=\"auto\");this.scrollablePixelsY&&(d.overflowY=\"auto\");this.scrollingParent=y(\"div\",{className:\"highcharts-scrolling-parent\"},{position:\"relative\"},this.renderTo);this.scrollingContainer=y(\"div\",{className:\"highcharts-scrolling\"},d,this.scrollingParent);B(this.scrollingContainer,\"scroll\",function(){b.pointer&&delete b.pointer.chartPosition});this.innerContainer=y(\"div\",{className:\"highcharts-inner-container\"},null,this.scrollingContainer);\nthis.innerContainer.appendChild(this.container);this.setUpScrolling=null};l.prototype.moveFixedElements=function(){var b=this.container,d=this.fixedRenderer,e=\".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),f;this.scrollablePixelsX&&\n!this.inverted?f=\".highcharts-yaxis\":this.scrollablePixelsX&&this.inverted?f=\".highcharts-xaxis\":this.scrollablePixelsY&&!this.inverted?f=\".highcharts-xaxis\":this.scrollablePixelsY&&this.inverted&&(f=\".highcharts-yaxis\");f&&e.push(\"\"+f+\":not(.highcharts-radial-axis)\",\"\"+f+\"-labels:not(.highcharts-radial-axis-labels)\");e.forEach(function(e){[].forEach.call(b.querySelectorAll(e),function(b){(b.namespaceURI===d.SVG_NS?d.box:d.box.parentNode).appendChild(b);b.style.pointerEvents=\"auto\"})})};l.prototype.applyFixed=\nfunction(){var b=!this.fixedDiv,e=this.options.chart,f=e.scrollablePlotArea,h=v.getRendererType();b?(this.fixedDiv=y(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:(e.style&&e.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow=\"visible\",this.fixedRenderer=e=new h(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),\nthis.scrollableMask=e.path().attr({fill:this.options.chart.backgroundColor||\"#fff\",\"fill-opacity\":d(f.opacity,.85),zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),B(this,\"afterShowResetZoom\",this.moveFixedElements),B(this,\"afterApplyDrilldown\",this.moveFixedElements),B(this,\"afterLayOutTitles\",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);if(this.scrollableDirty||b)this.scrollableDirty=!1,this.moveFixedElements();e=this.chartWidth+(this.scrollablePixelsX||\n0);h=this.chartHeight+(this.scrollablePixelsY||0);G(this.container);this.container.style.width=e+\"px\";this.container.style.height=h+\"px\";this.renderer.boxWrapper.attr({width:e,height:h,viewBox:[0,0,e,h].join(\" \")});this.chartBackground.attr({width:e,height:h});this.scrollingContainer.style.height=this.chartHeight+\"px\";b&&(f.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*f.scrollPositionX),f.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*f.scrollPositionY));\nh=this.axisOffset;b=this.plotTop-h[0]-1;f=this.plotLeft-h[3]-1;e=this.plotTop+this.plotHeight+h[2]+1;h=this.plotLeft+this.plotWidth+h[1]+1;var n=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),l=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);b=this.scrollablePixelsX?[[\"M\",0,b],[\"L\",this.plotLeft-1,b],[\"L\",this.plotLeft-1,e],[\"L\",0,e],[\"Z\"],[\"M\",n,b],[\"L\",this.chartWidth,b],[\"L\",this.chartWidth,e],[\"L\",n,e],[\"Z\"]]:this.scrollablePixelsY?[[\"M\",f,0],[\"L\",f,this.plotTop-1],[\"L\",h,this.plotTop-\n1],[\"L\",h,0],[\"Z\"],[\"M\",f,l],[\"L\",f,this.chartHeight],[\"L\",h,this.chartHeight],[\"L\",h,l],[\"Z\"]]:[[\"M\",0,0]];\"adjustHeight\"!==this.redrawTrigger&&this.scrollableMask.attr({d:b})};B(e,\"afterInit\",function(){this.chart.scrollableDirty=!0});B(C,\"show\",function(){this.chart.scrollableDirty=!0});\"\"});K(l,\"Core/Axis/StackingAxis.js\",[l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/Axis/Axis.js\"],l[\"Core/Utilities.js\"]],function(f,e,l){var C=f.getDeferredAnimation,v=l.addEvent,E=l.destroyObjectProperties,\nG=l.fireEvent,B=l.isNumber,y=l.objectEach,t;(function(e){function d(){var b=this.stacking;if(b){var d=b.stacks;y(d,function(b,e){E(b);d[e]=null});b&&b.stackTotalGroup&&b.stackTotalGroup.destroy()}}function b(){this.stacking||(this.stacking=new h(this))}var f=[];e.compose=function(e){-1===f.indexOf(e)&&(f.push(e),v(e,\"init\",b),v(e,\"destroy\",d));return e};var h=function(){function b(b){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=b}b.prototype.buildStacks=function(){var b=this.axis,\nd=b.series,e=b.options.reversedStacks,f=d.length,h;if(!b.isXAxis){this.usePercentage=!1;for(h=f;h--;){var m=d[e?h:f-h-1];m.setStackedPoints();m.setGroupedPoints()}for(h=0;hl&&f.shadow));n&&(n.startX=h.xMap,n.isArea=h.isArea)})};l.prototype.getGraphPath=function(e,f,h){var d=this,b=d.options,p=[],l=[],r,n=b.step;e=e||d.points;var t=e.reversed;t&&e.reverse();(n={right:1,\ncenter:2}[n]||n&&3)&&t&&(n=4-n);e=this.getValidPoints(e,!1,!(b.connectNulls&&!f&&!h));e.forEach(function(q,t){var x=q.plotX,m=q.plotY,k=e[t-1];(q.leftCliff||k&&k.rightCliff)&&!h&&(r=!0);q.isNull&&!v(f)&&0e&&t>b?(t=Math.max(e,b),w=2*b-t):th&&w>b?(w=Math.max(h,b),t=2*b-w):w=Math.abs(b)&&.5a.closestPointRange*a.xAxis.transA;e=a.borderWidth=z(c.borderWidth,e?0:1);var f=a.xAxis,k=a.yAxis,h=c.threshold,m=a.translatedThreshold=k.getThreshold(h),l=z(c.minPointLength,5),n=a.getColumnMetrics(),q=n.width,r=a.pointXOffset=n.offset,t=a.dataMin,x=a.dataMax,w=a.barW=Math.max(q,1+2*e);b.inverted&&(m-=.5);c.pointPadding&&(w=Math.ceil(w));\nv.prototype.translate.apply(a);a.points.forEach(function(e){var g=z(e.yBottom,m),u=999+Math.abs(g),A=e.plotX||0;u=d(e.plotY,-u,k.len+u);var v=Math.min(u,g),y=Math.max(u,g)-v,D=q,B=A+r,C=w;l&&Math.abs(y)l?g-l:m-(A?l:0));p(e.options.pointWidth)&&(D=C=Math.ceil(e.options.pointWidth),B-=Math.round((D-q)/2));c.centerInCategory&&(B=a.adjustForMissingColumns(B,\nD,e,n));e.barX=B;e.pointWidth=D;e.tooltipPos=b.inverted?[d(k.len+k.pos-b.plotLeft-u,k.pos-b.plotLeft,k.len+k.pos-b.plotLeft),f.len+f.pos-b.plotTop-B-C/2,y]:[f.left-b.plotLeft+B+C/2,d(u+k.pos-b.plotTop,k.pos-b.plotTop,k.len+k.pos-b.plotTop),y];e.shapeType=a.pointClass.prototype.shapeType||\"rect\";e.shapeArgs=a.crispCol.apply(a,e.isNull?[B,m,C,0]:[B,v,C,y])})};f.prototype.drawGraph=function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")};f.prototype.pointAttribs=function(a,\nb){var c=this.options,d=this.pointAttrToOptions||{},e=d.stroke||\"borderColor\",g=d[\"stroke-width\"]||\"borderWidth\",f=a&&a.color||this.color,k=a&&a[e]||c[e]||f;d=a&&a.options.dashStyle||c.dashStyle;var h=a&&a[g]||c[g]||this[g]||0,m=z(a&&a.opacity,c.opacity,1);if(a&&this.zones.length){var l=a.getZone();f=a.options.color||l&&(l.color||a.nonZonedColor)||this.color;l&&(k=l.borderColor||k,d=l.dashStyle||d,h=l.borderWidth||h)}b&&a&&(a=w(c.states[b],a.options.states&&a.options.states[b]||{}),b=a.brightness,\nf=a.color||\"undefined\"!==typeof b&&t(f).brighten(a.brightness).get()||f,k=a[e]||k,h=a[g]||h,d=a.dashStyle||d,m=z(a.opacity,m));e={fill:f,stroke:k,\"stroke-width\":h,opacity:m};d&&(e.dashstyle=d);return e};f.prototype.drawPoints=function(){var a=this,b=this.chart,c=a.options,d=b.renderer,e=c.animationLimit||250,f;a.points.forEach(function(g){var k=g.graphic,h=!!k,m=k&&b.pointCount\"===a&&b>d||\"<\"===a&&b=\"===a&&b>=d||\"<=\"===a&&b<=d||\"==\"===a&&b==d||\"===\"===a&&b===d?!0:!1):!0}function p(){var e=this,a=e.chart,g=e.options,c=e.points,f=e.hasRendered||0,m=a.renderer,p=g.dataLabels,n,q=\np.animation;q=p.defer?C(a,q,e):{defer:0,duration:0};p=z(z(a.options.plotOptions&&a.options.plotOptions.series&&a.options.plotOptions.series.dataLabels,a.options.plotOptions&&a.options.plotOptions[e.type]&&a.options.plotOptions[e.type].dataLabels),p);B(this,\"drawDataLabels\");if(y(p)||p.enabled||e._hasPointLabels){var r=e.plotGroup(\"dataLabelsGroup\",\"data-labels\",f?\"inherit\":\"hidden\",p.zIndex||6);r.attr({opacity:+f});!f&&(f=e.dataLabelsGroup)&&(e.visible&&r.show(),f[g.animation?\"animate\":\"attr\"]({opacity:1},\nq));c.forEach(function(c){n=b(z(p,c.dlOptions||c.options&&c.options.dataLabels));n.forEach(function(b,f){var k=b.enabled&&(!c.isNull||c.dataLabelOnNull)&&l(c,b),p=c.connectors?c.connectors[f]:c.connector,n=c.dataLabels?c.dataLabels[f]:c.dataLabel,q=!n,t=d(b.distance,c.labelDistance);if(k){var u=c.getLabelConfig();var x=d(b[c.formatPrefix+\"Format\"],b.format);u=E(x)?v(x,u,a):(b[c.formatPrefix+\"Formatter\"]||b.formatter).call(u,b);x=b.style;var z=b.rotation;a.styledMode||(x.color=d(b.color,x.color,e.color,\n\"#000000\"),\"contrast\"===x.color?(c.contrastColor=m.getContrast(c.color||e.color),x.color=!E(t)&&b.inside||0>t||g.stacking?c.contrastColor:\"#000000\"):delete c.contrastColor,g.cursor&&(x.cursor=g.cursor));var w={r:b.borderRadius||0,rotation:z,padding:b.padding,zIndex:1};a.styledMode||(w.fill=b.backgroundColor,w.stroke=b.borderColor,w[\"stroke-width\"]=b.borderWidth);h(w,function(a,b){\"undefined\"===typeof a&&delete w[b]})}!n||k&&E(u)&&!!n.div===!!b.useHTML&&(n.rotation&&b.rotation||n.rotation===b.rotation)||\n(q=!0,c.dataLabel=n=c.dataLabel&&c.dataLabel.destroy(),c.dataLabels&&(1===c.dataLabels.length?delete c.dataLabels:delete c.dataLabels[f]),f||delete c.dataLabel,p&&(c.connector=c.connector.destroy(),c.connectors&&(1===c.connectors.length?delete c.connectors:delete c.connectors[f])));k&&E(u)?(n?w.text=u:(c.dataLabels=c.dataLabels||[],n=c.dataLabels[f]=z?m.text(u,0,0,b.useHTML).addClass(\"highcharts-data-label\"):m.label(u,0,0,b.shape,null,null,b.useHTML,null,\"data-label\"),f||(c.dataLabel=n),n.addClass(\" highcharts-data-label-color-\"+\nc.colorIndex+\" \"+(b.className||\"\")+(b.useHTML?\" highcharts-tracker\":\"\"))),n.options=b,n.attr(w),a.styledMode||n.css(x).shadow(b.shadow),n.added||n.add(r),b.textPath&&!b.useHTML&&(n.setTextPath(c.getDataLabelPath&&c.getDataLabelPath(n)||c.graphic,b.textPath),c.dataLabelPath&&!b.textPath.enabled&&(c.dataLabelPath=c.dataLabelPath.destroy())),e.alignDataLabel(c,n,b,null,q)):n&&n.hide()})})}B(this,\"afterDrawDataLabels\")}function q(b,a,d,c,e,f){var g=this.chart,k=a.align,h=a.verticalAlign,m=b.box?0:b.padding||\n0,l=a.x;l=void 0===l?0:l;var n=a.y;n=void 0===n?0:n;var p=(d.x||0)+m;if(0>p){\"right\"===k&&0<=l?(a.align=\"left\",a.inside=!0):l-=p;var q=!0}p=(d.x||0)+c.width-m;p>g.plotWidth&&(\"left\"===k&&0>=l?(a.align=\"right\",a.inside=!0):l+=g.plotWidth-p,q=!0);p=d.y+m;0>p&&(\"bottom\"===h&&0<=n?(a.verticalAlign=\"top\",a.inside=!0):n-=p,q=!0);p=(d.y||0)+c.height-m;p>g.plotHeight&&(\"top\"===h&&0>=n?(a.verticalAlign=\"bottom\",a.inside=!0):n+=g.plotHeight-p,q=!0);q&&(a.x=l,a.y=n,b.placed=!f,b.align(a,void 0,e));return q}\nfunction z(b,a){var d=[],c;if(y(b)&&!y(a))d=b.map(function(b){return t(b,a)});else if(y(a)&&!y(b))d=a.map(function(a){return t(b,a)});else if(y(b)||y(a))for(c=Math.max(b.length,a.length);c--;)d[c]=t(b[c],a[c]);else d=t(b,a);return d}function x(b,a,d,c,e){var g=this.chart,f=g.inverted,h=this.xAxis,k=h.reversed,m=f?a.height/2:a.width/2;b=(b=b.pointWidth)?b/2:0;a.startXPos=f?e.x:k?-m-b:h.width-m+b;a.startYPos=f?k?this.yAxis.height-m+b:-m-b:e.y;c?\"hidden\"===a.visibility&&(a.show(),a.attr({opacity:0}).animate({opacity:1})):\na.attr({opacity:1}).animate({opacity:0},void 0,a.hide);g.hasRendered&&(d&&a.attr({x:a.startXPos,y:a.startYPos}),a.placed=!0)}var m=[];e.compose=function(b){if(-1===m.indexOf(b)){var a=b.prototype;m.push(b);a.alignDataLabel=f;a.drawDataLabels=p;a.justifyDataLabel=q;a.setDataLabelStartPos=x}}})(p||(p={}));\"\";return p});K(l,\"Series/Column/ColumnDataLabel.js\",[l[\"Core/Series/DataLabel.js\"],l[\"Core/Series/SeriesRegistry.js\"],l[\"Core/Utilities.js\"]],function(f,e,l){var C=e.series,v=l.merge,E=l.pick,G;(function(e){function l(e,\nd,b,f,l){var h=this.chart.inverted,n=e.series,p=(n.xAxis?n.xAxis.len:this.chart.plotSizeX)||0;n=(n.yAxis?n.yAxis.len:this.chart.plotSizeY)||0;var q=e.dlBox||e.shapeArgs,t=E(e.below,e.plotY>E(this.translatedThreshold,n)),x=E(b.inside,!!this.options.stacking);q&&(f=v(q),0>f.y&&(f.height+=f.y,f.y=0),q=f.y+f.height-n,0\\u25cf {series.name}
',\npointFormat:\"x: {point.x}
y: {point.y}
\"}});return f}(E);G(e.prototype,{drawTracker:v.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"],takeOrdinalPosition:!1});C(e,\"afterTranslate\",function(){this.applyJitter()});f.registerSeriesType(\"scatter\",e);\"\";return e});K(l,\"Series/CenteredUtilities.js\",[l[\"Core/Globals.js\"],l[\"Core/Series/Series.js\"],l[\"Core/Utilities.js\"]],function(f,e,l){var C=f.deg2rad,v=l.fireEvent,\nE=l.isNumber,G=l.pick,B=l.relativeLength,y;(function(f){f.getCenter=function(){var f=this.options,d=this.chart,b=2*(f.slicedOffset||0),l=d.plotWidth-2*b,q=d.plotHeight-2*b,r=f.center,n=Math.min(l,q),t=f.thickness,w=f.size,z=f.innerSize||0;\"string\"===typeof w&&(w=parseFloat(w));\"string\"===typeof z&&(z=parseFloat(z));f=[G(r[0],\"50%\"),G(r[1],\"50%\"),G(w&&0>w?void 0:f.size,\"100%\"),G(z&&0>z?void 0:f.innerSize||0,\"0%\")];!d.angular||this instanceof e||(f[3]=0);for(r=0;4>r;++r)w=f[r],d=2>r||2===r&&/%$/.test(w),\nf[r]=B(w,[l,q,n,f[2]][r])+(d?b:0);f[3]>f[2]&&(f[3]=f[2]);E(t)&&2*te&&360>d-e?d:e+360;return{start:C*(e+-90),end:C*(d+-90)}}})(y||(y={}));\"\";return y});K(l,\"Series/Pie/PiePoint.js\",[l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/Series/Point.js\"],l[\"Core/Utilities.js\"]],function(f,e,l){var C=this&&this.__extends||function(){var e=function(d,b){e=Object.setPrototypeOf||\n{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var e in d)d.hasOwnProperty(e)&&(b[e]=d[e])};return e(d,b)};return function(d,b){function f(){this.constructor=d}e(d,b);d.prototype=null===b?Object.create(b):(f.prototype=b.prototype,new f)}}(),v=f.setAnimation,E=l.addEvent,G=l.defined;f=l.extend;var B=l.isNumber,y=l.pick,t=l.relativeLength;e=function(e){function d(){var b=null!==e&&e.apply(this,arguments)||this;b.labelDistance=void 0;b.options=void 0;b.series=void 0;\nreturn b}C(d,e);d.prototype.getConnectorPath=function(){var b=this.labelPosition,d=this.series.options.dataLabels,e=this.connectorShapes,f=d.connectorShape;e[f]&&(f=e[f]);return f.call(this,{x:b.final.x,y:b.final.y,alignment:b.alignment},b.connectorPosition,d)};d.prototype.getTranslate=function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}};d.prototype.haloPath=function(b){var d=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(d.x,\nd.y,d.r+b,d.r+b,{innerR:d.r-1,start:d.start,end:d.end})};d.prototype.init=function(){var b=this;e.prototype.init.apply(this,arguments);this.name=y(this.name,\"Slice\");var d=function(d){b.slice(\"select\"===d.type)};E(this,\"select\",d);E(this,\"unselect\",d);return this};d.prototype.isValid=function(){return B(this.y)&&0<=this.y};d.prototype.setVisible=function(b,d){var e=this,f=this.series,h=f.chart,l=f.options.ignoreHiddenPoint;d=y(d,l);b!==this.visible&&(this.visible=this.options.visible=b=\"undefined\"===\ntypeof b?!this.visible:b,f.options.data[f.data.indexOf(this)]=this.options,[\"graphic\",\"dataLabel\",\"connector\",\"shadowGroup\"].forEach(function(d){if(e[d])e[d][b?\"show\":\"hide\"](b)}),this.legendItem&&h.legend.colorizeItem(this,b),b||\"hover\"!==this.state||this.setState(\"\"),l&&(f.isDirty=!0),d&&h.redraw())};d.prototype.slice=function(b,d,e){var f=this.series;v(e,f.chart);y(d,!0);this.sliced=this.options.sliced=G(b)?b:!this.sliced;f.options.data[f.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate());\nthis.shadowGroup&&this.shadowGroup.animate(this.getTranslate())};return d}(e);f(e.prototype,{connectorShapes:{fixedOffset:function(e,d,b){var f=d.breakAt;d=d.touchingSliceAt;return[[\"M\",e.x,e.y],b.softConnector?[\"C\",e.x+(\"left\"===e.alignment?-5:5),e.y,2*f.x-d.x,2*f.y-d.y,f.x,f.y]:[\"L\",f.x,f.y],[\"L\",d.x,d.y]]},straight:function(e,d){d=d.touchingSliceAt;return[[\"M\",e.x,e.y],[\"L\",d.x,d.y]]},crookedLine:function(e,d,b){d=d.touchingSliceAt;var f=this.series,h=f.center[0],l=f.chart.plotWidth,n=f.chart.plotLeft;\nf=e.alignment;var v=this.shapeArgs.r;b=t(b.crookDistance,1);l=\"left\"===f?h+v+(l+n-h-v)*(1-b):n+(h-v)*b;b=[\"L\",l,e.y];h=!0;if(\"left\"===f?l>e.x||ld.x)h=!1;e=[[\"M\",e.x,e.y]];h&&e.push(b);e.push([\"L\",d.x,d.y]);return e}}});return e});K(l,\"Series/Pie/PieSeries.js\",[l[\"Series/CenteredUtilities.js\"],l[\"Series/Column/ColumnSeries.js\"],l[\"Core/Globals.js\"],l[\"Core/Legend/LegendSymbol.js\"],l[\"Series/Pie/PiePoint.js\"],l[\"Core/Series/Series.js\"],l[\"Core/Series/SeriesRegistry.js\"],l[\"Core/Renderer/SVG/Symbols.js\"],\nl[\"Core/Utilities.js\"]],function(f,e,l,C,v,E,G,B,y){var t=this&&this.__extends||function(){var b=function(d,e){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var e in d)d.hasOwnProperty(e)&&(b[e]=d[e])};return b(d,e)};return function(d,e){function f(){this.constructor=d}b(d,e);d.prototype=null===e?Object.create(e):(f.prototype=e.prototype,new f)}}(),h=f.getStartAndEndRadians;l=l.noop;var d=y.clamp,b=y.extend,p=y.fireEvent,q=y.merge,r=y.pick,\nn=y.relativeLength;y=function(b){function e(){var d=null!==b&&b.apply(this,arguments)||this;d.center=void 0;d.data=void 0;d.maxLabelDistance=void 0;d.options=void 0;d.points=void 0;return d}t(e,b);e.prototype.animate=function(b){var d=this,e=d.points,f=d.startAngleRad;b||e.forEach(function(a){var b=a.graphic,c=a.shapeArgs;b&&c&&(b.attr({r:r(a.startR,d.center&&d.center[3]/2),start:f,end:f}),b.animate({r:c.r,start:c.start,end:c.end},d.options.animation))})};e.prototype.drawEmpty=function(){var b=this.startAngleRad,\nd=this.endAngleRad,e=this.options;if(0===this.total&&this.center){var f=this.center[0];var a=this.center[1];this.graph||(this.graph=this.chart.renderer.arc(f,a,this.center[1]/2,0,b,d).addClass(\"highcharts-empty-series\").add(this.group));this.graph.attr({d:B.arc(f,a,this.center[2]/2,0,{start:b,end:d,innerR:this.center[3]/2})});this.chart.styledMode||this.graph.attr({\"stroke-width\":e.borderWidth,fill:e.fillColor||\"none\",stroke:e.color||\"#cccccc\"})}else this.graph&&(this.graph=this.graph.destroy())};\ne.prototype.drawPoints=function(){var b=this.chart.renderer;this.points.forEach(function(d){d.graphic&&d.hasNewShapeType()&&(d.graphic=d.graphic.destroy());d.graphic||(d.graphic=b[d.shapeType](d.shapeArgs).add(d.series.group),d.delayedRendering=!0)})};e.prototype.generatePoints=function(){b.prototype.generatePoints.call(this);this.updateTotals()};e.prototype.getX=function(b,e,f){var k=this.center,a=this.radii?this.radii[f.index]||0:k[2]/2;b=Math.asin(d((b-k[1])/(a+f.labelDistance),-1,1));return k[0]+\n(e?-1:1)*Math.cos(b)*(a+f.labelDistance)+(01.5*Math.PI?y-=2*Math.PI:y<-Math.PI/2&&(y+=2*Math.PI);w.slicedTranslation={translateX:Math.round(Math.cos(y)*e),translateY:Math.round(Math.sin(y)*\ne)};B=Math.cos(y)*b[2]/2;var C=Math.sin(y)*b[2]/2;w.tooltipPos=[b[0]+.7*B,b[1]+.7*C];w.half=y<-Math.PI/2||y>Math.PI/2?1:0;w.angle=y;z=Math.min(f,w.labelDistance/5);w.labelPosition={natural:{x:b[0]+B+Math.cos(y)*w.labelDistance,y:b[1]+C+Math.sin(y)*w.labelDistance},\"final\":{},alignment:0>w.labelDistance?\"center\":w.half?\"right\":\"left\",connectorPosition:{breakAt:{x:b[0]+B+Math.cos(y)*z,y:b[1]+C+Math.sin(y)*z},touchingSliceAt:{x:b[0]+B,y:b[1]+C}}}}p(this,\"afterTranslate\")};e.prototype.updateTotals=function(){var b=\nthis.points,d=b.length,e=this.options.ignoreHiddenPoint,f,a=0;for(f=0;fq&&(a.dataLabel.css({width:Math.round(.7*q)+\"px\"}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),v.forEach(function(d,f){var k=d.length,m=[],q;if(k){e.sortByAngle(d,f-.5);if(0l-c&&0===f&&(u=Math.round(N+P-l+c),w[1]=Math.max(u,w[1])),0>V-T/2?w[0]=Math.max(Math.round(-V+T/2),w[0]):V+T/2>n&&(w[2]=Math.max(Math.round(V+T/2-n),w[2])),K.sideOverflow=u)}}}),0===y(w)||this.verifyDataLabelOverflow(w))&&(this.placeDataLabels(),this.points.forEach(function(c){Q=d(g,c.options.dataLabels);if(E=b(Q.connectorWidth,1)){var f;J=c.connector;if((K=c.dataLabel)&&K._pos&&c.visible&&0d.bottom-2?e:a,d.half,d)},justify:function(b,d,a){return a[0]+(b.half?-1:1)*(d+b.labelDistance)},alignToPlotEdges:function(b,\nd,a,e){b=b.getBBox().width;return d?b+e:a-b-e},alignToConnectors:function(b,d,a,e){var c=0,f;b.forEach(function(a){f=a.dataLabel.getBBox().width;f>c&&(c=f)});return d?c+e:a-c-e}};e.compose=function(b){f.compose(B);-1===v.indexOf(b)&&(v.push(b),b=b.prototype,b.dataLabelPositioners=x,b.alignDataLabel=E,b.drawDataLabels=l,b.placeDataLabels=q,b.verifyDataLabelOverflow=r)}})(q||(q={}));return q});K(l,\"Extensions/OverlappingDataLabels.js\",[l[\"Core/Chart/Chart.js\"],l[\"Core/Utilities.js\"]],function(f,e){function l(e,\nf){var d=!1;if(e){var b=e.newOpacity;e.oldOpacity!==b&&(e.alignAttr&&e.placed?(e[b?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),d=!0,e.alignAttr.opacity=b,e[e.isOld?\"animate\":\"attr\"](e.alignAttr,null,function(){f.styledMode||e.css({pointerEvents:b?\"auto\":\"none\"})}),v(f,\"afterHideOverlappingLabel\")):e.attr({opacity:b}));e.isOld=!0}return d}var C=e.addEvent,v=e.fireEvent,E=e.isArray,G=e.isNumber,B=e.objectEach,y=e.pick;C(f,\"render\",function(){var e=this,f=[];(this.labelCollectors||[]).forEach(function(d){f=\nf.concat(d())});(this.yAxis||[]).forEach(function(d){d.stacking&&d.options.stackLabels&&!d.options.stackLabels.allowOverlap&&B(d.stacking.stacks,function(b){B(b,function(b){b.label&&f.push(b.label)})})});(this.series||[]).forEach(function(d){var b=d.options.dataLabels;d.visible&&(!1!==b.enabled||d._hasPointLabels)&&(b=function(b){return b.forEach(function(b){b.visible&&(E(b.dataLabels)?b.dataLabels:b.dataLabel?[b.dataLabel]:[]).forEach(function(d){var h=d.options;d.labelrank=y(h.labelrank,b.labelrank,\nb.shapeArgs&&b.shapeArgs.height);h.allowOverlap?(d.oldOpacity=d.opacity,d.newOpacity=1,l(d,e)):f.push(d)})})},b(d.nodes||[]),b(d.points))});this.hideOverlappingLabels(f)});f.prototype.hideOverlappingLabels=function(e){var f=this,d=e.length,b=f.renderer,p,q,r,n=!1;var t=function(d){var e,f=d.box?0:d.padding||0,a=e=0,g;if(d&&(!d.alignAttr||d.placed)){var c=d.alignAttr||{x:d.attr(\"x\"),y:d.attr(\"y\")};var h=d.parentGroup;d.width||(e=d.getBBox(),d.width=e.width,d.height=e.height,e=b.fontMetrics(null,d.element).h);\nvar l=d.width-2*f;(g={left:\"0\",center:\"0.5\",right:\"1\"}[d.alignValue])?a=+g*l:G(d.x)&&Math.round(d.x)!==d.translateX&&(a=d.x-d.translateX);return{x:c.x+(h.translateX||0)+f-(a||0),y:c.y+(h.translateY||0)+f-e,width:d.width-2*f,height:d.height-2*f}}};for(q=0;q=w.x+w.width||z.x+z.width<=w.x||z.y>=w.y+w.height||z.y+z.height<=w.y||((t.labelrank=B(e.minWidth,0)&&this.chartHeight>=B(e.minHeight,0)}).call(this)&&d.push(b._id)};b.prototype.setResponsive=function(b,d){var e=this,f=this.options.responsive,h=this.currentResponsive,n=[];!d&&f&&f.rules&&f.rules.forEach(function(b){\"undefined\"===typeof b._id&&(b._id=t());e.matchResponsiveRule(b,\nn)},this);d=E.apply(void 0,n.map(function(b){return l((f||{}).rules||[],function(d){return d._id===b})}).map(function(b){return b&&b.chartOptions}));d.isResponsiveOptions=!0;n=n.toString()||void 0;n!==(h&&h.ruleIds)&&(h&&this.update(h.undoOptions,b,!0),n?(h=this.currentOptions(d),h.isResponsiveOptions=!0,this.currentResponsive={ruleIds:n,mergedOptions:d,undoOptions:h},this.update(d,b,!0)):this.currentResponsive=void 0)};return b}()})(h||(h={}));\"\";\"\";return h});K(l,\"masters/highcharts.src.js\",[l[\"Core/Globals.js\"],\nl[\"Core/Utilities.js\"],l[\"Core/DefaultOptions.js\"],l[\"Core/Animation/Fx.js\"],l[\"Core/Animation/AnimationUtilities.js\"],l[\"Core/Renderer/HTML/AST.js\"],l[\"Core/FormatUtilities.js\"],l[\"Core/Renderer/RendererUtilities.js\"],l[\"Core/Renderer/SVG/SVGElement.js\"],l[\"Core/Renderer/SVG/SVGRenderer.js\"],l[\"Core/Renderer/HTML/HTMLElement.js\"],l[\"Core/Renderer/HTML/HTMLRenderer.js\"],l[\"Core/Axis/Axis.js\"],l[\"Core/Axis/DateTimeAxis.js\"],l[\"Core/Axis/LogarithmicAxis.js\"],l[\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\"],\nl[\"Core/Axis/Tick.js\"],l[\"Core/Tooltip.js\"],l[\"Core/Series/Point.js\"],l[\"Core/Pointer.js\"],l[\"Core/MSPointer.js\"],l[\"Core/Legend/Legend.js\"],l[\"Core/Chart/Chart.js\"],l[\"Core/Series/Series.js\"],l[\"Core/Series/SeriesRegistry.js\"],l[\"Series/Column/ColumnSeries.js\"],l[\"Series/Column/ColumnDataLabel.js\"],l[\"Series/Pie/PieSeries.js\"],l[\"Series/Pie/PieDataLabel.js\"],l[\"Core/Series/DataLabel.js\"],l[\"Core/Responsive.js\"],l[\"Core/Color/Color.js\"],l[\"Core/Time.js\"]],function(f,e,l,C,v,E,G,B,y,t,h,d,b,p,q,r,\nn,J,w,z,x,m,k,a,g,c,D,A,u,K,S,R,M){f.animate=v.animate;f.animObject=v.animObject;f.getDeferredAnimation=v.getDeferredAnimation;f.setAnimation=v.setAnimation;f.stop=v.stop;f.timers=C.timers;f.AST=E;f.Axis=b;f.Chart=k;f.chart=k.chart;f.Fx=C;f.Legend=m;f.PlotLineOrBand=r;f.Point=w;f.Pointer=x.isRequired()?x:z;f.Series=a;f.SVGElement=y;f.SVGRenderer=t;f.Tick=n;f.Time=M;f.Tooltip=J;f.Color=R;f.color=R.parse;d.compose(t);h.compose(y);f.defaultOptions=l.defaultOptions;f.getOptions=l.getOptions;f.time=l.defaultTime;\nf.setOptions=l.setOptions;f.dateFormat=G.dateFormat;f.format=G.format;f.numberFormat=G.numberFormat;f.addEvent=e.addEvent;f.arrayMax=e.arrayMax;f.arrayMin=e.arrayMin;f.attr=e.attr;f.clearTimeout=e.clearTimeout;f.correctFloat=e.correctFloat;f.createElement=e.createElement;f.css=e.css;f.defined=e.defined;f.destroyObjectProperties=e.destroyObjectProperties;f.discardElement=e.discardElement;f.distribute=B.distribute;f.erase=e.erase;f.error=e.error;f.extend=e.extend;f.extendClass=e.extendClass;f.find=\ne.find;f.fireEvent=e.fireEvent;f.getMagnitude=e.getMagnitude;f.getStyle=e.getStyle;f.inArray=e.inArray;f.isArray=e.isArray;f.isClass=e.isClass;f.isDOMElement=e.isDOMElement;f.isFunction=e.isFunction;f.isNumber=e.isNumber;f.isObject=e.isObject;f.isString=e.isString;f.keys=e.keys;f.merge=e.merge;f.normalizeTickInterval=e.normalizeTickInterval;f.objectEach=e.objectEach;f.offset=e.offset;f.pad=e.pad;f.pick=e.pick;f.pInt=e.pInt;f.relativeLength=e.relativeLength;f.removeEvent=e.removeEvent;f.seriesType=\ng.seriesType;f.splat=e.splat;f.stableSort=e.stableSort;f.syncTimeout=e.syncTimeout;f.timeUnits=e.timeUnits;f.uniqueKey=e.uniqueKey;f.useSerialIds=e.useSerialIds;f.wrap=e.wrap;D.compose(c);K.compose(a);p.compose(b);q.compose(b);u.compose(A);r.compose(b);S.compose(k);return f});l[\"masters/highcharts.src.js\"]._modules=l;return l[\"masters/highcharts.src.js\"]});\n","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n Boost module\n\n (c) 2010-2021 Highsoft AS\n Author: Torstein Honsi\n\n License: www.highcharts.com/license\n\n*/\n(function(b){\"object\"===typeof module&&module.exports?(b[\"default\"]=b,module.exports=b):\"function\"===typeof define&&define.amd?define(\"highcharts/modules/boost\",[\"highcharts\"],function(t){b(t);b.Highcharts=t;return b}):b(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(b){function t(b,y,A,m){b.hasOwnProperty(y)||(b[y]=m.apply(null,A),\"function\"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:y,module:b[y]}})))}b=b?b._modules:{};t(b,\"Extensions/Boost/Boostables.js\",\n[],function(){return\"area areaspline arearange column columnrange bar line scatter heatmap bubble treemap\".split(\" \")});t(b,\"Extensions/Boost/BoostableMap.js\",[b[\"Extensions/Boost/Boostables.js\"]],function(b){var n={};b.forEach(function(b){n[b]=1});return n});t(b,\"Extensions/Boost/WGLShader.js\",[b[\"Core/Utilities.js\"]],function(b){var n=b.clamp,A=b.error,m=b.pick;return function(d){function b(){c.length&&A(\"[highcharts boost] shader error - \"+c.join(\"\\n\"))}function y(a,f){var k=d.createShader(\"vertex\"===\nf?d.VERTEX_SHADER:d.FRAGMENT_SHADER);d.shaderSource(k,a);d.compileShader(k);return d.getShaderParameter(k,d.COMPILE_STATUS)?k:(c.push(\"when compiling \"+f+\" shader:\\n\"+d.getShaderInfoLog(k)),!1)}function q(){function k(a){return d.getUniformLocation(h,a)}var p=y(\"#version 100\\n#define LN10 2.302585092994046\\nprecision highp float;\\nattribute vec4 aVertexPosition;\\nattribute vec4 aColor;\\nvarying highp vec2 position;\\nvarying highp vec4 vColor;\\nuniform mat4 uPMatrix;\\nuniform float pSize;\\nuniform float translatedThreshold;\\nuniform bool hasThreshold;\\nuniform bool skipTranslation;\\nuniform float xAxisTrans;\\nuniform float xAxisMin;\\nuniform float xAxisMinPad;\\nuniform float xAxisPointRange;\\nuniform float xAxisLen;\\nuniform bool xAxisPostTranslate;\\nuniform float xAxisOrdinalSlope;\\nuniform float xAxisOrdinalOffset;\\nuniform float xAxisPos;\\nuniform bool xAxisCVSCoord;\\nuniform bool xAxisIsLog;\\nuniform bool xAxisReversed;\\nuniform float yAxisTrans;\\nuniform float yAxisMin;\\nuniform float yAxisMinPad;\\nuniform float yAxisPointRange;\\nuniform float yAxisLen;\\nuniform bool yAxisPostTranslate;\\nuniform float yAxisOrdinalSlope;\\nuniform float yAxisOrdinalOffset;\\nuniform float yAxisPos;\\nuniform bool yAxisCVSCoord;\\nuniform bool yAxisIsLog;\\nuniform bool yAxisReversed;\\nuniform bool isBubble;\\nuniform bool bubbleSizeByArea;\\nuniform float bubbleZMin;\\nuniform float bubbleZMax;\\nuniform float bubbleZThreshold;\\nuniform float bubbleMinSize;\\nuniform float bubbleMaxSize;\\nuniform bool bubbleSizeAbs;\\nuniform bool isInverted;\\nfloat bubbleRadius(){\\nfloat value = aVertexPosition.w;\\nfloat zMax = bubbleZMax;\\nfloat zMin = bubbleZMin;\\nfloat radius = 0.0;\\nfloat pos = 0.0;\\nfloat zRange = zMax - zMin;\\nif (bubbleSizeAbs){\\nvalue = value - bubbleZThreshold;\\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\\nzMin = 0.0;\\n}\\nif (value < zMin){\\nradius = bubbleZMin / 2.0 - 1.0;\\n} else {\\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\\nif (bubbleSizeByArea && pos > 0.0){\\npos = sqrt(pos);\\n}\\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\\n}\\nreturn radius * 2.0;\\n}\\nfloat translate(float val,\\nfloat pointPlacement,\\nfloat localA,\\nfloat localMin,\\nfloat minPixelPadding,\\nfloat pointRange,\\nfloat len,\\nbool cvsCoord,\\nbool isLog,\\nbool reversed\\n){\\nfloat sign = 1.0;\\nfloat cvsOffset = 0.0;\\nif (cvsCoord) {\\nsign *= -1.0;\\ncvsOffset = len;\\n}\\nif (isLog) {\\nval = log(val) / LN10;\\n}\\nif (reversed) {\\nsign *= -1.0;\\ncvsOffset -= sign * len;\\n}\\nreturn sign * (val - localMin) * localA + cvsOffset + \\n(sign * minPixelPadding);\\n}\\nfloat xToPixels(float value) {\\nif (skipTranslation){\\nreturn value;// + xAxisPos;\\n}\\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\\n}\\nfloat yToPixels(float value, float checkTreshold) {\\nfloat v;\\nif (skipTranslation){\\nv = value;// + yAxisPos;\\n} else {\\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\\nif (v > yAxisLen) {\\nv = yAxisLen;\\n}\\n}\\nif (checkTreshold > 0.0 && hasThreshold) {\\nv = min(v, translatedThreshold);\\n}\\nreturn v;\\n}\\nvoid main(void) {\\nif (isBubble){\\ngl_PointSize = bubbleRadius();\\n} else {\\ngl_PointSize = pSize;\\n}\\nvColor = aColor;\\nif (skipTranslation && isInverted) {\\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\\n} else if (isInverted) {\\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\\n} else {\\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\\n}\\n}\",\n\"vertex\"),l=y(\"precision highp float;\\nuniform vec4 fillColor;\\nvarying highp vec2 position;\\nvarying highp vec4 vColor;\\nuniform sampler2D uSampler;\\nuniform bool isCircle;\\nuniform bool hasColor;\\nvoid main(void) {\\nvec4 col = fillColor;\\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\\nif (hasColor) {\\ncol = vColor;\\n}\\nif (isCircle) {\\ncol *= tcol;\\nif (tcol.r < 0.0) {\\ndiscard;\\n} else {\\ngl_FragColor = col;\\n}\\n} else {\\ngl_FragColor = col;\\n}\\n}\",\"fragment\");if(!p||!l)return h=!1,b(),!1;\nh=d.createProgram();d.attachShader(h,p);d.attachShader(h,l);d.linkProgram(h);if(!d.getProgramParameter(h,d.LINK_STATUS))return c.push(d.getProgramInfoLog(h)),b(),h=!1;d.useProgram(h);d.bindAttribLocation(h,0,\"aVertexPosition\");e=k(\"uPMatrix\");r=k(\"pSize\");w=k(\"fillColor\");V=k(\"isBubble\");G=k(\"bubbleSizeAbs\");D=k(\"bubbleSizeByArea\");W=k(\"uSampler\");F=k(\"skipTranslation\");a=k(\"isCircle\");f=k(\"isInverted\");return!0}function u(a,c){d&&h&&(a=x[a]=x[a]||d.getUniformLocation(h,a),d.uniform1f(a,c))}var x=\n{},h,e,r,w,V,G,D,F,a,f,c=[],W;return d&&!q()?!1:{psUniform:function(){return r},pUniform:function(){return e},fillColorUniform:function(){return w},setBubbleUniforms:function(k,c,f,e){void 0===e&&(e=1);var l=k.options,g=Number.MAX_VALUE,b=-Number.MAX_VALUE;if(d&&h&&k.is(\"bubble\")){var r=k.getPxExtremes();g=m(l.zMin,n(c,!1===l.displayNegative?l.zThreshold:-Number.MAX_VALUE,g));b=m(l.zMax,Math.max(b,f));d.uniform1i(V,1);d.uniform1i(a,1);d.uniform1i(D,\"width\"!==k.options.sizeBy);d.uniform1i(G,k.options.sizeByAbsoluteValue);\nu(\"bubbleZMin\",g);u(\"bubbleZMax\",b);u(\"bubbleZThreshold\",k.options.zThreshold);u(\"bubbleMinSize\",r.minPxSize*e);u(\"bubbleMaxSize\",r.maxPxSize*e)}},bind:function(){d&&h&&d.useProgram(h)},program:function(){return h},create:q,setUniform:u,setPMatrix:function(a){d&&h&&d.uniformMatrix4fv(e,!1,a)},setColor:function(a){d&&h&&d.uniform4f(w,a[0]/255,a[1]/255,a[2]/255,a[3])},setPointSize:function(a){d&&h&&d.uniform1f(r,a)},setSkipTranslation:function(a){d&&h&&d.uniform1i(F,!0===a?1:0)},setTexture:function(a){d&&\nh&&d.uniform1i(W,a)},setDrawAsCircle:function(c){d&&h&&d.uniform1i(a,c?1:0)},reset:function(){d&&h&&(d.uniform1i(V,0),d.uniform1i(a,0))},setInverted:function(a){d&&h&&d.uniform1i(f,a)},destroy:function(){d&&h&&(d.deleteProgram(h),h=!1)}}}});t(b,\"Extensions/Boost/WGLVBuffer.js\",[],function(){return function(b,y,A){function m(){d&&(b.deleteBuffer(d),v=d=!1);u=0;n=A||2;x=[]}var d=!1,v=!1,n=A||2,q=!1,u=0,x;return{destroy:m,bind:function(){if(!d)return!1;b.vertexAttribPointer(v,n,b.FLOAT,!1,0,0)},data:x,\nbuild:function(h,e,r){var w;x=h||[];if(!(x&&0!==x.length||q))return m(),!1;n=r||n;d&&b.deleteBuffer(d);q||(w=new Float32Array(x));d=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,d);b.bufferData(b.ARRAY_BUFFER,q||w,b.STATIC_DRAW);v=b.getAttribLocation(y.program(),e);b.enableVertexAttribArray(v);return!0},render:function(h,e,r){var w=q?q.length:x.length;if(!d||!w)return!1;if(!h||h>w||0>h)h=0;if(!e||e>w)e=w;if(h>=e)return!1;b.drawArrays(b[(r||\"points\").toUpperCase()],h/n,(e-h)/n);return!0},allocate:function(b){u=\n-1;q=new Float32Array(4*b)},push:function(b,e,d,w){q&&(q[++u]=b,q[++u]=e,q[++u]=d,q[++u]=w)}}}});t(b,\"Extensions/Boost/WGLRenderer.js\",[b[\"Core/Color/Color.js\"],b[\"Extensions/Boost/WGLShader.js\"],b[\"Extensions/Boost/WGLVBuffer.js\"],b[\"Core/Globals.js\"],b[\"Core/Utilities.js\"]],function(b,y,A,m,d){var v=b.parse,n=m.doc,q=m.win,u=d.isNumber,x=d.isObject,h=d.merge,e=d.objectEach,r=d.pick;return function(d){function w(){return z.pixelRatio||q.devicePixelRatio||1}function G(a){if(a.isSeriesBoosting){var c=\n!!a.options.stacking;var k=a.xData||a.options.xData||a.processedXData;c=(c?a.data:k||a.options.data).length;\"treemap\"===a.type?c*=12:\"heatmap\"===a.type?c*=6:fa[a.type]&&(c*=2);return c}return 0}function D(){g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT)}function F(a,c){function k(a){a&&(c.colorData.push(a[0]),c.colorData.push(a[1]),c.colorData.push(a[2]),c.colorData.push(a[3]))}function f(a,f,b,g,l){void 0===g&&(g=1);k(l);1===la||z.useGPUTranslations&&!c.skipTranslation||(a*=la,f*=la,g*=la);z.usePreallocated?\n(Q.push(a,f,b?1:0,g),sa+=4):(M.push(a),M.push(f),M.push(b?la:0),M.push(g))}function b(){c.segments.length&&(c.segments[c.segments.length-1].to=M.length||sa)}function g(){c.segments.length&&c.segments[c.segments.length-1].from===(M.length||sa)||(b(),c.segments.push({from:M.length||sa}))}function l(a,c,b,g,l){k(l);f(a+b,c);k(l);f(a,c);k(l);f(a,c+g);k(l);f(a,c+g);k(l);f(a+b,c+g);k(l);f(a+b,c)}function e(a,k){z.useGPUTranslations||(c.skipTranslation=!0,a.x=y.toPixels(a.x,!0),a.y=D.toPixels(a.y,!0));k?\nM=[a.x,a.y,0,2].concat(M):f(a.x,a.y,0,2)}var d=a.pointArrayMap&&\"low,high\"===a.pointArrayMap.join(\",\"),r=a.chart,B=a.options,h=!!B.stacking,W=B.data,p=a.xAxis.getExtremes(),q=p.min,m=p.max;p=a.yAxis.getExtremes();var u=p.min,ba=p.max,n=a.xData||B.xData||a.processedXData,V=a.yData||B.yData||a.processedYData,G=a.zData||B.zData||a.processedZData,D=a.yAxis,y=a.xAxis,A=a.chart.plotWidth,t=!n||0===n.length,F=B.connectNulls;p=a.points||!1;var O=!1,L=!1,J,da,S=h?a.data:n||W,I={x:Number.MAX_VALUE,y:0},pa=\n{x:-Number.MAX_VALUE,y:0},aa=0,U=!1,E,C,N,Ca,K=-1,ea=!1,P=!1,T,Sa=\"undefined\"===typeof r.index,Da=!1,Ea=!1,H=!1,Qa=fa[a.type],Fa=!1,Ka=!0,La=!0,Ra=B.zoneAxis||\"y\",qa=B.zones||!1,R=!1,Ma=B.threshold,Ga=!1,la=w();if(!(B.boostData&&0c.node.levelDynamic)return 1;if(a.node.levelDynamicc.zMax&&(c.zMax=N[2]),N[2]c.zMax&&(c.zMax=G[K]),G[K]=q&&P<=m&&(Da=!0);ea&&ea>=q&&ea<=m&&(Ea=!0);d?(t&&(C=N.slice(1,3)),T=C[0],\nC=C[1]):h&&(E=N.x,C=N.stackY,T=C-N.y);null!==u&&\"undefined\"!==typeof u&&null!==ba&&\"undefined\"!==typeof ba&&(Ka=C>=u&&C<=ba);E>m&&pa.xq&&(I.x=E,I.y=C);if(null===C&&F)return\"continue\";if(null===C||!Ka&&!Da&&!Ea)return g(),\"continue\";(P>=q||E>=q)&&(ea<=m||E<=m)&&(Fa=!0);if(!Fa&&!Da&&!Ea)return\"continue\";Ga&&E-ea>Ga&&g();if(qa){var b;qa.some(function(a,c){var f=qa[c-1];return\"x\"===Ra?\"undefined\"!==typeof a.value&&E<=a.value?(ra[c]&&(!f||E>=f.value)&&(b=ra[c]),!0):!1:\"undefined\"!==\ntypeof a.value&&C<=a.value?(ra[c]&&(!f||C>=f.value)&&(b=ra[c]),!0):!1});H=b||R||H}if(!z.useGPUTranslations&&(c.skipTranslation=!0,E=y.toPixels(E,!0),C=D.toPixels(C,!0),E>A&&\"points\"===c.drawMode))return\"continue\";c.hasMarkers&&Fa&&!1!==O&&(a.closestPointRangePx=Math.min(a.closestPointRangePx,Math.abs(E-O)));if(!z.useGPUTranslations&&!z.usePreallocated&&O&&1>Math.abs(E-O)&&L&&1>Math.abs(C-L))return z.debug.showSkipSummary&&++aa,\"continue\";if(Qa){J=T;if(!1===T||\"undefined\"===typeof T)J=0>C?C:0;d||h||\n(J=Math.max(null===Ma?u:Ma,u));z.useGPUTranslations||(J=D.toPixels(J,!0));f(E,J,0,0,H)}B.step&&!La&&f(E,L,0,2,H);f(E,C,0,\"bubble\"===a.type?Ca||1:2,H);O=E;L=C;U=!0;La=!1};K-Number.MAX_VALUE&&e(pa))}b()}}function a(){I=[];P.data=M=[];L=[];Q&&Q.destroy()}function f(a){if(l){var c=w();l.setUniform(\"xAxisTrans\",a.transA*c);l.setUniform(\"xAxisMin\",\na.min);l.setUniform(\"xAxisMinPad\",a.minPixelPadding*c);l.setUniform(\"xAxisPointRange\",a.pointRange);l.setUniform(\"xAxisLen\",a.len*c);l.setUniform(\"xAxisPos\",a.pos*c);l.setUniform(\"xAxisCVSCoord\",!a.horiz);l.setUniform(\"xAxisIsLog\",!!a.logarithmic);l.setUniform(\"xAxisReversed\",!!a.reversed)}}function c(a){if(l){var c=w();l.setUniform(\"yAxisTrans\",a.transA*c);l.setUniform(\"yAxisMin\",a.min);l.setUniform(\"yAxisMinPad\",a.minPixelPadding*c);l.setUniform(\"yAxisPointRange\",a.pointRange);l.setUniform(\"yAxisLen\",\na.len*c);l.setUniform(\"yAxisPos\",a.pos*c);l.setUniform(\"yAxisCVSCoord\",!a.horiz);l.setUniform(\"yAxisIsLog\",!!a.logarithmic);l.setUniform(\"yAxisReversed\",!!a.reversed)}}function W(a,c){l.setUniform(\"hasThreshold\",a);l.setUniform(\"translatedThreshold\",c)}function k(k){var e=w();if(k)O=k.chartWidth*e,t=k.chartHeight*e;else return!1;if(!(g&&O&&t&&l))return!1;z.debug.timeRendering&&console.time(\"gl rendering\");g.canvas.width=O;g.canvas.height=t;l.bind();g.viewport(0,0,O,t);l.setPMatrix([2/O,0,0,0,0,-(2/\nt),0,0,0,0,-2,0,-1,1,-1,1]);12*((p.marker?p.marker.radius:10)||10));h=aa[h&&h.symbol||a.series.symbol]||aa.circle;if(0!==\na.segments.length&&a.segments[0].from!==a.segments[0].to){h.isReady&&(g.bindTexture(g.TEXTURE_2D,h.handle),l.setTexture(h.handle));k.styledMode?h=a.series.markerGroup&&a.series.markerGroup.getStyle(\"fill\"):(h=\"points\"===a.drawMode&&a.series.pointAttribs&&a.series.pointAttribs().fill||a.series.color,p.colorByPoint&&(h=a.series.chart.options.colors[d]));a.series.fillOpacity&&p.fillOpacity&&(h=(new b(h)).setOpacity(r(p.fillOpacity,1)).get());h=v(h).rgba;z.useAlpha||(h[3]=1);\"lines\"===a.drawMode&&z.useAlpha&&\n1>h[3]&&(h[3]/=10);\"add\"===p.boostBlending?(g.blendFunc(g.SRC_ALPHA,g.ONE),g.blendEquation(g.FUNC_ADD)):\"mult\"===p.boostBlending||\"multiply\"===p.boostBlending?g.blendFunc(g.DST_COLOR,g.ZERO):\"darken\"===p.boostBlending?(g.blendFunc(g.ONE,g.ONE),g.blendEquation(g.FUNC_MIN)):g.blendFuncSeparate(g.SRC_ALPHA,g.ONE_MINUS_SRC_ALPHA,g.ONE,g.ONE_MINUS_SRC_ALPHA);l.reset();0=I.length?I.push(c):I[a.index]=c;F(a,c);z.debug.timeSeriesProcessing&&console.timeEnd(\"building \"+a.type+\" series\")},setSize:function(a,c){O===a&&t===c||!l||(O=a,t=c,l.bind(),l.setPMatrix([2/O,0,\n0,0,0,-(2/t),0,0,0,0,-2,0,-1,1,-1,1]))},inited:function(){return U},setThreshold:W,init:function(c,f){function k(a,c){var k={isReady:!1,texture:n.createElement(\"canvas\"),handle:g.createTexture()},f=k.texture.getContext(\"2d\");aa[a]=k;k.texture.width=512;k.texture.height=512;f.mozImageSmoothingEnabled=!1;f.webkitImageSmoothingEnabled=!1;f.msImageSmoothingEnabled=!1;f.imageSmoothingEnabled=!1;f.strokeStyle=\"rgba(255, 255, 255, 0)\";f.fillStyle=\"#FFF\";c(f);try{g.activeTexture(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,\nk.handle),g.texImage2D(g.TEXTURE_2D,0,g.RGBA,g.RGBA,g.UNSIGNED_BYTE,k.texture),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.LINEAR),g.bindTexture(g.TEXTURE_2D,null),k.isReady=!0}catch(ca){}}var b=0,e=[\"webgl\",\"experimental-webgl\",\"moz-webgl\",\"webkit-3d\"];U=!1;if(!c)return!1;for(z.debug.timeSetup&&console.time(\"gl setup\");b<\ne.length&&!(g=c.getContext(e[b],{}));b++);if(g)f||a();else return!1;g.enable(g.BLEND);g.blendFunc(g.SRC_ALPHA,g.ONE_MINUS_SRC_ALPHA);g.disable(g.DEPTH_TEST);g.depthFunc(g.LESS);l=y(g);if(!l)return!1;Q=A(g,l);k(\"circle\",function(a){a.beginPath();a.arc(256,256,256,0,2*Math.PI);a.stroke();a.fill()});k(\"square\",function(a){a.fillRect(0,0,512,512)});k(\"diamond\",function(a){a.beginPath();a.moveTo(256,0);a.lineTo(512,256);a.lineTo(256,512);a.lineTo(0,256);a.lineTo(256,0);a.fill()});k(\"triangle\",function(a){a.beginPath();\na.moveTo(0,512);a.lineTo(256,0);a.lineTo(512,512);a.lineTo(0,512);a.fill()});k(\"triangle-down\",function(a){a.beginPath();a.moveTo(0,0);a.lineTo(256,512);a.lineTo(512,0);a.lineTo(0,0);a.fill()});U=!0;z.debug.timeSetup&&console.timeEnd(\"gl setup\");return!0},render:p,settings:z,valid:function(){return!1!==g},clear:D,flush:a,setXAxis:f,setYAxis:c,data:M,gl:function(){return g},allocateBuffer:function(a){var c=0;z.usePreallocated&&(a.series.forEach(function(a){a.isSeriesBoosting&&(c+=G(a))}),Q.allocate(c))},\ndestroy:function(){a();Q.destroy();l.destroy();g&&(e(aa,function(a){a.handle&&g.deleteTexture(a.handle)}),g.canvas.width=1,g.canvas.height=1)},setOptions:function(a){\"pixelRatio\"in a||(a.pixelRatio=1);h(!0,z,a)}}}});t(b,\"Extensions/Boost/BoostAttach.js\",[b[\"Core/Chart/Chart.js\"],b[\"Extensions/Boost/WGLRenderer.js\"],b[\"Core/Globals.js\"],b[\"Core/Utilities.js\"]],function(b,y,t,m){var d=t.doc,v=m.error,n;return function(q,m){var x=q.chartWidth,h=q.chartHeight,e=q,r=q.seriesGroup||m.group,w=d.implementation.hasFeature(\"www.http://w3.org/TR/SVG11/feature#Extensibility\",\n\"1.1\");e=q.isChartSeriesBoosting()?q:m;w=!1;n||(n=d.createElement(\"canvas\"));e.renderTarget||(e.canvas=n,q.renderer.forExport||!w?(e.renderTarget=q.renderer.image(\"\",0,0,x,h).addClass(\"highcharts-boost-canvas\").add(r),e.boostClear=function(){e.renderTarget.attr({href:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\"})},e.boostCopy=function(){e.boostResizeTarget();e.renderTarget.attr({href:e.canvas.toDataURL(\"image/png\")})}):(e.renderTargetFo=\nq.renderer.createElement(\"foreignObject\").add(r),e.renderTarget=d.createElement(\"canvas\"),e.renderTargetCtx=e.renderTarget.getContext(\"2d\"),e.renderTargetFo.element.appendChild(e.renderTarget),e.boostClear=function(){e.renderTarget.width=e.canvas.width;e.renderTarget.height=e.canvas.height},e.boostCopy=function(){e.renderTarget.width=e.canvas.width;e.renderTarget.height=e.canvas.height;e.renderTargetCtx.drawImage(e.canvas,0,0)}),e.boostResizeTarget=function(){x=q.chartWidth;h=q.chartHeight;(e.renderTargetFo||\ne.renderTarget).attr({x:0,y:0,width:x,height:h}).css({pointerEvents:\"none\",mixedBlendMode:\"normal\",opacity:1});e instanceof b&&e.markerGroup.translate(q.plotLeft,q.plotTop)},e.boostClipRect=q.renderer.clipRect(),(e.renderTargetFo||e.renderTarget).clip(e.boostClipRect),e instanceof b&&(e.markerGroup=e.renderer.g().add(r),e.markerGroup.translate(m.xAxis.pos,m.yAxis.pos)));e.canvas.width=x;e.canvas.height=h;e.boostClipRect.attr(q.getBoostClipRect(e));e.boostResizeTarget();e.boostClear();e.ogl||(e.ogl=\ny(function(){e.ogl.settings.debug.timeBufferCopy&&console.time(\"buffer copy\");e.boostCopy();e.ogl.settings.debug.timeBufferCopy&&console.timeEnd(\"buffer copy\")}),e.ogl.init(e.canvas)||v(\"[highcharts boost] - unable to init WebGL renderer\"),e.ogl.setOptions(q.options.boost||{}),e instanceof b&&e.ogl.allocateBuffer(q));e.ogl.setSize(x,h);return e.ogl}});t(b,\"Extensions/Boost/BoostUtils.js\",[b[\"Core/Globals.js\"],b[\"Extensions/Boost/BoostableMap.js\"],b[\"Extensions/Boost/BoostAttach.js\"],b[\"Core/Utilities.js\"]],\nfunction(b,y,t,m){function d(){for(var b=[],e=0;e=\n(r.options.boostThreshold||Number.MAX_VALUE)&&++h)}b.boostForceChartBoost=q&&(m===b.series.length&&0=y&&d<=u);if(null!==d&&e>=v&&e<=t&&k)if(a=m.toPixels(e,!0),V){if(\"undefined\"===typeof Y||a===F){ba||(b=d);if(\"undefined\"===typeof ca||d>na)na=d,ca=c;if(\"undefined\"===typeof Y||bplease use a modern browser\")});e(m.prototype,{getContext:function(){var a=this.chart,b=a.chartWidth,c=a.chartHeight,d=a.seriesGroup||this.group,k=this,\ne=function(a,b,c,f,d,k,e){a.call(this,c,b,f,d,k,e)};a.isChartSeriesBoosting()&&(k=a,d=a.seriesGroup);var h=k.ctx;k.canvas||(k.canvas=q.createElement(\"canvas\"),k.renderTarget=a.renderer.image(\"\",0,0,b,c).addClass(\"highcharts-boost-canvas\").add(d),k.ctx=h=k.canvas.getContext(\"2d\"),a.inverted&&[\"moveTo\",\"lineTo\",\"rect\",\"arc\"].forEach(function(a){D(h,a,e)}),k.boostCopy=function(){k.renderTarget.attr({href:k.canvas.toDataURL(\"image/png\")})},k.boostClear=function(){h.clearRect(0,0,k.canvas.width,k.canvas.height);\nk===this&&k.renderTarget.attr({href:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\"})},k.boostClipRect=a.renderer.clipRect(),k.renderTarget.clip(k.boostClipRect));k.canvas.width!==b&&(k.canvas.width=b);k.canvas.height!==c&&(k.canvas.height=c);k.renderTarget.attr({x:0,y:0,width:b,height:c,style:\"pointer-events: none\",href:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\"});\nk.boostClipRect.attr(a.getBoostClipRect(k));return h},canvasToSVG:function(){this.chart.isChartSeriesBoosting()?this.boostClear&&this.boostClear():(this.boostCopy||this.chart.boostCopy)&&(this.boostCopy||this.chart.boostCopy)()},cvsLineTo:function(a,b,c){a.lineTo(b,c)},renderCanvas:function(){var a=this,b=a.options,c=a.chart,d=this.xAxis,k=this.yAxis,m=(c.options.boost||{}).timeRendering||!1,l=0,q=a.processedXData,x=a.processedYData,g=b.data,u=d.getExtremes(),D=u.min,M=u.max;u=k.getExtremes();var L=\nu.min,P=u.max,U={},I,aa=!!a.sampling,fa=b.marker&&b.marker.radius,T=this.cvsDrawPoint,z=b.lineWidth?this.cvsLineTo:void 0,B=fa&&1>=fa?this.cvsMarkerSquare:this.cvsMarkerCircle,ba=this.cvsStrokeBatch||1E3,ta=!1!==b.enableMouseTracking,ka;u=b.threshold;var X=k.getThreshold(u),ma=w(u),ha=X,na=this.fill,Y=a.pointArrayMap&&\"low,high\"===a.pointArrayMap.join(\",\"),ca=!!b.stacking,oa=a.cropStart||0;u=c.options.loading;var ua=a.requireSorting,ia,va=b.connectNulls,wa=!q,ya,za,ja,xa,Aa,Z=ca?a.data:q||g,Na=a.fillOpacity?\nt.parse(a.color).setOpacity(G(b.fillOpacity,.75)).get():a.color,Ha=function(){na?(J.fillStyle=Na,J.fill()):(J.strokeStyle=a.color,J.lineWidth=b.lineWidth,J.stroke())},Ia=function(b,f,d,k){0===l&&(J.beginPath(),z&&(J.lineJoin=\"round\"));c.scroller&&\"highcharts-navigator-series\"===a.options.className?(f+=c.scroller.top,d&&(d+=c.scroller.top)):f+=c.plotTop;b+=c.plotLeft;ia?J.moveTo(b,f):T?T(J,b,f,d,ka):z?z(J,b,f):B&&B.call(a,J,b,f,fa,k);l+=1;l===ba&&(Ha(),l=0);ka={clientX:b,plotY:f,yBottom:d}},Oa=\"x\"===\nb.findNearestPointBy,Ja=this.xData||this.options.xData||this.processedXData||!1,Ba=function(a,b,f){Aa=Oa?a:a+\",\"+b;ta&&!U[Aa]&&(U[Aa]=!0,c.inverted&&(a=d.len-a,b=k.len-b),Pa.push({x:Ja?Ja[oa+f]:!1,clientX:a,plotX:a,plotY:b,i:oa+f}))};this.renderTarget&&this.renderTarget.attr({href:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\"});(this.points||this.graph)&&this.destroyGraphics();a.plotGroup(\"group\",\"series\",a.visible?\"visible\":\"hidden\",\nb.zIndex,c.seriesGroup);a.markerGroup=a.group;h(a,\"destroy\",function(){a.markerGroup=null});var Pa=this.points=[];var J=this.getContext();a.buildKDTree=y;this.boostClear&&this.boostClear();this.visible&&(99999=D&&g<=M&&(e=!0);l&&l>=D&&l<=M&&(h=!0);if(Y){wa&&(p=b.slice(1,3));var r=p[0];p=p[1]}else ca&&(n=b.x,p=b.stackY,r=p-b.y);b=null===p;ua||(q=p>=L&&p<=P);if(!b&&(n>=D&&n<=M&&q||e||h))if(n=Math.round(d.toPixels(n,!0)),aa){if(\"undefined\"===typeof ja||n===I){Y||(r=p);if(\"undefined\"===typeof xa||\np>za)za=p,xa=f;if(\"undefined\"===typeof ja||r=a.length?(b.y=Math.min(a[0].pos,\nb.y),b.height=a[0].pos-this.plotTop+a[0].len):b.height=this.plotHeight);return b};m.prototype.getPoint=function(a){var b=a,c=this.xData||this.options.xData||this.processedXData||!1;!a||a instanceof this.pointClass||(b=(new this.pointClass).init(this,this.options.data[a.i],c?c[a.i]:void 0),b.category=w(this.xAxis.categories?this.xAxis.categories[b.x]:b.x,b.x),b.dist=a.dist,b.distX=a.distX,b.plotX=a.plotX,b.plotY=a.plotY,b.index=a.i,b.isInside=this.isPointInside(a));return b};y(m.prototype,\"searchPoint\",\nfunction(a){return this.getPoint(a.apply(this,[].slice.call(arguments,1)))});y(A.prototype,\"haloPath\",function(a){var b=this.series,c=this.plotX,d=this.plotY,e=b.chart.inverted;b.isSeriesBoosting&&e&&(this.plotX=b.yAxis.len-d,this.plotY=b.xAxis.len-c);var h=a.apply(this,Array.prototype.slice.call(arguments,1));b.isSeriesBoosting&&e&&(this.plotX=c,this.plotY=d);return h});y(m.prototype,\"markerAttribs\",function(a,b){var c=b.plotX,d=b.plotY,e=this.chart.inverted;this.isSeriesBoosting&&e&&(b.plotX=this.yAxis.len-\nd,b.plotY=this.xAxis.len-c);var f=a.apply(this,Array.prototype.slice.call(arguments,1));this.isSeriesBoosting&&e&&(b.plotX=c,b.plotY=d);return f});d(m,\"destroy\",function(){var a=this,b=a.chart;b.markerGroup===a.markerGroup&&(a.markerGroup=null);b.hoverPoints&&(b.hoverPoints=b.hoverPoints.filter(function(b){return b.series===a}));b.hoverPoint&&b.hoverPoint.series===a&&(b.hoverPoint=null)});y(m.prototype,\"getExtremes\",function(a){return this.isSeriesBoosting&&this.hasExtremes&&this.hasExtremes()?{}:\na.apply(this,Array.prototype.slice.call(arguments,1))});[\"translate\",\"generatePoints\",\"drawTracker\",\"drawPoints\",\"render\"].forEach(function(a){function b(b){var c=this.options.stacking&&(\"translate\"===a||\"generatePoints\"===a);if(!this.isSeriesBoosting||c||!G(this.chart)||\"heatmap\"===this.type||\"treemap\"===this.type||!u[this.type]||0===this.options.boostThreshold)b.call(this);else if(this[a+\"Canvas\"])this[a+\"Canvas\"]()}y(m.prototype,a,b);\"translate\"===a&&\"column bar arearange columnrange heatmap treemap\".split(\" \").forEach(function(c){n[c]&&\ny(n[c].prototype,a,b)})});y(m.prototype,\"processData\",function(a){function b(a){return c.forceCrop?!1:c.chart.isChartSeriesBoosting()||(a?a.length:0)>=(c.options.boostThreshold||Number.MAX_VALUE)}var c=this,d=this.options.data;G(this.chart)&&u[this.type]?(b(d)&&\"heatmap\"!==this.type&&\"treemap\"!==this.type&&!this.options.stacking&&this.hasExtremes&&this.hasExtremes(!0)||(a.apply(this,Array.prototype.slice.call(arguments,1)),d=this.processedXData),(this.isSeriesBoosting=b(d))?(d=void 0,this.options.data&&\nthis.options.data.length&&(d=this.getFirstValidPoint(this.options.data),r(d)||e(d)||h(12,!1,this.chart)),this.enterBoost()):this.exitBoost&&this.exitBoost()):a.apply(this,Array.prototype.slice.call(arguments,1))});d(m,\"hide\",function(){this.canvas&&this.renderTarget&&(this.ogl&&this.ogl.clear(),this.boostClear())});m.prototype.enterBoost=function(){this.alteredByBoost=[];[\"allowDG\",\"directTouch\",\"stickyTracking\"].forEach(function(a){this.alteredByBoost.push({prop:a,val:this[a],own:Object.hasOwnProperty.call(this,\na)})},this);this.directTouch=this.allowDG=!1;this.finishedAnimating=this.stickyTracking=!0;this.labelBySeries&&(this.labelBySeries=this.labelBySeries.destroy())};m.prototype.exitBoost=function(){(this.alteredByBoost||[]).forEach(function(a){a.own?this[a.prop]=a.val:delete this[a.prop]},this);this.boostClear&&this.boostClear()};m.prototype.hasExtremes=function(a){var b=this.options,c=this.xAxis&&this.xAxis.options,d=this.yAxis&&this.yAxis.options,e=this.colorAxis&&this.colorAxis.options;return b.data.length>\n(b.boostThreshold||Number.MAX_VALUE)&&r(d.min)&&r(d.max)&&(!a||r(c.min)&&r(c.max))&&(!e||r(e.min)&&r(e.max))};m.prototype.destroyGraphics=function(){var a=this,b=this,c=this.points,d,e;if(c)for(e=0;ec&&(b.resetParams=[this.options.chart.width,\nvoid 0,!1],this.setSize(c,void 0,!1));[].forEach.call(b.childNodes,function(a,d){1===a.nodeType&&(b.origDisplay[d]=a.style.display,a.style.display=\"none\")});this.moveContainers(a);this.printReverseInfo=b}function S(a){a.renderExporting();x(a,\"redraw\",a.renderExporting);x(a,\"destroy\",a.destroyExport)}function T(d,b,e,H,K,m,r){var f=this,w=f.options.navigation,B=f.chartWidth,g=f.chartHeight,p=\"cache-\"+d,k=Math.max(K,m),h=f[p];if(!h){f.exportContextMenu=f[p]=h=C(\"div\",{className:d},{position:\"absolute\",\nzIndex:1E3,padding:k+\"px\",pointerEvents:\"auto\"},f.fixedDiv||f.container);var q=C(\"ul\",{className:\"highcharts-menu\"},{listStyle:\"none\",margin:0,padding:0},h);f.styledMode||v(q,D({MozBoxShadow:\"3px 3px 10px #888\",WebkitBoxShadow:\"3px 3px 10px #888\",boxShadow:\"3px 3px 10px #888\"},w.menuStyle));h.hideMenu=function(){v(h,{display:\"none\"});r&&r.setState(0);f.openMenu=!1;v(f.renderTo,{overflow:\"hidden\"});v(f.container,{overflow:\"hidden\"});c.clearTimeout(h.hideTimer);E(f,\"exportMenuHidden\")};f.exportEvents.push(x(h,\n\"mouseleave\",function(){h.hideTimer=A.setTimeout(h.hideMenu,500)}),x(h,\"mouseenter\",function(){c.clearTimeout(h.hideTimer)}),x(l,\"mouseup\",function(a){f.pointer.inClass(a.target,d)||h.hideMenu()}),x(h,\"click\",function(){f.openMenu&&h.hideMenu()}));b.forEach(function(d){\"string\"===typeof d&&(d=f.options.exporting.menuItemDefinitions[d]);if(O(d,!0)){var b=void 0;d.separator?b=C(\"hr\",void 0,void 0,q):(\"viewData\"===d.textKey&&f.isDataTableVisible&&(d.textKey=\"hideData\"),b=C(\"li\",{className:\"highcharts-menu-item\",\nonclick:function(a){a&&a.stopPropagation();h.hideMenu();d.onclick&&d.onclick.apply(f,arguments)}},void 0,q),a.setElementHTML(b,d.text||f.options.lang[d.textKey]),f.styledMode||(b.onmouseover=function(){v(this,w.menuItemHoverStyle)},b.onmouseout=function(){v(this,w.menuItemStyle)},v(b,D({cursor:\"pointer\"},w.menuItemStyle||{}))));f.exportDivElements.push(b)}});f.exportDivElements.push(q,h);f.exportMenuWidth=h.offsetWidth;f.exportMenuHeight=h.offsetHeight}b={display:\"block\"};e+f.exportMenuWidth>B?b.right=\nB-e-K-k+\"px\":b.left=e-k+\"px\";H+m+f.exportMenuHeight>g&&\"top\"!==r.alignOptions.verticalAlign?b.bottom=g-H-k+\"px\":b.top=H+m-k+\"px\";v(h,b);v(f.renderTo,{overflow:\"\"});v(f.container,{overflow:\"\"});f.openMenu=!0;E(f,\"exportMenuShown\")}function U(a){var d=a?a.target:this,b=d.exportSVGElements,e=d.exportDivElements;a=d.exportEvents;var l;b&&(b.forEach(function(a,c){a&&(a.onclick=a.ontouchstart=null,l=\"cache-\"+a.menuClassName,d[l]&&delete d[l],b[c]=a.destroy())}),b.length=0);d.exportingGroup&&(d.exportingGroup.destroy(),\ndelete d.exportingGroup);e&&(e.forEach(function(a,d){a&&(c.clearTimeout(a.hideTimer),Q(a,\"mouseleave\"),e[d]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null,J(a))}),e.length=0);a&&(a.forEach(function(a){a()}),a.length=0)}function V(a,c){c=this.getSVGForExport(a,c);a=q(this.options.exporting,a);b.post(a.url,{filename:a.filename?a.filename.replace(/\\//g,\"-\"):this.getFilename(),type:a.type,width:a.width||0,scale:a.scale,svg:c},a.formAttributes)}function W(){this.styledMode&&this.inlineStyles();\nreturn this.container.innerHTML}function X(){var a=this.userOptions.title&&this.userOptions.title.text,b=this.options.exporting.filename;if(b)return b.replace(/\\//g,\"-\");\"string\"===typeof a&&(b=a.toLowerCase().replace(/<\\/?[^>]+(>|$)/g,\"\").replace(/[\\s_]+/g,\"-\").replace(/[^a-z0-9\\-]/g,\"\").replace(/^[\\-]+/g,\"\").replace(/[\\-]+/g,\"-\").substr(0,24).replace(/[\\-]+$/g,\"\"));if(!b||5>b.length)b=\"chart\";return b}function Y(a){var b,d=q(this.options,a);d.plotOptions=q(this.userOptions.plotOptions,a&&a.plotOptions);\nd.time=q(this.userOptions.time,a&&a.time);var c=C(\"div\",null,{position:\"absolute\",top:\"-9999em\",width:this.chartWidth+\"px\",height:this.chartHeight+\"px\"},l.body),e=this.renderTo.style.width;var m=this.renderTo.style.height;e=d.exporting.sourceWidth||d.chart.width||/px$/.test(e)&&parseInt(e,10)||(d.isGantt?800:600);m=d.exporting.sourceHeight||d.chart.height||/px$/.test(m)&&parseInt(m,10)||400;D(d.chart,{animation:!1,renderTo:c,forExport:!0,renderer:\"SVGRenderer\",width:e,height:m});d.exporting.enabled=\n!1;delete d.data;d.series=[];this.series.forEach(function(a){b=q(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});b.isInternal||d.series.push(b)});var g={};this.axes.forEach(function(a){a.userOptions.internalKey||(a.userOptions.internalKey=R());a.options.isInternal||(g[a.coll]||(g[a.coll]=!0,d[a.coll]=[]),d[a.coll].push(q(a.userOptions,{visible:a.visible})))});var f=new this.constructor(d,this.callback);a&&[\"xAxis\",\"yAxis\",\"series\"].forEach(function(d){var b=\n{};a[d]&&(b[d]=a[d],f.update(b))});this.axes.forEach(function(a){var d=N(f.axes,function(d){return d.options.internalKey===a.userOptions.internalKey}),b=a.getExtremes(),c=b.userMin;b=b.userMax;d&&(\"undefined\"!==typeof c&&c!==d.min||\"undefined\"!==typeof b&&b!==d.max)&&d.setExtremes(c,b,!0,!1)});m=f.getChartHTML();E(this,\"getSVG\",{chartCopy:f});m=this.sanitizeSVG(m,d);d=null;f.destroy();J(c);return m}function Z(a,b){var d=this.options.exporting;return this.getSVG(q({chart:{borderRadius:0}},d.chartOptions,\nb,{exporting:{sourceWidth:a&&a.sourceWidth||d.sourceWidth,sourceHeight:a&&a.sourceHeight||d.sourceHeight}}))}function aa(a){return a.replace(/([A-Z])/g,function(a,b){return\"-\"+b.toLowerCase()})}function ba(){function a(d){var e={},f,w;if(r&&1===d.nodeType&&-1===ca.indexOf(d.nodeName)){var l=A.getComputedStyle(d,null);var m=\"svg\"===d.nodeName?{}:A.getComputedStyle(d.parentNode,null);if(!g[d.nodeName]){k=r.getElementsByTagName(\"svg\")[0];var h=r.createElementNS(d.namespaceURI,d.nodeName);k.appendChild(h);\ng[d.nodeName]=q(A.getComputedStyle(h,null));\"text\"===d.nodeName&&delete g.text.fill;k.removeChild(h)}for(var B in l)if(p.isFirefox||p.isMS||p.isSafari||Object.hasOwnProperty.call(l,B)){var t=l[B],n=B;h=f=!1;if(c.length){for(w=c.length;w--&&!f;)f=c[w].test(n);h=!f}\"transform\"===n&&\"none\"===t&&(h=!0);for(w=b.length;w--&&!h;)h=b[w].test(n)||\"function\"===typeof t;h||m[n]===t&&\"svg\"!==d.nodeName||g[d.nodeName][n]===t||(L&&-1===L.indexOf(n)?\"parentRule\"!==n&&(e[n]=t):t&&d.setAttribute(aa(n),t))}v(d,e);\n\"svg\"===d.nodeName&&d.setAttribute(\"stroke-width\",\"1px\");\"text\"!==d.nodeName&&[].forEach.call(d.children||d.childNodes,a)}}var b=da,c=e.inlineWhitelist,g={},k,m=l.createElement(\"iframe\");v(m,{width:\"1px\",height:\"1px\",visibility:\"hidden\"});l.body.appendChild(m);var r=m.contentWindow&&m.contentWindow.document;r&&r.body.appendChild(r.createElementNS(t,\"svg\"));a(this.container.querySelector(\"svg\"));k.parentNode.removeChild(k);m.parentNode.removeChild(m)}function ea(a){(this.fixedDiv?[this.fixedDiv,this.scrollingContainer]:\n[this.container]).forEach(function(d){a.appendChild(d)})}function fa(){var a=this;a.exporting={update:function(d,b){a.isDirtyExporting=!0;q(!0,a.options.exporting,d);y(b,!0)&&a.redraw()}};g.compose(a).navigation.addUpdate(function(d,b){a.isDirtyExporting=!0;q(!0,a.options.navigation,d);y(b,!0)&&a.redraw()})}function ha(){var a=this;a.isPrinting||(G=a,p.isSafari||a.beforePrint(),setTimeout(function(){A.focus();A.print();p.isSafari||setTimeout(function(){a.afterPrint()},1E3)},1))}function ia(){var a=\nthis,b=a.options.exporting,c=b.buttons,e=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();e&&!1!==b.enabled&&(a.exportEvents=[],a.exportingGroup=a.exportingGroup||a.renderer.g(\"exporting-group\").attr({zIndex:3}).add(),P(c,function(b){a.addButton(b)}),a.isDirtyExporting=!1)}function ja(a,b){var c=a.indexOf(\"\")+6,d=a.substr(c);a=a.substr(0,c);b&&b.exporting&&b.exporting.allowHTML&&d&&(d=''+d.replace(/(<(?:img|br).*?(?=>))>/g,\"$1 />\")+\"\",a=a.replace(\"\",d+\"\"));a=a.replace(/zIndex=\"[^\"]+\"/g,\"\").replace(/symbolName=\"[^\"]+\"/g,\"\").replace(/jQuery[0-9]+=\"[^\"]+\"/g,\"\").replace(/url\\((\"|")(.*?)(\"|");?\\)/g,\"url($2)\").replace(/url\\([^#]+#/g,\"url(#\").replace(/b&&(a._inverted=!0);return}a.aspectRatio&&(b.aspectRatio=b.width/b.height,a.aspectRatio>b.aspectRatio?b.aspectWidth=b.height*a.aspectRatio:b.aspectHeight=b.width/a.aspectRatio);a._width=a.width||Math.ceil(b.aspectWidth||b.width);a._height=a.height||Math.ceil(b.aspectHeight||b.height)}a.width||(a._x=\na.x||0,a._x+=b.x-Math.round(b.aspectWidth?Math.abs(b.aspectWidth-b.width)/2:0));a.height||(a._y=a.y||0,a._y+=b.y-Math.round(b.aspectHeight?Math.abs(b.aspectHeight-b.height)/2:0))}};u.prototype.addPattern=function(a,b){b=q(b,!0);var c=y(b),e=a.width||a._width||32,d=a.height||a._height||32,n=a.color||\"#343434\",h=a.id,f=this,g=function(a){f.rect(0,0,e,d).attr({fill:a}).add(m)};h||(this.idCounter=this.idCounter||0,h=\"highcharts-pattern-\"+this.idCounter+\"-\"+(this.chartIndex||0),++this.idCounter);this.forExport&&\n(h+=\"-export\");this.defIds=this.defIds||[];if(!(-1\n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n }\n\n var Bounds = /** @class */ (function () {\n function Bounds(left, top, width, height) {\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n Bounds.prototype.add = function (x, y, w, h) {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n };\n Bounds.fromClientRect = function (context, clientRect) {\n return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);\n };\n Bounds.fromDOMRectList = function (context, domRectList) {\n var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });\n return domRect\n ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)\n : Bounds.EMPTY;\n };\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\n return Bounds;\n }());\n var parseBounds = function (context, node) {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n };\n var parseDocumentSize = function (document) {\n var body = document.body;\n var documentElement = document.documentElement;\n if (!body || !documentElement) {\n throw new Error(\"Unable to get document size\");\n }\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\n return new Bounds(0, 0, width, height);\n };\n\n /*\n * css-line-break 2.1.0 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints$1 = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint$1 = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$2 = 0; i$2 < chars$2.length; i$2++) {\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\n }\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\n }\n var decode$1 = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2$1 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1$1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT$1 = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\n var slice16$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64$1 = function (base64, _byteLength) {\n var buffer = decode$1(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie$1 = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$3 = 0; i$3 < chars$3.length; i$3++) {\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\n }\n\n var base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\n\n var LETTER_NUMBER_MODIFIER = 50;\n // Non-tailorable Line Breaking Classes\n var BK = 1; // Cause a line break (after)\n var CR$1 = 2; // Cause a line break (after), except between CR and LF\n var LF$1 = 3; // Cause a line break (after)\n var CM = 4; // Prohibit a line break between the character and the preceding character\n var NL = 5; // Cause a line break (after)\n var WJ = 7; // Prohibit line breaks before and after\n var ZW = 8; // Provide a break opportunity\n var GL = 9; // Prohibit line breaks before and after\n var SP = 10; // Enable indirect line breaks\n var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\n // Break Opportunities\n var B2 = 12; // Provide a line break opportunity before and after the character\n var BA = 13; // Generally provide a line break opportunity after the character\n var BB = 14; // Generally provide a line break opportunity before the character\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\n var CB = 16; // Provide a line break opportunity contingent on additional information\n // Characters Prohibiting Certain Breaks\n var CL = 17; // Prohibit line breaks before\n var CP = 18; // Prohibit line breaks before\n var EX = 19; // Prohibit line breaks before\n var IN = 20; // Allow only indirect line breaks between pairs\n var NS = 21; // Allow only indirect line breaks before\n var OP = 22; // Prohibit line breaks after\n var QU = 23; // Act like they are both opening and closing\n // Numeric Context\n var IS = 24; // Prevent breaks after any and before numeric\n var NU = 25; // Form numeric expressions for line breaking purposes\n var PO = 26; // Do not break following a numeric expression\n var PR = 27; // Do not break in front of a numeric expression\n var SY = 28; // Prevent a break before; and allow a break after\n // Other Characters\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\n var EB = 32; // Do not break from following Emoji Modifier\n var EM = 33; // Do not break from preceding Emoji Base\n var H2 = 34; // Form Korean syllable blocks\n var H3 = 35; // Form Korean syllable blocks\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\n var ID = 37; // Break before or after; except in some numeric context\n var JL = 38; // Form Korean syllable blocks\n var JV = 39; // Form Korean syllable blocks\n var JT = 40; // Form Korean syllable blocks\n var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n var ea_OP = [0x2329, 0xff08];\n var BREAK_MANDATORY = '!';\n var BREAK_NOT_ALLOWED$1 = '×';\n var BREAK_ALLOWED$1 = '÷';\n var UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\n var ALPHABETICS = [AL, HL];\n var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\n var SPACE$1 = [SP, ZW];\n var PREFIX_POSTFIX = [PR, PO];\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\n var HYPHEN = [HY, BA];\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\n if (lineBreak === void 0) { lineBreak = 'strict'; }\n var types = [];\n var indices = [];\n var categories = [];\n codePoints.forEach(function (codePoint, index) {\n var classType = UnicodeTrie$1.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n }\n else {\n categories.push(false);\n }\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n if (classType === CM || classType === ZWJ$1) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n var prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n indices.push(index);\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n if (classType === SA) {\n return types.push(AL);\n }\n if (classType === AI) {\n return types.push(AL);\n }\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n }\n else {\n return types.push(AL);\n }\n }\n types.push(classType);\n });\n return [indices, types, categories];\n };\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\n var current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n var i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n var next = classTypes[i];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (current === SP) {\n var i = currentIndex;\n while (i > 0) {\n i--;\n var prev = classTypes[i];\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n var n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n var next = classTypes[n];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n };\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\n var i = currentIndex;\n while (i >= 0) {\n var type = classTypes[i];\n if (type === SP) {\n i--;\n }\n else {\n return type;\n }\n }\n return 0;\n };\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n var currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED$1;\n }\n var beforeIndex = currentIndex - 1;\n var afterIndex = currentIndex + 1;\n var current = classTypes[currentIndex];\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n var next = classTypes[afterIndex];\n if (current === CR$1 && next === LF$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB7 Do not break before spaces or zero width space.\n if (SPACE$1.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED$1;\n }\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED$1;\n }\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED$1;\n }\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n var prevIndex = currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // LB26 Do not break a Korean syllable.\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB27 Treat a Korean Syllable Block the same as ID.\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI$1 && next === RI$1) {\n var i = indicies[currentIndex];\n var count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI$1) {\n count++;\n }\n else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n }\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED$1;\n }\n return BREAK_ALLOWED$1;\n };\n var cssFormattedClasses = function (codePoints, options) {\n if (!options) {\n options = { lineBreak: 'normal', wordBreak: 'normal' };\n }\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\n }\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\n ? isLetterNumber.map(function (letterNumber, i) {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n return [indicies, classTypes, forbiddenBreakpoints];\n };\n var Break = /** @class */ (function () {\n function Break(codePoints, lineBreak, start, end) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n Break.prototype.slice = function () {\n return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end));\n };\n return Break;\n }());\n var LineBreaker = function (str, options) {\n var codePoints = toCodePoints$1(str);\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\n var length = codePoints.length;\n var lastEnd = 0;\n var nextIndex = 0;\n return {\n next: function () {\n if (nextIndex >= length) {\n return { done: true, value: null };\n }\n var lineBreak = BREAK_NOT_ALLOWED$1;\n while (nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED$1) { }\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n\n // https://www.w3.org/TR/css-syntax-3\n var FLAG_UNRESTRICTED = 1 << 0;\n var FLAG_ID = 1 << 1;\n var FLAG_INTEGER = 1 << 2;\n var FLAG_NUMBER = 1 << 3;\n var LINE_FEED = 0x000a;\n var SOLIDUS = 0x002f;\n var REVERSE_SOLIDUS = 0x005c;\n var CHARACTER_TABULATION = 0x0009;\n var SPACE = 0x0020;\n var QUOTATION_MARK = 0x0022;\n var EQUALS_SIGN = 0x003d;\n var NUMBER_SIGN = 0x0023;\n var DOLLAR_SIGN = 0x0024;\n var PERCENTAGE_SIGN = 0x0025;\n var APOSTROPHE = 0x0027;\n var LEFT_PARENTHESIS = 0x0028;\n var RIGHT_PARENTHESIS = 0x0029;\n var LOW_LINE = 0x005f;\n var HYPHEN_MINUS = 0x002d;\n var EXCLAMATION_MARK = 0x0021;\n var LESS_THAN_SIGN = 0x003c;\n var GREATER_THAN_SIGN = 0x003e;\n var COMMERCIAL_AT = 0x0040;\n var LEFT_SQUARE_BRACKET = 0x005b;\n var RIGHT_SQUARE_BRACKET = 0x005d;\n var CIRCUMFLEX_ACCENT = 0x003d;\n var LEFT_CURLY_BRACKET = 0x007b;\n var QUESTION_MARK = 0x003f;\n var RIGHT_CURLY_BRACKET = 0x007d;\n var VERTICAL_LINE = 0x007c;\n var TILDE = 0x007e;\n var CONTROL = 0x0080;\n var REPLACEMENT_CHARACTER = 0xfffd;\n var ASTERISK = 0x002a;\n var PLUS_SIGN = 0x002b;\n var COMMA = 0x002c;\n var COLON = 0x003a;\n var SEMICOLON = 0x003b;\n var FULL_STOP = 0x002e;\n var NULL = 0x0000;\n var BACKSPACE = 0x0008;\n var LINE_TABULATION = 0x000b;\n var SHIFT_OUT = 0x000e;\n var INFORMATION_SEPARATOR_ONE = 0x001f;\n var DELETE = 0x007f;\n var EOF = -1;\n var ZERO = 0x0030;\n var a = 0x0061;\n var e = 0x0065;\n var f = 0x0066;\n var u = 0x0075;\n var z = 0x007a;\n var A = 0x0041;\n var E = 0x0045;\n var F = 0x0046;\n var U = 0x0055;\n var Z = 0x005a;\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\n var isHex = function (codePoint) {\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\n };\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\n var isWhiteSpace = function (codePoint) {\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\n };\n var isNameStartCodePoint = function (codePoint) {\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\n };\n var isNameCodePoint = function (codePoint) {\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\n };\n var isNonPrintableCodePoint = function (codePoint) {\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE);\n };\n var isValidEscape = function (c1, c2) {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n return c2 !== LINE_FEED;\n };\n var isIdentifierStart = function (c1, c2, c3) {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n }\n else if (isNameStartCodePoint(c1)) {\n return true;\n }\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n };\n var isNumberStart = function (c1, c2, c3) {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n return c2 === FULL_STOP && isDigit(c3);\n }\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n return isDigit(c1);\n };\n var stringToNumber = function (codePoints) {\n var c = 0;\n var sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n var integers = [];\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0;\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n var fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n var fracd = fraction.length;\n var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0;\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n var expsign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n var exponent = [];\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0;\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n };\n var LEFT_PARENTHESIS_TOKEN = {\n type: 2 /* LEFT_PARENTHESIS_TOKEN */\n };\n var RIGHT_PARENTHESIS_TOKEN = {\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */\n };\n var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\n var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\n var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\n var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\n var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\n var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\n var LEFT_CURLY_BRACKET_TOKEN = {\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */\n };\n var RIGHT_CURLY_BRACKET_TOKEN = {\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */\n };\n var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\n var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\n var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\n var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\n var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\n var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\n var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\n var LEFT_SQUARE_BRACKET_TOKEN = {\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */\n };\n var RIGHT_SQUARE_BRACKET_TOKEN = {\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\n };\n var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\n var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\n var Tokenizer = /** @class */ (function () {\n function Tokenizer() {\n this._value = [];\n }\n Tokenizer.prototype.write = function (chunk) {\n this._value = this._value.concat(toCodePoints$1(chunk));\n };\n Tokenizer.prototype.read = function () {\n var tokens = [];\n var token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n };\n Tokenizer.prototype.consumeToken = function () {\n var codePoint = this.consumeCodePoint();\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n var value = this.consumeName();\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n var e1 = codePoint;\n var e2 = this.peekCodePoint(0);\n var e3 = this.peekCodePoint(1);\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n var c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n var a1 = this.peekCodePoint(0);\n var a2 = this.peekCodePoint(1);\n var a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n var value = this.consumeName();\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n var u1 = this.peekCodePoint(0);\n var u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\n };\n Tokenizer.prototype.consumeCodePoint = function () {\n var value = this._value.shift();\n return typeof value === 'undefined' ? -1 : value;\n };\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\n this._value.unshift(codePoint);\n };\n Tokenizer.prototype.peekCodePoint = function (delta) {\n if (delta >= this._value.length) {\n return -1;\n }\n return this._value[delta];\n };\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\n var digits = [];\n var codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n if (questionMarks) {\n var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\n var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\n }\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n var endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\n }\n else {\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\n }\n };\n Tokenizer.prototype.consumeIdentLikeToken = function () {\n var value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n }\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\n }\n return { type: 20 /* IDENT_TOKEN */, value: value };\n };\n Tokenizer.prototype.consumeUrlToken = function () {\n var value = [];\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF) {\n return { type: 22 /* URL_TOKEN */, value: '' };\n }\n var next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === 0 /* STRING_TOKEN */) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\n }\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n }\n else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n }\n else {\n value.push(codePoint);\n }\n }\n };\n Tokenizer.prototype.consumeWhiteSpace = function () {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n };\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n };\n Tokenizer.prototype.consumeStringSlice = function (count) {\n var SLICE_STACK_SIZE = 50000;\n var value = '';\n while (count > 0) {\n var amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n return value;\n };\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\n var value = '';\n var i = 0;\n do {\n var codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return { type: 0 /* STRING_TOKEN */, value: value };\n }\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n if (codePoint === REVERSE_SOLIDUS) {\n var next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n }\n else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n i++;\n } while (true);\n };\n Tokenizer.prototype.consumeNumber = function () {\n var repr = [];\n var type = FLAG_INTEGER;\n var c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n return [stringToNumber(repr), type];\n };\n Tokenizer.prototype.consumeNumericToken = function () {\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isIdentifierStart(c1, c2, c3)) {\n var unit = this.consumeName();\n return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };\n }\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };\n }\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\n };\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\n var codePoint = this.consumeCodePoint();\n if (isHex(codePoint)) {\n var hex = fromCodePoint$1(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint$1(this.consumeCodePoint());\n }\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n var hexCodePoint = parseInt(hex, 16);\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n return hexCodePoint;\n }\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n return codePoint;\n };\n Tokenizer.prototype.consumeName = function () {\n var result = '';\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint$1(codePoint);\n }\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\n }\n else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n };\n return Tokenizer;\n }());\n\n var Parser = /** @class */ (function () {\n function Parser(tokens) {\n this._tokens = tokens;\n }\n Parser.create = function (value) {\n var tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n };\n Parser.parseValue = function (value) {\n return Parser.create(value).parseComponentValue();\n };\n Parser.parseValues = function (value) {\n return Parser.create(value).parseComponentValues();\n };\n Parser.prototype.parseComponentValue = function () {\n var token = this.consumeToken();\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\n token = this.consumeToken();\n }\n if (token.type === 32 /* EOF_TOKEN */) {\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\n }\n this.reconsumeToken(token);\n var value = this.consumeComponentValue();\n do {\n token = this.consumeToken();\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\n if (token.type === 32 /* EOF_TOKEN */) {\n return value;\n }\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\n };\n Parser.prototype.parseComponentValues = function () {\n var values = [];\n while (true) {\n var value = this.consumeComponentValue();\n if (value.type === 32 /* EOF_TOKEN */) {\n return values;\n }\n values.push(value);\n values.push();\n }\n };\n Parser.prototype.consumeComponentValue = function () {\n var token = this.consumeToken();\n switch (token.type) {\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\n return this.consumeSimpleBlock(token.type);\n case 19 /* FUNCTION_TOKEN */:\n return this.consumeFunction(token);\n }\n return token;\n };\n Parser.prototype.consumeSimpleBlock = function (type) {\n var block = { type: type, values: [] };\n var token = this.consumeToken();\n while (true) {\n if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) {\n return block;\n }\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n };\n Parser.prototype.consumeFunction = function (functionToken) {\n var cssFunction = {\n name: functionToken.value,\n values: [],\n type: 18 /* FUNCTION */\n };\n while (true) {\n var token = this.consumeToken();\n if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) {\n return cssFunction;\n }\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n };\n Parser.prototype.consumeToken = function () {\n var token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n };\n Parser.prototype.reconsumeToken = function (token) {\n this._tokens.unshift(token);\n };\n return Parser;\n }());\n var isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; };\n var isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; };\n var isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; };\n var isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; };\n var isIdentWithValue = function (token, value) {\n return isIdentToken(token) && token.value === value;\n };\n var nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; };\n var nonFunctionArgSeparator = function (token) {\n return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */;\n };\n var parseFunctionArgs = function (tokens) {\n var args = [];\n var arg = [];\n tokens.forEach(function (token) {\n if (token.type === 4 /* COMMA_TOKEN */) {\n if (arg.length === 0) {\n throw new Error(\"Error parsing function args, zero tokens for arg\");\n }\n args.push(arg);\n arg = [];\n return;\n }\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n return args;\n };\n var isEndingTokenFor = function (token, type) {\n if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) {\n return true;\n }\n if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) {\n return true;\n }\n return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */;\n };\n\n var isLength = function (token) {\n return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */;\n };\n\n var isLengthPercentage = function (token) {\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\n };\n var parseLengthPercentageTuple = function (tokens) {\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\n };\n var ZERO_LENGTH = {\n type: 17 /* NUMBER_TOKEN */,\n number: 0,\n flags: FLAG_INTEGER\n };\n var FIFTY_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var HUNDRED_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 100,\n flags: FLAG_INTEGER\n };\n var getAbsoluteValueForTuple = function (tuple, width, height) {\n var x = tuple[0], y = tuple[1];\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n };\n var getAbsoluteValue = function (token, parent) {\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n return (token.number / 100) * parent;\n }\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n return token.number;\n };\n\n var DEG = 'deg';\n var GRAD = 'grad';\n var RAD = 'rad';\n var TURN = 'turn';\n var angle = {\n name: 'angle',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n throw new Error(\"Unsupported angle type\");\n }\n };\n var isAngle = function (value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n };\n var parseNamedSide = function (tokens) {\n var sideOrCorner = tokens\n .filter(isIdentToken)\n .map(function (ident) { return ident.value; })\n .join(' ');\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n return 0;\n };\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color$1 = {\n name: 'color',\n parse: function (context, value) {\n if (value.type === 18 /* FUNCTION */) {\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\n }\n return colorFunction(context, value.values);\n }\n if (value.type === 5 /* HASH_TOKEN */) {\n if (value.value.length === 3) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n if (value.value.length === 4) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n var a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n if (value.value.length === 6) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n if (value.value.length === 8) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n var a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n if (value.type === 20 /* IDENT_TOKEN */) {\n var namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n return COLORS.TRANSPARENT;\n }\n };\n var isTransparent = function (color) { return (0xff & color) === 0; };\n var asString = function (color) {\n var alpha = 0xff & color;\n var blue = 0xff & (color >> 8);\n var green = 0xff & (color >> 16);\n var red = 0xff & (color >> 24);\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\n };\n var pack = function (r, g, b, a) {\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n };\n var getTokenColorValue = function (token, i) {\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n var max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n return 0;\n };\n var rgb = function (_context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n if (tokens.length === 3) {\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\n return pack(r, g, b, 1);\n }\n if (tokens.length === 4) {\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\n return pack(r, g, b, a);\n }\n return 0;\n };\n function hue2rgb(t1, t2, hue) {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n }\n else if (hue < 1 / 2) {\n return t2;\n }\n else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n }\n else {\n return t1;\n }\n }\n var hsl = function (context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\n var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var t1 = l * 2 - t2;\n var r = hue2rgb(t1, t2, h + 1 / 3);\n var g = hue2rgb(t1, t2, h);\n var b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n };\n var SUPPORTED_COLOR_FUNCTIONS = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n };\n var parseColor = function (context, value) {\n return color$1.parse(context, Parser.create(value).parseComponentValue());\n };\n var COLORS = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n };\n\n var backgroundClip = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundColor = {\n name: \"background-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var parseColorStop = function (context, args) {\n var color = color$1.parse(context, args[0]);\n var stop = args[1];\n return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null };\n };\n var processColorStops = function (stops, lineLength) {\n var first = stops[0];\n var last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n var processStops = [];\n var previous = 0;\n for (var i = 0; i < stops.length; i++) {\n var stop_1 = stops[i].stop;\n if (stop_1 !== null) {\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n }\n else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n }\n else {\n processStops.push(null);\n }\n }\n var gapBegin = null;\n for (var i = 0; i < processStops.length; i++) {\n var stop_2 = processStops[i];\n if (stop_2 === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n }\n else if (gapBegin !== null) {\n var gapLength = i - gapBegin;\n var beforeGap = processStops[gapBegin - 1];\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\n for (var g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n return stops.map(function (_a, i) {\n var color = _a.color;\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\n });\n };\n var getAngleFromCorner = function (corner, width, height) {\n var centerX = width / 2;\n var centerY = height / 2;\n var x = getAbsoluteValue(corner[0], width) - centerX;\n var y = centerY - getAbsoluteValue(corner[1], height);\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n };\n var calculateGradientDirection = function (angle, width, height) {\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var halfLineLength = lineLength / 2;\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n };\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\n var findCorner = function (width, height, x, y, closest) {\n var corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n return corners.reduce(function (stat, corner) {\n var cx = corner[0], cy = corner[1];\n var d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n return stat;\n }, {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }).optimumCorner;\n };\n var calculateRadius = function (gradient, x, y, width, height) {\n var rx = 0;\n var ry = 0;\n switch (gradient.size) {\n case 0 /* CLOSEST_SIDE */:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 2 /* CLOSEST_CORNER */:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n case 1 /* FARTHEST_SIDE */:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 3 /* FARTHEST_CORNER */:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n return [rx, ry];\n };\n\n var linearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = angle.parse(context, firstToken);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\n };\n\n var prefixLinearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return {\n angle: angle$1,\n stops: stops,\n type: 1 /* LINEAR_GRADIENT */\n };\n };\n\n var webkitGradient = function (context, tokens) {\n var angle = deg(180);\n var stops = [];\n var type = 1 /* LINEAR_GRADIENT */;\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = 1 /* LINEAR_GRADIENT */;\n return;\n }\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = 2 /* RADIAL_GRADIENT */;\n return;\n }\n }\n if (firstToken.type === 18 /* FUNCTION */) {\n if (firstToken.name === 'from') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: ZERO_LENGTH, color: color });\n }\n else if (firstToken.name === 'to') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: HUNDRED_PERCENT, color: color });\n }\n else if (firstToken.name === 'color-stop') {\n var values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n var color = color$1.parse(context, values[1]);\n var stop_1 = values[0];\n if (isNumberToken(stop_1)) {\n stops.push({\n stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags },\n color: color\n });\n }\n }\n }\n }\n });\n return type === 1 /* LINEAR_GRADIENT */\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops: stops,\n type: type\n }\n : { size: size, shape: shape, stops: stops, position: position, type: type };\n };\n\n var CLOSEST_SIDE = 'closest-side';\n var FARTHEST_SIDE = 'farthest-side';\n var CLOSEST_CORNER = 'closest-corner';\n var FARTHEST_CORNER = 'farthest-corner';\n var CIRCLE = 'circle';\n var ELLIPSE = 'ellipse';\n var COVER = 'cover';\n var CONTAIN = 'contain';\n var radialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n var isAtPosition_1 = false;\n isColorStop = arg.reduce(function (acc, token) {\n if (isAtPosition_1) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n }\n else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case 'at':\n isAtPosition_1 = true;\n return false;\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var prefixRadialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n else if (i === 1) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var isLinearGradient = function (background) {\n return background.type === 1 /* LINEAR_GRADIENT */;\n };\n var isRadialGradient = function (background) {\n return background.type === 2 /* RADIAL_GRADIENT */;\n };\n var image = {\n name: 'image',\n parse: function (context, value) {\n if (value.type === 22 /* URL_TOKEN */) {\n var image_1 = { url: value.value, type: 0 /* URL */ };\n context.cache.addImage(value.value);\n return image_1;\n }\n if (value.type === 18 /* FUNCTION */) {\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\n }\n return imageFunction(context, value.values);\n }\n throw new Error(\"Unsupported image type \" + value.type);\n }\n };\n function isSupportedImage(value) {\n return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') &&\n (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]));\n }\n var SUPPORTED_IMAGE_FUNCTIONS = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n };\n\n var backgroundImage = {\n name: 'background-image',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens\n .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); })\n .map(function (value) { return image.parse(context, value); });\n }\n };\n\n var backgroundOrigin = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundPosition = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) { return values.filter(isLengthPercentage); })\n .map(parseLengthPercentageTuple);\n }\n };\n\n var backgroundRepeat = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) {\n return values\n .filter(isIdentToken)\n .map(function (token) { return token.value; })\n .join(' ');\n })\n .map(parseBackgroundRepeat);\n }\n };\n var parseBackgroundRepeat = function (value) {\n switch (value) {\n case 'no-repeat':\n return 1 /* NO_REPEAT */;\n case 'repeat-x':\n case 'repeat no-repeat':\n return 2 /* REPEAT_X */;\n case 'repeat-y':\n case 'no-repeat repeat':\n return 3 /* REPEAT_Y */;\n case 'repeat':\n default:\n return 0 /* REPEAT */;\n }\n };\n\n var BACKGROUND_SIZE;\n (function (BACKGROUND_SIZE) {\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\n var backgroundSize = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\n }\n };\n var isBackgroundSizeInfoToken = function (value) {\n return isIdentToken(value) || isLengthPercentage(value);\n };\n\n var borderColorForSide = function (side) { return ({\n name: \"border-\" + side + \"-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n }); };\n var borderTopColor = borderColorForSide('top');\n var borderRightColor = borderColorForSide('right');\n var borderBottomColor = borderColorForSide('bottom');\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\n name: \"border-radius-\" + side,\n initialValue: '0 0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\n }\n }); };\n var borderTopLeftRadius = borderRadiusForSide('top-left');\n var borderTopRightRadius = borderRadiusForSide('top-right');\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var borderStyleForSide = function (side) { return ({\n name: \"border-\" + side + \"-style\",\n initialValue: 'solid',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, style) {\n switch (style) {\n case 'none':\n return 0 /* NONE */;\n case 'dashed':\n return 2 /* DASHED */;\n case 'dotted':\n return 3 /* DOTTED */;\n case 'double':\n return 4 /* DOUBLE */;\n }\n return 1 /* SOLID */;\n }\n }); };\n var borderTopStyle = borderStyleForSide('top');\n var borderRightStyle = borderStyleForSide('right');\n var borderBottomStyle = borderStyleForSide('bottom');\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\n name: \"border-\" + side + \"-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n }); };\n var borderTopWidth = borderWidthForSide('top');\n var borderRightWidth = borderWidthForSide('right');\n var borderBottomWidth = borderWidthForSide('bottom');\n var borderLeftWidth = borderWidthForSide('left');\n\n var color = {\n name: \"color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var direction = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, direction) {\n switch (direction) {\n case 'rtl':\n return 1 /* RTL */;\n case 'ltr':\n default:\n return 0 /* LTR */;\n }\n }\n };\n\n var display = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\n return bit | parseDisplayValue(token.value);\n }, 0 /* NONE */);\n }\n };\n var parseDisplayValue = function (display) {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return 2 /* BLOCK */;\n case 'inline':\n return 4 /* INLINE */;\n case 'run-in':\n return 8 /* RUN_IN */;\n case 'flow':\n return 16 /* FLOW */;\n case 'flow-root':\n return 32 /* FLOW_ROOT */;\n case 'table':\n return 64 /* TABLE */;\n case 'flex':\n case '-webkit-flex':\n return 128 /* FLEX */;\n case 'grid':\n case '-ms-grid':\n return 256 /* GRID */;\n case 'ruby':\n return 512 /* RUBY */;\n case 'subgrid':\n return 1024 /* SUBGRID */;\n case 'list-item':\n return 2048 /* LIST_ITEM */;\n case 'table-row-group':\n return 4096 /* TABLE_ROW_GROUP */;\n case 'table-header-group':\n return 8192 /* TABLE_HEADER_GROUP */;\n case 'table-footer-group':\n return 16384 /* TABLE_FOOTER_GROUP */;\n case 'table-row':\n return 32768 /* TABLE_ROW */;\n case 'table-cell':\n return 65536 /* TABLE_CELL */;\n case 'table-column-group':\n return 131072 /* TABLE_COLUMN_GROUP */;\n case 'table-column':\n return 262144 /* TABLE_COLUMN */;\n case 'table-caption':\n return 524288 /* TABLE_CAPTION */;\n case 'ruby-base':\n return 1048576 /* RUBY_BASE */;\n case 'ruby-text':\n return 2097152 /* RUBY_TEXT */;\n case 'ruby-base-container':\n return 4194304 /* RUBY_BASE_CONTAINER */;\n case 'ruby-text-container':\n return 8388608 /* RUBY_TEXT_CONTAINER */;\n case 'contents':\n return 16777216 /* CONTENTS */;\n case 'inline-block':\n return 33554432 /* INLINE_BLOCK */;\n case 'inline-list-item':\n return 67108864 /* INLINE_LIST_ITEM */;\n case 'inline-table':\n return 134217728 /* INLINE_TABLE */;\n case 'inline-flex':\n return 268435456 /* INLINE_FLEX */;\n case 'inline-grid':\n return 536870912 /* INLINE_GRID */;\n }\n return 0 /* NONE */;\n };\n\n var float = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, float) {\n switch (float) {\n case 'left':\n return 1 /* LEFT */;\n case 'right':\n return 2 /* RIGHT */;\n case 'inline-start':\n return 3 /* INLINE_START */;\n case 'inline-end':\n return 4 /* INLINE_END */;\n }\n return 0 /* NONE */;\n }\n };\n\n var letterSpacing = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') {\n return 0;\n }\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 15 /* DIMENSION_TOKEN */) {\n return token.number;\n }\n return 0;\n }\n };\n\n var LINE_BREAK;\n (function (LINE_BREAK) {\n LINE_BREAK[\"NORMAL\"] = \"normal\";\n LINE_BREAK[\"STRICT\"] = \"strict\";\n })(LINE_BREAK || (LINE_BREAK = {}));\n var lineBreak = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, lineBreak) {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n };\n\n var lineHeight = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n };\n var computeLineHeight = function (token, fontSize) {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n }\n else if (token.type === 17 /* NUMBER_TOKEN */) {\n return fontSize * token.number;\n }\n else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n return fontSize;\n };\n\n var listStyleImage = {\n name: 'list-style-image',\n initialValue: 'none',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n return image.parse(context, token);\n }\n };\n\n var listStylePosition = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'inside':\n return 0 /* INSIDE */;\n case 'outside':\n default:\n return 1 /* OUTSIDE */;\n }\n }\n };\n\n var listStyleType = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, type) {\n switch (type) {\n case 'disc':\n return 0 /* DISC */;\n case 'circle':\n return 1 /* CIRCLE */;\n case 'square':\n return 2 /* SQUARE */;\n case 'decimal':\n return 3 /* DECIMAL */;\n case 'cjk-decimal':\n return 4 /* CJK_DECIMAL */;\n case 'decimal-leading-zero':\n return 5 /* DECIMAL_LEADING_ZERO */;\n case 'lower-roman':\n return 6 /* LOWER_ROMAN */;\n case 'upper-roman':\n return 7 /* UPPER_ROMAN */;\n case 'lower-greek':\n return 8 /* LOWER_GREEK */;\n case 'lower-alpha':\n return 9 /* LOWER_ALPHA */;\n case 'upper-alpha':\n return 10 /* UPPER_ALPHA */;\n case 'arabic-indic':\n return 11 /* ARABIC_INDIC */;\n case 'armenian':\n return 12 /* ARMENIAN */;\n case 'bengali':\n return 13 /* BENGALI */;\n case 'cambodian':\n return 14 /* CAMBODIAN */;\n case 'cjk-earthly-branch':\n return 15 /* CJK_EARTHLY_BRANCH */;\n case 'cjk-heavenly-stem':\n return 16 /* CJK_HEAVENLY_STEM */;\n case 'cjk-ideographic':\n return 17 /* CJK_IDEOGRAPHIC */;\n case 'devanagari':\n return 18 /* DEVANAGARI */;\n case 'ethiopic-numeric':\n return 19 /* ETHIOPIC_NUMERIC */;\n case 'georgian':\n return 20 /* GEORGIAN */;\n case 'gujarati':\n return 21 /* GUJARATI */;\n case 'gurmukhi':\n return 22 /* GURMUKHI */;\n case 'hebrew':\n return 22 /* HEBREW */;\n case 'hiragana':\n return 23 /* HIRAGANA */;\n case 'hiragana-iroha':\n return 24 /* HIRAGANA_IROHA */;\n case 'japanese-formal':\n return 25 /* JAPANESE_FORMAL */;\n case 'japanese-informal':\n return 26 /* JAPANESE_INFORMAL */;\n case 'kannada':\n return 27 /* KANNADA */;\n case 'katakana':\n return 28 /* KATAKANA */;\n case 'katakana-iroha':\n return 29 /* KATAKANA_IROHA */;\n case 'khmer':\n return 30 /* KHMER */;\n case 'korean-hangul-formal':\n return 31 /* KOREAN_HANGUL_FORMAL */;\n case 'korean-hanja-formal':\n return 32 /* KOREAN_HANJA_FORMAL */;\n case 'korean-hanja-informal':\n return 33 /* KOREAN_HANJA_INFORMAL */;\n case 'lao':\n return 34 /* LAO */;\n case 'lower-armenian':\n return 35 /* LOWER_ARMENIAN */;\n case 'malayalam':\n return 36 /* MALAYALAM */;\n case 'mongolian':\n return 37 /* MONGOLIAN */;\n case 'myanmar':\n return 38 /* MYANMAR */;\n case 'oriya':\n return 39 /* ORIYA */;\n case 'persian':\n return 40 /* PERSIAN */;\n case 'simp-chinese-formal':\n return 41 /* SIMP_CHINESE_FORMAL */;\n case 'simp-chinese-informal':\n return 42 /* SIMP_CHINESE_INFORMAL */;\n case 'tamil':\n return 43 /* TAMIL */;\n case 'telugu':\n return 44 /* TELUGU */;\n case 'thai':\n return 45 /* THAI */;\n case 'tibetan':\n return 46 /* TIBETAN */;\n case 'trad-chinese-formal':\n return 47 /* TRAD_CHINESE_FORMAL */;\n case 'trad-chinese-informal':\n return 48 /* TRAD_CHINESE_INFORMAL */;\n case 'upper-armenian':\n return 49 /* UPPER_ARMENIAN */;\n case 'disclosure-open':\n return 50 /* DISCLOSURE_OPEN */;\n case 'disclosure-closed':\n return 51 /* DISCLOSURE_CLOSED */;\n case 'none':\n default:\n return -1 /* NONE */;\n }\n }\n };\n\n var marginForSide = function (side) { return ({\n name: \"margin-\" + side,\n initialValue: '0',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n }); };\n var marginTop = marginForSide('top');\n var marginRight = marginForSide('right');\n var marginBottom = marginForSide('bottom');\n var marginLeft = marginForSide('left');\n\n var overflow = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (overflow) {\n switch (overflow.value) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'scroll':\n return 2 /* SCROLL */;\n case 'clip':\n return 3 /* CLIP */;\n case 'auto':\n return 4 /* AUTO */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n });\n }\n };\n\n var overflowWrap = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'break-word':\n return \"break-word\" /* BREAK_WORD */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var paddingForSide = function (side) { return ({\n name: \"padding-\" + side,\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length-percentage'\n }); };\n var paddingTop = paddingForSide('top');\n var paddingRight = paddingForSide('right');\n var paddingBottom = paddingForSide('bottom');\n var paddingLeft = paddingForSide('left');\n\n var textAlign = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textAlign) {\n switch (textAlign) {\n case 'right':\n return 2 /* RIGHT */;\n case 'center':\n case 'justify':\n return 1 /* CENTER */;\n case 'left':\n default:\n return 0 /* LEFT */;\n }\n }\n };\n\n var position = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'relative':\n return 1 /* RELATIVE */;\n case 'absolute':\n return 2 /* ABSOLUTE */;\n case 'fixed':\n return 3 /* FIXED */;\n case 'sticky':\n return 4 /* STICKY */;\n }\n return 0 /* STATIC */;\n }\n };\n\n var textShadow = {\n name: 'text-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else {\n shadow.blur = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var textTransform = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textTransform) {\n switch (textTransform) {\n case 'uppercase':\n return 2 /* UPPERCASE */;\n case 'lowercase':\n return 1 /* LOWERCASE */;\n case 'capitalize':\n return 3 /* CAPITALIZE */;\n }\n return 0 /* NONE */;\n }\n };\n\n var transform$1 = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n if (token.type === 18 /* FUNCTION */) {\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\n }\n return transformFunction(token.values);\n }\n return null;\n }\n };\n var matrix = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n return values.length === 6 ? values : null;\n };\n // doesn't support 3D transforms at the moment\n var matrix3d = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15];\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n };\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\n matrix: matrix,\n matrix3d: matrix3d\n };\n\n var DEFAULT_VALUE = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\n var transformOrigin = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var origins = tokens.filter(isLengthPercentage);\n if (origins.length !== 2) {\n return DEFAULT;\n }\n return [origins[0], origins[1]];\n }\n };\n\n var visibility = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, visibility) {\n switch (visibility) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'collapse':\n return 2 /* COLLAPSE */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n }\n };\n\n var WORD_BREAK;\n (function (WORD_BREAK) {\n WORD_BREAK[\"NORMAL\"] = \"normal\";\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\n })(WORD_BREAK || (WORD_BREAK = {}));\n var wordBreak = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, wordBreak) {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n };\n\n var zIndex = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */) {\n return { auto: true, order: 0 };\n }\n if (isNumberToken(token)) {\n return { auto: false, order: token.number };\n }\n throw new Error(\"Invalid z-index number parsed\");\n }\n };\n\n var time = {\n name: 'time',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n throw new Error(\"Unsupported time type\");\n }\n };\n\n var opacity = {\n name: 'opacity',\n initialValue: '1',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n };\n\n var textDecorationColor = {\n name: \"text-decoration-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var textDecorationLine = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens\n .filter(isIdentToken)\n .map(function (token) {\n switch (token.value) {\n case 'underline':\n return 1 /* UNDERLINE */;\n case 'overline':\n return 2 /* OVERLINE */;\n case 'line-through':\n return 3 /* LINE_THROUGH */;\n case 'none':\n return 4 /* BLINK */;\n }\n return 0 /* NONE */;\n })\n .filter(function (line) { return line !== 0 /* NONE */; });\n }\n };\n\n var fontFamily = {\n name: \"font-family\",\n initialValue: '',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var accumulator = [];\n var results = [];\n tokens.forEach(function (token) {\n switch (token.type) {\n case 20 /* IDENT_TOKEN */:\n case 0 /* STRING_TOKEN */:\n accumulator.push(token.value);\n break;\n case 17 /* NUMBER_TOKEN */:\n accumulator.push(token.number.toString());\n break;\n case 4 /* COMMA_TOKEN */:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\n }\n };\n\n var fontSize = {\n name: \"font-size\",\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length'\n };\n\n var fontWeight = {\n name: 'font-weight',\n initialValue: 'normal',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n return 400;\n }\n };\n\n var fontVariant = {\n name: 'font-variant',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\n }\n };\n\n var fontStyle = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'oblique':\n return \"oblique\" /* OBLIQUE */;\n case 'italic':\n return \"italic\" /* ITALIC */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\n name: 'content',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens;\n }\n };\n\n var counterIncrement = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var increments = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (counter.type === 20 /* IDENT_TOKEN */) {\n var increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({ counter: counter.value, increment: increment });\n }\n }\n return increments;\n }\n };\n\n var counterReset = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var resets = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n var reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({ counter: counter.value, reset: reset });\n }\n }\n return resets;\n }\n };\n\n var duration = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (context, tokens) {\n return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); });\n }\n };\n\n var quotes = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var quotes = [];\n var filtered = tokens.filter(isStringToken);\n if (filtered.length % 2 !== 0) {\n return null;\n }\n for (var i = 0; i < filtered.length; i += 2) {\n var open_1 = filtered[i].value;\n var close_1 = filtered[i + 1].value;\n quotes.push({ open: open_1, close: close_1 });\n }\n return quotes;\n }\n };\n var getQuote = function (quotes, depth, open) {\n if (!quotes) {\n return '';\n }\n var quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n return open ? quote.open : quote.close;\n };\n\n var boxShadow = {\n name: 'box-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n }\n else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else if (c === 2) {\n shadow.blur = token;\n }\n else {\n shadow.spread = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var paintOrder = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\n var layers = [];\n tokens.filter(isIdentToken).forEach(function (token) {\n switch (token.value) {\n case 'stroke':\n layers.push(1 /* STROKE */);\n break;\n case 'fill':\n layers.push(0 /* FILL */);\n break;\n case 'markers':\n layers.push(2 /* MARKERS */);\n break;\n }\n });\n DEFAULT_VALUE.forEach(function (value) {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n return layers;\n }\n };\n\n var webkitTextStrokeColor = {\n name: \"-webkit-text-stroke-color\",\n initialValue: 'currentcolor',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var webkitTextStrokeWidth = {\n name: \"-webkit-text-stroke-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\n function CSSParsedDeclaration(context, declaration) {\n var _a, _b;\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n var overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);\n this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform$1, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n CSSParsedDeclaration.prototype.isVisible = function () {\n return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;\n };\n CSSParsedDeclaration.prototype.isTransparent = function () {\n return isTransparent(this.backgroundColor);\n };\n CSSParsedDeclaration.prototype.isTransformed = function () {\n return this.transform !== null;\n };\n CSSParsedDeclaration.prototype.isPositioned = function () {\n return this.position !== 0 /* STATIC */;\n };\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\n return this.isPositioned() && !this.zIndex.auto;\n };\n CSSParsedDeclaration.prototype.isFloating = function () {\n return this.float !== 0 /* NONE */;\n };\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\n return (contains(this.display, 4 /* INLINE */) ||\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\n contains(this.display, 536870912 /* INLINE_GRID */) ||\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\n contains(this.display, 134217728 /* INLINE_TABLE */));\n };\n return CSSParsedDeclaration;\n }());\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\n function CSSParsedPseudoDeclaration(context, declaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n return CSSParsedPseudoDeclaration;\n }());\n var CSSParsedCounterDeclaration = /** @class */ (function () {\n function CSSParsedCounterDeclaration(context, declaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n return CSSParsedCounterDeclaration;\n }());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var parse = function (context, descriptor, style) {\n var tokenizer = new Tokenizer();\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n var parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case 2 /* IDENT_VALUE */:\n var token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case 0 /* VALUE */:\n return descriptor.parse(context, parser.parseComponentValue());\n case 1 /* LIST */:\n return descriptor.parse(context, parser.parseComponentValues());\n case 4 /* TOKEN_VALUE */:\n return parser.parseComponentValue();\n case 3 /* TYPE_VALUE */:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return color$1.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n var length_1 = parser.parseComponentValue();\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\n case 'length-percentage':\n var value_1 = parser.parseComponentValue();\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n };\n\n var elementDebuggerAttribute = 'data-html2canvas-debug';\n var getElementDebugType = function (element) {\n var attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return 1 /* ALL */;\n case 'clone':\n return 2 /* CLONE */;\n case 'parse':\n return 3 /* PARSE */;\n case 'render':\n return 4 /* RENDER */;\n default:\n return 0 /* NONE */;\n }\n };\n var isDebugging = function (element, type) {\n var elementType = getElementDebugType(element);\n return elementType === 1 /* ALL */ || type === elementType;\n };\n\n var ElementContainer = /** @class */ (function () {\n function ElementContainer(context, element) {\n this.context = context;\n this.textNodes = [];\n this.elements = [];\n this.flags = 0;\n if (isDebugging(element, 3 /* PARSE */)) {\n debugger;\n }\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) {\n element.style.animationDuration = '0s';\n }\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n this.bounds = parseBounds(this.context, element);\n if (isDebugging(element, 4 /* RENDER */)) {\n this.flags |= 16 /* DEBUG_RENDER */;\n }\n }\n return ElementContainer;\n }());\n\n /*\n * text-segmentation 1.0.3 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1 = 0; i$1 < chars$1.length; i$1++) {\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\n }\n var decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n var slice16 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64 = function (base64, _byteLength) {\n var buffer = decode(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n var Prepend = 1;\n var CR = 2;\n var LF = 3;\n var Control = 4;\n var Extend = 5;\n var SpacingMark = 7;\n var L = 8;\n var V = 9;\n var T = 10;\n var LV = 11;\n var LVT = 12;\n var ZWJ = 13;\n var Extended_Pictographic = 14;\n var RI = 15;\n var toCodePoints = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var UnicodeTrie = createTrieFromBase64(base64);\n var BREAK_NOT_ALLOWED = '×';\n var BREAK_ALLOWED = '÷';\n var codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); };\n var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\n var prevIndex = index - 2;\n var prev = classTypes[prevIndex];\n var current = classTypes[index - 1];\n var next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n var countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n return BREAK_ALLOWED;\n };\n var GraphemeBreaker = function (str) {\n var codePoints = toCodePoints(str);\n var length = codePoints.length;\n var index = 0;\n var lastEnd = 0;\n var classTypes = codePoints.map(codePointToClass);\n return {\n next: function () {\n if (index >= length) {\n return { done: true, value: null };\n }\n var graphemeBreak = BREAK_NOT_ALLOWED;\n while (index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { }\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n var splitGraphemes = function (str) {\n var breaker = GraphemeBreaker(str);\n var graphemes = [];\n var bk;\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n return graphemes;\n };\n\n var testRangeBounds = function (document) {\n var TEST_HEIGHT = 123;\n if (document.createRange) {\n var range = document.createRange();\n if (range.getBoundingClientRect) {\n var testElement = document.createElement('boundtest');\n testElement.style.height = TEST_HEIGHT + \"px\";\n testElement.style.display = 'block';\n document.body.appendChild(testElement);\n range.selectNode(testElement);\n var rangeBounds = range.getBoundingClientRect();\n var rangeHeight = Math.round(rangeBounds.height);\n document.body.removeChild(testElement);\n if (rangeHeight === TEST_HEIGHT) {\n return true;\n }\n }\n }\n return false;\n };\n var testIOSLineBreak = function (document) {\n var testElement = document.createElement('boundtest');\n testElement.style.width = '50px';\n testElement.style.display = 'block';\n testElement.style.fontSize = '12px';\n testElement.style.letterSpacing = '0px';\n testElement.style.wordSpacing = '0px';\n document.body.appendChild(testElement);\n var range = document.createRange();\n testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : '';\n var node = testElement.firstChild;\n var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); });\n var offset = 0;\n var prev = {};\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\n var supports = textList.every(function (text, i) {\n range.setStart(node, offset);\n range.setEnd(node, offset + text.length);\n var rect = range.getBoundingClientRect();\n offset += text.length;\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\n prev = rect;\n if (i === 0) {\n return true;\n }\n return boundAhead;\n });\n document.body.removeChild(testElement);\n return supports;\n };\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\n var testSVG = function (document) {\n var img = new Image();\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n img.src = \"data:image/svg+xml,\";\n try {\n ctx.drawImage(img, 0, 0);\n canvas.toDataURL();\n }\n catch (e) {\n return false;\n }\n return true;\n };\n var isGreenPixel = function (data) {\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\n };\n var testForeignObject = function (document) {\n var canvas = document.createElement('canvas');\n var size = 100;\n canvas.width = size;\n canvas.height = size;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return Promise.reject(false);\n }\n ctx.fillStyle = 'rgb(0, 255, 0)';\n ctx.fillRect(0, 0, size, size);\n var img = new Image();\n var greenImageSrc = canvas.toDataURL();\n img.src = greenImageSrc;\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n return loadSerializedSVG$1(svg)\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, size, size).data;\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n var node = document.createElement('div');\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\n node.style.height = size + \"px\";\n // Firefox 55 does not render inline tags\n return isGreenPixel(data)\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(function () { return false; });\n };\n var createForeignObjectSVG = function (width, height, x, y, node) {\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svg;\n };\n var loadSerializedSVG$1 = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n };\n var FEATURES = {\n get SUPPORT_RANGE_BOUNDS() {\n var value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\n return value;\n },\n get SUPPORT_WORD_BREAKING() {\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value });\n return value;\n },\n get SUPPORT_SVG_DRAWING() {\n var value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_CORS_IMAGES() {\n var value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\n return value;\n },\n get SUPPORT_RESPONSE_TYPE() {\n var value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\n return value;\n },\n get SUPPORT_CORS_XHR() {\n var value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value });\n return value;\n }\n };\n\n var TextBounds = /** @class */ (function () {\n function TextBounds(text, bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n return TextBounds;\n }());\n var parseTextBounds = function (context, value, styles, node) {\n var textList = breakText(value, styles);\n var textBounds = [];\n var offset = 0;\n textList.forEach(function (text) {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n var clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n var subSegments = segmentGraphemes(text);\n var subOffset_1 = 0;\n subSegments.forEach(function (subSegment) {\n textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));\n subOffset_1 += subSegment.length;\n });\n }\n else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n }\n else {\n var replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n }\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n return textBounds;\n };\n var getWrapperBounds = function (context, node) {\n var ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n var bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n return Bounds.EMPTY;\n };\n var createRange = function (node, offset, length) {\n var ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n var range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n };\n var segmentGraphemes = function (value) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return splitGraphemes(value);\n };\n var segmentWords = function (value, styles) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return breakWords(value, styles);\n };\n var breakText = function (value, styles) {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n };\n // https://drafts.csswg.org/css-text/#word-separator\n var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\n var breakWords = function (str, styles) {\n var breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === \"break-word\" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak\n });\n var words = [];\n var bk;\n var _loop_1 = function () {\n if (bk.value) {\n var value = bk.value.slice();\n var codePoints = toCodePoints$1(value);\n var word_1 = '';\n codePoints.forEach(function (codePoint) {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word_1 += fromCodePoint$1(codePoint);\n }\n else {\n if (word_1.length) {\n words.push(word_1);\n }\n words.push(fromCodePoint$1(codePoint));\n word_1 = '';\n }\n });\n if (word_1.length) {\n words.push(word_1);\n }\n }\n };\n while (!(bk = breaker.next()).done) {\n _loop_1();\n }\n return words;\n };\n\n var TextContainer = /** @class */ (function () {\n function TextContainer(context, node, styles) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n return TextContainer;\n }());\n var transform = function (text, transform) {\n switch (transform) {\n case 1 /* LOWERCASE */:\n return text.toLowerCase();\n case 3 /* CAPITALIZE */:\n return text.replace(CAPITALIZE, capitalize);\n case 2 /* UPPERCASE */:\n return text.toUpperCase();\n default:\n return text;\n }\n };\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\n var capitalize = function (m, p1, p2) {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n return m;\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\n __extends(ImageElementContainer, _super);\n function ImageElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n _this.src = img.currentSrc || img.src;\n _this.intrinsicWidth = img.naturalWidth;\n _this.intrinsicHeight = img.naturalHeight;\n _this.context.cache.addImage(_this.src);\n return _this;\n }\n return ImageElementContainer;\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\n __extends(CanvasElementContainer, _super);\n function CanvasElementContainer(context, canvas) {\n var _this = _super.call(this, context, canvas) || this;\n _this.canvas = canvas;\n _this.intrinsicWidth = canvas.width;\n _this.intrinsicHeight = canvas.height;\n return _this;\n }\n return CanvasElementContainer;\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\n __extends(SVGElementContainer, _super);\n function SVGElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n var s = new XMLSerializer();\n var bounds = parseBounds(context, img);\n img.setAttribute('width', bounds.width + \"px\");\n img.setAttribute('height', bounds.height + \"px\");\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\n _this.intrinsicWidth = img.width.baseVal.value;\n _this.intrinsicHeight = img.height.baseVal.value;\n _this.context.cache.addImage(_this.svg);\n return _this;\n }\n return SVGElementContainer;\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\n __extends(LIElementContainer, _super);\n function LIElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return LIElementContainer;\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\n __extends(OLElementContainer, _super);\n function OLElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.start = element.start;\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n return _this;\n }\n return OLElementContainer;\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\n {\n type: 15 /* DIMENSION_TOKEN */,\n flags: 0,\n unit: 'px',\n number: 3\n }\n ];\n var RADIO_BORDER_RADIUS = [\n {\n type: 16 /* PERCENTAGE_TOKEN */,\n flags: 0,\n number: 50\n }\n ];\n var reformatInputBounds = function (bounds) {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n }\n else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n };\n var getInputValue = function (node) {\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n return value.length === 0 ? node.placeholder || '' : value;\n };\n var CHECKBOX = 'checkbox';\n var RADIO = 'radio';\n var PASSWORD = 'password';\n var INPUT_COLOR = 0x2a2a2aff;\n var InputElementContainer = /** @class */ (function (_super) {\n __extends(InputElementContainer, _super);\n function InputElementContainer(context, input) {\n var _this = _super.call(this, context, input) || this;\n _this.type = input.type.toLowerCase();\n _this.checked = input.checked;\n _this.value = getInputValue(input);\n if (_this.type === CHECKBOX || _this.type === RADIO) {\n _this.styles.backgroundColor = 0xdededeff;\n _this.styles.borderTopColor =\n _this.styles.borderRightColor =\n _this.styles.borderBottomColor =\n _this.styles.borderLeftColor =\n 0xa5a5a5ff;\n _this.styles.borderTopWidth =\n _this.styles.borderRightWidth =\n _this.styles.borderBottomWidth =\n _this.styles.borderLeftWidth =\n 1;\n _this.styles.borderTopStyle =\n _this.styles.borderRightStyle =\n _this.styles.borderBottomStyle =\n _this.styles.borderLeftStyle =\n 1 /* SOLID */;\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\n _this.bounds = reformatInputBounds(_this.bounds);\n }\n switch (_this.type) {\n case CHECKBOX:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n return _this;\n }\n return InputElementContainer;\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\n __extends(SelectElementContainer, _super);\n function SelectElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n var option = element.options[element.selectedIndex || 0];\n _this.value = option ? option.text || '' : '';\n return _this;\n }\n return SelectElementContainer;\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\n __extends(TextareaElementContainer, _super);\n function TextareaElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return TextareaElementContainer;\n }(ElementContainer));\n\n var IFrameElementContainer = /** @class */ (function (_super) {\n __extends(IFrameElementContainer, _super);\n function IFrameElementContainer(context, iframe) {\n var _this = _super.call(this, context, iframe) || this;\n _this.src = iframe.src;\n _this.width = parseInt(iframe.width, 10) || 0;\n _this.height = parseInt(iframe.height, 10) || 0;\n _this.backgroundColor = _this.styles.backgroundColor;\n try {\n if (iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement) {\n _this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\n : COLORS.TRANSPARENT;\n _this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? _this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n }\n catch (e) { }\n return _this;\n }\n return IFrameElementContainer;\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\n var parseNodeTree = function (context, node, parent, root) {\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n }\n else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); });\n }\n else {\n var container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n }\n else if (createsStackingContext(container.styles)) {\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\n }\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= 8 /* IS_LIST_OWNER */;\n }\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n }\n else if (!isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n };\n var createContainer = function (context, element) {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n return new ElementContainer(context, element);\n };\n var parseTree = function (context, element) {\n var container = createContainer(context, element);\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n parseNodeTree(context, element, container, container);\n return container;\n };\n var createsRealStackingContext = function (node, container, root) {\n return (container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent()));\n };\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n var isHTMLElementNode = function (node) {\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\n };\n var isSVGElementNode = function (element) {\n return typeof element.className === 'object';\n };\n var isLIElement = function (node) { return node.tagName === 'LI'; };\n var isOLElement = function (node) { return node.tagName === 'OL'; };\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\n var isVideoElement = function (node) { return node.tagName === 'VIDEO'; };\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n var isSlotElement = function (node) { return node.tagName === 'SLOT'; };\n // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n var isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; };\n\n var CounterState = /** @class */ (function () {\n function CounterState() {\n this.counters = {};\n }\n CounterState.prototype.getCounterValue = function (name) {\n var counter = this.counters[name];\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n };\n CounterState.prototype.getCounterValues = function (name) {\n var counter = this.counters[name];\n return counter ? counter : [];\n };\n CounterState.prototype.pop = function (counters) {\n var _this = this;\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\n };\n CounterState.prototype.parse = function (style) {\n var _this = this;\n var counterIncrement = style.counterIncrement;\n var counterReset = style.counterReset;\n var canReset = true;\n if (counterIncrement !== null) {\n counterIncrement.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n var counterNames = [];\n if (canReset) {\n counterReset.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = _this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n return counterNames;\n };\n return CounterState;\n }());\n var ROMAN_UPPER = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n };\n var ARMENIAN = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'Ք',\n 'Փ',\n 'Ւ',\n 'Ց',\n 'Ր',\n 'Տ',\n 'Վ',\n 'Ս',\n 'Ռ',\n 'Ջ',\n 'Պ',\n 'Չ',\n 'Ո',\n 'Շ',\n 'Ն',\n 'Յ',\n 'Մ',\n 'Ճ',\n 'Ղ',\n 'Ձ',\n 'Հ',\n 'Կ',\n 'Ծ',\n 'Խ',\n 'Լ',\n 'Ի',\n 'Ժ',\n 'Թ',\n 'Ը',\n 'Է',\n 'Զ',\n 'Ե',\n 'Դ',\n 'Գ',\n 'Բ',\n 'Ա'\n ]\n };\n var HEBREW = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'י׳',\n 'ט׳',\n 'ח׳',\n 'ז׳',\n 'ו׳',\n 'ה׳',\n 'ד׳',\n 'ג׳',\n 'ב׳',\n 'א׳',\n 'ת',\n 'ש',\n 'ר',\n 'ק',\n 'צ',\n 'פ',\n 'ע',\n 'ס',\n 'נ',\n 'מ',\n 'ל',\n 'כ',\n 'יט',\n 'יח',\n 'יז',\n 'טז',\n 'טו',\n 'י',\n 'ט',\n 'ח',\n 'ז',\n 'ו',\n 'ה',\n 'ד',\n 'ג',\n 'ב',\n 'א'\n ]\n };\n var GEORGIAN = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'ჵ',\n 'ჰ',\n 'ჯ',\n 'ჴ',\n 'ხ',\n 'ჭ',\n 'წ',\n 'ძ',\n 'ც',\n 'ჩ',\n 'შ',\n 'ყ',\n 'ღ',\n 'ქ',\n 'ფ',\n 'ჳ',\n 'ტ',\n 'ს',\n 'რ',\n 'ჟ',\n 'პ',\n 'ო',\n 'ჲ',\n 'ნ',\n 'მ',\n 'ლ',\n 'კ',\n 'ი',\n 'თ',\n 'ჱ',\n 'ზ',\n 'ვ',\n 'ე',\n 'დ',\n 'გ',\n 'ბ',\n 'ა'\n ]\n };\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n return (symbols.integers.reduce(function (string, integer, index) {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix);\n };\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\n var string = '';\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n return string;\n };\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n return ((value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\n return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\n }) +\n suffix));\n };\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\n if (suffix === void 0) { suffix = '. '; }\n var codePointRangeLength = symbols.length;\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\n };\n var CJK_ZEROS = 1 << 0;\n var CJK_TEN_COEFFICIENTS = 1 << 1;\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\n }\n var tmp = Math.abs(value);\n var string = suffix;\n if (tmp === 0) {\n return numbers[0] + string;\n }\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\n var coefficient = tmp % 10;\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n }\n else if (coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n }\n else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n return (value < 0 ? negativeSign : '') + string;\n };\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\n var JAPANESE_NEGATIVE = 'マイナス';\n var KOREAN_NEGATIVE = '마이너스';\n var createCounterText = function (value, type, appendSuffix) {\n var defaultSuffix = appendSuffix ? '. ' : '';\n var cjkSuffix = appendSuffix ? '、' : '';\n var koreanSuffix = appendSuffix ? ', ' : '';\n var spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case 0 /* DISC */:\n return '•' + spaceSuffix;\n case 1 /* CIRCLE */:\n return '◦' + spaceSuffix;\n case 2 /* SQUARE */:\n return '◾' + spaceSuffix;\n case 5 /* DECIMAL_LEADING_ZERO */:\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? \"0\" + string : string;\n case 4 /* CJK_DECIMAL */:\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\n case 6 /* LOWER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 7 /* UPPER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix);\n case 8 /* LOWER_GREEK */:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case 9 /* LOWER_ALPHA */:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case 10 /* UPPER_ALPHA */:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case 11 /* ARABIC_INDIC */:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case 12 /* ARMENIAN */:\n case 49 /* UPPER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix);\n case 35 /* LOWER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 13 /* BENGALI */:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case 14 /* CAMBODIAN */:\n case 30 /* KHMER */:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case 15 /* CJK_EARTHLY_BRANCH */:\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\n case 16 /* CJK_HEAVENLY_STEM */:\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\n case 17 /* CJK_IDEOGRAPHIC */:\n case 48 /* TRAD_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 47 /* TRAD_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 42 /* SIMP_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 41 /* SIMP_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 26 /* JAPANESE_INFORMAL */:\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case 25 /* JAPANESE_FORMAL */:\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 31 /* KOREAN_HANGUL_FORMAL */:\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 33 /* KOREAN_HANJA_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case 32 /* KOREAN_HANJA_FORMAL */:\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 18 /* DEVANAGARI */:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case 20 /* GEORGIAN */:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix);\n case 21 /* GUJARATI */:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case 22 /* GURMUKHI */:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case 22 /* HEBREW */:\n return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix);\n case 23 /* HIRAGANA */:\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\n case 24 /* HIRAGANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\n case 27 /* KANNADA */:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case 28 /* KATAKANA */:\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\n case 29 /* KATAKANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\n case 34 /* LAO */:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case 37 /* MONGOLIAN */:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case 38 /* MYANMAR */:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case 39 /* ORIYA */:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case 40 /* PERSIAN */:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case 43 /* TAMIL */:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case 44 /* TELUGU */:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case 45 /* THAI */:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case 46 /* TIBETAN */:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case 3 /* DECIMAL */:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n var DocumentCloner = /** @class */ (function () {\n function DocumentCloner(context, element, options) {\n this.context = context;\n this.options = options;\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false);\n }\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\n var _this = this;\n var iframe = createIFrameContainer(ownerDocument, windowSize);\n if (!iframe.contentWindow) {\n return Promise.reject(\"Unable to find iframe window\");\n }\n var scrollX = ownerDocument.defaultView.pageXOffset;\n var scrollY = ownerDocument.defaultView.pageYOffset;\n var cloneWindow = iframe.contentWindow;\n var documentClone = cloneWindow.document;\n /* Chrome doesn't detect relative background-images assigned in inline